コード例 #1
0
 protected void BeforeLoan(CostReportInfo model)
 {
     if (model.IsSystem)
     {
         model.State = (int)CostReportState.AlreadyAuditing;//状态:待付款
     }
     else
     {
         //查询没有付款的票据
         var isPayList = CostReportBillInfoList.Where(p => !p.IsPay);
         if (isPayList.Any())                               //有没有付款的票据
         {
             model.State = (int)CostReportState.NoAuditing; //状态:票据待受理
         }
         else
         {
             if (model.IsLastTime)
             {
                 if (CostReportTravelInfoList.Any() || CostReportTerminiInfoList.Any() || !string.IsNullOrEmpty(model.GoodsCode) || !model.InvoiceId.Equals(Guid.Empty))
                 {
                     model.State = (int)CostReportState.NoAuditing;//状态:票据待受理
                 }
                 else
                 {
                     model.State = (int)CostReportState.AlreadyAuditing;//状态:待付款
                 }
             }
             else
             {
                 model.State = (int)CostReportState.AlreadyAuditing;//状态:待付款
             }
         }
     }
     model.Memo = WebControl.RetrunUserAndTime("[【审核】:审核通过;审核说明:" + (string.IsNullOrEmpty(txt_AuditingMemo.Text) ? "暂无说明" : txt_AuditingMemo.Text) + ";]");
 }
コード例 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                var reportId = Request.QueryString["ReportId"];
                if (string.IsNullOrEmpty(reportId))
                {
                    return;
                }
                CostReportInfo costReportInfo = _costReport.GetReportByReportId(new Guid(reportId));

                LoadReportKindData(); //加载申报类型
                LoadBranchData();     //加载部门数据
                if (!costReportInfo.AssumeBranchId.Equals(Guid.Empty))
                {
                    LoadGroupData(costReportInfo.AssumeBranchId);//根据部门id获取“小组”数据
                }
                if (!costReportInfo.AssumeGroupId.Equals(Guid.Empty))
                {
                    LoadShopData();//加载门店数据
                    AssumeShop.Visible = costReportInfo.AssumeBranchId.Equals(new Guid(ShopBranchId));
                }
                LoadReportData(costReportInfo);//初始化页面数据
            }
        }
コード例 #3
0
        //初始化页面数据
        private void LoadReportData(CostReportInfo model)
        {
            var branchinfo =
                CacheCollection.Branch.GetSystemBranchList().FirstOrDefault(p => p.ID == model.AssumeBranchId);

            lbl_ReportBranch.Text      = branchinfo == null ? "" : branchinfo.Name;
            lbl_CompanyClass.Text      = Cost.ReadInstance.GetCompanyName(model.CompanyClassId, model.CompanyId);
            lbl_ReportName.Text        = model.ReportName;
            lbl_ReportDate.Text        = model.StartTime.ToString("yyyy年MM月") + "至" + model.EndTime.ToString("yyyy年MM月");
            lbl_ReportCost.Text        = model.ReportCost.ToString(CultureInfo.InvariantCulture);
            lbl_ReportNo.Text          = model.ReportNo;
            lbl_PayCompany.Text        = CacheCollection.Filiale.GetFilialeNameAndFilialeId(model.PayBankAccountId).Split(',')[0];
            lbl_ExecuteDate.Text       = model.ExecuteDate.ToString("yyyy-MM-dd");
            lbl_BankAccount.Text       = model.BankName;
            lbl_ReportPersonnelId.Text = new PersonnelManager().Get(model.ReportPersonnelId).RealName;

            var depositRecoveryList = _costReportDepositRecovery.GetDepositRecoveryList(model.ReportId);

            if (depositRecoveryList.Count > 0)
            {
                lbl_RecoveryPersonnelId.Text = new PersonnelManager().Get(depositRecoveryList[0].RecoveryPersonnelId).RealName;
            }
            if (depositRecoveryList.Count == 1)
            {
                lbl_RecoveryType.Text = depositRecoveryList[0].RecoveryType ? "票据" : "现金";
                lbl_RecoveryCost.Text = depositRecoveryList[0].RecoveryCost.ToString();
            }
            else if (depositRecoveryList.Count == 2)
            {
                lbl_RecoveryType.Text  = depositRecoveryList[0].RecoveryType ? "票据" : "现金";
                lbl_RecoveryCost.Text  = depositRecoveryList[0].RecoveryCost.ToString();
                lbl_RecoveryType2.Text = depositRecoveryList[1].RecoveryType ? "票据" : "现金";
                lbl_RecoveryCost2.Text = depositRecoveryList[1].RecoveryCost.ToString();
            }
        }
コード例 #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                var reportId = Request.QueryString["ReportId"];
                if (string.IsNullOrEmpty(reportId))
                {
                    return;
                }
                CostReportInfo costReportInfo = _costReport.GetReportByReportId(new Guid(reportId));

                LoadReportKindData(); //加载申报类型
                LoadBranchData();     //加载部门数据
                if (!costReportInfo.AssumeBranchId.Equals(Guid.Empty))
                {
                    LoadGroupData(costReportInfo.AssumeBranchId);//根据部门id获取“小组”数据
                }
                if (!costReportInfo.AssumeGroupId.Equals(Guid.Empty))
                {
                    LoadShopData();//加载门店数据
                    AssumeShop.Visible = costReportInfo.AssumeBranchId.Equals(new Guid(ShopBranchId));
                }
                LoadReportData(costReportInfo);//初始化页面数据

                //只有CostReport_SearchManage.aspx页面状态是“完成”并且“付款金额”>=1000的数据才有“审阅”按钮
                if ((Request.QueryString["Review"] != null && Request.QueryString["Review"] == "1") && costReportInfo.State.Equals((int)CostReportState.Complete) && costReportInfo.PayCost >= 1000)
                {
                    //判断登录用户是否有此操作的权限
                    if (GetPowerOperationPoint("Review") && costReportInfo.ReviewState.Equals(0))
                    {
                        btn_Review.Visible = true;
                    }
                }
            }
        }
