Ejemplo n.º 1
0
        /*
         * void View_UnSetIsMain(object sender, DataEventArgs<object> e)
         * {
         *  //En el objeto viene el Row ID a Setear.
         *  if (e.Value == null)
         *      return;
         *
         *  ProductAccountRelation pa = new ProductAccountRelation
         *  {
         *      RowID = int.Parse(e.Value.ToString()),
         *      IsDefault = false
         *  };
         *  service.UpdateIsMainProductAccount(pa);
         *
         * }
         *
         *
         *
         * void View_SetIsMain(object sender, DataEventArgs<object> e)
         * {
         *  //En el objeto viene el Row ID a Setear.
         *  if (e.Value == null)
         *      return;
         *
         *
         *  ProductAccountRelation pa = new ProductAccountRelation
         *  {
         *      RowID = int.Parse(e.Value.ToString()),
         *      IsDefault = true
         *  };
         *
         *  service.UpdateIsMainProductAccount(pa);
         *
         *
         * }
         */


        void View_UpdateProductAccount(object sender, DataEventArgs <object> e)
        {
            //En el objeto viene el Row ID a Setear.
            if (e.Value == null)
            {
                return;
            }


            try
            {
                //Obtiene el Registro
                ProductAccountRelation pa = View.Model.ProductVendorRelation
                                            .Where(f => f.RowID == int.Parse(e.Value.ToString())).First();

                pa.ModDate    = DateTime.Now;
                pa.ModifiedBy = App.curUser.UserName;
                service.UpdateProductAccountRelation(pa);

                //if (pa.IsDefault == true)
                //{
                //    View.Model.Record.UpcCode = pa.Code1;
                //    View.Model.Record.DefVendorNumber = pa.ItemNumber;
                //    View.Model.Record.ModDate = DateTime.Now;
                //    View.Model.Record.ModifiedBy = App.curUser.UserName;
                //    service.UpdateProduct(View.Model.Record);

                //}
            }
            catch { }
        }
Ejemplo n.º 2
0
        private void btnAddCust_Click(object sender, RoutedEventArgs e)
        {
            if (this.txtCust.Account == null)
            {
                return;
            }

            if (string.IsNullOrEmpty(txtCustItem.Text))
            {
                return;
            }

            ProductAccountRelation pa = new ProductAccountRelation
            {
                CreatedBy    = App.curUser.UserName,
                CreationDate = DateTime.Now,
                Account      = this.txtCust.Account,
                AccountType  = new AccountType {
                    AccountTypeID = AccType.Customer
                },
                IsFromErp  = false,
                ItemNumber = this.txtCustItem.Text,
                Product    = this.Model.Record,
                Code1      = this.txtCustCode1.Text,
                Code2      = this.txtCustCode2.Text
            };

            AddProductAccount(sender, new DataEventArgs <ProductAccountRelation>(pa));
        }
Ejemplo n.º 3
0
        private void btnAddVendor_Click(object sender, RoutedEventArgs e)
        {
            //if (this.txtVendor.Account == null)
            //return;

            //if (string.IsNullOrEmpty(txtVendorItem.Text))
            //return;

            ProductAccountRelation pa = new ProductAccountRelation
            {
                CreatedBy    = App.curUser.UserName,
                CreationDate = DateTime.Now,
                Account      = this.txtVendor.Account,
                AccountType  = new AccountType {
                    AccountTypeID = AccType.Vendor
                },
                IsFromErp  = false,
                ItemNumber = this.txtVendorItem.Text,
                Product    = this.Model.Record,
                Code1      = this.txtVendorCode1.Text,
                Code2      = this.txtVendorCode2.Text,
                IsDefault  = this.chkMain.IsChecked
            };


            AddProductAccount(sender, new DataEventArgs <ProductAccountRelation>(pa));
        }
