Faturas duplicadas não são mais salvas.
Criado endpoint para teste.
This commit is contained in:
parent
9197d900ff
commit
13c7356d9e
@ -189,164 +189,153 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// PIS e Cofins
|
// 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 = ?";
|
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());
|
while (reader.Read())
|
||||||
cmd.Parameters.AddWithValue("?", dadosTusd.Distribuidora);
|
|
||||||
|
|
||||||
using (OleDbDataReader reader = cmd.ExecuteReader())
|
|
||||||
{
|
{
|
||||||
while (reader.Read())
|
// PIS e Cofins
|
||||||
{
|
|
||||||
// PIS e Cofins
|
|
||||||
dadosTusd.PIS = float.Parse(reader["PIS"].ToString() !);
|
dadosTusd.PIS = float.Parse(reader["PIS"].ToString() !);
|
||||||
dadosTusd.COFINS = float.Parse(reader["COFINS"].ToString() !);
|
dadosTusd.COFINS = float.Parse(reader["COFINS"].ToString() !);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Dados da fatura processada
|
// Dados da fatura processada
|
||||||
dadosTusd.Cod_TUSD = long.Parse(dadosTusd.Cod_Smart_unidade.ToString() + dadosTusd.Mes.ToString());
|
dadosTusd.Cod_TUSD = long.Parse(dadosTusd.Cod_Smart_unidade.ToString() + dadosTusd.Mes.ToString());
|
||||||
switch (parsedResult.tariffModality, parsedResult.subgroup)
|
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", _):
|
// Energia Ponta
|
||||||
dadosTusd.Perfil = "AZUL";
|
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;
|
break;
|
||||||
|
|
||||||
case ("green", _):
|
// Energia Fora de Ponta
|
||||||
dadosTusd.Perfil = "VERDE";
|
case ("energy", _):
|
||||||
break;
|
if (item.period == "off-peak" || item.period == "off-peak inductive" || item.period == "off-peak capacitive" || item.period == "reserved")
|
||||||
|
{
|
||||||
case ("standart", _):
|
if (kind_FP == string.Empty)
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
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;
|
if (dadosTusd.Perfil == "AZUL")
|
||||||
|
|
||||||
// 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 (item.period == "peak")
|
if (item.period == "peak")
|
||||||
{
|
{
|
||||||
dadosTusd.Dem_Reg_P = item.billed;
|
sqlQuery = $"UPDATE Dados_cadastrais SET Demanda_P = @demanda WHERE Cod_Smart_unidade = @cod_smart_unidade";
|
||||||
dadosTusd.Dem_Cont_P = item.contract;
|
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")
|
else if (item.period == "off-peak")
|
||||||
{
|
{
|
||||||
dadosTusd.Dem_Reg_FP = item.billed;
|
sqlQuery = $"UPDATE Dados_cadastrais SET Demanda_FP = @demanda WHERE Cod_Smart_unidade = @cod_smart_unidade";
|
||||||
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";
|
|
||||||
using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn))
|
using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn))
|
||||||
{
|
{
|
||||||
cmd.Parameters.AddWithValue("@demanda", item.contract);
|
cmd.Parameters.AddWithValue("@demanda", item.contract);
|
||||||
@ -355,212 +344,223 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (dadosTusd.Perfil == "VERDE")
|
||||||
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";
|
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))
|
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();
|
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
|
// Busca a demanda registrada nos itens medidos
|
||||||
foreach (Measureditem measuredItem in parsedResult.measuredItems)
|
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();
|
||||||
case ("demand", "peak"):
|
break;
|
||||||
dem_Reg_P = measuredItem.measured.Max();
|
case ("demand", "off-peak"):
|
||||||
break;
|
dem_Reg_FP = measuredItem.measured.Max();
|
||||||
case ("demand", "off-peak"):
|
break;
|
||||||
dem_Reg_FP = measuredItem.measured.Max();
|
case ("energy", "off-peak"):
|
||||||
break;
|
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum();
|
||||||
case ("energy", "off-peak"):
|
break;
|
||||||
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum();
|
case ("energy", "off-peak inductive"):
|
||||||
break;
|
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum();
|
||||||
case ("energy", "off-peak inductive"):
|
break;
|
||||||
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum();
|
case ("energy", "off-peak capacitive"):
|
||||||
break;
|
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum();
|
||||||
case ("energy", "off-peak capacitive"):
|
break;
|
||||||
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum();
|
case ("energy", "off-peak capacitive green flag"):
|
||||||
break;
|
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum();
|
||||||
case ("energy", "off-peak capacitive green flag"):
|
break;
|
||||||
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum();
|
case ("energy", "off-peak inductive green flag"):
|
||||||
break;
|
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum();
|
||||||
case ("energy", "off-peak inductive green flag"):
|
break;
|
||||||
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum();
|
case ("energy", "reserved"):
|
||||||
break;
|
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured.Sum();
|
||||||
case ("energy", "reserved"):
|
break;
|
||||||
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)))
|
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);
|
dadosTusd.Dem_Reg_P = (float)(dem_Reg_P * 1.025);
|
||||||
}
|
}
|
||||||
else if (dem_Reg_P != null)
|
else if (dem_Reg_P != null)
|
||||||
{
|
{
|
||||||
dadosTusd.Dem_Reg_P = (float)dem_Reg_P;
|
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)))
|
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);
|
string nomeColuna = propriedade.Name;
|
||||||
}
|
|
||||||
else if (dem_Reg_FP != null)
|
// Adicione a coluna à instrução SQL
|
||||||
{
|
sqlQuery += $"{nomeColuna} = @{nomeColuna}, ";
|
||||||
dadosTusd.Dem_Reg_FP = dem_Reg_FP ?? 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var dados = dadosTusd.GetType().GetProperties();
|
// Remova a última vírgula e adicione a cláusula WHERE
|
||||||
StringBuilder fields = new StringBuilder();
|
sqlQuery = sqlQuery.TrimEnd(',', ' ') + $" WHERE Cod_TUSD = @cod_tusd";
|
||||||
StringBuilder values = new StringBuilder();
|
|
||||||
|
|
||||||
// Verifica se já existe a fatura lançada | atualizar fatura ou nova fatura
|
using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn))
|
||||||
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)
|
foreach (PropertyInfo propriedade in propriedades)
|
||||||
{
|
{
|
||||||
string nomeColuna = propriedade.Name;
|
string nomeColuna = propriedade.Name;
|
||||||
|
object valorColuna = propriedade.GetValue(dadosTusd) ?? string.Empty;
|
||||||
// Adicione a coluna à instrução SQL
|
cmd.Parameters.AddWithValue($"@{nomeColuna}", valorColuna);
|
||||||
sqlQuery += $"{nomeColuna} = @{nomeColuna}, ";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remova a última vírgula e adicione a cláusula WHERE
|
// Valor do código TUSD na cláusula WHERE
|
||||||
sqlQuery = sqlQuery.TrimEnd(',', ' ') + $" WHERE Cod_TUSD = @cod_tusd";
|
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))
|
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("@cod_tusd", dadosTusd.Cod_TUSD);
|
||||||
|
cmd.Parameters.AddWithValue("@j", j);
|
||||||
|
cmd.Parameters.AddWithValue("@name", name);
|
||||||
|
cmd.Parameters.AddWithValue("@valor", valor);
|
||||||
cmd.ExecuteNonQuery();
|
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
|
string nomeColuna = propriedade.Name;
|
||||||
sqlQuery = "INSERT INTO Dados_TUSD (";
|
|
||||||
|
|
||||||
PropertyInfo[] propriedades = typeof(RecordSet).GetProperties();
|
// Adicione a coluna à instrução SQL
|
||||||
/*int i = 0;*/
|
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)
|
foreach (PropertyInfo propriedade in propriedades)
|
||||||
{
|
{
|
||||||
string nomeColuna = propriedade.Name;
|
string nomeColuna = propriedade.Name;
|
||||||
|
object valorColuna = propriedade.GetValue(dadosTusd) ?? string.Empty;
|
||||||
// Adicione a coluna à instrução SQL
|
cmd.Parameters.AddWithValue($"@{nomeColuna}", valorColuna);
|
||||||
sqlQuery += $"{nomeColuna}, ";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remova a última vírgula e adicione a cláusula VALUES
|
cmd.ExecuteNonQuery();
|
||||||
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(',', ' ') + ")";
|
|
||||||
|
|
||||||
|
// 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))
|
using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn))
|
||||||
{
|
{
|
||||||
foreach (PropertyInfo propriedade in propriedades)
|
cmd.Parameters.AddWithValue("@cod_tusd", dadosTusd.Cod_TUSD);
|
||||||
{
|
cmd.Parameters.AddWithValue("@j", j);
|
||||||
string nomeColuna = propriedade.Name;
|
cmd.Parameters.AddWithValue("@name", name);
|
||||||
object valorColuna = propriedade.GetValue(dadosTusd) ?? string.Empty;
|
cmd.Parameters.AddWithValue("@valor", valor);
|
||||||
cmd.Parameters.AddWithValue($"@{nomeColuna}", valorColuna);
|
|
||||||
}
|
|
||||||
|
|
||||||
cmd.ExecuteNonQuery();
|
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.Status = "FATURA INCLUIDA NO BD";
|
||||||
this.uc = uc;
|
this.uc = uc;
|
||||||
this.Mes = dadosTusd.Mes;
|
this.Mes = dadosTusd.Mes;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -188,33 +188,42 @@ namespace Webhook_4docs
|
|||||||
{
|
{
|
||||||
path = fatura.PastaTUSD!.FullName;
|
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),
|
fatura_arquivo = IndexedFilename($@"{path}\ID {fatura_ID!} - Mês {fatura.Mes} - Empresa {fatura.Empresa} - Unidade {fatura.Unidade}", "pdf");
|
||||||
DateTimeProcessed = DateTime.UtcNow,
|
CriarArquivo(fatura_arquivo, JsonBody.GetProperty("pdfFile").ToString());
|
||||||
Status = status,
|
|
||||||
InvoicePath = fatura_arquivo
|
|
||||||
};
|
|
||||||
|
|
||||||
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())
|
logger.LogInformation("Fatura incluída no BD");
|
||||||
{
|
|
||||||
var dbContext = scope.ServiceProvider.GetRequiredService<WebhookDbContext>();
|
logger.LogInformation("Fatura salva na pasta " + fatura_arquivo);
|
||||||
dbContext.ProcessedInvoices.Add(DatabaseModel);
|
|
||||||
await dbContext.SaveChangesAsync();
|
using (var scope = app.Services.CreateScope())
|
||||||
|
{
|
||||||
|
var dbContext = scope.ServiceProvider.GetRequiredService<WebhookDbContext>();
|
||||||
|
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
|
catch
|
||||||
{
|
{
|
||||||
logger.LogError("Erro no processamento da fatura");
|
logger.LogError("Erro no processamento da fatura");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (JsonBody.TryGetProperty("healthy", out _) && JsonBody.TryGetProperty("blame", out _) && JsonBody.TryGetProperty("locationID", out _))
|
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();
|
app.Run();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user