Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
            }
        }