public ActionResult Create([Bind(Include = "Id,Crt_Status,Crt_Cliente_Nombre,Crt_Cliente_ApMat,Crt_Cliente_ApPat,Crt_Direccion,Crt_Precio,Crt_Gasto,Crt_Tipo_Vivienda,Crt_Nivel,Crt_Num_Habitaciones,Crt_Planta,Crt_Ano_compra,Crt_Num_Credito_Infonavit,Crt_Saldo_infonavit,Crt_Fec_Nac,Crt_Tel_Celular,Crt_Estado_Civil,Crt_Tel_Casa,Crt_Tel_Trabajo,Crt_Tel_Ref1,Crt_Tel_Ref2,Crt_Tel_Ref,Crt_Recibo_predial_digital,Crt_Clave_Catastral,Crt_Adeudo_predial,Crt_Num_servicio_luz,Crt_Adeudo_luz,Crt_NombreC_Titular_luz,Crt_No_cuenta_agua,Crt_Adeudo_agua,Crt_Ine_Titu,Crt_Ine_Conyu,Crt_Escritura_Simple,Crt_Acuerdo,Crt_ActaNacTitu,Crt_ActaNacConyu,Crt_ActaMatr,Crt_EscrCert,Crt_CartaDesPre,Crt_ReciboLuz,Crt_ReciboAgua,Crt_Otros,Crt_Status_Muestra,Crt_Obervaciones,Crt_GastosServicios")] Corretaje corretaje)
        {
            int corretaje_id;
            var habilitacion            = new Habilitacion();
            var habilitacion_controller = new HabilitacionsController();

            var contaduria            = new Contaduria();
            var contaduria_controller = new ContaduriasController();

            var posicion = new SelectList(new[] {
                new { value = 0, text = "Selecciona una opción.." },
                new { value = 1, text = "Soltero" },
                new { value = 2, text = "Casado" }
            }, "value", "text", 0);

            if (ModelState.IsValid)
            {
                db.Corretaje.Add(corretaje);
                db.SaveChanges();

                //Borrar si no sirve
                corretaje_id = corretaje.Id;
                //Borrar si no sirve
                habilitacion_controller.CrearHabilitacion(habilitacion, corretaje_id);

                contaduria_controller.CrearContaduria(contaduria, corretaje_id);

                return(RedirectToAction("Index"));
            }

            ViewData["Posicion"] = posicion;
            return(View(corretaje));
        }
        // public ActionResult Create([Bind(Include = "Id,Crt_Status,Crt_Cliente_Nombre,Crt_Cliente_ApMat,Crt_Cliente_ApPat,Crt_Direccion,Crt_Precio,Crt_Gasto,Crt_Tipo_Vivienda,Crt_Nivel,Crt_Num_Habitaciones,Crt_Planta,Crt_Ano_compra,Crt_Num_Credito_Infonavit,Crt_Saldo_infonavit,Crt_Fec_Nac,Crt_Tel_Celular,Crt_Estado_Civil,Crt_Tel_Casa,Crt_Tel_Trabajo,Crt_Tel_Ref1,Crt_Tel_Ref2,Crt_Tel_Ref,Crt_Recibo_predial_digital,Crt_Clave_Catastral,Crt_Adeudo_predial,Crt_Num_servicio_luz,Crt_Adeudo_luz,Crt_NombreC_Titular_luz,Crt_No_cuenta_agua,Crt_Adeudo_agua,Crt_Ine_Titu,Crt_Ine_Conyu,Crt_Escritura_Simple,Crt_Acuerdo,Crt_ActaNacTitu,Crt_ActaNacConyu,Crt_ActaMatr,Crt_EscrCert,Crt_CartaDesPre,Crt_ReciboLuz,Crt_ReciboAgua,Crt_Otros,Crt_Status_Muestra,Crt_Obervaciones,Crt_GastosServicios")] Corretaje corretaje, HttpPostedFileBase agua, HttpPostedFileBase luz, HttpPostedFileBase predial, HttpPostedFileBase otro)
        public ActionResult Create(Corretaje corretaje, HttpPostedFileBase Crt_ReciboAgua, HttpPostedFileBase Crt_ReciboLuz, HttpPostedFileBase Crt_Recibo_predial_digital, HttpPostedFileBase Crt_Otros)
        {
            //Obtener los correos de los usuarios de hablitacion y contaduria
            var usuarios = (from usu in db.Usuario where usu.usu_tipo == "4" || usu.usu_tipo == "5" select new { usu.usu_correo }).ToArray();

            //Crear objeto del controlador de correo para llamar al metodo
            var correo = new CorreoController();

            var a = corretaje.Id;
            int corretaje_id;
            var habilitacion            = new Habilitacion();
            var habilitacion_controller = new HabilitacionsController();

            var contaduria            = new Contaduria();
            var contaduria_controller = new ContaduriasController();

            //Select List para estatus de casa
            var estatus = new SelectList(new[] {
                new { value = "No seleccionado", text = "Selecciona una opción.." }, //Esto puede ser con 0 o 1
                new { value = "Venta", text = "Venta" },
                new { value = "Disponible", text = "Disponible" },
                new { value = "Cancelado", text = "Cancelado" },
                new { value = "Firmado", text = "Firmado" }
            }, "value", "text", 0);


            var posicion = new SelectList(new[] {
                new { value = 0, text = "Selecciona una opción.." },
                new { value = 1, text = "Soltero" },
                new { value = 2, text = "Casado" },
                new { value = 3, text = "Viudo" },
                new { value = 4, text = "Divorciado" }
            }, "value", "text", 0);


            // Imagenes
            corretaje.Crt_ReciboAgua             = "data:image/jpg;base64," + convertTo64(Crt_ReciboAgua);
            corretaje.Crt_ReciboLuz              = "data:image/jpg;base64," + convertTo64(Crt_ReciboLuz);
            corretaje.Crt_Recibo_predial_digital = "data:image/jpg;base64," + convertTo64(Crt_Recibo_predial_digital);
            corretaje.Crt_Otros = "data:image/jpg;base64," + convertTo64(Crt_Otros);
            //

            //Documentos checkbox
            if (corretaje.Crt_Ine_Titu == null)
            {
                corretaje.Crt_Ine_Titu = false;
            }
            if (corretaje.Crt_Ine_Conyu == null)
            {
                corretaje.Crt_Ine_Conyu = false;
            }
            if (corretaje.Crt_ActaNacTitu == null)
            {
                corretaje.Crt_ActaNacTitu = false;
            }
            if (corretaje.Crt_ActaNacConyu == null)
            {
                corretaje.Crt_ActaNacConyu = false;
            }
            if (corretaje.Crt_ActaMatr == null)
            {
                corretaje.Crt_ActaMatr = false;
            }
            if (corretaje.Crt_EscrCert == null)
            {
                corretaje.Crt_EscrCert = false;
            }
            if (corretaje.Crt_Acuerdo == null)
            {
                corretaje.Crt_Acuerdo = false;
            }
            if (corretaje.Crt_CartaDesPre == null)
            {
                corretaje.Crt_CartaDesPre = false;
            }
            if (corretaje.Crt_Escritura_Simple == null)
            {
                corretaje.Crt_Escritura_Simple = false;
            }

            // Mini hack
            DateTime aux = new DateTime();

            corretaje.Crt_Status                = (corretaje.Crt_Status == null) ? "" : corretaje.Crt_Status;
            corretaje.Crt_Cliente_Nombre        = (corretaje.Crt_Cliente_Nombre == null) ? "" : corretaje.Crt_Cliente_Nombre;
            corretaje.Crt_Cliente_ApMat         = (corretaje.Crt_Cliente_ApMat == null) ? "" : corretaje.Crt_Cliente_ApMat;
            corretaje.Crt_Cliente_ApPat         = (corretaje.Crt_Cliente_ApPat == null) ? "" : corretaje.Crt_Cliente_ApPat;
            corretaje.Crt_Direccion             = (corretaje.Crt_Direccion == null) ? "" : corretaje.Crt_Direccion;
            corretaje.Crt_Precio                = (corretaje.Crt_Precio == null) ? "" : corretaje.Crt_Precio;
            corretaje.Crt_Gasto                 = (corretaje.Crt_Gasto == null) ? "" : corretaje.Crt_Gasto;
            corretaje.Crt_Tipo_Vivienda         = (corretaje.Crt_Tipo_Vivienda == null) ? "" : corretaje.Crt_Tipo_Vivienda;
            corretaje.Crt_Nivel                 = (corretaje.Crt_Nivel == null) ? 0 : corretaje.Crt_Nivel;
            corretaje.Crt_Num_Habitaciones      = (corretaje.Crt_Num_Habitaciones == null) ? 0 : corretaje.Crt_Num_Habitaciones;
            corretaje.Crt_Planta                = (corretaje.Crt_Planta == null) ? 0 : corretaje.Crt_Planta;
            corretaje.Crt_Ano_compra            = (corretaje.Crt_Ano_compra == null) ? "" : corretaje.Crt_Ano_compra;
            corretaje.Crt_Num_Credito_Infonavit = (corretaje.Crt_Num_Credito_Infonavit == null) ? "" : corretaje.Crt_Num_Credito_Infonavit;
            corretaje.Crt_Saldo_infonavit       = (corretaje.Crt_Saldo_infonavit == null) ? 0 : corretaje.Crt_Saldo_infonavit;
            corretaje.Crt_Fec_Nac               = (corretaje.Crt_Fec_Nac == null) ? aux : corretaje.Crt_Fec_Nac;
            corretaje.Crt_Tel_Celular           = (corretaje.Crt_Tel_Celular == null) ? "" : corretaje.Crt_Tel_Celular;
            corretaje.Crt_Estado_Civil          = (corretaje.Crt_Estado_Civil == null) ? "" : corretaje.Crt_Estado_Civil;
            corretaje.Crt_Tel_Casa              = (corretaje.Crt_Tel_Casa == null) ? "" : corretaje.Crt_Tel_Casa;
            corretaje.Crt_Tel_Trabajo           = (corretaje.Crt_Tel_Trabajo == null) ? "" : corretaje.Crt_Tel_Trabajo;
            corretaje.Crt_Tel_Ref1              = (corretaje.Crt_Tel_Ref1 == null) ? "" : corretaje.Crt_Tel_Ref1;
            corretaje.Crt_Tel_Ref2              = (corretaje.Crt_Tel_Ref2 == null) ? "" : corretaje.Crt_Tel_Ref2;
            corretaje.Crt_Tel_Ref               = (corretaje.Crt_Tel_Ref == null) ? "" : corretaje.Crt_Tel_Ref;
            corretaje.Crt_Clave_Catastral       = (corretaje.Crt_Clave_Catastral == null) ? "" : corretaje.Crt_Clave_Catastral;
            corretaje.Crt_Adeudo_predial        = (corretaje.Crt_Adeudo_predial == null) ? 0 : corretaje.Crt_Adeudo_predial;
            corretaje.Crt_Num_servicio_luz      = (corretaje.Crt_Num_servicio_luz == null) ? "" : corretaje.Crt_Num_servicio_luz;
            corretaje.Crt_Adeudo_luz            = (corretaje.Crt_Adeudo_luz == null) ? 0 : corretaje.Crt_Adeudo_luz;
            corretaje.Crt_NombreC_Titular_luz   = (corretaje.Crt_NombreC_Titular_luz == null) ? "" : corretaje.Crt_NombreC_Titular_luz;
            corretaje.Crt_No_cuenta_agua        = (corretaje.Crt_No_cuenta_agua == null) ? "" : corretaje.Crt_No_cuenta_agua;
            corretaje.Crt_Adeudo_agua           = (corretaje.Crt_Adeudo_agua == null) ? 0 : corretaje.Crt_Adeudo_agua;
            corretaje.Crt_Status_Muestra        = (corretaje.Crt_Status_Muestra == null) ? "" : corretaje.Crt_Status_Muestra;
            corretaje.Crt_Obervaciones          = (corretaje.Crt_Obervaciones == null) ? "" : corretaje.Crt_Obervaciones;
            corretaje.Crt_Nss = (corretaje.Crt_Nss == null) ? "" : corretaje.Crt_Nss;

            if (ModelState.IsValid)
            {
                corretaje.Crt_FechaAlta = DateTime.Now;
                db.Corretaje.Add(corretaje);
                db.SaveChanges();

                //Borrar si no sirve
                corretaje_id = corretaje.Id;

                //Crea registro vacío en habilitación
                habilitacion_controller.CrearHabilitacion(habilitacion, corretaje_id);
                //Crea registro vacío en contaduría
                contaduria_controller.CrearContaduria(contaduria, corretaje_id);

                //Enviar correo de alta de casa a los demás departamentos
                foreach (var item in usuarios)
                {
                    if (item != null)
                    {
                        correo.sendMailCorretaje(item.usu_correo);
                    }
                }

                return(RedirectToAction("Index"));
            }

            ViewData["Estatus"]  = estatus;
            ViewData["Posicion"] = posicion;

            ViewBag.Id_Vendedor  = new SelectList(db.Vendedor, "Id", "Vndr_Nombre", corretaje.Id_Vendedor);
            ViewData["Vendedor"] = ViewBag.Id_Vendedor;

            return(View(corretaje));
        }