예제 #1
0
 private void ProcessDetail(IList <string> entStrList, CombineSplit csEnt)
 {
     if (entStrList != null && entStrList.Count > 0)
     {
         StockInfo siEnt = new StockInfo();
         for (int j = 0; j < entStrList.Count; j++)
         {
             //组装拆分详细创建
             Newtonsoft.Json.Linq.JObject objL   = JsonHelper.GetObject <Newtonsoft.Json.Linq.JObject>(entStrList[j]);
             CombineSplitDetail           csdEnt = new CombineSplitDetail();
             csdEnt.CombineSplitId  = csEnt.Id;
             csdEnt.ProductId       = objL.Value <string>("ProductId");
             csdEnt.ProductCode     = objL.Value <string>("ProductCode");
             csdEnt.ProductName     = objL.Value <string>("ProductName");
             csdEnt.ProductPcn      = objL.Value <string>("ProductPcn");
             csdEnt.StockQuantity   = objL.Value <int>("StockQuantity");
             csdEnt.ProductQuantity = objL.Value <int>("ProductQuantity");
             csdEnt.DoCreate();
             //更新库存
             siEnts = StockInfo.FindAllByProperties("ProductId", csdEnt.ProductId, "WarehouseId", csEnt.WarehouseId);
             if (siEnts.Count > 0)//如果库存信息存在
             {
                 siEnt = siEnts[0];
                 if (csEnt.OperateType == "组装")
                 {
                     siEnt.StockQuantity -= csdEnt.ProductQuantity;
                 }
                 else
                 {
                     siEnt.StockQuantity += csdEnt.ProductQuantity;
                 }
                 siEnt.DoUpdate();
             }
         }
         siEnts = StockInfo.FindAllByProperties("ProductId", csEnt.ProductId, "WarehouseId", csEnt.WarehouseId);
         if (siEnts.Count > 0)
         {
             siEnt = siEnts[0];
             if (csEnt.OperateType == "组装")
             {
                 siEnt.StockQuantity += csEnt.ProductQuantity;
             }
             else
             {
                 siEnt.StockQuantity -= csEnt.ProductQuantity;
             }
             siEnt.DoUpdate();
         }
     }
 }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            op   = RequestData.Get <string>("op");
            id   = RequestData.Get <string>("id");
            type = RequestData.Get <string>("type");
            ent  = StockCheck.Find(id);
            switch (RequestActionString)
            {
            case "WorkFlowEnd":
                ent.WorkFlowState = RequestData.Get <string>("state");
                ent.ExamineResult = RequestData.Get <string>("ApprovalState");
                ent.State         = "已结束";
                ent.DoUpdate();
                IList <StockCheckDetail> scdEnts = StockCheckDetail.FindAllByProperty("StockCheckId", id);
                foreach (StockCheckDetail scdEnt in scdEnts)
                {
                    if (scdEnt.StockCheckResult != "正常")
                    {
                        scdEnt.StockCheckState = "盘点结束";
                        scdEnt.DoUpdate();
                    }
                }
                if (ent.ExamineResult == "同意")
                {
                    foreach (StockCheckDetail scdEnt in scdEnts)
                    {
                        if (scdEnt.StockCheckResult != "正常")    //创建库存变更日志  并更改库存
                        {
                            StockLog slEnt = new StockLog();
                            slEnt.InOrOutDetailId = scdEnt.Id;
                            StockCheck scEnt = StockCheck.Find(scdEnt.StockCheckId);
                            slEnt.InOrOutBillNo = scEnt.StockCheckNo;
                            slEnt.OperateType   = "库存盘点";
                            slEnt.WarehouseId   = scEnt.WarehouseId;
                            slEnt.WarehouseName = scEnt.WarehouseName;
                            slEnt.StockQuantity = scdEnt.StockQuantity;
                            slEnt.Quantity      = scdEnt.StockCheckQuantity - scdEnt.StockQuantity;
                            slEnt.ProductId     = scdEnt.ProductId;
                            Product pEnt = Product.Find(scdEnt.ProductId);
                            slEnt.ProductName = pEnt.Name;
                            slEnt.ProductCode = pEnt.Code;
                            slEnt.ProductIsbn = pEnt.Isbn;
                            slEnt.ProductPcn  = pEnt.Pcn;
                            slEnt.CreateId    = UserInfo.UserID;
                            slEnt.CreateName  = UserInfo.Name;
                            slEnt.CreateTime  = System.DateTime.Now;
                            slEnt.DoCreate();
                            IList <StockInfo> siEnts = StockInfo.FindAllByProperties("ProductId", scdEnt.ProductId, "WarehouseId", ent.WarehouseId);
                            if (siEnts.Count > 0)
                            {
                                siEnts[0].StockQuantity = scdEnt.StockCheckQuantity;
                                siEnts[0].DoUpdate();
                            }
                        }
                    }
                }
                break;

            default:
                DoSelect();
                break;
            }
            if (op != "c" && op != "cs")
            {
                if (!String.IsNullOrEmpty(id))
                {
                    SetFormData(ent);
                }
            }
        }
