private void button1_Click(object sender, EventArgs e) { Viaggio scarico = new Viaggio(); if (txtBustaDoc.Text == "") { MessageBox.Show("Inserisci Busta Documenti", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } scarico.BustaDocumenti = txtBustaDoc.Text; scarico.Camion = cmbCamion.SelectedItem.ToString(); //dal nome del camionista prende il codice fiscale var cf = from d in database.Tables["DIPENDENTE"].AsEnumerable() where d.Field <string>("Nome") == cmbCamionista.SelectedItem.ToString() select new { CF = d.Field <string>("CodiceFiscale") }; scarico.Camionista = cf.ElementAt(0).CF; //prende ultimo codice if (database.Tables["VIAGGIO_DI_SCARICO"].Rows.Count == 0) { scarico.Codice = 1; } else { //leggo il massimo codice inserito nel database var codici = from v in database.Tables["VIAGGIO_DI_SCARICO"].AsEnumerable() orderby v.Field <int>("Codice") descending select v.Field <int>("Codice"); int max = codici.ElementAt(0); scarico.Codice = max + 1; } scarico.Container1 = cmbContainer1.SelectedItem.ToString(); scarico.Data = dateTimePicker1.Value.Day.ToString() + "/" + dateTimePicker1.Value.Month.ToString() + "/" + dateTimePicker1.Value.Year.ToString(); //riempie informazioni per container 1 List <Informazioni_In_Viaggio> info = new List <Informazioni_In_Viaggio>(); Informazioni_In_Viaggio in1 = new Informazioni_In_Viaggio(); //prende l'iva dal nome dell'impianto 1 var iva = from i in database.Tables["IMPIANTO"].AsEnumerable() where i.Field <string>("Nome") == cmbImpianto1.SelectedItem.ToString() select new { Iva = i.Field <string>("PartitaIva") }; in1.Iva = iva.ElementAt(0).Iva; in1.Viaggio = scarico.Codice; in1.Soa = cmbSoa1.SelectedItem.ToString(); //controllo se il peso è inserito correttamente try { in1.PesoSoa = int.Parse(txtPeso1.Text); } catch { MessageBox.Show("Inserisci un peso > 0", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //se <= 0 errore if (in1.PesoSoa <= 0) { MessageBox.Show("Inserisci un peso > 0", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } info.Add(in1); //controllo rimorchio if (chkRimorchio.Checked) { scarico.Rimorchio.Container2 = cmbContainer2.SelectedItem.ToString(); scarico.Rimorchio.Rimorchio = cmbRimorchio.SelectedItem.ToString(); //inserisce le informazioni anche per il rimorchio //prende l'iva dal nome dell'impianto 2 var iva2 = from i in database.Tables["IMPIANTO"].AsEnumerable() where i.Field <string>("Nome") == cmbImpianto2.SelectedItem.ToString() select new { Iva = i.Field <string>("PartitaIva") }; in1.Iva = iva2.ElementAt(0).Iva; in1.Soa = cmbSoa2.SelectedItem.ToString(); //controllo se il peso è inserito correttamente try { in1.PesoSoa = int.Parse(txtPeso2.Text); } catch { MessageBox.Show("Inserisci un peso > 0", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //se <= 0 errore if (in1.PesoSoa <= 0) { MessageBox.Show("Inserisci un peso > 0", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } info.Add(in1); } else { scarico.Rimorchio.Rimorchio = ""; } //assegna alle proprietà di output i valori Scarico = scarico; Infos = info; //chiude form this.Close(); }
private void button1_Click(object sender, EventArgs e) { Viaggio carico = new Viaggio(); if (txtBustaDoc.Text == "") { MessageBox.Show("Inserisci Busta Documenti", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } carico.BustaDocumenti = txtBustaDoc.Text; carico.Camion = cmbCamion.SelectedItem.ToString(); //se è un viaggio ottimizzato il camionista ha già il codice fiscale if (cmbCamionista.Enabled) { //dal nome del camionista prende il codice fiscale var cf = from d in database.Tables["DIPENDENTE"].AsEnumerable() where d.Field <string>("Nome") == cmbCamionista.SelectedItem.ToString() select new { CF = d.Field <string>("CodiceFiscale") }; carico.Camionista = cf.ElementAt(0).CF; } else { carico.Camionista = cmbCamionista.SelectedItem.ToString(); } //prende ultimo codice if (database.Tables["VIAGGIO_DI_CARICO"].Rows.Count == 0) { carico.Codice = 1; } else { //leggo il massimo codice inserito nel database var codici = from v in database.Tables["VIAGGIO_DI_CARICO"].AsEnumerable() orderby v.Field <int>("Codice") descending select v.Field <int>("Codice"); int max = codici.ElementAt(0); carico.Codice = max + 1; } carico.Container1 = cmbContainer1.SelectedItem.ToString(); carico.Data = dateTimePicker1.Value.Day.ToString() + "/" + dateTimePicker1.Value.Month.ToString() + "/" + dateTimePicker1.Value.Year.ToString(); //riempie informazioni per container 1 List <Informazioni_In_Viaggio> info = new List <Informazioni_In_Viaggio>(); Informazioni_In_Viaggio in1 = new Informazioni_In_Viaggio(); //prende l'iva dal nome dell'impianto 1 var iva = from i in database.Tables["CLIENTE"].AsEnumerable() where i.Field <string>("Nome") == cmbCliente1.SelectedItem.ToString() select new { Iva = i.Field <string>("PartitaIva") }; in1.Iva = iva.ElementAt(0).Iva; in1.Viaggio = carico.Codice; in1.Soa = cmbSoa1.SelectedItem.ToString(); //controllo se il peso è inserito correttamente try { in1.PesoSoa = int.Parse(txtPeso1.Text); } catch { MessageBox.Show("Inserisci un peso > 0", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //se <= 0 errore if (in1.PesoSoa <= 0) { MessageBox.Show("Inserisci un peso > 0", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } info.Add(in1); //controllo separatore per il container 1 if (chkSeparatore1.Checked) { //aggiunge un'altra informazione carico in1.Soa = cmbSoa2.SelectedItem.ToString(); //controllo se il peso è inserito correttamente try { in1.PesoSoa = int.Parse(txtPeso2.Text); } catch { MessageBox.Show("Inserisci un peso > 0", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //se <= 0 errore if (in1.PesoSoa <= 0) { MessageBox.Show("Inserisci un peso > 0", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } info.Add(in1); } //controllo rimorchio if (chkRimorchio.Checked) { carico.Rimorchio.Container2 = cmbContainer2.SelectedItem.ToString(); carico.Rimorchio.Rimorchio = cmbRimorchio.SelectedItem.ToString(); //inserisce le informazioni anche per il rimorchio //prende l'iva dal nome dell'impianto 2 var iva2 = from i in database.Tables["CLIENTE"].AsEnumerable() where i.Field <string>("Nome") == cmbCliente2.SelectedItem.ToString() select new { Iva = i.Field <string>("PartitaIva") }; in1.Iva = iva2.ElementAt(0).Iva; in1.Soa = cmbSoa3.SelectedItem.ToString(); //controllo se il peso è inserito correttamente try { in1.PesoSoa = int.Parse(txtPeso3.Text); } catch { MessageBox.Show("Inserisci un peso > 0", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //se <= 0 errore if (in1.PesoSoa <= 0) { MessageBox.Show("Inserisci un peso > 0", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } info.Add(in1); //controllo separatore per il container 2 nel rimorchio if (chkSeparatore2.Checked) { //aggiungo un'altra informazione carico in1.Soa = cmbSoa4.SelectedItem.ToString(); //controllo se il peso è inserito correttamente try { in1.PesoSoa = int.Parse(txtPeso4.Text); } catch { MessageBox.Show("Inserisci un peso > 0", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //se <= 0 errore if (in1.PesoSoa <= 0) { MessageBox.Show("Inserisci un peso > 0", "Errore", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } info.Add(in1); } } else { carico.Rimorchio.Rimorchio = ""; } //ottiene giorno precedente per il confronto, perchè il datetimepicker ha anche l'ora //nel database l'ora nn c'è DateTime precedente = dateTimePicker1.Value.AddDays(-1); DateTime attuale = dateTimePicker1.Value; //genero il numero viaggio = numeroviaggio di camionista e data più alto + 1 //leggo il massimo codice inserito nel database var numeri_viaggio = from v in database.Tables["VIAGGIO_DI_CARICO"].AsEnumerable() where v.Field <string>("Camionista") == carico.Camionista && v.Field <DateTime>("Data").CompareTo(precedente) > 0 && v.Field <DateTime>("Data").CompareTo(attuale) <= 0 orderby v.Field <int>("NumeroViaggio") descending select v.Field <int>("NumeroViaggio"); int max_num = 0; if (numeri_viaggio.Count() > 0) { //c'era almeno un viaggio di carico con lo stesso camionista e data max_num = numeri_viaggio.ElementAt(0); } carico.NumeroViaggio = max_num + 1; //è progressivo //assegna alle proprietà di output i valori Carico = carico; Infos = info; //chiude form this.Close(); }