Ejemplo n.º 1
0
        public static List <Object> ImportarArticulos(string datos, string articulos, bool tipoImportacion)
        {
            string[]      arArticulos;
            Int32         iIndex = 0;
            List <Object> listResponse;
            Boolean       articulosAgregados   = true;
            int           numArticulosActuales = 0;

            string[] arArticulos2;
            try
            {
                listResponse = new List <Object>();

                arArticulos = Newtonsoft.Json.JsonConvert.DeserializeObject <string[]>(datos);

                List <MPromoArticulo> listArticulosActuales = null;
                if (articulos != null)
                {
                    listArticulosActuales = Newtonsoft.Json.JsonConvert.DeserializeObject <List <MPromoArticulo> >(articulos);
                }
                int cont = arArticulos.Count();
                numArticulosActuales = listArticulosActuales != null?listArticulosActuales.Count() : 0;

                arArticulos2 = new string[cont + numArticulosActuales];
                for (int i = 0; i < arArticulos.Count(); i++)
                {
                    arArticulos2[i] = arArticulos[i];
                }
                if (tipoImportacion)
                {
                    foreach (MPromoArticulo art in listArticulosActuales)
                    {
                        arArticulos2[cont] = art.U_SO1_ARTICULO;
                        cont++;
                    }
                }
                Promocion oPromocion = null;
                if (tipoImportacion)
                {
                    oPromocion = Promocion.Importar(arArticulos2);
                }
                else
                {
                    oPromocion = Promocion.Importar(arArticulos);
                }
                for (int i = 0; i < arArticulos.Count(); i++)
                {
                    iIndex = oPromocion.Articulos.ToList().FindIndex(x => x.U_SO1_ARTICULO == arArticulos[i]);
                    if (iIndex == -1)
                    {
                        ReportesWeb.Seguridad.RegistroEvento.GuardarError("Promocion AXB: No se agrego el codigo: " + arArticulos[i], null);
                        articulosAgregados = false;
                    }
                }

                if (oPromocion != null)
                {
                    listResponse.Add("OK");
                    listResponse.Add(oPromocion.Articulos);
                    listResponse.Add(articulosAgregados);
                }
                else
                {
                    listResponse.Add("Error");
                    listResponse.Add("");
                }
            }
            catch (Exception oError)
            {
                listResponse = new List <Object>();
                ReportesWeb.Seguridad.RegistroEvento.GuardarError("Error: ", oError);
                listResponse.Add("Error");
                listResponse.Add(oError.Message);
            }
            return(listResponse);
        }