Ejemplo n.º 4
0
        private IList <ProductAccountRelation> GetProductVendors(Product product)
        {
            IList <ProductAccountRelation> productVendor = new List <ProductAccountRelation>();
            ProductAccountRelation         curId         = null;
            AccountType accType = WType.GetAccountType(new AccountType {
                AccountTypeID = 2
            });

            string curItemVendor = "";

            try
            {
                //Ask for the vendor Item record
                string sWhere = " ITEMNMBR = '" + product.ProductCode + "'";
                ds = DynamicsGP_ec.GetDataSet(DynamicsGP_ec.RetreiveData("VendorItem", false, 2, 0, sWhere, true));

                if (ds.Tables.Count > 0)
                {
                    foreach (DataRow dr in ds.Tables[1].Rows)
                    {
                        curId = new ProductAccountRelation();

                        curId.ItemNumber = dr["VNDITNUM"].ToString();

                        //Si esta vacio se sale al proximo
                        if (string.IsNullOrEmpty(curId.ItemNumber))
                        {
                            continue;
                        }

                        curItemVendor = dr["VENDORID"].ToString() + ":" + curId.ItemNumber;

                        curId.IsFromErp   = true;
                        curId.AccountType = accType;
                        curId.Account     = WType.GetAccount(new Account {
                            AccountCode = dr["VENDORID"].ToString(), BaseType = new AccountType {
                                AccountTypeID = AccntType.Vendor
                            }
                        });
                        curId.Product      = product;
                        curId.CreatedBy    = WmsSetupValues.SystemUser;
                        curId.CreationDate = DateTime.Now;

                        productVendor.Add(curId);
                    }
                }

                return(productVendor);
            }
            catch (Exception ex)
            {
                ExceptionMngr.WriteEvent("GetProductVendors:" + curItemVendor, ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection);
                //throw;
                return(null);
            }
        }
        public IList <ProductAccountRelation> Select(ProductAccountRelation data)
        {
            IList <ProductAccountRelation> datos = new List <ProductAccountRelation>();

            datos = GetHsql(data).List <ProductAccountRelation>();
            if (!Factory.IsTransactional)
            {
                Factory.Commit();
            }
            return(datos);
        }
 public ProductAccountRelation SelectById(ProductAccountRelation data)
 {
     return((ProductAccountRelation)base.SelectById(data));
 }
 public Boolean Delete(ProductAccountRelation data)
 {
     return(base.Delete(data));
 }
 public Boolean Update(ProductAccountRelation data)
 {
     return(base.Update(data));
 }
 public ProductAccountRelation Save(ProductAccountRelation data)
 {
     return((ProductAccountRelation)base.Save(data));
 }
Ejemplo n.º 10
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.º 11
0
        private void btnAddVendor_Click(object sender, RoutedEventArgs e)
        {
            //if (this.txtVendor.Account == null)
                //return;

            //if (string.IsNullOrEmpty(txtVendorItem.Text))
                //return;

            ProductAccountRelation pa = new ProductAccountRelation
            {
                CreatedBy = App.curUser.UserName,
                CreationDate = DateTime.Now,
                Account = this.txtVendor.Account,
                AccountType = new AccountType { AccountTypeID = AccType.Vendor },
                IsFromErp = false,
                ItemNumber = this.txtVendorItem.Text,
                Product = this.Model.Record,
                Code1 = this.txtVendorCode1.Text,
                Code2 = this.txtVendorCode2.Text,
                IsDefault = this.chkMain.IsChecked
            };


            AddProductAccount(sender, new DataEventArgs<ProductAccountRelation>(pa));
        }
Ejemplo n.º 12
0
 public IList<ProductAccountRelation> GetProductAccountRelation(ProductAccountRelation data)
 {
     try {
     SetService();  return SerClient.GetProductAccountRelation(data); }
     finally
     {
         SerClient.Close();
         if (SerClient.State == CommunicationState.Faulted)
         SerClient.Abort(); 
     }
 }