コード例 #5
0
        //受理不通过
        protected void btn_NoPass_Click(object sender, EventArgs e)
        {
            CostReportInfo model = _costReport.GetReportByReportId(new Guid(Request.QueryString["ReportId"]));

            if (model.State != (int)CostReportState.NoAuditing)
            {
                MessageBox.Show(this, "该单据状态已更新,不允许此操作!");
                return;
            }

            var state = (int)CostReportState.InvoiceNoPass;
            var memo  = ERP.UI.Web.Common.WebControl.RetrunUserAndTime("[【票据受理】:票据不合格;受理说明:" + (string.IsNullOrEmpty(txt_AuditingMemo.Text) ? "暂无说明" : txt_AuditingMemo.Text) + ";]");

            #region 保存数据
            using (var ts = new TransactionScope(TransactionScopeOption.Required))
            {
                try
                {
                    _costReport.UpdateReport(model.ReportId, state, txt_AuditingMemo.Text, memo, Guid.Empty);
                    //添加操作日志
                    _operationLogManager.Add(Personnel.PersonnelId, Personnel.RealName, model.ReportId, model.ReportNo, OperationPoint.CostDeclare.AuditDeclare.GetBusinessInfo(), 1, "");

                    ts.Complete();
                    MessageBox.AppendScript(this, "setTimeout(function(){ CloseAndRebind(); }, " + GlobalConfig.PageAutoRefreshDelayTime + ");");
                }
                catch
                {
                    MessageBox.Show(this, "保存失败!");
                }
            }
            #endregion
        }
コード例 #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="model"></param>
        /// <param name="personnelInfo"></param>
        /// <param name="flag">true:有手续费;false:无手续费;</param>
        /// <returns></returns>
        public CostReckoningInfo AddCostReckoningInfo(CostReportInfo model, PersonnelInfo personnelInfo, bool flag)
        {
            var description = String.Format("[费用申报单据号:{0}][费用申报完成打款][{1}]", model.ReportNo, model.ReportName);

            if (flag && model.Poundage > 0)
            {
                description += "[手续费:" + model.Poundage + "]";
            }
            description = char.ConvertFromUtf32(10) + description + " [" + personnelInfo.RealName + ": " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "]";
            var costReckoningInfo = new CostReckoningInfo
            {
                ReckoningId       = Guid.NewGuid(),
                FilialeId         = model.ReportFilialeId,
                AssumeFilialeId   = model.AssumeFilialeId,
                CompanyId         = model.CompanyId,
                TradeCode         = _codeManager.GetCode(CodeType.PY),
                DateCreated       = DateTime.Now,
                Description       = description,
                AccountReceivable = model.RealityCost,
                NonceTotalled     = _costReckoningDao.GetTotalled(model.CompanyId),
                ReckoningType     = model.RealityCost > 0 ? (int)ReckoningType.Income : (int)ReckoningType.Defray,
                ReckoningState    = (int)ReckoningStateType.Currently,
                IsChecked         = 0,
                AuditingState     = (int)AuditingState.Yes
            };

            costReckoningInfo.NonceTotalled += costReckoningInfo.AccountReceivable;
            return(costReckoningInfo);
        }
コード例 #7
0
 //批量审批通过
 protected void btn_Pass_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(Hid_ReportId.Value))
     {
         var errorMsg  = new StringBuilder();
         var reportIds = Hid_ReportId.Value.Split(',');
         foreach (var item in reportIds)
         {
             CostReportInfo model = _costReport.GetReportByReportId(new Guid(item));
             if (model.State != (int)CostReportState.Auditing)
             {
                 errorMsg.Append("“").Append(model.ReportNo).Append("”状态已更新,不允许此操作!").Append("\\n");
                 continue;
             }
             try
             {
                 AuditPass(model);
             }
             catch
             {
                 errorMsg.Append("“").Append(model.ReportNo).Append("”保存失败!").Append("\\n");
             }
         }
         if (!string.IsNullOrEmpty(errorMsg.ToString()))
         {
             MessageBox.Show(this, errorMsg.ToString());
         }
         MessageBox.AppendScript(this, "setTimeout(function(){ refreshGrid(); }, " + GlobalConfig.PageAutoRefreshDelayTime + ");");
     }
 }
コード例 #8
0
        //初始化页面数据
        protected void LoadReportData(CostReportInfo model)
        {
            rbl_ReportKind.SelectedValue    = model.ReportKind.ToString();
            ddl_AssumeBranch.SelectedValue  = model.AssumeBranchId.Equals(Guid.Empty) ? string.Empty : model.AssumeBranchId.ToString();
            ddl_AssumeGroup.SelectedValue   = model.AssumeGroupId.Equals(Guid.Empty) ? string.Empty : model.AssumeGroupId.ToString();
            ddl_AssumeShop.SelectedValue    = model.AssumeShopId.Equals(Guid.Empty) ? string.Empty : model.AssumeShopId.ToString();
            rbl_UrgentOrDefer.SelectedValue = string.Format("{0}", model.UrgentOrDefer);
            txt_UrgentReason.Text           = model.UrgentReason;
            Hid_CostsClass.Value            = string.Format("{0}", model.CostsVarieties);
            ddl_CompanyClass.SelectedValue  = model.CompanyClassId.Equals(Guid.Empty) ? string.Empty : model.CompanyClassId.ToString();
            ddl_FeeType.SelectedValue       = model.CompanyId.Equals(Guid.Empty) ? string.Empty : model.CompanyId.ToString();
            txt_ReportName.Text             = model.ReportName + (model.ApplyNumber > 1 ? "  " + WebControl.ConvertToChnName(model.ApplyNumber) + "期" : string.Empty);
            txt_StartTime.Text         = model.StartTime.ToString("yyyy年MM月");
            txt_EndTime.Text           = model.EndTime.ToString("yyyy年MM月");
            txt_PayCompany.Text        = model.PayCompany;
            txt_ReportCost.Text        = model.ReportCost.ToString(CultureInfo.InvariantCulture);
            Lit_CapitalAmount.Text     = !string.IsNullOrEmpty(txt_ReportCost.Text) ? txt_ReportCost.Text : string.Empty;
            rbl_CostType.SelectedValue = string.Format("{0}", model.CostType);
            if (model.CostType.Equals(2))
            {
                if (!string.IsNullOrEmpty(model.BankAccountName))
                {
                    txt_BankName.Text    = model.BankAccountName.Split(',')[0];
                    txt_SubBankName.Text = model.BankAccountName.Split(',')[1];
                }
            }

            if (!model.PayBankAccountId.Equals(Guid.Empty))
            {
                ddl_AssumeFiliale.SelectedValue  = model.AssumeFilialeId.ToString();
                rcb_PayBankAccount.SelectedValue = model.PayBankAccountId.ToString();
            }
            txt_DepositNo.Text  = model.DepositNo;
            txt_ReportMemo.Text = model.ReportMemo;
        }
