private void ValueDocPriceTxt1_TextChanged(object sender, EventArgs e) { ValueDocPriceTxt1.Text = ValueDocPriceTxt1.Text.Replace(',', '.'); ValueDocPriceTxt1.SelectionStart = ValueDocPriceTxt1.Text.Length; if (ValueDocPriceTxt1.Text == "") { ValueDocPriceTxt1.Text = "0"; } if (chk.CheckPrice(CashTxt.Text) == "" || CashTxt.Text == "") { bool error = false; double sumprice = (CashTxt.Text == "" ? 0 : Convert.ToDouble(CashTxt.Text)); for (int i = 1; i <= Convert.ToInt16(ValueDocItemsTxt.Text); i++) { if (chk.CheckPrice(ProductsPanel.Controls.Find("ValueDocPriceTxt" + i, true).First().Text) == "" || ProductsPanel.Controls.Find("ValueDocPriceTxt" + i, true).First().Text == "") { if (chk.CheckPrice(ProductsPanel.Controls.Find("ValueDocPriceTxt" + i, true).First().Text) == "") { sumprice += Convert.ToDouble(ProductsPanel.Controls.Find("ValueDocPriceTxt" + i, true).First().Text); } } else { error = true; } } if (error == false) { PriceReceiptTxt.Text = sumprice.ToString(); } else { PriceReceiptTxt.Text = ""; } } else { PriceReceiptTxt.Text = ""; } }
private void AddBtn_Click(object sender, EventArgs e) { bool noerrors = true; for (int i = 1; i <= Convert.ToInt16(ProdItemsTxt.Text); i++) { if (chk.CheckPrice(ProductsPanel.Controls.Find("SalesPriceTxt" + i, true).First().Text) != "") { ProductsPanel.Controls.Find("SalesPriceTxt" + i, true).First().BackColor = Color.Red; noerrors = false; } else { ProductsPanel.Controls.Find("SalesPriceTxt" + i, true).First().BackColor = SystemColors.Window; noerrors = true; } if (chk.CheckPrice(ProductsPanel.Controls.Find("SalesDiscTxt" + i, true).First().Text) != "") { ProductsPanel.Controls.Find("SalesDiscTxt" + i, true).First().BackColor = Color.Red; noerrors = false; } else { ProductsPanel.Controls.Find("SalesDiscTxt" + i, true).First().BackColor = SystemColors.Window; noerrors = true; } } if (noerrors == false) { MessageBox.Show("Θα πρέπει να διορθώσετε τα στοιχεία πώλησης."); } else { using (SqlConnection sqlcon = new SqlConnection(con.ConnectionString)) { try { sqlcon.Open(); SqlDataAdapter SearchAdapt = new SqlDataAdapter("select * from SupplierInvoice where SupplierId=@supid and InvoiceId=@invid and InvoiceSeries=@invser", sqlcon); SearchAdapt.SelectCommand.Parameters.AddWithValue(@"supid", IdSupplierTxt.Text); SearchAdapt.SelectCommand.Parameters.AddWithValue(@"invid", IdInvoiceTxt.Text); SearchAdapt.SelectCommand.Parameters.AddWithValue(@"invser", SeriesInvoiceTxt.Text); DataTable dt = new DataTable(); SearchAdapt.Fill(dt); if (dt.Rows.Count > 0) { MessageBox.Show("Υπάρχει ήδη καταχωρημένο τιμολόγιο με τον αριθμό, τη σειρά και τον προμηθευτή που έχετε εισάγει."); } else { DataTable dt2 = new DataTable(); if (PayInvoiceCmb.GetItemText(PayInvoiceCmb.SelectedItem) == "Πίστωση") { string query = "select Debit from Suppliers where Id=@id"; SqlDataAdapter SearchAdapt2 = new SqlDataAdapter(query, sqlcon); SearchAdapt2.SelectCommand.Parameters.AddWithValue(@"id", IdSupplierTxt.Text); SearchAdapt2.Fill(dt2); } SqlTransaction InsTrans = sqlcon.BeginTransaction("InsertTransaction"); SqlCommand InsCmd1 = sqlcon.CreateCommand(); InsCmd1.Connection = sqlcon; SqlCommand InsCmd2 = sqlcon.CreateCommand(); InsCmd2.Connection = sqlcon; InsCmd1.Transaction = InsTrans; InsCmd2.Transaction = InsTrans; try { string DisNotes = ""; foreach (var item in DisLs) { if (DisNotes == "") { DisNotes += item; } else { DisNotes += ", " + item; } } foreach (var item in ls) { SqlCommand InsCmd5 = sqlcon.CreateCommand(); InsCmd5.Connection = sqlcon; InsCmd5.Transaction = InsTrans; InsCmd5.CommandText = "update SupplierDisNote set Invoice='1' where Id=@id"; InsCmd5.Parameters.AddWithValue("@id", item); InsCmd5.ExecuteNonQuery(); } InsCmd1.CommandText = "insert into SupplierInvoice (Id, SupplierId, InvoiceId, InvoiceSeries, InvoiceDate, InvoicePayment, InvoiceDisc, InvoicePrice,InvoiceDisNotes) values((select dbo.nvl(Max(Id)+1,0) from dbo.SupplierInvoice), @supid, @invid, @ser, @date, @pay, @disc, @price,@note)"; InsCmd1.Parameters.AddWithValue("@supid", IdSupplierTxt.Text); InsCmd1.Parameters.AddWithValue("@invid", IdInvoiceTxt.Text); InsCmd1.Parameters.AddWithValue("@ser", SeriesInvoiceTxt.Text); InsCmd1.Parameters.AddWithValue("@date", DateTimeInvoicePicker.Value); InsCmd1.Parameters.AddWithValue("@pay", PayInvoiceCmb.GetItemText(PayInvoiceCmb.SelectedItem)); InsCmd1.Parameters.AddWithValue("@disc", DiscInvoiceTxt.Text); InsCmd1.Parameters.AddWithValue("@price", PriceInvoiceTxt.Text); InsCmd1.Parameters.AddWithValue("@note", DisNotes); InsCmd1.ExecuteNonQuery(); if (dt2.Rows.Count == 1) { decimal oldDebit = Convert.ToDecimal(dt2.Rows[0][0].ToString()); decimal newDebit = oldDebit + Convert.ToDecimal(PriceInvoiceTxt.Text); InsCmd2.CommandText = "update Suppliers set Debit= @debit where Id=@id"; InsCmd2.Parameters.AddWithValue("@debit", newDebit); InsCmd2.Parameters.AddWithValue("@id", IdSupplierTxt.Text); InsCmd2.ExecuteNonQuery(); } for (int i = 1; i <= Convert.ToInt16(ProdItemsTxt.Text); i++) { decimal DiscProd = 100 - Math.Round((1 - Convert.ToDecimal(ProductsPanel.Controls.Find("DiscProd1Txt" + i, true).First().Text) / 100) * (1 - Convert.ToDecimal(ProductsPanel.Controls.Find("DiscProd2Txt" + i, true).First().Text) / 100) * (1 - Convert.ToDecimal(ProductsPanel.Controls.Find("DiscProd3Txt" + i, true).First().Text) / 100) * 100, 2); SqlCommand InsCmd3 = sqlcon.CreateCommand(); InsCmd3.Connection = sqlcon; SqlCommand InsCmd4 = sqlcon.CreateCommand(); InsCmd4.Connection = sqlcon; InsCmd3.Transaction = InsTrans; InsCmd4.Transaction = InsTrans; InsCmd3.CommandText = "insert into SupplierInvoiceProducts (Id,SupplierInvoiceId,ProductId,ProductQuant,ProductPrice,ProductDisc) values ((select dbo.nvl(Max(Id)+1,0) from SupplierInvoiceProducts),(select dbo.nvl(Max(Id),0) from dbo.SupplierInvoice),@prodid,@prodquant,@prodprice,@proddisc)"; InsCmd3.Parameters.AddWithValue("@prodid", ProductsPanel.Controls.Find("IdProdTxt" + i, true).First().Text); InsCmd3.Parameters.AddWithValue("@prodquant", ProductsPanel.Controls.Find("QuantProdTxt" + i, true).First().Text); InsCmd3.Parameters.AddWithValue("@prodprice", ProductsPanel.Controls.Find("ValueProdTxt" + i, true).First().Text); InsCmd3.Parameters.AddWithValue("@proddisc", DiscProd); InsCmd3.ExecuteNonQuery(); InsCmd4.CommandText = "update ProductsReserve set Price=@prodprice, Disc=@proddisc, SupplierDisc=@supdisc,SalesPrice=@sprice, SalesDisc=@sdisc where DocId=@id and ProductId=@prodid and SupplierId=@supid"; InsCmd4.Parameters.AddWithValue("@prodid", ProductsPanel.Controls.Find("IdProdTxt" + i, true).First().Text); InsCmd4.Parameters.AddWithValue("@prodprice", ProductsPanel.Controls.Find("ValueProdTxt" + i, true).First().Text); InsCmd4.Parameters.AddWithValue("@proddisc", DiscProd); InsCmd4.Parameters.AddWithValue("@sprice", ProductsPanel.Controls.Find("SalesPriceTxt" + i, true).First().Text); InsCmd4.Parameters.AddWithValue("@sdisc", ProductsPanel.Controls.Find("SalesDiscTxt" + i, true).First().Text); InsCmd4.Parameters.AddWithValue("@supdisc", DiscInvoiceTxt.Text); InsCmd4.Parameters.AddWithValue("@id", ProductsPanel.Controls.Find("DisNoteProdTxt" + i, true).First().Text); InsCmd4.Parameters.AddWithValue("@supid", IdSupplierTxt.Text); InsCmd4.ExecuteNonQuery(); } InsTrans.Commit(); MessageBox.Show("Το τιμολόγιο του προμηθευτή καταχωρήθηκε με επιτυχία."); this.SuspendLayout(); ClearProds(); ClearValues(); } catch (Exception ex) { MessageBox.Show(ex.GetType() + ": " + ex.Message + "\n Commit Exception \n Παρουσιάστηκε κάποιο μη αναμενόμενο σφάλμα στην καταχώρηση του τιμολογίου του προμηθευτή. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); try { InsTrans.Rollback(); } catch (Exception ex2) { MessageBox.Show(ex2.GetType() + ": " + ex2.Message + "\n Rollback Exception \n Παρουσιάστηκε κάποιο μη αναμενόμενο σφάλμα στην καταχώρηση του τιμολογίου του προμηθευτή. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } } } sqlcon.Close(); } catch (Exception) { MessageBox.Show("Σφάλμα σύνδεσης. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } this.ResumeLayout(false); } } }
private void AddBtn_Click(object sender, EventArgs e) { bool blanks = false; bool falsedate = false; for (int i = 1; i <= Convert.ToInt16(ValueDocItemsTxt.Text); i++) { if (ProductsPanel.Controls.Find("ValueDocIdTxt" + i, true).First().Text != "" && ProductsPanel.Controls.Find("ValueDocIssuerTxt" + i, true).First().Text != "") { if (ProductsPanel.Controls.Find("ValueDocPriceTxt" + i, true).First().Text != "" && ProductsPanel.Controls.Find("ValueDocPriceTxt" + i, true).First().Text != "0") { if (ProductsPanel.Controls.Find("ValueDocIdTxt" + i, true).First().Text == "") { blanks = true; } else if (ProductsPanel.Controls.Find("ValueDocIssuerTxt" + i, true).First().Text == "") { blanks = true; } else if (((DateTimePicker)ProductsPanel.Controls.Find("ValueDocDatePkr" + i, true).First()).Value < DateTimeReceiptPicker.Value) { falsedate = true; } } } } if (IdCustomerTxt.Text == "") { MessageBox.Show("Θα πρέπει να επιλέξετε Πελάτη."); } else if (IdReceiptTxt.Text == "") { MessageBox.Show("Θα πρέπει να συμπληρώσετε αριθμό απόδειξης."); } else if (DateTimeReceiptPicker.Value > System.DateTime.Today.AddDays(1)) { MessageBox.Show("Η ημερομηνία δεν μπορεί να είναι μεταγενέστερη της σημερινής."); } else if (chk.CheckPrice(PriceReceiptTxt.Text) != "") { MessageBox.Show("Το ποσό της απόδειξης δεν είναι έγκυρο. Θα πρέπει να συμπληρώσετε ορθά τα ποσά των αξιογράφων ή/και των μετρητών."); } else if (Convert.ToDouble(PriceReceiptTxt.Text) == 0) { MessageBox.Show("Θα πρέπει να συμπληρώσετε τα ποσά των αξιογράφων ή/και των μετρητών."); } else if (blanks == true) { MessageBox.Show("Θα πρέπει να συμπληρώσετε αριθμό αξιογράφου και εκδότη."); } else if (falsedate == true) { MessageBox.Show("Η ημερομηνία λήξης αξιογράφου δεν μπορεί να είναι προγενέστερη της ημερομηνίας της απόδειξης."); } else { using (SqlConnection sqlcon = new SqlConnection(con.ConnectionString)) { try { sqlcon.Open(); DataTable dt2 = new DataTable(); { string query = "select Credit from Customers where Id=@id"; SqlDataAdapter SearchAdapt2 = new SqlDataAdapter(query, sqlcon); SearchAdapt2.SelectCommand.Parameters.AddWithValue(@"id", IdCustomerTxt.Text); SearchAdapt2.Fill(dt2); } SqlTransaction InsTrans = sqlcon.BeginTransaction("InsertTransaction"); SqlCommand InsCmd1 = sqlcon.CreateCommand(); InsCmd1.Connection = sqlcon; SqlCommand InsCmd2 = sqlcon.CreateCommand(); InsCmd2.Connection = sqlcon; InsCmd1.Transaction = InsTrans; InsCmd2.Transaction = InsTrans; try { InsCmd1.CommandText = "insert into CustomerReceipt (Id, CustomerId, ReceiptId, ReceiptSeries, ReceiptDate, ReceiptPrice, ReceiptCash, ReceiptNotes) values((select dbo.nvl(Max(Id)+1,0) from dbo.CustomerReceipt), @supid, @reid, @ser, @date, @price, @cash, @not)"; InsCmd1.Parameters.AddWithValue("@supid", IdCustomerTxt.Text); InsCmd1.Parameters.AddWithValue("@reid", IdReceiptTxt.Text); InsCmd1.Parameters.AddWithValue("@ser", SeriesReceiptTxt.Text); InsCmd1.Parameters.AddWithValue("@date", DateTimeReceiptPicker.Value); InsCmd1.Parameters.AddWithValue("@price", PriceReceiptTxt.Text); InsCmd1.Parameters.AddWithValue("@cash", (CashTxt.Text == "" ? "0" : CashTxt.Text)); InsCmd1.Parameters.AddWithValue("@not", NotesTxt.Text); InsCmd1.ExecuteNonQuery(); if (dt2.Rows.Count == 1) { decimal oldCredit = Convert.ToDecimal(dt2.Rows[0][0].ToString()); decimal newCredit = oldCredit - Convert.ToDecimal(PriceReceiptTxt.Text); InsCmd2.CommandText = "update Customers set Credit= @credit where Id=@id"; InsCmd2.Parameters.AddWithValue("@credit", newCredit); InsCmd2.Parameters.AddWithValue("@id", IdCustomerTxt.Text); InsCmd2.ExecuteNonQuery(); } for (int i = 1; i <= Convert.ToInt16(ValueDocItemsTxt.Text); i++) { if (ProductsPanel.Controls.Find("ValueDocPriceTxt" + i, true).First().Text != "") { SqlCommand InsCmd3 = sqlcon.CreateCommand(); InsCmd3.Connection = sqlcon; InsCmd3.Transaction = InsTrans; InsCmd3.CommandText = "insert into ReceiptValueDocs (Id,ReceiptId,ReceiptKind,ValueDocId,ValueDocDate,ValueDocPrice,ValueDocIssuer) values ((select dbo.nvl(Max(Id)+1,0) from ReceiptValueDocs),(select dbo.nvl(Max(Id),0) from dbo.CustomerReceipt),1,@id,@date,@price,@issuer)"; InsCmd3.Parameters.AddWithValue("@id", ProductsPanel.Controls.Find("ValueDocIdTxt" + i, true).First().Text); InsCmd3.Parameters.AddWithValue("@date", ((DateTimePicker)ProductsPanel.Controls.Find("ValueDocDatePkr" + i, true).First()).Value); InsCmd3.Parameters.AddWithValue("@price", ProductsPanel.Controls.Find("ValueDocPriceTxt" + i, true).First().Text); InsCmd3.Parameters.AddWithValue("@issuer", ProductsPanel.Controls.Find("ValueDocIssuerTxt" + i, true).First().Text); InsCmd3.ExecuteNonQuery(); } } InsTrans.Commit(); MessageBox.Show("Η απόδειξη του πελάτη καταχωρήθηκε με επιτυχία."); Do_Print(); ClearValues(); GetData(); } catch (Exception ex) { MessageBox.Show(ex.GetType() + ": " + ex.Message + "\n Commit Exception \n Παρουσιάστηκε κάποιο μη αναμενόμενο σφάλμα στην καταχώρηση της απόδειξης του πελάτη. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); try { InsTrans.Rollback(); } catch (Exception ex2) { MessageBox.Show(ex2.GetType() + ": " + ex2.Message + "\n Rollback Exception \n Παρουσιάστηκε κάποιο μη αναμενόμενο σφάλμα στην καταχώρηση της απόδειξης του πελάτη. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } } sqlcon.Close(); } catch (Exception) { MessageBox.Show("Σφάλμα σύνδεσης. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } } } }
private void SaveBtn_Click(object sender, EventArgs e) { List <string> NewProductList = new List <string>(new string[] { DescrTxt.Text, LongDescrTxt.Text, ManufacTxt.Text, QuantTxt.Text, UnitTxt.Text, MinStockTxt.Text, ProfitPercTxt.Text, SupplierDescrTxt.Text }); int cnt = 0; for (int i = 0; i < NewProductList.Count; i++) { if (NewProductList[i] != ProductList[i]) { cnt++; } } if (cnt == 0) { MessageBox.Show("Δεν έχετε πραγματοποιήσει κάποια αλλαγή στα στοιχεία του προϊόντος."); } else { string errorMessages = ""; if (DescrTxt.Text == "" || LongDescrTxt.Text == "" || SupplierDescrTxt.Text == "" || ManufacTxt.Text == "" || QuantTxt.Text == "" || UnitTxt.Text == "" || ProfitPercTxt.Text == "") { errorMessages = "- Θα πρέπει να συμπληρώσετε όλα τα απαραίτητα πεδία.\n";; } else { errorMessages += chk.CheckQuant(QuantTxt.Text); errorMessages += chk.CheckPrice(ProfitPercTxt.Text); if (MinStockTxt.Text != "") { errorMessages += chk.CheckMinStock(MinStockTxt.Text); } } if (errorMessages != "") { MessageBox.Show(errorMessages); } else { using (SqlConnection sqlcon = new SqlConnection(con.ConnectionString)) { try { sqlcon.Open(); SqlTransaction InsTrans = sqlcon.BeginTransaction("UpdateTransaction"); SqlCommand UpdCmd1 = sqlcon.CreateCommand(); UpdCmd1.Connection = sqlcon; SqlCommand UpdCmd2 = sqlcon.CreateCommand(); UpdCmd2.Connection = sqlcon; UpdCmd1.Transaction = InsTrans; UpdCmd2.Transaction = InsTrans; try { UpdCmd1.CommandText = "update Products set Description=@descr, LongDescr=@longd, Manufacture = @manufac , Unit = @unit , ProfitPerc = @prof , SupplierDescr=@supdescr where Id=@id"; UpdCmd1.Parameters.AddWithValue("@descr", DescrTxt.Text); UpdCmd1.Parameters.AddWithValue("@longd", LongDescrTxt.Text); UpdCmd1.Parameters.AddWithValue("@supdescr", SupplierDescrTxt.Text); UpdCmd1.Parameters.AddWithValue("@manufac", ManufacTxt.Text); UpdCmd1.Parameters.AddWithValue("@unit", UnitTxt.Text); UpdCmd1.Parameters.AddWithValue("@prof", ProfitPercTxt.Text); UpdCmd1.Parameters.AddWithValue("@id", IdTxt.Text); UpdCmd1.ExecuteNonQuery(); if (NewProductList[5] != "" && ProductList[5] == "") //Min Stock { UpdCmd2.CommandText = "insert into ProductsMinStock (Id, ProductId, MinStock) values((select dbo.nvl(Max(Id) + 1, 0) from ProductsMinStock), @id, @minstock)"; UpdCmd2.Parameters.AddWithValue("@id", IdTxt.Text); UpdCmd2.Parameters.AddWithValue("@minstock", MinStockTxt.Text); UpdCmd2.ExecuteNonQuery(); } else if (NewProductList[5] == "" && ProductList[5] != "") { UpdCmd2.CommandText = "delete ProductsMinStock where ProductId=@id"; UpdCmd2.Parameters.AddWithValue("@id", IdTxt.Text); UpdCmd2.ExecuteNonQuery(); } else if (NewProductList[5] != "" && ProductList[5] != "" && ProductList[5] != NewProductList[5]) { UpdCmd2.CommandText = "update ProductsMinStock set MinStock=@minstock where ProductId=@id"; UpdCmd2.Parameters.AddWithValue("@id", IdTxt.Text); UpdCmd2.Parameters.AddWithValue("@minstock", MinStockTxt.Text); UpdCmd2.ExecuteNonQuery(); } InsTrans.Commit(); MessageBox.Show("Οι αλλαγές πραγματοποιήθηκαν με επιτυχία."); ClearValues(); DescrTxt.Enabled = false; LongDescrTxt.Enabled = false; SupplierDescrTxt.Enabled = false; ManufacTxt.Enabled = false; ProfitPercTxt.Enabled = false; QuantTxt.Enabled = false; UnitTxt.Enabled = false; MinStockTxt.Enabled = false; SearchNameTxt.Enabled = true; SearchIdTxt.Enabled = true; SelectNameCmb.Enabled = true; RetrieveBtn.Enabled = true; SaveBtn.Visible = false; CancelBtn.Visible = false; ProductList.Clear(); } catch (Exception ex) { MessageBox.Show(ex.GetType() + ": " + ex.Message + "\n Commit Exception \n Παρουσιάστηκε κάποιο μη αναμενόμενο σφάλμα στην καταχώρηση του προϊόντος. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); try { InsTrans.Rollback(); } catch (Exception ex2) { MessageBox.Show(ex2.GetType() + ": " + ex2.Message + "\n Rollback Exception \n Παρουσιάστηκε κάποιο μη αναμενόμενο σφάλμα στην καταχώρηση του προϊόντος. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } } sqlcon.Close(); } catch (Exception) { MessageBox.Show("Σφάλμα σύνδεσης. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } } } } }
private void BankDepositBtn_Click(object sender, EventArgs e) { if (Convert.ToDateTime(BankDepositPck.Value.ToShortDateString()) > Convert.ToDateTime(DateTime.Today.ToShortDateString())) { System.Windows.MessageBox.Show("Η ημερομηνία δεν μπορεί να είναι μεταγενέστερη της σημερινής."); } else if (chk.CheckPrice(BankDepositPriceTxt.Text) != "") { System.Windows.MessageBox.Show("Θα πρέπει να συμπληρώσετε ένα έγκυρο ποσοστό εμβάσματος."); } else if (IdTxt.Text == "") { System.Windows.MessageBox.Show("Θα πρέπει να επιλέξετε προμηθευτή."); } else { using (SqlConnection sqlcon = new SqlConnection(con.ConnectionString)) { try { sqlcon.Open(); DataTable dt = new DataTable(); string query = "select Debit from Suppliers where Id=@id"; SqlDataAdapter SearchAdapt = new SqlDataAdapter(query, sqlcon); SearchAdapt.SelectCommand.Parameters.AddWithValue(@"id", IdTxt.Text); SearchAdapt.Fill(dt); SqlTransaction InsTrans = sqlcon.BeginTransaction("InsertTransaction"); SqlCommand InsCmd1 = sqlcon.CreateCommand(); InsCmd1.Connection = sqlcon; SqlCommand InsCmd2 = sqlcon.CreateCommand(); InsCmd2.Connection = sqlcon; InsCmd1.Transaction = InsTrans; InsCmd2.Transaction = InsTrans; try { InsCmd1.CommandText = "insert into SupplierBankDeposits (Id, SupplierId,Doc, Date, Price) values((select dbo.nvl(Max(Id)+1,0) from dbo.SupplierBankDeposits), @supid, @doc, @date, @price)"; InsCmd1.Parameters.AddWithValue("@supid", IdTxt.Text); InsCmd1.Parameters.AddWithValue("@doc", BankDepositDocTxt.Text); InsCmd1.Parameters.AddWithValue("@date", BankDepositPck.Value); InsCmd1.Parameters.AddWithValue("@price", BankDepositPriceTxt.Text); InsCmd1.ExecuteNonQuery(); if (dt.Rows.Count == 1) { decimal oldDebit = Convert.ToDecimal(dt.Rows[0][0].ToString()); decimal newDebit = oldDebit - Convert.ToDecimal(BankDepositPriceTxt.Text); InsCmd2.CommandText = "update Suppliers set Debit= @debit where Id=@id"; InsCmd2.Parameters.AddWithValue("@debit", newDebit); InsCmd2.Parameters.AddWithValue("@id", IdTxt.Text); InsCmd2.ExecuteNonQuery(); } InsTrans.Commit(); System.Windows.MessageBox.Show("Το έμβασμα του προμηθευτή καταχωρήθηκε με επιτυχία."); BankDepositPck.Value = System.DateTime.Today; BankDepositDocTxt.Text = ""; BankDepositPriceTxt.Text = ""; RetrieveBtn_Click(null, null); } catch (Exception ex) { System.Windows.MessageBox.Show(ex.GetType() + ": " + ex.Message + "\n Commit Exception \n Παρουσιάστηκε κάποιο μη αναμενόμενο σφάλμα στην καταχώρηση. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); try { InsTrans.Rollback(); } catch (Exception ex2) { System.Windows.MessageBox.Show(ex2.GetType() + ": " + ex2.Message + "\n Rollback Exception \n Παρουσιάστηκε κάποιο μη αναμενόμενο σφάλμα στην καταχώρηση. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } } sqlcon.Close(); } catch (Exception) { MessageBox.Show("Σφάλμα σύνδεσης. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } } } }
private void AddBtn_Click(object sender, EventArgs e) { string errorMessages = ""; if (DescrTxt.Text == "" || QuantTxt.Text == "" || PriceTxt.Text == "" || DiscTxt.Text == "") { errorMessages = "- Θα πρέπει να συμπληρώσετε όλα τα πεδία με αστερίσκο (*).\n"; ; } else { errorMessages += chk.CheckQuant(QuantTxt.Text); errorMessages += chk.CheckPrice(PriceTxt.Text); errorMessages += chk.CheckPrice(DiscTxt.Text); } if (errorMessages != "") { MessageBox.Show(errorMessages); } else { using (SqlConnection sqlcon = new SqlConnection(con.ConnectionString)) { try { sqlcon.Open(); SqlTransaction InsTrans = sqlcon.BeginTransaction("InsertTransaction"); SqlCommand InsCmd1 = sqlcon.CreateCommand(); InsCmd1.Connection = sqlcon; InsCmd1.Transaction = InsTrans; try { InsCmd1.CommandText = "insert into ProductsReserve (Id, ProductId, Quant, Price, Disc, Date, SalesPrice, SalesDisc) values((select dbo.nvl(Max(Id)+1,0) from dbo.ProductsReserve), @prodid, @quant, @price, @disc, @date, (select dbo.ProfitNewPrice(@price,@disc,0,0,(select ProfitPerc from Products where id=@prodid))),(select dbo.ProfitNewDisc(@price,@disc,0,0,(select ProfitPerc from Products where id=@prodid))))"; InsCmd1.Parameters.AddWithValue("@prodid", IdTxt.Text); InsCmd1.Parameters.AddWithValue("@quant", QuantTxt.Text); InsCmd1.Parameters.AddWithValue("@price", PriceTxt.Text); InsCmd1.Parameters.AddWithValue("@disc", DiscTxt.Text); InsCmd1.Parameters.AddWithValue("@date", System.DateTime.Today.ToShortDateString()); InsCmd1.ExecuteNonQuery(); InsTrans.Commit(); MessageBox.Show("Το προϊόν προστέθηκε στην αποθήκη με επιτυχία."); GetDataProd(); ClearValues(); } catch (Exception ex) { MessageBox.Show(ex.GetType() + ": " + ex.Message + "\n Commit Exception \n Παρουσιάστηκε κάποιο μη αναμενόμενο σφάλμα στην καταχώρηση του προϊόντος. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); try { InsTrans.Rollback(); } catch (Exception ex2) { MessageBox.Show(ex2.GetType() + ": " + ex2.Message + "\n Rollback Exception \n Παρουσιάστηκε κάποιο μη αναμενόμενο σφάλμα στην καταχώρηση του προϊόντος. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } } sqlcon.Close(); } catch (Exception) { MessageBox.Show("Σφάλμα σύνδεσης. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } } } }
private void AddBtn_Click(object sender, EventArgs e) { string errorMessages = ""; if (DescrTxt.Text == "" || LongDescrTxt.Text == "" || SupplierDescrTxt.Text == "" || QuantTxt.Text == "" || PriceTxt.Text == "" || DiscTxt.Text == "" || UnitTxt.Text == "" || ProfitPercTxt.Text == "") { errorMessages = "- Θα πρέπει να συμπληρώσετε όλα τα πεδία με αστερίσκο (*).\n";; } else { errorMessages += chk.CheckQuant(QuantTxt.Text); errorMessages += chk.CheckPrice(PriceTxt.Text); errorMessages += chk.CheckPrice(DiscTxt.Text); errorMessages += chk.CheckPrice(ProfitPercTxt.Text); if (MinStockTxt.Text != "") { errorMessages += chk.CheckMinStock(MinStockTxt.Text); } } if (errorMessages != "") { MessageBox.Show(errorMessages); } else { using (SqlConnection sqlcon = new SqlConnection(con.ConnectionString)) { try { sqlcon.Open(); SqlDataAdapter SearchAdapt = new SqlDataAdapter("select * from Products where Description=@descr", sqlcon); SearchAdapt.SelectCommand.Parameters.AddWithValue(@"descr", DescrTxt.Text); SearchAdapt.SelectCommand.Parameters.AddWithValue(@"manufac", ManufacTxt.Text); DataTable dt = new DataTable(); SearchAdapt.Fill(dt); if (dt.Rows.Count > 0) { MessageBox.Show("Υπάρχει ήδη καταχωρημένο προϊόν με τα στοιχεία που έχετε εισάγει."); } else { SqlTransaction InsTrans = sqlcon.BeginTransaction("InsertTransaction"); SqlCommand InsCmd1 = sqlcon.CreateCommand(); InsCmd1.Connection = sqlcon; SqlCommand InsCmd2 = sqlcon.CreateCommand(); InsCmd2.Connection = sqlcon; SqlCommand InsCmd3 = sqlcon.CreateCommand(); InsCmd3.Connection = sqlcon; InsCmd1.Transaction = InsTrans; InsCmd2.Transaction = InsTrans; InsCmd3.Transaction = InsTrans; try { InsCmd1.CommandText = "insert into Products(Id, Description, LongDescr, SupplierDescr, Manufacture, Unit, ProfitPerc) values((select dbo.nvl(Max(Id)+1,10000) from dbo.Products), @descr, @longd, @supdescr, @manuf, @unit, @prof)"; InsCmd1.Parameters.AddWithValue("@descr", DescrTxt.Text); InsCmd1.Parameters.AddWithValue("@longd", LongDescrTxt.Text); InsCmd1.Parameters.AddWithValue("@supdescr", SupplierDescrTxt.Text); InsCmd1.Parameters.AddWithValue("@manuf", ManufacTxt.Text); InsCmd1.Parameters.AddWithValue("@unit", UnitTxt.Text); InsCmd1.Parameters.AddWithValue("@prof", ProfitPercTxt.Text); InsCmd1.ExecuteNonQuery(); if (MinStockTxt.Text != "") { InsCmd2.CommandText = "insert into ProductsMinStock (Id, ProductId, MinStock) values((select dbo.nvl(Max(Id) + 1, 0) from ProductsMinStock), (select dbo.nvl(Max(Id),1000) from dbo.Products), @minstock)"; InsCmd2.Parameters.AddWithValue("@minstock", MinStockTxt.Text); InsCmd2.ExecuteNonQuery(); } InsCmd3.CommandText = "insert into ProductsReserve (Id, ProductId, Quant, Price, Disc, Date, SalesPrice, SalesDisc) values((select dbo.nvl(Max(Id)+1,0) from dbo.ProductsReserve), (select dbo.nvl(Max(Id),1000) from dbo.Products), @quant, @price, @disc, @date, (select dbo.ProfitNewPrice(@price,@disc,0,0,@prof)),(select dbo.ProfitNewDisc(@price,@disc,0,0,@prof)))"; InsCmd3.Parameters.AddWithValue("@quant", QuantTxt.Text); InsCmd3.Parameters.AddWithValue("@price", PriceTxt.Text); InsCmd3.Parameters.AddWithValue("@disc", DiscTxt.Text); InsCmd3.Parameters.AddWithValue("@prof", ProfitPercTxt.Text); InsCmd3.Parameters.AddWithValue("@date", System.DateTime.Today.ToShortDateString()); InsCmd3.ExecuteNonQuery(); InsTrans.Commit(); MessageBox.Show("Το προϊόν προστέθηκε με επιτυχία."); GetDataProd(); has_added = true; ClearValues(); } catch (Exception ex) { MessageBox.Show(ex.GetType() + ": " + ex.Message + "\n Commit Exception \n Παρουσιάστηκε κάποιο μη αναμενόμενο σφάλμα στην καταχώρηση του προϊόντος. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); try { InsTrans.Rollback(); } catch (Exception ex2) { MessageBox.Show(ex2.GetType() + ": " + ex2.Message + "\n Rollback Exception \n Παρουσιάστηκε κάποιο μη αναμενόμενο σφάλμα στην καταχώρηση του προϊόντος. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } } } sqlcon.Close(); } catch (Exception) { MessageBox.Show("Σφάλμα σύνδεσης. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } } } }