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) + ";]"); }
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);//初始化页面数据 } }
//初始化页面数据 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(); } }
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; } } } }
//受理不通过 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 }
/// <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); }
//批量审批通过 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 + ");"); } }
//初始化页面数据 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; }
//费用申报(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; } } }
//受理通过 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 }
/// <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); }
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("[【票据受理】:票据合格;]"); }
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 }
//初始化页面数据 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; }
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 + ";]"); }
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) + ";]"); }
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);//初始化页面数据 } }
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) + "元;]"); } }
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); }
//审核不通过 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 }
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; }
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 }
//初始化页面数据 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;//修改时显示“申报流程” }
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("[【审核】:审核通过;]"); }
//加载编辑数据 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); //初始化页面数据 }
//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); }
//批量收/付款确定 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 + ");"); } }
//结算公司 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); }
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); }
protected void FeeIncome(CostReportInfo model) { model.State = (int)CostReportState.WaitVerify; model.Memo = ERP.UI.Web.Common.WebControl.RetrunUserAndTime("[【审核】:审核通过;]"); }