public void IncreaseDeliveredQty(decimal qtyPacked, IncOrder incOrd = null) { packedQty += qtyPacked; if (incOrd == null) { this.incOrders[0].IncreaseDeliveredQty(qtyPacked); } else { incOrd.IncreaseDeliveredQty(qtyPacked); } SortIncOrders(); }
public void AddIncOrder(IncOrder incOrd) { if (incOrd.relInd) { this.packedQty += incOrd.packedQty; this.targetQty += incOrd.targetQty; if (!material.unlimOverdel) { this.maxQty = decimal.Floor(this.targetQty * (1 + material.overdelPerc / 100)); } } this.incOrders.Add(incOrd); SortIncOrders(); }
public Order(IncOrder incOrder) { this.materialNum = incOrder.materialNum; try { this.material = CommonData.mats.Find(m => m.matNumber.Equals(materialNum)); } catch (ArgumentNullException) { MessageLogger.Add(string.Format("Material master data missing for order {0} material {1}", incOrder.orderNum, incOrder.materialNum) , MessageLogger.MsgLevel.warning); } this.Uom = incOrder.Uom; this.incOrders = new List <IncOrder>(); }
public static void ReadOrdersFromDB(out List <Order> normalOrders, out List <Order> reworkOrders, out List <Order.PackedOn> slDates) { normalOrders = new List <Order>(); reworkOrders = new List <Order>(); string prevMatNumber = "~"; Order normalOrder = null; Order reworkOrder = null; bool missingMaterialData = false; DBOperations.BeginTransaction(); MySqlCommand cmd = DBOperations.myConn.CreateCommand(); cmd.CommandText = "select * from pck.order where start_date = current_date() and rel_ind = 1 order by material_num"; try { MySqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { var newIncOrd = new IncOrder(rdr); bool rework = newIncOrd.orderType.Equals("YREW"); if (!newIncOrd.materialNum.Equals(prevMatNumber)) { normalOrder = reworkOrder = null; missingMaterialData = false; var ord = new Order(newIncOrd); if (ord.material == null) { missingMaterialData = true; MessageLogger.Add("No master data for material " + ord.materialNum, MessageLogger.MsgLevel.warning); } else if (rework) { reworkOrder = ord; reworkOrders.Add(ord); } else { normalOrder = ord; normalOrders.Add(ord); } } if (missingMaterialData) { continue; } if (rework) { if (reworkOrder == null) { reworkOrder = new Order(newIncOrd); reworkOrders.Add(reworkOrder); } reworkOrder.AddIncOrder(newIncOrd); } else { if (normalOrder == null) { normalOrder = new Order(newIncOrd); normalOrders.Add(normalOrder); } normalOrder.AddIncOrder(newIncOrd); } prevMatNumber = newIncOrd.materialNum; } rdr.Close(); } catch (MySqlException ex) { MessageLogger.Add("Error reading materials from DB - see log file for more details", MessageLogger.MsgLevel.critical); MessageLogger.Add(ex.ToString(), MessageLogger.MsgLevel.additional); } slDates = ReadPackedOnDatesFromDB(); DBOperations.CommitTransaction(); }
public static bool ReadOrdersFromSAP(out List <Order> normalOrders, out List <Order> reworkOrders, out List <Order.PackedOn> slDates) { normalOrders = new List <Order>(); reworkOrders = new List <Order>(); slDates = new List <PackedOn>(); var binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly); binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic; binding.MaxReceivedMessageSize = 1000000; var address = new EndpointAddress(CommonData.webServiceEndPoint); var client = new ZStandalonePackingClient(binding, address); var toSAP = new ZGetProductionOrders(); toSAP.Device = CommonData.sapSettings.device; client.ClientCredentials.UserName.UserName = CommonData.sapSettings.user; client.ClientCredentials.UserName.Password = CryptoSystem.Decrypt(CommonData.sapSettings.password); ZGetProductionOrdersResponse fromSAP; try { fromSAP = client.ZGetProductionOrders(toSAP); } catch (CommunicationException ex) { MessageLogger.Add("Error reading orders from SAP", MessageLogger.MsgLevel.error); MessageLogger.Add(ex.ToString(), MessageLogger.MsgLevel.additional); return(false); } string prevMatNumber = "~"; Order normalOrder = null; Order reworkOrder = null; bool missingMaterialData = false; foreach (ZsapaProdOrder sapOrd in fromSAP.Orders) { var newIncOrd = new IncOrder(sapOrd); bool rework = sapOrd.OrderType.Equals("YREW"); if (!sapOrd.MaterialNum.Equals(prevMatNumber)) { normalOrder = reworkOrder = null; missingMaterialData = false; var ord = new Order(newIncOrd); if (ord.material == null) { missingMaterialData = true; MessageLogger.Add("No master data for material " + ord.materialNum, MessageLogger.MsgLevel.warning); } else if (rework) { reworkOrder = ord; reworkOrders.Add(ord); } else { normalOrder = ord; normalOrders.Add(ord); } } if (missingMaterialData) { continue; } if (rework) { if (reworkOrder == null) { reworkOrder = new Order(newIncOrd); reworkOrders.Add(reworkOrder); } reworkOrder.AddIncOrder(newIncOrd); } else { if (normalOrder == null) { normalOrder = new Order(newIncOrd); normalOrders.Add(normalOrder); } normalOrder.AddIncOrder(newIncOrd); } prevMatNumber = sapOrd.MaterialNum; } foreach (var sl in fromSAP.ProdDates) { slDates.Add(new Order.PackedOn(sl)); } return(true); }