public StoricoController(Utente u, ISession session) { _session = session; using (ITransaction t = _session.BeginTransaction()) { List <Models.Model.Profilo.Spesa> spese = _session.Query <Models.Model.Profilo.Spesa>() .Where(s => s.Username == u.Username).ToList(); _storico = new Storico(spese); t.Commit(); } }
public WindowEdit(Storico stor) { InitializeComponent(); type = "stor"; storToEdit = stor; setVisibility(); datePickerStorico.SelectedDate = stor.Data; textBoxDescrStorico.Text = stor.Descr; textBoxFatturaStorico.Text = stor.Fattura; textBoxImportoStorico.Text = stor.Importo.ToString(); }
private void btnModificaStorico_Click(object sender, RoutedEventArgs e) { if (utenteCorrente != null && gridStoricoUtente.SelectedItem != null) { Storico stor = (Storico)gridStoricoUtente.SelectedItem; WindowEdit windowEdit = new WindowEdit(stor); windowEdit.ShowDialog(); utenteCorrente.ListStorico = DBSqlLite.readStorico(utenteCorrente.Identifier); loadStoricoTabella(); listVariazioni = DBSqlLite.readVariazioni(); loadVariazioni(); } }
private void btnEliminaStorico_Click(object sender, RoutedEventArgs e) { if (utenteCorrente != null && gridStoricoUtente.SelectedItem != null) { Storico stor = (Storico)gridStoricoUtente.SelectedItem; if (stor != null) { MessageBoxResult res = System.Windows.MessageBox.Show("Eliminare riga: " + stor.Data + "," + stor.Descr + "," + stor.Fattura, "", MessageBoxButton.YesNo); if (res == MessageBoxResult.Yes) { DBSqlLite.eliminaStorico(stor); utenteCorrente.ListStorico = DBSqlLite.readStorico(utenteCorrente.Identifier); loadStoricoTabella(); } } } }
public static void eliminaStorico(Storico storico) { try { m_dbConnection.Open(); string sql = " DELETE FROM storico " + " where idabbonamento = " + storico.Idstorico; SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection); command.ExecuteNonQuery(); Helper.loggerDBOperation(sql); } catch (Exception ex) { Console.WriteLine("Error: {0}", ex.ToString()); } finally { m_dbConnection.Close(); } }
private void btnInserisciStorico_Click(object sender, RoutedEventArgs e) { double importo = Double.Parse(txtImportoStorico.Text); Storico stor = new Storico(); stor.Data = datePickerStorico.SelectedDate.Value; stor.Descr = txtDescrStorico.Text; stor.Fattura = txtFattura.Text; stor.Importo = importo; stor.Idcliente = utenteCorrente.Identifier; VariazioneEconomica varEco = new VariazioneEconomica(stor.Data, stor.Descr + " Fattura " + stor.Fattura, importo, true); DBSqlLite.aggiungiVariazione(varEco); stor.Idvariazione = varEco.IdVariazione; DBSqlLite.aggiungiStorico(stor); utenteCorrente.ListStorico = DBSqlLite.readStorico(utenteCorrente.Identifier); loadStoricoTabella(); listVariazioni = DBSqlLite.readVariazioni(); loadVariazioni(); }
public static void modificaStorico(Storico storico) { try { m_dbConnection.Open(); string sql = " UPDATE storico SET data = '" + storico.Data.ToString("dd-MM-yyyy") + "',descr = '" + storico.Descr + "',importo = '" + storico.Importo + "',fattura = '" + storico.Fattura + "'" + ",idcliente = '" + storico.Idcliente + "'" + " where idabbonamento = " + storico.Idstorico; SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection); command.ExecuteNonQuery(); Helper.loggerDBOperation(sql); } catch (Exception ex) { Console.WriteLine("Error: {0}", ex.ToString()); } finally { m_dbConnection.Close(); } }
public static SortedList <int, Storico> readStorico(string idcliente) { SortedList <int, Storico> listStorico = new SortedList <int, Storico>(); try { m_dbConnection.Open(); string sql = "SELECT idabbonamento,idcliente,data,descr,importo,fattura,idvariazione FROM storico WHERE idcliente ='" + idcliente + "'"; SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection); SQLiteDataReader rdr = command.ExecuteReader(); while (rdr.Read()) { Storico stor = new Storico(); stor.Idstorico = Convert.ToInt32(rdr["idabbonamento"]); stor.Idcliente = rdr["idcliente"].ToString(); stor.Data = Convert.ToDateTime(rdr["data"]); stor.Descr = rdr["descr"].ToString(); stor.Importo = Convert.ToDouble(rdr["importo"]); stor.Fattura = rdr["fattura"].ToString(); stor.Idvariazione = Convert.ToInt32(rdr["idvariazione"]); listStorico.Add(stor.Idstorico, stor); } } catch (Exception ex) { MethodBase site = ex.TargetSite; string methodName = site == null ? null : site.Name; Helper.Logger("class=DBSqlLite readStorico -" + ex.Message); } finally { m_dbConnection.Close(); } return(listStorico); }
public static void aggiungiStorico(Storico storico) { try { m_dbConnection.Open(); string sql = "insert into storico (idcliente,data,descr,fattura,importo,idvariazione) " + "VALUES('" + storico.Idcliente + "','" + storico.Data.ToString("dd-MM-yyyy") + "','" + storico.Descr + "','" + storico.Fattura + "','" + storico.Importo.ToString() + "','" + storico.Idvariazione + "')"; SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection); command.ExecuteNonQuery(); Helper.loggerDBOperation(sql); } catch (Exception ex) { Console.WriteLine("Error: {0}", ex.ToString()); } finally { m_dbConnection.Close(); } }
private void butCalcola_Click(object sender, EventArgs e) { //Se è necessario avvio il timer if (Timer && !timer1.Enabled) { timer1.Start(); } //Setto a false l'allarme, poi controllo se attivarlo o no pictureBoxAllarme.Image = OPC_CTPACK_Software.Properties.Resources.e; pictureBoxAllarme.Enabled = false; //Cancello i punti del grafico precedente chartCreg.Series["CregAttuale"].Points.Clear(); //Prima parte// //Attraverso l'OPC mi interefaccio col PLC, tiro giu i dati e li salvo su CSV double[] PosNow = new double[Global.NumeroCampioni]; double[] VelNow = new double[Global.NumeroCampioni]; double[] CorNow = new double[Global.NumeroCampioni]; int[] Tempo = new int[Global.NumeroCampioni]; //Leggo la velocità a cui sta andando la macchina int PpmNow = (int)Com_Functions.RsLinx_OPC_Client_Read($"[{Global.TopicName}]Ppm_Run").Value; //Controllo che la lettura sia andata a buon fine if (PpmNow == -1) { return; } //Setto Ppm_Start al valore appena letto di Ppm_Run per far capire al PLC che deve partire col campionamento Com_Functions.RsLinx_OPC_Client_Write($"[{Global.TopicName}]Ppm_Start", PpmNow); while (true) { int Controllo = (int)Com_Functions.RsLinx_OPC_Client_Read($"[{Global.TopicName}]Ppm_Start").Value; //Controllo che la lettura sia andata a buon fine if (Controllo == -1) { return; } //Attendo che il plc finisca di fare i campionamenti, quando finisce mette Ppm_Start a 0 if (Controllo == 0) { break; } Thread.Sleep(500); } //Ne creo una nuova istanza per non aver problemi visto che le classi vengono passate per riferimento Formato FormatoAttuale = new Formato(this.CregInit.CregTot[0].Formato.Nome, this.CregInit.CregTot[0].Formato.Motore, this.CregInit.CregTot[0].Formato.Kv, this.CregInit.CregTot[0].Formato.Kt, PpmNow, this.CregInit.CregTot[0].Formato.PpmI, this.CregInit.CregTot[0].Formato.PpmF, this.CregInit.CregTot[0].Formato.Passo); float[] Temp; for (int i = 0; i < PosNow.Length / Global.LengthArray; i++) { Temp = (float[])Com_Functions.RsLinx_OPC_Client_Read_Array($"[{Global.TopicName}]Posizione[{i * Global.LengthArray}]", Global.LengthArray)[0].Value; //Controllo che la lettura sia andata a buon fine if (Temp[0] == -1) { return; } Temp.CopyTo(PosNow, i * Global.LengthArray); Temp = (float[])Com_Functions.RsLinx_OPC_Client_Read_Array($"[{Global.TopicName}]Velocita[{i * Global.LengthArray}]", Global.LengthArray)[0].Value; //Controllo che la lettura sia andata a buon fine if (Temp[0] == -1) { return; } Temp.CopyTo(VelNow, i * Global.LengthArray); Temp = (float[])Com_Functions.RsLinx_OPC_Client_Read_Array($"[{Global.TopicName}]Corrente[{i * Global.LengthArray}]", Global.LengthArray)[0].Value; //Controllo che la lettura sia andata a buon fine if (Temp[0] == -1) { return; } Temp.CopyTo(CorNow, i * Global.LengthArray); } for (int i = 0; i < Tempo.Length; i++) { //Creo l'array Tempo Tempo[i] = (int)(i * (Global.TempoCampionamento * 1000)); } //Mi salvo le variabili che arrivano dal PLC e creo il .CSV con le informazioni alla velocità i StreamWriter FileInfoAsse = new StreamWriter($"{Global.PathTrend}{FormatoAttuale.PpmA}_{FormatoAttuale.Nome}.CSV"); FileInfoAsse.WriteLine($"Formato\t{FormatoAttuale.Nome}"); FileInfoAsse.WriteLine($"Motore\t{FormatoAttuale.Motore.GetModel()}"); FileInfoAsse.WriteLine($"TempoCampionamento\t{Global.TempoCampionamento}"); FileInfoAsse.WriteLine("Time\tPosizione\tVelocità\tCorrente"); for (int k = 0; k < PosNow.Length; k++) { FileInfoAsse.WriteLine($"{Tempo[k]}\t{PosNow[k]}\t{VelNow[k]}\t{CorNow[k]}"); } //Chiudo il File FileInfoAsse.Close(); //Seconda parte// //Apro il CSV appena salvato, calcolo il Creg e lo grafico Creg CregAttuale = new Creg(FormatoAttuale, Global.PathTrend, this.CregInit.CregTot[0].Periodi); //Disegno il punto del CregAttuale sul grafico chartCreg.Series["CregAttuale"].Points.AddXY(CregAttuale.Formato.PpmA, CregAttuale.CregAttuale); //Visualizzo il valore di CregAttuale textBoxCreg.Text = CregAttuale.CregAttuale.ToString(); //Scrivo il valore calcolato di Creg sull'array Com_Functions.RsLinx_OPC_Client_Write($"[{Global.TopicName}]Creg_Attuale", (float)CregAttuale.CregAttuale); //Ottengo il valore di CregTeo relativo ai Ppm attuali necessario per il confronto double CregTeo = 0; if (CregAttuale.Formato.PpmA == CregInit.CregTot[0].Formato.PpmA) { CregTeo = CregInit.CregTot[0].CregAttuale; } else { for (int i = 1; i < CregInit.CregTot.Length; i++) { if (CregAttuale.Formato.PpmA == CregInit.CregTot[i].Formato.PpmA) { CregTeo = CregInit.CregTot[i].CregAttuale; break; } else if ((CregAttuale.Formato.PpmA > CregInit.CregTot[i - 1].Formato.PpmA) && (CregAttuale.Formato.PpmA < CregInit.CregTot[i].Formato.PpmA)) { CregTeo = ((CregInit.CregTot[i - 1].CregAttuale * (CregInit.CregTot[i].Formato.PpmA - CregAttuale.Formato.PpmA)) + (CregInit.CregTot[i].CregAttuale * (CregAttuale.Formato.PpmA - CregInit.CregTot[i - 1].Formato.PpmA))) / CregInit.CregTot[i].Formato.Passo; break; } } } //Controllo se il CregAttuale è nelle soglie, se così non è attivo allarme if (CregAttuale.CregAttuale >= (CregTeo + (CregTeo * CregInit.OffsetPos) / 100)) { pictureBoxAllarme.Enabled = true; } if (CregAttuale.CregAttuale <= (CregTeo + (CregTeo * CregInit.OffsetNeg) / 100)) { pictureBoxAllarme.Enabled = true; } //Scrivo il valore del CregAttuale sul file per lo storico con PPM StreamWriter Storico; if (File.Exists($"{Global.PathStorico}{CregAttuale.Formato.PpmA}_{CregAttuale.Formato.Nome}_Storico_Creg.txt")) { //Se il file esiste già lo apro in append Storico = File.AppendText($"{Global.PathStorico}{CregAttuale.Formato.PpmA}_{CregAttuale.Formato.Nome}_Storico_Creg.txt"); } else { //Se non esiste lo creo e scrivo l'intestazione Storico = new StreamWriter($"{Global.PathStorico}{CregAttuale.Formato.PpmA}_{CregAttuale.Formato.Nome}_Storico_Creg.txt"); Storico.WriteLine($"Tolleranza\t{this.CregInit.OffsetPos}"); Storico.WriteLine($"CregTeo\t{CregTeo}"); Storico.WriteLine(""); Storico.WriteLine("DateTime\t\tCreg"); } //Scrivo il CregAttuale e chiudo il file Storico.WriteLine($"{DateTime.Now}\t{CregAttuale.CregAttuale}"); Storico.Close(); //Scrivo il valore del CregAttuale sul file per lo storico Totale StreamWriter StoricoTot; if (File.Exists($"{Global.PathStorico}TOT_{CregAttuale.Formato.Nome}_Storico_Creg.txt")) { //Se il file esiste già lo apro in append StoricoTot = File.AppendText($"{Global.PathStorico}TOT_{CregAttuale.Formato.Nome}_Storico_Creg.txt"); } else { //Se non esiste lo creo e scrivo l'intestazione StoricoTot = new StreamWriter($"{Global.PathStorico}TOT_{CregAttuale.Formato.Nome}_Storico_Creg.txt"); StoricoTot.WriteLine($"Tolleranza\t{this.CregInit.OffsetPos}"); StoricoTot.WriteLine(""); StoricoTot.WriteLine("DateTime\t\tCreg\t\t\tCregTeo\t\t\tPpm"); } //Scrivo il CregAttuale e chiudo il file StoricoTot.WriteLine($"{DateTime.Now}\t{CregAttuale.CregAttuale}\t{CregTeo}\t{CregAttuale.Formato.PpmA}"); StoricoTot.Close(); }