/// <summary>
        /// 关闭请购计划明细记录
        /// </summary>
        /// <param name="data"></param>
        /// <param name="loginUser"></param>
        /// <returns></returns>
        public bool CloseSave(List <ICPRBILLENTRYMODEL> data, User loginUser, string content)
        {
            try
            {
                foreach (ICPRBILLENTRYMODEL model in data)
                {
                    ICPRBILLENTRYMODEL uptModel = ICPRBILLENTRYDAL.Instance.Get(model.FID);
                    if (uptModel != null)
                    {
                        uptModel.FSTATUS      = (int)Constant.ICPRBILL_FSTATUS.关闭;
                        uptModel.FCLOSE_USER  = loginUser.FID;
                        uptModel.FCLOSE_TIME  = DateTime.Now;
                        uptModel.FCLOSE_RESON = content;
                        uptModel.FCLOSE       = 1;

                        ICPRBILLENTRYDAL.Instance.Update(uptModel);

                        if (ICPRBILLENTRYDAL.Instance.GetCloseStatus(uptModel.FPLANID) == 0)
                        {
                            ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.关闭 }, new { FID = uptModel.FPLANID });
                        }
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex);
                throw ex;
            }
        }
        public JsonResult CloseSave(string ICPRBillDataJson)
        {
            try
            {
                string action = Request["action"];
                List <ICPRBILLENTRYMODEL> list = JSONhelper.ConvertToObject <List <ICPRBILLENTRYMODEL> >(ICPRBillDataJson);

                foreach (ICPRBILLENTRYMODEL model in list)
                {
                    ICPRBILLENTRYMODEL uptModel = ICPRBILLENTRYDAL.Instance.Get(model.FID);
                    if (uptModel != null)
                    {
                        uptModel.FSTATUS = (int)Constant.ICPRBILL_FSTATUS.关闭;
                        uptModel.FCLOSE  = 1;

                        ICPRBILLENTRYDAL.Instance.Update(uptModel);

                        if (ICPRBILLENTRYDAL.Instance.GetCloseStatus(uptModel.FPLANID) == 0)
                        {
                            ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.关闭 }, new { FID = uptModel.FPLANID });
                        }
                    }
                }

                return(JsonResultHelper.ToSuccess("处理成功"));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex);
                return(JsonResultHelper.ToFailed(ex.Message));
            }
        }
        /// <summary>
        /// 添加请购计划明细
        /// </summary>
        /// <param name="model"></param>
        /// <param name="ICPRBILLID"></param>
        /// <param name="FITEMID"></param>
        /// <param name="FENTRYID"></param>
        /// <returns></returns>
        public int Add(ICPRBILLENTRYMODEL model, string ICPRBILLID)
        {
            model.FPLANID = ICPRBILLID;
            model.FSTATUS = 1;

            return(ICPRBILLENTRYDAL.Instance.Insert(model).IsGuid() ? 1 : 0);
        }
        public JsonResult ConfirmSave(string ICPRBillDataJson)
        {
            try
            {
                string action = Request["action"];
                List <ICPRBILLENTRYMODEL> list = JSONhelper.ConvertToObject <List <ICPRBILLENTRYMODEL> >(ICPRBillDataJson);

                foreach (ICPRBILLENTRYMODEL model in list)
                {
                    ICPRBILLENTRYMODEL uptModel = ICPRBILLENTRYDAL.Instance.Get(model.FID);
                    if (uptModel != null)
                    {
                        uptModel.FACCOUNT      = model.FACCOUNT;
                        uptModel.FSTOREHOUSE   = model.FSTOREHOUSE;
                        uptModel.FPOLICY       = model.FPOLICY;
                        uptModel.FCOMMITQTY    = model.FCOMMITQTY;
                        uptModel.FTRANSNAME    = model.FTRANSNAME;
                        uptModel.FORDERREMARK1 = model.FORDERREMARK1;
                        uptModel.FORDERREMARK2 = model.FORDERREMARK2;
                        uptModel.FCONFIRM_USER = SysVisitor.Instance.UserId;
                        uptModel.FCONFIRM_TIME = DateTime.Now;
                        if (action == "confirm")
                        {
                            uptModel.FSTATUS = (int)Constant.ICPRBILL_FSTATUS.采购确认;
                        }
                        else if (action == "unconfirm")
                        {
                            var count = ICSEOUTBILLENTRYDAL.Instance.GetWhere(new { FICPRID = uptModel.FID }).ToList();
                            if (count.Count > 0)
                            {
                                continue;
                            }
                            uptModel.FSTATUS = (int)Constant.ICPRBILL_FSTATUS.审核通过;
                        }

                        ICPRBILLENTRYDAL.Instance.Update(uptModel);

                        if (action == "unconfirm")
                        {
                            ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.审核通过 }, new { FID = uptModel.FPLANID });
                        }
                        else
                        {
                            if (ICPRBILLENTRYDAL.Instance.GetConfirmStatus(uptModel.FPLANID) == 0)
                            {
                                ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.采购确认 }, new { FID = uptModel.FPLANID });
                            }
                        }
                    }
                }

                return(JsonResultHelper.ToSuccess("处理完成,已发货的明细已自动跳过!"));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex);
                return(JsonResultHelper.ToFailed(ex.Message));
            }
        }
        /// <summary>
        /// 采购确认
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public bool ConfirmSave(string action, List <ICPRBILLENTRYMODEL> data, User loginUser)
        {
            try
            {
                foreach (ICPRBILLENTRYMODEL model in data)
                {
                    ICPRBILLENTRYMODEL uptModel = ICPRBILLENTRYDAL.Instance.Get(model.FID);
                    if (uptModel != null)
                    {
                        //uptModel.FACCOUNT = model.FACCOUNT;
                        //uptModel.FSTOREHOUSE = model.FSTOREHOUSE;
                        //uptModel.FPOLICY = model.FPOLICY;
                        uptModel.FCOMMITQTY = model.FCOMMITQTY;
                        //uptModel.FTRANSNAME = model.FTRANSNAME;
                        uptModel.FORDERREMARK1 = model.FORDERREMARK1;
                        uptModel.FORDERREMARK2 = model.FORDERREMARK2;

                        if (action == "confirm")
                        {
                            uptModel.FCONFIRM_USER = loginUser.FID;
                            uptModel.FCONFIRM_TIME = DateTime.Now;
                            uptModel.FSTATUS       = (int)Constant.ICPRBILL_FSTATUS.采购确认;
                        }
                        else if (action == "unconfirm")
                        {
                            var count = ICSEOUTBILLENTRYDAL.Instance.GetWhere(new { FICPRID = uptModel.FID }).ToList();
                            if (count.Count > 0)
                            {
                                continue;
                            }
                            uptModel.FSTATUS = (int)Constant.ICPRBILL_FSTATUS.审核通过;
                        }

                        LogHelper.WriteLog(JsonHelper.ToJson(uptModel));

                        ICPRBILLENTRYDAL.Instance.Update(uptModel);

                        if (action == "unconfirm")
                        {
                            ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.审核通过 }, new { FID = uptModel.FPLANID });
                        }
                        else
                        {
                            if (ICPRBILLENTRYDAL.Instance.GetConfirmStatus(uptModel.FPLANID) == 0)
                            {
                                ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.采购确认 }, new { FID = uptModel.FPLANID });
                            }
                        }
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex);
                throw ex;
            }
        }
        /// <summary>
        /// 采购确认,要同时更新请购单
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public bool ConfirmSave_ICPO(string action, List <ICPOBILLENTRYMODEL> data, User loginUser)
        {
            try
            {
                List <ICPRBILLENTRYMODEL> tempPRList = new List <ICPRBILLENTRYMODEL>();
                foreach (ICPOBILLENTRYMODEL model in data)
                {
                    ICPRBILLENTRYMODEL tempPR = ICPRBILLENTRYDAL.Instance.Get(model.FPLANID);
                    if (tempPR != null)
                    {
                        tempPRList.Add(tempPR);
                    }

                    ICPOBILLENTRYMODEL uptModel = ICPOBILLENTRYDAL.Instance.Get(model.FID);
                    if (uptModel != null)
                    {
                        if (action == "confirm")
                        {
                            uptModel.FSTATUS = (int)Constant.ICPOBILL_FSTATUS.采购确认;
                        }
                        else if (action == "unconfirm")
                        {
                            uptModel.FSTATUS = (int)Constant.ICPOBILL_FSTATUS.审核通过;
                        }

                        LogHelper.WriteLog(JsonHelper.ToJson(uptModel));

                        ICPOBILLENTRYDAL.Instance.Update(uptModel);

                        if (action == "unconfirm")
                        {
                            ICPOBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPOBILL_FSTATUS.审核通过 }, new { FID = uptModel.FICPOBILLID });
                        }
                        else
                        {
                            if (ICPOBILLENTRYDAL.Instance.GetConfirmStatus(uptModel.FID) == 0)
                            {
                                ICPOBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPOBILL_FSTATUS.采购确认 }, new { FID = uptModel.FICPOBILLID });
                            }
                        }
                    }
                }

                if (tempPRList.Count > 0)
                {
                    ConfirmSave(action, tempPRList, loginUser);
                }


                return(true);
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex);
                throw ex;
            }
        }
        /// <summary>
        /// 更新组柜明细状态
        /// </summary>
        /// <param name="ids"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        public string UpdateDeliveryGroupStatus(string ids, int status)
        {
            try
            {
                string[] array = ids.Split(',');
                foreach (string id in array)
                {
                    ICSEOUTBILLENTRYMODEL model = ICSEOUTBILLENTRYDAL.Instance.Get(id);
                    if (model != null)
                    {
                        model.FGROUP_STATUS = status;
                    }
                    ICSEOUTBILLENTRYDAL.Instance.Update(model);

                    //更新请购计划数量
                    string             sql       = string.Format("SELECT SUM(FCOMMITQTY*FRATE) FROM V_ICSEOUTBILLENTRY WHERE FICPRID='{0}' and (FGROUP_STATUS is null or FGROUP_STATUS = 0)", model.FICPRID);
                    DataTable          table     = hn.Common.Data.DbUtils.Query(sql);
                    decimal            total     = hn.Common.PublicMethod.GetDecimal(table.Rows[0][0]);
                    ICPRBILLENTRYMODEL icprModel = ICPRBILLENTRYDAL.Instance.Get(model.FICPRID);
                    if (icprModel != null)
                    {
                        icprModel.FLEFTAMOUNT = icprModel.FASKQTY - total;

                        if (icprModel.FLEFTAMOUNT <= 0)
                        {
                            icprModel.FSTATUS = 5;
                        }
                        else
                        {
                            icprModel.FSTATUS = 7;
                        }

                        ICPRBILLENTRYDAL.Instance.Update(icprModel);

                        if (ICPRBILLENTRYDAL.Instance.GetCloseStatus(icprModel.FPLANID) == 0)
                        {
                            ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.关闭 }, new { FID = icprModel.FPLANID });
                        }
                        else
                        {
                            ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.采购确认 }, new { FID = icprModel.FPLANID });
                        }
                    }
                }

                return("");
            }
            catch (Exception ex)
            {
                hn.Common.LogHelper.WriteLog(ex);
                throw ex;
            }
        }
        public string Save_ICPREntry_List(ICPRBILLENTRYMODEL tModel)
        {
            int iEntryID = 1;

            if (tModel.FPLANID == "0")
            {
                int iCount = ICPRBILLENTRYDAL.Instance.CountWhere(new { FPLANID = "0", FITEMID = tModel.FITEMID });
                iEntryID        = iEntryID + iCount;
                tModel.FENTRYID = iEntryID;
            }

            return(ICPRBILLENTRYDAL.Instance.Insert(tModel));
        }
        /// <summary>
        /// 保存请购计划明细
        /// </summary>
        /// <returns></returns>
        public string Save(ICPRBILLENTRYMODEL model, string ICPRBILLID)
        {
            string result = null;

            if (model.FID.IsNullOrEmpty())
            {
                result = ICPRBILLENTRYDAL.Instance.InsertWithFID(model, ICPRBILLID) > 0 ? null : "保存请购计划明细失败!";
            }
            else
            {
                result = ICPRBILLENTRYDAL.Instance.Update(model) > 0 ? null : "保存请购计划明细失败!";
            }

            return(result);
        }
        /// <summary>
        /// 批量删除发货计划
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        public int DeleteDeliveryByIDs(string ids)
        {
            try
            {
                string[] array = ids.Split(',');

                foreach (string id in array)
                {
                    ICSEOUTBILLDAL.Instance.Delete(id);

                    var list = ICSEOUTBILLENTRYDAL.Instance.GetWhere(new { FICSEOUTID = id }).ToList();

                    ICSEOUTBILLENTRYDAL.Instance.DeleteWhere(new { FICSEOUTID = id });
                    foreach (var model in list)
                    {
                        string             sql       = string.Format("SELECT SUM(FCOMMITQTY*FRATE) FROM V_ICSEOUTBILLENTRY WHERE FICPRID='{0}'", model.FICPRID);
                        DataTable          table     = DbUtils.Query(sql);
                        decimal            total     = hn.Common.PublicMethod.GetDecimal(table.Rows[0][0]);
                        ICPRBILLENTRYMODEL icprModel = ICPRBILLENTRYDAL.Instance.Get(model.FICPRID);
                        if (icprModel != null)
                        {
                            icprModel.FLEFTAMOUNT = icprModel.FASKQTY - total;

                            if (icprModel.FLEFTAMOUNT > 0)
                            {
                                icprModel.FSTATUS = 7;

                                ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.采购确认 }, new { FID = icprModel.FPLANID });
                            }

                            ICPRBILLENTRYDAL.Instance.Update(icprModel);
                        }
                    }
                }
                return(1);
            }
            catch (Exception ex)
            {
                hn.Common.LogHelper.WriteLog(ex);
                throw ex;
            }
        }