예제 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            op = RequestData.Get <string>("op");
            id = RequestData.Get <string>("id");
            switch (RequestActionString)
            {
            case "IsIsbn":
                string          val     = RequestData.Get <string>("Value");
                IList <Product> proEnts = Product.FindAll("from Product where Isbn='" + val + "'");
                if (proEnts.Count > 0)
                {
                    PageState.Add("IsIsbn", true);
                }
                else
                {
                    PageState.Add("IsIsbn", false);
                }
                break;

            case "GetPackageInfo":
                string Isbn = RequestData.Get <string>("Isbn");
                sql = "select * from SHHG_AimExamine..Products where FirstSkinIsbn='" + Isbn + "' and FirstSkinCapacity is not null";
                IList <EasyDictionary> dics = DataHelper.QueryDictList(sql);
                if (dics.Count > 0)
                {
                    PageState.Add("ProductIsbn", dics[0].Get <string>("Isbn").ToUpper());
                    PageState.Add("ProductQuan", dics[0].Get <int>("FirstSkinCapacity"));
                }
                sql  = "select * from SHHG_AimExamine..Products where SecondSkinIsbn='" + Isbn + "' and SecondSkinCapacity is not null";
                dics = DataHelper.QueryDictList(sql);
                if (dics.Count > 0)
                {
                    PageState.Add("ProductIsbn", dics[0].Get <string>("Isbn").ToUpper());
                    PageState.Add("ProductQuan", dics[0].Get <int>("SecondSkinCapacity"));
                }
                break;

            case "ScanSkin":    //判断包装编号是否存在
                string       skinNo = RequestData.Get <string>("SkinNo");
                IList <Skin> sEnts  = Skin.FindAll("from Skin where SkinNo='" + skinNo + "'");
                if (sEnts.Count > 0)    //如果该包装的记录不存在
                {
                    PageState.Add("SkinExist", true);
                }
                else
                {
                    PageState.Add("SkinExist", false);
                }
                break;

            case "ScanCompressor":
                string             seriesNo = RequestData.Get <string>("SeriesNo");
                IList <Compressor> cEnts    = Compressor.FindAll("from Compressor where SeriesNo='" + seriesNo + "'");
                if (cEnts.Count == 0)
                {
                    PageState.Add("CompressorExist", false);
                }
                else
                {
                    PageState.Add("CompressorExist", true);
                }
                break;

            case "InWarehouse":
                InWarehouse    iwEnt      = InWarehouse.TryFind(id);
                IList <string> entStrList = RequestData.GetList <string>("data");
                if (entStrList != null && entStrList.Count > 0)
                {
                    for (int j = 0; j < entStrList.Count; j++)
                    {
                        Newtonsoft.Json.Linq.JObject objL = JsonHelper.GetObject <Newtonsoft.Json.Linq.JObject>(entStrList[j]);
                        if (Convert.ToInt32(objL.Value <string>("ActuallyQuantity")) > 0)    //只有输入了入库数量才会增加实际入库记录
                        {
                            InWarehouseDetailDetail iwddEnt = new InWarehouseDetailDetail(); //新建一个实际入库详细信息
                            if (iwEnt.InWarehouseType == "采购入库")
                            {
                                iwddEnt.InWarehouseDetailId   = objL.Value <string>("Id");
                                iwddEnt.PurchaseOrderDetailId = objL.Value <string>("PurchaseOrderDetailId");
                            }
                            else    //其他入库的情形
                            {
                                iwddEnt.OtherInWarehouseDetailId = objL.Value <string>("Id");
                            }
                            iwddEnt.Quantity  = Convert.ToInt32(objL.Value <string>("ActuallyQuantity"));
                            iwddEnt.ProductId = objL.Value <string>("ProductId");
                            iwddEnt.Remark    = objL.Value <string>("Remark");
                            iwddEnt.DoCreate();

                            StockLog slEnt = new StockLog();    //创建库存变更日志
                            slEnt.InOrOutDetailId = objL.Value <string>("Id");
                            slEnt.InOrOutBillNo   = iwEnt.InWarehouseNo;
                            slEnt.OperateType     = "产品入库";
                            slEnt.WarehouseId     = iwEnt.WarehouseId;
                            slEnt.WarehouseName   = iwEnt.WarehouseName;
                            IList <StockInfo> siEnts = StockInfo.FindAllByProperties(StockInfo.Prop_ProductId, objL.Value <string>("ProductId"), StockInfo.Prop_WarehouseId, iwEnt.WarehouseId);
                            if (siEnts.Count > 0)
                            {
                                slEnt.StockQuantity = siEnts[0].StockQuantity;
                            }
                            slEnt.Quantity  = Convert.ToInt32(objL.Value <string>("ActuallyQuantity"));
                            slEnt.ProductId = objL.Value <string>("ProductId");
                            Product pEnt = Product.Find(objL.Value <string>("ProductId"));
                            slEnt.ProductName = pEnt.Name;
                            slEnt.ProductCode = pEnt.Code;
                            slEnt.ProductIsbn = pEnt.Isbn;
                            slEnt.ProductPcn  = pEnt.Pcn;
                            slEnt.DoCreate();

                            ProcessSkin(objL.Value <string>("SkinArray"), objL.Value <string>("ISBN"), iwEnt.Id);
                            ProcessCompressor(objL.Value <string>("SeriesArray"), objL.Value <string>("ISBN"), iwEnt.Id);
                            processremark(objL.Value <string>("Remark"), pEnt, iwEnt.Id);

                            //如果实际入库数量和未入库的数量相等 则入库状态为已入库
                            if (objL.Value <string>("ActuallyQuantity") == objL.Value <string>("NoIn"))
                            {
                                if (iwEnt.InWarehouseType == "采购入库")
                                {
                                    InWarehouseDetail iwdEnt = InWarehouseDetail.Find(objL.Value <string>("Id"));
                                    if (!string.IsNullOrEmpty(objL.Value <string>("SkinArray")))
                                    {
                                        iwdEnt.SkinArray = objL.Value <string>("SkinArray").ToString();
                                    }
                                    if (!string.IsNullOrEmpty(objL.Value <string>("SeriesArray")))
                                    {
                                        iwdEnt.SeriesArray = objL.Value <string>("SeriesArray").ToString();
                                    }
                                    iwdEnt.InWarehouseState = "已入库";
                                    iwdEnt.DoUpdate();
                                }
                                else
                                {
                                    OtherInWarehouseDetail oiwdEnt = OtherInWarehouseDetail.Find(objL.Value <string>("Id"));
                                    oiwdEnt.InWarehouseState = "已入库";
                                    if (!string.IsNullOrEmpty(objL.Value <string>("SkinArray")))
                                    {
                                        oiwdEnt.SkinArray = objL.Value <string>("SkinArray").ToString();
                                    }
                                    if (!string.IsNullOrEmpty(objL.Value <string>("SeriesArray")))
                                    {
                                        oiwdEnt.SeriesArray = objL.Value <string>("SeriesArray").ToString();
                                    }
                                    oiwdEnt.DoUpdate();
                                }
                            }
                            else    //如果未入库的数量不等于现在输入的数量。只更新包装和压缩机序列号集合
                            {
                                if (iwEnt.InWarehouseType == "采购入库")
                                {
                                    InWarehouseDetail iwdEnt = InWarehouseDetail.Find(objL.Value <string>("Id"));
                                    iwdEnt.Remark = objL.Value <string>("Remark");
                                    if (!string.IsNullOrEmpty(objL.Value <string>("SkinArray")))
                                    {
                                        iwdEnt.SkinArray = objL.Value <string>("SkinArray").ToString();
                                    }
                                    if (!string.IsNullOrEmpty(objL.Value <string>("SeriesArray")))
                                    {
                                        iwdEnt.SeriesArray = objL.Value <string>("SeriesArray").ToString();
                                    }
                                    iwdEnt.DoUpdate();
                                }
                                else
                                {
                                    OtherInWarehouseDetail oiwdEnt = OtherInWarehouseDetail.Find(objL.Value <string>("Id"));
                                    oiwdEnt.Remark = objL.Value <string>("Remark");
                                    if (!string.IsNullOrEmpty(objL.Value <string>("SkinArray")))
                                    {
                                        oiwdEnt.SkinArray = objL.Value <string>("SkinArray").ToString();
                                    }
                                    if (!string.IsNullOrEmpty(objL.Value <string>("SeriesArray")))
                                    {
                                        oiwdEnt.SeriesArray = objL.Value <string>("SeriesArray").ToString();
                                    }
                                    oiwdEnt.DoUpdate();
                                }
                            }
                            //修改库存
                            InStorage(iwddEnt.ProductId, iwddEnt.Quantity.Value, iwEnt.WarehouseId);
                        }
                    }
                }
                ProcessInWarehouse(iwEnt);
                if (iwEnt.InWarehouseType == "采购入库")    //处理采购单和采购单详细
                {
                    ProcessPurchaseOrderAndDetail(iwEnt);
                }
                break;

            default:
                DoSelect();
                break;
            }
        }