Ejemplo n.º 13
0
        public override IQuery GetHsql(Object data)
        {
            StringBuilder sql     = new StringBuilder("select a from Product a   ");
            Product       product = (Product)data;


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


                if (product.ProductAccounts != null && product.ProductAccounts.Count > 0)
                {
                    sql.Append(" LEFT OUTER JOIN a.ProductAccounts as prodAccount "); //where a.ProductID =  prodAccount.Product.ProductID ");

                    ProductAccountRelation par = product.ProductAccounts[0];

                    sql.Append(" WHERE (( 1=1 AND prodAccount.RowID is not null ");

                    //Solo se condiciona si pasa un account.
                    if (par.Account != null && par.Account.AccountCode != WmsSetupValues.DEFAULT)
                    {
                        sql.Append(" AND prodAccount.AccountType.AccountTypeID = :act");
                        Parms.Add(new Object[] { "act", par.AccountType.AccountTypeID });

                        sql.Append(" AND prodAccount.Account.AccountID  = :acc");
                        Parms.Add(new Object[] { "acc", par.Account.AccountID });
                    }

                    sql.Append(" AND (prodAccount.ItemNumber = :itm" + " OR prodAccount.Code1 = :itm" + " OR prodAccount.Code2 = :itm" + ")) ");
                    Parms.Add(new Object[] { "itm", par.ItemNumber });


                    if (!String.IsNullOrEmpty(product.ProductCode))
                    {
                        sql.Append(" OR (a.ProductCode = :nom  OR a.UpcCode = :nom OR a.DefVendorNumber = :nom )) and ");
                        Parms.Add(new Object[] { "nom", product.ProductCode });
                    }

                    else
                    {
                        sql.Append(" ) and   ");
                    }
                }
                else
                {
                    sql.Append(" where ");

                    if (!String.IsNullOrEmpty(product.ProductCode))
                    {
                        sql.Append(" (a.ProductCode = :nom  OR a.UpcCode = :nom )  and   ");
                        Parms.Add(new Object[] { "nom", product.ProductCode });
                    }
                }



                if (product.ProductID != 0)
                {
                    sql.Append(" a.ProductID = :id     and   ");
                    Parms.Add(new Object[] { "id", product.ProductID });
                }

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


                if (product.Contract != null && product.Contract.ContractID != 0)
                {
                    sql.Append(" a.Contract.ContractID  = :cot1     and   ");
                    Parms.Add(new Object[] { "cot", product.Contract.ContractID });
                }



                if (!String.IsNullOrEmpty(product.Name))
                {
                    sql.Append(" (a.ProductCode like :nom1 Or  a.UpcCode = :nomp  ");

                    if (product.Name.Length >= 3)
                    {
                        sql.Append(" Or a.Name like :nom2 ");
                        Parms.Add(new Object[] { "nom2", "%" + product.Name + "%" });
                    }

                    sql.Append(" ) and   ");

                    Parms.Add(new Object[] { "nom1", product.Name + "%" });
                    Parms.Add(new Object[] { "nomp", product.Name });
                }


                if (!String.IsNullOrEmpty(product.Description))
                {
                    sql.Append(" a.Description like :nom2  and   ");
                    Parms.Add(new Object[] { "nom2", "%" + product.Description + "%" });
                }

                if (!String.IsNullOrEmpty(product.UpcCode))
                {
                    sql.Append(" a.UpcCode = :nom3     and   ");
                    Parms.Add(new Object[] { "nom3", product.UpcCode });
                }

                if (!String.IsNullOrEmpty(product.Brand))
                {
                    sql.Append(" a.Brand = :nom4     and   ");
                    Parms.Add(new Object[] { "nom4", product.Brand });
                }

                if (!String.IsNullOrEmpty(product.Reference))
                {
                    sql.Append(" a.Reference LIKE :nom5     and   ");
                    Parms.Add(new Object[] { "nom5", "%" + product.Reference + "%" });
                }

                if (!String.IsNullOrEmpty(product.Manufacturer))
                {
                    sql.Append(" a.Manufacturer = :nom6     and   ");
                    Parms.Add(new Object[] { "nom6", product.Manufacturer });
                }

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

                if (product.Status != null && product.Status.StatusID != 0)
                {
                    sql.Append(" a.Status.StatusID = :id3     and   ");
                    Parms.Add(new Object[] { "id3", product.Status.StatusID });
                }


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


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


                if (product.Category != null && product.Category.CategoryID != 0)
                {
                    sql.Append(" a.Category.CategoryID = :pc1     and   ");
                    Parms.Add(new Object[] { "pc1", product.Category.CategoryID });
                }


                if (product.PickMethod != null && product.PickMethod.MethodID != 0)
                {
                    sql.Append(" a.PickMethod.MethodID = :ip3    and   ");
                    Parms.Add(new Object[] { "ip3", product.PickMethod.MethodID });
                }

                if (product.CountRank != 0)
                {
                    sql.Append(" a.CountRank = :icr3    and   ");
                    Parms.Add(new Object[] { "icr3", product.CountRank });
                }
            }

            sql = new StringBuilder(sql.ToString());
            sql.Append(" 1=1 order by a.Name asc ");

            //Console.WriteLine(sql.ToString());

            IQuery query = Factory.Session.CreateQuery(sql.ToString());

            SetParameters(query);
            return(query);
        }