Exemple #11
0
        public JsonResult Delete(string id)
        {
            try
            {
                ICSEOUTBILLDAL.Instance.Delete(id);

                var list = ICSEOUTBILLENTRYDAL.Instance.GetWhere(new { FICSEOUTID = id }).ToList();

                ICSEOUTBILLENTRYDAL.Instance.DeleteWhere(new { FICSEOUTID = id });
                foreach (var model in list)
                {
                    string             sql       = string.Format("SELECT SUM(FCOMMITQTY*FRATE) FROM V_ICSEOUTBILLENTRY WHERE FICPRID='{0}'", model.FICPRID);
                    DataTable          table     = DbUtils.Query(sql);
                    decimal            total     = PublicMethod.GetDecimal(table.Rows[0][0]);
                    ICPRBILLENTRYMODEL icprModel = ICPRBILLENTRYDAL.Instance.Get(model.FICPRID);
                    if (icprModel != null)
                    {
                        icprModel.FLEFTAMOUNT = icprModel.FASKQTY - total;

                        if (icprModel.FLEFTAMOUNT > 0)
                        {
                            icprModel.FSTATUS = 7;

                            ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.采购确认 }, new { FID = icprModel.FPLANID });
                        }

                        ICPRBILLENTRYDAL.Instance.Update(icprModel);
                    }
                }
                return(JsonResultHelper.ToSuccess("删除完成!"));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex);
                return(JsonResultHelper.ToFailed(ex.Message));
            }
        }
        /// <summary>
        /// 刷新价格政策编号处理
        /// </summary>
        /// <param name="icprbillid"></param>
        /// <param name="entryids"></param>
        /// <returns></returns>
        public List <V_ICPRBILLENTRYMODEL> RefrshPriceNumberList(string icprbillid, List <string> entryids)
        {
            try
            {
                var list = V_ICPRBILLENTRYDAL.Instance.GetByIDList(entryids).ToList();
                foreach (var model in list)
                {
                    TB_PRICEPOLICYModel priceModel = TB_PRICEPOLICYDal.Instance.GetWhere(new { FPRODUCTNUMBER = model.FITEMID }).OrderBy(m => m.FAUDITPRICE).OrderByDescending(m => m.FID).FirstOrDefault();
                    if (priceModel != null)
                    {
                        ICPRBILLENTRYMODEL entryModel = ICPRBILLENTRYDAL.Instance.Get(model.FID);
                        entryModel.FPRICENUMBER = priceModel.FPRICENUMBER;
                        ICPRBILLENTRYDAL.Instance.Update(entryModel);
                    }
                }

                return(GetPurchasePlanEntryList(icprbillid, "3"));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(ex);
                throw ex;
            }
        }
        public string Save(ICSEOUTBILLMODEL ICSEOUTBILL, IEnumerable <ICSEOUTBILLENTRYMODEL> ICSEOUTBILLENTRYList)
        {
            #region 检查
            ICSEOUTBILLMODEL temp = ICSEOUTBILLDAL.Instance.GetWhere(new { FBILLNO = ICSEOUTBILL.FBILLNO }).FirstOrDefault();

            if (temp != null && temp.FID != ICSEOUTBILL.FID)
            {
                return("单据单号重复!");
            }


            //foreach (var item in ICSEOUTBILLENTRYList.GroupBy(i => i.FITEMID + i.FENTRYID))
            //{
            //    if (item.Count() > 1)
            //    {
            //        return "商品资料重复!";

            //    }
            //}

            #endregion

            string FID = ICSEOUTBILL.FID;

            ICSEOUTBILL.FSTATUS = Constant.BILL_FSTATUS.草稿.ToInt();

            if (FID.IsNullOrEmpty())
            {
                if (ICSEOUTBILL.FBILLERID == null)
                {
                    ICSEOUTBILL.FBILLERID = SysVisitor.Instance.UserId;
                }

                ICSEOUTBILL.FBILLDATE   = DateTime.Now;
                ICSEOUTBILL.FCAR_STATUS = 1; // 1:待发布,2:已发布,3:发布失败,4:已确认,5:关闭,6:关闭(改)

                FID = ICSEOUTBILLDAL.Instance.Insert(ICSEOUTBILL);

                if (!FID.IsGuid())
                {
                    return("发货通知保存失败!");
                }
            }
            else
            {
                int status = ICSEOUTBILLDAL.Instance.GetStatus(ICSEOUTBILL.FID);

                if (status == Constant.BILL_FSTATUS.审核通过.ToInt())
                {
                    return("该发货通知已经审核,不允许编辑!");
                }

                if (status == Constant.BILL_FSTATUS.完成.ToInt())
                {
                    return("该发货通知已经完成,不允许编辑!");
                }

                if (status == Constant.BILL_FSTATUS.关闭.ToInt())
                {
                    return("该发货通知已经关闭,不允许编辑!");
                }

                //int result = ICSEOUTBILLDAL.Instance.Update(ICSEOUTBILL);

                int result = ICSEOUTBILLDAL.Instance.UpdateWhatWhere(new
                {
                    FPREMISEID        = ICSEOUTBILL.FPREMISEID,
                    FBRANDID          = ICSEOUTBILL.FBRANDID,
                    FCLIENTID         = ICSEOUTBILL.FCLIENTID,
                    FBILLNO           = ICSEOUTBILL.FBILLNO,
                    FSTATUS           = Constant.BILL_FSTATUS.草稿.ToInt(),
                    FCARNUMBER        = ICSEOUTBILL.FCARNUMBER,
                    FLOADCAPACITY     = ICSEOUTBILL.FLOADCAPACITY,
                    FDELIVERER        = ICSEOUTBILL.FDELIVERER,
                    FDELIVERERTEL     = ICSEOUTBILL.FDELIVERERTEL,
                    FDELIVERERIDNO    = ICSEOUTBILL.FDELIVERERIDNO,
                    FDELIVERERADDR    = ICSEOUTBILL.FDELIVERERADDR,
                    FRECEIVER         = ICSEOUTBILL.FRECEIVER,
                    FRECEIVERTEL      = ICSEOUTBILL.FRECEIVERTEL,
                    FRECEIVERADDR     = ICSEOUTBILL.FRECEIVERADDR,
                    FALLWEIGHT        = ICSEOUTBILL.FALLWEIGHT,
                    FALLVOLUME        = ICSEOUTBILL.FALLVOLUME,
                    FREMARK           = ICSEOUTBILL.FREMARK,
                    FTRANSTYPE        = ICSEOUTBILL.FTRANSTYPE,
                    FTRANSID          = ICSEOUTBILL.FTRANSID,
                    FDELIVERDATE      = ICSEOUTBILL.FDELIVERDATE,
                    FEXPRESSCOMPANYID = ICSEOUTBILL.FEXPRESSCOMPANYID,
                    FPROJECTNAME      = ICSEOUTBILL.FPROJECTNAME,
                    FCENTER_WAREHOUSE = ICSEOUTBILL.FCENTER_WAREHOUSE,
                    FDELIVERY_METHOD  = ICSEOUTBILL.FDELIVERY_METHOD,
                    FPURCHASE_NO      = ICSEOUTBILL.FPURCHASE_NO,
                    FPLANDESC         = ICSEOUTBILL.FPLANDESC,
                    FIS_CONSIGN       = ICSEOUTBILL.FIS_CONSIGN,
                    FBILLING_TYPE     = ICSEOUTBILL.FBILLING_TYPE,
                    FSETTLE_ORG       = ICSEOUTBILL.FSETTLE_ORG,
                    FDELIVERY_REQUIRE = ICSEOUTBILL.FDELIVERY_REQUIRE,
                    FBRAND_DEPART     = ICSEOUTBILL.FBRAND_DEPART,
                }, new
                {
                    FID = ICSEOUTBILL.FID
                });

                if (result <= 0)
                {
                    return("发货通知保存失败!");
                }
            }


            var entrys = ICSEOUTBILLENTRYDAL.Instance.GetWhere(new { FICSEOUTID = FID }).ToList();
            //删除明细
            ICSEOUTBILLENTRYBLL.Instance.DeleteByICSEOUTBILLID(FID);

            foreach (var model in entrys)
            {
                var count = ICSEOUTBILLENTRYList.Where(m => m.FICPRID == model.FICPRID).Count();
                if (count == 0)
                {
                    string             sql       = string.Format("SELECT SUM(FCOMMITQTY*FRATE) FROM V_ICSEOUTBILLENTRY WHERE FICPRID='{0}' and (FGROUP_STATUS is null or FGROUP_STATUS = 0)", model.FICPRID);
                    DataTable          table     = DbUtils.Query(sql);
                    decimal            total     = PublicMethod.GetDecimal(table.Rows[0][0]);
                    ICPRBILLENTRYMODEL icprModel = ICPRBILLENTRYDAL.Instance.Get(model.FICPRID);
                    if (icprModel != null)
                    {
                        icprModel.FLEFTAMOUNT = icprModel.FASKQTY - total;

                        if (icprModel.FLEFTAMOUNT <= 0)
                        {
                            icprModel.FSTATUS = 5;
                        }
                        else
                        {
                            icprModel.FSTATUS = 7;
                        }

                        ICPRBILLENTRYDAL.Instance.Update(icprModel);

                        if (ICPRBILLENTRYDAL.Instance.GetCloseStatus(icprModel.FPLANID) == 0)
                        {
                            ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.关闭 }, new { FID = icprModel.FPLANID });
                        }
                        else
                        {
                            ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.采购确认 }, new { FID = icprModel.FPLANID });
                        }
                    }
                }
            }



            foreach (var item in ICSEOUTBILLENTRYList)
            {
                item.FICSEOUTID = FID;
                string id = ICSEOUTBILLENTRYDAL.Instance.Insert(item);
                LogHelper.WriteLog("herherehrer:" + item.thdbm);

                //var list = ICSEOUTBILLENTRYDAL.Instance.GetWhere(new { FICPRID = item.FICPRID });

                string             sql       = string.Format("SELECT SUM(FCOMMITQTY*FRATE) FROM V_ICSEOUTBILLENTRY WHERE FICPRID='{0}' and (FGROUP_STATUS is null or FGROUP_STATUS = 0)", item.FICPRID);
                DataTable          table     = DbUtils.Query(sql);
                decimal            total     = PublicMethod.GetDecimal(table.Rows[0][0]);
                ICPRBILLENTRYMODEL icprModel = ICPRBILLENTRYDAL.Instance.Get(item.FICPRID);
                if (icprModel != null)
                {
                    icprModel.FLEFTAMOUNT = icprModel.FASKQTY - total;

                    if (icprModel.FLEFTAMOUNT <= 0)
                    {
                        icprModel.FSTATUS = 5;
                    }
                    else
                    {
                        icprModel.FSTATUS = 7;
                    }

                    ICPRBILLENTRYDAL.Instance.Update(icprModel);

                    if (ICPRBILLENTRYDAL.Instance.GetCloseStatus(icprModel.FPLANID) == 0)
                    {
                        ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.关闭 }, new { FID = icprModel.FPLANID });
                    }
                    else
                    {
                        ICPRBILLDAL.Instance.UpdateWhatWhere(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.采购确认 }, new { FID = icprModel.FPLANID });
                    }
                }



                //ICPRBILLENTRYMODEL icprModel = ICPRBILLENTRYDAL.Instance.Get(item.FICPRID);
                //if (icprModel != null)
                //{
                //    if (icprModel.FORDERUNITQTY >= total)
                //    {
                //        icprModel.FLEFTAMOUNT = icprModel.FLEFTAMOUNT - total;
                //    }
                //    else
                //    {
                //        icprModel.FLEFTAMOUNT = 0;
                //    }

                //    ICPRBILLENTRYDAL.Instance.Update(icprModel);
                //}
            }

            return(null);
        }
