public BUPlanAdjustmentResponse DeleteBuPlanAdjustment(string refId) { var buPlanAdjustmentResponse = new BUPlanAdjustmentResponse { Acknowledge = AcknowledgeType.Success }; using (var scope = new TransactionScope()) { var buPlanAdjustmentEntityForDelete = BuPlanAdjustmentDao.GetBuPlanAdjustmentEntitybyRefId(refId); #region Update account balance // Cập nhật giá trị vào account balance trước khi xóa buPlanAdjustmentResponse.Message = UpdateAccountBalance(buPlanAdjustmentEntityForDelete); if (buPlanAdjustmentResponse.Message != null) { buPlanAdjustmentResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(buPlanAdjustmentResponse); } #endregion buPlanAdjustmentResponse.Message = BuPlanAdjustmentDao.DeleteBUPlanAdjustment(buPlanAdjustmentEntityForDelete); if (buPlanAdjustmentResponse.Message != null) { buPlanAdjustmentResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(buPlanAdjustmentResponse); } //Xóa bảng GeneralLedger buPlanAdjustmentResponse.Message = GeneralLedgerDao.DeleteGeneralLedger(buPlanAdjustmentEntityForDelete.RefId); if (buPlanAdjustmentResponse.Message != null) { buPlanAdjustmentResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(buPlanAdjustmentResponse); } ////Xóa bảng OriginalGeneralLedger buPlanAdjustmentResponse.Message = OriginalGeneralLedgerDao.DeleteOriginalGeneralLedger(buPlanAdjustmentEntityForDelete.RefId); if (buPlanAdjustmentResponse.Message != null) { buPlanAdjustmentResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(buPlanAdjustmentResponse); } scope.Complete(); } return(buPlanAdjustmentResponse); }
public BUPlanAdjustmentResponse InsertBuPlanAdjustment(BUPlanAdjustmentEntity buPlanAdjustment) { var buPlanAdjustmentResponse = new BUPlanAdjustmentResponse { Acknowledge = AcknowledgeType.Success }; if (buPlanAdjustment != null && !buPlanAdjustment.Validate()) { foreach (var error in buPlanAdjustment.ValidationErrors) { buPlanAdjustmentResponse.Message += error + Environment.NewLine; } buPlanAdjustmentResponse.Acknowledge = AcknowledgeType.Failure; return(buPlanAdjustmentResponse); } using (var scope = new TransactionScope()) { if (buPlanAdjustment != null) { var buPlanReceiptForExisting = BuPlanAdjustmentDao.GetBuPlanAdjustmentEntitybyRefNo(buPlanAdjustment.RefNo.Trim(), buPlanAdjustment.PostedDate); if (buPlanReceiptForExisting != null && buPlanReceiptForExisting.PostedDate.Year == buPlanAdjustment.PostedDate.Year) { buPlanAdjustmentResponse.Acknowledge = AcknowledgeType.Failure; buPlanAdjustmentResponse.Message = @"Số chứng từ '" + buPlanAdjustment.RefNo.Trim() + @"' đã tồn tại!"; return(buPlanAdjustmentResponse); } buPlanAdjustment.RefId = Guid.NewGuid().ToString(); buPlanAdjustmentResponse.Message = BuPlanAdjustmentDao.InsertBUPlanAdjustment(buPlanAdjustment); if (!string.IsNullOrEmpty(buPlanAdjustmentResponse.Message)) { buPlanAdjustmentResponse.Acknowledge = AcknowledgeType.Failure; return(buPlanAdjustmentResponse); } foreach (var buPlanAdjustmentDetail in buPlanAdjustment.BUPlanAdjustmentDetails) { buPlanAdjustmentDetail.RefId = buPlanAdjustment.RefId; buPlanAdjustmentDetail.RefDetailId = Guid.NewGuid().ToString(); if (!buPlanAdjustmentDetail.Validate()) { foreach (var error in buPlanAdjustmentDetail.ValidationErrors) { buPlanAdjustmentResponse.Message += error + Environment.NewLine; } buPlanAdjustmentResponse.Acknowledge = AcknowledgeType.Failure; return(buPlanAdjustmentResponse); } buPlanAdjustmentResponse.Message = BuPlanAdjustmentDetailDao.InsertBUPlanAdjustmentDetail(buPlanAdjustmentDetail); if (!string.IsNullOrEmpty(buPlanAdjustmentResponse.Message)) { buPlanAdjustmentResponse.Acknowledge = AcknowledgeType.Failure; return(buPlanAdjustmentResponse); } #region Insert to AccountBalance InsertAccountBalance(buPlanAdjustment, buPlanAdjustmentDetail); #endregion #region Insert into GeneralLedger if (buPlanAdjustmentDetail.DebitAccount != null) { var generalLedgerEntity = new GeneralLedgerEntity { RefType = buPlanAdjustment.RefType, RefNo = buPlanAdjustment.RefNo, ProjectId = buPlanAdjustmentDetail.ProjectId, ActivityId = buPlanAdjustmentDetail.ActivityId, BudgetSourceId = buPlanAdjustmentDetail.BudgetSourceId, Description = buPlanAdjustmentDetail.ItemName, RefDetailId = buPlanAdjustmentDetail.RefDetailId, ExchangeRate = buPlanAdjustment.ExchangeRate, BudgetSubKindItemCode = buPlanAdjustmentDetail.BudgetSubKindItemCode, CurrencyCode = buPlanAdjustment.CurrencyCode, BudgetKindItemCode = buPlanAdjustmentDetail.BudgetKindItemCode, RefId = buPlanAdjustment.RefId, PostedDate = buPlanAdjustment.PostedDate, BudgetItemCode = buPlanAdjustmentDetail.BudgetItemCode, ListItemId = buPlanAdjustmentDetail.ListItemId, BudgetSubItemCode = buPlanAdjustmentDetail.BudgetSubItemCode, BudgetDetailItemCode = buPlanAdjustmentDetail.BudgetDetailItemCode, AccountNumber = buPlanAdjustmentDetail.DebitAccount, DebitAmount = (buPlanAdjustmentDetail.DebitAccount == null ? 0 : buPlanAdjustmentDetail.AdjustmentAmount) / (buPlanAdjustment.ExchangeRate == null || buPlanAdjustment.ExchangeRate == 0 ? 1 : buPlanAdjustment.ExchangeRate), DebitAmountOC = buPlanAdjustmentDetail.DebitAccount == null ? 0 : buPlanAdjustmentDetail.AdjustmentAmount, CreditAmount = 0, CreditAmountOC = 0, FundStructureId = buPlanAdjustmentDetail.FundStructureId, GeneralLedgerId = Guid.NewGuid().ToString(), JournalMemo = buPlanAdjustment.JournalMemo, RefDate = buPlanAdjustment.RefDate, SortOrder = buPlanAdjustmentDetail.SortOrder, CashWithDrawTypeId = 28, ContractId = buPlanAdjustmentDetail.ContractId, CapitalPlanId = buPlanAdjustmentDetail.CapitalPlanId, BudgetChapterCode = buPlanAdjustmentDetail.BudgetChapterCode }; buPlanAdjustmentResponse.Message = GeneralLedgerDao.InsertGeneralLedger(generalLedgerEntity); if (!string.IsNullOrEmpty(buPlanAdjustmentResponse.Message)) { buPlanAdjustmentResponse.Acknowledge = AcknowledgeType.Failure; return(buPlanAdjustmentResponse); } } #endregion #region Insert OriginalGeneralLedger var originalGeneralLedgerEntity = new OriginalGeneralLedgerEntity { OriginalGeneralLedgerId = Guid.NewGuid().ToString(), RefType = buPlanAdjustment.RefType, RefId = buPlanAdjustment.RefId, RefDetailId = buPlanAdjustmentDetail.RefDetailId, RefDate = buPlanAdjustment.RefDate, RefNo = buPlanAdjustment.RefNo, Amount = buPlanAdjustmentDetail.AdjustmentAmount, AmountOC = buPlanAdjustmentDetail.AdjustmentAmount, BankId = buPlanAdjustmentDetail.BankAccount, BudgetChapterCode = buPlanAdjustmentDetail.BudgetChapterCode, BudgetDetailItemCode = buPlanAdjustmentDetail.BudgetDetailItemCode, BudgetItemCode = buPlanAdjustmentDetail.BudgetItemCode, BudgetKindItemCode = buPlanAdjustmentDetail.BudgetKindItemCode, BudgetSourceId = buPlanAdjustmentDetail.BudgetSourceId, BudgetSubItemCode = buPlanAdjustmentDetail.BudgetSubItemCode, BudgetSubKindItemCode = buPlanAdjustmentDetail.BudgetSubKindItemCode, DebitAccount = buPlanAdjustmentDetail.DebitAccount, Description = buPlanAdjustmentDetail.ItemName, FundStructureId = buPlanAdjustmentDetail.FundStructureId, JournalMemo = buPlanAdjustment.JournalMemo, ProjectId = buPlanAdjustmentDetail.ProjectId, ActivityId = buPlanAdjustmentDetail.ActivityId, //ToBankId = buPlanAdjustmentDetail.BankAccount, SortOrder = buPlanAdjustmentDetail.SortOrder, PostedDate = buPlanAdjustment.PostedDate, CurrencyCode = buPlanAdjustment.CurrencyCode, ExchangeRate = buPlanAdjustment.ExchangeRate, CashWithDrawTypeId = 28, ContractId = buPlanAdjustmentDetail.ContractId, }; buPlanAdjustmentResponse.Message = OriginalGeneralLedgerDao.InsertOriginalGeneralLedger(originalGeneralLedgerEntity); if (!string.IsNullOrEmpty(buPlanAdjustmentResponse.Message)) { buPlanAdjustmentResponse.Acknowledge = AcknowledgeType.Failure; return(buPlanAdjustmentResponse); } #endregion } if (buPlanAdjustmentResponse.Message != null) { buPlanAdjustmentResponse.Acknowledge = AcknowledgeType.Failure; scope.Dispose(); return(buPlanAdjustmentResponse); } buPlanAdjustmentResponse.RefId = buPlanAdjustment.RefId; scope.Complete(); } return(buPlanAdjustmentResponse); } }