using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; using BarcodeLib; using System.IO; using System.Drawing.Imaging; using System.Web.Security; using BiskLog_Point_Of_Sale.Multiple_Login; using BiskLog_Point_Of_Sale.Properties; using BiskLog_Point_Of_Sale.Classes; using BiskLog_Point_Of_Sale.Company_Setup; using BiskLog_Point_Of_Sale.Products_Module; namespace Point_Of_Sale_Managment { public partial class AddProductModule : Form { SqlConnection cn = new SqlConnection(); SqlCommand cm, cm1, cm2; DatabaseConn databasecon = new DatabaseConn(); SqlDataReader dr; ProductListForm proList; SqlTransaction transaction; public static string CardPicture, Bcode, Bcode1, Bcode2, Bcode3, Bcode4, Bcode5; List listofQTY = new List(); List quantitiesunitBase = new List(); List quantitiesunit1 = new List(); List quantitiesunit2 = new List(); List quantitiesunit3 = new List(); List quantitiesunit4 = new List(); List quantitiesunit5 = new List(); List toolParameterComboBoxes = new List(); int numberofUnit = 1; public AddProductModule(ProductListForm pList) { InitializeComponent(); cn = new SqlConnection(databasecon.MyConnection()); proList = pList; } private void btnCancel_Click(object sender, EventArgs e) { Clear(); } public int LoadCategory() { try { cbcCategory.Invoke(new Action(() => { cbcCategory.Items.Clear(); cn.Open(); cm = new SqlCommand("Select category,id from tblCategory where branchID = @branchID", cn); cm.Parameters.AddWithValue("@branchID", Settings.Default.BranchID); cm.ExecuteNonQuery(); dr = cm.ExecuteReader(); while (dr.Read()) { ComboboxItem combobox = new ComboboxItem(); combobox.Text = dr[0].ToString(); combobox.Value = dr[1].ToString(); cbcCategory.Items.Add(combobox); } dr.Close(); cn.Close(); })); return 1; } catch (Exception ex) { cn.Close(); ErrorLogging.WriteToFile(ex.ToString()); return 0; } } public void GeneratePcode() { string product_name = name.Text.Substring(0, 3).ToUpper(); txtPcode.Text = product_name + String.Format("{0:d12}", (DateTime.Now.Ticks / 10) % 1000000000); Bcode = txtPcode.Text.Substring(3); Bcode1 = String.Format("{0:d12}", (DateTime.Now.Ticks / 10) % 1000000000) + "01"; Bcode2 = String.Format("{0:d12}", (DateTime.Now.Ticks / 10) % 1000000000) + "02"; Bcode3 = String.Format("{0:d12}", (DateTime.Now.Ticks / 10) % 1000000000) + "03"; Bcode4 = String.Format("{0:d12}", (DateTime.Now.Ticks / 10) % 1000000000) + "04"; Bcode5 = String.Format("{0:d12}", (DateTime.Now.Ticks / 10) % 1000000000) + "05"; txtBarcode.Text = Bcode; } public int LoadBrand() { try { cbcBrand.Invoke(new Action(() => { cbcBrand.Items.Clear(); cn.Open(); cm = new SqlCommand("Select brand,id from tblBrand where branchID = @branchID", cn); cm.Parameters.AddWithValue("@branchID", Settings.Default.BranchID); cm.ExecuteNonQuery(); dr = cm.ExecuteReader(); while (dr.Read()) { ComboboxItem combobox = new ComboboxItem(); combobox.Text = dr[0].ToString(); combobox.Value = dr[1].ToString(); cbcBrand.Items.Add(combobox); } dr.Close(); cn.Close(); })); return 1; } catch (Exception ex) { cn.Close(); ErrorLogging.WriteToFile(ex.ToString()); return 0; } } public List readyThem() { List listOfFundamental = new List(); if (!String.IsNullOrEmpty(baseUnit.Text)) { FundamentalQuantities quantities = new FundamentalQuantities(); quantities.fullname = txtQty.Text.ToString(); quantities.shortname = (baseUnit.SelectedItem as FundamentalQuantities).shortname.ToString(); quantities.id = Bcode; listOfFundamental.Add(quantities); } if (!String.IsNullOrEmpty(unit1.Text)) { FundamentalQuantities quantities = new FundamentalQuantities(); quantities.fullname = unit1QTY.Text.ToString(); quantities.shortname = (unit1.SelectedItem as FundamentalQuantities).shortname.ToString(); quantities.id = Bcode1; listOfFundamental.Add(quantities); } if (!String.IsNullOrEmpty(unit2.Text)) { FundamentalQuantities quantities = new FundamentalQuantities(); quantities.fullname = unit2QTY.Text.ToString(); quantities.shortname = (unit2.SelectedItem as FundamentalQuantities).shortname.ToString(); quantities.id = Bcode2; listOfFundamental.Add(quantities); } if (!String.IsNullOrEmpty(unit3.Text)) { FundamentalQuantities quantities = new FundamentalQuantities(); quantities.fullname = unit3QTY.Text.ToString(); quantities.shortname = (unit3.SelectedItem as FundamentalQuantities).shortname.ToString(); quantities.id = Bcode3; listOfFundamental.Add(quantities); } if (!String.IsNullOrEmpty(unit4.Text)) { FundamentalQuantities quantities = new FundamentalQuantities(); quantities.fullname = unit4QTY.Text.ToString(); quantities.shortname = (unit4.SelectedItem as FundamentalQuantities).shortname.ToString(); quantities.id = Bcode4; listOfFundamental.Add(quantities); } if (!String.IsNullOrEmpty(unit5.Text)) { FundamentalQuantities quantities = new FundamentalQuantities(); quantities.fullname = unit5QTY.Text.ToString(); quantities.shortname = (unit5.SelectedItem as FundamentalQuantities).shortname.ToString(); quantities.id = Bcode5; listOfFundamental.Add(quantities); } return listOfFundamental; } public List readied() { List listOfFundamental = new List(); if (!String.IsNullOrEmpty(unit1.Text) && !String.IsNullOrEmpty(unit1P.Text) && !String.IsNullOrEmpty(unit1QTY.Text)) { ProductAltUnit quantities = new ProductAltUnit(); quantities.pcode = txtPcode.Text.ToString(); quantities.price = unit1P.Text.ToString(); quantities.unitCode = (unit1.SelectedItem as FundamentalQuantities).id.ToString(); quantities.measuringqty = unit1QTY.Text; quantities.distinctiveCode = txtPcode.Text.ToString() + "-01"; quantities.unitBarcode = Bcode1; listOfFundamental.Add(quantities); } if (!String.IsNullOrEmpty(unit2.Text) && !String.IsNullOrEmpty(unit2P.Text) && !String.IsNullOrEmpty(unit2QTY.Text)) { ProductAltUnit quantities = new ProductAltUnit(); quantities.pcode = txtPcode.Text.ToString(); quantities.price = unit2P.Text.ToString(); quantities.unitCode = (unit2.SelectedItem as FundamentalQuantities).id.ToString(); quantities.measuringqty = unit2QTY.Text; quantities.distinctiveCode = txtPcode.Text.ToString() + "-02"; quantities.unitBarcode = Bcode2; listOfFundamental.Add(quantities); } if (!String.IsNullOrEmpty(unit3.Text) && !String.IsNullOrEmpty(unit3P.Text) && !String.IsNullOrEmpty(unit3QTY.Text)) { ProductAltUnit quantities = new ProductAltUnit(); quantities.pcode = txtPcode.Text.ToString(); quantities.price = unit3P.Text.ToString(); quantities.unitCode = (unit3.SelectedItem as FundamentalQuantities).id.ToString(); quantities.measuringqty = unit3QTY.Text; quantities.distinctiveCode = txtPcode.Text.ToString() + "-03"; quantities.unitBarcode = Bcode3; listOfFundamental.Add(quantities); } if (!String.IsNullOrEmpty(unit4.Text) && !String.IsNullOrEmpty(unit4P.Text) && !String.IsNullOrEmpty(unit4QTY.Text)) { ProductAltUnit quantities = new ProductAltUnit(); quantities.pcode = txtPcode.Text.ToString(); quantities.price = unit4P.Text.ToString(); quantities.unitCode = (unit4.SelectedItem as FundamentalQuantities).id.ToString(); quantities.measuringqty = unit4QTY.Text; quantities.distinctiveCode = txtPcode.Text.ToString() + "-04"; quantities.unitBarcode = Bcode4; listOfFundamental.Add(quantities); } if (!String.IsNullOrEmpty(unit5.Text) && !String.IsNullOrEmpty(unit5P.Text) && !String.IsNullOrEmpty(unit5QTY.Text)) { ProductAltUnit quantities = new ProductAltUnit(); quantities.pcode = txtPcode.Text.ToString(); quantities.price = unit5P.Text.ToString(); quantities.unitCode = (unit5.SelectedItem as FundamentalQuantities).id.ToString(); quantities.measuringqty = unit5QTY.Text; quantities.distinctiveCode = txtPcode.Text.ToString() + "-05"; quantities.unitBarcode = Bcode5; listOfFundamental.Add(quantities); } return listOfFundamental; } private async void btnSave_Click(object sender, EventArgs e) { if (!String.IsNullOrEmpty(cbcBrand.Text) && !String.IsNullOrEmpty(cbcCategory.Text) && !String.IsNullOrEmpty(baseUnit.Text)) { List listOfFundamental = readyThem(); numberofUnit = listOfFundamental.Count; List ready = readied(); Task task = new Task(() => AddProducts(ready)); holding.Visible = true; btnSave.Enabled = false; btnCancel.Enabled = false; task.Start(); int result = await task; if (result == 1) { string title = "Product Added"; string message = "Product has been addded successfully, would you like to print its barcode ?"; Confirmation confirm = new Confirmation(title, message); confirm.BringToFront(); confirm.ShowDialog(); if (confirm.DialogResult == DialogResult.Yes && numberofUnit == 1) { printBarcode(Bcode, int.Parse(txtQty.Text)); } else if (confirm.DialogResult == DialogResult.Yes && numberofUnit > 1) { PickUnit pickUnit = new PickUnit(this, listOfFundamental, int.Parse(txtQty.Text)); pickUnit.BringToFront(); pickUnit.ShowDialog(); } } Clear(); holding.Visible = false; btnSave.Enabled = true; btnCancel.Enabled = true; } else { string title = "Action Required"; string message = ""; if (String.IsNullOrEmpty(cbcBrand.Text)) { message = "You need to select the brand of the product"; } else if(String.IsNullOrEmpty(cbcBrand.Text)) { message = "You need to select the category of the product"; } else { message = "You need to set the base unit of measure for the product"; } NoAction noAction = new NoAction(title, message); noAction.BringToFront(); noAction.ShowDialog(); } } public int AddProducts(List quantities) { try { string Messenger = "Are you sure you want to save this product ?"; string heading = "Save Product"; Confirmation Confirmation = new Confirmation(message: Messenger, title: heading); Confirmation.BringToFront(); Confirmation.ShowDialog(); if (Confirmation.DialogResult == DialogResult.Yes) { txtPcode.Invoke(new Action(() => { cn.Open(); transaction = cn.BeginTransaction(); cm = new SqlCommand("Insert into tblProduct (pcode,barcode,pdesc,bid,cid,price,costprice,product_name,branchID,status,baseUnit,countID) " + "Values(@pcode,@barcode,@pdesc,@bid,@cid,@price,@costprice,@product_name,@branchID,@status,@baseUnit,@countID)", cn); cm.Parameters.AddWithValue("@pcode", txtPcode.Text); cm.Parameters.AddWithValue("@barcode", txtBarcode.Text); cm.Parameters.AddWithValue("@pdesc", txtDesc.Text); cm.Parameters.AddWithValue("@bid", (cbcBrand.SelectedItem as ComboboxItem).Value.ToString()); cm.Parameters.AddWithValue("@cid", (cbcCategory.SelectedItem as ComboboxItem).Value.ToString()); cm.Parameters.AddWithValue("@price", txtPrice.Text); cm.Parameters.AddWithValue("@costprice", costP.Text); cm.Parameters.AddWithValue("@product_name", name.Text); cm.Parameters.AddWithValue("@branchID", Form1.branch); cm.Parameters.AddWithValue("@status", "ACTIVE"); cm.Parameters.AddWithValue("@baseUnit", (baseUnit.SelectedItem as FundamentalQuantities).id.ToString()); cm.Parameters.AddWithValue("@countID", txtPcode.Text + Form1.branch + DateTime.Now.ToString("yyyyMMddHHmmssfff")); cm.Transaction = transaction; cm.ExecuteNonQuery(); cm1 = new SqlCommand("Insert into tblInventory (pcode,quantity,branchID,countID) values(@pcode,@quantity,@branchID,@countID)", cn); cm1.Parameters.AddWithValue("@pcode", txtPcode.Text); cm1.Parameters.AddWithValue("@quantity", txtQty.Text); cm1.Parameters.AddWithValue("@branchID", Form1.branch); cm1.Parameters.AddWithValue("@countID", txtPcode.Text + Form1.branch + DateTime.Now.ToString("yyyyMMddHHmmssfff")); cm1.Transaction = transaction; cm1.ExecuteNonQuery(); cm2 = new SqlCommand("Insert into tblInventoryEntries(pcode, quantity, date, countID, branchID) values " + "(@pcode,@quantity,@date,@countID,@branchID)", cn); cm2.Parameters.AddWithValue("@pcode", txtPcode.Text); cm2.Parameters.AddWithValue("@quantity", txtQty.Text); cm2.Parameters.AddWithValue("@branchID", Form1.branch); cm2.Parameters.AddWithValue("@date", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fffff")); cm2.Parameters.AddWithValue("@countID", txtPcode.Text + Form1.branch + DateTime.Now.ToString("yyyyMMddHHmmssfff")); cm2.Transaction = transaction; cm2.ExecuteNonQuery(); cm = new SqlCommand("Insert into tblPriceChanges (pcode,previous_price,current_price,change_date,branchID,countID) values " + "(@pcode,@previous_price,@current_price,@change_date,@branchID,@countID)", cn); cm.Parameters.AddWithValue("@pcode", txtPcode.Text); cm.Parameters.AddWithValue("@previous_price", txtPrice.Text); cm.Parameters.AddWithValue("@current_price", txtPrice.Text); cm.Parameters.AddWithValue("@change_date", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fffffff")); cm.Parameters.AddWithValue("@branchID", Settings.Default.BranchID); cm.Parameters.AddWithValue("@countID", txtPcode.Text + Settings.Default.BranchID + DateTime.Now.ToString("yyyyMMddHHmmssfff")); cm.Transaction = transaction; cm.ExecuteNonQuery(); cm = new SqlCommand("Insert into tbStock (refno,pcode,qty,sdate,stockinby,branchID,countID) values " + "(@refno,@pcode,@qty,@sdate,@stockinby,@branchID,@countID)", cn); cm.Parameters.AddWithValue("@refno", getReference()); cm.Parameters.AddWithValue("@pcode", txtPcode.Text); cm.Parameters.AddWithValue("@qty", txtQty.Text); cm.Parameters.AddWithValue("@sdate", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fffff")); cm.Parameters.AddWithValue("@stockinby", MainLogin.login_user); cm.Parameters.AddWithValue("@branchID", Settings.Default.BranchID); cm.Parameters.AddWithValue("@countID", txtPcode.Text + Form1.branch + DateTime.Now.ToString("yyyyMMddHHmmssfff")); cm.Transaction = transaction; cm.ExecuteNonQuery(); foreach (ProductAltUnit unit in quantities) { cm = new SqlCommand("Insert into ProductAltUnit ([pcode],[unitCode],[unitBarcode],[price/unit],[quantity/unit],[distinctiveCode],branchID) " + "Values (@pcode,@unitCode,@unitBarcode,@price,@quantity,@distinctiveCode,@branchID)", cn); cm.Parameters.AddWithValue("@pcode", unit.pcode); cm.Parameters.AddWithValue("@unitCode", unit.unitCode); cm.Parameters.AddWithValue("@unitBarcode", unit.unitBarcode); cm.Parameters.AddWithValue("@price", unit.price); cm.Parameters.AddWithValue("@quantity", unit.measuringqty); cm.Parameters.AddWithValue("@distinctiveCode", unit.distinctiveCode); cm.Parameters.AddWithValue("@branchID", Settings.Default.BranchID); cm.Transaction = transaction; cm.ExecuteNonQuery(); } transaction.Commit(); proList.LoadRecords(); cn.Close(); })); LoadBrand(); LoadCategory(); return 1; } else { return 2; } } catch (SqlException ex) { transaction.Rollback(); cn.Close(); ErrorLogging.WriteToFile(ex.ToString()); return 0; } catch (Exception ex) { ErrorLogging.WriteToFile(ex.ToString()); cn.Close(); return 0; } } public string getReference() { return txtPcode.Text.Substring(0, 3).ToUpper() + DateTime.Now.ToString("/yyyy/MM/dd/HH/mm/ss/fff"); } public void Clear() { txtPcode.Invoke(new Action(() => { txtPcode.Clear(); txtBarcode.Clear(); txtDesc.Clear(); txtPrice.Clear(); txtQty.Clear(); cbcBrand.Text = ""; cbcCategory.Text = ""; txtPcode.Focus(); costP.Text = ""; name.Text = ""; btnSave.Enabled = true; baseUnit.DataSource = null; unit1.DataSource = null; unit1P.Text = ""; unit1QTY.Text = ""; unit2.DataSource = null; unit2P.Text = ""; unit2QTY.Text = ""; unit3.DataSource = null; unit3P.Text = ""; unit3QTY.Text = ""; unit4.DataSource = null; unit4P.Text = ""; unit4QTY.Text = ""; unit5.DataSource = null; unit5P.Text = ""; unit5QTY.Text = ""; addToCombos(); })); } private async void AddProductModule_Load(object sender, EventArgs e) { Task task = new Task(() => { LoadBrand(); LoadCategory(); loadUnits(); return 1; }); task.Start(); await task; addToCombos(); addToCombos1(); addToCombos2(); addToCombos3(); addToCombos4(); addToCombos5(); toolParameterComboBoxes.Add(baseUnit); toolParameterComboBoxes.Add(unit1); toolParameterComboBoxes.Add(unit2); toolParameterComboBoxes.Add(unit3); toolParameterComboBoxes.Add(unit4); toolParameterComboBoxes.Add(unit5); } public void refresh() { addToCombos(); addToCombos1(); addToCombos2(); addToCombos3(); addToCombos4(); addToCombos5(); } private void txtPrice_TextChanged(object sender, EventArgs e) { } private void validateComboBox(object sender, EventArgs e) { ComboBox thisCB = sender as ComboBox; if (thisCB.Text != "") { foreach (ComboBox cb in toolParameterComboBoxes) { if (thisCB.Name != cb.Name && thisCB.Text == cb.Text && thisCB.Text != "" && cb.Text != "") { //MessageBox.Show("You cannot duplicate tool parameters." + "\r\n" + "\r\n" // + "That option has been selected in " + cb.Name.Replace("comboBox", ""), "Error"); thisCB.SelectedIndex = -1; break; } } } } public void addToCombos() { quantitiesunitBase.Clear(); List there = new List(); if (unit1.SelectedItem != null) { string unit1selected = (unit1.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit1selected); } if (unit2.SelectedItem != null) { string unit2selected = (unit2.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit2selected); } if (unit3.SelectedItem != null) { string unit3selected = (unit3.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit3selected); } if (unit4.SelectedItem != null) { string unit4selected = (unit4.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit4selected); } if (unit5.SelectedItem != null) { string unit5selected = (unit5.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit5selected); } if (baseUnit.SelectedItem != null) { string baseselected = (baseUnit.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(baseselected); } FundamentalQuantities fundamentalQuantities = new FundamentalQuantities(); fundamentalQuantities.fullname = " "; fundamentalQuantities.id = " "; fundamentalQuantities.shortname = " "; quantitiesunitBase.Add(fundamentalQuantities); foreach (FundamentalQuantities quantity in listofQTY) { if (!there.Contains(quantity.shortname)) { quantitiesunitBase.Add(quantity); } } baseUnit.DataSource = null; baseUnit.DataSource = quantitiesunitBase; baseUnit.DisplayMember = "shortname"; baseUnit.ValueMember = "id"; baseUnit.SelectedIndex = -1; } public void addToCombos1() { quantitiesunit1.Clear(); List there = new List(); if (unit1.SelectedItem != null) { string unit1selected = (unit1.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit1selected); } if (unit2.SelectedItem != null) { string unit2selected = (unit2.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit2selected); } if (unit3.SelectedItem != null) { string unit3selected = (unit3.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit3selected); } if (unit4.SelectedItem != null) { string unit4selected = (unit4.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit4selected); } if (unit5.SelectedItem != null) { string unit5selected = (unit5.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit5selected); } if (baseUnit.SelectedItem != null) { string baseselected = (baseUnit.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(baseselected); } FundamentalQuantities fundamentalQuantities = new FundamentalQuantities(); fundamentalQuantities.fullname = " "; fundamentalQuantities.id = " "; fundamentalQuantities.shortname = " "; quantitiesunit1.Add(fundamentalQuantities); foreach (FundamentalQuantities quantity in listofQTY) { if (!there.Contains(quantity.shortname)) quantitiesunit1.Add(quantity); } unit1.DataSource = quantitiesunit1; unit1.DisplayMember = "shortname"; unit1.ValueMember = "id"; unit1.SelectedIndex = -1; } public void addToCombos2() { quantitiesunit2.Clear(); List there = new List(); if (unit1.SelectedItem != null) { string unit1selected = (unit1.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit1selected); } if (unit2.SelectedItem != null) { string unit2selected = (unit2.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit2selected); } if (unit3.SelectedItem != null) { string unit3selected = (unit3.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit3selected); } if (unit4.SelectedItem != null) { string unit4selected = (unit4.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit4selected); } if (unit5.SelectedItem != null) { string unit5selected = (unit5.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit5selected); } if (baseUnit.SelectedItem != null) { string baseselected = (baseUnit.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(baseselected); } FundamentalQuantities fundamentalQuantities = new FundamentalQuantities(); fundamentalQuantities.fullname = " "; fundamentalQuantities.id = " "; fundamentalQuantities.shortname = " "; quantitiesunit2.Add(fundamentalQuantities); foreach (FundamentalQuantities quantity in listofQTY) { if (!there.Contains(quantity.shortname)) quantitiesunit2.Add(quantity); } unit2.DataSource = quantitiesunit2; unit2.DisplayMember = "shortname"; unit2.ValueMember = "id"; unit2.SelectedIndex = -1; } public void addToCombos3() { quantitiesunit3.Clear(); List there = new List(); if (unit1.SelectedItem != null) { string unit1selected = (unit1.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit1selected); } if (unit2.SelectedItem != null) { string unit2selected = (unit2.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit2selected); } if (unit3.SelectedItem != null) { string unit3selected = (unit3.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit3selected); } if (unit4.SelectedItem != null) { string unit4selected = (unit4.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit4selected); } if (unit5.SelectedItem != null) { string unit5selected = (unit5.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit5selected); } if (baseUnit.SelectedItem != null) { string baseselected = (baseUnit.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(baseselected); } FundamentalQuantities fundamentalQuantities = new FundamentalQuantities(); fundamentalQuantities.fullname = " "; fundamentalQuantities.id = " "; fundamentalQuantities.shortname = " "; quantitiesunit3.Add(fundamentalQuantities); foreach (FundamentalQuantities quantity in listofQTY) { if (!there.Contains(quantity.shortname)) quantitiesunit3.Add(quantity); } unit3.DataSource = quantitiesunit3; unit3.DisplayMember = "shortname"; unit3.ValueMember = "id"; unit3.SelectedIndex = -1; } public void addToCombos4() { quantitiesunit4.Clear(); List there = new List(); if (unit1.SelectedItem != null) { string unit1selected = (unit1.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit1selected); } if (unit2.SelectedItem != null) { string unit2selected = (unit2.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit2selected); } if (unit3.SelectedItem != null) { string unit3selected = (unit3.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit3selected); } if (unit4.SelectedItem != null) { string unit4selected = (unit4.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit4selected); } if (unit5.SelectedItem != null) { string unit5selected = (unit5.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit5selected); } if (baseUnit.SelectedItem != null) { string baseselected = (baseUnit.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(baseselected); } FundamentalQuantities fundamentalQuantities = new FundamentalQuantities(); fundamentalQuantities.fullname = " "; fundamentalQuantities.id = " "; fundamentalQuantities.shortname = " "; quantitiesunit4.Add(fundamentalQuantities); foreach (FundamentalQuantities quantity in listofQTY) { if (!there.Contains(quantity.shortname)) quantitiesunit4.Add(quantity); } unit4.DataSource = quantitiesunit4; unit4.DisplayMember = "shortname"; unit4.ValueMember = "id"; unit4.SelectedIndex = -1; } public void addToCombos5() { quantitiesunit5.Clear(); List there = new List(); if (unit1.SelectedItem != null) { string unit1selected = (unit1.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit1selected); } if (unit2.SelectedItem != null) { string unit2selected = (unit2.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit2selected); } if (unit3.SelectedItem != null) { string unit3selected = (unit3.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit3selected); } if (unit4.SelectedItem != null) { string unit4selected = (unit4.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit4selected); } if (unit5.SelectedItem != null) { string unit5selected = (unit5.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(unit5selected); } if (baseUnit.SelectedItem != null) { string baseselected = (baseUnit.SelectedItem as FundamentalQuantities).shortname.ToString(); there.Add(baseselected); } FundamentalQuantities fundamentalQuantities = new FundamentalQuantities(); fundamentalQuantities.fullname = " "; fundamentalQuantities.id = " "; fundamentalQuantities.shortname = " "; quantitiesunit5.Add(fundamentalQuantities); foreach (FundamentalQuantities quantity in listofQTY) { if (!there.Contains(quantity.shortname)) quantitiesunit5.Add(quantity); } unit5.DataSource = quantitiesunit5; unit5.DisplayMember = "shortname"; unit5.ValueMember = "id"; unit5.SelectedIndex = -1; } private void txtPrice_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 46) { // accepts . character } else if (e.KeyChar == 8) { //accepts backspace } else if ((e.KeyChar < 48) || (e.KeyChar > 57)) //ascii code 48-57 between 0-9 { e.Handled = true; } } public void printBarcode(string code, int qty) { Barcode barcodeAPI = new Barcode(); Color foreColor = Color.Black; Color backColor = Color.Transparent; Image barcodeImage = barcodeAPI.Encode(TYPE.CODE128, code, foreColor, backColor, 290, 120); MemoryStream ms = new MemoryStream(); barcodeImage.Save(ms, ImageFormat.Png); byte[] imageBytes = ms.ToArray(); CardPicture = Convert.ToBase64String(imageBytes); BarcodePrinter view = new BarcodePrinter(CardPicture, code, qty); Form1.printerDialog = view; view.BringToFront(); view.ShowDialog(); Form1.printerDialog = null; } private void cbcCategory_SelectedIndexChanged(object sender, EventArgs e) { } private void txtQty_TextChanged(object sender, EventArgs e) { } private void Name_TextChanged(object sender, EventArgs e) { if (name.Text.Length >= 3) { GeneratePcode(); btnSave.Enabled = true; } else { btnSave.Enabled = false; } } private void ExitBTN_Click(object sender, EventArgs e) { this.Close(); } public int loadUnits() { listofQTY.Clear(); try { cn.Open(); cm = new SqlCommand("Select unitCode,unitname,unitshort from UnitOfMeasure where branchID = @branchID and status = @status", cn); cm.Parameters.AddWithValue("@branchID", Settings.Default.BranchID); cm.Parameters.AddWithValue("@status", "ACTIVE"); cm.ExecuteNonQuery(); dr = cm.ExecuteReader(); while (dr.Read()) { FundamentalQuantities fundamentalQuantities = new FundamentalQuantities(); fundamentalQuantities.id = dr[0].ToString(); fundamentalQuantities.fullname = dr[1].ToString(); fundamentalQuantities.shortname = dr[2].ToString(); listofQTY.Add(fundamentalQuantities); } dr.Close(); cn.Close(); return 1; } catch (Exception ex) { ErrorLogging.WriteToFile(ex.ToString()); cn.Close(); return 0; } } private void button1_Click(object sender, EventArgs e) { UnitMeasure measure = new UnitMeasure(this,available: listofQTY.Select(p => p.fullname).ToList()); measure.BringToFront(); measure.ShowDialog(); if (measure.newQuantity != null && measure.newQuantity.Count > 0) { List quantities = measure.newQuantity; foreach (FundamentalQuantities quantities1 in quantities) { listofQTY.Add(quantities1); quantitiesunitBase.Add(quantities1); quantitiesunit1.Add(quantities1); quantitiesunit2.Add(quantities1); quantitiesunit3.Add(quantities1); quantitiesunit4.Add(quantities1); quantitiesunit5.Add(quantities1); string currentValue = "-1"; if (baseUnit.SelectedValue != null) currentValue = baseUnit.SelectedValue.ToString(); baseUnit.DataSource = null; baseUnit.DataSource = quantitiesunitBase; baseUnit.DisplayMember = "shortname"; baseUnit.ValueMember = "id"; baseUnit.SelectedIndex = -1; if (currentValue != "-1") baseUnit.SelectedValue = currentValue; string currentValue1 = "-1"; if (unit1.SelectedValue != null) currentValue1 = unit1.SelectedValue.ToString(); unit1.DataSource = null; unit1.DataSource = quantitiesunit1; unit1.DisplayMember = "shortname"; unit1.ValueMember = "id"; unit1.SelectedIndex = -1; if (currentValue1 != "-1") unit1.SelectedValue = currentValue1; string currentValue2 = "-1"; if (unit2.SelectedValue != null) currentValue2 = unit2.SelectedValue.ToString(); unit2.DataSource = null; unit2.DataSource = quantitiesunit2; unit2.DisplayMember = "shortname"; unit2.ValueMember = "id"; unit2.SelectedIndex = -1; if (currentValue2 != "-1") unit2.SelectedValue = currentValue2; string currentValue3 = "-1"; if (unit3.SelectedValue != null) currentValue3 = unit3.SelectedValue.ToString(); unit3.DataSource = null; unit3.DataSource = quantitiesunit3; unit3.DisplayMember = "shortname"; unit3.ValueMember = "id"; unit3.SelectedIndex = -1; if (currentValue3 != "-1") unit3.SelectedValue = currentValue3; string currentValue4 = "-1"; if (unit4.SelectedValue != null) currentValue4 = unit4.SelectedValue.ToString(); unit4.DataSource = null; unit4.DataSource = quantitiesunit4; unit4.DisplayMember = "shortname"; unit4.ValueMember = "id"; unit4.SelectedIndex = -1; if (currentValue4 != "-1") unit4.SelectedValue = currentValue4; string currentValue5 = "-1"; if (unit5.SelectedValue != null) currentValue5 = unit5.SelectedValue.ToString(); unit5.DataSource = null; unit5.DataSource = quantitiesunit5; unit5.DisplayMember = "shortname"; unit5.ValueMember = "id"; unit5.SelectedIndex = -1; if (currentValue5 != "-1") unit5.SelectedValue = currentValue5; } } } private void exitBTN_MouseEnter(object sender, EventArgs e) { exitBTN.BackColor = Color.Crimson; } private void manageUnitsToolStripMenuItem_Click(object sender, EventArgs e) { ManageUnits measure = new ManageUnits(this); measure.BringToFront(); measure.ShowDialog(); } private void baseUnit_TextChanged(object sender, EventArgs e) { if (String.IsNullOrEmpty(baseUnit.Text) || baseUnit.SelectedIndex == -1) { unit1.SelectedIndex = -1; unit2.SelectedIndex = -1; unit3.SelectedIndex = -1; unit4.SelectedIndex = -1; unit5.SelectedIndex = -1; unit1.Enabled = false; unit2.Enabled = false; unit3.Enabled = false; unit4.Enabled = false; unit5.Enabled = false; } else { unit1.Enabled = true; unit2.Enabled = true; unit3.Enabled = true; unit4.Enabled = true; unit5.Enabled = true; } } private void unit1_TextChanged(object sender, EventArgs e) { if (!String.IsNullOrEmpty(unit1.Text)) { unit1QTY.Enabled = true; unit1P.Enabled = true; } else { unit1QTY.Enabled = false; unit1P.Enabled = false; } } private void unit2_TextChanged(object sender, EventArgs e) { if (!String.IsNullOrEmpty(unit2.Text)) { unit2QTY.Enabled = true; unit2P.Enabled = true; } else { unit2P.Enabled = false; unit2QTY.Enabled = false; } } private void unit3_TextChanged(object sender, EventArgs e) { if (!String.IsNullOrEmpty(unit3.Text)) { unit3QTY.Enabled = true; unit3P.Enabled = true; } else { unit3QTY.Enabled = false; unit3P.Enabled = false; } } private void unit4_TextChanged(object sender, EventArgs e) { if (!String.IsNullOrEmpty(unit4.Text)) { unit4QTY.Enabled = true; unit4P.Enabled = true; } else { unit4QTY.Enabled = false; unit4P.Enabled = false; } } private void unit5_TextChanged(object sender, EventArgs e) { if (!String.IsNullOrEmpty(unit5.Text)) { unit5QTY.Enabled = true; unit5P.Enabled = true; } else { unit5QTY.Enabled = false; unit5P.Enabled = false; } } private void ExitBTN_MouseLeave(object sender, EventArgs e) { exitBTN.BackColor = Color.Transparent; } private void txtQty_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 46) { // accepts . character } else if (e.KeyChar == 8) { //accepts backspace } else if ((e.KeyChar < 48) || (e.KeyChar > 57)) //ascii code 48-57 between 0-9 { e.Handled = true; } } } }