コード例 #9
0
        //费用申报(lmshop_CostReport)
        protected void EditCostReportModel(CostReportInfo model, PersonnelInfo personnelInfo)
        {
            model.ReportNo       = new CodeManager().GetCode(CodeType.RE);
            model.ReportKind     = (int)CostReportKind.FeeIncome;
            model.AssumeBranchId = string.IsNullOrEmpty(ddl_AssumeBranch.SelectedValue) ? Guid.Empty : new Guid(ddl_AssumeBranch.SelectedValue);
            model.AssumeGroupId  = string.IsNullOrEmpty(ddl_AssumeGroup.SelectedValue) ? Guid.Empty : new Guid(ddl_AssumeGroup.SelectedValue);
            model.AssumeShopId   = string.IsNullOrEmpty(ddl_AssumeShop.SelectedValue) ? Guid.Empty : new Guid(ddl_AssumeShop.SelectedValue);
            model.CostsVarieties = string.IsNullOrEmpty(Hid_CostsClass.Value) ? -1 : int.Parse(Hid_CostsClass.Value);
            model.GoodsCode      = string.Empty;
            model.CompanyClassId = string.IsNullOrEmpty(ddl_CompanyClass.SelectedValue) ? Guid.Empty : new Guid(ddl_CompanyClass.SelectedValue);
            model.CompanyId      = string.IsNullOrEmpty(ddl_FeeType.SelectedValue) ? Guid.Empty : new Guid(ddl_FeeType.SelectedValue);
            model.UrgentOrDefer  = int.Parse(rbl_UrgentOrDefer.SelectedValue);
            model.UrgentReason   = model.UrgentOrDefer.Equals(1) ? txt_UrgentReason.Text : string.Empty;
            model.ReportName     = txt_ReportName.Text;
            model.StartTime      = DateTime.Parse(txt_StartTime.Text);
            model.EndTime        = DateTime.Parse(txt_EndTime.Text);
            model.PayCompany     = txt_PayCompany.Text;
            model.ReportCost     = Math.Abs(Decimal.Parse(txt_ReportCost.Text));
            model.RealityCost    = model.ReportCost;
            model.ApplyForCost   = model.ReportCost;
            model.ActualAmount   = model.ReportCost;
            model.CostType       = int.Parse(rbl_CostType.SelectedValue);
            model.Deposit        = 2;
            if (model.CostType.Equals(2))
            {
                model.BankAccountName = txt_BankName.Text.Trim() + "," + txt_SubBankName.Text.Trim();
            }
            model.InvoiceType      = (int)CostReportInvoiceType.WaitCheck;
            model.PayBankAccountId = string.IsNullOrEmpty(rcb_PayBankAccount.SelectedValue) ? Guid.Empty : new Guid(rcb_PayBankAccount.SelectedValue); //结算账号
            model.AssumeFilialeId  = string.IsNullOrEmpty(Hid_AssumeFiliale.Value) ? Guid.Empty : new Guid(Hid_AssumeFiliale.Value);                   //结算公司
            model.ReportMemo       = txt_ReportMemo.Text;

            model.ReportFilialeId   = personnelInfo.FilialeId;
            model.ReportBranchId    = personnelInfo.BranchId;
            model.ReportPersonnelId = personnelInfo.PersonnelId;
            model.State             = (int)CostReportState.Auditing;
            if (string.IsNullOrEmpty(Request.QueryString["ReportId"]))
            {
                model.ReportDate = DateTime.Now;
            }
            model.Memo        = WebControl.RetrunUserAndTime("[【费用收入】:" + txt_ReportMemo.Text + ";]");
            model.IsLastTime  = true;
            model.IsSystem    = false;
            model.ApplyNumber = 1;
            model.IsEnd       = false;

            if (!string.IsNullOrEmpty(rcb_PayBankAccount.SelectedValue))
            {
                var bankAccountInfo = _bankAccounts.GetBankAccounts(new Guid(rcb_PayBankAccount.SelectedValue));
                if (bankAccountInfo != null && bankAccountInfo.IsMain)
                {
                    model.IsOut = true;
                }
                else
                {
                    model.IsOut = false;
                }
            }
        }
