Example #1
0
        public ActionResult Edit(int?id, int?menu)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            tcamptaller campana2 = context.tcamptaller.Find(id);

            if (campana2 == null)
            {
                TempData["mensaje_error"] = "No se introdujo un número de campaña Válido";
                return(RedirectToAction("Create"));
            }
            else
            {
                var campana = new CampanaTallerModel
                {
                    id             = id,
                    numerogwm      = campana2.numerogwm,
                    Descripcion    = campana2.Descripcion,
                    estado         = campana2.estado,
                    fecha_creacion = campana2.fecha_creacion,
                    fecha_inicio   = campana2.fecha_inicio.ToString("yyyy/MM/dd", new CultureInfo("en-US")),
                    fecha_fin      = campana2.fecha_fin != null?campana2.fecha_fin.Value.ToString("yyyy/MM/dd", new CultureInfo("en-US")) : "",
                                         fec_actualizacion    = campana2.fec_actualizacion,
                                         id_licencia          = campana2.id_licencia,
                                         nombre               = campana2.nombre,
                                         razon_inactivo       = campana2.razon_inactivo,
                                         referencia           = campana2.referencia,
                                         userid_creacion      = campana2.userid_creacion,
                                         user_idactualizacion = campana2.user_idactualizacion,
                                         numerocircular       = campana2.numcircular
                };

                ConsultaDatosCreacion(campana);
                BuscarFavoritos(menu);
                return(View(campana));
            }
        }