Exemple #14
0
        private void simpleButton3_Click(object sender, EventArgs e)
        {
            var list = gridControl采购订单明细.DataSource as List <V_ICPOBILLENTRYMODEL>;

            if (list.Count == 0)
            {
                System.Windows.Forms.MessageBox.Show("明细记录数不可为空!");
                return;
            }

            string        brand  = "";
            TB_BrandModel bmodel = comBrand.SelectedItem as TB_BrandModel;

            if (bmodel != null)
            {
                brand = bmodel.FID;
                IniHelper.WriteString(Global.IniUrl, "CONFIG", "FBRANDID", bmodel.FID);
            }
            else
            {
                System.Windows.Forms.MessageBox.Show("品牌不可为空!");
                return;
            }


            if (txt厂家账户.Tag == null)
            {
                System.Windows.Forms.MessageBox.Show("厂家账户不可为空!");
                return;
            }


            if (string.IsNullOrEmpty(model.FBILLNO))
            {
                ICPOBILLMODEL tBill = new ICPOBILLMODEL();
                tBill.FTRANSTYPE  = "0";
                tBill.FID         = "";
                tBill.FBRANDID    = bmodel.FID;
                tBill.FCLIENTID   = txt厂家账户.Tag.ToStr();
                tBill.FDATE       = dateDatetime.DateTime;
                tBill.FBILLNO     = txtBillNO.Text;
                tBill.FBILLERNAME = txtCreater.Text;
                tBill.FBILLER     = txtCreater.Tag.ToStr();
                tBill.FSTATE      = 1;//草稿
                tBill.Fnote       = txtRemarks.Text;

                tBill.FprojectNO = txtProjectNo.Text;
                if (searchDic105.Tag != null)
                {
                    tBill.FPOtype = searchDic105.Tag.ToString();
                }
                if (search价格策略.Tag != null)
                {
                    tBill.Fpricepolicy = search价格策略.Tag.ToString();
                }



                int iTemp = 1;

                List <ICPOBILLENTRYMODEL> listSub = new List <ICPOBILLENTRYMODEL>();
                foreach (var sub in list)
                {
                    sub.FENTRYID = iTemp;

                    if (sub.FPLANID == null)
                    {
                        string strFID = Guid.NewGuid().ToStr();
                        //插入一条icprentry记录
                        ICPRBILLENTRYMODEL tModel = new ICPRBILLENTRYMODEL();
                        tModel.FITEMID = sub.FITEMID;
                        tModel.FUNITID = sub.FUNITID;
                        tModel.FID     = strFID;
                        tModel.FPLANID = strFID;
                        try
                        {
                            tModel.FASKAMOUNT = sub.Famount;
                        }
                        catch
                        {
                        }
                        try
                        {
                            tModel.FASKQTY = sub.FAUDQTY;
                        }
                        catch
                        {
                        }
                        tModel.FSTOREHOUSE   = sub.FstockNO;
                        tModel.FNEEDDATE     = sub.FNEEDDATE == DateTime.MinValue ? DateTime.Now : sub.FNEEDDATE;
                        tModel.FASKQTY       = sub.FASKQTY;
                        tModel.FORDERUNITQTY = (int)sub.FSRCQTY;
                        string strResult = _service.Save_ICPREntry_List(tModel);

                        sub.FPLANID = strResult;
                    }


                    if (listSub.Any(x => x.FITEMID == sub.FITEMID && sub.FCOLORNO == x.FCOLORNO && x.FPRICE == sub.FPRICE))
                    {
                        ICPOBILLENTRYMODEL tSingle = listSub.First(x => x.FITEMID == sub.FITEMID && sub.FCOLORNO == x.FCOLORNO && x.FPRICE == sub.FPRICE);
                        tSingle.FSRCQTY  += sub.FSRCQTY;
                        tSingle.FSRCCOST += sub.FSRCCOST;
                        tSingle.Famount  += sub.Famount;
                        if (!string.IsNullOrEmpty(sub.ICPRBILLENTRYIDS))
                        {
                            tSingle.ICPRBILLENTRYIDS += sub.ICPRBILLENTRYIDS + ";";
                        }
                        tSingle.ICPRBILLENTRYIDS += sub.FPLANID + ";";
                    }
                    else
                    {
                        ICPOBILLENTRYMODEL sub0 = new ICPOBILLENTRYMODEL();
                        sub0.FADVQTY     = 1;
                        sub0.FBATCHNO    = "";
                        sub0.FCOLORNO    = "";
                        sub0.FENTRYID    = sub.FENTRYID;
                        sub0.FICPOBILLID = sub.FICPOBILLID;
                        sub0.FID         = sub.FID;
                        sub0.FNEEDDATE   = sub.FNEEDDATE == DateTime.MinValue ? DateTime.Now : sub.FNEEDDATE;

                        sub0.FPLANID = sub.FPLANID;
                        if (sub0.FPLANID == null)
                        {
                            sub0.FPLANID = "0";
                        }
                        sub0.FPRICE   = sub.FPRICE;
                        sub0.FREMARK  = sub.FREMARK;
                        sub0.FSRCCOST = sub.FSRCCOST;
                        sub0.FSRCQTY  = sub.FSRCQTY;
                        sub0.FSTATE   = sub.FSTATE;
                        sub0.FSTATUS  = sub.FSTATUS;


                        //后面添加的字段
                        sub0.FITEMID      = sub.FITEMID;
                        sub0.FSRCCODE     = sub.FSRCCODE;
                        sub0.FSRCNAME     = sub.FSRCNAME;
                        sub0.FSRCMODEL    = sub.FSRCMODEL;
                        sub0.Flevel       = sub.Flevel;
                        sub0.FstockNO     = sub.FstockNO;
                        sub0.FCOLORNO     = sub.FCOLORNO;
                        sub0.FcontractNO  = sub.FcontractNO;
                        sub0.Funit        = sub.Funit;
                        sub0.FAUDQTY      = sub.FAUDQTY;
                        sub0.FPRICE       = sub.FPRICE;
                        sub0.Famount      = sub.Famount;
                        sub0.FREMARK      = sub.FREMARK;
                        sub0.FERR_MESSAGE = sub.FERR_MESSAGE;
                        sub0.FSRCQTY      = sub.FSRCQTY;
                        if (!string.IsNullOrEmpty(sub.ICPRBILLENTRYIDS))
                        {
                            sub0.ICPRBILLENTRYIDS += sub.ICPRBILLENTRYIDS + ";";
                        }
                        sub0.ICPRBILLENTRYIDS += sub.FPLANID + ";";
                        listSub.Add(sub0);
                    }
                }


                try
                {
                    //string sResult = ICPOBILLBLL.Instance.SaveClient(tBill, listSub);
                    string sResult = _service.SaveICPOBILL(tBill, listSub.ToArray());
                    //string sResult = ICPOBILLBLL.Instance.SaveClient(tBill, listSub.ToArray());
                    System.Windows.Forms.MessageBox.Show(sResult);
                    if (this.SaveAfter != null)
                    {
                        try
                        {
                            SaveAfter(null, null);
                        }
                        catch
                        {
                        }
                    }
                    this.Close();
                }
                catch (Exception ee)
                {
                    System.Windows.Forms.MessageBox.Show(ee.ToString());
                }
            }
            else
            {
                ICPOBILLMODEL tModel = _service.GetSingleOrder(model.FID);


                tModel.FBRANDID    = bmodel.FID;
                tModel.FCLIENTID   = txt厂家账户.Tag.ToStr();
                tModel.FDATE       = dateDatetime.DateTime;
                tModel.FBILLNO     = txtBillNO.Text;
                tModel.FBILLERNAME = txtCreater.Text;
                tModel.FBILLER     = txtCreater.Tag.ToStr();
                tModel.FSTATE      = 1;//草稿
                tModel.Fnote       = txtRemarks.Text;

                tModel.FprojectNO = txtProjectNo.Text;
                if (searchDic105.Tag != null)
                {
                    tModel.FPOtype = searchDic105.Tag.ToString();
                }
                if (search价格策略.Tag != null)
                {
                    tModel.Fpricepolicy = search价格策略.Tag.ToString();
                }


                //tModel.FSTATUS = 3;
                int  iTemp           = 1;
                bool bNeedDate_False = false;
                List <ICPOBILLENTRYMODEL> listSub = new List <ICPOBILLENTRYMODEL>();
                foreach (var sub in list)
                {
                    if (sub.FPLANID == null)
                    {
                        string strFID = Guid.NewGuid().ToStr();
                        //插入一条icprentry记录
                        ICPRBILLENTRYMODEL tRModel = new ICPRBILLENTRYMODEL();
                        tRModel.FITEMID = sub.FITEMID;
                        tRModel.FUNITID = sub.FUNITID;
                        tRModel.FID     = strFID;
                        tRModel.FPLANID = strFID;
                        try
                        {
                            tRModel.FASKAMOUNT = sub.Famount;
                        }
                        catch
                        {
                        }
                        try
                        {
                            tRModel.FASKQTY = sub.FAUDQTY;
                        }
                        catch
                        {
                        }
                        tRModel.FSTOREHOUSE   = sub.FstockNO;
                        tRModel.FNEEDDATE     = sub.FNEEDDATE;
                        tRModel.FASKQTY       = sub.FASKQTY;
                        tRModel.FORDERUNITQTY = (int)sub.FSRCQTY;
                        string strResult = _service.Save_ICPREntry_List(tRModel);

                        sub.FPLANID = strResult;
                    }



                    if (listSub.Any(x => x.FITEMID == sub.FITEMID && sub.FCOLORNO == x.FCOLORNO && x.FPRICE == sub.FPRICE))
                    {
                        ICPOBILLENTRYMODEL tSingle = listSub.First(x => x.FITEMID == sub.FITEMID && sub.FCOLORNO == x.FCOLORNO && x.FPRICE == sub.FPRICE);
                        tSingle.FSRCQTY  += sub.FSRCQTY;
                        tSingle.FSRCCOST += sub.FSRCCOST;
                        tSingle.Famount  += sub.Famount;
                        if (!string.IsNullOrEmpty(sub.ICPRBILLENTRYIDS))
                        {
                            tSingle.ICPRBILLENTRYIDS += sub.ICPRBILLENTRYIDS + ";";
                        }
                        tSingle.ICPRBILLENTRYIDS += sub.FPLANID + ";";
                    }
                    else
                    {
                        sub.FENTRYID = listSub.Count + 1;
                        ICPOBILLENTRYMODEL sub0 = new ICPOBILLENTRYMODEL();
                        sub0.FICPOBILLID = tModel.FID;
                        sub0.FADVQTY     = sub.FADVQTY;
                        sub0.FBATCHNO    = sub.FBATCHNO;
                        sub0.FCOLORNO    = sub.FCOLORNO;
                        sub0.FENTRYID    = sub.FENTRYID;
                        // sub0.FICPOBILLID = sub.FICPOBILLID;
                        sub0.FNEEDDATE = sub.FNEEDDATE;
                        sub0.FPLANID   = sub.FPLANID;
                        if (sub0.FPLANID == null)
                        {
                            sub0.FPLANID = "0";
                        }
                        sub0.FPRICE   = sub.FPRICE;
                        sub0.FREMARK  = sub.FREMARK;
                        sub0.FSRCQTY  = sub.FSRCQTY;
                        sub0.FSRCCOST = sub0.FPRICE * sub0.FSRCQTY;
                        //后面添加的字段
                        sub0.FITEMID          = sub.FITEMID;
                        sub0.FSRCCODE         = sub.FSRCCODE;
                        sub0.FSRCNAME         = sub.FSRCNAME;
                        sub0.FSRCMODEL        = sub.FSRCMODEL;
                        sub0.Flevel           = sub.Flevel;
                        sub0.FstockNO         = sub.FstockNO;
                        sub0.FCOLORNO         = sub.FCOLORNO;
                        sub0.FcontractNO      = sub.FcontractNO;
                        sub0.Funit            = sub.Funit;
                        sub0.FAUDQTY          = sub.FAUDQTY;
                        sub0.FPRICE           = sub.FPRICE;
                        sub0.Famount          = sub.Famount;
                        sub0.FREMARK          = sub.FREMARK;
                        sub0.FERR_MESSAGE     = sub.FERR_MESSAGE;
                        sub0.FNEEDDATE        = DateTime.Now;
                        sub0.FSRCQTY          = sub.FSRCQTY;
                        sub0.ICPRBILLENTRYIDS = sub.ICPRBILLENTRYIDS;
                        //sub0.FSTATUS = 3;
                        listSub.Add(sub0);
                    }
                }

                /*
                 * if (bNeedDate_False == true)
                 * {
                 *  System.Windows.Forms.MessageBox.Show("明细表中到货时间需重新核对!");
                 *  return;
                 * }
                 */
                try
                {
                    //string sResult = ICPOBILLBLL.Instance.SaveClient(tModel, listSub.ToArray());
                    string sResult = _service.SaveICPOBILL(tModel, listSub.ToArray());
                    //string sResult= ICPOBILLBLL.Instance.SaveClient(tModel, listSub);
                    System.Windows.Forms.MessageBox.Show(sResult);
                    if (this.SaveAfter != null)
                    {
                        SaveAfter(null, null);
                    }
                    this.Close();
                }
                catch (Exception ee)
                {
                    System.Windows.Forms.MessageBox.Show(ee.ToString());
                }
            }
            onCalcWeightTotal();
        }
        /// <summary>
        /// 采购确认
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public bool ConfirmSave(string action, List <ICPRBILLENTRYMODEL> data, User loginUser)
        {
            var conn = DbUtils.GetConnection();

            conn.Open();
            var tran = conn.BeginTransaction();

            try
            {
                foreach (ICPRBILLENTRYMODEL model in data)
                {
                    ICPRBILLENTRYMODEL uptModel = ICPRBILLENTRYDAL.Instance.Get(model.FID);


                    if (uptModel != null)
                    {
                        //uptModel.FACCOUNT = model.FACCOUNT;
                        //uptModel.FSTOREHOUSE = model.FSTOREHOUSE;
                        //uptModel.FPOLICY = model.FPOLICY;
                        uptModel.FCOMMITQTY = model.FCOMMITQTY;
                        //uptModel.FTRANSNAME = model.FTRANSNAME;
                        uptModel.FORDERREMARK1 = model.FORDERREMARK1;
                        uptModel.FORDERREMARK2 = model.FORDERREMARK2;

                        if (action == "confirm")
                        {
                            uptModel.FCONFIRM_USER = loginUser.FID;
                            uptModel.FCONFIRM_TIME = DateTime.Now;
                            uptModel.FSTATUS       = (int)Constant.ICPRBILL_FSTATUS.采购确认;
                        }
                        else if (action == "unconfirm")
                        {
                            var count = ICSEOUTBILLENTRYDAL.Instance.GetWhere(new { FICPRID = uptModel.FID }).ToList();
                            if (count.Count > 0)
                            {
                                continue;
                            }
                            uptModel.FSTATUS = (int)Constant.ICPRBILL_FSTATUS.审核通过;
                        }

                        LogHelper.WriteLog(JsonHelper.ToJson(uptModel));

                        DbUtils.Update(uptModel, conn, tran);
                    }
                }
                tran.Commit();
                conn.Close();

                var entry = ICPRBILLENTRYDAL.Instance.Get(data.First().FID);

                if (action == "unconfirm")
                {
                    DbUtils.UpdateWhatWhere <ICPRBILLMODEL>(new { FSTATUS = (int)Constant.ICPRBILL_FSTATUS.审核通过 }, new { FID = entry.FPLANID });
                }
                else
                {
                    if (ICPRBILLENTRYDAL.Instance.GetConfirmStatus(entry.FPLANID) == 0)
                    {
                    }
                    UpdateConfirmTime(entry.FID);
                    //LogHelper.WriteLog("Hello");
                }



                return(true);
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("ConfirmError");
                LogHelper.WriteLog(ex);
                tran.Rollback();
                conn.Close();
                throw ex;
            }
        }