Exemple #1
0
 public static string add_Promocion(Promocion d)
 {
     return "{" +
         '"' + "IdPromocion" + '"' + ": " + d.IdPromocion.ToString() + ',' +
         '"' + "IdMoneda" + '"' + ": " + d.IdMoneda.ToString() + ',' +
         '"' + "Nombre" + '"' + ": " + '"' + d.Nombre + '"' + ',' +
         '"' + "Descripcion" + '"' + ": " + '"' + d.Descripcion + '"' + ',' +
         '"' + "Semana" + '"' + ": " + (d.Semana ? "true" : "false") + ',' +
         '"' + "PrecioUnitario" + '"' + ": " + d.PrecioUnitario.ToString() + ',' +
         '"' + "FechaInicio" + '"' + ": " + '"' + Utils.dateToJson(d.FechaInicio) + '"' + ',' +
         '"' + "FechaFin" + '"' + ": " + '"' + Utils.dateToJson(d.FechaFin) + '"' + ',' +
         '"' + "Imagen" + '"' + ": " + '"' + d.Imagen + '"' +
         "}";
 }
        public ActionResult Create(string nombrePromocion, string desc, string inicio, string fin, int moneda,
            string obs,int[] cantidad, int[] selectedProducts, int precio = 0, bool estadoPromocion = false, bool semana = false)
        {
            //Declaraciones Generales para los request

            ASCIIEncoding encoding = new ASCIIEncoding();
            HttpWebRequest webrequest;
            HttpWebResponse webresponse;
            byte[] data;
            Stream newStream;
            ResponseBD u = new ResponseBD();

            //Select Producto
            List<Producto> sp = new List<Producto>();

            data = encoding.GetBytes("");

            webrequest = (HttpWebRequest)WebRequest.Create(Constantes.SelectAll_Producto);
            webrequest.Method = Constantes.PostMethod;
            webrequest.ContentType = Constantes.ContentType;
            webrequest.ContentLength = data.Length;

            newStream = webrequest.GetRequestStream();
            newStream.Write(data, 0, data.Length);
            newStream.Close();

            webresponse = (HttpWebResponse)webrequest.GetResponse();

            using (var reader = new StreamReader(webresponse.GetResponseStream()))
            {
                JavaScriptSerializer js = new JavaScriptSerializer();
                var objText = reader.ReadToEnd();
                sp = (List<Producto>)js.Deserialize(objText, typeof(List<Producto>));
            }

            //Obtener productos seleccionados

            List<Producto> p = (List<Producto>)Session["selectedProducts"];

            if (selectedProducts == null)
            {
                //Guardar promoción

                Promocion promo = new Promocion()
                {
                    IdPromocion = 0,
                    Nombre = nombrePromocion,
                    Descripcion = desc,
                    PrecioUnitario = precio,
                    //Observaciones = obs,
                    IdMoneda = moneda,
                    Semana = semana,
                    FechaInicio = DateTime.ParseExact(DateTime.Now.ToString("dd/MM/yyyy"), "dd/MM/yyyy", CultureInfo.InvariantCulture),
                    FechaFin= DateTime.ParseExact(DateTime.Now.ToString("dd/MM/yyyy"), "dd/MM/yyyy", CultureInfo.InvariantCulture),
                    Imagen = "Imagen"
                };

                data = encoding.GetBytes(JsonSerializer.add_Promocion(promo));

                webrequest = (HttpWebRequest)WebRequest.Create(Constantes.Add_Promocion);
                webrequest.Method = Constantes.PostMethod;
                webrequest.ContentType = Constantes.ContentType;
                webrequest.ContentLength = data.Length;

                newStream = webrequest.GetRequestStream();
                newStream.Write(data, 0, data.Length);
                newStream.Close();

                webresponse = (HttpWebResponse)webrequest.GetResponse();

                using (var reader = new StreamReader(webresponse.GetResponseStream()))
                {
                    JavaScriptSerializer js = new JavaScriptSerializer();
                    var objText = reader.ReadToEnd();
                    u = (ResponseBD)js.Deserialize(objText, typeof(ResponseBD));
                }

                if (u.Flujo.Equals(Constantes.OK))
                {
                    int id = Int32.Parse(u.Mensaje);

                    //Agregar Productos seleccionados

                    int i = 0;

                    foreach (var prod in p)
                    {
                        DetallePromocion det = new DetallePromocion()
                        {
                            IdPromocion = id,
                            IdDetallePromocion = i + 1,
                            Cantidad = cantidad[i],
                            PrecioUnitario = prod.PrecioUnitario,
                            IdProducto = prod.IdProducto
                        };

                        data = encoding.GetBytes(JsonSerializer.add_DetallePromocion(det));

                        webrequest = (HttpWebRequest)WebRequest.Create(Constantes.Add_DetallePromocion);
                        webrequest.Method = Constantes.PostMethod;
                        webrequest.ContentType = Constantes.ContentType;
                        webrequest.ContentLength = data.Length;

                        newStream = webrequest.GetRequestStream();
                        newStream.Write(data, 0, data.Length);
                        newStream.Close();

                        webresponse = (HttpWebResponse)webrequest.GetResponse();

                        using (var reader = new StreamReader(webresponse.GetResponseStream()))
                        {
                            JavaScriptSerializer js = new JavaScriptSerializer();
                            var objText = reader.ReadToEnd();
                            u = (ResponseBD)js.Deserialize(objText, typeof(ResponseBD));
                        }

                        if (u.Flujo.Equals("ERROR"))
                        {
                            ViewBag.Mensaje = u.Mensaje;
                            ViewBag.Productos = sp;
                            return View(p);
                        }

                        i++;
                    }

                    return RedirectToAction("List");
                }
                else
                {
                    ViewBag.Mensaje = u.Mensaje;
                    ViewBag.Productos = sp;
                    return View(p);
                }
            }

            foreach (var item in selectedProducts)
            {
                Producto prd = new Producto();

                data = encoding.GetBytes(JsonSerializer.selectById_Producto(item));

                webrequest = (HttpWebRequest)WebRequest.Create(Constantes.SelectById_Producto);
                webrequest.Method = Constantes.PostMethod;
                webrequest.ContentType = Constantes.ContentType;
                webrequest.ContentLength = data.Length;

                newStream = webrequest.GetRequestStream();
                newStream.Write(data, 0, data.Length);
                newStream.Close();

                webresponse = (HttpWebResponse)webrequest.GetResponse();

                using (var reader = new StreamReader(webresponse.GetResponseStream()))
                {
                    JavaScriptSerializer js = new JavaScriptSerializer();
                    var objText = reader.ReadToEnd();
                    prd = (Producto)js.Deserialize(objText, typeof(Producto));
                }

                p.Add(prd);

            }

            foreach (var i in p)
            {
                sp.RemoveAll(s => s.IdProducto == i.IdProducto);
            }

            ViewBag.Productos = sp;

            Session["selectedProducts"] = p;

            //Select Moneda
            data = encoding.GetBytes("");

            webrequest = (HttpWebRequest)WebRequest.Create(Constantes.Combo_Moneda);
            webrequest.Method = Constantes.PostMethod;
            webrequest.ContentType = Constantes.ContentType;
            webrequest.ContentLength = data.Length;

            newStream = webrequest.GetRequestStream();
            newStream.Write(data, 0, data.Length);
            newStream.Close();

            webresponse = (HttpWebResponse)webrequest.GetResponse();

            using (var reader = new StreamReader(webresponse.GetResponseStream()))
            {
                JavaScriptSerializer js = new JavaScriptSerializer();
                var objText = reader.ReadToEnd();
                ViewBag.Moneda = (List<Moneda>)js.Deserialize(objText, typeof(List<Moneda>));
            }

            return View(p);
        }