public JsonResult ProcesarCotizacion(int IdCliente, string Comentario)
        {
            var respuesta = "Cotizacion Procesada!";
            try {

            if (TempData["ListaProductos"] != null)
            {
                ListaProductos = (List<ProductoCotizacion>)TempData["ListaProductos"];
                ListaMateriales= (List<MaterialCotizacion>)TempData["MateralCotizacion"];
                Cotizacion Cot = new Cotizacion();
                Cot.IdCliente = IdCliente;
                Cot.Estado = "P";
                Cot.Fecha = DateTime.Now;
                Cot.FechaActualizacion = DateTime.Now;
                Cot.Comentario = Comentario;

                foreach (var item in ListaProductos)
                {
                    Cot.MontoParcial += item.Subtotal;
                }
                Cot.Usuario= Session["UsuarioActual"].ToString();
                    db.Cotizacion.Add(Cot);
                    db.SaveChanges();

                    foreach (var item in ListaMateriales)
                    {
                    item.IdCotizacion = Cot.IdCotizacion;
                    db.MaterialCotizacion.Add(item);
                     }
                    foreach (var item in ListaProductos)
                    {
                        item.IdCotizacion = Cot.IdCotizacion;
                        if (item.Tipo == "Mat")
                        {
                            MaterialItemCotizacion M = new MaterialItemCotizacion();
                            M.IdCotizacion= Cot.IdCotizacion;
                            M.IdMaterial = item.IdProducto;
                            M.Cantidad = item.CantMat;
                            M.Ancho = item.Ancho;
                            M.Alto = item.Alto;
                            M.Subtotal = item.Subtotal;
                            M.IdColor = item.IdColor;
                            db.MaterialItemCotizacion.Add(M);
                        }
                        else
                        {
                            item.CantProducto = (int)item.CantMat;
                            db.ProductoCotizacion.Add(item);
                        }

                    }
                    db.SaveChanges();
                    LimpiarListas();
                }
            else
            {
                respuesta = "Debe Agregar Productos a la Cotizacion!";
            }
            }
            catch(Exception e)
            {
                respuesta = "Un error inesperado a ocurrido, contacte al administrador del sistema\n\n" + e;
                return Json(respuesta,
              JsonRequestBehavior.AllowGet);
            }

            return Json(respuesta,
              JsonRequestBehavior.AllowGet);
        }
        public JsonResult GuardarCotizacionEdit(int id,int IdCliente, string Comentario)
        {
            var respuesta = "Cotizacion Guardada!";
            try
            {

                if (TempData["ListaProductos"] != null)
                {
                    ListaProductos = (List<ProductoCotizacion>)TempData["ListaProductos"];
                    ListaMateriales= (List<MaterialCotizacion>)TempData["MateralCotizacion"];

                   var  ListaP = (from s in db.ProductoCotizacion
                                      where s.IdCotizacion == id
                                      select s).ToList();
                    var ListaPM = (from s in db.MaterialItemCotizacion
                                  where s.IdCotizacion == id
                                  select s).ToList();
                    var ListaM = (from s in db.MaterialCotizacion
                                       where s.IdCotizacion == id
                                       select s).ToList();
                    Cotizacion Cotiz = db.Cotizacion.Find(id);
                    Cotiz.IdCliente = IdCliente;
                    Cotiz.Estado = "C";
                    Cotiz.FechaActualizacion = DateTime.Now;
                    Cotiz.Comentario = Comentario;
                    Cotiz.MontoParcial = 0;
                    foreach (var item in ListaProductos)
                    {
                        Cotiz.MontoParcial += item.Subtotal;
                    }
                    Cotiz.Usuario = Session["UsuarioActual"].ToString();
                    db.Entry(Cotiz).State = EntityState.Modified;
                    db.SaveChanges();

                    foreach (var item in ListaM)
                    {
                        db.MaterialCotizacion.Attach(item);
                        db.MaterialCotizacion.Remove(item);
                        db.SaveChanges();
                    }

                    foreach (var item in ListaP)
                    {
                            db.ProductoCotizacion.Attach(item);
                            db.ProductoCotizacion.Remove(item);
                            db.SaveChanges();

                    }
                        foreach (var item in ListaPM)
                        {
                                db.MaterialItemCotizacion.Attach(item);
                                db.MaterialItemCotizacion.Remove(item);
                                db.SaveChanges();

                        }
                        foreach (var item in ListaMateriales)
                    {
                        item.IdCotizacion = Cotiz.IdCotizacion;
                        db.MaterialCotizacion.Add(item);
                    }
                    foreach (var item in ListaProductos)
                    {
                        item.IdCotizacion = Cotiz.IdCotizacion;
                        if (item.Tipo == "Mat")
                        {
                            MaterialItemCotizacion M = new MaterialItemCotizacion();
                            M.IdCotizacion = Cotiz.IdCotizacion;
                            M.IdMaterial = item.IdProducto;
                            M.Cantidad = item.CantMat;
                            M.Ancho = item.Ancho;
                            M.Alto = item.Alto;
                            M.IdColor = item.IdColor;
                            M.Subtotal = item.Subtotal;
                            db.MaterialItemCotizacion.Add(M);
                        }
                        else
                        {
                            item.CantProducto = (int)item.CantMat;
                            db.ProductoCotizacion.Add(item);
                        }
                    }
                    db.SaveChanges();

                    LimpiarListas();
                }
                else
                {
                    respuesta = "Debe Agregar Productos a la Cotizacion!";
                }
            }
            catch (Exception e)
            {
                respuesta = "Un error inesperado a ocurrido, contacte al administrador del sistema\n\n" + e;
                return Json(respuesta,
              JsonRequestBehavior.AllowGet);
            }

            return Json(respuesta,
              JsonRequestBehavior.AllowGet);
        }