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; } }