Ejemplo n.º 14
0
        public override IQuery GetHsql(Object data)
        {
            StringBuilder sql          = new StringBuilder("select a from DocumentLine a  ");
            DocumentLine  documentline = (DocumentLine)data;

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


                if (documentline.Product != null && documentline.Product.ProductAccounts != null && documentline.Product.ProductAccounts.Count > 0)
                {
                    sql.Append(" LEFT OUTER JOIN a.Product.ProductAccounts as prodAccount WHERE prodAccount.RowID is not null "); //where a.Product.ProductID =  prodAccount.Product.ProductID ");

                    ProductAccountRelation par = documentline.Product.ProductAccounts[0];

                    if (par.Account != null && par.Account.AccountCode != WmsSetupValues.DEFAULT)
                    {
                        if (par.AccountType.AccountTypeID == AccntType.Customer)
                        {
                            sql.Append(" AND prodAccount.Account.AccountID = a.Document.Customer.AccountID ");
                        }
                        else if (par.AccountType.AccountTypeID == AccntType.Vendor)
                        {
                            sql.Append(" AND prodAccount.Account.AccountID = a.Document.Vendor.AccountID ");
                        }
                    }

                    sql.Append(" AND  1=1 ");

                    //Solo se condiciona si pasa un account.
                    if (par.Account != null && par.Account.AccountCode != WmsSetupValues.DEFAULT)
                    {
                        sql.Append(" AND prodAccount.AccountType.AccountTypeID = :act");
                        Parms.Add(new Object[] { "act", par.AccountType.AccountTypeID });

                        sql.Append(" AND prodAccount.Account.AccountID  = :acc");
                        Parms.Add(new Object[] { "acc", par.Account.AccountID });
                    }



                    sql.Append(" AND ((prodAccount.ItemNumber = :itm" + " OR prodAccount.Code1 = :itm" + " OR prodAccount.Code2 = :itm" + ") ");
                    Parms.Add(new Object[] { "itm", par.ItemNumber });



                    if (!String.IsNullOrEmpty(documentline.Product.ProductCode))
                    {
                        sql.Append(" OR (a.Product.ProductCode = :nom  OR a.Product.UpcCode = :nom )) and ");
                        Parms.Add(new Object[] { "nom", documentline.Product.ProductCode });
                    }

                    else
                    {
                        sql.Append(" ) and   ");
                    }
                }
                else
                {
                    sql.Append(" where ");

                    if (documentline.Product != null && !String.IsNullOrEmpty(documentline.Product.ProductCode))
                    {
                        sql.Append(" (a.Product.ProductCode = :pc4  OR a.Product.UpcCode = :pc4 )  and   ");
                        Parms.Add(new Object[] { "pc4", documentline.Product.ProductCode });
                    }
                }


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

                    //if (!string.IsNullOrEmpty(documentline.Product.ProductCode))
                    //{
                    //    sql.Append(" a.Product.ProductCode = :pc4     and   ");
                    //    Parms.Add(new Object[] { "pc4", documentline.Product.ProductCode });
                    //}
                }



                if (documentline.LineID != 0)
                {
                    sql.Append(" a.LineID = :id     and   ");
                    Parms.Add(new Object[] { "id", documentline.LineID });
                }


                if (documentline.Document != null)
                {
                    if (documentline.Document.DocID != 0)
                    {
                        sql.Append(" a.Document.DocID = :id1     and   ");
                        Parms.Add(new Object[] { "id1", documentline.Document.DocID });
                    }

                    if (!string.IsNullOrEmpty(documentline.Document.DocNumber))
                    {
                        sql.Append(" a.Document.DocNumber = :idn     and   ");
                        Parms.Add(new Object[] { "idn", documentline.Document.DocNumber });
                    }

                    if (!string.IsNullOrEmpty(documentline.Document.Notes))
                    {
                        sql.Append(" a.Document.Notes = :in1     and   ");
                        Parms.Add(new Object[] { "in1", documentline.Document.Notes });
                    }

                    if (documentline.Document.DocType != null && documentline.Document.DocType.DocTypeID != 0)
                    {
                        sql.Append(" a.Document.DocType.DocTypeID = :dt1     and   ");
                        Parms.Add(new Object[] { "dt1", documentline.Document.DocType.DocTypeID });
                    }

                    if (documentline.Document.DocStatus != null && documentline.Document.DocStatus.StatusID != 0)
                    {
                        if (documentline.Document.DocStatus.StatusID == DocStatus.PENDING)
                        {
                            sql.Append(" (a.Document.DocStatus.StatusID = :ds1   OR  a.Document.DocStatus.StatusID = :dsp1) and   ");
                            Parms.Add(new Object[] { "ds1", DocStatus.New });
                            Parms.Add(new Object[] { "dsp1", DocStatus.InProcess });
                        }
                        else
                        {
                            sql.Append(" a.Document.DocStatus.StatusID = :ds1     and   ");
                            Parms.Add(new Object[] { "ds1", documentline.Document.DocStatus.StatusID });
                        }
                    }

                    if (documentline.Document.Company != null && documentline.Document.Company.CompanyID != 0)
                    {
                        sql.Append(" a.Document.Company.CompanyID = :dco1     and   ");
                        Parms.Add(new Object[] { "dco1", documentline.Document.Company.CompanyID });
                    }

                    if (!string.IsNullOrEmpty(documentline.Document.CustPONumber))
                    {
                        sql.Append(" a.Document.CustPONumber = :custpo     and   ");
                        Parms.Add(new Object[] { "custpo", documentline.Document.CustPONumber });
                    }

                    if (documentline.Document.Customer != null && documentline.Document.Customer.AccountID != 0)
                    {
                        sql.Append(" a.Document.Customer.AccountID = :cu1     and   ");
                        Parms.Add(new Object[] { "cu1", documentline.Document.Customer.AccountID });
                    }

                    if (documentline.Document.Vendor != null && documentline.Document.Vendor.AccountID != 0)
                    {
                        sql.Append(" a.Document.Vendor.AccountID = :ve1     and   ");
                        Parms.Add(new Object[] { "ve1", documentline.Document.Vendor.AccountID });
                    }

                    if (documentline.Document.Location != null && documentline.Document.Location.LocationID != 0)
                    {
                        sql.Append(" a.Document.Location.LocationID = :lxc1     and   ");
                        Parms.Add(new Object[] { "lxc1", documentline.Document.Location.LocationID });
                    }
                }

                if (documentline.LineNumber != 0)
                {
                    sql.Append(" a.LineNumber = :id2     and   ");
                    Parms.Add(new Object[] { "id2", documentline.LineNumber });
                }


                if (documentline.LinkDocLineNumber != 0)
                {
                    sql.Append(" a.LinkDocLineNumber = :idl2     and   ");
                    Parms.Add(new Object[] { "idl2", documentline.LinkDocLineNumber });
                }


                if (!string.IsNullOrEmpty(documentline.LinkDocNumber))
                {
                    sql.Append(" a.LinkDocNumber = :idn     and   ");
                    Parms.Add(new Object[] { "idn", documentline.LinkDocNumber });
                }


                if (documentline.LineStatus != null && documentline.LineStatus.StatusID != 0)
                {
                    if (documentline.LineStatus.StatusID == DocStatus.PENDING)
                    {
                        sql.Append(" (a.LineStatus.StatusID = :ds1   OR  a.LineStatus.StatusID = :dsp1) and   ");
                        Parms.Add(new Object[] { "ds1", DocStatus.New });
                        Parms.Add(new Object[] { "dsp1", DocStatus.InProcess });
                    }
                    else
                    {
                        sql.Append(" a.LineStatus.StatusID = :id3     and   ");
                        Parms.Add(new Object[] { "id3", documentline.LineStatus.StatusID });
                    }
                }



                if (documentline.IsDebit != null)
                {
                    sql.Append(" a.IsDebit = :nom1  and   ");
                    Parms.Add(new Object[] { "nom1", documentline.IsDebit });
                }


                if (documentline.Unit != null && documentline.Unit.UnitID != 0)
                {
                    sql.Append(" a.Unit.UnitID = :id5     and   ");
                    Parms.Add(new Object[] { "id5", documentline.Unit.UnitID });
                }

                if (documentline.Date1 != null)
                {
                    sql.Append(" a.Date1 = :nom3     and   ");
                    Parms.Add(new Object[] { "nom3", documentline.Date1 + "%" });
                }

                if (documentline.Date2 != null)
                {
                    sql.Append(" a.Date2 = :nom4     and   ");
                    Parms.Add(new Object[] { "nom4", documentline.Date2 + "%" });
                }

                if (documentline.Date3 != null)
                {
                    sql.Append(" a.Date3 = :nom5     and   ");
                    Parms.Add(new Object[] { "nom5", documentline.Date3 + "%" });
                }

                if (documentline.Date4 != null)
                {
                    sql.Append(" a.Date4 = :nom6     and   ");
                    Parms.Add(new Object[] { "nom6", documentline.Date4 + "%" });
                }

                if (documentline.Date5 != null)
                {
                    sql.Append(" a.Date5 = :nom7     and   ");
                    Parms.Add(new Object[] { "nom7", documentline.Date5 + "%" });
                }



                if (documentline.Location != null && documentline.Location.LocationID != 0)
                {
                    sql.Append(" a.Location.LocationID = :id6     and   ");
                    Parms.Add(new Object[] { "id6", documentline.Location.LocationID });
                }


                if (documentline.Location2 != null && documentline.Location2.LocationID != 0)
                {
                    sql.Append(" a.Location2.LocationID = :idl6     and   ");
                    Parms.Add(new Object[] { "idl6", documentline.Location2.LocationID });
                }


                if (!string.IsNullOrEmpty(documentline.Note))
                {
                    sql.Append(" a.Note = :nom11     and   ");
                    Parms.Add(new Object[] { "nom11", documentline.Note });
                }

                if (!string.IsNullOrEmpty(documentline.CreatedBy))
                {
                    sql.Append(" a.CreatedBy = :nom81     and   ");
                    Parms.Add(new Object[] { "nom81", documentline.CreatedBy });
                }
            }

            //Console.WriteLine(sql.ToString());

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

            SetParameters(query);
            return(query);
        }
