public static Response <List <FechaAbiertaEntity> > VentaConsultaF6(FechaAbiertaRequest request)
        {
            try
            {
                var result = FechaAbiertaRepository.VentaConsultaF6(request);

                return(new Response <List <FechaAbiertaEntity> >(true, result, Message.MsgCorrectoVentaConsultaF6, true));
            }
            catch (Exception ex)
            {
                Log.Instance(typeof(FechaAbiertaLogic)).Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
                return(new Response <List <FechaAbiertaEntity> >(false, null, Message.MsgExcVentaConsultaF6, false));
            }
        }
        public static List <FechaAbiertaEntity> VentaConsultaF6(FechaAbiertaRequest filtro)
        {
            var lista = new List <FechaAbiertaEntity>();

            using (IDatabase db = DatabaseHelper.GetDatabase())
            {
                db.ProcedureName = "scwsp_VentaConsultaF6Elec";
                db.AddParameter("@nombre", DbType.String, ParameterDirection.Input, filtro.Nombre);
                db.AddParameter("@dni", DbType.String, ParameterDirection.Input, filtro.Dni);
                db.AddParameter("@fecha", DbType.String, ParameterDirection.Input, filtro.Fecha);
                db.AddParameter("@serie", DbType.Int32, ParameterDirection.Input, Convert.ToInt32(filtro.Serie));
                db.AddParameter("@nume", DbType.Int32, ParameterDirection.Input, Convert.ToInt32(filtro.Numero));
                db.AddParameter("@tipo", DbType.String, ParameterDirection.Input, filtro.Tipo);
                db.AddParameter("@empresa", DbType.Int32, ParameterDirection.Input, Convert.ToInt32(filtro.CodEmpresa));
                db.AddParameter("@subruta", DbType.Int32, ParameterDirection.Input, Convert.ToInt32(filtro.CodiDestino));
                using (IDataReader drlector = db.GetDataReader())
                {
                    while (drlector.Read())
                    {
                        lista.Add(new FechaAbiertaEntity
                        {
                            Nombre      = Reader.GetStringValue(drlector, "NOMBRE"),
                            Tipo        = Reader.GetStringValue(drlector, "tipo"),
                            Serie       = Reader.GetStringValue(drlector, "serie_BOLETO"),
                            Numero      = Reader.GetStringValue(drlector, "NUME_BOLETO"),
                            FechaVenta  = Reader.GetDateStringValue(drlector, "FECH_VENTA"),
                            PrecioVenta = Reader.GetStringValue(drlector, "PREC_VENTA"),
                            CodiSubruta = Reader.GetStringValue(drlector, "CODI_SUBRUTA"),
                            CodiOrigen  = Reader.GetStringValue(drlector, "COD_ORIGEN"),
                            CodiEmpresa = Reader.GetStringValue(drlector, "CODI_EMPRESA"),
                            IdVenta     = Reader.GetStringValue(drlector, "id_venta"),
                            StRemoto    = Reader.GetStringValue(drlector, "st_remoto"),
                            Dni         = Reader.GetStringValue(drlector, "DNI"),
                            TipoDoc     = Reader.GetStringValue(drlector, "TIPO_DOC"),
                            CodiEsca    = Reader.GetStringValue(drlector, "CODI_ESCA")
                        });
                    }
                }
            }

            return(lista);
        }
        public static bool VentaUpdatePostergacionEle(FechaAbiertaRequest filtro)
        {
            bool Response = false;

            using (IDatabase db = DatabaseHelper.GetDatabase())
            {
                db.ProcedureName = "Usp_Tb_Venta_Update_Postergacion_Ele";
                db.AddParameter("@Numero_reint", DbType.String, ParameterDirection.Input, filtro.CodiEsca);
                db.AddParameter("@programacion", DbType.String, ParameterDirection.Input, filtro.CodiProgramacion);
                db.AddParameter("@origen", DbType.String, ParameterDirection.Input, filtro.CodiOrigen);
                db.AddParameter("@id_Venta", DbType.Int32, ParameterDirection.Input, filtro.IdVenta);
                db.AddParameter("@asiento", DbType.String, ParameterDirection.Input, filtro.NumeAsiento);
                db.AddParameter("@ruta", DbType.String, ParameterDirection.Input, "");
                db.AddParameter("@servicio", DbType.String, ParameterDirection.Input, filtro.CodiServicio);
                db.AddParameter("@TipoDoc", DbType.String, ParameterDirection.Input, filtro.Tipo);

                db.Execute();

                Response = true;
            }

            return(Response);
        }
        public static Response <VentaResponse> VentaUpdatePostergacionEle(FechaAbiertaRequest filtro)
        {
            try
            {
                var valor = new VentaResponse();
                var listaVentasRealizadas = new List <VentaRealizadaEntity>();

                // Verifica 'CodiProgramacion'
                var objProgramacion = new ProgramacionEntity()
                {
                    NroViaje          = filtro.NroViaje,
                    FechaProgramacion = filtro.FechaProgramacion,
                    CodiProgramacion  = filtro.CodiProgramacion,
                    CodiEmpresa       = filtro.CodiEmpresa,
                    CodiSucursal      = filtro.CodiSucursal,
                    CodiRuta          = filtro.CodiRutaBus,
                    CodiBus           = filtro.CodiBus,
                    HoraProgramacion  = filtro.HoraProgramacion,
                    CodiServicio      = byte.Parse(filtro.CodiServicio.ToString()),

                    CodiUsuario    = filtro.CodiUsuario.ToString(),
                    NomUsuario     = filtro.NomUsuario,
                    CodiPuntoVenta = filtro.CodiPuntoVenta,
                    Terminal       = filtro.Terminal,
                    CodiOrigen     = filtro.CodiOrigen,
                    CodiDestino    = filtro.CodiDestino,
                    NomOrigen      = filtro.NomSucursal
                };
                var verificaCodiProgramacion = VentaLogic.VerificaCodiProgramacion(objProgramacion);
                if (verificaCodiProgramacion == 0)
                {
                    return(new Response <VentaResponse>(false, valor, Message.MsgErrorVerificaCodiProgramacion, false));
                }
                else
                {
                    filtro.CodiProgramacion = verificaCodiProgramacion;
                }

                // Seteo 'valor.CodiProgramacion'
                valor.CodiProgramacion = filtro.CodiProgramacion;

                var venta = VentaRepository.BuscarVentaById(filtro.IdVenta);
                if (venta.CodiProgramacion != 0)
                {
                    return(new Response <VentaResponse>(false, valor, Message.MsgExcSeEncontrabaEnFechaAbierta, false));
                }

                FechaAbiertaRepository.VentaUpdatePostergacionEle(filtro);
                FechaAbiertaRepository.VentaUpdateImpManifiesto(filtro.IdVenta);
                FechaAbiertaRepository.VentaDerivadaUpdateViaje(filtro.IdVenta, filtro.FechaViaje, filtro.HoraViaje, filtro.CodiServicio);

                var objAuditoria = new AuditoriaEntity
                {
                    CodiUsuario    = filtro.CodiUsuario, //
                    NomUsuario     = filtro.NomUsuario,  //
                    Tabla          = "VENTA",
                    TipoMovimiento = "CONFIRMA FECHA ABIERTA",
                    Boleto         = filtro.Serie.PadLeft(3, '0') + "-" + filtro.Numero.PadLeft(7, '0'),
                    NumeAsiento    = filtro.NumeAsiento.PadLeft(2, '0'),
                    NomOficina     = filtro.NomSucursal,                    //
                    NomPuntoVenta  = filtro.CodiPuntoVenta.PadLeft(3, '0'), //
                    Pasajero       = filtro.Nombre,
                    FechaViaje     = filtro.FechaViaje,
                    HoraViaje      = filtro.HoraViaje,
                    NomDestino     = filtro.NombDestino,
                    Precio         = decimal.Parse(filtro.Precio),
                    Obs1           = "CONFIRMACION FECHA ABIERTA",
                    Obs2           = string.Empty,
                    Obs3           = string.Empty,
                    Obs4           = string.Empty,
                    Obs5           = string.Empty
                };
                VentaRepository.GrabarAuditoria(objAuditoria);

                // Añado 'ventaRealizada'
                var ventaRealizada = new VentaRealizadaEntity
                {
                    NumeAsiento = filtro.NumeAsiento
                };
                listaVentasRealizadas.Add(ventaRealizada);

                // Seteo 'valor.ListaVentasRealizadas'
                valor.ListaVentasRealizadas = listaVentasRealizadas;

                return(new Response <VentaResponse>(true, valor, Message.MsgCorrectoVentaUpdatePostergacionEle, true));
            }
            catch (Exception ex)
            {
                Log.Instance(typeof(FechaAbiertaLogic)).Error(System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
                return(new Response <VentaResponse>(false, null, Message.MsgExcVentaUpdatePostergacionEle, false));
            }
        }