Example #1
0
        /// <summary>
        /// 删除单个付款记录
        /// znt 2015-05-11
        /// </summary>
        public BaseResult Remove(Hashtable param)
        {
            BaseResult br = new BaseResult();
            string     dh = param["dh"].ToString();

            param.Clear();
            param.Add("dh", dh);
            Td_Sale_Pay model = DAL.GetItem <Td_Sale_Pay>(typeof(Td_Sale_Pay), param);

            // 未审核 删除记录
            if (model != null && model.flag_state != 1)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("删除失败,该付款单号【{0}】当前状态不符合删除要求!", dh));
                br.Data = "none";
                return(br);
            }

            param.Clear();
            param.Add("dh", dh);
            DAL.Delete(typeof(Td_Sale_Pay), param);

            br.Success = true;
            br.Message.Add(string.Format("删除付款单成功,流水号:{0}", dh));
            return(br);
        }
Example #2
0
        public ActionResult Add(string obj)
        {
            BaseResult br = new BaseResult();

            try
            {
                Td_Sale_Pay model = JSON.Deserialize <Td_Sale_Pay>(obj);

                if (model.dh_order.IsEmpty())
                {
                    br.Success = false;
                    br.Message.Add(string.Format("订单号校验失败,请重新刷新页面。"));
                    br.Level = ErrorLevel.Warning;
                    return(Json(br));
                }
                if (model.rq_create.Value == null)
                {
                    br.Success = false;
                    br.Message.Add(string.Format("付款日期不能为空。"));
                    br.Level = ErrorLevel.Warning;
                    return(Json(br));
                }

                br = BusinessFactory.Utilety.GetNextDH(model, typeof(Td_Sale_Pay));
                if (!br.Success)
                {
                    return(Json(br));
                }

                switch (model.flag_pay)
                {
                case "onlink":          // 线上付款
                    break;

                case "platform":        // 平台付款
                    break;

                default:                // 默认线下付款
                    model.dh_pay = "";
                    break;
                }
                model.id_create = GetLoginInfo <long>("id_user");
                model.id_edit   = GetLoginInfo <long>("id_user");
                br = BusinessFactory.Funds.PayForGys(model);
                if (br.Success)
                {
                    WriteDBLog(LogFlag.Bill, br.Message);
                }
            }
            catch (CySoftException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(Json(br));
        }
Example #3
0
        /// <summary>
        /// 新增
        /// znt 2015-04-27
        /// </summary>
        public override BaseResult Add(dynamic entity)
        {
            BaseResult  br    = new BaseResult();
            Hashtable   param = new Hashtable();
            Td_Sale_Pay model = (Td_Sale_Pay)entity;

            param.Clear();
            param.Add("dh", model.dh_order);
            Td_Sale_Order_Head head = DAL.GetItem <Td_Sale_Order_Head>(typeof(Td_Sale_Order_Head), param);

            if (head == null)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("添加付款记录失败,该订货单号【{0}】不存在或资料已缺失!", model.dh_order));
                br.Data = "none";
                return(br);
            }

            // 计算尚未付款金额
            decimal notYetPay = head.je_pay.Value - head.je_payed.Value;

            // 判断订单是否完全付款
            if (notYetPay <= 0)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("付款提示,该单号【{0}】已完成付款,不需要重复付款", model.dh_order));
                return(br);
            }

            if (model.je > notYetPay)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("添加付款记录失败,总金额不允许大于订单待付款金额!", model.dh_order));
                return(br);
            }

            model.id_cgs      = head.id_cgs;
            model.id_gys      = head.id_gys;
            model.flag_delete = 0;

            DAL.Add(model);
            br.Success = true;
            return(br);
        }
Example #4
0
        public BaseResult PayForGys(dynamic entity)
        {
            BaseResult  br    = new BaseResult();
            Hashtable   param = new Hashtable();
            Td_Sale_Pay model = (Td_Sale_Pay)entity;

            param.Clear();
            param.Add("dh", model.dh_order);
            Td_Sale_Order_Head head = DAL.GetItem <Td_Sale_Order_Head>(typeof(Td_Sale_Order_Head), param);

            if (head == null)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("添加付款记录失败,该销售单号【{0}】不存在或资料已缺失!", model.dh_order));
                br.Data = "none";
                return(br);
            }

            // 尚未付款金额
            decimal notYetPay = head.je_pay.Value - head.je_payed.Value;

            // 判断订单是否完全付款
            if (notYetPay <= 0)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("付款提示,该单号【{0}】已完成付款,不需要重复付款", model.dh_order));
                return(br);
            }

            // 检查差额
            if (model.je.Value >= notYetPay)
            {
                model.je = notYetPay;

                //未审核的付款单直接作废
                param.Clear();
                param.Add("dh_order", head.dh);
                param.Add("flag_state", 1);
                param.Add("new_flag_state", 0);
                param.Add("new_id_edit", model.id_edit);
                param.Add("new_rq_edit", DateTime.Now);
                DAL.UpdatePart(typeof(Td_Sale_Pay), param);
            }

            // 更新订单状态
            param.Clear();
            param.Add("dh", head.dh);
            param.Add("new_je_payed", head.je_payed.Digit(DigitConfig.je) + model.je.Digit(DigitConfig.je));
            param.Add("new_id_edit", model.id_edit);
            param.Add("new_rq_edit", DateTime.Now);
            DAL.UpdatePart(typeof(Td_Sale_Order_Head), param);


            model.id_cgs      = head.id_cgs;
            model.id_gys      = head.id_gys;
            model.flag_delete = 0;
            model.flag_state  = 2; // 直接已审核

            DAL.Add(model);
            br.Success = true;
            return(br);
        }