Ejemplo n.º 15
0
        private void btnAddCust_Click(object sender, RoutedEventArgs e)
        {
            if (this.txtCust.Account == null)
                return;

            if (string.IsNullOrEmpty(txtCustItem.Text))
                return;

            ProductAccountRelation pa = new ProductAccountRelation
            {
                CreatedBy = App.curUser.UserName,
                CreationDate = DateTime.Now,
                Account = this.txtCust.Account,
                AccountType = new AccountType { AccountTypeID = AccType.Customer },
                IsFromErp = false,
                ItemNumber = this.txtCustItem.Text,
                Product = this.Model.Record,
                Code1 = this.txtCustCode1.Text,
                Code2 = this.txtCustCode2.Text
            };

            AddProductAccount(sender, new DataEventArgs<ProductAccountRelation>(pa));
        }
Ejemplo n.º 16
0
 public void UpdateProductAccountRelation(ProductAccountRelation data)
 {
     try {
     SetService();  SerClient.UpdateProductAccountRelation(data); }
     finally
     {
         SerClient.Close();
         if (SerClient.State == CommunicationState.Faulted)
         SerClient.Abort(); 
     }
 }
        public override IQuery GetHsql(Object data)
        {
            StringBuilder          sql     = new StringBuilder("select a from ProductAccountRelation a    where  ");
            ProductAccountRelation pVendor = (ProductAccountRelation)data;

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

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

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

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

                if (!String.IsNullOrEmpty(pVendor.ItemNumber))
                {
                    sql.Append(" (a.ItemNumber = :nom OR a.Code1 = :nom OR a.Code2 = :nom  )  and   ");
                    Parms.Add(new Object[] { "nom", pVendor.ItemNumber });
                }


                if (!String.IsNullOrEmpty(pVendor.Code1))
                {
                    sql.Append(" a.Code1 = :cod1     and   ");
                    Parms.Add(new Object[] { "cod1", pVendor.Code1 });
                }

                if (!String.IsNullOrEmpty(pVendor.Code2))
                {
                    sql.Append(" a.Code2 = :cod2     and   ");
                    Parms.Add(new Object[] { "cod2", pVendor.Code2 });
                }

                if (pVendor.IsFromErp != null)
                {
                    sql.Append(" a.IsFromErp = :if2     and   ");
                    Parms.Add(new Object[] { "if2", pVendor.IsFromErp });
                }
            }

            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);
        }
