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); }
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); }
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); }