示例#1
0
        public IResponse <NoValue> AddVoucherTransaction(VoucherTransactionCreateModel model)
        {
            Logger.Message($"AddVoucherTransaction(KeyAccountID: {model.KeyAccountID}, UserVoucherID: {model.UserVoucherID}");

            var result = new Response <NoValue>();

            try
            {
                var userVoucher = _uow.UserVouchers.Get(model.UserVoucherID);

                var voucherTransaction = new VoucherTransaction
                {
                    UserVoucherID = model.UserVoucherID,
                    VoucherID     = userVoucher.VoucherID,
                    UserID        = userVoucher.UserID,
                    OfferID       = userVoucher.OfferID,
                    KeyAccountID  = model.KeyAccountID,
                    Amount        = userVoucher.Voucher.Amount, // unclear purpose, require further clarification
                    TimeStamp     = DateTime.UtcNow
                };

                _uow.VoucherTransactions.Add(voucherTransaction);
                userVoucher.Valid = false;
                _uow.Complete();
                result.Status = Status.Success;
            }
            catch (Exception ex)
            {
                result.Message = Message.SomethingWrongError;
                result.Status  = Status.Error;
                Logger.ErrorWithException(ex);
            }

            return(result);
        }
示例#2
0
        public JsonResult SaveVoucher(VoucherTransaction objCashBankVoucher, List <VoucherTransaction> lstOtherVoucher, string voucherType, List <SubLedgerHeadDetails> lstSubLedgerHeadDetails)
        {
            try
            {
                objLoginHelper = (LoginHelper)Session["LogInInformation"];

                string EntrySource = string.Empty;
                if (voucherType == "C")
                {
                    EntrySource = Helper.ContraVoucherForAccountsEntrySource;
                }
                else if (voucherType == "N")
                {
                    EntrySource = Helper.NonCashVoucherForAccountsEntrySource;
                }
                else if (voucherType == "P")
                {
                    EntrySource = Helper.PaymentVoucherForAccountsEntrySource;
                }
                else if (voucherType == "R")
                {
                    EntrySource = Helper.ReceiveVoucherForAccountsEntrySource;
                }

                ArrayList transactionNumberMax = accountDeptDal.ReadVoucherTransNoMax(objLoginHelper.LocationCode, objLoginHelper.CurrentDate.ToString("yyMMdd"));
                objCashBankVoucher.TransactionNo = Helper.AccountSequenceNumberGeneration(transactionNumberMax, objLoginHelper);

                Acc_TransNoCount objAccTransNocount = new Acc_TransNoCount();
                objAccTransNocount            = voucherProcess.TransNoCount(objCashBankVoucher, objLoginHelper.LocationCode);
                objAccTransNocount.TransCount = null;

                Acc_PrePostTransMaster objPrePostTransMaster = new Acc_PrePostTransMaster();
                objPrePostTransMaster             = voucherProcess.CashBankVoucherProcess(objCashBankVoucher, voucherType, objLoginHelper, EntrySource);
                objPrePostTransMaster.IsAutoEntry = false;

                List <Acc_PrePostTransDetail> lstPrePostTransDetail = new List <Acc_PrePostTransDetail>();
                lstPrePostTransDetail = voucherProcess.OtherBankVoucherProcess(lstOtherVoucher, voucherType, objLoginHelper, EntrySource, objCashBankVoucher.TransactionNo);

                List <Acc_PrePostTransDetailByDimension> lstPrePostTransDetailByDimension = new List <Acc_PrePostTransDetailByDimension>();

                if (lstSubLedgerHeadDetails != null)
                {
                    lstPrePostTransDetailByDimension = voucherProcess.PrePostTransDetailByDimensionProcess(objCashBankVoucher, lstPrePostTransDetail, lstSubLedgerHeadDetails, objLoginHelper.LocationCode);
                }

                objPrePostTransMaster = accountDeptDal.CreateVoucher(objAccTransNocount, objPrePostTransMaster, lstPrePostTransDetail, lstPrePostTransDetailByDimension);

                return(new JsonResult {
                    Data = ExceptionHelper.ExceptionMessage(string.Empty, Helper.AccountSequenceNumberGeneration(objPrePostTransMaster.TransNo))
                });
            }
            catch (Exception ex)
            {
                return(new JsonResult {
                    Data = ExceptionHelper.ExceptionMessage(ex)
                });
            }
        }
