Пример #1
0
        public void IncreaseDeliveredQty(decimal qtyPacked, IncOrder incOrd = null)
        {
            packedQty += qtyPacked;
            if (incOrd == null)
            {
                this.incOrders[0].IncreaseDeliveredQty(qtyPacked);
            }
            else
            {
                incOrd.IncreaseDeliveredQty(qtyPacked);
            }

            SortIncOrders();
        }
Пример #2
0
 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();
 }
Пример #3
0
 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>();
 }
Пример #4
0
        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();
        }
Пример #5
0
        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);
        }