Ejemplo n.º 18
0
 internal void UpdateIsMainProductAccount(ProductAccountRelation pa)
 {
     try
     {
         SetService();
         SerClient.UpdateIsMainProductAccount(pa);
     }
     finally
     {
         SerClient.Close();
         if (SerClient.State == CommunicationState.Faulted)
             SerClient.Abort();
     }
 }
Ejemplo n.º 19
0
        void View_AddProductAccount(object sender, DataEventArgs <ProductAccountRelation> e)
        {
            //Crear un objeto de tipo product Account Relation adicionarselo al producto y darle Update.
            if (e.Value == null)
            {
                return;
            }


            if (string.IsNullOrEmpty(e.Value.ItemNumber) && string.IsNullOrEmpty(e.Value.Code1) && string.IsNullOrEmpty(e.Value.Code2))
            {
                Util.ShowError("UPC or Item Number or Alternative Code is required.");
                return;
            }



            try
            {
                if (e.Value.Account == null)
                {
                    e.Value.Account = service.GetAccount(new Account {
                        AccountCode = WmsSetupValues.DEFAULT
                    }).First();
                }


                //Check if no existe ya el UPCcode para otro producto.
                IList <ProductAccountRelation> list;
                if (!string.IsNullOrEmpty(e.Value.ItemNumber))
                {
                    list = service.GetProductAccountRelation(new ProductAccountRelation {
                        ItemNumber = e.Value.ItemNumber
                    });
                    if (list != null && list.Count > 0)
                    {
                        Util.ShowError("Item " + list[0].Product.FullDesc + " with the same code already exists.");
                        return;
                    }
                }

                if (!string.IsNullOrEmpty(e.Value.Code1))
                {
                    list = service.GetProductAccountRelation(new ProductAccountRelation {
                        ItemNumber = e.Value.Code1
                    });
                    if (list != null && list.Count > 0)
                    {
                        Util.ShowError("Item " + list[0].Product.FullDesc + " with the same code already exists.");
                        return;
                    }
                }

                if (!string.IsNullOrEmpty(e.Value.Code2))
                {
                    list = service.GetProductAccountRelation(new ProductAccountRelation {
                        ItemNumber = e.Value.Code2
                    });
                    if (list != null && list.Count > 0)
                    {
                        Util.ShowError("Item " + list[0].Product.FullDesc + " with the same code already exists.");
                        return;
                    }
                }


                ProductAccountRelation newPa = service.SaveProductAccountRelation(e.Value);

                //if (newPa.IsDefault == true)
                //service.UpdateIsMainProductAccount(newPa);
            }
            catch (Exception ex)
            {
                Util.ShowError("Error saving the record. Account could already exists for this product." + ex.Message);
                return;
            }
            finally
            {
                if (e.Value.AccountType.AccountTypeID == AccType.Vendor)
                {
                    View.TxtVendor.Account = null;
                    View.TxtVendor.Text    = "";
                    View.TxtVendCode1.Text = "";
                    View.TxtVendCode2.Text = "";
                    View.TxtVendItem.Text  = "";
                }

                if (e.Value.AccountType.AccountTypeID == AccType.Customer)
                {
                    View.TxtCustomer.Account = null;
                    View.TxtCustomer.Text    = "";
                    View.TxtCustCode1.Text   = "";
                    View.TxtCustCode2.Text   = "";
                    View.TxtCustItem.Text    = "";
                }

                View.ChkIsMain.IsChecked = false;
            }


            if (e.Value.AccountType.AccountTypeID == AccType.Vendor)
            {
                View.Model.Record.ProductAccounts = service.GetProductAccountRelation(
                    new ProductAccountRelation {
                    Product = View.Model.Record
                }).ToList();

                try
                {
                    View.Model.ProductVendorRelation = View.Model.Record.ProductAccounts
                                                       .Where(f => f.AccountType.AccountTypeID == AccType.Vendor || f.Account.AccountCode == WmsSetupValues.DEFAULT).ToList();
                }
                catch { View.Model.ProductVendorRelation = null; }

                View.LvVendorProducts.Items.Refresh();
            }


            else if (e.Value.AccountType.AccountTypeID == AccType.Customer)
            {
                View.Model.Record.ProductAccounts = service.GetProductAccountRelation(
                    new ProductAccountRelation {
                    Product = View.Model.Record
                }).ToList();

                try
                {
                    View.Model.ProductCustRelation = View.Model.Record.ProductAccounts
                                                     .Where(f => f.AccountType.AccountTypeID == AccType.Customer || f.Account.AccountCode == WmsSetupValues.DEFAULT).ToList();
                }
                catch { View.Model.ProductCustRelation = null; }

                View.LvCustProducts.Items.Refresh();
            }
        }