コード例 #10
0
        //受理通过
        protected void btn_Pass_Click(object sender, EventArgs e)
        {
            CostReportInfo model = _costReport.GetReportByReportId(new Guid(Request.QueryString["ReportId"]));

            if (model.State != (int)CostReportState.NoAuditing)
            {
                MessageBox.Show(this, "该单据状态已更新,不允许此操作!");
                return;
            }

            bool isPayBill = false;//是否将票据设置成付款完成

            if (model.ReportKind == (int)CostReportKind.Before)
            {
                //预借款
                BeforeLoan(model, out isPayBill);
            }
            else if (model.ReportKind == (int)CostReportKind.Later)
            {
                //凭证报销
                VoucherPay(model);
            }
            else if (model.ReportKind == (int)CostReportKind.Paying)
            {
                isPayBill = true;
                //已扣款核销
                PayVerification(model);
            }
            model.AuditingMemo = txt_AuditingMemo.Text;
            model.AcceptDate   = DateTime.Now;

            #region 保存数据
            using (var ts = new TransactionScope(TransactionScopeOption.Required))
            {
                try
                {
                    _costReportBill.Updatelmshop_CostReportBillForPassByReportId(model.ReportId, true);
                    if (isPayBill)
                    {
                        _utility.UpdateFieldByPk("lmShop_CostReportBill", "IsPay", new object[] { true }, "ReportId", model.ReportId.ToString());
                    }
                    _costReport.UpdateReport(model);

                    //添加操作日志
                    _operationLogManager.Add(Personnel.PersonnelId, Personnel.RealName, model.ReportId, model.ReportNo, OperationPoint.CostDeclare.AuditDeclare.GetBusinessInfo(), 1, "");

                    ts.Complete();
                    MessageBox.AppendScript(this, "setTimeout(function(){ CloseAndRebind(); }, " + GlobalConfig.PageAutoRefreshDelayTime + ");");
                }
                catch
                {
                    MessageBox.Show(this, "保存失败!");
                }
            }
            #endregion
        }
コード例 #11
0
        /// <summary>
        /// 返回资金流Model
        /// </summary>
        /// <param name="model"></param>
        /// <param name="personnelInfo"></param>
        /// <param name="flag">true:有手续费;false:无手续费;</param>
        /// <returns></returns>
        public WasteBookInfo AddWasteBookInfo(CostReportInfo model, PersonnelInfo personnelInfo, bool flag)
        {
            decimal income;

            if (flag && model.Poundage > 0)
            {
                income = model.Poundage;
            }
            else
            {
                income = model.RealityCost;
            }
            string auditingMan        = _personnelManager.GetName(personnelInfo.PersonnelId);
            string reportMan          = _personnelManager.GetName(model.ReportPersonnelId);
            var    dateTime           = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            var    wasteBookTradeCode = _codeManager.GetCode(CodeType.RD);
            int    wasteBookType;
            string strMan, strDes;

            if (income > 0)
            {
                wasteBookType = (int)WasteBookType.Decrease;
                strMan        = "收款";
                strDes        = "减少";
            }
            else
            {
                wasteBookType = (int)WasteBookType.Increase;
                strMan        = "付款";
                strDes        = "增加";
            }

            bool isDeposit = (model.ReportKind == (int)CostReportKind.FeeIncome && !string.IsNullOrEmpty(model.DepositNo));

            var wasteBookDescription = string.Format("[费用申报(申报编号:{0};费用名称:{1};申报人:{2};" + strMan + "单位:{3};完成打款人:{4};手续费:{5};交易流水号:{6};资金" + strDes + ",{7}" + (isDeposit ? "【押金回收】" : "") + ")]", model.ReportNo, model.ReportName, reportMan, model.PayCompany, auditingMan, model.Poundage.ToString("#0.00"), model.TradeNo, dateTime);

            var bankInfo      = _bankAccountsDao.GetBankAccounts(model.PayBankAccountId);
            var wasteBookInfo = new WasteBookInfo(
                Guid.NewGuid(),
                model.PayBankAccountId,
                wasteBookTradeCode,
                wasteBookDescription,
                -income,                         //金额
                (Int32)AuditingState.Yes,
                wasteBookType,
                model.AssumeFilialeId)
            {
                LinkTradeCode = model.ReportNo,
                LinkTradeType = (int)WasteBookLinkTradeType.CostReport,
                BankTradeCode = string.Empty,
                State         = (int)WasteBookState.Currently,
                IsOut         = bankInfo.IsMain
            };

            return(wasteBookInfo);
        }
コード例 #12
0
        protected void BeforeLoan(CostReportInfo model, out bool isPayBill)
        {
            CostReportAmountInfoList = _costReportAmount.GetmShop_CostReportAmountByReportId(model.ReportId).Where(p => !p.IsSystem).ToList();
            //获取未付款的申请金额的数据
            var isPayAmountList = CostReportAmountInfoList.Where(p => !p.IsPay);

            if (isPayAmountList.Any())
            {
                model.State = (int)CostReportState.AlreadyAuditing;
                isPayBill   = false;
            }
            else
            {
                if (model.IsLastTime)
                {
                    //预借款时,可能出现(“票据金额”=“申请金额”,“票据金额”>“申请金额”,“票据金额”<“申请金额”)三种情况
                    var difference = model.ApplyForCost - model.ActualAmount;//“票据金额”和“申请金额”的差额
                    if (difference == 0 || difference > 0)
                    {
                        model.RealityCost = difference;
                        model.State       = (int)CostReportState.Complete;
                        model.FinishDate  = DateTime.Now;
                        model.Memo        = ERP.UI.Web.Common.WebControl.RetrunUserAndTime("[【票据受理】:票据合格;]");
                    }
                    else if (difference < 0)
                    {
                        model.RealityCost = difference;
                        model.ReportMemo  = "打款金额多了" + ERP.UI.Web.Common.WebControl.RemoveDecimalEndZero(Math.Abs(difference)) + "元";
                        model.State       = (int)CostReportState.WaitVerify;
                        model.Memo        = ERP.UI.Web.Common.WebControl.RetrunUserAndTime("[【票据受理】:票据合格;" + model.ReportMemo + ";]");

                        #region 插入系统生成的金额
                        var maxNum = CostReportAmountInfoList.Any() ? CostReportAmountInfoList.Select(p => p.Num).Max() : 0;
                        CostReportAmountInfoList.Add(new CostReportAmountInfo
                        {
                            AmountId = Guid.NewGuid(),
                            ReportId = Guid.Empty,
                            Num      = maxNum + 1,
                            Amount   = difference,
                            IsPay    = true,
                            IsSystem = true
                        });
                        model.IsSystem = true;
                        #endregion
                    }
                }
                else
                {
                    model.ApplyNumber = ++model.ApplyNumber;
                    model.State       = (int)CostReportState.CompletedMayApply;
                }
                isPayBill = true;
            }
            model.Memo = ERP.UI.Web.Common.WebControl.RetrunUserAndTime("[【票据受理】:票据合格;]");
        }
