public static void LockJournalVoucher(GLJournalVouchersInfo voucher) { if (voucher.GLJournalVoucherID == Guid.Empty) { return; } voucher.LockStatus = ABCCommon.ABCConstString.LockStatusLocked; new GLJournalVouchersController().UpdateObject(voucher); GLJournalEntrysController entryCtrl = new GLJournalEntrysController(); List <Guid> lstAccounts = new List <Guid>(); foreach (GLJournalEntrysInfo entry in new GLJournalEntrysController().GetListByForeignKey("FK_GLJournalVoucherID", voucher.GLJournalVoucherID)) { InvalidateJournalEntry(entry, voucher); entry.LockStatus = ABCCommon.ABCConstString.LockStatusLocked; entry.JournalDate = voucher.JournalDate; entryCtrl.UpdateObject(entry); if (lstAccounts.Contains(entry.FK_GLAccountID_Debit) == false) { lstAccounts.Add(entry.FK_GLAccountID_Debit); } if (lstAccounts.Contains(entry.FK_GLAccountID_Credit) == false) { lstAccounts.Add(entry.FK_GLAccountID_Credit); } } foreach (Guid iAccountID in lstAccounts) { AccountingProvider.CalculateAccount(iAccountID); } }
public static void ApproveJournalVoucher(GLJournalVouchersInfo voucher) { if (voucher.GLJournalVoucherID == Guid.Empty) { return; } if (voucher.ApprovalStatus == ABCCommon.ABCConstString.ApprovalTypeApproved) { if (DialogResult.No == ABCHelper.ABCMessageBox.Show("Phiếu kế toán đã được ghi sổ trước đó. Bạn có muốn ghi sổ lại không?", "Ghi sổ", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { return; } } voucher.ApprovalStatus = ABCCommon.ABCConstString.ApprovalTypeApproved; new GLJournalVouchersController().UpdateObject(voucher); GLJournalEntrysController entryCtrl = new GLJournalEntrysController(); List <Guid> lstAccounts = new List <Guid>(); foreach (GLJournalEntrysInfo entry in entryCtrl.GetListByForeignKey("FK_GLJournalVoucherID", voucher.GLJournalVoucherID)) { InvalidateJournalEntry(entry, voucher); entry.ApprovalStatus = ABCCommon.ABCConstString.ApprovalTypeApproved; entry.JournalDate = voucher.JournalDate; entryCtrl.UpdateObject(entry); if (lstAccounts.Contains(entry.FK_GLAccountID_Debit) == false) { lstAccounts.Add(entry.FK_GLAccountID_Debit); } if (lstAccounts.Contains(entry.FK_GLAccountID_Credit) == false) { lstAccounts.Add(entry.FK_GLAccountID_Credit); } } foreach (Guid iAccountID in lstAccounts) { AccountingProvider.CalculateAccount(iAccountID); } }