Ejemplo n.º 20
0
        private IList <ProductAccountRelation> GetProductVendors(Product product)
        {
            IList <ProductAccountRelation> productVendor = new List <ProductAccountRelation>();
            ProductAccountRelation         curId         = null;
            AccountType accType = WType.GetAccountType(new AccountType {
                AccountTypeID = AccntType.Vendor
            });

            string curItemVendor = "";

            try
            {
                Command.Connection = new SqlConnection(CurCompany.ErpConnection.CnnString);

                Query = "SELECT VEND_CODE,VENDOR_PART_NO " +
                        " FROM ITEM_REPLENISH_VENDOR WHERE ITEM_CODE = '" + product.ProductCode + "' ";

                ds = ReturnDataSet(Query, null, "ITEM_REPLENISH_VENDOR", Command.Connection);

                if (ds == null || ds.Tables.Count == 0)
                {
                    return(null);
                }

                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    curId = new ProductAccountRelation();

                    curId.ItemNumber = dr["VENDOR_PART_NO"].ToString();

                    //Si esta vacio se sale al proximo
                    if (string.IsNullOrEmpty(curId.ItemNumber))
                    {
                        continue;
                    }

                    curItemVendor = dr["VEND_CODE"].ToString() + ":" + curId.ItemNumber;

                    curId.IsFromErp   = true;
                    curId.AccountType = accType;
                    curId.Account     = WType.GetAccount(new Account {
                        AccountCode = dr["VEND_CODE"].ToString(), BaseType = new AccountType {
                            AccountTypeID = AccntType.Vendor
                        }
                    });
                    curId.Product      = product;
                    curId.CreatedBy    = WmsSetupValues.SystemUser;
                    curId.CreationDate = DateTime.Now;

                    productVendor.Add(curId);
                }


                return(productVendor);
            }
            catch (Exception ex)
            {
                ExceptionMngr.WriteEvent("GetProductVendors:" + curItemVendor, ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection);
                //throw;
                return(null);
            }
        }