コード例 #13
0
        protected void Finish(CostReportInfo model)
        {
            decimal realityCost = model.RealityCost;//当是预借款最后一次时,判断金额大小之后,RealityCost的值已经被改变,故此处需要用一个变量提前暂存

            #region 结算账号
            IBankAccounts bankAccounts    = new BankAccounts(GlobalConfig.DB.FromType.Read);
            var           bankAccountInfo = bankAccounts.GetBankAccounts(model.PayBankAccountId);
            string        payBankAccount  = bankAccountInfo == null ? "暂无结算" : (bankAccountInfo.BankName + "【" + bankAccountInfo.AccountsName + "】");
            #endregion

            if (model.ReportKind == (int)CostReportKind.Before)
            {
                //预借款
                BeforeLoan(model, payBankAccount);
            }
            else if (model.ReportKind == (int)CostReportKind.Later)
            {
                //凭证报销
                VoucherPay(model, payBankAccount);
            }

            #region 保存数据
            using (var ts = new TransactionScope(TransactionScopeOption.Required))
            {
                try
                {
                    _costReport.UpdateReport(model);

                    _costReport.UpdatePayCostAndExecuteDate(model.ReportId, realityCost);
                    _utility.UpdateFieldByPk("lmShop_CostReportAmount", "IsPay", new object[] { true }, "ReportId", model.ReportId.ToString());
                    _utility.UpdateFieldByPk("lmShop_CostReportBill", "IsPay", new object[] { true }, "ReportId", model.ReportId.ToString());
                    model.RealityCost = realityCost;
                    string errorMessage;
                    bool   result = ExecuteFinishHandle(model, Personnel, out errorMessage);
                    if (!result)
                    {
                        throw new Exception(errorMessage);
                    }

                    //添加操作日志
                    _operationLogManager.Add(Personnel.PersonnelId, Personnel.RealName, model.ReportId, model.ReportNo, OperationPoint.CostDeclare.AuditDeclare.GetBusinessInfo(), 1, "");

                    ts.Complete();
                }
                catch
                {
                    MessageBox.Show(this, "保存失败!");
                }
                finally
                {
                    ts.Dispose();
                }
            }
            #endregion
        }
コード例 #14
0
 //初始化页面数据
 private void LoadReportData(CostReportInfo model)
 {
     lbl_FilialeName.Text         = CacheCollection.Filiale.GetFilialeNameAndFilialeId(model.PayBankAccountId).Split(',')[0];
     lbl_BankAccount.Text         = model.BankName;
     lbl_ReportName.Text          = model.ReportName;
     lbl_CompanyClass.Text        = Cost.ReadInstance.GetCompanyName(model.CompanyClassId, model.CompanyId);
     lbl_ReportNo.Text            = model.ReportNo;
     lbl_ExecuteDate.Text         = model.ExecuteDate.ToString("yyyy-MM-dd").Equals("1900-01-01") ? "" : model.ExecuteDate.ToString("yyyy-MM-dd");
     lbl_PayCost.Text             = model.PayCost.ToString(CultureInfo.InvariantCulture);
     lbl_ReportPersonnelName.Text = new PersonnelManager().Get(model.ReportPersonnelId).RealName;
 }
コード例 #15
0
        protected void PayVerification(CostReportInfo model)
        {
            model.State = (int)CostReportState.NoAuditing;//状态:票据待受理

            #region 结算账号
            IBankAccounts bankAccounts    = new BankAccounts(GlobalConfig.DB.FromType.Read);
            var           bankAccountInfo = bankAccounts.GetBankAccounts(model.PayBankAccountId);
            string        payBankAccount  = bankAccountInfo == null ? "暂无结算" : (bankAccountInfo.BankName + "【" + bankAccountInfo.AccountsName + "】");
            #endregion

            model.Memo = ERP.UI.Web.Common.WebControl.RetrunUserAndTime("[【审核】:审核通过;]") + ERP.UI.Web.Common.WebControl.RetrunUserAndTime("[【已付款】:已支付" + ERP.UI.Web.Common.WebControl.RemoveDecimalEndZero(model.RealityCost) + "元;结算账号:" + payBankAccount + ";]");
        }
コード例 #16
0
 protected void VoucherPay(CostReportInfo model)
 {
     if (string.IsNullOrEmpty(model.DepositNo))//正常流程的“凭证报销”
     {
         model.State = (int)CostReportState.AlreadyAuditing;
     }
     else//押金回收的“凭证报销”
     {
         model.State = (int)CostReportState.Complete;
     }
     model.Memo = ERP.UI.Web.Common.WebControl.RetrunUserAndTime("[【票据受理】:票据合格;受理说明:" + (string.IsNullOrEmpty(txt_AuditingMemo.Text) ? "暂无说明" : txt_AuditingMemo.Text) + ";]");
 }
コード例 #17
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         var reportId = Request.QueryString["ReportId"];
         if (string.IsNullOrEmpty(reportId))
         {
             return;
         }
         CostReportInfo costReportInfo = _costReport.GetReportByReportId(new Guid(reportId));
         LoadReportData(costReportInfo);//初始化页面数据
     }
 }