예제 #4
0
        string type = String.Empty; // 对象类型

        #endregion

        #region ASP.NET 事件

        protected void Page_Load(object sender, EventArgs e)
        {
            switch (this.RequestAction)
            {
            case RequestActionEnum.Insert:
            case RequestActionEnum.Create:

                //添加库存数量
                string WarehouseId              = RequestData.Get <string>("WarehouseId");
                string WarehouseName            = RequestData.Get <string>("WarehouseName");
                string json                     = RequestData.Get <string>("json");
                Dictionary <string, object> dic = null;

                json = json.Substring(1, json.Length - 2);
                string[] objarr = json.Replace("},{", "#").Split('#');

                for (int i = 0; i < objarr.Length; i++)
                {
                    if (objarr.Length == 1)
                    {
                        dic = FromJson(objarr[i]) as Dictionary <string, object>;
                    }
                    else
                    {
                        if (i == 0)
                        {
                            dic = FromJson(objarr[i] + "}") as Dictionary <string, object>;
                        }
                        else if (i == objarr.Length - 1)
                        {
                            dic = FromJson("{" + objarr[i]) as Dictionary <string, object>;
                        }
                        else
                        {
                            dic = FromJson("{" + objarr[i] + "}") as Dictionary <string, object>;
                        }
                    }
                    if (dic != null)
                    {
                        StockInfo stoinfo = StockInfo.FindAllByProperties("ProductId", dic["Id"], "WarehouseId", WarehouseId).FirstOrDefault <StockInfo>();
                        if (stoinfo != null)
                        {
                            stoinfo.StockQuantity = (stoinfo.StockQuantity == null ? 0 : stoinfo.StockQuantity) + (dic.ContainsKey("Count") ? Convert.ToInt32(dic["Count"]) : 0);
                            stoinfo.DoUpdate();
                        }
                        else
                        {
                            stoinfo = new StockInfo
                            {
                                ProductCode   = dic["Code"] + "",
                                ProductName   = dic["Name"] + "",
                                ProductId     = dic["Id"] + "",
                                WarehouseId   = WarehouseId,
                                WarehouseName = WarehouseName,
                                StockQuantity = dic.ContainsKey("Count") ? Convert.ToInt32(dic["Count"]) : 0
                            };
                            stoinfo.DoCreate();
                        }
                    }
                }

                break;
            }
        }