示例#3
0
        public JsonResult SaveEmployeeWiseSalaryPayment(VoucherTransaction objCashBankVoucher, List <VoucherTransaction> lstOtherVoucher, List <EmployeeWiseSalaryPayment> lstEmployeeWiseSalary, string voucherType)
        {
            try
            {
                objLoginHelper = (LoginHelper)Session["LogInInformation"];

                string EntrySource = string.Empty;
                EntrySource = Helper.BankPaymentVoucherForAccountsEntrySource;

                ArrayList transactionNumberMax = accountDeptDal.ReadVoucherTransNoMax(objLoginHelper.LocationCode, objLoginHelper.CurrentDate.ToString("yyMMdd"));
                objCashBankVoucher.TransactionNo = Helper.AccountSequenceNumberGeneration(transactionNumberMax, objLoginHelper);

                Acc_TransNoCount objAccTransNocount = new Acc_TransNoCount();
                objAccTransNocount            = voucherProcess.TransNoCount(objCashBankVoucher, objLoginHelper.LocationCode);
                objAccTransNocount.TransCount = null;

                Acc_PrePostTransMaster objPrePostTransMaster = new Acc_PrePostTransMaster();
                objPrePostTransMaster             = voucherProcess.CashBankVoucherProcess(objCashBankVoucher, voucherType, objLoginHelper, EntrySource);
                objPrePostTransMaster.IsAutoEntry = false;

                List <Acc_PrePostTransDetail> lstPrePostTransDetail = new List <Acc_PrePostTransDetail>();
                lstPrePostTransDetail = voucherProcess.OtherBankVoucherProcess(lstOtherVoucher, voucherType, objLoginHelper, EntrySource, objCashBankVoucher.TransactionNo);

                List <SubLedgerHeadDetails> lstSubLedgerHeadDetails = new List <SubLedgerHeadDetails>();
                lstSubLedgerHeadDetails = voucherProcess.PrepareEmployeeWiseSalaryToSubLedgerDimension(lstEmployeeWiseSalary, objLoginHelper.LocationCode, objCashBankVoucher.TransactionNo);

                List <Acc_PrePostTransDetailByDimension> lstTransDetailByDimension = new List <Acc_PrePostTransDetailByDimension>();
                lstTransDetailByDimension = voucherProcess.PrePostTransDetailByDimensionProcess(objCashBankVoucher, lstPrePostTransDetail, lstSubLedgerHeadDetails, objLoginHelper.LocationCode);


                //start oroginal

                //objPrePostTransMaster = accountDeptDal.CreateVoucher(objPrePostTransMaster, lstEmployeeWiseSalary);

                // objPrePostTransMaster = accountDeptDal.CreateVoucher(objAccTransNocount, objPrePostTransMaster, lstPrePostTransDetail, lstTransDetailByDimension);

                //end oroginal


                //start new
                string supportMethod = "ttd";//its use for support method
                objPrePostTransMaster = accountDeptDal.CreateVoucherForSaveEmployeeWiseSalaryPayment(objAccTransNocount, lstEmployeeWiseSalary, lstPrePostTransDetail, lstTransDetailByDimension, objPrePostTransMaster, supportMethod);
                //end new


                return(new JsonResult {
                    Data = ExceptionHelper.ExceptionMessage(string.Empty, Helper.AccountSequenceNumberGeneration(objPrePostTransMaster.TransNo))
                });
            }
            catch (Exception ex)
            {
                return(new JsonResult {
                    Data = ExceptionHelper.ExceptionMessage(ex)
                });
            }
        }
示例#4
0
        public Acc_TransNoCount TransNoCount(VoucherTransaction objCashBankVoucher, string locationCode)
        {
            Acc_TransNoCount objtransNoCount = new Acc_TransNoCount();

            objtransNoCount.LocationCode = locationCode;
            objtransNoCount.TransDate    = DateTime.Now; //Convert.ToDateTime(objCashBankVoucher.TransactionDate);
            //objtransNoCount.ProjectCode = objCashBankVoucher.ProjectCode;
            objtransNoCount.TransNo = objCashBankVoucher.TransactionNo;
            //objtransNoCount.Add(objtransNoCount);
            return(objtransNoCount);
        }