コード例 #18
0
 protected void VoucherPay(CostReportInfo model, bool need, string payBankAccount)
 {
     if (need)
     {
         model.State      = (int)CostReportState.Complete;
         model.FinishDate = DateTime.Now;
         model.Memo       = WebControl.RetrunUserAndTime("[【已付款】:已支付" + WebControl.RemoveDecimalEndZero(model.RealityCost) + "元;结算账号:" + payBankAccount + ";]");
     }
     else
     {
         model.State = (int)CostReportState.Pay;
         model.Memo  = WebControl.RetrunUserAndTime("[【待付款】:待支付" + WebControl.RemoveDecimalEndZero(model.RealityCost) + "元;]");
     }
 }
コード例 #19
0
        public CostRecordDTO AddCostRecordDto(CostReportInfo model)
        {
            var costRecordDto = new CostRecordDTO
            {
                ID         = Guid.NewGuid(),
                Amount     = model.RealityCost,
                CostName   = model.ReportName,
                CreateTime = DateTime.Now,
                Remark     = model.ReportMemo + model.Memo,
                ShopId     = model.AssumeShopId
            };

            return(costRecordDto);
        }
コード例 #20
0
        //审核不通过
        protected void btn_NoPass_Click(object sender, EventArgs e)
        {
            #region 验证数据
            var errorMsg = CheckData();
            if (string.IsNullOrEmpty(txt_AuditingMemo.Text))
            {
                errorMsg += "请填写“审核说明”!";
            }
            if (!string.IsNullOrEmpty(errorMsg))
            {
                MessageBox.Show(this, errorMsg);
                return;
            }
            #endregion

            CostReportInfo model = _costReport.GetReportByReportId(new Guid(Request.QueryString["ReportId"]));
            if (model.State != (int)CostReportState.Auditing)
            {
                MessageBox.Show(this, "该单据状态已更新,不允许此操作!");
                return;
            }

            var state = (int)CostReportState.AuditingNoPass;
            var memo  = WebControl.RetrunUserAndTime("[【审核】:审核不通过;审核说明:" + (string.IsNullOrEmpty(txt_AuditingMemo.Text) ? "暂无说明" : txt_AuditingMemo.Text) + ";]");

            #region 保存数据
            using (var ts = new TransactionScope(TransactionScopeOption.Required))
            {
                try
                {
                    _costReportBill.Updatelmshop_CostReportBillForPassByReportId(model.ReportId, false);
                    _costReport.UpdateReport(model.ReportId, state, txt_AuditingMemo.Text, memo, Personnel.PersonnelId);
                    //添加操作日志
                    _operationLogManager.Add(Personnel.PersonnelId, Personnel.RealName, model.ReportId, model.ReportNo, OperationPoint.CostDeclare.AuditDeclare.GetBusinessInfo(), 1, "");

                    ts.Complete();
                    MessageBox.AppendScript(this, "setTimeout(function(){ CloseAndRebind(); }, " + GlobalConfig.PageAutoRefreshDelayTime + ");");
                }
                catch
                {
                    MessageBox.Show(this, "保存失败!");
                }
            }
            #endregion
        }
コード例 #21
0
 protected void UpdateItem(CostReportInfo model)
 {
     model.CostsVarieties = string.IsNullOrEmpty(Hid_CostsClass.Value) ? -1 : int.Parse(Hid_CostsClass.Value);
     model.CompanyClassId = string.IsNullOrEmpty(ddl_CompanyClass.SelectedValue) ? Guid.Empty : new Guid(ddl_CompanyClass.SelectedValue);
     model.CompanyId      = string.IsNullOrEmpty(ddl_FeeType.SelectedValue) ? Guid.Empty : new Guid(ddl_FeeType.SelectedValue);
     model.UrgentOrDefer  = int.Parse(rbl_UrgentOrDefer.SelectedValue);
     model.UrgentReason   = model.UrgentOrDefer.Equals(1) ? txt_UrgentReason.Text : string.Empty;
     model.ReportName     = txt_ReportName.Text;
     model.StartTime      = DateTime.Parse(txt_StartTime.Text);
     model.EndTime        = DateTime.Parse(txt_EndTime.Text);
     model.PayCompany     = txt_PayCompany.Text;
     model.CostType       = int.Parse(rbl_CostType.SelectedValue);
     if (model.CostType.Equals(2))
     {
         model.BankAccountName = txt_BankName.Text.Trim() + "," + txt_SubBankName.Text.Trim();
     }
     model.ReportMemo = txt_ReportMemo.Text;
 }
コード例 #22
0
        protected void AcceptPass(CostReportInfo model)
        {
            bool isPayBill = false;//是否将票据设置成付款完成

            if (model.ReportKind == (int)CostReportKind.Before)
            {
                //预借款
                BeforeLoan(model, out isPayBill);
            }
            else if (model.ReportKind == (int)CostReportKind.Later)
            {
                //凭证报销
                VoucherPay(model);
            }
            else if (model.ReportKind == (int)CostReportKind.Paying)
            {
                //已扣款核销
                PayVerification(model);
            }
            model.AcceptDate = DateTime.Now;

            #region 保存数据
            using (var ts = new TransactionScope(TransactionScopeOption.Required))
            {
                try
                {
                    _costReportBill.Updatelmshop_CostReportBillForPassByReportId(model.ReportId, true);
                    if (isPayBill)
                    {
                        _utility.UpdateFieldByPk("lmShop_CostReportBill", "IsPay", new object[] { true }, "ReportId", model.ReportId.ToString());
                    }
                    _costReport.UpdateReport(model);
                    //添加操作日志
                    _operationLogManager.Add(Personnel.PersonnelId, Personnel.RealName, model.ReportId, model.ReportNo, OperationPoint.CostDeclare.AuditDeclare.GetBusinessInfo(), 1, "");

                    ts.Complete();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.ToString());
                }
            }
            #endregion
        }
