using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml.Linq; namespace Fuel01 { public partial class f_saisie : Form { DataSet1.tb_stationDataTable tb_station = new DataSet1.tb_stationDataTable(); DataSet1.tb_prestaDataTable tb_presta = new DataSet1.tb_prestaDataTable(); DataSet1.tb_venteDataTable tb_vente = new DataSet1.tb_venteDataTable(); DataSet1.tb_venteDataTable tb_ventetmp = new DataSet1.tb_venteDataTable(); DataSet1.tb_vehiDataTable tb_vehi = new DataSet1.tb_vehiDataTable(); List Lcarb = new List(); //Liste carbu hors diesel List Ldies = new List(); //Liste diesel List Lprod = new List(); //Liste des prestations List Lmycarb = new List(); //Liste tous les carbuants DataSet1.tb_stationRow myStation = null; DataSet1.tb_vehiRow myVehi = null; bool hasChanged = false; bool isDiesel = false; int indiceCarb = -1; string id_vehi=""; public f_saisie() { InitializeComponent(); } private void f_saisie_Load(object sender, EventArgs e) { Program.subfolder = Program.folder + @"\" + Program.key_ope; if (File.Exists(Program.subfolder + @"\vehicule.xml")) tb_vehi.ReadXml(Program.subfolder + @"\vehicule.xml"); tbvehiBindingSource.DataSource = tb_vehi; if (File.Exists(Program.subfolder + @"\station.xml")) tb_station.ReadXml(Program.subfolder + @"\station.xml"); tbstationBindingSource.DataSource = tb_station; myStation = tb_station.FindBykey_sta(Program.key_sta); DataRowView rowView = null; if (myStation != null) { tbstationBindingSource.MoveFirst(); while (true) { rowView = tbstationBindingSource.Current as DataRowView; if (myStation != rowView.Row) if (tbstationBindingSource.Position == tbstationBindingSource.Count) break; else tbstationBindingSource.MoveNext(); else break; } } if (File.Exists(Program.subfolder + @"\presta_base.xml")) tb_presta.ReadXml(Program.subfolder + @"\presta_base.xml"); //tb_presta.AcceptChanges(); tbprestaBindingSource.DataSource = tb_presta; if (File.Exists(Program.subfolder + @"\vente.xml")) tb_vente.ReadXml(Program.subfolder + @"\vente.xml"); tb_vente.AcceptChanges(); tbventeBindingSource.DataSource = tb_vente; //id_sta = key_sta.Text; tbprestaBindingSource.Filter = " sta_pr='" + Program.key_sta + "'"; tbventeBindingSource.Filter = " station_vt='" + Program.key_sta + "'"; tbprestaBindingSource.Sort = "sta_pr,kind_pr,prod_pr"; tbstationBindingSource_PositionChanged(null, null); tbventetmpbindingSource.DataSource = tb_ventetmp; turnBlock(false); } private void tbstationBindingSource_PositionChanged(object sender, EventArgs e) { Lprod.Clear(); Lcarb.Clear(); //id_sta = key_sta.Text; tbprestaBindingSource.Filter = " sta_pr='" + Program.key_sta + "'"; tbventeBindingSource.Filter = " station_vt='" + Program.key_sta + "'"; tbprestaBindingSource.MoveFirst(); int old_pos = -1; while (tbprestaBindingSource.Position != -1 && tbprestaBindingSource.Position < tbprestaBindingSource.Count && old_pos < tbprestaBindingSource.Position) { dg_presta.Refresh(); old_pos = tbprestaBindingSource.Position; DataSet1.tb_prestaRow mydata = null; DataRowView myrow = tbprestaBindingSource.Current as DataRowView; if (myrow != null) { mydata = myrow.Row as DataSet1.tb_prestaRow; if (mydata["kind_pr"].ToString() == "Carburant") { if (mydata["prod_pr"].ToString().ToUpper().Contains("DIESEL")) Ldies.Add(mydata); else Lcarb.Add(mydata); } else Lprod.Add(mydata); } tbprestaBindingSource.MoveNext(); } aff_zero(); } private void aff_carb(string curcarb) { rdCarb1.Enabled = rdCarb2.Enabled = rdCarb3.Enabled = rdCarb4.Enabled = rdCarb5.Enabled = rdCarb6.Enabled = false; rdCarb1.Text = rdCarb2.Text = rdCarb3.Text = rdCarb4.Text = rdCarb5.Text = rdCarb6.Text = ""; nuPxCarb.Value = 0; if (isDiesel) Lmycarb = Ldies; else Lmycarb = Lcarb; if (Lmycarb.Count >= 1) { rdCarb1.Enabled = true; rdCarb1.Text = Lmycarb[0].prod_pr; rdCarb1.Checked = (curcarb == rdCarb1.Text); if ( rdCarb1.Checked ) rdCarb_CheckedChanged(rdCarb1, null); } if (Lmycarb.Count >= 2) { rdCarb2.Enabled = true; rdCarb2.Text = Lmycarb[1].prod_pr; rdCarb2.Checked = (curcarb == rdCarb2.Text); if (rdCarb2.Checked) rdCarb_CheckedChanged(rdCarb2, null); } if (Lmycarb.Count >= 3) { rdCarb3.Enabled = true; rdCarb3.Text = Lmycarb[2].prod_pr; rdCarb3.Checked = (curcarb == rdCarb3.Text); if (rdCarb3.Checked) rdCarb_CheckedChanged(rdCarb3, null); } if (Lmycarb.Count >= 4) { rdCarb4.Enabled = true; rdCarb4.Text = Lmycarb[3].prod_pr; rdCarb4.Checked = (curcarb == rdCarb4.Text); if (rdCarb4.Checked) rdCarb_CheckedChanged(rdCarb4, null); } if (Lmycarb.Count >=5 ) { rdCarb5.Enabled = true; rdCarb5.Text = Lmycarb[4].prod_pr; rdCarb5.Checked = (curcarb == rdCarb5.Text); if (rdCarb5.Checked) rdCarb_CheckedChanged(rdCarb5, null); } if (Lmycarb.Count >= 6) { rdCarb6.Enabled = true; rdCarb6.Text = Lmycarb[5].prod_pr; rdCarb6.Checked = (curcarb == rdCarb6.Text); if (rdCarb6.Checked) rdCarb_CheckedChanged(rdCarb6, null); } //if (Lcarb.Count > 0) //{ // rdCarb1.Checked = true; // rdCarb_CheckedChanged(rdCarb1, null); //} } private void aff_prod() { if (Lprod.Count >= 1) { chkPr1.Enabled = nuPr1.Enabled = nuQtt1.Enabled = true; chkPr1.Text = Lprod[0].prod_pr; nuPr1.Value = Lprod[0].ttc_pr; } if (Lprod.Count >= 2) { chkPr2.Enabled = nuPr2.Enabled = nuQtt2.Enabled = true; chkPr2.Text = Lprod[1].prod_pr; nuPr2.Value = Lprod[1].ttc_pr; } if (Lprod.Count >= 3) { chkPr3.Enabled = nuPr3.Enabled = nuQtt3.Enabled = true; chkPr3.Text = Lprod[2].prod_pr; nuPr3.Value = Lprod[2].ttc_pr; } } private void nu_ValueChanged(object sender, EventArgs e) { string from = ((NumericUpDown)sender).Name; switch (from) { case "nuPxCarb": case "nuVolCarb": txtMntCarb.Text = string.Format("{0:0.00}", nuPxCarb.Value * nuVolCarb.Value); break; case "nuPr1": case "nuQtt1": txtTot1.Text = string.Format("{0:0.00}", nuPr1.Value * nuQtt1.Value); break; case "nuPr2": case "nuQtt2": txtTot2.Text = string.Format("{0:0.00}", nuPr2.Value * nuQtt2.Value); break; case "nuPr3": case "nuQtt3": txtTot3.Text = string.Format("{0:0.00}", nuPr3.Value * nuQtt3.Value); break; case "nuPrFree": case "nuQttFree": txtTotFree.Text = string.Format("{0:0.00}", nuPrFree.Value * nuQttFree.Value); break; } //txtTotGal.Text = string.Format("{0:0.00}", nuPxCarb.Value * nuVolCarb.Value + nuPr1.Value * nuQtt1.Value + nuPr2.Value * nuQtt2.Value + nuPr3.Value * nuQtt3.Value + nuPrFree.Value * nuQttFree.Value); } private void rdCarb_CheckedChanged(object sender, EventArgs e) { if (((RadioButton)sender).Checked == true) { //on récupère le nom pour l'indice du tableau indiceCarb = Convert.ToInt16(((RadioButton)sender).Name.Substring(6, 1))-1; if (indiceCarb < Lmycarb.Count && indiceCarb >= 0) nuPxCarb.Value = Lmycarb[indiceCarb].ttc_pr; else MessageBox.Show("Carburant non disponible pour ce véhicule!"); } } private void bt_abort_Click(object sender, EventArgs e) { } private void bt_valid_Click(object sender, EventArgs e) { if (nuVolCarb.Value > 0) ajpresta( Lmycarb[indiceCarb],null, nuPxCarb.Value, nuVolCarb.Value, txtMntCarb.Text); if (chkPr1.Checked) ajpresta(Lprod[0], null, nuPr1.Value, nuQtt1.Value, txtTot1.Text); if (chkPr2.Checked) ajpresta(Lprod[1], null, nuPr2.Value, nuQtt2.Value, txtTot2.Text); if (chkPr3.Checked) ajpresta(Lprod[2], null, nuPr3.Value, nuQtt3.Value, txtTot3.Text); if (chkPrFree.Checked)ajpresta( null, txtPrFree.Text, nuPrFree.Value, nuQttFree.Value, txtTotFree.Text); f_ticket ticket = new f_ticket(myStation, myVehi, tb_ventetmp); if (ticket.ShowDialog() == System.Windows.Forms.DialogResult.OK) { foreach (DataSet1.tb_venteRow myVt in tb_ventetmp) { tb_vente.Addtb_venteRow(myVt.epreuve_vt, myVt.station_vt, myVt.vehi_vt, myVt.prod_vt, myVt.date_vt, myVt.qtt_vt, myVt.pu_vt, myVt.tva_vt,myVt.ht_vt, myVt.ttc_vt); } hasChanged = true; bt_save.Enabled = hasChanged; } tb_ventetmp.Clear(); aff_zero(); } private void ajpresta(DataSet1.tb_prestaRow prRow, String lib, decimal pu, decimal qtt, string total_str) { //récup du libellé si presta connue decimal tva = 0; decimal totht = 0; decimal total = Convert.ToDecimal( total_str); if (prRow != null) { lib = prRow.prod_pr; tva = prRow.tva_pr; totht = Math.Round(total / (1 - tva / 100),2); } DateTime dt=DateTime.Now; tb_ventetmp.Addtb_venteRow(Program.key_ope,Program.key_sta,id_vehi,lib,dt,qtt,pu,tva,totht,total); //DataSet1.tb_venteRow newVente = DataSet1.tb_venteRow { date_vt = dt, epreuve_vt = Program.key_ope, station_vt = Program.key_sta, vehi_vt = id_vehi, prod_vt = lib, ttc_vt = Convert.ToInt32(total), qtt_vt = qtt, pu_vt = pu }; } private void bt_search_Click(object sender, EventArgs e) { UInt32 num; if (UInt32.TryParse(text_no.Text, out num)) { myVehi = tb_vehi.FirstOrDefault(v => v.num_vehi == num && v.categ_vehi == (rdAuto.Checked ? "A" : "M")); if (myVehi != null) { lbl_pilote.Text = myVehi.cond_vehi ; isDiesel = myVehi.carbu_vehi.ToUpper().Contains("DIESEL"); aff_carb(myVehi.carbu_vehi); aff_prod(); id_vehi = myVehi.sort1_vehi; } else { aff_zero(); text_no.Text = num.ToString(); text_no.SelectionStart = 0; text_no.SelectionLength = text_no.Text.Length; } } turnBlock(myVehi != null); } private void turnBlock(bool status) { grpCarb.Enabled = status; grpServ.Enabled = status; bt_abort.Enabled = status; bt_valid.Enabled = status; } private void aff_zero() { chkPr1.Enabled = chkPr2.Enabled = chkPr3.Enabled = false; chkPr1.Checked = chkPr2.Checked = chkPr3.Checked = chkPrFree.Checked = false; nuPr1.Enabled = nuPr2.Enabled = nuPr3.Enabled = false; nuQtt1.Enabled = nuQtt2.Enabled = nuQtt3.Enabled = false; chkPr1.Text = chkPr2.Text = chkPr3.Text = txtPrFree.Text = ""; nuVolCarb.Value= nuPr1.Value = nuPr2.Value = nuPr3.Value = nuPrFree.Value = 0; nuQtt1.Value = nuQtt2.Value = nuQtt3.Value = nuQttFree.Value = 1; text_no.Text = ""; } private void bt_enreg_Click(object sender, EventArgs e) { } private void text_no_KeyUp(object sender, KeyEventArgs e) { if (e.KeyValue == 13) bt_search_Click(null, null); } private void bt_save_Click(object sender, EventArgs e) { tb_vente.WriteXml(Program.subfolder + @"\vente.xml"); hasChanged = false; bt_save.Enabled = hasChanged; } private void f_saisie_FormClosing(object sender, FormClosingEventArgs e) { if (hasChanged) bt_save_Click(null, null); e.Cancel = false; } } }