private void AddBtn_Click(object sender, EventArgs e) { string errorMessages = ""; if (NameTxt.Text == "" || OccupationTxt.Text == "" || AfmTxt.Text == "" || AddressTxt.Text == "" || RegionTxt.Text == "" || TkTxt.Text == "" || PhoneTxt.Text == "" || Tax_officeTxt.Text == "") { errorMessages = "- Θα πρέπει να συμπληρώσετε όλα τα πεδία με αστερίσκο (*).\n";; } else { errorMessages += chk.CheckAfm(AfmTxt.Text); errorMessages += chk.CheckTk(TkTxt.Text); errorMessages += chk.CheckPhone(PhoneTxt.Text); if (Phone2Txt.Visible == true) { errorMessages += chk.CheckPhone(Phone2Txt.Text); } if (DebitTxt.Text != "") { errorMessages += chk.CheckDebit(DebitTxt.Text); } if (MaxDebitTxt.Text != "") { errorMessages += chk.CheckMaxDebit(MaxDebitTxt.Text); } if (EmailTxt.Text != "") { errorMessages += chk.CheckEmail(EmailTxt.Text); } } if (errorMessages != "") { MessageBox.Show(errorMessages); } else { using (SqlConnection sqlcon = new SqlConnection(con.ConnectionString)) { try { sqlcon.Open(); SqlDataAdapter SearchAdapt = new SqlDataAdapter("select * from Suppliers where Afm=@parameter", sqlcon); SearchAdapt.SelectCommand.Parameters.AddWithValue(@"parameter", AfmTxt.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; InsCmd1.Transaction = InsTrans; try { InsCmd1.CommandText = "insert into Suppliers(Id, Name, Occupation, Address, Tk, Afm, Tax_office,Phone,Email, Debit,Region,Manager,Phone2) values((select dbo.nvl(Max(Id)+1,1000) from dbo.Suppliers), @name, @occup, @addr, @tk, @afm, @to,@phone,@mail, @debit, @reg, @man, @phone2)"; InsCmd1.Parameters.AddWithValue("@name", NameTxt.Text); InsCmd1.Parameters.AddWithValue("@occup", OccupationTxt.Text); InsCmd1.Parameters.AddWithValue("@addr", AddressTxt.Text); InsCmd1.Parameters.AddWithValue("@tk", TkTxt.Text); InsCmd1.Parameters.AddWithValue("@afm", AfmTxt.Text); InsCmd1.Parameters.AddWithValue("@to", Tax_officeTxt.Text); InsCmd1.Parameters.AddWithValue("@phone", PhoneTxt.Text); InsCmd1.Parameters.AddWithValue("@mail", EmailTxt.Text); InsCmd1.Parameters.AddWithValue("@debit", ((DebitTxt.Text == "") ? "0" : DebitTxt.Text)); InsCmd1.Parameters.AddWithValue("@reg", RegionTxt.Text); InsCmd1.Parameters.AddWithValue("@man", ManagerTxt.Text); InsCmd1.Parameters.AddWithValue("@phone2", Phone2Txt.Text); InsCmd1.ExecuteNonQuery(); if (MaxDebitTxt.Text != "") { InsCmd1.CommandText = "insert into SuppliersMaxDebit (Id,SupplierId,MaxDebit) values ((select dbo.nvl(Max(Id)+1,0) from SuppliersMaxDebit),(select dbo.nvl(Max(Id),1000) from dbo.Suppliers),@maxdebit)"; InsCmd1.Parameters.AddWithValue("@maxdebit", MaxDebitTxt.Text); InsCmd1.ExecuteNonQuery(); } InsTrans.Commit(); MessageBox.Show("Ο Προμηθευτής προστέθηκε με επιτυχία."); 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 SaveBtn_Click(object sender, EventArgs e) { List <string> NewSupplierList = new List <string>(new string[] { NameTxt.Text, OccupationTxt.Text, AfmTxt.Text, Tax_officeTxt.Text, AddressTxt.Text, TkTxt.Text, PhoneTxt.Text, EmailTxt.Text, DebitTxt.Text, MaxDebitTxt.Text, RegionTxt.Text, ManagerTxt.Text, Phone2Txt.Text }); int cnt = 0; for (int i = 0; i < NewSupplierList.Count; i++) { if (NewSupplierList[i] != SupplierList[i]) { cnt++; } } if (cnt == 0) { MessageBox.Show("Δεν έχετε πραγματοποιήσει κάποια αλλαγή στα στοιχεία του προμηθευτή."); } else { string errorMessages = ""; if (NameTxt.Text == "" || OccupationTxt.Text == "" || AfmTxt.Text == "" || AddressTxt.Text == "" || RegionTxt.Text == "" || TkTxt.Text == "" || PhoneTxt.Text == "" || Tax_officeTxt.Text == "") { errorMessages = "- Θα πρέπει να συμπληρώσετε όλα τα απαραίτητα πεδία.\n";; } else { errorMessages += chk.CheckAfm(AfmTxt.Text); errorMessages += chk.CheckTk(TkTxt.Text); errorMessages += chk.CheckPhone(PhoneTxt.Text); if (Phone2Txt.Text != "") { errorMessages += chk.CheckPhone(Phone2Txt.Text); } if (DebitTxt.Text != "") { errorMessages += chk.CheckDebit(DebitTxt.Text); } if (MaxDebitTxt.Text != "") { errorMessages += chk.CheckMaxDebit(MaxDebitTxt.Text); } if (EmailTxt.Text != "") { errorMessages += chk.CheckEmail(EmailTxt.Text); } } if (errorMessages != "") { MessageBox.Show(errorMessages); } else { using (SqlConnection sqlcon = new SqlConnection(con.ConnectionString)) { try { sqlcon.Open(); SqlDataAdapter SearchAdapt = new SqlDataAdapter("select * from Suppliers where Afm=@afm and Id!=@id", sqlcon); SearchAdapt.SelectCommand.Parameters.AddWithValue(@"afm", AfmTxt.Text); SearchAdapt.SelectCommand.Parameters.AddWithValue(@"id", IdTxt.Text); DataTable dt = new DataTable(); SearchAdapt.Fill(dt); if (dt.Rows.Count > 0) { MessageBox.Show("Υπάρχει ήδη καταχωρημένος προμηθευτής με το Α.Φ.Μ. που έχετε εισάγει."); } else { 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 Suppliers set Name=@name, Occupation=@occup, Address = @addr, Tk = @tk, Afm = @afm, Tax_office = @to, Debit= @debit, Phone = @phone, Email= @email, Region=@reg, Manager=@man, Phone2=@phone2 where Id=@id"; UpdCmd1.Parameters.AddWithValue("@name", NameTxt.Text); UpdCmd1.Parameters.AddWithValue("@occup", OccupationTxt.Text); UpdCmd1.Parameters.AddWithValue("@addr", AddressTxt.Text); UpdCmd1.Parameters.AddWithValue("@tk", TkTxt.Text); UpdCmd1.Parameters.AddWithValue("@afm", AfmTxt.Text); UpdCmd1.Parameters.AddWithValue("@to", Tax_officeTxt.Text); UpdCmd1.Parameters.AddWithValue("@phone", PhoneTxt.Text); UpdCmd1.Parameters.AddWithValue("@email", EmailTxt.Text); UpdCmd1.Parameters.AddWithValue("@debit", ((DebitTxt.Text == "") ? "0" : DebitTxt.Text)); UpdCmd1.Parameters.AddWithValue("@reg", AfmTxt.Text); UpdCmd1.Parameters.AddWithValue("@man", Tax_officeTxt.Text); UpdCmd1.Parameters.AddWithValue("@phone2", PhoneTxt.Text); UpdCmd1.Parameters.AddWithValue("@id", IdTxt.Text); UpdCmd1.ExecuteNonQuery(); if (NewSupplierList[7] != "" && SupplierList[7] == "") //max debit { UpdCmd2.CommandText = "insert into SuppliersMaxDebit (Id, SupplierId, MaxDebit) values((select dbo.nvl(Max(Id) + 1, 0) from SuppliersMaxDebit), @id, @maxdebit)"; UpdCmd2.Parameters.AddWithValue("@id", IdTxt.Text); UpdCmd2.Parameters.AddWithValue("@maxdebit", MaxDebitTxt.Text); UpdCmd2.ExecuteNonQuery(); } else if (NewSupplierList[7] == "" && SupplierList[7] != "") { UpdCmd2.CommandText = "delete SuppliersMaxDebit where SupplierId=@id"; UpdCmd2.Parameters.AddWithValue("@id", IdTxt.Text); UpdCmd2.ExecuteNonQuery(); } else if (NewSupplierList[7] != "" && SupplierList[7] != "" && SupplierList[7] != NewSupplierList[7]) { UpdCmd2.CommandText = "update SuppliersMaxDebit set MaxDebit=@maxdebit where SupplierId=@id"; UpdCmd2.Parameters.AddWithValue("@id", IdTxt.Text); UpdCmd2.Parameters.AddWithValue("@maxdebit", MaxDebitTxt.Text); UpdCmd2.ExecuteNonQuery(); } InsTrans.Commit(); MessageBox.Show("Οι αλλαγές πραγματοποιήθηκαν με επιτυχία."); ClearValues(); NameTxt.Enabled = false; OccupationTxt.Enabled = false; AfmTxt.Enabled = false; AddressTxt.Enabled = false; TkTxt.Enabled = false; Tax_officeTxt.Enabled = false; PhoneTxt.Enabled = false; RegionTxt.Enabled = false; ManagerTxt.Enabled = false; Phone2Txt.Enabled = false; EmailTxt.Enabled = false; DebitTxt.Enabled = false; MaxDebitTxt.Enabled = false; SearchNameTxt.Enabled = true; SearchAfmTxt.Enabled = true; SelectNameCmb.Enabled = true; RetrieveBtn.Enabled = true; SaveBtn.Visible = false; CancelBtn.Visible = false; SupplierList.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("Σφάλμα σύνδεσης. Παρακαλώ επικοινωνήστε με το διαχειριστή του συστήματος."); } } } } }