Exemplo n.º 1
0
        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);
        }