private void UpdateBtn_Click(object sender, EventArgs e) { try { double NewAmount = 0; if (double.TryParse(AmountTxtBox.Text, out NewAmount) && AccountComboBox.SelectedValue != null) { int AccountID = int.Parse(AccountComboBox.SelectedValue.ToString()); AccountsMgmt.UpdateAccountAmountByAccountID(AccountID, NewAmount); MessageBox.Show(MsgTxt.UpdateSuccessfully, MsgTxt.UpdateSuccessfully, MessageBoxButtons.OK, MessageBoxIcon.Information); AmountTxtBox.BackColor = AmountBGColor; } else { MessageBox.Show(MsgTxt.ErrorPleaseEnterCorrectAmount, MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); AmountTxtBox.BackColor = SharedVariables.TxtBoxRequiredColor; AmountTxtBox.Focus(); } } catch (Exception ex) { MessageBox.Show(MsgTxt.UnexpectedError + "\n IN [UpdateBtn_Click] \n Exception: \n" + ex.ToString() + "\n" + MsgTxt.FormWillCloseNowTxt, MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); } }
private void RevisePaymentBtn_Click(object sender, EventArgs e) { try { if (aVendorPaymentRowGlobal["IsRevised"].ToString() == "0") { string RevisedBy = SharedFunctions.ReturnLoggedUserName(); string ReviseDate = DateTime.Now.ToShortDateString(); string ReviseTime = DateTime.Now.ToShortTimeString(); int PaymentNumber = int.Parse(aVendorPaymentRowGlobal["PaymentNumber"].ToString()); DataRow aMethodRow = PaymentMethodMgmt.SelectMethodRowByID(int.Parse(aVendorPaymentRowGlobal["PaymentMethodID"].ToString())); if (aMethodRow == null) { // MessageBox.Show(MsgTxt.UnexpectedError + "\n IN [EditBill-SelectMethodRowByID Returned Null] " + MsgTxt.FormWillCloseNowTxt, MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); throw new Exception("EditVendorPayment-aMethodRow Returned Null"); } if (!VendorsPaymentsMgmt.UpdatePaymentToRevised(RevisedBy, ReviseDate, ReviseTime, PaymentNumber)) { MessageBox.Show(MsgTxt.UnexpectedError + "\n IN [DB-ERROR-EditVendorPayment-UpdatePaymentToRevised-FUNC:UpdatePaymentToRevised] " + MsgTxt.FormWillCloseNowTxt, MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); } if (aMethodRow["IsCheck"].ToString() == "1") { ChecksMgmt.MakeCheckRevised(int.Parse(aVendorPaymentRowGlobal["CheckNumber"].ToString()), DateTime.Now.ToShortDateString()); } double Amount = double.Parse(aVendorPaymentRowGlobal["Amount"].ToString()); double CurrentAmount = double.Parse(aVendorAccount["Amount"].ToString()); int AccountID = int.Parse(aVendorAccount["ID"].ToString()); double NewAmount = CurrentAmount + Amount; VendorsAccountsMgmt.UpdateAccountAmountByAccountID(AccountID, NewAmount); double MyOldAccountAmount = double.Parse(aAccount["Amount"].ToString()); double MyNewAccountAmount = MyOldAccountAmount + Amount; int MyAccountID = int.Parse(aAccount["ID"].ToString()); if (!AccountsMgmt.UpdateAccountAmountByAccountID(MyAccountID, MyNewAccountAmount)) { MessageBox.Show(MsgTxt.UnexpectedError + "\n IN [DB-ERROR-EditcustomerPayment-RevisePaymentBtn_Click-FUNC:UpdateAccountAmountByAccountID] " + MsgTxt.FormWillCloseNowTxt, MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); } MessageBox.Show(MsgTxt.ReversedSuccessfullyTxt, MsgTxt.AddedSuccessfully, MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } else { MessageBox.Show(MsgTxt.AlreadyReversedTxt, MsgTxt.WarningCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } catch (Exception ex) { MessageBox.Show(MsgTxt.UnexpectedError + "\n IN [EditVendorPayment-RevisePaymentBtn_Click] \n Exception: \n" + ex.ToString() + "\n" + MsgTxt.FormWillCloseNowTxt, MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); throw; } }
private void ReviseBillBtn_Click(object sender, EventArgs e) { try { if (aPurchaseDataRow["IsRevised"].ToString() == "0") { if (CashMethodComboBox.SelectedIndex == 1)//iscredit { int VendorID = VendorsMgmt.SelectVendorIDByName(VendorsComboBox.Text); DataRow aVendorAccount = VendorsAccountsMgmt.SelectVendorAccountRowByVendorID(VendorID); double OldAmount = double.Parse(aVendorAccount["Amount"].ToString()); double NewAmount = OldAmount - double.Parse(TotalTxtBox.Text); int AccountID = int.Parse(aVendorAccount["ID"].ToString()); VendorsAccountsMgmt.UpdateAccountAmountByAccountID(AccountID, NewAmount); } else { int AccountID = int.Parse(aPurchaseDataRow["AccountID"].ToString()); DataRow aAccountRow = AccountsMgmt.SelectAccountRowByID(AccountID); double OldAmount = double.Parse(aAccountRow["Amount"].ToString()); double NewAmount = OldAmount + double.Parse(TotalTxtBox.Text);; AccountsMgmt.UpdateAccountAmountByAccountID(AccountID, NewAmount); } //Mark the check (if any) as revised DataRow aMethodRow = PaymentMethodMgmt.SelectMethodRowByID(int.Parse(aPurchaseDataRow["PaymentMethodID"].ToString())); if (aMethodRow["IsCheck"].ToString() == "1") { ChecksMgmt.MakeCheckRevised(int.Parse(aPurchaseDataRow["CheckNumber"].ToString()), DateTime.Now.ToShortDateString()); } //Now Update AvgUnitCost double CostLoss = 0; foreach (DataGridViewRow r in TeldgView.Rows) { if (!r.IsNewRow) { int ItemID = ItemsMgmt.SelectItemIDByBarcode(TeldgView.Rows[r.Index].Cells["Barcode"].Value.ToString()); double ItemCost = PurchaseVoucherDetailedMgmt.SelectItemCostByNumber(ItemID, int.Parse(aPurchaseDataRow["VoucherNumber"].ToString())); double ReturnQty = double.Parse(TeldgView.Rows[r.Index].Cells["Qty"].Value.ToString()); double CurrentAvgUnitCost = ItemsMgmt.SelectItemCostByBarcode(TeldgView.Rows[r.Index].Cells["Barcode"].Value.ToString()); double CurrentAvaQty = ItemsMgmt.SelectItemQtyByID(ItemID); double NewAvgUnitCost = ((CurrentAvgUnitCost * CurrentAvaQty) + (ReturnQty * ItemCost)) / (ReturnQty + CurrentAvaQty); ItemsMgmt.UpdateItemQtyandAvgUnitCostByID(ItemID, (ReturnQty + CurrentAvaQty), NewAvgUnitCost); PurchaseVoucherDetailedMgmt.MakeItemAsRevised(int.Parse(aPurchaseDataRow["VoucherNumber"].ToString()), ItemID); } } //Now we should mark the bill general as reversed if (!PurchaseVoucherGeneralMgmt.UpdateVoucherToRevised(TellerUserNameLbl.Text, DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString(), int.Parse(aPurchaseDataRow["VoucherNumber"].ToString()), CostLoss)) { MessageBox.Show(MsgTxt.UnexpectedError + "\n IN [DB-ERROR-EditBill-ReviseBillBtn_Click] " + MsgTxt.FormWillCloseNowTxt, MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); } else { MessageBox.Show(MsgTxt.ReversedSuccessfullyTxt, MsgTxt.AddedSuccessfully, MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } } else { MessageBox.Show(MsgTxt.AlreadyReversedTxt, MsgTxt.WarningCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } catch (Exception ex) { MessageBox.Show(MsgTxt.UnexpectedError + "\n IN [EditVoucher-ReviseBillBtn_Click] \n Exception: \n" + ex.ToString() + "\n" + MsgTxt.FormWillCloseNowTxt, MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); throw; } }
private void ReviseBillBtn_Click(object sender, EventArgs e) { try { if (aBillGeneralRow["IsRevised"].ToString() == "0") { if (CashMethodComboBox.SelectedIndex == 1)//iscredit { int CustomerID = CustomerMgmt.SelectCustomerIDByPhone1(PhoneTxtBox.Text); DataRow aCustomerAccount = CustomersAccountsMgmt.SelectCustomerAccountRowByCusID(CustomerID); double OldAmount = double.Parse(aCustomerAccount["Amount"].ToString()); double NewAmount = OldAmount - double.Parse(TotalTxtBox.Text); int AccountID = int.Parse(aCustomerAccount["ID"].ToString()); CustomersAccountsMgmt.UpdateAccountAmountByAccountID(AccountID, NewAmount); } else {//int.Parse(AccountComboBox.SelectedValue.ToString()); int AccountID = int.Parse(aBillGeneralRow["AccountID"].ToString()); DataRow aAccountRow = AccountsMgmt.SelectAccountRowByID(AccountID); double OldAmount = double.Parse(aAccountRow["Amount"].ToString()); double NewAmount = OldAmount - double.Parse(TotalTxtBox.Text);; AccountsMgmt.UpdateAccountAmountByAccountID(AccountID, NewAmount); } //Mark the check (if any) as revised DataRow aMethodRow = PaymentMethodMgmt.SelectMethodRowByID(int.Parse(aBillGeneralRow["PaymentMethodID"].ToString())); if (aMethodRow["IsCheck"].ToString() == "1") { ChecksMgmt.MakeCheckRevised(int.Parse(aBillGeneralRow["CheckNumber"].ToString()), DateTime.Now.ToShortDateString()); } //Now Update AvgUnitCost double CostLoss = 0; foreach (DataGridViewRow r in TeldgView.Rows) { if (!r.IsNewRow) { int ItemID = ItemsMgmt.SelectItemIDByBarcode(TeldgView.Rows[r.Index].Cells["Barcode"].Value.ToString()); double OldAvgUnitCost = BillDetailedMgmt.SelectOldAvgUnitCostByID(ItemID, int.Parse(aBillGeneralRow["Number"].ToString())); double ReturnQty = double.Parse(TeldgView.Rows[r.Index].Cells["Qty"].Value.ToString()); double CurrentAvgUnitCost = ItemsMgmt.SelectItemCostByBarcode(TeldgView.Rows[r.Index].Cells["Barcode"].Value.ToString()); double CurrentAvaQty = ItemsMgmt.SelectItemQtyByID(ItemID); double NewAvgUnitCost = CurrentAvgUnitCost; if ((ReturnQty + CurrentAvaQty) != 0) //to avoid division by zero { NewAvgUnitCost = ((CurrentAvgUnitCost * CurrentAvaQty) + (ReturnQty * OldAvgUnitCost)) / (ReturnQty + CurrentAvaQty); } CostLoss += (NewAvgUnitCost - OldAvgUnitCost) * BillDetailedMgmt.SelectAllItemsSoldAfterBillNumber(ItemID, int.Parse(aBillGeneralRow["Number"].ToString())); ItemsMgmt.UpdateItemQtyandAvgUnitCostByID(ItemID, (ReturnQty + CurrentAvaQty), NewAvgUnitCost); BillDetailedMgmt.MakeItemAsRevised(int.Parse(aBillGeneralRow["Number"].ToString()), ItemID); } } //Now we should mark the bill general as reversed if (!BillGeneralMgmt.UpdateBillToRevised(SharedFunctions.ReturnLoggedUserName(), DateTime.Now.ToShortDateString(), int.Parse(aBillGeneralRow["Number"].ToString()), CostLoss)) { MessageBox.Show(MsgTxt.UnexpectedError + "\n IN [DB-ERROR-EditBill-ReviseBillBtn_Click] " + MsgTxt.FormWillCloseNowTxt, MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); } MessageBox.Show(MsgTxt.ReversedSuccessfullyTxt, MsgTxt.AddedSuccessfully, MessageBoxButtons.OK, MessageBoxIcon.Information); this.Close(); } else { MessageBox.Show(MsgTxt.AlreadyReversedTxt, MsgTxt.WarningCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } catch (Exception ex) { MessageBox.Show(MsgTxt.UnexpectedError + "\n IN [EditBill-ReviseBillBtn_Click] \n Exception: \n" + ex.ToString() + "\n" + MsgTxt.FormWillCloseNowTxt, MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); throw; } }
private bool AddPayment() { try { semaphore = true; int NextCheckNumber = -1; double Amount = 0; if (VendorDoNotHaveAccount || AccountNotJOD) { MessageBox.Show(MsgTxt.PleaseSelectTxt + "\n 1)" + MsgTxt.VendorTxt + "\n2)" + MsgTxt.ValidAccountTxt, MsgTxt.WarningCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning); semaphore = false; return(false); } else { if (!double.TryParse(PaymentAmountTxtBox.Text, out Amount)) { MessageBox.Show(MsgTxt.PleaseSelectCorrectAmountTxt, MsgTxt.WarningCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning); PaymentAmountTxtBox.BackColor = SharedVariables.TxtBoxRequiredColor; return(false); } else if (Amount == 0) { MessageBox.Show(MsgTxt.PleaseSelectCorrectAmountTxt, MsgTxt.WarningCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning); PaymentAmountTxtBox.BackColor = SharedVariables.TxtBoxRequiredColor; return(false); } else { PaymentAmountTxtBox.BackColor = PaymentAmountTxtBoxCOLOR; DataRow aMethodRow = PaymentMethodMgmt.SelectMethodRowByID(int.Parse(PaymentMethodCheckBox.SelectedValue.ToString())); if (aMethodRow == null) { throw new Exception("aMethodRow==null"); } aVendorAccountRow = VendorsAccountsMgmt.SelectVendorAccountRowByVendorID(VendorID); Balance = Double.Parse(aVendorAccountRow["Amount"].ToString()); aVendorPayment = new VendorsPayments(); int PaymentNumber = VendorsPaymentsMgmt.NextPaymentNumber(); aVendorPayment.Vendor_Payment_PaymentNumber = PaymentNumber; aVendorPayment.Vendor_Payment_VendorID = VendorID; aVendorPayment.Vendor_Payment_Date = DateTime.Now.ToShortDateString(); aVendorPayment.Vendor_Payment_Time = DateTime.Now.ToShortTimeString(); int TellerID = UsersMgmt.SelectUserIDByUserName(SharedFunctions.ReturnLoggedUserName()); aVendorPayment.Vendor_Payment_TellerID = TellerID; aVendorPayment.Vendor_Payment_OldAmount = Balance; aVendorPayment.PaymentMethodID = int.Parse(PaymentMethodCheckBox.SelectedValue.ToString()); aVendorPayment.Vendor_Payment_Comments = CommentsTxtBox.Text; aVendorPayment.MyAccountID = int.Parse(AccountComboBox.SelectedValue.ToString()); aVendorPayment.Vendor_Payment_Amount = double.Parse(PaymentAmountTxtBox.Text); Checks aCheck = new Checks(); if (aMethodRow["IsCash"].ToString() == "1") { aVendorPayment.IsCreditCard = 0; aVendorPayment.CreditCardInfo = "NOT-CREDIT"; VendorsPaymentsMgmt.AddVendorPayment(aVendorPayment); //IS REVISED AND IS CHECKED ADDED TO ZERO IN QUERY int VenAccountID = int.Parse(aVendorAccountRow["ID"].ToString()); double NewAmount = Balance - aVendorPayment.Vendor_Payment_Amount; VendorsAccountsMgmt.UpdateAccountAmountByAccountID(VenAccountID, NewAmount); double MyOldAmount = AccountsMgmt.SelectAccountAmountByID(int.Parse(AccountComboBox.SelectedValue.ToString())); AccountsMgmt.UpdateAccountAmountByAccountID(int.Parse(AccountComboBox.SelectedValue.ToString()), MyOldAmount - aVendorPayment.Vendor_Payment_Amount); } else if (aMethodRow["IsCredit"].ToString() == "1") { aVendorPayment.IsCreditCard = 1; aVendorPayment.CreditCardInfo = CreditCardInfoTxtBox.Text; VendorsPaymentsMgmt.AddVendorPayment(aVendorPayment); //IS REVISED AND IS CHECKED ADDED TO ZERO IN QUERY int VenAccountID = int.Parse(aVendorAccountRow["ID"].ToString()); double NewAmount = Balance - aVendorPayment.Vendor_Payment_Amount; VendorsAccountsMgmt.UpdateAccountAmountByAccountID(VenAccountID, NewAmount); int AccountID = int.Parse(AccountComboBox.SelectedValue.ToString()); DataRow aAccountRow = AccountsMgmt.SelectAccountRowByID(AccountID); double OldAmount = double.Parse(aAccountRow["Amount"].ToString()); double NewAmount2 = OldAmount - aVendorPayment.Vendor_Payment_Amount; AccountsMgmt.UpdateAccountAmountByAccountID(AccountID, NewAmount2); } else { aVendorPayment.IsCreditCard = 0; aVendorPayment.CreditCardInfo = "NOT-CREDIT"; NextCheckNumber = ChecksMgmt.NextCheckNumber(); aVendorPayment.CheckNumber = NextCheckNumber; VendorsPaymentsMgmt.AddVendorPayment(aVendorPayment); aCheck.Chekcs_HolderName = HolderNameTxtBox.Text; aCheck.Chekcs_PaymentDate = CheckDatePicker.Value.ToShortDateString(); aCheck.Chekcs_IsBill = 0; aCheck.Chekcs_IsPurchaseVoucher = 0; aCheck.Chekcs_AccountID = 0; aCheck.Chekcs_Comments = CheckCommentsTxtBox.Text; aCheck.Chekcs_Amount = aVendorPayment.Vendor_Payment_Amount; aCheck.Chekcs_IsPaid = 0; aCheck.CheckNumber = NextCheckNumber; aCheck.AddingDate = DateTime.Now.ToShortDateString(); aCheck.Chekcs_PaymentDate = CheckDatePicker.Text; aCheck.Chekcs_IsVendorPayment = 1; aCheck.Chekcs_VendorPaymentNumber = aVendorPayment.Vendor_Payment_PaymentNumber; aCheck.Chekcs_IsCustomerPayment = 0; if (!ChecksMgmt.InsertCheck(aCheck)) { VendorsPaymentsMgmt.DeleteVendorPayment(aVendorPayment); MessageBox.Show(MsgTxt.UnexpectedError + "\n IN [DataBase Error: CANNOT ADD CHECK] \n" + MsgTxt.FormWillCloseNowTxt, MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); semaphore = false; //ReloadForm(); return(false); } } MessageBox.Show(MsgTxt.AddedSuccessfully, MsgTxt.AddedSuccessfully, MessageBoxButtons.OK, MessageBoxIcon.Information); semaphore = false; return(true); } } } catch (Exception ex) { semaphore = false; MessageBox.Show(MsgTxt.UnexpectedError + "\n IN [AddPaymentBtn_Click] \n Exception: \n" + ex.ToString() + "\n" + MsgTxt.FormWillCloseNowTxt, MsgTxt.ErrorCaption, MessageBoxButtons.OK, MessageBoxIcon.Error); this.Close(); return(false); } }