예제 #5
0
        /// <summary>
        /// 更新库存
        /// </summary>
        /// <param name="childjson">出库单出库商品json</param>
        private void UpdateStockInfo(IList <string> strList, DeliveryOrder deorder)
        {
            string db       = ConfigurationManager.AppSettings["ExamineDB"];
            string strguids = "";

            Dictionary <string, object> dic = null;

            StockInfo stoinfo = null;

            for (int i = 0; i < strList.Count; i++)
            {
                dic = FromJson(strList[i]) as Dictionary <string, object>;

                if (dic != null)
                {
                    //记录日志begin
                    if (dic.ContainsKey("SmCount") && dic["SmCount"] + "" != "")
                    {
                        StockLog slEnt = new StockLog();//创建库存变更日志
                        slEnt.InOrOutDetailId = dic["Id"] + "";
                        slEnt.InOrOutBillNo   = deorder.Number;
                        slEnt.OperateType     = "产品出库";
                        slEnt.WarehouseId     = deorder.WarehouseId;
                        slEnt.WarehouseName   = deorder.WarehouseName;
                        IList <StockInfo> siEnts = StockInfo.FindAllByProperties(StockInfo.Prop_ProductId, dic["ProductId"], StockInfo.Prop_WarehouseId, deorder.WarehouseId);
                        if (siEnts.Count > 0)
                        {
                            slEnt.StockQuantity = siEnts[0].StockQuantity;
                        }
                        slEnt.Quantity  = Convert.ToInt32(dic["SmCount"]);
                        slEnt.ProductId = dic["ProductId"] + "";
                        Product pEnt = Product.Find(dic["ProductId"]);
                        slEnt.ProductCode = pEnt.Code;
                        slEnt.ProductName = pEnt.Name;
                        slEnt.ProductIsbn = pEnt.Isbn;
                        slEnt.ProductPcn  = pEnt.Pcn;
                        slEnt.DoCreate();
                    }
                    //记录日志end

                    //更新唯一编号的状态
                    if (dic.ContainsKey("Guids") && dic["Guids"] + "" != "")
                    {
                        string guids = dic["Guids"] + "";
                        guids    = guids.Substring(0, guids.Length - 1);
                        strguids = "'" + guids.Replace(",", "','") + "'";

                        DataHelper.ExecSql("update " + db + "..Compressor set [state]='已出库',CustomerId='" + deorder.CId + "',DeliveryOrderId='" + deorder.Id + "' where SeriesNo in (" + strguids + ")");
                    }
                    //更新库存 OutCount
                    stoinfo = StockInfo.FindAllByProperties("ProductId", dic["ProductId"], "WarehouseId", deorder.WarehouseId).FirstOrDefault <StockInfo>();
                    if (stoinfo != null)
                    {
                        //SmCount 本次出库数量
                        stoinfo.StockQuantity -= (dic.ContainsKey("SmCount") && dic["SmCount"] + "" != "" ? Convert.ToInt32(dic["SmCount"]) : 0);
                        stoinfo.DoUpdate();
                    }
                    else
                    {
                        stoinfo = new StockInfo
                        {
                            ProductCode   = dic["Code"] + "",
                            ProductId     = dic["ProductId"] + "",
                            ProductName   = dic["Name"] + "",
                            StockQuantity = -(dic.ContainsKey("SmCount") && dic["SmCount"] + "" != "" ? Convert.ToInt32(dic["SmCount"]) : 0),
                            WarehouseId   = deorder.WarehouseId,
                            WarehouseName = deorder.WarehouseName
                        };
                        stoinfo.DoCreate();
                    }
                }
            }
        }