Aprimorada a lógica para somar a energia por posto tatifário (P/FP). A lógica considera o "kind" do item.

This commit is contained in:
Adriano Serighelli 2024-01-04 16:30:31 -03:00
parent dd94e43be3
commit 1685711fb7

View File

@ -219,6 +219,8 @@
float? dem_Reg_P = null;
float? dem_Reg_FP = null;
float? consumo_Reg_FP = null;
string? kind_P = string.Empty;
string? kind_FP = string.Empty;
List<(string, float)> insertOthers = new List<(string, float)>();
foreach (Item item in parsedResult.items)
@ -227,44 +229,31 @@
{
// Energia Ponta
case ("energy", "peak"):
dadosTusd.Consumo_P = item.billed / 1000;
break;
// Energia Fora de Ponta
case ("energy", "off-peak"):
if (item.kind == "Gen.")
if (kind_P == string.Empty)
{
dadosTusd.Consumo_FP = dadosTusd.Consumo_FP + (item.billed / 1000);
kind_P = item.kind;
}
else
if (item.kind == kind_P)
{
dadosTusd.Consumo_FP = item.billed / 1000;
dadosTusd.Consumo_P = dadosTusd.Consumo_P + (item.billed / 1000);
}
break;
// Energia Fora de Ponta
case ("energy", "off-peak inductive"):
if (item.kind == "Gen.")
case ("energy", _):
if (item.period == "off-peak" || item.period == "off-peak inductive" || item.period == "off-peak capacitive" || item.period == "reserved")
{
dadosTusd.Consumo_FP = dadosTusd.Consumo_FP + (item.billed / 1000);
}
else
{
dadosTusd.Consumo_FP = item.billed / 1000;
}
if (kind_FP == string.Empty)
{
kind_FP = item.kind;
}
break;
// Energia Fora de Ponta
case ("energy", "off-peak capacitive"):
if (item.kind == "Gen.")
{
dadosTusd.Consumo_FP = dadosTusd.Consumo_FP + (item.billed / 1000);
}
else
{
dadosTusd.Consumo_FP = item.billed / 1000;
if (item.kind == kind_FP)
{
dadosTusd.Consumo_FP = dadosTusd.Consumo_FP + (item.billed / 1000);
}
}
break;
@ -388,6 +377,9 @@
case ("energy", "off-peak inductive green flag"):
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured;
break;
case ("energy", "reserved"):
consumo_Reg_FP = consumo_Reg_FP.GetValueOrDefault() + measuredItem.measured;
break;
}
}