コード例 #1
0
 /// <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));
        }
コード例 #3
0
        /// <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);
        }
コード例 #5
0
        /// <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)));
        }
コード例 #9
0
        /// <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);
            }
        }