Ejemplo n.º 1
0
        private void AddTrackOption(TrackOption trackOption)
        {
            if (trackOption == null)
            {
                return;
            }

            try
            {
                ProductTrackRelation relation = new ProductTrackRelation
                {
                    Product      = View.Model.Record,
                    TrackOption  = trackOption,
                    IsRequired   = false,
                    IsUnique     = (trackOption.IsUnique == null) ? false : trackOption.IsUnique,
                    CreatedBy    = App.curUser.UserName,
                    CreationDate = DateTime.Today
                };

                relation = service.SaveProductTrackRelation(relation);

                if (View.Model.AllowTrack == null)
                {
                    View.Model.AllowTrack = new List <ProductTrackRelation>();
                }

                View.Model.AllowTrack.Insert(0, relation);

                View.Model.AvailableTrack.Remove(trackOption);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 2
0
        public IList <long> GetRecordWithoutTrackOption(Document document, ProductTrackRelation productTrack, Node node)
        {
            string sqlbase = "select l.LabelID from Trace.NodeTrace n INNER JOIN Trace.Document d ON n.DocID = d.DocID AND n.DocID = :id2 "
                             + " INNER JOIN Trace.Label l ON n.LabelID = l.LabelID AND l.ProductID = :id6"
                             + " LEFT OUTER JOIN Trace.LabelTrackOption t ON l.LabelId = t.LabelID AND t.TrackOptionID = :id8"
                             + " WHERE n.NodeID = :nd1  AND (t.TrackValue IS NULL OR LTRIM(RTRIM(t.TrackValue)) = '')";

            StringBuilder sql = new StringBuilder(sqlbase);

            if (productTrack != null)
            {
                Parms = new List <Object[]>();

                Parms.Add(new Object[] { "nd1", node.NodeID });


                if (document != null && document.DocID != 0)
                {
                    Parms.Add(new Object[] { "id2", document.DocID });
                }

                Parms.Add(new Object[] { "id6", productTrack.Product.ProductID });
                Parms.Add(new Object[] { "id8", productTrack.TrackOption.RowID });
            }

            sql = new StringBuilder(sql.ToString());
            IQuery query = Factory.Session.CreateSQLQuery(sql.ToString());

            SetParameters(query);
            return(query.SetMaxResults(1).List <long>());
        }
Ejemplo n.º 3
0
        private void RemoveTrackOption()
        {
            if (View.LvAssignedTrack.SelectedItems == null)
            {
                return;
            }

            ProductTrackRelation pTrack = null;
            string msg = "";



            foreach (Object obj in View.LvAssignedTrack.SelectedItems)
            {
                try
                {
                    pTrack = (ProductTrackRelation)obj;
                    View.Model.AllowTrack.Remove((ProductTrackRelation)obj);
                    service.DeleteProductTrackRelation(pTrack);
                }

                catch (Exception ex)
                {
                    msg += "Error trying to delete Track Option: " + pTrack.TrackOption.DisplayName + ". " + ex.Message;
                }
            }


            if (!string.IsNullOrEmpty(msg))
            {
                Util.ShowError(msg);
            }

            LoadTrackOptions();
        }
        public IList <ProductTrackRelation> Select(ProductTrackRelation data)
        {
            IList <ProductTrackRelation> datos = new List <ProductTrackRelation>();

            datos = GetHsql(data).List <ProductTrackRelation>();
            if (!Factory.IsTransactional)
            {
                Factory.Commit();
            }
            return(datos);
        }
Ejemplo n.º 5
0
        private IList <ProductTrackRelation> GetProductTrack(int trackOption, Product product)
        {
            if (trackOption != 2 && trackOption != 3)
            {
                return(null);
            }

            ProductTrackRelation         pTrack = null;
            IList <ProductTrackRelation> list   = new List <ProductTrackRelation>();

            if (trackOption == 2) //Serial Number
            {
                pTrack = new ProductTrackRelation
                {
                    CreatedBy    = WmsSetupValues.SystemUser,
                    CreationDate = DateTime.Now,
                    DisplayName  = null,
                    Product      = product,
                    IsRequired   = true,
                    IsUnique     = true,
                    TrackOption  = new TrackOption {
                        RowID = STrackOptions.SerialNumber
                    }
                };
                list.Add(pTrack);
            }

            if (trackOption == 3) //LotCode
            {
                pTrack = new ProductTrackRelation
                {
                    CreatedBy    = WmsSetupValues.SystemUser,
                    CreationDate = DateTime.Now,
                    DisplayName  = null,
                    Product      = product,
                    IsRequired   = true,
                    IsUnique     = false,
                    TrackOption  = new TrackOption {
                        RowID = STrackOptions.LotCode
                    }
                };
                list.Add(pTrack);
            }

            return(list);
        }
        public override IQuery GetHsql(Object data)
        {
            StringBuilder        sql          = new StringBuilder("select a from ProductTrackRelation a  where  ");
            ProductTrackRelation productTrack = (ProductTrackRelation)data;

            if (productTrack != null)
            {
                Parms = new List <Object[]>();
                if (productTrack.RowID != 0)
                {
                    sql.Append(" a.RowID = :id     and   ");
                    Parms.Add(new Object[] { "id", productTrack.RowID });
                }

                if (productTrack.TrackOption != null && !string.IsNullOrEmpty(productTrack.TrackOption.Name))
                {
                    sql.Append(" a.TrackOption.Name = :idn     and   ");
                    Parms.Add(new Object[] { "idn", productTrack.TrackOption.Name });
                }

                if (productTrack.Product != null && productTrack.Product.ProductID != 0)
                {
                    sql.Append(" a.Product.ProductID = :id1     and   ");
                    Parms.Add(new Object[] { "id1", productTrack.Product.ProductID });
                }

                if (productTrack.TrackOption != null && productTrack.TrackOption.RowID != 0)
                {
                    sql.Append(" a.TrackOption.RowID = :id2     and   ");
                    Parms.Add(new Object[] { "id2", productTrack.TrackOption.RowID });
                }


                if (!String.IsNullOrEmpty(productTrack.DisplayName))
                {
                    sql.Append(" a.DisplayName = :nom1  and   ");
                    Parms.Add(new Object[] { "nom1", "%" + productTrack.DisplayName + "%" });
                }



                if (productTrack.IsRequired == true)
                {
                    sql.Append(" a.IsRequired = :nom7     and   ");
                    Parms.Add(new Object[] { "nom7", true });
                }
                else if (productTrack.IsRequired == false)
                {
                    sql.Append(" a.IsRequired = :nom7     and   ");
                    Parms.Add(new Object[] { "nom7", false });
                }


                if (productTrack.IsUnique == true)
                {
                    sql.Append(" a.IsUnique = :nom8     and   ");
                    Parms.Add(new Object[] { "nom8", true });
                }
                else if (productTrack.IsUnique == false)
                {
                    sql.Append(" a.IsUnique = :nom8     and   ");
                    Parms.Add(new Object[] { "nom8", false });
                }
            }

            sql = new StringBuilder(sql.ToString());
            sql.Append(" 1=1 order by a.RowID asc ");
            IQuery query = Factory.Session.CreateQuery(sql.ToString());

            SetParameters(query);
            return(query);
        }
 public ProductTrackRelation SelectById(ProductTrackRelation data)
 {
     return((ProductTrackRelation)base.SelectById(data));
 }
 public Boolean Delete(ProductTrackRelation data)
 {
     return(base.Delete(data));
 }
 public Boolean Update(ProductTrackRelation data)
 {
     return(base.Update(data));
 }
 public ProductTrackRelation Save(ProductTrackRelation data)
 {
     return((ProductTrackRelation)base.Save(data));
 }
Ejemplo n.º 11
0
        private void ProcessProducts(IList <Product> list)
        {
            if (list == null)
            {
                return;
            }

            Product                qProd = null;
            UnitProductRelation    curUnit;
            ProductTrackRelation   curRecord;
            ProductAccountRelation curPvendor;


            foreach (Product e in list)
            {
                try
                {
                    qProd             = new Product();
                    qProd.Company     = e.Company;
                    qProd.ProductCode = e.ProductCode;

                    //Evalua si el elemento ya existe
                    IList <Product> exList = Factory.DaoProduct().Select(qProd, 0);
                    e.ModDate    = DateTime.Now;
                    e.ModifiedBy = WmsSetupValues.SystemUser;

                    if (exList.Count == 0)
                    {
                        e.CreationDate = DateTime.Now;
                        e.CreatedBy    = WmsSetupValues.SystemUser;
                        Factory.DaoProduct().Save(e);
                    }
                    else
                    {
                        e.ProductID    = exList.First().ProductID;
                        e.CreatedBy    = exList.First().CreatedBy;
                        e.CreationDate = exList.First().CreationDate;

                        //Otros datos del producto que deben preservarse
                        e.UpcCode         = exList.First().UpcCode;
                        e.Reference       = exList.First().Reference;
                        e.Manufacturer    = exList.First().Manufacturer;
                        e.IsBinRestricted = exList.First().IsBinRestricted;
                        e.Comment         = exList.First().Comment;
                        //e.AlternateCode1 = exList.First().AlternateCode1;
                        //e.AlternateCode2 = exList.First().AlternateCode2;
                        e.PrintLabel      = exList.First().PrintLabel;
                        e.UnitsPerPack    = exList.First().UnitsPerPack;
                        e.PickMethod      = exList.First().PickMethod;
                        e.DefaultTemplate = exList.First().DefaultTemplate;
                        e.DefVendorNumber = exList.First().DefVendorNumber;

                        //Evaluar los UnitRelations
                        int i = 0;
                        foreach (UnitProductRelation line in e.ProductUnits)
                        {
                            curUnit             = new UnitProductRelation();
                            curUnit.Product     = line.Product;
                            curUnit.UnitErpCode = line.UnitErpCode;
                            curUnit.Unit        = line.Unit;
                            IList <UnitProductRelation> listLines = Factory.DaoUnitProductRelation().Select(curUnit);

                            if (listLines.Count > 0)
                            {
                                e.ProductUnits[i].RowID        = listLines.First().RowID;
                                e.ProductUnits[i].CreationDate = listLines.First().CreationDate;
                                e.ProductUnits[i].CreatedBy    = listLines.First().CreatedBy;
                                e.ProductUnits[i].ModDate      = DateTime.Now;
                                e.ProductUnits[i].ModifiedBy   = WmsSetupValues.SystemUser;
                            }
                            else
                            {
                                e.ProductUnits[i].CreationDate = DateTime.Now;
                                e.ProductUnits[i].CreatedBy    = WmsSetupValues.SystemUser;
                            }

                            i++;
                        }


                        //Evaluar los ProductTrackOptions
                        if (e.ProductTrack != null)
                        {
                            int y = 0;
                            foreach (ProductTrackRelation line in e.ProductTrack)
                            {
                                curRecord             = new ProductTrackRelation();
                                curRecord.Product     = line.Product;
                                curRecord.TrackOption = line.TrackOption;
                                IList <ProductTrackRelation> trackLines = Factory.DaoProductTrackRelation().Select(curRecord);

                                if (trackLines.Count > 0)
                                {
                                    e.ProductTrack[y].RowID        = trackLines.First().RowID;
                                    e.ProductTrack[y].CreationDate = trackLines.First().CreationDate;
                                    e.ProductTrack[y].CreatedBy    = trackLines.First().CreatedBy;
                                    e.ProductTrack[y].ModDate      = DateTime.Now;
                                    e.ProductTrack[y].ModifiedBy   = WmsSetupValues.SystemUser;
                                }
                                else
                                {
                                    e.ProductTrack[y].CreationDate = DateTime.Now;
                                    e.ProductTrack[y].CreatedBy    = WmsSetupValues.SystemUser;
                                }

                                y++;
                            }
                        }


                        //Evaluar los ProductVendor

                        try
                        {
                            IList <ProductAccountRelation> pAlt = Factory.DaoProductAccountRelation()
                                                                  .Select(new ProductAccountRelation {
                                IsFromErp = true, Product = new Product {
                                    ProductID = e.ProductID
                                }
                            });;

                            if (pAlt != null && pAlt.Count > 0)
                            {
                                foreach (ProductAccountRelation pax in pAlt)
                                {
                                    Factory.DaoProductAccountRelation().Delete(pax);
                                }
                            }
                        }
                        catch { }


                        if (e.ProductAccounts != null)
                        {
                            int y = 0;
                            foreach (ProductAccountRelation line in e.ProductAccounts)
                            {
                                curPvendor            = new ProductAccountRelation();
                                curPvendor.Product    = line.Product;
                                curPvendor.Account    = line.Account;
                                curPvendor.ItemNumber = line.ItemNumber;
                                IList <ProductAccountRelation> pVendLines = Factory.DaoProductAccountRelation().Select(curPvendor);

                                if (pVendLines.Count > 0)
                                {
                                    e.ProductAccounts[y].RowID        = pVendLines.First().RowID;
                                    e.ProductAccounts[y].CreationDate = pVendLines.First().CreationDate;
                                    e.ProductAccounts[y].CreatedBy    = pVendLines.First().CreatedBy;
                                    e.ProductAccounts[y].ModDate      = DateTime.Now;
                                    e.ProductAccounts[y].ModifiedBy   = WmsSetupValues.SystemUser;
                                }
                                else
                                {
                                    e.ProductAccounts[y].CreationDate = DateTime.Now;
                                    e.ProductAccounts[y].CreatedBy    = WmsSetupValues.SystemUser;
                                }

                                y++;
                            }
                        }


                        //Evaluar los ProductAlternate

                        //ProductAlternate curAlt;

                        /*
                         * try
                         * {
                         *  IList<ProductAlternate> pAlt = Factory.DaoProductAlternate()
                         *      .Select(new ProductAlternate { IsFromErp = true, Product = new Product { ProductID = e.ProductID } });
                         *
                         *  if (pAlt != null && pAlt.Count > 0)
                         *      foreach (ProductAlternate pax in pAlt)
                         *          try { Factory.DaoProductAlternate().Delete(pax); }
                         *          catch (Exception ex) { Console.WriteLine("PA:" + ex.Message); }
                         * }
                         * catch { }
                         */


                        if (e.AlternProducts != null)
                        {
                            int y = 0;
                            foreach (ProductAlternate line in e.AlternProducts)
                            {
                                e.AlternProducts[y].CreationDate = DateTime.Now;
                                e.AlternProducts[y].CreatedBy    = WmsSetupValues.SystemUser;
                                y++;

                                try
                                {
                                    ProductAlternate exist = Factory.DaoProductAlternate()
                                                             .Select(new ProductAlternate {
                                        AlternProduct = new Product {
                                            ProductID = line.AlternProduct.ProductID
                                        },
                                        Product = new Product {
                                            ProductID = e.ProductID
                                        }
                                    }).First();

                                    Factory.DaoProductAlternate().Delete(exist);
                                }
                                catch { }

                                //curAlt = new ProductAlternate();
                                //curAlt.Product = line.Product;
                                //curAlt.AlternProduct = line.AlternProduct;
                            }
                        }

                        Factory.DaoProduct().Update(e);
                    }
                }
                catch (Exception ex)
                {
                    //Factory.Rollback();
                    ExceptionMngr.WriteEvent("ProcessProducts:" + qProd.ProductCode, ListValues.EventType.Fatal, ex, null, ListValues.ErrorCategory.Business);
                    ////throw;
                }
            }
        }
Ejemplo n.º 12
0
 public void UpdateProductTrackRelation(ProductTrackRelation data)
 {
     try {
     SetService();  SerClient.UpdateProductTrackRelation(data); }
     finally
     {
         SerClient.Close();
         if (SerClient.State == CommunicationState.Faulted)
         SerClient.Abort(); 
     }
 }
Ejemplo n.º 13
0
 public IList<ProductTrackRelation> GetProductTrackRelation(ProductTrackRelation data)
 {
     try {
     SetService();  return SerClient.GetProductTrackRelation(data); }
     finally
     {
         SerClient.Close();
         if (SerClient.State == CommunicationState.Faulted)
         SerClient.Abort(); 
     }
 }
Ejemplo n.º 14
0
        private void AddTrackOption(TrackOption trackOption)
        {
            if (trackOption == null)
                return;

            try
            {
                ProductTrackRelation relation = new ProductTrackRelation
                {
                    Product = View.Model.Record,
                    TrackOption = trackOption,
                    IsRequired = false,
                    IsUnique = (trackOption.IsUnique == null) ? false : trackOption.IsUnique,
                    CreatedBy = App.curUser.UserName,
                    CreationDate = DateTime.Today
                };

                relation = service.SaveProductTrackRelation(relation);

                if (View.Model.AllowTrack == null)
                    View.Model.AllowTrack = new List<ProductTrackRelation>();

                View.Model.AllowTrack.Insert(0, relation);

                View.Model.AvailableTrack.Remove(trackOption);
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }