示例#1
0
        /// <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);
            }
        }
示例#2
0
        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);
        }
示例#3
0
 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;
 }
示例#4
0
        /// <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));
            }
        }
示例#5
0
        /// <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);
        }
示例#6
0
        /// <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);
        }
示例#7
0
 /// <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);
 }
示例#8
0
        /// <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("标记失败");
        }
示例#9
0
        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()));
        }
示例#10
0
        /// <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);
        }
示例#11
0
        /// <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);
        }
示例#12
0
        /// <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("操作失败");
        }
示例#13
0
        /// <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("添加失败");
        }
示例#14
0
        /// <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("审批失败");
        }
示例#15
0
        /// <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("标记失败");
        }
示例#16
0
        /// <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("添加失败");
        }
示例#17
0
        /// <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("汇总失败");
        }
示例#18
0
        /// <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("编辑失败");
        }