コード例 #23
0
        //初始化页面数据
        protected void LoadReportData(CostReportInfo model)
        {
            ddl_AssumeBranch.SelectedValue  = model.AssumeBranchId.Equals(Guid.Empty) ? string.Empty : model.AssumeBranchId.ToString();
            ddl_AssumeGroup.SelectedValue   = model.AssumeGroupId.Equals(Guid.Empty) ? string.Empty : model.AssumeGroupId.ToString();
            ddl_AssumeShop.SelectedValue    = model.AssumeShopId.Equals(Guid.Empty) ? string.Empty : model.AssumeShopId.ToString();
            rbl_UrgentOrDefer.SelectedValue = string.Format("{0}", model.UrgentOrDefer);
            txt_UrgentReason.Text           = model.UrgentReason;
            Hid_CostsClass.Value            = string.Format("{0}", model.CostsVarieties);
            ddl_CompanyClass.SelectedValue  = model.CompanyClassId.Equals(Guid.Empty) ? string.Empty : model.CompanyClassId.ToString();
            ddl_FeeType.SelectedValue       = model.CompanyId.Equals(Guid.Empty) ? string.Empty : model.CompanyId.ToString();
            txt_ReportName.Text             = model.ReportName;
            txt_StartTime.Text         = model.StartTime.ToString("yyyy年MM月");
            txt_EndTime.Text           = model.EndTime.ToString("yyyy年MM月");
            txt_PayCompany.Text        = model.PayCompany;
            txt_ReportCost.Text        = model.ReportCost.ToString(CultureInfo.InvariantCulture);
            Lit_CapitalAmount.Text     = !string.IsNullOrEmpty(txt_ReportCost.Text) ? txt_ReportCost.Text : string.Empty;
            rbl_CostType.SelectedValue = string.Format("{0}", model.CostType);
            if (model.CostType.Equals(2))
            {
                if (!string.IsNullOrEmpty(model.BankAccountName))
                {
                    txt_BankName.Text    = model.BankAccountName.Split(',')[0];
                    txt_SubBankName.Text = model.BankAccountName.Split(',')[1];
                }
            }

            if (!model.PayBankAccountId.Equals(Guid.Empty))
            {
                rcb_PayBankAccount.SelectedValue = model.PayBankAccountId.ToString();
                txt_AssumeFiliale.Text           = CacheCollection.Filiale.GetFilialeNameAndFilialeId(model.PayBankAccountId).Split(',')[0];
                Hid_AssumeFiliale.Value          = model.AssumeFilialeId.Equals(Guid.Empty) ? string.Empty : model.AssumeFilialeId.ToString();
            }
            txt_ReportMemo.Text = model.ReportMemo;
            if (!string.IsNullOrEmpty(model.AuditingMemo))
            {
                AuditingMemo.Visible  = true;
                lit_AuditingMemo.Text = model.AuditingMemo;
            }
            txt_Memo.Text = model.Memo;

            ReportProcess.Visible = true;//修改时显示“申报流程”
        }
コード例 #24
0
 protected void BeforeLoan(CostReportInfo model)
 {
     if (model.IsSystem)
     {
         model.State = (int)CostReportState.AlreadyAuditing;//状态:待付款
     }
     else
     {
         //获取票据
         CostReportBillInfoList = _costReportBill.Getlmshop_CostReportBillByReportId(model.ReportId);
         //查询没有付款的票据
         var isPayList = CostReportBillInfoList.Where(p => !p.IsPay);
         if (isPayList.Any())                               //有没有付款的票据
         {
             model.State = (int)CostReportState.NoAuditing; //状态:票据待受理
         }
         else
         {
             if (model.IsLastTime)
             {
                 //获取差旅费
                 CostReportTravelInfoList = _costReportTravel.GetlmShop_CostReportTravelByReportId(model.ReportId);
                 //获取起讫
                 CostReportTerminiInfoList = _costReportTermini.GetmShop_CostReportTerminiByReportId(model.ReportId);
                 if (CostReportTravelInfoList.Any() || CostReportTerminiInfoList.Any() || !string.IsNullOrEmpty(model.GoodsCode) || !model.InvoiceId.Equals(Guid.Empty))
                 {
                     model.State = (int)CostReportState.NoAuditing;//状态:票据待受理
                 }
                 else
                 {
                     model.State = (int)CostReportState.AlreadyAuditing;//状态:待付款
                 }
             }
             else
             {
                 model.State = (int)CostReportState.AlreadyAuditing;//状态:待付款
             }
         }
     }
     model.Memo = ERP.UI.Web.Common.WebControl.RetrunUserAndTime("[【审核】:审核通过;]");
 }
コード例 #25
0
        //加载编辑数据
        protected void LoadEditData(string reportId)
        {
            CostReportInfo costReportInfo = _costReport.GetReportByReportId(new Guid(reportId));

            LoadBranchData();//加载部门数据
            if (!costReportInfo.AssumeBranchId.Equals(Guid.Empty))
            {
                LoadGroupData(costReportInfo.AssumeBranchId);//根据部门id获取“小组”数据
            }
            if (!costReportInfo.AssumeGroupId.Equals(Guid.Empty))
            {
                LoadShopData();//加载门店数据
                AssumeShop.Visible = costReportInfo.AssumeBranchId.Equals(new Guid(ShopBranchId));
            }
            LoadCostSortData();//加载费用分类
            if (!costReportInfo.CompanyClassId.Equals(Guid.Empty))
            {
                LoadFeeTypeData(costReportInfo.CompanyClassId); //根据费用分类id获取“费用类型”数据
            }
            LoadPayBankAccountData();                           //加载结算账号
            LoadReportData(costReportInfo);                     //初始化页面数据
        }
コード例 #26
0
        //Grid数据源
        protected void GridDataBind()
        {
            IList <CostReportInfo> list;
            var reportId = Request.QueryString["ReportId"];

            if (string.IsNullOrEmpty(reportId))
            {
                list = new List <CostReportInfo>();
            }
            else
            {
                DateTime       startTime  = DateTime.Now.AddDays(-30);
                DateTime       endTime    = DateTime.Now;
                CostReportInfo reportInfo = _costReport.GetReportByReportId(new Guid(reportId));
                list = _costReport.GetReportList();
                if (list.Count > 0)
                {
                    list = list.Where(p => (p.ReportPersonnelId == reportInfo.ReportPersonnelId || p.AssumeBranchId == reportInfo.AssumeBranchId) && p.ReportDate >= startTime && p.ReportDate <= endTime && p.State != (int)CostReportState.Auditing && p.ReportId != reportInfo.ReportId && p.AuditingMan == Personnel.PersonnelId).ToList();
                }
            }
            RG_Report.DataSource = list.OrderByDescending(c => c.ReportDate);
        }
