public List <DataHeaderPlanning> GetDataHeaderPlanningBMH(string dept, DateTime from, DateTime to, out Dictionary <string, List <dataContent> > ListPlanShipments) { List <DataHeaderPlanning> headerPlanningA01s = new List <DataHeaderPlanning>(); try { LoadDataPlanning loadData = new LoadDataPlanning(); var orderVariables = loadData.LoadOrderInformationbyDatebyDept(from, to, dept); var ListPlanning = loadData.GetPlanningReportbyDept(dept, orderVariables); var listplanShipment = new Dictionary <string, List <dataContent> >(); foreach (var item in ListPlanning) { var datacontents = new List <dataContent>(); DataHeaderPlanning data = new DataHeaderPlanning(); data.product = item.Value.KeyProduct; data.Unit = item.Value.Unit; data.Amount_Of_Order = item.Value.shipmentPlans.Count(); data.Total_Order_Qty = item.Value.TotalQty; data.client = item.Value.Client; GetStockinINVMC getStockFinishedGoods = new GetStockinINVMC(); var ListFinishedGoodsWH = getStockFinishedGoods.GetItemsInINVMCs(dept, data.product); data.StockInWarehouse = ListFinishedGoodsWH.Select(d => d.Quantity).Sum().ToString("N0"); for (int i = 0; i < item.Value.SemiFinishedGoods.Count; i++) { // data.SemiFinishedGoods += item.Value.SemiFinishedGoods[i].Item + Environment.NewLine; // data.StockSemiFinished += item.Value.SemiFinishedGoods[i].QtyWarehouse.ToString("N0") + Environment.NewLine; data.MQCStock += item.Value.SemiFinishedGoods[i].QTyAtMQC.ToString("N0") + Environment.NewLine; data.PQCStock += item.Value.SemiFinishedGoods[i].QTyAtPQC.ToString("N0") + Environment.NewLine; data.PendingWarehouse += item.Value.SemiFinishedGoods[i].QtyPendingWarehouse.ToString("N0") + Environment.NewLine; if (item.Value.SemiFinishedGoods[i].accessories != null) { // var ItemGroup = item.Value.SemiFinishedGoods[i].accessories.GroupBy(d => d.Item).ToList(); var ItemGroupItem = item.Value.SemiFinishedGoods[i].accessories.GroupBy(u => u.Item) .Select(grp => grp.ToList()) .ToList(); for (int j = 0; j < ItemGroupItem.Count; j++) { data.Accessories += ItemGroupItem[j][0].Item + Environment.NewLine; data.StockAccessory += ItemGroupItem[j].Sum(d => d.QtyInWarehouse).ToString("N0") + Environment.NewLine; } } } double ShipmentQtySum = 0; foreach (var shipment in item.Value.shipmentPlans) { var dataContent = new dataContent(); DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo; Calendar cal = dfi.Calendar; int WeekNo = cal.GetWeekOfYear(shipment.ClientRequestDate, CalendarWeekRule.FirstDay, DayOfWeek.Monday); dataContent.WeekRequestDate = "Week: " + WeekNo.ToString(); dataContent.MonthRequest = shipment.ClientRequestDate.ToString("MMM"); dataContent.ClientOrderDate = shipment.ClientRequestDate; dataContent.OrderQty = shipment.DeliveryPlanQty; ShipmentQtySum += dataContent.OrderQty; dataContent.ShortageQty = ShipmentQtySum; dataContent.RemainDay = shipment.RemainDay; if (dataContent.RemainDay == 0) { dataContent.TargetQtyDay = (dataContent.ShortageQty < 0) ? 0 : (dataContent.OrderQty); } else { dataContent.TargetQtyDay = (dataContent.ShortageQty < 0) ? 0 : Math.Ceiling((dataContent.OrderQty / dataContent.RemainDay)); } dataContent.OrderCode = shipment.OrderCode; dataContent.ClientOrder = shipment.ClientCode; datacontents.Add(dataContent); } for (int k = 0; k < datacontents.Count; k++) { for (int l = k + 1; l < datacontents.Count; l++) { datacontents[k].TargetQtyDay += datacontents[l].TargetQtyDay; } } if (listplanShipment.ContainsKey(data.product) == false) { listplanShipment.Add(data.product, datacontents); } headerPlanningA01s.Add(data); } ListPlanShipments = listplanShipment; } catch (Exception ex) { ListPlanShipments = null; SystemLog.Output(SystemLog.MSG_TYPE.Err, "GetDataHeaderPlanningA01", ex.Message); } return(headerPlanningA01s); }
public SemiFinishedGoods GetStockGoodsONSFT(string dept, string product) { SemiFinishedGoods semiFinished = new SemiFinishedGoods(); try { GetStockinINVMC getStockinINVMC = new GetStockinINVMC(); var StockInWarehouse = getStockinINVMC.GetItemsInINVMCs(dept, product); if (StockInWarehouse != null) { semiFinished.QtyInWarehouse = StockInWarehouse.Select(d => d.Quantity).Sum(); semiFinished.QtyWarehouse = StockInWarehouse.Select(d => d.Quantity).Sum(); } semiFinished.Item = product; StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(@"select isnull(sum(LOTSIZE),'0') 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 != "") { semiFinished.QtyInMQC = double.Parse(Temp); } stringBuilder = new StringBuilder(); stringBuilder.Append(@"select isnull(sum(LOTSIZE),'0') 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 != "") { semiFinished.QtyOutMQC = double.Parse(Temp.ToString()); } stringBuilder = new StringBuilder(); stringBuilder.Append(@"select isnull(sum(LOTSIZE),'0') 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 != "") { semiFinished.QtyInPQC = double.Parse(Temp.ToString()); } stringBuilder = new StringBuilder(); stringBuilder.Append(@"select isnull(sum(LOTSIZE),'0') 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 != "") { semiFinished.QtyOutPQC = double.Parse(Temp.ToString()); } stringBuilder = new StringBuilder(); stringBuilder.Append(@"select isnull(sum(LOTSIZE),'0') 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 != "") { semiFinished.QtyPendingWarehouse = double.Parse(Temp.ToString()); } semiFinished.QTyAtMQC = semiFinished.QtyOutMQC; semiFinished.QTyAtPQC = semiFinished.QtyInPQC + semiFinished.QtyOutPQC; semiFinished.QtyWip = semiFinished.QTyAtMQC + semiFinished.QTyAtPQC + semiFinished.QtyPendingWarehouse; GetAccessory getAccessory = new GetAccessory(); semiFinished.accessories = getAccessory.GetAccessories(dept, product); } catch (Exception ex) { SystemLog.Output(SystemLog.MSG_TYPE.Err, "GetStockGoodsONSFT(string product) : " + product, ex.Message); } return(semiFinished); }