private IList <Product> GetProducts(string sWhere) { Product tmpData = null; IList <Product> list = new List <Product>(); IList <Unit> unitList = GetAllUnits(); IList <Unit> curList = unitList; Unit curUnit; ProductCategory curCategory; string flag = ""; Status active = WType.GetStatus(new Status { StatusID = EntityStatus.Active }); try { Command.Connection = new SqlConnection(CurCompany.ErpConnection.CnnString); Query = "select i.ITEMNO,i.DESCRIPT,i.CATEGORY, i.MATRIX_ITEM_TYPE,i.SERIALIZE,i.FORCE_LOT,i.LINK_SERIAL, i.COST, 'EACH' as SALEUNIT,'EACH' as PURCHUNIT, isNull(m.DESCRIPT,'') AS Manuf " + " from items i LEFT OUTER JOIN MANUFACT m ON i.MANUCODE = m.code where i.ACTIVE ='T' "; // AND m.ACTIVE ='T' ds = ReturnDataSet(Query, sWhere, "items", Command.Connection); Console.WriteLine(ds.Tables.Count.ToString()); if (ds == null || ds.Tables.Count == 0) { return(null); } foreach (DataRow dr in ds.Tables[0].Rows) { try { //Map Properties tmpData = new Product(); flag = "BASE"; tmpData.Company = CurCompany; tmpData.Name = dr["DESCRIPT"].ToString(); tmpData.ProductCode = dr["ITEMNO"].ToString(); tmpData.Description = dr["DESCRIPT"].ToString(); tmpData.IsKit = (dr["MATRIX_ITEM_TYPE"].ToString() == "3") ? true : false; // CAA ???? tmpData.ErpTrackOpt = IsTrackOpt(dr["FORCE_LOT"].ToString(), dr["SERIALIZE"].ToString()); tmpData.Manufacturer = dr["Manuf"].ToString(); // tmpData.Reference = dr["f120_rowid"].ToString(); /* * try { tmpData.CountRank = ; * catch { } */ // ??? AVG_COST ??? try { tmpData.ProductCost = double.Parse(dr["COST"].ToString()); } catch { } tmpData.Status = active; //tmpData.Status = GetProductStatus(int.Parse(dr["ITEMTYPE"].ToString())); /* * try { tmpData.Weight = double.Parse(dr["ITEMSHWT"].ToString()) / 100; } * catch { } * // ??? */ //Basic Unit flag = "BASEUNIT"; curUnit = new Unit(); curUnit.Company = CurCompany; curUnit.ErpCodeGroup = WmsSetupValues.DEFAULT; curUnit.BaseAmount = 1; try { tmpData.BaseUnit = WType.GetUnit(curUnit); } catch { } tmpData.IsFromErp = true; tmpData.PrintLabel = true; //Product Category if (!string.IsNullOrEmpty(dr["CATEGORY"].ToString())) { flag = "CATEGORY"; try { curCategory = new ProductCategory(); curCategory.Company = CurCompany; curCategory.ErpCode = dr["CATEGORY"].ToString(); tmpData.Category = WType.GetProductCategory(curCategory); } catch { } } //Purchase Units try { curUnit = new Unit(); curUnit.Company = CurCompany; curUnit.ErpCodeGroup = WmsSetupValues.DEFAULT; curUnit.ErpCode = dr["PURCHUNIT"].ToString(); tmpData.PurchaseUnit = WType.GetUnit(curUnit); } catch { } //Sale Unit try { curUnit = new Unit(); curUnit.Company = CurCompany; curUnit.ErpCodeGroup = WmsSetupValues.DEFAULT; curUnit.ErpCode = dr["SALEUNIT"].ToString(); tmpData.SaleUnit = WType.GetUnit(curUnit); } catch { } //Obteniendo las unidades que ese producto puede tener flag = "UNITLIST"; curList = unitList; // .Where(unit => unit.ErpCodeGroup == dr["f120_id_unidad_inventario"].ToString()).ToList(); flag = "PRODUCT_TRACK"; tmpData.ProductTrack = GetProductTrack(tmpData.ErpTrackOpt, tmpData); flag = "PRODUCT_UNITS"; tmpData.ProductUnits = GetProductUnits(tmpData, curList); // CAA ?? flag = "VENDORS"; tmpData.ProductAccounts = GetProductVendors(tmpData); // CAA ??? //Productos Alternos. /* * flag = "ALTERN"; * try * { * tmpData.AlternProducts = GetAlternateProducts(tmpData); * } * catch (Exception ex) { Console.WriteLine(flag + " " + ex.Message); } */ list.Add(tmpData); } catch (Exception ex) { Console.WriteLine(flag + " " + ex.Message); } } return(list); } catch (Exception ex) { ExceptionMngr.WriteEvent("GetProducts" + tmpData.ProductCode + "," + flag, ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection); //throw; return(null); } }
private IList <Product> GetProducts(string sWhere) { Product tmpData = null; IList <Product> list = new List <Product>(); IList <Unit> unitList = GetAllUnits(); IList <Unit> curList = unitList; Unit curUnit; ProductCategory curCategory; string flag = ""; try { //Lamar los documents que necesita del Erp usando econnect //sWhere = string.IsNullOrEmpty(sWhere) ? "ITEMTYPE=1" : "ITEMTYPE=1 AND " + sWhere; ds = DynamicsGP_ec.GetDataSet(DynamicsGP_ec.RetreiveData("Item", false, 2, 0, sWhere, true)); Console.WriteLine(ds.Tables.Count.ToString()); if (ds.Tables.Count == 0) { return(list); } //Company company = WType.GetDefaultCompany(); //Status status = WType.GetStatus(new Status { StatusID = EntityStatus.Active }); //En el dataset, Tables: 1 - Item foreach (DataRow dr in ds.Tables[1].Rows) { try { //Map Properties tmpData = new Product(); flag = "BASE"; tmpData.Company = CurCompany; tmpData.Name = dr["ITEMDESC"].ToString(); tmpData.ProductCode = dr["ITEMNMBR"].ToString(); tmpData.Description = dr["ITEMDESC"].ToString(); tmpData.IsKit = (dr["ITEMTYPE"].ToString() == "4") ? true : false; tmpData.ErpTrackOpt = short.Parse(dr["ITMTRKOP"].ToString()); tmpData.Manufacturer = dr["ITMSHNAM"].ToString(); tmpData.Reference = dr["ITMGEDSC"].ToString(); try { tmpData.CountRank = short.Parse(dr["ABCCODE"].ToString()); } catch { } try { tmpData.ProductCost = double.Parse(dr["CURRCOST"].ToString()); } catch { } tmpData.Status = GetProductStatus(int.Parse(dr["ITEMTYPE"].ToString())); try { tmpData.Weight = double.Parse(dr["ITEMSHWT"].ToString()) / 100; } catch { } //Basic Unit flag = "BASEUNIT"; curUnit = new Unit(); curUnit.Company = CurCompany; curUnit.ErpCodeGroup = dr["UOMSCHDL"].ToString(); curUnit.BaseAmount = 1; tmpData.BaseUnit = WType.GetUnit(curUnit); tmpData.IsFromErp = true; tmpData.PrintLabel = true; //Product Category if (!string.IsNullOrEmpty(dr["ITMCLSCD"].ToString())) { flag = "CATEGORY"; try { curCategory = new ProductCategory(); curCategory.Company = CurCompany; curCategory.ErpCode = dr["ITMCLSCD"].ToString(); tmpData.Category = WType.GetProductCategory(curCategory); } catch { } } //Purchase Units if (!string.IsNullOrEmpty(dr["PRCHSUOM"].ToString())) { try { curUnit = new Unit(); curUnit.Company = CurCompany; curUnit.ErpCodeGroup = dr["UOMSCHDL"].ToString(); curUnit.ErpCode = dr["PRCHSUOM"].ToString(); tmpData.PurchaseUnit = WType.GetUnit(curUnit); } catch { } } //Sale Unit if (!string.IsNullOrEmpty(dr["SELNGUOM"].ToString())) { try { curUnit = new Unit(); curUnit.Company = CurCompany; curUnit.ErpCodeGroup = dr["UOMSCHDL"].ToString(); curUnit.ErpCode = dr["SELNGUOM"].ToString(); tmpData.SaleUnit = WType.GetUnit(curUnit); } catch { } } //Obteniendo las unidades que ese producto puede tener flag = "UNITLIST"; curList = unitList.Where(unit => unit.ErpCodeGroup == dr["UOMSCHDL"].ToString()).ToList(); flag = "PRODUCT_TRACK"; tmpData.ProductTrack = GetProductTrack(int.Parse(dr["ITMTRKOP"].ToString()), tmpData); flag = "PRODUCT_UNITS"; tmpData.ProductUnits = GetProductUnits(tmpData, curList); flag = "VENDORS"; tmpData.ProductAccounts = GetProductVendors(tmpData); //Productos Alternos. flag = "ALTERN"; try { tmpData.AlternProducts = GetAlternateProducts(tmpData, dr["ALTITEM1"].ToString().Trim(), dr["ALTITEM2"].ToString().Trim()); } catch (Exception ex) { Console.WriteLine(flag + " " + ex.Message); } list.Add(tmpData); } catch (Exception ex) { Console.WriteLine(flag + " " + ex.Message); } } return(list); } catch (Exception ex) { ExceptionMngr.WriteEvent("GetProducts" + tmpData.ProductCode + "," + flag, ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection); //throw; return(null); } }
private IList <Product> GetProducts(string sWhere) { Product tmpData = null; IList <Product> list = new List <Product>(); IList <Unit> unitList = GetAllUnits(); IList <Unit> curList = unitList; Unit curUnit; ProductCategory curCategory; string flag = ""; Status active = WType.GetStatus(new Status { StatusID = EntityStatus.Active }); try { Command.Connection = new SqlConnection(CurCompany.ErpConnection.CnnString); Query = GetErpQuery("ITEMS"); ds = ReturnDataSet(Query, sWhere, "ITEMS", Command.Connection); Console.WriteLine(ds.Tables.Count.ToString()); if (ds == null || ds.Tables.Count == 0) { return(null); } foreach (DataRow dr in ds.Tables[0].Rows) { try { //Map Properties tmpData = new Product(); flag = "BASE"; tmpData.Company = CurCompany; //ID de la tabla t120_item tmpData.ProductCode = dr["f120_id"].ToString(); tmpData.Name = dr["f120_referencia"].ToString().Trim() + " - " + dr["f120_descripcion_corta"].ToString(); tmpData.Description = dr["f120_descripcion"].ToString(); tmpData.IsKit = (dr["f120_ind_tipo_item"].ToString() == "3") ? true : false; tmpData.ErpTrackOpt = IsTrackOpt(dr["f120_ind_lote"].ToString(), dr["f120_ind_serial"].ToString()); tmpData.Manufacturer = ""; //ID de la tabla t121_item_ext tmpData.UpcCode = dr["extid"].ToString(); tmpData.Reference = dr["f120_referencia"].ToString(); tmpData.Status = active; //Basic Unit flag = "BASEUNIT"; curUnit = new Unit(); curUnit.Company = CurCompany; curUnit.ErpCodeGroup = WmsSetupValues.DEFAULT; //dr["f120_id_unidad_inventario"].ToString(); curUnit.BaseAmount = 1; try { tmpData.BaseUnit = WType.GetUnit(curUnit); } catch { } tmpData.IsFromErp = true; tmpData.PrintLabel = true; //Product Category if (!string.IsNullOrEmpty(dr["f120_id_tipo_inv_serv"].ToString())) { flag = "CATEGORY"; try { curCategory = new ProductCategory(); curCategory.Company = CurCompany; curCategory.ErpCode = dr["f120_id_tipo_inv_serv"].ToString(); tmpData.Category = WType.GetProductCategory(curCategory); } catch { } } //Purchase Units try { curUnit = new Unit(); curUnit.Company = CurCompany; curUnit.ErpCodeGroup = WmsSetupValues.DEFAULT; curUnit.ErpCode = dr["f120_id_unidad_inventario"].ToString(); tmpData.PurchaseUnit = WType.GetUnit(curUnit); } catch { } //Sale Unit try { curUnit = new Unit(); curUnit.Company = CurCompany; curUnit.ErpCodeGroup = WmsSetupValues.DEFAULT; curUnit.ErpCode = dr["f120_id_unidad_orden"].ToString(); tmpData.SaleUnit = WType.GetUnit(curUnit); } catch { } //Obteniendo las unidades que ese producto puede tener flag = "UNITLIST"; curList = unitList; // .Where(unit => unit.ErpCodeGroup == dr["f120_id_unidad_inventario"].ToString()).ToList(); flag = "PRODUCT_TRACK"; tmpData.ProductTrack = GetProductTrack(tmpData.ErpTrackOpt, tmpData); flag = "PRODUCT_UNITS"; tmpData.ProductUnits = GetProductUnits(tmpData, curList); /* * flag = "VENDORS"; * tmpData.ProductAccounts = GetProductVendors(tmpData); */ //Productos Alternos. flag = "ALTERN"; try { tmpData.AlternProducts = GetAlternateProducts(tmpData); } catch (Exception ex) { Console.WriteLine(flag + " " + ex.Message); } list.Add(tmpData); } catch (Exception ex) { Console.WriteLine(flag + " " + ex.Message); } } return(list); } catch (Exception ex) { ExceptionMngr.WriteEvent("GetProducts" + tmpData.ProductCode + "," + flag, ListValues.EventType.Error, ex, null, ListValues.ErrorCategory.ErpConnection); //throw; return(null); } }