Upload com dados anteriores a gestão smart = 0

This commit is contained in:
Adriano Serighelli 2023-07-18 16:38:53 -03:00
parent a760aaab82
commit c5db740cd2

View File

@ -32,7 +32,9 @@ internal class Plat_integ {
static string ACCESS_DB_LOCATION_APP = @"X:\Middle\Informativo Setorial\Modelo Word\BD_APP.accdb"; static string ACCESS_DB_LOCATION_APP = @"X:\Middle\Informativo Setorial\Modelo Word\BD_APP.accdb";
static void Main(string[] args) { static void Main(string[] args) {
//
bool Consolidada = true; //True = econ estimada; False = econ consolidada
DateTime searchFromMonth = DateTime.Now.AddMonths(-24); DateTime searchFromMonth = DateTime.Now.AddMonths(-24);
DateTime searchFrom = new DateTime(searchFromMonth.Year, searchFromMonth.Month, 1); DateTime searchFrom = new DateTime(searchFromMonth.Year, searchFromMonth.Month, 1);
string searchFromString = searchFrom.ToString("yMM"); string searchFromString = searchFrom.ToString("yMM");
@ -40,18 +42,22 @@ internal class Plat_integ {
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
//transfere_PLD(); //transfere_PLD();
if (Consolidada)
{
//Console.WriteLine("Iniciando importação dos dados cadastrais"); //Console.WriteLine("Iniciando importação dos dados cadastrais");
//transfere_DC(); //transfere_DC();
//Console.WriteLine("Finalizando importação dos dados cadastrais"); //Console.WriteLine("Finalizando importação dos dados cadastrais");
//
//Console.WriteLine("Iniciando importação dos dados TE"); //Console.WriteLine("Iniciando importação dos dados TE");
//transfere_TE(searchFromString); //transfere_TE(searchFromString);
//Console.WriteLine("Finalizando importação dos dados TE"); //Console.WriteLine("Finalizando importação dos dados TE");
//
//Console.WriteLine("Iniciando importação dos dados de economia");
//transfere_econ(searchFromString);
//Console.WriteLine("Finalizando importação dos dados de economia");
Console.WriteLine("Iniciando importação dos dados de economia");
transfere_econ(searchFromString);
Console.WriteLine("Finalizando importação dos dados de economia");
}
else
{
//args -> limit & offset //args -> limit & offset
string limit = "1000"; //args[0]; string limit = "1000"; //args[0];
string offset = "0"; // args[1]; string offset = "0"; // args[1];
@ -60,12 +66,13 @@ internal class Plat_integ {
Console.WriteLine("Iniciando importação dos dados estimados de economia"); Console.WriteLine("Iniciando importação dos dados estimados de economia");
transfere_econ_estimado(searchFromString, limitInt, offsetInt); transfere_econ_estimado(searchFromString, limitInt, offsetInt);
Console.WriteLine("Finalizando importação dos dados estimados de economia"); Console.WriteLine("Finalizando importação dos dados estimados de economia");
}
Environment.Exit(0); Environment.Exit(0);
return; return;
} }
private static void transfere_econ(string searchFromString) { private static void transfere_econ(string searchFromString) {
string strCOM_ac, strCOM_pg; string strCOM_ac, strCOM_pg, strCOM_ac_list;
long cod_econ, cod_smart_unidade; long cod_econ, cod_smart_unidade;
string mes; string mes;
@ -76,9 +83,10 @@ internal class Plat_integ {
conn_access.Open(); conn_access.Open();
//dados >= 2021-01-01 //dados >= 2021-01-01
strCOM_ac = "SELECT * FROM Economia WHERE mes >= " + searchFromString; strCOM_ac_list = "SELECT DISTINCT cod_smart_unidade FROM Economia WHERE mes >= " + searchFromString;
OleDbCommand tbEC = new(strCOM_ac, conn_access);
OleDbDataReader reader_access = tbEC.ExecuteReader(); OleDbCommand tbList = new(strCOM_ac_list, conn_access);
OleDbDataReader reader_access_list = tbList.ExecuteReader();
//abre a conexao com o PG //abre a conexao com o PG
NpgsqlConnection conn_pg; NpgsqlConnection conn_pg;
@ -90,25 +98,33 @@ internal class Plat_integ {
conn_pg.Open(); conn_pg.Open();
Console.WriteLine("Excluindo dados existentes de economia"); Console.WriteLine("Excluindo dados existentes de economia");
string pg_strCOM = $"DELETE FROM economia WHERE mes::INTEGER >= {searchFromString}"; //TODO: ESTUDAR TROCA PARA TRUNCATE //string pg_strCOM = $"DELETE FROM economia WHERE mes::INTEGER >= {searchFromString}"; //TODO: ESTUDAR TROCA PARA TRUNCATE
NpgsqlCommand pg_tcSCDE = new(pg_strCOM, conn_pg); //NpgsqlCommand pg_tcSCDE = new(pg_strCOM, conn_pg);
NpgsqlDataReader pg_reader = pg_tcSCDE.ExecuteReader(); //NpgsqlDataReader pg_reader = pg_tcSCDE.ExecuteReader();
pg_reader.Close(); //pg_reader.Close();
Console.WriteLine("Dados de economia excluídos"); Console.WriteLine("Dados de economia excluídos");
using (var pg_writer = conn_pg.BeginBinaryImport("COPY economia (cod_econ, cod_smart_unidade, mes, custo_cativo, custo_livre, economia_mensal, economia_acumulada, custo_unit, dad_estimado) FROM STDIN (FORMAT BINARY)")) { using (var pg_writer = conn_pg.BeginBinaryImport("COPY economia (cod_econ, cod_smart_unidade, mes, custo_cativo, custo_livre, economia_mensal, economia_acumulada, custo_unit, dad_estimado) FROM STDIN (FORMAT BINARY)")) {
while (reader_access.Read()) { while (reader_access_list.Read())
{
string idUni = reader_access_list["cod_smart_unidade"].ToString()!;
strCOM_ac = $"SELECT calendario_aamm.data, IIf(a.custo_cativo IS NULL, 0, a.custo_cativo) AS custo_cativo, IIf(a.custo_livre IS NULL, 0, a.custo_livre) AS custo_livre, IIf(a.economia_mensal IS NULL, 0, a.economia_mensal) AS economia_mensal, IIf(a.economia_acumul IS NULL, 0, a.economia_acumul) AS economia_acumul, IIf(a.Custo_unit IS NULL, 0, a.economia_acumul) AS Custo_unit FROM calendario_aamm LEFT JOIN (SELECT * FROM economia WHERE cod_smart_unidade = {idUni} ORDER BY mes) AS a ON calendario_aamm.data = a.mes WHERE calendario_aamm.data >= {searchFromString} And calendario_aamm.data <= (SELECT MAX(mes) FROM economia WHERE cod_smart_unidade = {idUni})";
OleDbCommand tbEC = new(strCOM_ac, conn_access);
OleDbDataReader reader_access = tbEC.ExecuteReader();
while (reader_access.Read())
{
//Console.WriteLine(reader_access["Data"]); //Console.WriteLine(reader_access["Data"]);
//Console.ReadKey(); //Console.ReadKey();
mes = reader_access["Mes"].ToString(); mes = reader_access["data"].ToString()!;
double.TryParse(reader_access["Custo_cativo"].ToString(), out custo_cativo); double.TryParse(reader_access["Custo_cativo"].ToString(), out custo_cativo);
double.TryParse(reader_access["Custo_livre"].ToString(), out custo_livre); double.TryParse(reader_access["Custo_livre"].ToString(), out custo_livre);
double.TryParse(reader_access["Economia_mensal"].ToString(), out economia_mensal); double.TryParse(reader_access["Economia_mensal"].ToString(), out economia_mensal);
double.TryParse(reader_access["Economia_acumul"].ToString(), out economia_acumulada); double.TryParse(reader_access["Economia_acumul"].ToString(), out economia_acumulada);
double.TryParse(reader_access["Custo_unit"].ToString(), out custo_unit); double.TryParse(reader_access["Custo_unit"].ToString(), out custo_unit);
long.TryParse(reader_access["Cod_econ"].ToString(), out cod_econ); long.TryParse(String.Concat(idUni, mes), out cod_econ);
long.TryParse(reader_access["Cod_Smart_unidade"].ToString(), out cod_smart_unidade); long.TryParse(idUni, out cod_smart_unidade);
//COMENTADO SO DEV -> Random rnd = new Random(); //COMENTADO SO DEV -> Random rnd = new Random();
//COMENTADO SO DEV -> custo_unit = 500 + rnd.NextDouble()*200; //COMENTADO SO DEV -> custo_unit = 500 + rnd.NextDouble()*200;
@ -136,6 +152,7 @@ internal class Plat_integ {
// //Console.ReadKey(); // //Console.ReadKey();
//} //}
} }
}
pg_writer.Complete(); pg_writer.Complete();
} }