示例#5
0
        public JsonResult SavePaymentOrReceieveVoucherForAuditor(VoucherTransaction objCashBankVoucher, List <VoucherTransaction> lstOtherVoucher, VoucherTransactionAudit objvoucherTransactionAudit, string voucherType)
        {
            try
            {
                objLoginHelper = (LoginHelper)Session["LogInInformation"];

                string EntrySource = string.Empty;
                if (voucherType == "C")
                {
                    EntrySource = Helper.ContraVoucherForAuditorEntrySource;
                }
                else if (voucherType == "N")
                {
                    EntrySource = Helper.NonCashVoucherForAuditorEntrySource;
                }
                else if (voucherType == "P")
                {
                    EntrySource = Helper.PaymentVoucherForAuditorEntrySource;
                }
                else if (voucherType == "R")
                {
                    EntrySource = Helper.ReceiveVoucherForAuditorEntrySource;
                }

                Acc_TransNoCount objAccTransNocount = new Acc_TransNoCount();
                objAccTransNocount            = voucherProcess.TransNoCount(objCashBankVoucher, objLoginHelper.LocationCode); //Newly Add By Md.Sultan Mahmud
                objAccTransNocount.TransCount = null;

                Acc_PrePostTransMaster objPrePostTransMaster = new Acc_PrePostTransMaster();
                objPrePostTransMaster = voucherProcess.CashBankVoucherProcess(objCashBankVoucher, voucherType, objLoginHelper, EntrySource);

                List <Acc_PrePostTransDetail> lstPrePostTransDetail = new List <Acc_PrePostTransDetail>();
                lstPrePostTransDetail = voucherProcess.OtherBankVoucherProcess(lstOtherVoucher, voucherType, objLoginHelper, EntrySource, objCashBankVoucher.TransactionNo);

                Aud_AuditAdjustmentRelatedAccountingTransaction objAuditAdjustmentRelatedAccountingTransaction = new Aud_AuditAdjustmentRelatedAccountingTransaction();
                objAuditAdjustmentRelatedAccountingTransaction = voucherProcess.AuditAdjustmentVoucherOrAccount(objvoucherTransactionAudit, objLoginHelper);

                objPrePostTransMaster = accountDeptDal.CreateVoucher(objAccTransNocount, objPrePostTransMaster, lstPrePostTransDetail, objAuditAdjustmentRelatedAccountingTransaction);

                return(new JsonResult {
                    Data = ExceptionHelper.ExceptionMessage(string.Empty, Helper.AccountSequenceNumberGeneration(objPrePostTransMaster.TransNo))
                });
            }
            catch (Exception ex)
            {
                return(new JsonResult {
                    Data = ExceptionHelper.ExceptionMessage(ex)
                });
            }
        }
示例#6
0
        public Acc_PrePostTransMaster CashBankVoucherProcess(VoucherTransaction objCashBankVoucher, string voucherType, LoginHelper objLoginHelper, string entrySource)
        {
            Acc_PrePostTransMaster objPrePostTransMaster = new Acc_PrePostTransMaster();

            objPrePostTransMaster.LocationCode                 = objLoginHelper.LocationCode;
            objPrePostTransMaster.TransDate                    = objCashBankVoucher.TransactionDate;
            objPrePostTransMaster.ProjectCode                  = objCashBankVoucher.ProjectCode;
            objPrePostTransMaster.TransNo                      = objCashBankVoucher.TransactionNo;
            objPrePostTransMaster.GenParticulars               = objCashBankVoucher.GeneralParticulars;
            objPrePostTransMaster.CBVoucher                    = Helper.VoucherSelection(voucherType);
            objPrePostTransMaster.CBVType                      = Helper.VoucherTypeSelection(voucherType);
            objPrePostTransMaster.IsAutoEntry                  = true;
            objPrePostTransMaster.EntrySource                  = entrySource;
            objPrePostTransMaster.SenderOrReceiverFlag         = null;
            objPrePostTransMaster.SenderOrReceiverLocationCode = null;
            objPrePostTransMaster.UserID    = objLoginHelper.LogInID;
            objPrePostTransMaster.EntryTime = DateTime.Now;

            return(objPrePostTransMaster);
        }
