Ejemplo n.º 1
0
        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("Σφάλμα σύνδεσης. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος.");
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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("Σφάλμα σύνδεσης. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος.");
                    }
                }
            }
        }