public ActionResult Create([Bind(Include = "cotizacionServiciosID,numeroCotizacion,datosClienteEmpresa,datosClienteRut,datosClienteDomicilio,datosClienteSolicitadoPor,fecha,encabezado,descripcionServicio,valorTotal,nota,faena,tiempo")] cotizacionServicios cotizacionServicios, FormCollection form)
        {
            if (Session["ID"] == null || !roles.tienePermiso(numeroPermiso, int.Parse(Session["ID"].ToString())))
            {

                return RedirectToAction("Index", "Home");
            }
            cotizacionServicios.fecha = Formateador.fechaFormatoGuardar(form["fecha"].ToString());
            //cotizacionServicios.fechaEscrita = cotizacionServicios.fecha.ToString("D").Split(',')[1];
            cotizacionServicios.fechaEscrita = formatearString.fechaPalabras(cotizacionServicios.fecha);
            
            cotizacionServicios.anio = cotizacionServicios.fecha.Year;
            db.cotizacionesServicios.Add(cotizacionServicios);
            db.SaveChanges();

            //Se obtiene el detalle de categorias

            int cantidadCategorias = int.Parse(form["cantidadCategorias"].ToString());

            for (int i = 1; i <= cantidadCategorias; i++)
            {
                if (Request.Form.GetValues("categoria" + i) != null)
                {
                    string[] categoria = Request.Form.GetValues("categoria" + i);
                    string[] cargo = Request.Form.GetValues("cargoGeneral" + i);
                    string[] turno = Request.Form.GetValues("turnoGeneral" + i);
                    string[] cantidad = Request.Form.GetValues("cantidadGeneral" + i);

                    for (int j = 0; j < cargo.Length; j++)
                    {
                        detalleServicioCotizacionServicios nuevo = new detalleServicioCotizacionServicios();

                        nuevo.categoria = categoria[0];
                        nuevo.cargo = cargo[j];
                        nuevo.turno = turno[j];
                        nuevo.numeroPersonas = int.Parse(cantidad[j]);
                        nuevo.CotizacionServiciosID = cotizacionServicios.cotizacionServiciosID;

                        db.detalleServiciosCotizacionServicios.Add(nuevo);
                    }
                }
            }

            //Se obtiene el detalle de equipos

            string[] equipo = Request.Form.GetValues("equipoEquipo");
            string[] cantidadEquipo = Request.Form.GetValues("cantidadEquipo");

            for (int i = 0; i < equipo.Length; i++)
            {
                detalleEquiposCotizacionServicios nuevo = new detalleEquiposCotizacionServicios();

                nuevo.equipo=equipo[i];
                nuevo.cantidad = int.Parse(cantidadEquipo[i]);
                nuevo.CotizacionServiciosID = cotizacionServicios.cotizacionServiciosID;

                db.detalleEquiposCotizacionServicios.Add(nuevo);
            }

            registro Registro = new registro();            
            Registro.fecha = DateTime.Now;
            Registro.tipoAccion = "Crear";
            Registro.tipoDato = "cotizacionServicios";
            Registro.usuario = db.Usuarios.Find(int.Parse(Session["ID"].ToString())).nombreUsuario + " / " + db.Usuarios.Find(int.Parse(Session["ID"].ToString())).nombreCompleto;
            Registro.usuarioID = int.Parse(Session["ID"].ToString());
            Registro.descripcion = Registro.usuario+" Crea Cotizacion de Servicios: " + cotizacionServicios.numeroCotizacion;
            db.Registros.Add(Registro);

            db.SaveChanges();

            return RedirectToAction("Index");
        }
        public ActionResult Edit([Bind(Include = "cotizacionServiciosID,numeroCotizacion,datosClienteEmpresa,datosClienteRut,datosClienteDomicilio,datosClienteSolicitadoPor,fecha,encabezado,descripcionServicio,valorTotal,nota,faena,tiempo")] cotizacionServicios cotizacionServicios,
            FormCollection form)
        {
            if (Session["ID"] == null || !roles.tienePermiso(numeroPermiso, int.Parse(Session["ID"].ToString())))
            {

                return RedirectToAction("Index", "Home");
            }
            cotizacionServicios.fecha = Formateador.fechaFormatoGuardar(form["fecha"].ToString());
            cotizacionServicios.fechaEscrita = cotizacionServicios.fecha.ToString("D").Split(',')[1];
            cotizacionServicios.anio = cotizacionServicios.fecha.Year;
            db.cotizacionesServicios.Add(cotizacionServicios);

            db.Entry(cotizacionServicios).State = EntityState.Modified;
            db.SaveChanges();

            //Se obtiene el detalle de categorias

            cotizacionServicios.eliminarDetalleServiciosYEquipos();

            int cantidadCategorias = int.Parse(form["cantidadCategorias"].ToString());

            for (int i = 1; i <= cantidadCategorias; i++)
            {
                if (Request.Form.GetValues("categoria" + i) != null)
                {
                    string[] categoria = Request.Form.GetValues("categoria" + i);
                    string[] cargo = Request.Form.GetValues("cargoGeneral" + i);
                    string[] turno = Request.Form.GetValues("turnoGeneral" + i);
                    string[] cantidad = Request.Form.GetValues("cantidadGeneral" + i);

                    for (int j = 0; j < cargo.Length; j++)
                    {
                        detalleServicioCotizacionServicios nuevo = new detalleServicioCotizacionServicios();

                        nuevo.categoria = categoria[0];
                        nuevo.cargo = cargo[j];
                        nuevo.turno = turno[j];
                        nuevo.numeroPersonas = int.Parse(cantidad[j]);
                        nuevo.CotizacionServiciosID = cotizacionServicios.cotizacionServiciosID;

                        db.detalleServiciosCotizacionServicios.Add(nuevo);
                    }
                }
            }

            //Se obtiene el detalle de equipos

            string[] equipo = Request.Form.GetValues("equipoEquipo");
            string[] cantidadEquipo = Request.Form.GetValues("cantidadEquipo");

            for (int i = 0; i < equipo.Length; i++)
            {
                detalleEquiposCotizacionServicios nuevo = new detalleEquiposCotizacionServicios();

                nuevo.equipo = equipo[i];
                nuevo.cantidad = int.Parse(cantidadEquipo[i]);
                nuevo.CotizacionServiciosID = cotizacionServicios.cotizacionServiciosID;

                db.detalleEquiposCotizacionServicios.Add(nuevo);
            }

            db.SaveChanges();
            return RedirectToAction("Index");

        }