コード例 #27
0
 //批量收/付款确定
 protected void btn_Pass_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(Hid_ReportId.Value))
     {
         var errorMsg  = new StringBuilder();
         var reportIds = Hid_ReportId.Value.Split(',');
         foreach (var item in reportIds)
         {
             CostReportInfo model = _costReport.GetReportByReportId(new Guid(item));
             if (model.State != (int)CostReportState.AlreadyAuditing &&
                 model.State != (int)CostReportState.WaitVerify)
             {
                 errorMsg.Append("“").Append(model.ReportNo).Append("”状态已更新,不允许此操作!").Append("\\n");
                 continue;
             }
             if (model.PayBankAccountId.Equals(Guid.Empty) || model.AssumeFilialeId.Equals(Guid.Empty))
             {
                 errorMsg.Append("“").Append(model.ReportNo).Append("”【结算账号】或【结算公司】为空!").Append("\\n");
                 continue;
             }
             try
             {
                 PayAndReceive(model);
             }
             catch
             {
                 errorMsg.Append("“").Append(model.ReportNo).Append("”保存失败!").Append("\\n");
             }
         }
         if (!string.IsNullOrEmpty(errorMsg.ToString()))
         {
             MessageBox.Show(this, errorMsg.ToString());
         }
         MessageBox.AppendScript(this, "setTimeout(function(){ refreshGrid(); }, " + GlobalConfig.PageAutoRefreshDelayTime + ");");
     }
 }
コード例 #28
0
        //结算公司
        protected void LoadAssumeFilialeData(CostReportInfo model)
        {
            var list = CacheCollection.Filiale.GetHeadList();

            if (!model.AssumeFilialeId.Equals(Guid.Empty) && model.InvoiceTitleFilialeId.Equals(Guid.Empty) && !model.AssumeFilialeId.Equals(new Guid(ErpFiliale)))
            {
                list = list.Where(p => p.ID.Equals(model.AssumeFilialeId)).ToList();
            }
            else if (!model.InvoiceTitleFilialeId.Equals(new Guid(ErpFiliale)))
            {
                list = list.Where(p => p.ID.Equals(model.InvoiceTitleFilialeId)).ToList();
            }
            list.Add(new FilialeInfo {
                ID = new Guid(ErpFiliale), RealName = "ERP公司"
            });

            ddl_AssumeFiliale.DataSource     = list;
            ddl_AssumeFiliale.DataTextField  = "RealName";
            ddl_AssumeFiliale.DataValueField = "ID";
            ddl_AssumeFiliale.DataBind();
            ddl_AssumeFiliale.Items.Insert(0, new ListItem("请选择", ""));

            LoadPayBankAccountData(model.AssumeFilialeId);
        }
コード例 #29
0
        protected bool ExecuteFinishHandle(CostReportInfo model, PersonnelInfo personnelInfo, out string errorMsg)
        {
            errorMsg = string.Empty;
            if (model.ReportKind.Equals((int)CostReportKind.FeeIncome))
            {
                model.RealityCost = -model.RealityCost;
            }

            var costReportBll = new BLL.Implement.Inventory.CostReport(_bankAccounts, _personnelSao, _costReckoning);

            #region 新增资金流
            var wasteBookInfo = costReportBll.AddWasteBookInfo(model, personnelInfo, false);
            if (_wasteBook.Insert(wasteBookInfo) <= 0)
            {
                errorMsg = "新增资金流失败!";
                return(false);
            }
            #endregion

            #region 新增帐务记录
            var costReckoningInfo = costReportBll.AddCostReckoningInfo(model, personnelInfo, false);
            if (_costReckoning.Insert(costReckoningInfo) <= 0)
            {
                errorMsg = "新增帐务记录失败!";
                return(false);
            }
            #endregion

            #region 与门店费用交互
            if (model.AssumeBranchId == new Guid(ShopBranchId) && !model.AssumeShopId.Equals(Guid.Empty))
            {
                string strErrorMsg;
                var    description = string.Format("费用申报{0}{1}可用余额!", model.ReceiptNo, model.RealityCost < 0 ? "添加" : "扣除");
                var    parentId    = FilialeManager.GetShopHeadFilialeId(model.AssumeShopId);//获取门店所属公司
                if (!ShopSao.DeductBalance(parentId, model.AssumeShopId, model.RealityCost, description, out strErrorMsg))
                {
                    errorMsg = strErrorMsg;
                    return(false);
                }

                var costRecordDto = costReportBll.AddCostRecordDto(model);
                if (!ShopSao.InsertCostRecord(parentId, costRecordDto))
                {
                    errorMsg = "扣除门店费用失败!";
                    return(false);
                }
            }
            #endregion

            #region 新增资金流(手续费)
            if (model.RealityCost >= 0 && model.Poundage > 0 && !model.ReportKind.Equals((int)CostReportKind.FeeIncome))
            {
                var wasteBookInfoPoundage = costReportBll.AddWasteBookInfo(model, personnelInfo, true);
                if (_wasteBook.Insert(wasteBookInfoPoundage) <= 0)
                {
                    errorMsg = "新增手续费失败!";
                    return(false);
                }
            }
            #endregion

            return(true);
        }
コード例 #30
0
 protected void FeeIncome(CostReportInfo model)
 {
     model.State = (int)CostReportState.WaitVerify;
     model.Memo  = ERP.UI.Web.Common.WebControl.RetrunUserAndTime("[【审核】:审核通过;]");
 }