Example #5
0
        public BaseResult CancelRecord(Hashtable param)
        {
            BaseResult br      = new BaseResult();
            string     dh      = param["dh"].ToString(); // 收款单号
            long       id_edit = Convert.ToInt64(param["id_edit"]);

            param.Clear();
            param.Add("dh", dh);
            Td_Sale_Pay model = DAL.GetItem <Td_Sale_Pay>(typeof(Td_Sale_Pay), param);

            if (model == null)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("取消收款失败,收款流水号【{0}】不存在或资料已缺失!", dh));
                br.Data = "none";
                return(br);
            }

            if (model.flag_state != 2)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("取消收款失败,该付款单号【{0}】当前状态不符合取消收款确认要求!", dh));
                br.Data = "none";
                return(br);
            }

            param.Clear();
            param.Add("dh", model.dh_order);
            Td_Sale_Order_Head head = DAL.GetItem <Td_Sale_Order_Head>(typeof(Td_Sale_Order_Head), param);

            if (head == null)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("取消收款失败,该收款流水号【{0}】的销售单【{1}】不存在或资料已缺失!", model.dh, model.dh_order));
                br.Data = "none";
                return(br);
            }

            #region 更新订单已付金额

            param.Clear();
            param.Add("dh", head.dh);
            param.Add("new_je_payed", head.je_payed - model.je);
            param.Add("new_id_edit", model.id_edit);
            param.Add("new_rq_edit", DateTime.Now);
            DAL.UpdatePart(typeof(Td_Sale_Order_Head), param);

            #endregion

            param.Clear();
            param.Add("dh", model.dh);
            param.Add("new_flag_state", 0);
            param.Add("new_id_edit", id_edit);
            param.Add("new_rq_edit", DateTime.Now);

            int result = DAL.UpdatePart(typeof(Td_Sale_Pay), param);
            if (result > 0)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("取消收款确认失败,流水号:{0}", dh));
                br.Data = "none";
                return(br);
            }

            br.Success = true;
            br.Message.Add(string.Format("取消付款确认成功,流水号:{0}", dh));
            return(br);
        }
Example #6
0
        public BaseResult PayConfirm(Hashtable param)
        {
            BaseResult br      = new BaseResult();
            string     dh      = param["dh"].ToString();
            long       id_edit = Convert.ToInt64(param["id_edit"]);

            param.Clear();
            param.Add("dh", dh);
            Td_Sale_Pay model = DAL.GetItem <Td_Sale_Pay>(typeof(Td_Sale_Pay), param);

            if (model == null)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("付款失败,该付款单号【{0}】不存在或资料已缺失!", dh));
                br.Data = "none";
                return(br);
            }

            if (model.flag_state != 1)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("付款失败,该付款单号【{0}】当前状态不符合付款要求!", dh));
                br.Data = "none";
                return(br);
            }

            param.Clear();
            param.Add("dh", model.dh_order);
            Td_Sale_Order_Head head = DAL.GetItem <Td_Sale_Order_Head>(typeof(Td_Sale_Order_Head), param);

            if (head == null)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("付款失败,该单号【{0}】不存在或资料已缺失!", model.dh_order));
                return(br);
            }

            // 尚未付款金额
            decimal notYetPay = head.je_pay.Value - head.je_payed.Value;

            // 判断订单是否完全付款
            if (notYetPay <= 0)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("付款提示,该单号【{0}】已完成付款,不需要重复付款", model.dh_order));
                return(br);
            }

            // 检查差额
            if (model.je.Value >= notYetPay)
            {
                model.remark = string.Format("【原收款单金额为:{0}】", model.je.Value.ToString("0.00")) + model.remark;
                model.je     = notYetPay;

                // 剩下未审核的付款单直接作废
                param.Clear();
                param.Add("dh_order", head.dh);
                param.Add("not_dh", model.dh); // 排除当前操作的付款单
                param.Add("flag_state", 1);
                param.Add("new_flag_state", 0);
                param.Add("new_id_edit", id_edit);
                param.Add("new_rq_edit", DateTime.Now);
                DAL.UpdatePart(typeof(Td_Sale_Pay), param);
            }

            // 更新订单的付款金额
            param.Clear();
            param.Add("dh", head.dh);
            param.Add("new_je_payed", head.je_payed.Digit(DigitConfig.je) + model.je.Digit(DigitConfig.je));
            param.Add("new_id_edit", id_edit);
            param.Add("new_rq_edit", DateTime.Now);
            DAL.UpdatePart(typeof(Td_Sale_Order_Head), param);

            // 跟新当前付款单的状态和金额
            param.Clear();
            param.Add("dh", model.dh);
            param.Add("new_je", model.je);
            param.Add("new_flag_state", 2);
            param.Add("new_id_edit", id_edit);
            param.Add("new_rq_edit", DateTime.Now);
            param.Add("new_remark", model.remark);

            int result = DAL.UpdatePart(typeof(Td_Sale_Pay), param);

            if (result > 0)
            {
                br.Success = false;
                br.Level   = ErrorLevel.Warning;
                br.Message.Add(string.Format("付款失败,流水号:{0}", dh));
                br.Data = "none";
                return(br);
            }

            br.Success = true;
            br.Message.Add(string.Format("付款成功,流水号:{0}", dh));
            return(br);
        }