示例#7
0
        public List <Acc_PrePostTransDetailByDimension> PrePostTransDetailByEmployeeWiseSalaryDimensionProcess(VoucherTransaction objCashBankVoucher, List <Acc_PrePostTransDetail> lstPrePostTransDetail, List <EmployeeWiseSalaryPayment> lstEmployeeWiseSalary, string locationCode)
        {
            List <Acc_PrePostTransDetailByDimension> lstPrePostTransDetailByDimensionProcess = new List <Acc_PrePostTransDetailByDimension>();
            Acc_PrePostTransDetailByDimension        objPrePostDimensionForSalary;

            foreach (Acc_PrePostTransDetail vtrans in lstPrePostTransDetail)
            {
                if (vtrans.AccountNo == "204010150" || vtrans.AccountNo == "204010175" || vtrans.AccountNo == "204010155")
                {
                    foreach (EmployeeWiseSalaryPayment emp in lstEmployeeWiseSalary)
                    {
                        if (vtrans.Amount > 0)
                        {
                            if (emp.SalaryOtherThanTADAAmount != 0 || emp.TADAAmount != 0 || emp.BonusAmount != 0)
                            {
                                objPrePostDimensionForSalary = new Acc_PrePostTransDetailByDimension();

                                objPrePostDimensionForSalary.LocationCode     = locationCode;
                                objPrePostDimensionForSalary.TransDate        = Convert.ToDateTime(objCashBankVoucher.TransactionDate);
                                objPrePostDimensionForSalary.ProjectCode      = objCashBankVoucher.ProjectCode;
                                objPrePostDimensionForSalary.TransNo          = objCashBankVoucher.TransactionNo;
                                objPrePostDimensionForSalary.SerialNo         = vtrans.SerialNo;
                                objPrePostDimensionForSalary.DimensionCode    = "EMPLOYEEID";
                                objPrePostDimensionForSalary.DimensionValueID = emp.EmployeeID;

                                if (vtrans.AccountNo == "204010150")
                                {
                                    objPrePostDimensionForSalary.Amount = emp.SalaryOtherThanTADAAmount;
                                }
                                else if (vtrans.AccountNo == "204010175")
                                {
                                    objPrePostDimensionForSalary.Amount = emp.TADAAmount;
                                }
                                else if (vtrans.AccountNo == "204010155")
                                {
                                    objPrePostDimensionForSalary.Amount = emp.BonusAmount;
                                }

                                objPrePostDimensionForSalary.RefAccountNo = vtrans.AccountNo;
                                lstPrePostTransDetailByDimensionProcess.Add(objPrePostDimensionForSalary);
                            }
                        }
                    }
                }
            }

            return(lstPrePostTransDetailByDimensionProcess);
        }
示例#8
0
        public List <Acc_PrePostTransDetailByDimension> PrePostTransDetailByDimensionProcess(VoucherTransaction objCashBankVoucher, List <Acc_PrePostTransDetail> lstPrePostTransDetail, List <SubLedgerHeadDetails> lstSubLedgerHeadDetails, string locationCode)
        {
            List <Acc_PrePostTransDetailByDimension> lstPrePostTransDetailByDimensionProcess = new List <Acc_PrePostTransDetailByDimension>();
            Acc_PrePostTransDetailByDimension        objPrePostTransDetailByDimension;
            int    serialNo = 0;
            string ssp      = "a";

            foreach (SubLedgerHeadDetails subLedger in lstSubLedgerHeadDetails)
            {
                if (ssp != subLedger.AccountNo)
                {
                    serialNo = (from ss in lstPrePostTransDetail where ss.AccountNo == subLedger.AccountNo select ss.SerialNo).FirstOrDefault();
                    ssp      = (from ss in lstPrePostTransDetail where ss.AccountNo == subLedger.AccountNo select ss.AccountNo).FirstOrDefault();
                }

                bool isTheDimensionMandatory = accountDeptDal.IsTheDimensionMandatoryExistOrNot(subLedger.AccountNo);
                if (isTheDimensionMandatory == true)
                {
                    objPrePostTransDetailByDimension = new Acc_PrePostTransDetailByDimension();
                    objPrePostTransDetailByDimension.LocationCode     = locationCode;
                    objPrePostTransDetailByDimension.TransDate        = objCashBankVoucher.TransactionDate;
                    objPrePostTransDetailByDimension.ProjectCode      = objCashBankVoucher.ProjectCode;
                    objPrePostTransDetailByDimension.TransNo          = objCashBankVoucher.TransactionNo;
                    objPrePostTransDetailByDimension.SerialNo         = serialNo;
                    objPrePostTransDetailByDimension.DimensionCode    = subLedger.DimensionCode;
                    objPrePostTransDetailByDimension.DimensionValueID = subLedger.DimensionValueID;

                    objPrePostTransDetailByDimension.Amount = DebitOrCreditConversion(subLedger.TransactionType, Convert.ToDecimal(subLedger.DimensionAmount));

                    objPrePostTransDetailByDimension.RefAccountNo = subLedger.AccountNo;

                    lstPrePostTransDetailByDimensionProcess.Add(objPrePostTransDetailByDimension);
                }
            }

            return(lstPrePostTransDetailByDimensionProcess);
        }