/// <summary> /// Adds the account balance for debit. /// </summary> /// <param name="buPlanReceipt">The bu plan receipt.</param> /// <param name="buPlanReceiptDetail">The bu plan receipt detail.</param> /// <returns></returns> public AccountBalanceEntity AddAccountBalanceForDebit(BUPlanReceiptEntity buPlanReceipt, BUPlanReceiptDetailEntity buPlanReceiptDetail) { return(new AccountBalanceEntity { AccountBalanceId = Guid.NewGuid().ToString(), AccountNumber = buPlanReceiptDetail.DebitAccount, CurrencyCode = buPlanReceipt.CurrencyCode, ExchangeRate = buPlanReceipt.ExchangeRate, BalanceDate = buPlanReceipt.PostedDate, MovementDebitAmountOC = buPlanReceiptDetail.AmountOC, MovementDebitAmount = buPlanReceiptDetail.Amount, MovementCreditAmountOC = 0, MovementCreditAmount = 0, BudgetSourceId = buPlanReceiptDetail.BudgetSourceId, BudgetChapterCode = buPlanReceipt.BudgetChapterCode, BudgetKindItemCode = buPlanReceiptDetail.BudgetKindItemCode, BudgetSubKindItemCode = buPlanReceiptDetail.BudgetSubKindItemCode, BudgetItemCode = buPlanReceiptDetail.BudgetItemCode, BudgetSubItemCode = buPlanReceiptDetail.BudgetSubItemCode, ProjectId = buPlanReceiptDetail.ProjectId, BankAccount = buPlanReceiptDetail.BankId, FundStructureId = buPlanReceiptDetail.FundStructureId, BudgetDetailItemCode = buPlanReceiptDetail.BudgetDetailItemCode }); }
/// <summary> /// Deletes the bu plan receipt. /// </summary> /// <param name="buPlanReceipt">The bu plan receipt.</param> /// <returns></returns> public string DeleteBUPlanReceipt(BUPlanReceiptEntity buPlanReceipt) { const string procedures = @"uspDelete_BUPlanReceipt"; object[] parms = { "@RefId", buPlanReceipt.RefId }; return(Db.Delete(procedures, true, parms)); }
/// <summary> /// Inserts the account balance. /// </summary> /// <param name="buPlanReceipt">The bu plan receipt.</param> /// <param name="buPlanReceiptDetail">The bu plan receipt detail.</param> public void InsertAccountBalance(BUPlanReceiptEntity buPlanReceipt, BUPlanReceiptDetailEntity buPlanReceiptDetail) { //insert AccountBalance for debit account var accountBalanceForDebit = AddAccountBalanceForDebit(buPlanReceipt, buPlanReceiptDetail); var accountBalanceForDebitExit = AccountBalanceDao.GetExitsAccountBalance(accountBalanceForDebit); if (accountBalanceForDebitExit != null) { UpdateAccountBalance(accountBalanceForDebitExit, accountBalanceForDebit.MovementDebitAmountOC, accountBalanceForDebit.MovementDebitAmount, true, 1); } else { AccountBalanceDao.InsertAccountBalance(accountBalanceForDebit); } }
public List <BUPlanReceiptEntity> GetBuPlanReceipts(string connectionString) { List <BUPlanReceiptEntity> buplanreceipts = new List <BUPlanReceiptEntity>(); using (var context = new MISAEntity(connectionString)) { var querry = context.BUPlanReceiptDetails.ToList(); var projects = context.Projects.ToList(); var currencys = context.CCies.ToList(); var budgetsource = context.BudgetSources.ToList(); var listitems = context.ListItems.ToList(); var fundstructures = context.FundStructures.ToList(); var budgetproviders = context.BudgetProvidences.ToList(); banks = context.BankInfoes.ToList(); var categories = context.BUPlanReceipts.ToList(); foreach (var result in categories) { var buplan = new BUPlanReceiptEntity(); buplan.RefId = result.RefID.ToString(); buplan.RefType = result.RefType; buplan.RefDate = result.RefDate; buplan.PostedDate = result.PostedDate; buplan.RefNo = result.RefNo; buplan.CurrencyCode = result.CCY == null ? null : result.CCY.CurrencyID; buplan.ExchangeRate = result.ExchangeRate ?? 0; buplan.ParalellRefNo = result.ParalellRefNo; buplan.DecisionDate = result.DecisionDate; buplan.DecisionNo = result.DecisionNo; buplan.BudgetChapterCode = result.BudgetChapterCode; buplan.JournalMemo = result.JournalMemo; buplan.Posted = result.Posted; buplan.TotalAmount = result.TotalAmount; buplan.TotalAmountOC = result.TotalAmountOC; buplan.AllocationConfig = result.AllocationConfig; buplan.BuPlanReceiptDetails = BuPlanReceiptDetails(result.BUPlanReceiptDetails.ToList(), result.RefID.ToString()); buplanreceipts.Add(buplan); } } return(buplanreceipts); }
/// <summary> /// Updates the account balance. /// </summary> /// <param name="buPlanReceipt">The bu plan receipt.</param> /// <returns></returns> public string UpdateAccountBalance(BUPlanReceiptEntity buPlanReceipt) { var buPlanReceiptDetails = BUPlanReceiptDetailDao.GetBUPlanReceiptDetailbyRefId(buPlanReceipt.RefId); foreach (var buPlanReceiptDetail in buPlanReceiptDetails) { string message; var accountBalanceForDebit = AddAccountBalanceForDebit(buPlanReceipt, buPlanReceiptDetail); var accountBalanceForDebitExit = AccountBalanceDao.GetExitsAccountBalance(accountBalanceForDebit); if (accountBalanceForDebitExit != null) { message = UpdateAccountBalance(accountBalanceForDebitExit, accountBalanceForDebit.MovementDebitAmountOC, accountBalanceForDebit.MovementDebitAmount, false, 1); if (message != null) { return(message); } } } return(null); }
/// <summary> /// Takes the specified bu plan receipt entity. /// </summary> /// <param name="buPlanReceiptEntity">The bu plan receipt entity.</param> /// <returns></returns> private static object[] Take(BUPlanReceiptEntity buPlanReceiptEntity) { return(new object[] { "@RefId", buPlanReceiptEntity.RefId, "@RefType", buPlanReceiptEntity.RefType, "@RefDate", buPlanReceiptEntity.RefDate, "@PostedDate", buPlanReceiptEntity.PostedDate, "@RefNo", buPlanReceiptEntity.RefNo, "@CurrencyCode", buPlanReceiptEntity.CurrencyCode, "@ExchangeRate", buPlanReceiptEntity.ExchangeRate, "@ParalellRefNo", buPlanReceiptEntity.ParalellRefNo, "@DecisionDate", buPlanReceiptEntity.DecisionDate, "@DecisionNo", buPlanReceiptEntity.DecisionNo, "@BudgetChapterCode", buPlanReceiptEntity.BudgetChapterCode, "@JournalMemo", buPlanReceiptEntity.JournalMemo, "@Posted", buPlanReceiptEntity.Posted, "@TotalAmount", buPlanReceiptEntity.TotalAmount, "@TotalAmountOC", buPlanReceiptEntity.TotalAmountOC, "@AllocationConfig", buPlanReceiptEntity.AllocationConfig, //"@RefTypeName",buPlanReceiptEntity.RefTypeName, }); }
/// <summary> /// Updates the bu plan receipt. /// </summary> /// <param name="buPlanReceipt">The bu plan receipt.</param> /// <returns></returns> public string UpdateBUPlanReceipt(BUPlanReceiptEntity buPlanReceipt) { const string procedures = @"uspUpdate_BUPlanReceipt"; return(Db.Update(procedures, true, Take(buPlanReceipt))); }
/// <summary> /// Inserts the bu plan receipt. /// </summary> /// <param name="buPlanReceipt">The bu plan receipt.</param> /// <returns></returns> public string InsertBUPlanReceipt(BUPlanReceiptEntity buPlanReceipt) { const string procedures = @"uspInsert_BUPlanReceipt"; return(Db.Insert(procedures, true, Take(buPlanReceipt))); }
/// <summary> /// Updates the ca payment. /// </summary> /// <param name="buPlanReceiptEntity">The bu plan receipt entity.</param> /// <returns> /// CAPaymentResponse. /// </returns> public BUPlanReceiptResponse UpdateBUPlanReceipt(BUPlanReceiptEntity buPlanReceiptEntity) { var buPlanReceiptResponse = new BUPlanReceiptResponse { Acknowledge = AcknowledgeType.Success }; int?cashWithDrawTypeId; try { if (buPlanReceiptEntity != null && !buPlanReceiptEntity.Validate()) { foreach (var error in buPlanReceiptEntity.ValidationErrors) { buPlanReceiptResponse.Message += error + Environment.NewLine; } buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; return(buPlanReceiptResponse); } using (var scope = new TransactionScope()) { if (buPlanReceiptEntity != null) { if (buPlanReceiptEntity.RefType == (int)BuCA.Enum.RefType.BUPlanCancel) { cashWithDrawTypeId = 17; } else { cashWithDrawTypeId = null; } var buPlanReceiptForExisting = BUPlanReceiptDao.GetBUPlanReceipt(buPlanReceiptEntity.RefNo.Trim(), buPlanReceiptEntity.PostedDate); if (buPlanReceiptForExisting != null && buPlanReceiptForExisting.PostedDate.Year == buPlanReceiptEntity.PostedDate.Year) { if (buPlanReceiptForExisting.RefId != buPlanReceiptEntity.RefId) { buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; buPlanReceiptResponse.Message = @"Số chứng từ '" + buPlanReceiptEntity.RefNo.Trim() + @"' đã tồn tại!"; return(buPlanReceiptResponse); } } buPlanReceiptResponse.Message = BUPlanReceiptDao.UpdateBUPlanReceipt(buPlanReceiptEntity); if (buPlanReceiptResponse.Message != null) { buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(buPlanReceiptResponse); } #region Update account balance //Trừ đi số tiền của chứng từ cũ trước khi cộng thêm số tiền mới UpdateAccountBalance(buPlanReceiptEntity); if (buPlanReceiptResponse.Message != null) { buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(buPlanReceiptResponse); } #endregion // Xóa bảng BUPlanReceiptDetail buPlanReceiptResponse.Message = BUPlanReceiptDetailDao.DeleteBUPlanReceiptDetail(buPlanReceiptEntity.RefId); if (buPlanReceiptResponse.Message != null) { buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(buPlanReceiptResponse); } // Xóa bảng GeneralLedger buPlanReceiptResponse.Message = GeneralLedgerDao.DeleteGeneralLedger(buPlanReceiptEntity.RefId); if (buPlanReceiptResponse.Message != null) { buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(buPlanReceiptResponse); } // Xóa bảng OriginalGeneralLedger buPlanReceiptResponse.Message = OriginalGeneralLedgerDao.DeleteOriginalGeneralLedger(buPlanReceiptEntity.RefId); if (buPlanReceiptResponse.Message != null) { buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(buPlanReceiptResponse); } foreach (var buPlanReceiptDetail in buPlanReceiptEntity.BuPlanReceiptDetails) { buPlanReceiptDetail.RefId = buPlanReceiptEntity.RefId; buPlanReceiptDetail.RefDetailId = Guid.NewGuid().ToString(); if (!buPlanReceiptDetail.Validate()) { foreach (string error in buPlanReceiptDetail.ValidationErrors) { buPlanReceiptResponse.Message += error + Environment.NewLine; } buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; return(buPlanReceiptResponse); } buPlanReceiptResponse.Message = BUPlanReceiptDetailDao.InsertBUPlanReceiptDetail(buPlanReceiptDetail); if (!string.IsNullOrEmpty(buPlanReceiptResponse.Message)) { buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; return(buPlanReceiptResponse); } #region Insert into AccountBalance // Cộng thêm số tiền mới sau khi sửa chứng từ InsertAccountBalance(buPlanReceiptEntity, buPlanReceiptDetail); if (buPlanReceiptResponse.Message != null) { buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(buPlanReceiptResponse); } #endregion #region Insert into GeneralLedger if (buPlanReceiptDetail.DebitAccount != null) { var generalLedgerEntity = new GeneralLedgerEntity { RefType = buPlanReceiptEntity.RefType, RefNo = buPlanReceiptEntity.RefNo, ProjectId = buPlanReceiptDetail.ProjectId, BudgetSourceId = buPlanReceiptDetail.BudgetSourceId, Description = buPlanReceiptDetail.Description, RefDetailId = buPlanReceiptDetail.RefDetailId, ExchangeRate = buPlanReceiptEntity.ExchangeRate, BudgetSubKindItemCode = buPlanReceiptDetail.BudgetSubKindItemCode, CurrencyCode = buPlanReceiptEntity.CurrencyCode, BudgetKindItemCode = buPlanReceiptDetail.BudgetKindItemCode, RefId = buPlanReceiptEntity.RefId, PostedDate = buPlanReceiptEntity.PostedDate, BudgetItemCode = buPlanReceiptDetail.BudgetItemCode, ListItemId = buPlanReceiptDetail.ListItemId, BudgetSubItemCode = buPlanReceiptDetail.BudgetSubItemCode, BudgetDetailItemCode = buPlanReceiptDetail.BudgetDetailItemCode, AccountNumber = buPlanReceiptDetail.DebitAccount, DebitAmount = buPlanReceiptDetail.DebitAccount == null ? 0 : buPlanReceiptDetail.Amount, DebitAmountOC = buPlanReceiptDetail.DebitAccount == null ? 0 : buPlanReceiptDetail.AmountOC, CreditAmount = 0, CreditAmountOC = 0, FundStructureId = buPlanReceiptDetail.FundStructureId, GeneralLedgerId = Guid.NewGuid().ToString(), JournalMemo = buPlanReceiptEntity.JournalMemo, RefDate = buPlanReceiptEntity.RefDate, SortOrder = buPlanReceiptDetail.SortOrder, MethodDistributeId = buPlanReceiptDetail.MethodDistributeId, CashWithDrawTypeId = buPlanReceiptEntity.RefType == 51 ? 20 : (buPlanReceiptEntity.RefType == 52 ? 27 : 17),//cashWithDrawTypeId, BudgetChapterCode = buPlanReceiptDetail.BudgetChapterCode, ContractId = buPlanReceiptDetail.ContractId, CapitalPlanId = buPlanReceiptDetail.CapitalPlanId }; buPlanReceiptResponse.Message = GeneralLedgerDao.InsertGeneralLedger(generalLedgerEntity); if (!string.IsNullOrEmpty(buPlanReceiptResponse.Message)) { buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; return(buPlanReceiptResponse); } } #endregion #region Insert OriginalGeneralLedger var originalGeneralLedgerEntity = new OriginalGeneralLedgerEntity { OriginalGeneralLedgerId = Guid.NewGuid().ToString(), RefType = buPlanReceiptEntity.RefType, RefId = buPlanReceiptEntity.RefId, RefDetailId = buPlanReceiptDetail.RefDetailId, RefDate = buPlanReceiptEntity.RefDate, RefNo = buPlanReceiptEntity.RefNo, Amount = buPlanReceiptDetail.Amount, AmountOC = buPlanReceiptDetail.AmountOC, BankId = buPlanReceiptDetail.BankId, BudgetChapterCode = buPlanReceiptDetail.BudgetChapterCode, BudgetDetailItemCode = buPlanReceiptDetail.BudgetDetailItemCode, BudgetItemCode = buPlanReceiptDetail.BudgetItemCode, BudgetKindItemCode = buPlanReceiptDetail.BudgetKindItemCode, BudgetSourceId = buPlanReceiptDetail.BudgetSourceId, BudgetSubItemCode = buPlanReceiptDetail.BudgetSubItemCode, BudgetSubKindItemCode = buPlanReceiptDetail.BudgetSubKindItemCode, DebitAccount = buPlanReceiptDetail.DebitAccount, Description = buPlanReceiptDetail.Description, FundStructureId = buPlanReceiptDetail.FundStructureId, JournalMemo = buPlanReceiptEntity.JournalMemo, ProjectId = buPlanReceiptDetail.ProjectId, ToBankId = buPlanReceiptDetail.BankId, SortOrder = buPlanReceiptDetail.SortOrder, PostedDate = buPlanReceiptEntity.PostedDate, CurrencyCode = buPlanReceiptEntity.CurrencyCode, ExchangeRate = buPlanReceiptEntity.ExchangeRate, CashWithDrawTypeId = buPlanReceiptEntity.RefType == 51 ? 20 : (buPlanReceiptEntity.RefType == 52 ? 27 : 17),//cashWithDrawTypeId, ContractId = buPlanReceiptDetail.ContractId, }; buPlanReceiptResponse.Message = OriginalGeneralLedgerDao.InsertOriginalGeneralLedger(originalGeneralLedgerEntity); if (!string.IsNullOrEmpty(buPlanReceiptResponse.Message)) { buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; return(buPlanReceiptResponse); } #endregion } if (buPlanReceiptResponse.Message != null) { buPlanReceiptResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(buPlanReceiptResponse); } buPlanReceiptResponse.RefId = buPlanReceiptEntity.RefId; } scope.Complete(); } return(buPlanReceiptResponse); } catch (Exception ex) { buPlanReceiptResponse.Message = ex.Message; return(buPlanReceiptResponse); } }