/// <summary> /// 得到一个对象实体 /// </summary> public Model.ReceiptPay GetModel(int id) { StringBuilder strSql = new StringBuilder(); StringBuilder str1 = new StringBuilder(); Model.ReceiptPay model = new Model.ReceiptPay(); //利用反射获得属性的所有公共属性 PropertyInfo[] pros = model.GetType().GetProperties(); foreach (PropertyInfo p in pros) { str1.Append(p.Name + ",");//拼接字段 } strSql.Append("select top 1 " + str1.ToString().Trim(',')); strSql.Append(" from MS_ReceiptPay"); strSql.Append(" where rp_id=@id"); SqlParameter[] parameters = { new SqlParameter("@id", SqlDbType.Int, 4) }; parameters[0].Value = id; DataTable dt = DbHelperSQL.Query(strSql.ToString(), parameters).Tables[0]; if (dt.Rows.Count > 0) { return(DataRowToModel(dt.Rows[0])); } else { return(null); } }
private string DoAdd(out int rpid) { rpid = 0; Model.ReceiptPay model = new Model.ReceiptPay(); BLL.ReceiptPay bll = new BLL.ReceiptPay(); manager = GetAdminInfo(); model.rp_type = true; model.rp_cid = Utils.StrToInt(hCusId.Value, 0); model.rp_money = Utils.StrToDecimal(txtMoney.Text.Trim(), 0); model.rp_foredate = ConvertHelper.toDate(txtforedate.Text.Trim()); model.rp_method = Utils.StrToInt(ddlmethod.SelectedValue, 0); model.rp_content = txtContent.Text.Trim(); model.rp_cbid = 0; if (model.rp_money < 0) { model.rp_cbid = Utils.StrToInt(hBankId.Value, 0); } //在客户对账明细的账单打包时不是预收款 bool flag = true; if (!string.IsNullOrEmpty(oidStr)) { flag = false; } string result = bll.Add(model, manager, txtCenum.Text.Trim(), txtCedate.Text.Trim(), out rpid, flag); if (string.IsNullOrEmpty(result)) { if (!string.IsNullOrEmpty(oidStr) && model.rp_money == Utils.StrToDecimal(_tMoney, 0)) { JArray ja = JArray.Parse(oidStr); foreach (JObject item in ja) { Model.ReceiptPayDetail rpdModel = new Model.ReceiptPayDetail(); rpdModel.rpd_type = true; rpdModel.rpd_rpid = rpid; rpdModel.rpd_oid = item["oid"].ToString(); rpdModel.rpd_cid = Utils.StrToInt(_cid, 0); rpdModel.rpd_num = _chk; rpdModel.rpd_money = Utils.StrToDecimal(item["money"].ToString(), 0); rpdModel.rpd_foredate = model.rp_foredate; rpdModel.rpd_method = model.rp_method; rpdModel.rpd_personName = manager.real_name; rpdModel.rpd_personNum = manager.user_name; rpdModel.rpd_flag1 = 2; rpdModel.rpd_flag2 = 2; rpdModel.rpd_flag3 = 2; rpdModel.rpd_adddate = DateTime.Now; rpdModel.rpd_content = ""; rpdModel.rpd_cbid = model.rp_cbid; new BLL.ReceiptPayDetail().AddOrCancleDistribution(rpdModel, manager); } } } return(result); }
protected void Page_Load(object sender, EventArgs e) { this.pageSize = GetPageSize(10); //每页数量 _tag = DTRequest.GetInt("tag", 0); rpID = DTRequest.GetInt("id", 0); if (this.rpID == 0) { JscriptMsg("传输参数不正确!", "back"); return; } model = new BLL.ReceiptPay().GetModel(rpID); if (model == null) { JscriptMsg("记录不存在!", "back"); return; } _orderId = DTRequest.GetString("txtOrderId"); _moneyType = DTRequest.GetString("ddlMoneyType"); _sign = DTRequest.GetString("ddlsign"); _money = DTRequest.GetString("txtMoney"); _chk = DTRequest.GetString("txtChk"); _sdate = DTRequest.GetString("txtsDate"); _edate = DTRequest.GetString("txteDate"); _sdate1 = DTRequest.GetString("txtsDate1"); _edate1 = DTRequest.GetString("txteDate1"); _person = DTRequest.GetString("txtPerson"); if (!IsPostBack) { ddlMoneyType.Items.Insert(0, new ListItem(model.rp_type.Value ? "应收金额" : "应付金额", "0")); ddlMoneyType.Items.Insert(1, new ListItem(model.rp_type.Value ? "已收金额" : "已付金额", "1")); ddlMoneyType.Items.Insert(2, new ListItem(model.rp_type.Value ? "未收金额" : "未付金额", "2")); if (_tag == 0) { _moneyType = "2"; _money = "0"; _sign = "<>"; } RptBind(); } txtOrderId.Text = _orderId; ddlMoneyType.SelectedValue = _moneyType; ddlsign.SelectedValue = _sign; txtMoney.Text = _money; txtChk.Text = _chk; txtsDate.Text = _sdate; txteDate.Text = _edate; txtsDate1.Text = _sdate1; txteDate1.Text = _edate1; txtPerson.Text = _person; }
/// <summary> /// 增加一条数据 /// </summary> public int Add(Model.ReceiptPay model, SqlConnection conn = null, SqlTransaction tran = null) { StringBuilder strSql = new StringBuilder(); StringBuilder str1 = new StringBuilder(); //数据字段 StringBuilder str2 = new StringBuilder(); //数据参数 //利用反射获得属性的所有公共属性 PropertyInfo[] pros = model.GetType().GetProperties(); List <SqlParameter> paras = new List <SqlParameter>(); strSql.Append("insert into MS_ReceiptPay("); foreach (PropertyInfo pi in pros) { //如果不是主键则追加sql字符串 if (!pi.Name.Equals("rp_id")) { //判断属性值是否为空 if (pi.GetValue(model, null) != null) { str1.Append(pi.Name + ","); //拼接字段 str2.Append("@" + pi.Name + ","); //声明参数 paras.Add(new SqlParameter("@" + pi.Name, pi.GetValue(model, null))); //对参数赋值 } } } strSql.Append(str1.ToString().Trim(',')); strSql.Append(") values ("); strSql.Append(str2.ToString().Trim(',')); strSql.Append(") "); strSql.Append(";select @@IDENTITY;"); object obj = 0; if (tran == null) { obj = DbHelperSQL.GetSingle(strSql.ToString(), paras.ToArray()); } else { obj = DbHelperSQL.GetSingle(conn, tran, strSql.ToString(), paras.ToArray()); } if (obj == null) { return(0); } else { return(Convert.ToInt32(obj)); } }
/// <summary> /// 汇总付款明细 /// </summary> /// <param name="model"></param> /// <returns></returns> public int collectPayDetails(Model.ReceiptPay model, int method, string sdate, string edate) { int rpid = 0; using (SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString)) { conn.Open();//打开数据连接 using (SqlTransaction trans = conn.BeginTransaction()) { try { #region 插入付款通知====================== rpid = new DAL.ReceiptPay().Add(model, conn, trans); #endregion #region 修改收款明细中的rpd_rpid========================== if (rpid > 0) { string sql = "update MS_ReceiptPayDetail set rpd_rpid=@rpid,rpd_method=@newmethod where rpd_type=0 and rpd_flag3=2 and rpd_flag2=2 and rpd_flag1=2 and isnull(rpd_rpid,0)=0 and rpd_cid=@cid and isnull(rpd_method,0)=@method and isnull(rpd_cbid,0)=@cbid"; if (!string.IsNullOrEmpty(sdate)) { sql += " and datediff(d,rpd_foreDate,'" + sdate + "')<=0"; } if (!string.IsNullOrEmpty(edate)) { sql += " and datediff(d,rpd_foreDate,'" + edate + "')>=0"; } List <SqlParameter> paras1 = new List <SqlParameter>(); paras1.Add(new SqlParameter("@rpid", rpid)); paras1.Add(new SqlParameter("@cid", model.rp_cid)); paras1.Add(new SqlParameter("@method", method)); paras1.Add(new SqlParameter("@newmethod", model.rp_method)); paras1.Add(new SqlParameter("@cbid", model.rp_cbid)); DbHelperSQL.ExecuteSql(conn, trans, sql, paras1.ToArray()); trans.Commit(); } #endregion } catch (Exception err) { trans.Rollback(); //回滚事务 rpid = 0; } } } return(rpid); }
/// <summary> /// 删除付款 /// </summary> /// <param name="id"></param> /// <returns></returns> public bool deletePay(Model.ReceiptPay model) { bool result = false; using (SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString)) { conn.Open();//打开数据连接 using (SqlTransaction trans = conn.BeginTransaction()) { try { string sql = ""; List <SqlParameter> paras0 = new List <SqlParameter>(); paras0.Add(new SqlParameter("@rpid", model.rp_id)); if (!model.rp_isExpect.Value) { #region 更新付款明细========================== sql = "update MS_ReceiptPayDetail set rpd_rpid=0 where rpd_rpid=@rpid"; DbHelperSQL.ExecuteSql(conn, trans, sql, paras0.ToArray()); #endregion } else { #region 更新付款明细========================== sql = "delete MS_ReceiptPayDetail where rpd_rpid=@rpid"; DbHelperSQL.ExecuteSql(conn, trans, sql, paras0.ToArray()); #endregion } #region 除付款通知====================== sql = "delete from MS_ReceiptPay where rp_id=@rpid"; DbHelperSQL.ExecuteSql(conn, trans, sql, paras0.ToArray()); #endregion trans.Commit(); result = true; } catch (Exception err) { trans.Rollback(); //回滚事务 result = false; } } } return(result); }
/// <summary> /// 将对象转换实体 /// </summary> public Model.ReceiptPay DataRowToModel(DataRow row) { Model.ReceiptPay model = new Model.ReceiptPay(); if (row != null) { //利用反射获得属性的所有公共属性 Type modelType = model.GetType(); for (int i = 0; i < row.Table.Columns.Count; i++) { //查找实体是否存在列表相同的公共属性 PropertyInfo proInfo = modelType.GetProperty(row.Table.Columns[i].ColumnName); if (proInfo != null && row[i] != DBNull.Value) { proInfo.SetValue(model, row[i], null);//用索引值设置属性值 } } } return(model); }
/// <summary> /// 取消标记凭证 /// </summary> /// <param name="id"></param> /// <param name="username"></param> /// <param name="realname"></param> /// <returns></returns> public string cancelSignCertificate(int id, Model.manager manager) { if (new BLL.department().getGroupArea() != manager.area || (!new permission().checkHasPermission(manager, "0404") && !new permission().checkHasPermission(manager, "0406"))) { return("无权限取消标记"); } Model.ReceiptPay rp = GetModel(id); if (rp == null) { return("记录不存在"); } int ceid = 0; int.TryParse(rp.rp_ceid.ToString(), out ceid); if (ceid == 0) { return("还未标记凭证的不能取消"); } Model.certificates model = new BLL.certificates().GetModel(ceid); if (model == null) { return("凭证不存在"); } if (model.ce_flag == 2) { return("凭证已经审批通过,不能取消"); } rp.rp_ceid = 0; if (dal.Update(rp)) { Model.business_log logmodel = new Model.business_log(); logmodel.ol_relateID = id; logmodel.ol_cid = rp.rp_cid.Value; logmodel.ol_title = "取消标记凭证"; logmodel.ol_content = "凭证号:" + model.ce_num + "<br/>凭证日期:" + model.ce_date.Value.ToString("yyyy-MM-dd"); logmodel.ol_operateDate = DateTime.Now; new business_log().Add(DTEnums.ActionEnum.Sign.ToString(), logmodel, manager.user_name, manager.real_name); return(""); } return("标记失败"); }
private string DoEdit(int _id) { BLL.ReceiptPay bll = new BLL.ReceiptPay(); Model.ReceiptPay model = bll.GetModel(_id); manager = GetAdminInfo(); string _content = string.Empty; if (model.rp_cid.ToString() != hCusId.Value) { _content += "收款对象ID:" + model.rp_cid + "→<font color='red'>" + hCusId.Value + "</font><br/>"; } model.rp_cid = Utils.StrToInt(hCusId.Value, 0); if (model.rp_money.ToString() != txtMoney.Text.Trim()) { _content += "收款金额:" + model.rp_money + "→<font color='red'>" + txtMoney.Text.Trim() + "</font><br/>"; } model.rp_money = Utils.StrToDecimal(txtMoney.Text.Trim(), 0); if (model.rp_foredate.Value.ToString("yyyy-MM-dd") != txtforedate.Text.Trim()) { _content += "预收日期:" + model.rp_foredate.Value.ToString("yyyy-MM-dd") + "→<font color='red'>" + txtforedate.Text.Trim() + "</font><br/>"; } model.rp_foredate = ConvertHelper.toDate(txtforedate.Text.Trim()); if (model.rp_method.ToString() != ddlmethod.SelectedValue) { _content += "收款方式ID:" + model.rp_method.ToString() + "→<font color='red'>" + ddlmethod.SelectedValue + "</font><br/>"; } model.rp_method = Utils.StrToInt(ddlmethod.SelectedValue, 0); if (model.rp_content != txtContent.Text.Trim()) { _content += "收款内容:" + model.rp_content + "→<font color='red'>" + txtContent.Text.Trim() + "</font><br/>"; } model.rp_content = txtContent.Text.Trim(); if (model.rp_cbid != Utils.StrToInt(hBankId.Value, 0)) { _content += "客户银行账号:" + model.rp_cbid + "→<font color='red'>" + hBankId.Value + "</font><br/>"; } model.rp_cbid = Utils.StrToInt(hBankId.Value, 0); return(bll.Update(model, _content, manager, txtCenum.Text.Trim(), txtCedate.Text.Trim())); }
/// <summary> /// 增加收款明细 /// </summary> public int Add(Model.ReceiptPayDetail model, Model.ReceiptPay rp) { int rpid = 0, rpdid = 0; using (SqlConnection conn = new SqlConnection(DbHelperSQL.connectionString)) { conn.Open();//打开数据连接 using (SqlTransaction trans = conn.BeginTransaction()) { try { #region 插入收款通知====================== if (rp != null) { rpid = new DAL.ReceiptPay().Add(rp, conn, trans); } #endregion #region 插入收付款明细========================== model.rpd_rpid = rpid; rpdid = Add(model, conn, trans); if (rpdid > 0) { trans.Commit(); } #endregion } catch { trans.Rollback(); //回滚事务 rpdid = 0; } } } return(rpdid); }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(Model.ReceiptPay model, bool isChangeMethod = false) { StringBuilder strSql = new StringBuilder(); StringBuilder str1 = new StringBuilder(); //利用反射获得属性的所有公共属性 PropertyInfo[] pros = model.GetType().GetProperties(); List <SqlParameter> paras = new List <SqlParameter>(); strSql.Append("update MS_ReceiptPay set "); foreach (PropertyInfo pi in pros) { //如果不是主键则追加sql字符串 if (!pi.Name.Equals("rp_id")) { //判断属性值是否为空 //if (pi.GetValue(model, null) != null) //{ str1.Append(pi.Name + "=@" + pi.Name + ","); //声明参数 paras.Add(new SqlParameter("@" + pi.Name, pi.GetValue(model, null))); //对参数赋值 //} } } strSql.Append(str1.ToString().Trim(',')); strSql.Append(" where rp_id=@id "); paras.Add(new SqlParameter("@id", model.rp_id)); if (DbHelperSQL.ExecuteSql(strSql.ToString(), paras.ToArray()) > 0) { if (isChangeMethod) { DbHelperSQL.ExecuteSql("update MS_ReceiptPayDetail set rpd_method=" + model.rp_method + " where rpd_rpid=" + model.rp_id + ""); } return(true); } return(false); }
/// <summary> /// 审批付款 /// </summary> /// <param name="id"></param> /// <param name="status"></param> /// <param name="remark"></param> /// <param name="username"></param> /// <param name="realname"></param> /// <returns></returns> public string checkPay(int id, byte?type, byte?status, string remark, Model.manager manager) { Model.ReceiptPay model = GetModel(id); if (model == null) { return("数据不存在"); } if (!model.rp_isExpect.Value && model.rp_money >= 0) { return("非预付款不需要做审批"); } string content = ""; //3.如果是总经理审批,要先验证财务审批是否已经审批通过,不通过不能审批 //4.反审批时:a.总经理要先验证是否已经确认付款。b.财务要先验证总经理是否已经审批通过。 switch (type) { case 1: //财务审批 if (model.rp_flag == status) { return("状态未改变"); } if (new BLL.department().getGroupArea() != manager.area || !new permission().checkHasPermission(manager, "0402")) { return("无权限审批"); } if (status == 2) { } else { //由审批通过→待审批、审批未通过:验证总经理审批是否通过,审批通过的不能再做财务反审批 if (model.rp_flag1 == 2) { return("总经理已经审批通过,不能做财务审批"); } } content = "记录id:" + id + ",财务审批状态:" + Common.BusinessDict.checkStatus()[model.rp_flag] + "→<font color='red'>" + Common.BusinessDict.checkStatus()[status] + "</font>"; model.rp_flag = status; model.rp_checkNum = manager.user_name; model.rp_checkName = manager.real_name; model.rp_checkRemark = remark; model.rp_checkTime = DateTime.Now; break; case 2: //总经理审批 if (model.rp_flag1 == status) { return("状态未改变"); } if (new BLL.department().getGroupArea() != manager.area || !new permission().checkHasPermission(manager, "0601")) { return("无权限审批"); } if (status == 2) { //由待审批、审批未通过→审批通过:验证财务审批是否存在待审批或审批未通过的记录,存在则不能做总经理审批 if (model.rp_flag != 2) { return("财务审批是待审批或审批未通过的,不能做总经理审批"); } } else { //由审批通过→待审批、审批未通过:验证是否已经汇总,已经汇总的不能做总经理审批 if (model.rp_isConfirm.Value) { return("已经确认付款,不能做总经理审批"); } } content = "记录id:" + id + ",总经理审批状态:" + Common.BusinessDict.checkStatus()[model.rp_flag1] + "→<font color='red'>" + Common.BusinessDict.checkStatus()[status] + "</font>"; model.rp_flag1 = status; model.rp_checkNum1 = manager.user_name; model.rp_checkName1 = manager.real_name; model.rp_checkRemark1 = remark; model.rp_checkTime1 = DateTime.Now; break; } if (dal.Update(model)) { //写日志 Model.business_log log = new Model.business_log(); log.ol_title = "审批付款"; log.ol_cid = model.rp_cid.Value; log.ol_relateID = id; string _content = content; log.ol_content = _content; new business_log().Add(DTEnums.ActionEnum.Audit.ToString(), log, manager.user_name, manager.real_name); string payTypeName = "预付款"; if (model.rp_money < 0) { payTypeName = "退款"; } if (status == 1 || status == 2) { string nodeName = status == 2 ? "" + payTypeName + "审批通过" : "" + payTypeName + "审批未通过"; string replaceContent = new BLL.Customer().GetModel(model.rp_cid.Value).c_name + "," + model.rp_money + "," + model.rp_content; string replaceUser = manager.user_name + "," + manager.real_name; //钉钉通知申请人 Model.manager_oauth oauthModel = new BLL.manager_oauth().GetModel(model.rp_personNum); if (oauthModel != null && oauthModel.is_lock == 1 && !string.IsNullOrEmpty(oauthModel.oauth_userid)) { new BLL.selfMessage().sentDingMessage(nodeName, oauthModel.oauth_userid, replaceContent, replaceUser); } } if (type == 1 && status == 2) { //信息通知 DataTable dt = dt = new manager().getUserByPermission("0601").Tables[0]; string replaceContent = new BLL.Customer().GetModel(model.rp_cid.Value).c_name + "," + model.rp_money + "," + model.rp_content; string replaceUser = manager.user_name + "," + manager.real_name; if (dt != null) { foreach (DataRow dr in dt.Rows) { //钉钉推送通知 if (!string.IsNullOrEmpty(Utils.ObjectToStr(dr["oauth_userid"]))) { new BLL.selfMessage().sentDingMessage("" + payTypeName + "财务审批通过", dr["oauth_userid"].ToString(), replaceContent, replaceUser); } } } } return(""); } return("操作失败"); }
/// <summary> /// 增加一条数据 /// </summary> public string Add(Model.ReceiptPay model, Model.manager manager, string num, string date, out int rpid, bool flag = true) { rpid = 0; string typeText = "收款"; if (!model.rp_type.Value) { typeText = "付款"; } if (flag) { model.rp_isExpect = true; } else { model.rp_isExpect = false; } if (model.rp_isExpect.Value && !new BLL.permission().checkHasPermission(manager, "0406")) { return("无权限添加"); } if (model.rp_cid == 0) { return("请选择" + typeText + "对象"); } if (model.rp_money == 0) { return("请填写" + typeText + "金额"); } if (model.rp_foredate == null) { return("请选择" + (model.rp_type.Value?"预收":"预付") + "日期"); } //预收款的收款方式是必填的,预付款的付款方式是非必填的 if (model.rp_type.Value && model.rp_method == 0) { return("请选择" + typeText + "方式"); } else { if (model.rp_method != 0) { Model.payMethod method = new BLL.payMethod().GetModel(model.rp_method.Value); if (method.pm_type.Value) { model.rp_cbid = 0; if (string.IsNullOrEmpty(num)) { return("请填写凭证号"); } if (string.IsNullOrEmpty(date)) { return("请填写凭证日期"); } Model.certificates ce = new BLL.certificates().GetModel(num, Convert.ToDateTime(date)); int ceid = 0; if (ce == null) { Model.certificates cemodel = new Model.certificates(); cemodel.ce_num = num; cemodel.ce_date = ConvertHelper.toDate(date); cemodel.ce_personNum = manager.user_name; cemodel.ce_personName = manager.real_name; new BLL.certificates().Add(cemodel, out ceid); if (ceid > 0) { cemodel.ce_id = ceid; } } else { ceid = ce.ce_id.Value; } model.rp_ceid = ceid; } else { if (model.rp_cbid == 0 && model.rp_money < 0) { return("请选择客户银行账号"); } } } else { if (model.rp_cbid == 0) { return("请选择客户银行账号"); } } } model.rp_isConfirm = false; bool isChongzhang = false; if (model.rp_type.Value) { model.rp_flag = 0; model.rp_flag1 = 0; if (model.rp_money >= 0) { model.rp_flag = 2; model.rp_checkTime = DateTime.Now; model.rp_flag1 = 2; model.rp_checkTime1 = DateTime.Now; isChongzhang = model.rp_method.Value > 0 && new BLL.payMethod().GetModel(model.rp_method.Value).pm_type.Value; if (isChongzhang) { model.rp_isConfirm = true; model.rp_date = model.rp_foredate; model.rp_confirmerName = manager.real_name; model.rp_confirmerNum = manager.user_name; } } else { isChongzhang = model.rp_method.Value > 0 && new BLL.payMethod().GetModel(model.rp_method.Value).pm_type.Value; if (isChongzhang) { model.rp_flag = 2; model.rp_checkTime = DateTime.Now; model.rp_flag1 = 2; model.rp_checkTime1 = DateTime.Now; model.rp_isConfirm = true; model.rp_date = model.rp_foredate; model.rp_confirmerName = manager.real_name; model.rp_confirmerNum = manager.user_name; } else { if (model.rp_cbid == 0) { return("请选择客户银行账号"); } } } } else { model.rp_isExpect = true; model.rp_flag = 0; model.rp_flag1 = 0; isChongzhang = model.rp_method.Value > 0 && new BLL.payMethod().GetModel(model.rp_method.Value).pm_type.Value; if (isChongzhang || model.rp_money < 0) { model.rp_flag = 2; model.rp_checkTime = DateTime.Now; model.rp_flag1 = 2; model.rp_checkTime1 = DateTime.Now; model.rp_isConfirm = true; model.rp_date = model.rp_foredate; model.rp_confirmerName = manager.real_name; model.rp_confirmerNum = manager.user_name; } } model.rp_personNum = manager.user_name; model.rp_personName = manager.real_name; model.rp_adddate = DateTime.Now; model.rp_area = manager.area; rpid = dal.Add(model); if (rpid > 0) { StringBuilder content = new StringBuilder(); content.Append("" + typeText + "对象ID:" + model.rp_cid + "<br/>"); content.Append("预收款:是<br/>"); content.Append("" + typeText + "金额:" + model.rp_money + "<br/>"); content.Append("" + (model.rp_type.Value ? "预收" : "预付") + "日期:" + model.rp_foredate.Value.ToString("yyyy-MM-dd") + "<br/>"); content.Append("收款方式ID:" + model.rp_method + "<br/>"); content.Append("收款内容:" + model.rp_content + "<br/>"); content.Append("客户银行账号:" + model.rp_cbid + "<br/>"); Model.business_log logmodel = new Model.business_log(); logmodel.ol_relateID = rpid; logmodel.ol_cid = model.rp_cid.Value; logmodel.ol_title = "添加" + typeText + ""; logmodel.ol_content = content.ToString(); logmodel.ol_operateDate = DateTime.Now; new business_log().Add(DTEnums.ActionEnum.Add.ToString(), logmodel, manager.user_name, manager.real_name); //钉钉通知 if (!model.rp_type.Value && model.rp_money >= 0 && (model.rp_method == 0 || !isChongzhang)) { DataTable userDt = new BLL.manager().getUserByPermission("0402").Tables[0]; if (userDt != null) { string replaceContent = model.rp_money + "," + model.rp_content; string replaceUser = model.rp_personNum + "," + model.rp_personName; foreach (DataRow dr in userDt.Rows) { //钉钉推送通知 if (!string.IsNullOrEmpty(Utils.ObjectToStr(dr["oauth_userid"]))) { new BLL.selfMessage().sentDingMessage("添加预付款", dr["oauth_userid"].ToString(), replaceContent, replaceUser); } } } } //退款订单通知 if (model.rp_type.Value && model.rp_money < 0 && !isChongzhang) { DataTable userDt = new BLL.manager().getUserByPermission("0402").Tables[0]; if (userDt != null) { string replaceContent = model.rp_money + "," + model.rp_content; string replaceUser = model.rp_personNum + "," + model.rp_personName; foreach (DataRow dr in userDt.Rows) { //钉钉推送通知 if (!string.IsNullOrEmpty(Utils.ObjectToStr(dr["oauth_userid"]))) { new BLL.selfMessage().sentDingMessage("添加退款", dr["oauth_userid"].ToString(), replaceContent, replaceUser); } } } } return(""); } return("添加失败"); }
/// <summary> /// 确认收付款 /// </summary> /// <param name="id"></param> /// <param name="isConfirm"></param> /// <param name="date"></param> /// <param name="method"></param> /// <param name="username"></param> /// <param name="realname"></param> /// <returns></returns> public string confirmReceiptPay(int id, string isConfirm, string date, string method, Model.manager manager) { string text = "收款", text1 = "实收"; bool _isConfirm = false, _isChangeMethod = false; Model.ReceiptPay model = GetModel(id); if (model == null) { return("数据不存在"); } if (new BLL.department().getGroupArea() != manager.area || !new permission().checkHasPermission(manager, "0404")) { return("无权限操作"); } string _content = ""; if (!model.rp_type.Value) { text = "付款"; text1 = "实付"; if (string.IsNullOrEmpty(isConfirm) && string.IsNullOrEmpty(method)) { return("请选择" + text + "状态或" + text + "方式"); } if (!string.IsNullOrEmpty(isConfirm)) { _isConfirm = Utils.StrToBool(isConfirm, false); if (model.rp_isConfirm == _isConfirm) { return(text + "状态未变更"); } if (model.rp_isExpect.Value && model.rp_flag1 != 2) { return("预付款总经理审批状态未通过,不能确认" + text); } _content = text + "ID:" + id + "<br/>状态:" + Common.BusinessDict.financeConfirmStatus(0)[model.rp_isConfirm] + "→<font color='red'>" + Common.BusinessDict.financeConfirmStatus(0)[_isConfirm] + "</font><br/>"; model.rp_isConfirm = _isConfirm; if (_isConfirm) { if (model.rp_method == 0 && (string.IsNullOrEmpty(method) || method == "0")) { return("请标记付款方式"); } if (string.IsNullOrEmpty(date)) { return("请选择" + text1 + "日期"); } model.rp_date = Utils.StrToDateTime(date); _content += "实付日期:<font color='red'>" + model.rp_date.Value.ToString("yyyy-MM-dd") + "</font><br/>"; if (!string.IsNullOrEmpty(method)) { _isChangeMethod = true; model.rp_method = Utils.StrToInt(method, 0); _content += "付款方式:<font color='red'>" + new BLL.payMethod().GetModel(model.rp_method.Value).pm_name + "</font>"; } model.rp_confirmerNum = manager.user_name; model.rp_confirmerName = manager.real_name; } else { model.rp_date = null; model.rp_confirmerNum = ""; model.rp_confirmerName = ""; } } if (!string.IsNullOrEmpty(method)) { _isChangeMethod = true; model.rp_method = Utils.StrToInt(method, 0); _content += "ID:" + id + "<br/>付款方式:<font color='red'>" + new BLL.payMethod().GetModel(model.rp_method.Value).pm_name + "</font>"; } } else { //退款要先确认总经理审批已经通过,否则不能直接确认 if (model.rp_money < 0 && model.rp_flag1 != 2) { return(text + "总经理审批状态未通过,不能确认退款"); } if (string.IsNullOrEmpty(isConfirm)) { return("请选择" + text + "状态"); } _isConfirm = Utils.StrToBool(isConfirm, false); if (model.rp_isConfirm == _isConfirm) { return(text + "状态未变更"); } _content = text + "ID:" + id + "<br/>状态:" + Common.BusinessDict.financeConfirmStatus(1)[model.rp_isConfirm] + "→<font color='red'>" + Common.BusinessDict.financeConfirmStatus(1)[_isConfirm] + "</font><br/>"; model.rp_isConfirm = _isConfirm; if (_isConfirm) { if (string.IsNullOrEmpty(date)) { return("请选择" + text1 + "日期"); } model.rp_date = Utils.StrToDateTime(date); model.rp_confirmerNum = manager.user_name; model.rp_confirmerName = manager.real_name; _content += "实收日期:<font color='red'>" + model.rp_date.Value.ToString("yyyy-MM-dd") + "</font>"; } else { model.rp_date = null; model.rp_confirmerNum = ""; model.rp_confirmerName = ""; } } if (dal.Update(model, _isChangeMethod)) { Model.business_log logmodel = new Model.business_log(); logmodel.ol_relateID = id; logmodel.ol_cid = model.rp_cid.Value; logmodel.ol_title = model.rp_type.Value?"确认收款": "支付操作"; logmodel.ol_content = _content; logmodel.ol_operateDate = DateTime.Now; new business_log().Add(DTEnums.ActionEnum.Audit.ToString(), logmodel, manager.user_name, manager.real_name); //消息通知 if (model.rp_type.Value) { if (_isConfirm)//确认到账 { //通知下收款通知人 string replaceContent = new BLL.Customer().GetModel(model.rp_cid.Value).c_name + "," + model.rp_money + "," + model.rp_foredate.Value.ToString("yyyy-MM-dd") + "," + new BLL.payMethod().GetModel(model.rp_method.Value).pm_name; string replaceUser = manager.user_name + "," + manager.real_name; new BLL.selfMessage().AddMessage("收款通知确认到账", model.rp_personNum, model.rp_personName, replaceContent, replaceUser); //通知业务员 DataTable dt = dal.getOrderUser(model.rp_id.Value); if (dt != null) { foreach (DataRow dr in dt.Rows) { new BLL.selfMessage().AddMessage("收款通知确认到账", dr["op_number"].ToString(), dr["op_name"].ToString(), replaceContent, replaceUser); } } } else//确认未到账 { //通知下收款通知人 string replaceContent = new BLL.Customer().GetModel(model.rp_cid.Value).c_name + "," + model.rp_money + "," + model.rp_foredate.Value.ToString("yyyy-MM-dd") + "," + new BLL.payMethod().GetModel(model.rp_method.Value).pm_name; string replaceUser = manager.user_name + "," + manager.real_name; new BLL.selfMessage().AddMessage("收款通知确认未到账", model.rp_personNum, model.rp_personName, replaceContent, replaceUser); //通知业务员 DataTable dt = dal.getOrderUser(model.rp_id.Value); if (dt != null) { foreach (DataRow dr in dt.Rows) { new BLL.selfMessage().AddMessage("收款通知确认未到账", dr["op_number"].ToString(), dr["op_name"].ToString(), replaceContent, replaceUser); } } } } return(""); } return("审批失败"); }
/// <summary> /// 标记凭证 /// </summary> /// <param name="id"></param> /// <param name="num"></param> /// <param name="date"></param> /// <param name="username"></param> /// <param name="realname"></param> /// <returns></returns> public string signCertificate(int id, string num, string date, Model.manager manager) { if (new BLL.department().getGroupArea() != manager.area || (!new permission().checkHasPermission(manager, "0404") && !new permission().checkHasPermission(manager, "0406"))) { return("无权限标记"); } Model.certificates model = new BLL.certificates().GetModel(num, Convert.ToDateTime(date)); int ceid = 0; if (model == null) { Model.certificates cemodel = new Model.certificates(); cemodel.ce_num = num; cemodel.ce_date = ConvertHelper.toDate(date); cemodel.ce_personNum = manager.user_name; cemodel.ce_personName = manager.real_name; new BLL.certificates().Add(cemodel, out ceid); if (ceid > 0) { cemodel.ce_id = ceid; model = cemodel; } } else { ceid = model.ce_id.Value; } if (model.ce_flag == 2) { return("凭证号和凭证日期已经审批通过,不能使用"); } Model.ReceiptPay rp = GetModel(id); if (rp == null) { return("记录不存在"); } string text = "收款"; if (!rp.rp_type.Value) { text = "付款"; } if (!rp.rp_isConfirm.Value) { return("必须确认" + text + "后才能标记凭证"); } //如果已经存在凭证,且该凭证已经审核通过,则不能标记新凭证 if (rp.rp_ceid > 0) { Model.certificates oldcert = new BLL.certificates().GetModel(rp.rp_ceid.Value); if (oldcert.ce_flag == 2) { return("前面标记的凭证已经审核通过,不能再标记新的凭证"); } } rp.rp_ceid = ceid; if (dal.Update(rp)) { Model.business_log logmodel = new Model.business_log(); logmodel.ol_relateID = id; logmodel.ol_cid = rp.rp_cid.Value; logmodel.ol_title = "标记凭证"; logmodel.ol_content = "凭证号:" + num + "<br/>凭证日期:" + date; logmodel.ol_operateDate = DateTime.Now; new business_log().Add(DTEnums.ActionEnum.Sign.ToString(), logmodel, manager.user_name, manager.real_name); return(""); } return("标记失败"); }
/// <summary> /// 增加收付款明细 /// </summary> public string AddReceiptPay(Model.ReceiptPayDetail model, Model.manager manager, out int id) { id = 0; string typeText = "收款"; if (!model.rpd_type.Value) { typeText = "付款"; } Model.Order order = new BLL.Order().GetModel(model.rpd_oid); if (order == null) { return("订单不存在"); } if (!new BLL.permission().checkHasPermission(manager, "0401"))//如果不是财务 { if (order.personlist.Where(p => p.op_number == manager.user_name && p.op_type != 3).ToArray().Length == 0) { return("无权限添加"); } } //收付款明细的区域和订单区域保持一致 model.rpd_area = order.personlist.Where(p => p.op_type == 1).ToArray()[0].op_area; if (model.rpd_cid == 0) { return("请选择" + typeText + "对象"); } if (model.rpd_money == 0) { return("请填写" + typeText + "金额"); } if (model.rpd_foredate == null) { return("请选择" + (model.rpd_type.Value ? "预收" : "预付") + "日期"); } if (model.rpd_type.Value && model.rpd_method == 0) { return("请选择收款方式"); } Model.ReceiptPay rp = null; if (model.rpd_type.Value) { rp = new Model.ReceiptPay(); rp.rp_type = true; rp.rp_cid = model.rpd_cid; rp.rp_content = model.rpd_content; rp.rp_money = model.rpd_money; rp.rp_foredate = model.rpd_foredate; rp.rp_method = model.rpd_method; rp.rp_personNum = model.rpd_personNum; rp.rp_personName = model.rpd_personName; rp.rp_isConfirm = false; rp.rp_isExpect = false; rp.rp_flag = 2; if (rp.rp_money < 0) { rp.rp_flag = 0; rp.rp_flag1 = 0; } rp.rp_adddate = model.rpd_adddate; rp.rp_area = model.rpd_area; rp.rp_cbid = model.rpd_cbid; if (model.rpd_money < 0) { if (model.rpd_cbid == 0) { return("请选择客户银行账号"); } } } else { if (model.rpd_cbid == 0) { return("请选择客户银行账号"); } //负数金额的业务付款明细申请自动审批通过,不需要人工审批!还有负数金额的业务付款明细申请不受“应付 - 已下付款申请〉=0”限制 if (model.rpd_money < 0) { model.rpd_flag1 = 2; model.rpd_checkTime1 = DateTime.Now; model.rpd_flag2 = 2; model.rpd_checkTime2 = DateTime.Now; model.rpd_flag3 = 2; model.rpd_checkTime3 = DateTime.Now; } else { decimal?money = getUnPayMoney(model.rpd_cid.Value, model.rpd_oid); if (model.rpd_money > money) { return("金额不能超过:" + money); } } } id = dal.Add(model, rp); if (id > 0) { StringBuilder content = new StringBuilder(); content.Append("订单号:" + model.rpd_oid + "<br/>"); content.Append("" + typeText + "对象ID:" + model.rpd_cid + "<br/>"); content.Append("" + typeText + "金额:" + model.rpd_money + "<br/>"); content.Append("预收日期:" + model.rpd_foredate.Value.ToString("yyyy-MM-dd") + "<br/>"); if (model.rpd_type.Value) { content.Append("" + typeText + "方式ID:" + model.rpd_method + "<br/>"); } content.Append("" + typeText + "内容:" + model.rpd_content + "<br/>"); Model.business_log logmodel = new Model.business_log(); logmodel.ol_oid = model.rpd_oid; logmodel.ol_relateID = id; logmodel.ol_cid = model.rpd_cid.Value; logmodel.ol_title = "添加" + typeText + "明细"; logmodel.ol_content = content.ToString(); logmodel.ol_operateDate = DateTime.Now; new business_log().Add(DTEnums.ActionEnum.Add.ToString(), logmodel, manager.user_name, manager.real_name); //记录日志 //钉钉通知 if (!model.rpd_type.Value) { DataTable userDt = new BLL.manager().getUserByPermission("0603", model.rpd_area).Tables[0]; if (userDt != null) { string replaceContent = model.rpd_oid + "," + model.rpd_money + "," + model.rpd_content; string replaceUser = model.rpd_personNum + "," + model.rpd_personName; foreach (DataRow dr in userDt.Rows) { //钉钉推送通知 if (!string.IsNullOrEmpty(Utils.ObjectToStr(dr["oauth_userid"]))) { new BLL.selfMessage().sentDingMessage("添加付款通知", dr["oauth_userid"].ToString(), replaceContent, replaceUser); } } } } return(""); } return("添加失败"); }
/// <summary> /// 付款明细汇总 /// </summary> /// <param name="cid"></param> /// <param name="method"></param> /// <param name="foredate"></param> /// <param name="username"></param> /// <param name="realname"></param> /// <returns></returns> public string collectPayDetails(int cid, string area, int method, int newmethod, int cbid, bool isConfirm, DateTime date, string sdate, string edate, Model.manager manager) { if (new BLL.department().getGroupArea() != manager.area || !new permission().checkHasPermission(manager, "0404")) { return("无权限汇总"); } string dateStr = ""; if (!string.IsNullOrEmpty(sdate)) { dateStr += " and datediff(d,rpd_foreDate,'" + sdate + "')<=0"; } if (!string.IsNullOrEmpty(edate)) { dateStr += " and datediff(d,rpd_foreDate,'" + edate + "')>=0"; } DataSet ds = GetList(0, "rpd_type=0 and rpd_flag3=2 and rpd_flag2=2 and rpd_flag1=2 and isnull(rpd_rpid,0)=0 and rpd_cid=" + cid + " and isnull(rpd_method,0)=" + method + " and isnull(rpd_cbid,0)=" + cbid + " " + dateStr + "", ""); if (ds == null || ds.Tables[0].Rows.Count == 0) { return("数据异常"); } if (method > 0 && newmethod == 0) { newmethod = method; } decimal?money = 0; string ids = ""; foreach (DataRow dr in ds.Tables[0].Rows) { money += Convert.ToDecimal(dr["rpd_money"]); ids += dr["rpd_id"].ToString() + ","; } ids = ids.TrimEnd(','); Model.ReceiptPay model = new Model.ReceiptPay(); model.rp_type = false; model.rp_isExpect = false; model.rp_cid = cid; model.rp_money = money; model.rp_method = newmethod; model.rp_foredate = ConvertHelper.toDate(DateTime.Now.ToString("yyyy-MM-dd")); model.rp_personNum = manager.user_name; model.rp_personName = manager.real_name; model.rp_adddate = DateTime.Now; model.rp_flag = 2; model.rp_flag1 = 2; model.rp_area = area; model.rp_isConfirm = isConfirm; model.rp_cbid = cbid; if (isConfirm) { model.rp_confirmerNum = manager.user_name; model.rp_confirmerName = manager.real_name; model.rp_date = date; } int rpid = dal.collectPayDetails(model, method, sdate, edate); if (rpid > 0) { Model.business_log logmodel = new Model.business_log(); logmodel.ol_relateID = rpid; logmodel.ol_cid = model.rp_cid.Value; logmodel.ol_title = "汇总付款明细"; logmodel.ol_content = "付款明细ID:" + ids + ",汇总总金额:" + money; logmodel.ol_operateDate = DateTime.Now; new business_log().Add(DTEnums.ActionEnum.Collect.ToString(), logmodel, manager.user_name, manager.real_name); return(""); } return("汇总失败"); }
/// <summary> /// 更新一条数据 /// </summary> public string Update(Model.ReceiptPay model, string content, Model.manager manager, string num, string date, bool updateMoney = false) { if (!new BLL.permission().checkHasPermission(manager, "0401"))//如果不是财务 { return("无权限编辑"); } else { if (model.rp_personNum != manager.user_name && !new BLL.permission().checkHasPermission(manager, "0403")) { return("无权限编辑"); } } string typeText = "收款"; if (model.rp_type.Value) { if (model.rp_isConfirm.Value) { return("已经确认收款,不能再编辑"); } } else { typeText = "付款"; if (updateMoney) { if (model.rp_money < 0) { model.rp_flag = 2; model.rp_checkTime = DateTime.Now; model.rp_flag1 = 2; model.rp_checkTime1 = DateTime.Now; model.rp_isConfirm = true; model.rp_date = model.rp_foredate; model.rp_confirmerName = manager.real_name; model.rp_confirmerNum = manager.user_name; } else { model.rp_flag = 0; model.rp_checkNum = ""; model.rp_checkName = ""; model.rp_checkRemark = ""; model.rp_checkTime = null; model.rp_flag1 = 0; model.rp_checkNum1 = ""; model.rp_checkName1 = ""; model.rp_checkRemark1 = ""; model.rp_checkTime1 = null; model.rp_isConfirm = false; } } else { if (model.rp_money >= 0 && model.rp_flag == 2 && model.rp_flag1 != 1 && !new BLL.payMethod().GetModel(model.rp_method.Value).pm_type.Value) { return("财务已经审批通过,不能再编辑"); } if (model.rp_flag == 1 || model.rp_flag1 == 1) { model.rp_flag = 0; model.rp_checkNum = ""; model.rp_checkName = ""; model.rp_checkRemark = ""; model.rp_checkTime = null; model.rp_flag1 = 0; model.rp_checkNum1 = ""; model.rp_checkName1 = ""; model.rp_checkRemark1 = ""; model.rp_checkTime1 = null; } } } if (model.rp_cid == 0) { return("请选择" + typeText + "对象"); } if (model.rp_money == 0) { return("请填写" + typeText + "金额"); } if (model.rp_foredate == null) { return("请选择" + (model.rp_type.Value ? "预收" : "预付") + "日期"); } if (model.rp_type.Value && model.rp_method == 0) { return("请选择" + typeText + "方式"); } else { if (model.rp_method != 0) { Model.payMethod method = new BLL.payMethod().GetModel(model.rp_method.Value); if (method.pm_type.Value) { model.rp_cbid = 0; if (string.IsNullOrEmpty(num)) { return("请填写凭证号"); } if (string.IsNullOrEmpty(date)) { return("请填写凭证日期"); } Model.certificates ce = new BLL.certificates().GetModel(num, Convert.ToDateTime(date)); int ceid = 0; if (ce == null) { Model.certificates cemodel = new Model.certificates(); cemodel.ce_num = num; cemodel.ce_date = ConvertHelper.toDate(date); cemodel.ce_personNum = manager.user_name; cemodel.ce_personName = manager.real_name; new BLL.certificates().Add(cemodel, out ceid); if (ceid > 0) { cemodel.ce_id = ceid; } } else { ceid = ce.ce_id.Value; } model.rp_ceid = ceid; } else { model.rp_ceid = 0; if (model.rp_cbid == 0) { return("请选择客户银行账号"); } } } else { if (model.rp_cbid == 0) { return("请选择客户银行账号"); } } } if (dal.Update(model)) { Model.business_log logmodel = new Model.business_log(); logmodel.ol_relateID = model.rp_id.Value; logmodel.ol_cid = model.rp_cid.Value; logmodel.ol_title = "编辑" + typeText + ""; logmodel.ol_content = content.ToString(); logmodel.ol_operateDate = DateTime.Now; new business_log().Add(DTEnums.ActionEnum.Edit.ToString(), logmodel, manager.user_name, manager.real_name); //钉钉通知 if (!model.rp_type.Value) { DataTable userDt = new BLL.manager().getUserByPermission("0402").Tables[0]; if (userDt != null) { string replaceContent = model.rp_money + "," + model.rp_content; string replaceUser = model.rp_personNum + "," + model.rp_personName; foreach (DataRow dr in userDt.Rows) { //钉钉推送通知 if (!string.IsNullOrEmpty(Utils.ObjectToStr(dr["oauth_userid"]))) { new BLL.selfMessage().sentDingMessage("添加预付款", dr["oauth_userid"].ToString(), replaceContent, replaceUser); } } } } return(""); } return("编辑失败"); }