public ActionResult Create([Bind(Include = "CotizacionDeTrasladoID,NumeroDeCotizacion,año,fecha,cliente,rut,direccion,telefono,atencionA,referencia,moneda,tipoCambio,encabezado,nota,disponibilidad,valorIncluye,valorNoIncluye,condicionesGenerales,formasDePago,textoAdjuntarDocumentos")] CotizacionDeTraslado cotizacionDeTraslado,
                                   FormCollection post)
        {
            if (Session["ID"] == null || !roles.tienePermiso(numeroPermiso, int.Parse(Session["ID"].ToString())))
            {
                return(RedirectToAction("Index", "Home"));
            }
            string Fecha = post["fecha"].ToString();

            cotizacionDeTraslado.fecha = new DateTime(int.Parse(Fecha.Split('/')[2]),
                                                      int.Parse(Fecha.Split('/')[1]), int.Parse(Fecha.Split('/')[0]));

            cotizacionDeTraslado.año = DateTime.Now.Year;

            List <CotizacionDeTraslado> listaCT =
                db.CotizacionDeTraslado.OrderByDescending(s => s.NumeroDeCotizacion).Take(1).ToList();

            if (listaCT.Count > 1)
            {
                cotizacionDeTraslado.NumeroDeCotizacion = listaCT[0].NumeroDeCotizacion + 1;
            }
            else
            {
                cotizacionDeTraslado.NumeroDeCotizacion = 1;
            }

            cotizacionDeTraslado.quitarNulos();

            db.CotizacionDeTraslado.Add(cotizacionDeTraslado);
            db.SaveChanges();

            //Se guarda el detalle:
            string[] codigoDetalle         = Request.Form.GetValues("codigoDetalle");
            string[] cantidadDetalle       = Request.Form.GetValues("cantidadDetalle");
            string[] descripcionDetalle    = Request.Form.GetValues("descripcionDetalle");
            string[] precioUnitarioDetalle = Request.Form.GetValues("precioUnitarioDetalle");
            string[] totalDetalle          = Request.Form.GetValues("totalDetalle");

            for (int i = 0; i < codigoDetalle.Length; i++)
            {
                detalleCotizacionDeTraslado nuevo = new detalleCotizacionDeTraslado();

                nuevo.codigo               = codigoDetalle[i];
                nuevo.descripcion          = descripcionDetalle[i];
                nuevo.cantidad             = int.Parse(cantidadDetalle[i]);
                nuevo.precioUnitario       = int.Parse(precioUnitarioDetalle[i]);
                nuevo.total                = int.Parse(totalDetalle[i]);
                nuevo.IDCotizacionTraslado = cotizacionDeTraslado.CotizacionDeTrasladoID;

                db.detalleCotizacionTraslado.Add(nuevo);
            }

            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        // GET: CotizacionDeTraslado/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CotizacionDeTraslado cotizacionDeTraslado = db.CotizacionDeTraslado.Find(id);

            if (cotizacionDeTraslado == null)
            {
                return(HttpNotFound());
            }
            return(View(cotizacionDeTraslado));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            if (Session["ID"] == null || !roles.tienePermiso(numeroPermiso, int.Parse(Session["ID"].ToString())))
            {
                return(RedirectToAction("Index", "Home"));
            }

            CotizacionDeTraslado cotizacionDeTraslado = db.CotizacionDeTraslado.Find(id);

            cotizacionDeTraslado.eliminarDetalle();

            db.CotizacionDeTraslado.Remove(cotizacionDeTraslado);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        // GET: CotizacionDeTraslado/Delete/5
        public ActionResult Delete(int?id)
        {
            if (Session["ID"] == null || !roles.tienePermiso(numeroPermiso, int.Parse(Session["ID"].ToString())))
            {
                return(RedirectToAction("Index", "Home"));
            }

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CotizacionDeTraslado cotizacionDeTraslado = db.CotizacionDeTraslado.Find(id);

            if (cotizacionDeTraslado == null)
            {
                return(HttpNotFound());
            }
            return(View(cotizacionDeTraslado));
        }