Example #1
0
        private void GetProdBomQty(WIPItemNeed wipItemNeed)
        {
            string key = "";

            if (wipItemNeed.ParentItemNeed != null)
                key = String.Format("{0}_{1}", wipItemNeed.ParentItemNeed.Item.ItemNo, wipItemNeed.Item.ItemNo);
            else
                key = wipItemNeed.Item.ItemNo;

            if (dictProdBom.ContainsKey(key))
            {
                XPCollection<WIPProdBom> wipProdBoms = dictProdBom[key];

                for (int i = 0; i < wipProdBoms.Count; i++)
                {
                    WIPProdBom wipProdBom = wipProdBoms[i];

                    if (wipProdBom.BalQty > 0 && wipItemNeed.LackQty > 0)
                    {
                        float tmpQty;

                        if (wipProdBom.BalQty > wipItemNeed.LackQty)
                            tmpQty = wipItemNeed.LackQty;
                        else
                            tmpQty = wipProdBom.BalQty;

                        WIPItemNeedDetail needDetail = new WIPItemNeedDetail(uow, wipItemNeed);
                        needDetail.WIPProdBom = wipProdBom;
                        needDetail.UsedQty = tmpQty;
                        needDetail.NeedDetailType = WIPItemNeedDetail.DetailType.Production;

                        wipItemNeed.WIPProdBomQty = wipItemNeed.WIPProdBomQty + tmpQty;
                        wipItemNeed.calcSubItemNeedQty();
                        wipItemNeed.Save();
                        wipProdBom.UsedQty = wipProdBom.UsedQty + tmpQty;
                        wipProdBom.Save();
                    }
                }
            }
        }
Example #2
0
        private void GetProdRouteQty(WIPItemNeed wipItemNeed)
        {
            string key = String.Format("{0}_{1}", wipItemNeed.Item.ItemNo, wipItemNeed.RouteLine.WorkOper.Name);

            if (dictProdRoute.ContainsKey(key))
            {
                XPCollection<WIPProdRoute> wipProdRoutes = dictProdRoute[key];

                for (int i = 0; i < wipProdRoutes.Count; i++)
                {
                    WIPProdRoute wipProdRoute = wipProdRoutes[i];

                    if (wipProdRoute.BalQty > 0 && wipItemNeed.LackQty > 0)
                    {
                        float tmpQty;

                        if (wipProdRoute.BalQty > wipItemNeed.LackQty)
                            tmpQty = wipItemNeed.LackQty;
                        else
                            tmpQty = wipProdRoute.BalQty;

                        WIPItemNeedDetail needDetail = new WIPItemNeedDetail(uow, wipItemNeed);
                        needDetail.WIPProdRoute = wipProdRoute;
                        needDetail.UsedQty = tmpQty;
                        needDetail.NeedDetailType = WIPItemNeedDetail.DetailType.Production;

                        wipItemNeed.WIPQty = wipItemNeed.WIPQty + tmpQty;
                        wipItemNeed.calcSubItemNeedQty();
                        wipItemNeed.Save();
                        wipProdRoute.UsedQty = wipProdRoute.UsedQty + tmpQty;
                        wipProdRoute.Save();
                    }
                }
            }
        }
Example #3
0
        private void GetPoQty(WIPItemNeed wipItemNeed)
        {
            string key = wipItemNeed.Item.ItemNo;

            if (dictPoLine.ContainsKey(key))
            {
                XPCollection<WIPPurchOrderLine> wipPoLines = dictPoLine[key];

                #region // Get WHQAQty - PurchLine QA Qty

                foreach (WIPPurchOrderLine wipPoLine in wipPoLines)
                {
                    if (wipPoLine.QABalQty > 0 && wipItemNeed.LackQty > 0)
                    {
                        float tmpQty;

                        if (wipPoLine.QABalQty > wipItemNeed.LackQty)
                            tmpQty = wipItemNeed.LackQty;
                        else
                            tmpQty = wipPoLine.QABalQty;

                        WIPItemNeedDetail needDetail = new WIPItemNeedDetail(uow, wipItemNeed);
                        needDetail.WIPPurchOrderLine = wipPoLine;
                        needDetail.UsedQty = tmpQty;
                        needDetail.NeedDetailType = WIPItemNeedDetail.DetailType.QA;

                        wipItemNeed.WHQAQty = wipItemNeed.WHQAQty + tmpQty;
                        wipItemNeed.calcSubItemNeedQty();
                        wipItemNeed.Save();
                        wipPoLine.QAUsedQty = wipPoLine.QAUsedQty + tmpQty;
                        wipPoLine.Save();
                    }
                }

                #endregion

                #region // Get WIPQty - PurchLine ordered qty
                foreach (WIPPurchOrderLine wipPoLine in wipPoLines)
                {
                    if (wipPoLine.BalQty > 0 && wipItemNeed.LackQty > 0)
                    {
                        float tmpQty;

                        if (wipPoLine.BalQty > wipItemNeed.LackQty)
                            tmpQty = wipItemNeed.LackQty;
                        else
                            tmpQty = wipPoLine.BalQty;

                        WIPItemNeedDetail needDetail = new WIPItemNeedDetail(uow, wipItemNeed);
                        needDetail.WIPPurchOrderLine = wipPoLine;
                        needDetail.Projection = wipPoLine.GetProjection(tmpQty);

                        needDetail.UsedQty = tmpQty;
                        needDetail.NeedDetailType = WIPItemNeedDetail.DetailType.Purch;

                        wipItemNeed.WIPQty = wipItemNeed.WIPQty + tmpQty;
                        wipItemNeed.calcSubItemNeedQty();
                        wipItemNeed.Save();
                        wipPoLine.UsedQty = wipPoLine.UsedQty + tmpQty;
                        wipPoLine.Save();
                    }
                }
                #endregion
            }
        }