/// <summary>
        /// 更新请购计划数据
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int UpdateICPRBILL(ICPRBILLMODEL model)
        {
            try
            {
                ICPRBILLMODEL icprModel = ICPRBILLDAL.Instance.Get(model.FID);
                icprModel.FIDENTIFICATION = model.FIDENTIFICATION;

                return(ICPRBILLDAL.Instance.Update(icprModel));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex);
                return(-1);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 保存请购计划,同时更新子表明细
        /// </summary>
        /// <param name="model"></param>
        /// <param name="ICPRBillEntryList"></param>
        /// <param name="ICRPBIDataList"></param>
        /// <param name="ICPRPolicyList"></param>
        /// <param name="deleteICPRBillEntryIDList"></param>
        /// <param name="deleteICRPBIDataIDList"></param>
        /// <param name="deleteICPRPolicyIDList"></param>
        /// <returns></returns>
        public string Save(ICPRBILLMODEL model, List <ICPRBillDataModel> dataList, List <TB_ATTACHMENTModel> attaList)
        {
            foreach (var item in dataList.GroupBy(d => d.FITEMID.Trim() + d.FENTRYID))
            {
                if (item.Count() > 1)
                {
                    return("产生重复数据,请检查!");
                }
            }

            string FID    = null;
            string result = null;

            //编辑日期
            model.FBILLDATE = model.FDATE = DateTime.Now;
            //默认状态草稿
            model.FSTATUS = Constant.BILL_FSTATUS.草稿.ToInt();

            ICPRBILLMODEL temp = ICPRBILLDAL.Instance.GetWhere(new { FBILLNO = model.FBILLNO }).FirstOrDefault();

            if (temp != null && temp.FID != model.FID)
            {
                return("请购计划编号重复!");
            }

            //先添加请购计划
            if (model.FID.IsNullOrEmpty())
            {
                #region 新增

                //编辑人
                model.FBILLERID = SysVisitor.Instance.UserId;

                FID = ICPRBILLDAL.Instance.Insert(model);

                if (!FID.IsGuid())
                {
                    result = "保存请购计划失败!";
                }

                #endregion
            }
            else
            {
                FID = model.FID;
                #region 更新

                result = ICPRBILLDAL.Instance.UpdateWhatWhere(new
                {
                    FTRANSID       = model.FTRANSID,
                    FTYPEID        = model.FTYPEID,
                    FPREMISEID     = model.FPREMISEID,
                    FBRANDID       = model.FBRANDID,
                    FBILLNO        = model.FBILLNO,
                    FTRANSTYPE     = model.FTRANSTYPE,
                    FENGINEERINGID = model.FENGINEERINGID,
                    FRECEIVINGADDR = model.FRECEIVINGADDR,
                    FFREIGHTID     = model.FFREIGHTID,
                    FTELEPHONE     = model.FTELEPHONE,
                    SIGN_MAIN      = model.SIGN_MAIN,
                    JDE            = model.JDE,
                    CRMNO          = model.CRMNO,
                    FREMARK        = model.FREMARK,
                    FPROJECTNAME   = model.FPROJECTNAME,
                    FPURCHASE_NO   = model.FPURCHASE_NO,
                    FSETTLE_ORG    = model.FSETTLE_ORG,
                    FDELIVERYADDR  = model.FDELIVERYADDR,
                    FWEIGHT        = model.FWEIGHT,
                    FPROVINCEID    = model.FPROVINCEID,
                    FCITYID        = model.FCITYID,
                    FDISTRICTID    = model.FDISTRICTID,
                    FCONSIGNEE     = model.FCONSIGNEE,
                    FCONSIGNEE_TEL = model.FCONSIGNEE_TEL
                }, new
                {
                    FID     = model.FID,
                    FSTATUS = Constant.BILL_FSTATUS.草稿.ToInt()
                }) > 0 ? null : "保存请购计划失败,计划可能已经提交审核了!";

                #endregion
            }

            //是否保存失败!
            if (!result.IsNullOrEmpty())
            {
                return(result);
            }


            #region  除子表明细假设是更新的话

            if (!model.FID.IsNullOrEmpty())
            {
                //删除请购计划明细
                ICPRBILLENTRYBLL.Instance.DeleteByICPRBILLID(FID);

                //删除请购计划附件
                ICPRBILLENTRYBLL.Instance.DeleteByATTACHMENT(FID);

                //删除请购计划参考数据
                //ICPRBIDATABLL.Instance.DeleteByICPRBILLID(FID);

                ////删除请购计划价格政策
                //ICPRPOLICYBLL.Instance.DeleteByICPRBILLID(FID);
            }

            #endregion

            #region 更新子表明细

            foreach (var item in dataList)
            {
                //更新请购计划明细
                ICPRBILLENTRYBLL.Instance.Add(item.ICPRBillEntry, FID);

                //更新请购计划参考数据
                //ICPRBIDATABLL.Instance.Add(item.ICRPBIData, FID, item.FITEMID, item.FENTRYID);

                //更新请购计划价格政策
                //ICPRPOLICYBLL.Instance.Add(item.ICPRPolicy, FID, item.FITEMID, item.FENTRYID);
            }

            #endregion


            foreach (var item in attaList)
            {
                item.FBILLID   = FID;
                item.FADD_USER = SysVisitor.Instance.UserId;
                item.FADD_TIME = DateTime.Now;
                item.FTYPE     = 1;
                TB_ATTACHMENTDal.Instance.Insert(item);
            }

            return(result);
        }
        /// <summary>
        /// 审批操作返回信息接口
        /// </summary>
        /// <returns></returns>
        public string UpdateAudit()
        {
            try
            {
                //用户编号
                string user = Request["user"];
                //单据ID
                string billid = Request["billid"];
                //审核状态  1:审核通过 2:审核不通过
                string status = Request["status"];
                //审批意见
                string remark = Request["remark"];

                //V_ICPRBILLMODEL model = V_ICPRBILLDAL.Instance.Get(billid);
                //if (model != null)
                //{
                //    var flows = V_ROUTINGDal.Instance.GetWhere(new { FBRANDID = model.FBRANDID, FPREMISEID = model.FPREMISEID, FTYPE = model.FTYPEID }).ToList();
                //    if (flows.Count > 0)
                //    {
                //        //生成审批记录
                //        ICPRBILLAUDITModel audit = new ICPRBILLAUDITModel();
                //        audit.FBILLID = billid;
                //        audit.FBILLTYPE = 1;
                //        audit.FAUDIT_TIME = DateTime.Now;
                //        audit.FFLOWID = flows[0].FID;
                //        audit.FAUDITOR = user;
                //        audit.FSTATUS = status.ToInt();
                //        ICPRBILLAUDITDal.Instance.Insert(audit);

                //        if(flows[0].FAPPROVER_USERNAME1 == user && flows[0].FNODECOUNT > 1)
                //        {
                //            //发送微信模板消息
                //            SendWxtTmpMessage(flows[0].FAPPROVER_USERNAME2);
                //        }
                //        else if (flows[0].FAPPROVER_USERNAME2 == user && flows[0].FNODECOUNT > 2)
                //        {
                //            //发送微信模板消息
                //            SendWxtTmpMessage(flows[0].FAPPROVER_USERNAME3);
                //        }
                //        else
                //        {
                //            ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = 2 },new { FID = model.FID });
                //            ICPRBILLENTRYDAL.Instance.UpdateWhatWhere(new { FSTATUS = 2 }, new { FPLANID = model.FID });
                //        }
                //    }
                //}

                //更新审核状态
                var result = ICPRBILLAUDITDal.Instance.UpdateWhatWhere(new { FAUDIT_TIME = DateTime.Now, FSTATUS = status, FREMARK = remark }, new { FAUDITOR = user, FBILLID = billid });
                if (result > 0)
                {
                    if (status == "1") // 审核通过
                    {
                        //查询发起审核的其他用户
                        var audituser = ICPRBILLAUDITDal.Instance.GetWhereStr(string.Format(" and FBILLID='{0}' and FSTATUS<=0", billid)).OrderBy(m => m.FSORT).ToList();
                        if (audituser.Count() > 0)
                        {
                            ICPRBILLMODEL billModel = ICPRBILLDAL.Instance.Get(billid);
                            //发送微信模板消息
                            SendWxtTmpMessage(audituser[0].FAUDITOR, billModel.FBILLNO, billModel.FID);

                            audituser[0].FSTATUS = 0;

                            ICPRBILLAUDITDal.Instance.Update(audituser[0]);
                        }
                        else
                        {
                            ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = 3, FCHECKERID = SysVisitor.Instance.UserId, FCHECKDATE = DateTime.Now }, new { FID = billid });
                            ICPRBILLENTRYDAL.Instance.UpdateWhatWhere(new { FSTATUS = 3 }, new { FPLANID = billid });
                        }
                    }
                    else if (status == "2") //审核不通过
                    {
                        ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = 4, FCHECKERID = SysVisitor.Instance.UserId, FCHECKDATE = DateTime.Now }, new { FID = billid });
                        ICPRBILLENTRYDAL.Instance.UpdateWhatWhere(new { FSTATUS = 4 }, new { FPLANID = billid });
                    }

                    return(JSONhelper.ToJson(new ResultClass()
                    {
                        errCode = 0
                    }));
                }

                return(JSONhelper.ToJson(new ResultClass()
                {
                    errCode = -1,
                    errMsg = "数据不存在!"
                }));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex);
                return(JSONhelper.ToJson(new ResultClass()
                {
                    errCode = -1,
                    errMsg = ex.Message
                }));
            }
        }
        /// <summary>
        /// 发货计划单据保存
        /// </summary>
        /// <param name="model"></param>
        /// <param name="entrys"></param>
        /// <returns></returns>
        public bool DeliveryBillSave(ICSEOUTBILLMODEL model, List <ICSEOUTBILLENTRYMODEL> entrys, bool delivery = true)
        {
            try
            {
                if (!delivery)
                {
                    if (entrys.Count > 0)
                    {
                        List <ICPRBILLENTRYMODEL> icprModels = ICPRBILLENTRYDAL.Instance.GetWhere(new { FID = entrys[0].FICPRID }).ToList();
                        if (icprModels.Count > 0)
                        {
                            ICPRBILLMODEL icprModel = ICPRBILLDAL.Instance.Get(icprModels[0].FPLANID);
                            if (icprModel != null)
                            {
                                model.FPROJECTNAME  = icprModel.FPROJECTNAME;
                                model.FRECEIVERADDR = icprModel.FRECEIVINGADDR;
                                model.FPLANDESC     = icprModel.JDE;
                                model.FPURCHASE_NO  = icprModel.FPURCHASE_NO;
                                model.FREMARK       = icprModel.FREMARK;
                                model.FSETTLE_ORG   = icprModel.FSETTLE_ORG;
                            }
                        }
                    }
                }
                var result = ICSEOUTBILLBLL.Instance.Save(model, entrys);
                if (result == null && !string.IsNullOrEmpty(model.FGROUP_NO))
                {
                    //插入装车发货明细
                    var details = TB_DELIVERY_DETAILDal.Instance.GetWhere(new { FGROUP_NO = model.FGROUP_NO }).ToList();
                    if (details.Count > 0)
                    {
                        TB_DELIVERY_DETAILModel m = details[0]; m.FGROUP_NO = model.FGROUP_NO;
                        m.FDELIVERDATE      = model.FDELIVERDATE;
                        m.FBRANDID          = model.FBRANDID;
                        m.FPREMISEID        = model.FPREMISEID;
                        m.FPLAN_INFO        = model.FPLAN_INFO;
                        m.FTRANSID          = model.FTRANSID;
                        m.FDELIVERERADDR    = model.FDELIVERERADDR;
                        m.FRECEIVERADDR     = model.FRECEIVERADDR;
                        m.FALLWEIGHT        = model.FALLWEIGHT;
                        m.FCARNUMBER        = model.FCARNUMBER;
                        m.FEXPRESSCOMPANYID = model.FEXPRESSCOMPANYID;
                        TB_DELIVERY_DETAILDal.Instance.Update(m);
                    }
                    else
                    {
                        TB_DELIVERY_DETAILModel m = new TB_DELIVERY_DETAILModel();
                        m.FGROUP_NO         = model.FGROUP_NO;
                        m.FDATE             = DateTime.Now;
                        m.FDELIVERDATE      = model.FDELIVERDATE;
                        m.FBRANDID          = model.FBRANDID;
                        m.FPREMISEID        = model.FPREMISEID;
                        m.FPLAN_INFO        = model.FPLAN_INFO;
                        m.FTRANSID          = model.FTRANSID;
                        m.FDELIVERERADDR    = model.FDELIVERERADDR;
                        m.FRECEIVERADDR     = model.FRECEIVERADDR;
                        m.FALLWEIGHT        = model.FALLWEIGHT;
                        m.FCARNUMBER        = model.FCARNUMBER;
                        m.FEXPRESSCOMPANYID = model.FEXPRESSCOMPANYID;
                        m.FSTATUS           = 0;//草稿状态
                        TB_DELIVERY_DETAILDal.Instance.Insert(m);
                    }
                }


                return(true);
            }
            catch (Exception ex)
            {
                hn.Common.LogHelper.WriteLog(ex);
                throw ex;
            }
        }