// GET: Tramite
        public ActionResult Inicio()
        {
            DatosVentanaPrincipalVM datosVentanaPrincipal = new DatosVentanaPrincipalVM();
            var comboTipoDocumento = new ParametroBLL().ConsultaParametro(EnumParametroTipo.TipoDocumento.ValorEntero());

            var tipoPersona          = new ParametroBLL().ConsultaParametro(EnumParametroTipo.TipoPersona.ValorEntero());
            var modalidades          = new ModalidadServicioBLL().getModalidadByTipoPersona(0); //lista todos
            var tramites             = new TramiteBLL().getListaTramiteByTipo(0);               //lista todos
            var multas               = new TramiteSATBLL().listarMultas();
            var ComboEntidadBancaria = new EntidadBancariaBLL().ConsultaComboEntidadBancaria();

            datosVentanaPrincipal.ListaTipoPersona       = tipoPersona;
            datosVentanaPrincipal.ListaModalidadServicio = modalidades;
            datosVentanaPrincipal.ListaTramite           = tramites;
            datosVentanaPrincipal.ListaMultas            = multas;
            datosVentanaPrincipal.ListaEntidadBancaria   = ComboEntidadBancaria;
            datosVentanaPrincipal.SelectTipoDocumento    = comboTipoDocumento.OrderBy(x => x.PARCOD)
                                                           .Select(j => new SelectListItem
            {
                Value = j.PARSEC.ToString(),
                Text  = j.PARNOM,
            }).ToList();

            return(View(datosVentanaPrincipal));
        }
        public JsonResult registrarTramiteSAT(int tipoPersona, int modalidad, int tramite, int procedimiento,
                                              int tipoDocumento, string nroDocumento, string apepat, string apemat,
                                              string nombres, string reciboPago, string email, string ruc,
                                              int autorizaEmail, string nroTelefono, string direccion,
                                              string nroactacontrol, string fechaacta,
                                              int diashabiles, string idMulta, string placa, string nroressancion,
                                              double montoinresol, string fechaResol, int flagpresentorecurso,
                                              int idbanco, string fechapago, string nrorecibo, double montocancelado,
                                              double montoenresol, int nrocuotas, HttpPostedFileBase[] files)
        {
            var codResultado   = 0;
            var desResultado   = "";
            var codAuxiliar    = 0;
            var desResultadoEx = "";

            //seteando datos del tramite simple
            TramiteSimpleVM t = new TramiteSimpleVM();

            t.TIPO_PERSONA      = tipoPersona;
            t.IDMODALIDAD       = modalidad;
            t.IDPROCEDIMIENTO   = procedimiento;
            t.IDTIPODOCUMENTO   = tipoDocumento;
            t.NRODOCUMENTO      = nroDocumento;
            t.APEPAT            = apepat;
            t.APEMAT            = apemat;
            t.NOMBRES           = nombres;
            t.NRORECIBOPAGO     = "";
            t.CORREOELECTRONICO = email;
            t.RUC             = ruc;
            t.ID_TIPO_PERSONA = tipoPersona;
            t.AUTORIZA_EMAIL  = autorizaEmail;
            t.NRO_TELEF       = nroTelefono;
            t.DIRECCION       = direccion;

            //seteando datos para el tramite SAT
            TramiteSATVM tramiteSAT = new TramiteSATVM();

            tramiteSAT.ID_TRAMITE            = 0;
            tramiteSAT.NRO_ACTA_CONTROL      = nroactacontrol;
            tramiteSAT.FECHA_ACTA            = fechaacta;
            tramiteSAT.DIAS_HABILES_ACTA     = diashabiles;
            tramiteSAT.ID_MULTA              = idMulta;
            tramiteSAT.PLACA                 = placa;
            tramiteSAT.NRO_RESOL_SANC        = nroressancion;
            tramiteSAT.MONTO_IN_RESOL        = montoinresol;
            tramiteSAT.FECHA_RESOLUCION      = fechaResol;
            tramiteSAT.FLAG_PRESENTO_RECURSO = flagpresentorecurso;
            tramiteSAT.ID_BANCO              = idbanco;
            tramiteSAT.FECHA_PAGO            = fechapago;
            tramiteSAT.NRO_RECIBO            = nrorecibo;
            tramiteSAT.MONTO_CANCELADO       = montocancelado;
            tramiteSAT.MONTO_IN_RESOL        = montoenresol;
            tramiteSAT.NRO_CUOTAS            = nrocuotas;
            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    var registroTramite = new TramiteSimpleBLL().registrarTramiteSimple(t);

                    if (registroTramite.CodResultado == 1)
                    {
                        tramiteSAT.ID_TRAMITE = registroTramite.CodAuxiliar;
                        var registroTramiteSAT = new TramiteSATBLL().registrarTramiteSAT(tramiteSAT);
                        //
                        if (registroTramiteSAT.CodResultado == 1)//registro tramite sat
                        {
                            int confirmacionCorreo = enviarCorreoTramiteSAT(t.CORREOELECTRONICO, t.NOMBRES + " " + t.APEPAT + " " + t.APEMAT, t.NRODOCUMENTO);
                            codResultado = 1;
                            desResultado = "El trámite fue registrado correctamente";
                            scope.Complete();
                        }
                        else
                        {
                            codResultado = 0;
                            desResultado = "Ocurrio un error en el registro del trámite SAT.";
                            scope.Dispose();
                        }
                    }
                    else
                    {
                        codResultado = 0;
                        desResultado = registroTramite.NomResultado;
                        //desResultado = "Ocurrio un error en el registro del trámite virtual.";
                        scope.Dispose();
                    }
                }
            }
            catch (Exception ex)
            {
                codResultado   = 0;
                desResultado   = "Ocurrio un error en el registro del trámite virtual.";
                desResultadoEx = ex.Message;
            }


            return(Json(new
            {
                codResultado = codResultado,
                desResultado = desResultado,
                codAuxiliar = codAuxiliar,
                resultadoex = desResultadoEx
            }));
        }