Example #2
0
        public ActionResult Create(CampanaTallerModel modelo2, HttpPostedFileBase excelfile, int?menu)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var modelo = new tcamptaller
                    {
                        Descripcion = modelo2.Descripcion,
                        nombre      = modelo2.Descripcion,
                        estado      = modelo2.estado,
                        id_licencia = 1,
                        referencia  = modelo2.referencia,
                        numerogwm   = "0",
                        numcircular = modelo2.numerocircular
                    };
                    var fechaini = DateTime.Now;
                    var fechafin = DateTime.Now;

                    var convertir = DateTime.TryParse(modelo2.fecha_inicio, out fechaini);
                    if (convertir == true)
                    {
                        modelo.fecha_inicio = fechaini;
                    }
                    var convertir2 = DateTime.TryParse(modelo2.fecha_fin, out fechafin);

                    if (convertir2 == true)
                    {
                        modelo.fecha_fin = fechafin;
                    }
                    List <string> listaVinesAgregados = new List <string>();
                    string        cargueExcel         = Request["checkCargueExcel"];
                    if (cargueExcel == "on")
                    {
                        //Aqui va si se carga un archivo de excel

                        modelo.fecha_creacion  = DateTime.Now;
                        modelo.userid_creacion = Convert.ToInt32(Session["user_usuarioid"]);
                        context.tcamptaller.Add(modelo);
                        int guardarCampana = context.SaveChanges();

                        if (guardarCampana > 0)
                        {
                            tcamptaller buscarUltimaCampana = context.tcamptaller.OrderByDescending(x => x.id).FirstOrDefault();
                            string      path = "";
                            if (excelfile == null || excelfile.ContentLength == 0)
                            {
                                TempData["mensaje_error"] = "El archivo esta vacio o no es un archivo valido!";
                                return(View());
                            }

                            if (excelfile.FileName.EndsWith("xls") || excelfile.FileName.EndsWith("xlsx"))
                            {
                                path = Server.MapPath("~/Content/" + excelfile.FileName);
                                //Validacion para cuando el archivo esta en uso y no puede ser usado desde visual
                                try
                                {
                                    if (System.IO.File.Exists(path))
                                    {
                                        System.IO.File.Delete(path);
                                    }

                                    excelfile.SaveAs(path);
                                }
                                catch (IOException)
                                {
                                    TempData["mensaje_error"] =
                                        "El archivo esta siendo usado por otro proceso, asegurece de cerrarlo o cree una copia del archivo e intente de nuevo!";
                                    BuscarFavoritos(menu);
                                    return(View());
                                }


                                string vinesNoCargados = "";

                                ExcelPackage   package   = new ExcelPackage(new FileInfo(path));
                                ExcelWorksheet workSheet = package.Workbook.Worksheets[1];

                                int totalFilas = workSheet.Dimension.End.Row;
                                for (int i = workSheet.Dimension.Start.Row + 2; i <= workSheet.Dimension.End.Row; i++)
                                {
                                    try
                                    {
                                        string vin = workSheet.Cells[i, 2].Value.ToString();
                                        if (vin.Length < 13 || vin.Length > 17)
                                        {
                                            vinesNoCargados += vin + ", ";
                                        }
                                        else
                                        {
                                            context.tcamptallervin.Add(new tcamptallervin
                                            {
                                                id_camp = buscarUltimaCampana != null ? buscarUltimaCampana.id : 0,
                                                vin     = vin.Trim()
                                            });
                                            listaVinesAgregados.Add(vin.Trim());
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        if (ex is ArgumentOutOfRangeException || ex is FormatException)
                                        {
                                            excelfile.InputStream.Close();
                                            excelfile.InputStream.Dispose();
                                            System.IO.File.Delete(path);
                                            TempData["mensaje_error"] =
                                                "Error al leer el archivo, verifique que los datos estan bien escritos, linea " +
                                                i;
                                            return(RedirectToAction("PedidoEnFirme", "gestionVhNuevo", new { menu }));
                                        }
                                    }
                                }

                                var vinesSiTieneCampana = (from vehiculo in context.icb_vehiculo
                                                           where listaVinesAgregados.Contains(vehiculo.vin)
                                                           select new
                                {
                                    vehiculo.plan_mayor,
                                    vehiculo.propietario
                                }).ToList();
                                icb_sysparameter buscarNit = context.icb_sysparameter.FirstOrDefault(x => x.syspar_cod == "P33");
                                int nitHomaz = buscarNit != null?Convert.ToInt32(buscarNit.syspar_value) : 0;

                                foreach (var vehiculo in vinesSiTieneCampana)
                                {
                                    context.crm_campvintaller.Add(new crm_campvintaller
                                    {
                                        idcamp          = buscarUltimaCampana.id,
                                        planmayor       = vehiculo.plan_mayor,
                                        idtercero       = vehiculo.propietario ?? nitHomaz,
                                        fec_creacion    = DateTime.Now,
                                        userid_creacion = Convert.ToInt32(Session["user_usuarioid"])
                                    });
                                }

                                int guardarVines = context.SaveChanges();
                                if (guardarVines > 0)
                                {
                                    if (vinesNoCargados.Length > 5)
                                    {
                                        TempData["mensaje_error"] =
                                            "El registro de la nueva campaña se agrego exitosamente, pero algunos vines no se cargaron: " +
                                            vinesNoCargados;
                                    }

                                    TempData["mensaje"] = "El registro de la nueva campaña se agrego exitosamente!";
                                }

                                excelfile.InputStream.Close();
                                excelfile.InputStream.Dispose();
                            }
                        }
                        else
                        {
                            TempData["mensaje_error"] = "Error con base de datos, revise su conexion!";
                        }
                    }
                    else
                    {
                        //Aqui va si se hace un cargue de vines manualmente
                        modelo.fecha_creacion  = DateTime.Now;
                        modelo.userid_creacion = Convert.ToInt32(Session["user_usuarioid"]);
                        context.tcamptaller.Add(modelo);
                        int guardarCampana = context.SaveChanges();

                        if (guardarCampana > 0)
                        {
                            tcamptaller buscarUltimaCampana = context.tcamptaller.OrderByDescending(x => x.id).FirstOrDefault();
                            int         cantidadVines       = Convert.ToInt32(Request["cantidadVines"]);
                            for (int i = 1; i <= cantidadVines; i++)
                            {
                                string vinEncontrado = Request["vin" + i];
                                if (!string.IsNullOrEmpty(vinEncontrado))
                                {
                                    context.tcamptallervin.Add(new tcamptallervin
                                    {
                                        id_camp = buscarUltimaCampana != null ? buscarUltimaCampana.id : 0,
                                        vin     = vinEncontrado.Trim()
                                    });
                                    listaVinesAgregados.Add(vinEncontrado.Trim());
                                }
                            }

                            var vinesSiTieneCampana = (from vehiculo in context.icb_vehiculo
                                                       where listaVinesAgregados.Contains(vehiculo.vin)
                                                       select new
                            {
                                vehiculo.plan_mayor,
                                vehiculo.propietario
                            }).ToList();
                            icb_sysparameter buscarNit = context.icb_sysparameter.FirstOrDefault(x => x.syspar_cod == "P33");
                            int nitHomaz = buscarNit != null?Convert.ToInt32(buscarNit.syspar_value) : 0;

                            foreach (var vehiculo in vinesSiTieneCampana)
                            {
                                context.crm_campvintaller.Add(new crm_campvintaller
                                {
                                    idcamp          = buscarUltimaCampana.id,
                                    planmayor       = vehiculo.plan_mayor,
                                    idtercero       = vehiculo.propietario ?? nitHomaz,
                                    fec_creacion    = DateTime.Now,
                                    userid_creacion = Convert.ToInt32(Session["user_usuarioid"])
                                });
                            }

                            int guardarVines = context.SaveChanges();
                            if (guardarVines > 0)
                            {
                                TempData["mensaje"] = "El registro de la nueva campaña se agrego exitosamente!";
                            }
                        }
                        else
                        {
                            TempData["mensaje_error"] = "Error con base de datos, revise su conexion!";
                        }
                    }

                    int cantnumgwn = Convert.ToInt32(Request["cantnum"]);
                    if (cantnumgwn != 0)
                    {
                        for (int i = 0; i < cantnumgwn; i++)
                        {
                            if (Request["Cant" + i] != null)
                            {
                                tcamptallernumgwn campaña = new tcamptallernumgwn();
                                campaña.idcampa = modelo.id;
                                campaña.numgwn  = Request["Cant" + i];
                                campaña.estado  = true;

                                context.tcamptallernumgwn.Add(campaña);
                                context.SaveChanges();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }    //aqui

            BuscarFavoritos(menu);
            return(View(modelo2));
        }