public List <MATERIALGPT> CategoriasCliente(string vkorg, string spart, string kunnr, string soc_id) { Cadena cad = new Cadena(); kunnr = cad.completaCliente(kunnr); if (kunnr == null) { kunnr = ""; } List <MATERIALGPT> jd = new List <MATERIALGPT>(); //Validar si hay materiales if (db.MATERIALs.Any(x => x.MATERIALGP_ID != null && x.ACTIVO.Value)) { List <CLIENTE> clil = new List <CLIENTE>(); try { CLIENTE cli = db.CLIENTEs.Where(c => c.KUNNR == kunnr && c.VKORG == vkorg && c.SPART == spart).FirstOrDefault(); //Saber si el cliente es sold to, payer o un grupo //Es un soldto if (cli != null && cli.KUNNR != cli.PAYER && cli.KUNNR != cli.BANNER) { clil.Add(cli); } } catch (Exception e) { Log.ErrorLogApp(e, "Listas", "categoriasCliente"); } var cie = clil; //Obtener el numero de periodos para obtener el historial int?mesesVenta = (db.CONFDIST_CAT.Any(x => x.SOCIEDAD_ID == soc_id) ? db.CONFDIST_CAT.First(x => x.SOCIEDAD_ID == soc_id).PERIODOS : null); int nummonths = (mesesVenta != null ? mesesVenta.Value : DateTime.Now.Month); int imonths = nummonths * -1; //Obtener el rango de los periodos incluyendo el año DateTime ff = DateTime.Today; DateTime fi = ff.AddMonths(imonths); string mi = fi.Month.ToString(); string ai = fi.Year.ToString(); string mf = ff.Month.ToString(); string af = ff.Year.ToString(); int aii = 0; int mii = 0; int aff = 0; int mff = 0; try { aii = Convert.ToInt32(ai); mii = Convert.ToInt32(mi); aff = Convert.ToInt32(af); mff = Convert.ToInt32(mf); } catch (Exception e) { Log.ErrorLogApp(e, "Listas", "categoriasCliente-mesesVenta"); } if (cie != null) { jd = ListaMaterialGroupsCliente(vkorg, spart, kunnr, soc_id, aii, mii, aff, mff); } } var list = new List <MATERIALGPT>(); if (jd.Count > 0) { MATERIALGPT c = FnCommon.ObtenerTotalProducts(db); list.Add(new MATERIALGPT { MATERIALGP_ID = c.MATERIALGP_ID, TXT50 = c.TXT50 }); list.AddRange(jd); } return(list); }