public SFT_WIP GetSFT_WIPofProducts(string product)
        {
            SFT_WIP sFT_WIP = new SFT_WIP();

            try
            {
                StringBuilder stringBuilder = new StringBuilder();
                stringBuilder.Append(@"select  sum(LOTSIZE)  from LOT a 
left join MODETAIL b on CMOID = ID
where  ERP_OPSEQ = '0010' and a.STATUS = '0' and b.STATUS !='99' and b.STATUS !='100' 
 ");
                stringBuilder.Append(" and a.ITEMID =  '" + product + "'");
                sqlSFT sqlERPCON = new sqlSFT();
                var    Temp      = sqlERPCON.sqlExecuteScalarString(stringBuilder.ToString());
                if (Temp != null && Temp != "")
                {
                    sFT_WIP.MQC_In_Available = double.Parse(Temp.ToString());
                }
                else
                {
                    sFT_WIP.MQC_In_Available = 0;
                }

                stringBuilder = new StringBuilder();
                stringBuilder.Append(@"select  sum(LOTSIZE)  from LOT a 
left join MODETAIL b on CMOID = ID
where  ERP_OPSEQ = '0010' and a.STATUS = '50' and b.STATUS !='99' and b.STATUS !='100' 
 ");
                stringBuilder.Append(" and a.ITEMID =  '" + product + "'");
                //  sqlERPCON sqlERPCON = new sqlERPCON();
                Temp = sqlERPCON.sqlExecuteScalarString(stringBuilder.ToString());
                if (Temp != null && Temp != "")
                {
                    sFT_WIP.MQC_Out_Available = double.Parse(Temp.ToString());
                }
                else
                {
                    sFT_WIP.MQC_Out_Available = 0;
                }

                stringBuilder = new StringBuilder();
                stringBuilder.Append(@"select  sum(LOTSIZE)  from LOT a 
left join MODETAIL b on CMOID = ID
where  ERP_OPSEQ = '0020' and a.STATUS = '0' and b.STATUS !='99' and b.STATUS !='100'
 ");
                stringBuilder.Append(" and a.ITEMID =  '" + product + "'");
                //  sqlERPCON sqlERPCON = new sqlERPCON();
                Temp = sqlERPCON.sqlExecuteScalarString(stringBuilder.ToString());
                if (Temp != null && Temp != "")
                {
                    sFT_WIP.PQC_In_Available = double.Parse(Temp.ToString());
                }
                else
                {
                    sFT_WIP.PQC_In_Available = 0;
                }

                stringBuilder = new StringBuilder();
                stringBuilder.Append(@"select  sum(LOTSIZE)  from LOT a 
left join MODETAIL b on CMOID = ID
where  ERP_OPSEQ = '0020' and a.STATUS = '50' and b.STATUS !='99' and b.STATUS !='100'
 ");
                stringBuilder.Append(" and a.ITEMID =  '" + product + "'");
                //  sqlERPCON sqlERPCON = new sqlERPCON();
                Temp = sqlERPCON.sqlExecuteScalarString(stringBuilder.ToString());
                if (Temp != null && Temp != "")
                {
                    sFT_WIP.PQC_Out_Available = double.Parse(Temp.ToString());
                }
                else
                {
                    sFT_WIP.PQC_Out_Available = 0;
                }

                stringBuilder = new StringBuilder();
                stringBuilder.Append(@"select  sum(LOTSIZE)  from LOT a 
left join MODETAIL b on CMOID = ID
where  ERP_OPSEQ = '0020' and a.STATUS = '130' and b.STATUS !='99' and b.STATUS !='100' 
 ");
                stringBuilder.Append(" and a.ITEMID =  '" + product + "'");
                //  sqlERPCON sqlERPCON = new sqlERPCON();
                Temp = sqlERPCON.sqlExecuteScalarString(stringBuilder.ToString());
                if (Temp != null && Temp != "")
                {
                    sFT_WIP.StockIntoWH = double.Parse(Temp.ToString());
                }
                else
                {
                    sFT_WIP.StockIntoWH = 0;
                }
            }
            catch (Exception ex)
            {
                SystemLog.Output(SystemLog.MSG_TYPE.Err, "GetSFT_WIPofProducts (string product)", ex.Message);
                return(null);
            }
            return(sFT_WIP);
        }
Ejemplo n.º 2
0
        public Dictionary <string, PlanningItem> GetPlanningReport(List <OrderVariable> orders)
        {
            Dictionary <string, PlanningItem> keyValuePairs = new Dictionary <string, PlanningItem>();
            List <List <OrderVariable> >      listOders     = new List <List <OrderVariable> >();

            listOders = ListOrdervariables(orders);
            List <SettingBOM>         listSettingBoms        = LoadingSettingBOMs();
            List <SettingManufacture> lisSettingManufactures = LoadingSettingManufacture();
            SFT_WIP sFT_WIP = new SFT_WIP();

            try
            {
                foreach (var order in listOders)
                {
                    PlanningItem pLanning = new PlanningItem();
                    pLanning.KeyProduct = order[0].ProductName;
                    // base on product to defind Dept
                    pLanning.Client = "";
                    // Define Shiment Plan of production
                    pLanning.shipmentPlans    = new List <ShipmentPlan>();
                    pLanning.needProduceQties = new List <NeedProduceQty>();
                    foreach (var or in order)
                    {
                        ShipmentPlan shipment = new ShipmentPlan();
                        shipment.ClientRequestDate = or.ClientRequestDate;
                        shipment.DeliveryPlanQty   = or.ClientOrderQty;
                        pLanning.shipmentPlans.Add(shipment);

                        NeedProduceQty need = new NeedProduceQty();
                        need.ClientRequestDate = or.ClientRequestDate;
                        need.NeedQty           = or.ClientOrderQty;
                        need.RemainDay         = (or.ClientRequestDate - DateTime.Now.Date).Days;
                        need.NeedQtyPerDay     = need.NeedQty / need.RemainDay;
                        pLanning.needProduceQties.Add(need);
                    }
                    pLanning.TotalQty = pLanning.shipmentPlans.Select(d => d.DeliveryPlanQty).Sum();
                    pLanning._bom     = new BOM();
                    List <string> ListHENN = ListHENNofProduct(pLanning.KeyProduct);
                    if (ListHENN != null)
                    {
                        pLanning._bom.HEN = ListHENN[0];
                    }
                    else
                    {
                        pLanning._bom.HEN = "";
                    }
                    var _bom = listSettingBoms.Where(d => d.ProductNo == pLanning.KeyProduct).ToList();
                    if (_bom.Count > 0)
                    {
                        pLanning._bom.QtyUnit = _bom[0].QtyInBox;
                        pLanning._bom.ToolQty = _bom[0].QtyTool;
                    }
                    pLanning.wip           = new Wip();
                    pLanning.wip.Warehouse = StockOfProduct(order[0].Product);
                    pLanning.TotalShortage = pLanning.TotalQty - pLanning.wip.Warehouse;

                    pLanning.production = new Production();
                    var _productItem = lisSettingManufactures.Where(d => d.ProductNo == pLanning.KeyProduct).ToList();
                    if (_productItem.Count > 0)
                    {
                        pLanning.production.PeopleQty     = _productItem[0].WorkerQty;
                        pLanning.production.targetPeople  = _productItem[0].Workertarget;
                        pLanning.production.ProductionQty = pLanning.production.PeopleQty * pLanning.production.targetPeople;
                    }
                    sFT_WIP = GetSFT_WIPofProducts(order[0].Product);

                    pLanning.wip.MQCQty       = sFT_WIP.MQC_Out_Available;
                    pLanning.wip.PQCQty       = sFT_WIP.PQC_In_Available + sFT_WIP.PQC_Out_Available;
                    pLanning.wip.StockInWHQTy = sFT_WIP.StockIntoWH;
                    pLanning.wip.TotalInWip   = pLanning.wip.MQCQty + pLanning.wip.PQCQty + pLanning.wip.StockInWHQTy + pLanning.wip.Warehouse;
                    keyValuePairs.Add(pLanning.KeyProduct, pLanning);
                }
            }
            catch (Exception)
            {
                return(null);
            }
            return(keyValuePairs);
        }
        public Dictionary <string, PlanningItem> GetPlanningReport(List <OrderVariable> orders)
        {
            Dictionary <string, PlanningItem> keyValuePairs = new Dictionary <string, PlanningItem>();
            List <List <OrderVariable> >      listOders     = new List <List <OrderVariable> >();

            listOders = ListOrdervariables(orders);
            List <SettingBOM>         listSettingBoms        = LoadingSettingBOMs();
            List <SettingManufacture> lisSettingManufactures = LoadingSettingManufacture();
            SFT_WIP sFT_WIP = new SFT_WIP();

            try
            {
                foreach (var order in listOders)
                {
                    PlanningItem pLanning = new PlanningItem();
                    pLanning.KeyProduct = order[0].Product;
                    // base on product to defind Dept

                    if (order[0].Product.Contains("BMH"))
                    {
                        pLanning.Client = "MH";
                    }
                    else
                    {
                        pLanning.Client = order[0].Product.Replace(order[0].ProductName, "").Substring(1);
                    }
                    // Define Shiment Plan of production
                    pLanning.shipmentPlans    = new List <ShipmentPlan>();
                    pLanning.needProduceQties = new List <NeedProduceQty>();
                    foreach (var or in order)
                    {
                        ShipmentPlan shipment = new ShipmentPlan();
                        shipment.ClientRequestDate = or.ClientRequestDate;
                        shipment.ClientCode        = or.ClientOrder;
                        shipment.DeliveryPlanQty   = or.ClientOrderQty;
                        shipment.NeedQty           = or.ClientOrderQty;
                        shipment.RemainDay         = (or.ClientRequestDate - DateTime.Now.Date).Days;
                        shipment.NeedQtyPerDay     = shipment.NeedQty / shipment.RemainDay;
                        shipment.OrderCode         = or.DDH;
                        pLanning.shipmentPlans.Add(shipment);

                        NeedProduceQty need = new NeedProduceQty();
                        need.ClientRequestDate = or.ClientRequestDate;
                        need.NeedQty           = or.ClientOrderQty;
                        need.RemainDay         = (or.ClientRequestDate - DateTime.Now.Date).Days;
                        need.NeedQtyPerDay     = need.NeedQty / need.RemainDay;
                        pLanning.needProduceQties.Add(need);
                    }
                    pLanning.TotalQty = pLanning.shipmentPlans.Select(d => d.DeliveryPlanQty).Sum();
                    pLanning._bom     = new BOM();
                    List <string> ListHENN = ListHENNofProduct(pLanning.KeyProduct);
                    if (ListHENN != null)
                    {
                        pLanning._bom.HEN         = new string[ListHENN.Count];
                        pLanning._bom.HENStock    = new double[ListHENN.Count];
                        pLanning._bom.StrHENStock = new string[ListHENN.Count];

                        for (int i = 0; i < ListHENN.Count; i++)
                        {
                            pLanning._bom.HEN [i] = ListHENN[i];

                            pLanning._bom.HENStock[i] = StockOfHENN(ListHENN[i]);
                        }
                    }
                    else
                    {
                        pLanning._bom.HEN         = new string[1];
                        pLanning._bom.HENStock    = new double[1];
                        pLanning._bom.StrHENStock = new string[1];
                    }
                    var _bom = listSettingBoms.Where(d => d.ProductName == pLanning.KeyProduct).ToList();
                    if (_bom.Count > 0)
                    {
                        pLanning._bom.QtyUnit = _bom[0].QtyInBox;
                        pLanning._bom.ToolQty = _bom[0].QtyTool;
                    }
                    pLanning.wip           = new Wip();
                    pLanning.wip.Warehouse = StockOfProduct(order[0].Product);

                    pLanning.production = new Production();
                    var _productItem = lisSettingManufactures.Where(d => d.ProductName == pLanning.KeyProduct).ToList();
                    if (_productItem.Count > 0)
                    {
                        pLanning.production.ProductionQty = _productItem[0].PlanQty;
                        pLanning.production.targetPeople  = _productItem[0].Workertarget;
                        pLanning.production.PeopleQty     = (pLanning.production.targetPeople == 0) ? 0: pLanning.production.ProductionQty / pLanning.production.targetPeople;
                    }
                    sFT_WIP = GetSFT_WIPofProducts(order[0].Product);

                    pLanning.wip.MQCQty       = sFT_WIP.MQC_Out_Available;
                    pLanning.wip.PQCQty       = sFT_WIP.PQC_In_Available + sFT_WIP.PQC_Out_Available;
                    pLanning.wip.StockInWHQTy = sFT_WIP.StockIntoWH;
                    pLanning.wip.TotalInWip   = pLanning.wip.MQCQty + pLanning.wip.PQCQty + pLanning.wip.StockInWHQTy;
                    pLanning.TotalShortage    = pLanning.TotalQty - pLanning.wip.Warehouse - pLanning.wip.TotalInWip;

                    Production pro = new Production();
                    pro = GetProductionFromProduct(pLanning.KeyProduct);

                    if (pro != null)
                    {
                        pLanning.production.QtyOld       = pro.QtyOld;
                        pLanning.production.targetShiftA = pro.targetShiftA;
                        pLanning.production.targetShiftB = pro.targetShiftB;
                    }
                    else

                    {
                        pLanning.production.QtyOld       = 0;
                        pLanning.production.targetShiftA = 0;
                        pLanning.production.targetShiftB = 0;
                    }
                    keyValuePairs.Add(pLanning.KeyProduct, pLanning);
                }
            }
            catch (Exception)
            {
                return(null);
            }
            return(keyValuePairs);
        }
Ejemplo n.º 4
0
        public SFT_WIP GetSFT_WIPofProducts(string product)
        {
            SFT_WIP sFT_WIP = new SFT_WIP();

            try
            {
                StringBuilder stringBuilder = new StringBuilder();
                stringBuilder.Append(@"select  sum(LOTSIZE)  from LOT 
where  ERP_OPSEQ = '0010' and STATUS = '0' 
 ");
                stringBuilder.Append(" and ITEMID =  '" + product + "'");
                sqlSFT sqlERPCON = new sqlSFT();
                var    Temp      = sqlERPCON.sqlExecuteScalarString(stringBuilder.ToString());
                if (Temp != null && Temp != "")
                {
                    sFT_WIP.MQC_In_Available = double.Parse(Temp.ToString());
                }
                else
                {
                    sFT_WIP.MQC_In_Available = 0;
                }

                stringBuilder = new StringBuilder();
                stringBuilder.Append(@"select  sum(LOTSIZE)  from LOT 
where  ERP_OPSEQ = '0010' and STATUS = '50' 
 ");
                stringBuilder.Append(" and ITEMID =  '" + product + "'");
                //  sqlERPCON sqlERPCON = new sqlERPCON();
                Temp = sqlERPCON.sqlExecuteScalarString(stringBuilder.ToString());
                if (Temp != null && Temp != "")
                {
                    sFT_WIP.MQC_Out_Available = double.Parse(Temp.ToString());
                }
                else
                {
                    sFT_WIP.MQC_Out_Available = 0;
                }

                stringBuilder = new StringBuilder();
                stringBuilder.Append(@"select  sum(LOTSIZE)  from LOT 
where  ERP_OPSEQ = '0020' and STATUS = '0' 
 ");
                stringBuilder.Append(" and ITEMID =  '" + product + "'");
                //  sqlERPCON sqlERPCON = new sqlERPCON();
                Temp = sqlERPCON.sqlExecuteScalarString(stringBuilder.ToString());
                if (Temp != null && Temp != "")
                {
                    sFT_WIP.PQC_In_Available = double.Parse(Temp.ToString());
                }
                else
                {
                    sFT_WIP.PQC_In_Available = 0;
                }

                stringBuilder = new StringBuilder();
                stringBuilder.Append(@"select  sum(LOTSIZE)  from LOT 
where  ERP_OPSEQ = '0020' and STATUS = '50' 
 ");
                stringBuilder.Append(" and ITEMID =  '" + product + "'");
                //  sqlERPCON sqlERPCON = new sqlERPCON();
                Temp = sqlERPCON.sqlExecuteScalarString(stringBuilder.ToString());
                if (Temp != null && Temp != "")
                {
                    sFT_WIP.PQC_Out_Available = double.Parse(Temp.ToString());
                }
                else
                {
                    sFT_WIP.PQC_Out_Available = 0;
                }

                stringBuilder = new StringBuilder();
                stringBuilder.Append(@"select  sum(LOTSIZE)  from LOT 
where  ERP_OPSEQ = '0020' and STATUS = '130' 
 ");
                stringBuilder.Append(" and ITEMID =  '" + product + "'");
                //  sqlERPCON sqlERPCON = new sqlERPCON();
                Temp = sqlERPCON.sqlExecuteScalarString(stringBuilder.ToString());
                if (Temp != null && Temp != "")
                {
                    sFT_WIP.StockIntoWH = double.Parse(Temp.ToString());
                }
                else
                {
                    sFT_WIP.StockIntoWH = 0;
                }
            }
            catch (Exception ex)
            {
                return(null);
            }
            return(sFT_WIP);
        }