示例#1
0
        public ActionResult SetOrderInvoice(Td_Sale_Order_Head model)
        {
            BaseResult br = new BaseResult();

            if (model.dh.IsEmpty())
            {
                br.Success = false;
                br.Message.Add("提交的数据不完整,请刷新后再试");
                br.Level = ErrorLevel.Warning;
                return(Json(br));
            }
            try
            {
                Hashtable param = new Hashtable();
                model.id_edit = GetLoginInfo <long>("id_user");
                model.rq_edit = DateTime.Now;

                param.Add("model", model);
                br = BusinessFactory.SaleOrder.SetOrderInvoice(param);
                if (br.Success)
                {
                    WriteDBLog(LogFlag.Bill, br.Message);
                }
            }
            catch (CySoftException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(Json(br));
        }
示例#2
0
        public ActionResult Pay()
        {
            BaseResult        br    = new BaseResult();
            Td_sale_pay_Query model = new Td_sale_pay_Query();

            try
            {
                Hashtable   param = GetParameters();
                ParamVessel p     = new ParamVessel();
                p.Add("dh", String.Empty, HandleType.ReturnMsg);
                param = param.Trim(p);

                string dh = param["dh"].ToString();
                ViewData["je_pay"]   = (long)0; // 订单金额
                ViewData["je_payed"] = (long)0; // 已付金额
                ViewData["id_gys"]   = (long)0; // 供应商id 选择银行账号标识

                param.Clear();
                param.Add("dh", dh);
                br = BusinessFactory.Order.Get(param);
                if (br.Data != null)
                {
                    Td_Sale_Order_Head head = (Td_Sale_Order_Head)br.Data;
                    model.dh_order       = head.dh;
                    ViewData["je_pay"]   = head.je_pay;
                    ViewData["je_payed"] = head.je_payed;
                    ViewData["id_gys"]   = head.id_gys;
                    model.je             = (head.je_pay - head.je_payed) < 0 ? (long)0 : (head.je_pay - head.je_payed); // 尚未付款

                    // 收款账号
                    param.Clear();
                    param.Add("id_gys", head.id_gys);
                    Tb_Gys_Account Bank = BusinessFactory.BankAccount.GetDefault(param).Data as Tb_Gys_Account;
                    if (Bank != null)
                    {
                        model.khr          = Bank.khr;
                        model.name_bank    = Bank.name_bank;
                        model.account_bank = Bank.account_bank;
                    }
                }
            }
            catch (CySoftException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(View(model));
        }
示例#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);
        }
示例#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);
        }
示例#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);
        }
示例#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);
        }