From 13c7356d9e3d5d51c2d2f0e25442ed488fdb0fac Mon Sep 17 00:00:00 2001 From: Adriano Serighelli Date: Tue, 10 Jun 2025 10:03:45 -0300 Subject: [PATCH] =?UTF-8?q?Faturas=20duplicadas=20n=C3=A3o=20s=C3=A3o=20ma?= =?UTF-8?q?is=20salvas.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Criado endpoint para teste. --- Download Faturas/Fatura.cs | 590 ++++++++++++++++++------------------- Webhook 4docs/Program.cs | 45 ++- 2 files changed, 324 insertions(+), 311 deletions(-) diff --git a/Download Faturas/Fatura.cs b/Download Faturas/Fatura.cs index 3806a55..dee9d9d 100644 --- a/Download Faturas/Fatura.cs +++ b/Download Faturas/Fatura.cs @@ -189,164 +189,153 @@ return; } - // PIS e Cofins - sqlQuery = $"SELECT Distribuidoras_PIS.PIS, Distribuidoras_PIS.COFINS FROM Distribuidoras_geral INNER JOIN Distribuidoras_PIS ON Distribuidoras_geral.ID_dist = Distribuidoras_PIS.ID_dist WHERE Distribuidoras_PIS.Mes = ? AND Distribuidoras_geral.Distribuidora = ?"; + // PIS e Cofins + sqlQuery = $"SELECT Distribuidoras_PIS.PIS, Distribuidoras_PIS.COFINS FROM Distribuidoras_geral INNER JOIN Distribuidoras_PIS ON Distribuidoras_geral.ID_dist = Distribuidoras_PIS.ID_dist WHERE Distribuidoras_PIS.Mes = ? AND Distribuidoras_geral.Distribuidora = ?"; - using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) + using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) + { + cmd.Parameters.AddWithValue("?", dadosTusd.Mes.ToString()); + cmd.Parameters.AddWithValue("?", dadosTusd.Distribuidora); + + using (OleDbDataReader reader = cmd.ExecuteReader()) { - cmd.Parameters.AddWithValue("?", dadosTusd.Mes.ToString()); - cmd.Parameters.AddWithValue("?", dadosTusd.Distribuidora); - - using (OleDbDataReader reader = cmd.ExecuteReader()) + while (reader.Read()) { - while (reader.Read()) - { - // PIS e Cofins + // PIS e Cofins dadosTusd.PIS = float.Parse(reader["PIS"].ToString() !); dadosTusd.COFINS = float.Parse(reader["COFINS"].ToString() !); - } } } + } - // Dados da fatura processada - dadosTusd.Cod_TUSD = long.Parse(dadosTusd.Cod_Smart_unidade.ToString() + dadosTusd.Mes.ToString()); - switch (parsedResult.tariffModality, parsedResult.subgroup) + // Dados da fatura processada + dadosTusd.Cod_TUSD = long.Parse(dadosTusd.Cod_Smart_unidade.ToString() + dadosTusd.Mes.ToString()); + switch (parsedResult.tariffModality, parsedResult.subgroup) + { + case ("blue", _): + dadosTusd.Perfil = "AZUL"; + break; + + case ("green", _): + dadosTusd.Perfil = "VERDE"; + break; + + case ("standart", _): + dadosTusd.Perfil = "CONVENCIONAL"; + break; + + case (_, "B3"): + dadosTusd.Perfil = "CONVENCIONAL"; + break; + + default: + break; + } + + dadosTusd.Valor = parsedResult.totalCharges; + dadosTusd.Inicio_Leitura = parsedResult.dates.reading.periodFrom; + dadosTusd.Fim_leitura = parsedResult.dates.reading.periodUntil; + DateTime d = DateTime.Now; + dadosTusd.Hora_TUSD = new DateTime(d.Year, d.Month, d.Day, d.Hour, d.Minute, d.Second); + dadosTusd.Dem_Reativa_kvar = 0; + dadosTusd.Multa = 0; + dadosTusd.Credito = 0; + dadosTusd.Bandeira_RS_MWh = 0; + dadosTusd.FIC_DIC = 0; + dadosTusd.Enc_conexao = 0; + dadosTusd.Liminar_ICMS = 0; + dadosTusd.Outros = 0; + dadosTusd.Cred_livre = 0; + dadosTusd.Tempo_TUSD = 0; + dadosTusd.Lanc_aut = true; + dadosTusd.Rev_atual = true; + dadosTusd.Revisao = 0; + + // Loop entre os dados faturados na fatura + int j = 0; + float? dem_Reg_P = null; + float? dem_Reg_FP = null; + float? consumo_Reg_FP = 0; + string? kind_P = string.Empty; + string? kind_FP = string.Empty; + + if (this.id == "2356193") + { + int i = 0; + i++; + } + + List<(string, float)> insertOthers = new List<(string, float)>(); + foreach (Item item in parsedResult.items) + { + switch (item.type, item.period) { - case ("blue", _): - dadosTusd.Perfil = "AZUL"; + // Energia Ponta + case ("energy", "peak"): + if (kind_P == string.Empty) + { + kind_P = item.kind; + } + + if (item.kind == kind_P) + { + dadosTusd.Consumo_P = dadosTusd.Consumo_P + (item.billed / 1000); + } + break; - case ("green", _): - dadosTusd.Perfil = "VERDE"; - break; - - case ("standart", _): - dadosTusd.Perfil = "CONVENCIONAL"; - break; - - case (_, "B3"): - dadosTusd.Perfil = "CONVENCIONAL"; - break; - - default: - break; - } - - dadosTusd.Valor = parsedResult.totalCharges; - dadosTusd.Inicio_Leitura = parsedResult.dates.reading.periodFrom; - dadosTusd.Fim_leitura = parsedResult.dates.reading.periodUntil; - DateTime d = DateTime.Now; - dadosTusd.Hora_TUSD = new DateTime(d.Year, d.Month, d.Day, d.Hour, d.Minute, d.Second); - dadosTusd.Dem_Reativa_kvar = 0; - dadosTusd.Multa = 0; - dadosTusd.Credito = 0; - dadosTusd.Bandeira_RS_MWh = 0; - dadosTusd.FIC_DIC = 0; - dadosTusd.Enc_conexao = 0; - dadosTusd.Liminar_ICMS = 0; - dadosTusd.Outros = 0; - dadosTusd.Cred_livre = 0; - dadosTusd.Tempo_TUSD = 0; - dadosTusd.Lanc_aut = true; - dadosTusd.Rev_atual = true; - dadosTusd.Revisao = 0; - - // Loop entre os dados faturados na fatura - int j = 0; - float? dem_Reg_P = null; - float? dem_Reg_FP = null; - float? consumo_Reg_FP = 0; - string? kind_P = string.Empty; - string? kind_FP = string.Empty; - - if (this.id == "2356193") - { - int i = 0; - i++; - } - - List<(string, float)> insertOthers = new List<(string, float)>(); - foreach (Item item in parsedResult.items) - { - switch (item.type, item.period) - { - // Energia Ponta - case ("energy", "peak"): - if (kind_P == string.Empty) + // Energia Fora de Ponta + case ("energy", _): + if (item.period == "off-peak" || item.period == "off-peak inductive" || item.period == "off-peak capacitive" || item.period == "reserved") + { + if (kind_FP == string.Empty) { - kind_P = item.kind; + kind_FP = item.kind; } - if (item.kind == kind_P) + if (item.kind == kind_FP) { - dadosTusd.Consumo_P = dadosTusd.Consumo_P + (item.billed / 1000); + dadosTusd.Consumo_FP = dadosTusd.Consumo_FP + (item.billed / 1000); + } + } + else + { + insertOthers.Add((item.texts[0], item.charge)); + } + + break; + + // Demanda + case ("demand", _): + + if (item.contract != 0) + { + if (item.period == "peak") + { + dadosTusd.Dem_Reg_P = item.billed; + dadosTusd.Dem_Cont_P = item.contract; + } + else if (item.period == "off-peak") + { + dadosTusd.Dem_Reg_FP = item.billed; + dadosTusd.Dem_Cont_FP = item.contract; } - break; - - // Energia Fora de Ponta - case ("energy", _): - if (item.period == "off-peak" || item.period == "off-peak inductive" || item.period == "off-peak capacitive" || item.period == "reserved") - { - if (kind_FP == string.Empty) - { - kind_FP = item.kind; - } - - if (item.kind == kind_FP) - { - dadosTusd.Consumo_FP = dadosTusd.Consumo_FP + (item.billed / 1000); - } - } - else - { - insertOthers.Add((item.texts[0], item.charge)); - } - - break; - - // Demanda - case ("demand", _): - - if (item.contract != 0) + if (dadosTusd.Perfil == "AZUL") { if (item.period == "peak") { - dadosTusd.Dem_Reg_P = item.billed; - dadosTusd.Dem_Cont_P = item.contract; + sqlQuery = $"UPDATE Dados_cadastrais SET Demanda_P = @demanda WHERE Cod_Smart_unidade = @cod_smart_unidade"; + using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) + { + cmd.Parameters.AddWithValue("@demanda", item.contract); + cmd.Parameters.AddWithValue("@cod_smart_unidade", dadosTusd.Cod_Smart_unidade); + cmd.ExecuteNonQuery(); + } } else if (item.period == "off-peak") { - dadosTusd.Dem_Reg_FP = item.billed; - dadosTusd.Dem_Cont_FP = item.contract; - } - - if (dadosTusd.Perfil == "AZUL") - { - if (item.period == "peak") - { - sqlQuery = $"UPDATE Dados_cadastrais SET Demanda_P = @demanda WHERE Cod_Smart_unidade = @cod_smart_unidade"; - using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) - { - cmd.Parameters.AddWithValue("@demanda", item.contract); - cmd.Parameters.AddWithValue("@cod_smart_unidade", dadosTusd.Cod_Smart_unidade); - cmd.ExecuteNonQuery(); - } - } - else if (item.period == "off-peak") - { - sqlQuery = $"UPDATE Dados_cadastrais SET Demanda_FP = @demanda WHERE Cod_Smart_unidade = @cod_smart_unidade"; - using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) - { - cmd.Parameters.AddWithValue("@demanda", item.contract); - cmd.Parameters.AddWithValue("@cod_smart_unidade", dadosTusd.Cod_Smart_unidade); - cmd.ExecuteNonQuery(); - } - } - } - else if (dadosTusd.Perfil == "VERDE") - { - sqlQuery = $"UPDATE Dados_cadastrais SET Demanda_P = @demanda, Demanda_FP = @demanda WHERE Cod_Smart_unidade = @cod_smart_unidade"; + sqlQuery = $"UPDATE Dados_cadastrais SET Demanda_FP = @demanda WHERE Cod_Smart_unidade = @cod_smart_unidade"; using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) { cmd.Parameters.AddWithValue("@demanda", item.contract); @@ -355,212 +344,223 @@ } } } - - break; - - // Ilum. publica - case ("publicLighting", _): - dadosTusd.Ilum_Publica = item.charge; - break; - - // Energia Reativa - case ("excessReactiveEnergy", _): - dadosTusd.En_Reativa_Mvarh += item.billed / 1000; - break; - - // Demanda Reativa - case ("excessReactiveDemand", _): - dadosTusd.Dem_Reativa_kvar += item.billed; - break; - - // Bandeira Tarifaria - case ("flagSurcharge", _): - dadosTusd.Bandeira_RS_MWh = item.charge; - break; - - // Items não classificados - case ("other", _): - j++; - - // Exclui os items lançados anteriormente para a fatura e cria a instrução SQL para inserir os novos items - if (j == 1) + else if (dadosTusd.Perfil == "VERDE") { - sqlQuery = $"DELETE FROM Dados_TUSD_aux WHERE Cod_TUSD = @cod_tusd"; + sqlQuery = $"UPDATE Dados_cadastrais SET Demanda_P = @demanda, Demanda_FP = @demanda WHERE Cod_Smart_unidade = @cod_smart_unidade"; using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) { - cmd.Parameters.AddWithValue("@cod_tusd", dadosTusd.Cod_TUSD); + cmd.Parameters.AddWithValue("@demanda", item.contract); + cmd.Parameters.AddWithValue("@cod_smart_unidade", dadosTusd.Cod_Smart_unidade); cmd.ExecuteNonQuery(); } } + } - insertOthers.Add((item.name, item.charge)); - break; - } + break; + + // Ilum. publica + case ("publicLighting", _): + dadosTusd.Ilum_Publica = item.charge; + break; + + // Energia Reativa + case ("excessReactiveEnergy", _): + dadosTusd.En_Reativa_Mvarh += item.billed / 1000; + break; + + // Demanda Reativa + case ("excessReactiveDemand", _): + dadosTusd.Dem_Reativa_kvar += item.billed; + break; + + // Bandeira Tarifaria + case ("flagSurcharge", _): + dadosTusd.Bandeira_RS_MWh = item.charge; + break; + + // Items não classificados + case ("other", _): + j++; + + // Exclui os items lançados anteriormente para a fatura e cria a instrução SQL para inserir os novos items + if (j == 1) + { + sqlQuery = $"DELETE FROM Dados_TUSD_aux WHERE Cod_TUSD = @cod_tusd"; + using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) + { + cmd.Parameters.AddWithValue("@cod_tusd", dadosTusd.Cod_TUSD); + cmd.ExecuteNonQuery(); + } + } + + insertOthers.Add((item.name, item.charge)); + break; } + } - // Busca a demanda registrada nos itens medidos - foreach (Measureditem measuredItem in parsedResult.measuredItems) + // Busca a demanda registrada nos itens medidos + foreach (Measureditem measuredItem in parsedResult.measuredItems) + { + switch (measuredItem.type, measuredItem.period) { - switch (measuredItem.type, measuredItem.period) - { - case ("demand", "peak"): - dem_Reg_P = measuredItem.measured.Max(); - break; - case ("demand", "off-peak"): - dem_Reg_FP = measuredItem.measured.Max(); - break; - case ("energy", "off-peak"): - consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum(); - break; - case ("energy", "off-peak inductive"): - consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum(); - break; - case ("energy", "off-peak capacitive"): - consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum(); - break; - case ("energy", "off-peak capacitive green flag"): - consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum(); - break; - case ("energy", "off-peak inductive green flag"): - consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum(); - break; - case ("energy", "reserved"): - consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum(); - break; - } + case ("demand", "peak"): + dem_Reg_P = measuredItem.measured.Max(); + break; + case ("demand", "off-peak"): + dem_Reg_FP = measuredItem.measured.Max(); + break; + case ("energy", "off-peak"): + consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum(); + break; + case ("energy", "off-peak inductive"): + consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum(); + break; + case ("energy", "off-peak capacitive"): + consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum(); + break; + case ("energy", "off-peak capacitive green flag"): + consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum(); + break; + case ("energy", "off-peak inductive green flag"): + consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum(); + break; + case ("energy", "reserved"): + consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum(); + break; } + } if (dem_Reg_P != null && (Math.Round((decimal)dadosTusd.Consumo_FP, 2) == Math.Round((decimal)(consumo_Reg_FP * 1.025 / 1000) !, 2))) - { - dadosTusd.Dem_Reg_P = (float)(dem_Reg_P * 1.025); - } - else if (dem_Reg_P != null) - { - dadosTusd.Dem_Reg_P = (float)dem_Reg_P; - } + { + dadosTusd.Dem_Reg_P = (float)(dem_Reg_P * 1.025); + } + else if (dem_Reg_P != null) + { + dadosTusd.Dem_Reg_P = (float)dem_Reg_P; + } if (dem_Reg_FP != null && (Math.Round((decimal)dadosTusd.Consumo_FP, 2) == Math.Round((decimal)(consumo_Reg_FP * 1.025 / 1000) !, 2))) + { + dadosTusd.Dem_Reg_FP = (float)(dem_Reg_FP * 1.025); + } + else if (dem_Reg_FP != null) + { + dadosTusd.Dem_Reg_FP = dem_Reg_FP ?? 0; + } + + var dados = dadosTusd.GetType().GetProperties(); + StringBuilder fields = new StringBuilder(); + StringBuilder values = new StringBuilder(); + + // Verifica se já existe a fatura lançada | atualizar fatura ou nova fatura + if (tusdLanc) + { + // Cria o comando para atualização da fatura + sqlQuery = "UPDATE Dados_TUSD SET "; + + // Loop por todos os dados ja obtidos + PropertyInfo[] propriedades = typeof(RecordSet).GetProperties(); + foreach (PropertyInfo propriedade in propriedades) { - dadosTusd.Dem_Reg_FP = (float)(dem_Reg_FP * 1.025); - } - else if (dem_Reg_FP != null) - { - dadosTusd.Dem_Reg_FP = dem_Reg_FP ?? 0; + string nomeColuna = propriedade.Name; + + // Adicione a coluna à instrução SQL + sqlQuery += $"{nomeColuna} = @{nomeColuna}, "; } - var dados = dadosTusd.GetType().GetProperties(); - StringBuilder fields = new StringBuilder(); - StringBuilder values = new StringBuilder(); + // Remova a última vírgula e adicione a cláusula WHERE + sqlQuery = sqlQuery.TrimEnd(',', ' ') + $" WHERE Cod_TUSD = @cod_tusd"; - // Verifica se já existe a fatura lançada | atualizar fatura ou nova fatura - if (tusdLanc) + using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) { - // Cria o comando para atualização da fatura - sqlQuery = "UPDATE Dados_TUSD SET "; - - // Loop por todos os dados ja obtidos - PropertyInfo[] propriedades = typeof(RecordSet).GetProperties(); foreach (PropertyInfo propriedade in propriedades) { string nomeColuna = propriedade.Name; - - // Adicione a coluna à instrução SQL - sqlQuery += $"{nomeColuna} = @{nomeColuna}, "; + object valorColuna = propriedade.GetValue(dadosTusd) ?? string.Empty; + cmd.Parameters.AddWithValue($"@{nomeColuna}", valorColuna); } - // Remova a última vírgula e adicione a cláusula WHERE - sqlQuery = sqlQuery.TrimEnd(',', ' ') + $" WHERE Cod_TUSD = @cod_tusd"; + // Valor do código TUSD na cláusula WHERE + cmd.Parameters.AddWithValue("@cod_tusd", dadosTusd.Cod_TUSD); + cmd.ExecuteNonQuery(); + } + + // Inseri os itens classificados como "othes" após criar o registro da TUSD devido as relação entre as tabelas + foreach ((string name, float valor) in insertOthers) + { + j++; + sqlQuery = "INSERT INTO Dados_TUSD_aux (Cod_TUSD,Id,Nome,Valor,Cod_lanc) VALUES (@cod_tusd, @j, @name, @valor,0)"; using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) { - foreach (PropertyInfo propriedade in propriedades) - { - string nomeColuna = propriedade.Name; - object valorColuna = propriedade.GetValue(dadosTusd) ?? string.Empty; - cmd.Parameters.AddWithValue($"@{nomeColuna}", valorColuna); - } - - // Valor do código TUSD na cláusula WHERE cmd.Parameters.AddWithValue("@cod_tusd", dadosTusd.Cod_TUSD); - + cmd.Parameters.AddWithValue("@j", j); + cmd.Parameters.AddWithValue("@name", name); + cmd.Parameters.AddWithValue("@valor", valor); cmd.ExecuteNonQuery(); } - - // Inseri os itens classificados como "othes" após criar o registro da TUSD devido as relação entre as tabelas - foreach ((string name, float valor) in insertOthers) - { - j++; - sqlQuery = "INSERT INTO Dados_TUSD_aux (Cod_TUSD,Id,Nome,Valor,Cod_lanc) VALUES (@cod_tusd, @j, @name, @valor,0)"; - using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) - { - cmd.Parameters.AddWithValue("@cod_tusd", dadosTusd.Cod_TUSD); - cmd.Parameters.AddWithValue("@j", j); - cmd.Parameters.AddWithValue("@name", name); - cmd.Parameters.AddWithValue("@valor", valor); - cmd.ExecuteNonQuery(); - } - } } - else + } + else + { + // Cria o comando para lançar da fatura + sqlQuery = "INSERT INTO Dados_TUSD ("; + + PropertyInfo[] propriedades = typeof(RecordSet).GetProperties(); + /*int i = 0;*/ + foreach (PropertyInfo propriedade in propriedades) { - // Cria o comando para lançar da fatura - sqlQuery = "INSERT INTO Dados_TUSD ("; + string nomeColuna = propriedade.Name; - PropertyInfo[] propriedades = typeof(RecordSet).GetProperties(); - /*int i = 0;*/ + // Adicione a coluna à instrução SQL + sqlQuery += $"{nomeColuna}, "; + } + + // Remova a última vírgula e adicione a cláusula VALUES + sqlQuery = sqlQuery.TrimEnd(',', ' ') + ") VALUES ("; + + foreach (PropertyInfo propriedade in propriedades) + { + // Adicione os parâmetros à instrução SQL + string nomeColuna = propriedade.Name; + sqlQuery += $"@{nomeColuna}, "; + } + + // Remova a última vírgula e feche a instrução SQL + sqlQuery = sqlQuery.TrimEnd(',', ' ') + ")"; + + using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) + { foreach (PropertyInfo propriedade in propriedades) { string nomeColuna = propriedade.Name; - - // Adicione a coluna à instrução SQL - sqlQuery += $"{nomeColuna}, "; + object valorColuna = propriedade.GetValue(dadosTusd) ?? string.Empty; + cmd.Parameters.AddWithValue($"@{nomeColuna}", valorColuna); } - // Remova a última vírgula e adicione a cláusula VALUES - sqlQuery = sqlQuery.TrimEnd(',', ' ') + ") VALUES ("; - - foreach (PropertyInfo propriedade in propriedades) - { - // Adicione os parâmetros à instrução SQL - string nomeColuna = propriedade.Name; - sqlQuery += $"@{nomeColuna}, "; - } - - // Remova a última vírgula e feche a instrução SQL - sqlQuery = sqlQuery.TrimEnd(',', ' ') + ")"; + cmd.ExecuteNonQuery(); + } + // Inseri os itens classificados como "othes" após criar o registro da TUSD devido as relação entre as tabelas + j = 0; + foreach ((string name, float valor) in insertOthers) + { + j++; + sqlQuery = "INSERT INTO Dados_TUSD_aux (Cod_TUSD,Id,Nome,Valor,Cod_lanc) VALUES (@cod_tusd, @j, @name, @valor, 0)"; using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) { - foreach (PropertyInfo propriedade in propriedades) - { - string nomeColuna = propriedade.Name; - object valorColuna = propriedade.GetValue(dadosTusd) ?? string.Empty; - cmd.Parameters.AddWithValue($"@{nomeColuna}", valorColuna); - } - + cmd.Parameters.AddWithValue("@cod_tusd", dadosTusd.Cod_TUSD); + cmd.Parameters.AddWithValue("@j", j); + cmd.Parameters.AddWithValue("@name", name); + cmd.Parameters.AddWithValue("@valor", valor); cmd.ExecuteNonQuery(); } - - // Inseri os itens classificados como "othes" após criar o registro da TUSD devido as relação entre as tabelas - j = 0; - foreach ((string name, float valor) in insertOthers) - { - j++; - sqlQuery = "INSERT INTO Dados_TUSD_aux (Cod_TUSD,Id,Nome,Valor,Cod_lanc) VALUES (@cod_tusd, @j, @name, @valor, 0)"; - using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) - { - cmd.Parameters.AddWithValue("@cod_tusd", dadosTusd.Cod_TUSD); - cmd.Parameters.AddWithValue("@j", j); - cmd.Parameters.AddWithValue("@name", name); - cmd.Parameters.AddWithValue("@valor", valor); - cmd.ExecuteNonQuery(); - } - } } + } - this.Status = "FATURA INCLUIDA NO BD"; - this.uc = uc; - this.Mes = dadosTusd.Mes; + this.Status = "FATURA INCLUIDA NO BD"; + this.uc = uc; + this.Mes = dadosTusd.Mes; } diff --git a/Webhook 4docs/Program.cs b/Webhook 4docs/Program.cs index 4ae88e6..607e44b 100644 --- a/Webhook 4docs/Program.cs +++ b/Webhook 4docs/Program.cs @@ -188,33 +188,42 @@ namespace Webhook_4docs { path = fatura.PastaTUSD!.FullName; } - fatura_arquivo = IndexedFilename($@"{path}\ID {fatura_ID!} - Mês {fatura.Mes} - Empresa {fatura.Empresa} - Unidade {fatura.Unidade}", "pdf"); - CriarArquivo(fatura_arquivo, JsonBody.GetProperty("pdfFile").ToString()); - var DatabaseModel = new ProcessedInvoices + if (status_id != 4) { - InvoiceId = Int32.Parse(fatura_ID), - DateTimeProcessed = DateTime.UtcNow, - Status = status, - InvoicePath = fatura_arquivo - }; + fatura_arquivo = IndexedFilename($@"{path}\ID {fatura_ID!} - Mês {fatura.Mes} - Empresa {fatura.Empresa} - Unidade {fatura.Unidade}", "pdf"); + CriarArquivo(fatura_arquivo, JsonBody.GetProperty("pdfFile").ToString()); - logger.LogInformation("Fatura incluída no BD"); + var DatabaseModel = new ProcessedInvoices + { + InvoiceId = Int32.Parse(fatura_ID), + DateTimeProcessed = DateTime.UtcNow, + Status = status, + InvoicePath = fatura_arquivo + }; - using (var scope = app.Services.CreateScope()) - { - var dbContext = scope.ServiceProvider.GetRequiredService(); - dbContext.ProcessedInvoices.Add(DatabaseModel); - await dbContext.SaveChangesAsync(); + logger.LogInformation("Fatura incluída no BD"); + + logger.LogInformation("Fatura salva na pasta " + fatura_arquivo); + + using (var scope = app.Services.CreateScope()) + { + var dbContext = scope.ServiceProvider.GetRequiredService(); + dbContext.ProcessedInvoices.Add(DatabaseModel); + await dbContext.SaveChangesAsync(); + } } + else + { + logger.LogInformation("Fatura duplicada no BD"); - logger.LogInformation("Fatura salva na pasta " + fatura_arquivo); + logger.LogInformation("Fatura descartada"); + } } catch { logger.LogError("Erro no processamento da fatura"); } - } else if (JsonBody.TryGetProperty("healthy", out _) && JsonBody.TryGetProperty("blame", out _) && JsonBody.TryGetProperty("locationID", out _)) { @@ -247,6 +256,10 @@ namespace Webhook_4docs } } }); + endpoints.MapPut("/api", async context => + { + var a = 10; + }); }); app.Run(); }