Adriano Serighelli 874eabe87a Refatora e atualiza projetos para .NET 9.0
Criado nova biblioteca de classes para os demais projetos referênciarem a classe "Fatura.cs"

Atualização de bibliotecas.
2025-12-01 15:22:22 -03:00

156 lines
7.9 KiB
C#

// <copyright file="Program.cs" company="Smart Energia">
// Copyright (c) Smart Energia. All rights reserved.
// </copyright>
namespace Download_Faturas
{
using System.Data.OleDb;
using System.Text.Json;
using Faturas;
/// <summary>
/// Main program class for processing invoices.
/// </summary>
public class Program
{
#if DEBUG
/// <summary>
/// Path to the log file for invoices.
/// </summary>
public const string LogFaturas = @"X:\Back\Carteira x.x\4Docs\import.txt";
/// <summary>
/// Path to the secondary log file for invoices.
/// </summary>
public const string LogFaturas2 = @"X:\Back\Carteira x.x\4Docs\import2.txt";
#else
public const String LogFaturas = "import.txt";
public const String LogFaturas2 = "import2.txt";
#endif
/// <summary>
/// Path to the database file.
/// </summary>
public const string CaminhoDB = "X:/Middle/Informativo Setorial/Modelo Word/BD1_dados cadastrais e faturas.accdb";
private static readonly HttpClient HttpClient = new ();
private static readonly StreamReader Sr = new (LogFaturas);
private static readonly StreamWriter Sw = new (LogFaturas2);
private static string? fatura;
/// <summary>
/// Main entry point of the program.
/// </summary>
public static void Main()
{
// Abre a conexao com o banco de dados
using (OleDbConnection conn = new (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + CaminhoDB + ";Jet OLEDB:Database Password=gds21"))
{
conn.Open();
// Loop entre as faturas pendentes
while ((fatura = Sr.ReadLine()) != null)
{
string fatura_ID = fatura.Split(",")[0];
string fatura_status = fatura.Split(",")[1];
string fatura_arquivo = fatura.Split(",")[2];
// Verifica se a fatura foi processada e atualiza os valores para banco de dados
if (fatura_status == "DELAYED" | fatura_status == "MULTACTIONABLE" | fatura_status == "ACTIONABLE" | fatura_status == string.Empty | fatura_status == "UNIDADE CONSUMIDORA NÃO LOCALIZADA NO BD" | fatura_status == "PREPROCESS")
{
if (fatura_status == "UNIDADE CONSUMIDORA NÃO LOCALIZADA NO BD" && !File.Exists(fatura_arquivo))
{
Sw.WriteLine(fatura_ID + "," + "ARQUIVO NÃO LOCALIZADO" + "," + fatura_arquivo);
Console.WriteLine(fatura_ID + "," + "ARQUIVO NÃO LOCALIZADO" + "," + fatura_arquivo);
}
else
{
// Verifica se a fatura foi processada e atualiza os valores para o banco de dados
Fatura fatura = new (fatura_ID, fatura_arquivo, HttpClient);
if (fatura.Status == "SUCCESS" & !fatura.Agrupada)
{
fatura.Processar(conn);
try
{
fatura.Mover(separar: false);
Sw.WriteLine(fatura_ID + "," + fatura.Status + "," + fatura.Arquivo);
Console.WriteLine(fatura_ID + "," + fatura.Status + "," + fatura.Arquivo);
}
catch (FileNotFoundException)
{
Sw.WriteLine(fatura_ID + "," + "ARQUIVO NÃO LOCALIZADO" + "," + fatura.Arquivo);
Console.WriteLine(fatura_ID + "," + "ARQUIVO NÃO LOCALIZADO" + "," + fatura.Arquivo);
}
}
else if (fatura.Status == "SUCCESS" & fatura.Agrupada)
{
foreach (JsonElement individual_ID in fatura.Agrupada_children)
{
Fatura faturaIndividual = new (individual_ID.ToString(), fatura_arquivo, HttpClient);
if (faturaIndividual.Status == "SUCCESS")
{
faturaIndividual.Processar(conn);
try
{
faturaIndividual.Mover(separar: true);
Sw.WriteLine(individual_ID.ToString() + "," + faturaIndividual.Status + "," + faturaIndividual.Arquivo);
Console.WriteLine(individual_ID.ToString() + "," + faturaIndividual.Status + "," + faturaIndividual.Arquivo);
}
catch (FileNotFoundException)
{
Sw.WriteLine(individual_ID.ToString() + "," + "ARQUIVO NÃO LOCALIZADO" + "," + faturaIndividual.Arquivo);
Console.WriteLine(individual_ID.ToString() + "," + "ARQUIVO NÃO LOCALIZADO" + "," + faturaIndividual.Arquivo);
}
}
else
{
try
{
faturaIndividual.Mover(separar: true);
Sw.WriteLine(individual_ID.ToString() + "," + faturaIndividual.Status + "," + faturaIndividual.Arquivo);
Console.WriteLine(individual_ID.ToString() + "," + faturaIndividual.Status + "," + faturaIndividual.Arquivo);
}
catch (FileNotFoundException)
{
Sw.WriteLine(individual_ID.ToString() + "," + "ARQUIVO NÃO LOCALIZADO" + "," + faturaIndividual.Arquivo);
Console.WriteLine(individual_ID.ToString() + "," + "ARQUIVO NÃO LOCALIZADO" + "," + faturaIndividual.Arquivo);
}
}
}
fatura.Arquivo!.Delete();
}
else if (fatura.Status == "INVALID")
{
try
{
fatura.Mover(separar: false);
}
catch (FileNotFoundException)
{
Sw.WriteLine(fatura_ID + "," + "ARQUIVO NÃO LOCALIZADO" + "," + fatura.Arquivo);
Console.WriteLine(fatura_ID + "," + "ARQUIVO NÃO LOCALIZADO" + "," + fatura.Arquivo);
}
}
else
{
Sw.WriteLine(fatura_ID + "," + fatura.Status + "," + fatura_arquivo);
Console.WriteLine(fatura_ID + "," + fatura.Status + "," + fatura_arquivo);
}
}
}
else
{
Sw.WriteLine(fatura);
Console.WriteLine(fatura);
}
}
Sr.Close();
Sw.Close();
File.Move(LogFaturas2, LogFaturas, true);
}
}
}
}