public frmSeleccionManifiestoDescargaATMFull(DescargaATMFull descarga)
        {
            InitializeComponent();

            _descarga   = descarga;
            _manifiesto = _descarga.Manifiesto;

            try
            {
                BindingList <ManifiestoATMFull> manifiestos = new BindingList <ManifiestoATMFull>();

                dgvManifiestos.AutoGenerateColumns = false;
                dgvManifiestos.DataSource          = manifiestos;

                if (_manifiesto != null)
                {
                    manifiestos.Add(_manifiesto);
                }
            }
            catch (Exception ex)
            {
                this.Close();
                throw ex;
            }
        }
        public frmIngresoManifiestoATMs(CargaATM carga)
        {
            InitializeComponent();

            _carga           = carga;
            _manifiesto      = carga.Manifiesto;
            _manifiesto_full = carga.Manifiesto_full;

            try
            {
                txtFecha.Text = carga.Fecha_asignada.ToShortDateString();

                dgvManifiestos.AutoGenerateColumns     = false;
                dgvManifiestosFull.AutoGenerateColumns = false;

                BindingList <ManifiestoATMCarga> manifiestos      = new BindingList <ManifiestoATMCarga>();
                BindingList <ManifiestoATMFull>  manifiestos_full = new BindingList <ManifiestoATMFull>();

                dgvManifiestos.DataSource     = manifiestos;
                dgvManifiestosFull.DataSource = manifiestos_full;

                if (_manifiesto != null)
                {
                    manifiestos.Add(_manifiesto);
                }

                if (_manifiesto_full != null)
                {
                    manifiestos_full.Add(_manifiesto_full);
                }

                if (_carga.ATM_full)
                {
                    gbBusquedaManifiestosFull.Enabled = true;
                    gbDatosManifiestoFull.Enabled     = true;

                    pnlENA.Enabled = true;
                    pnlENA.Enabled = true;
                    //pnlENA.Enabled = _carga.ENA;
                }

                chkBolsaRechazo.Enabled     = true;
                chkBolsaRechazoFull.Enabled = true;
                // chkBolsaRechazo.Enabled = _carga.Bolsa_Rechazo;

                _impresion_carga = true;
                _impresion_full  = _carga.ATM_full;

                _monto = _carga.Monto_carga_colones + _carga.Monto_carga_dolares * nudTipoCambio.Value;

                // Cargar los esquemas

                cboEsquema.DataSource = _mantenimiento.listarEsquemasManifiestos();
            }
            catch (Exception ex)
            {
                this.Close();
                throw ex;
            }
        }
        /// <summary>
        /// Obtiene los datos del manifiesto
        /// </summary>
        /// <param name="man">Objeto manifiesto con los datos del manifiesto</param>
        public void obtenerManifiestoDatos(ref ManifiestoATMFull man)
        {
            BindingList <ManifiestoATMCarga> manifiestos = new BindingList <ManifiestoATMCarga>();

            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectDatosManifiestoATMFull");
            SqlDataReader datareader = null;

            _manejador.agregarParametro(comando, "@id", man, SqlDbType.Int);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                while (datareader.Read())
                {
                    man.Codigo   = (string)datareader["Codigo"];
                    man.Marchamo = (string)datareader["Marchamo"];
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }
        }
        /// <summary>
        /// Verificar si un manifiesto de un ATM Full ya fue registrado.
        /// </summary>
        /// <param name="m">Objeto ManifiestoATMFull con los datos del manifiesto</param>
        /// <returns>Valor que indica si el manifiesto existe</returns>
        public bool verificarManifiestoATMFull(ref ManifiestoATMFull m)
        {
            bool existe = false;

            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectExisteManifiestoATMFull");
            SqlDataReader datareader = null;

            _manejador.agregarParametro(comando, "@codigo", m.Codigo, SqlDbType.VarChar);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                if (datareader.Read())
                {
                    int id_encontrado = (int)datareader["pk_ID"];

                    existe = id_encontrado != m.ID;

                    m.ID = id_encontrado;
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorVerificarManifiestoATMFullDuplicado");
            }

            return(existe);
        }
Exemple #5
0
        public frmIngresoManifiestoATMsFull(ManifiestoATMFull manifiesto, bool ena, DateTime fecha)
        {
            InitializeComponent();

            _manifiesto_full = manifiesto;
            _fecha           = fecha;
            _ena             = ena;

            try
            {
                dgvManifiestos.AutoGenerateColumns = false;

                BindingList <ManifiestoATMFull> manifiestos = new BindingList <ManifiestoATMFull>();

                dgvManifiestos.DataSource = manifiestos;

                if (_manifiesto_full != null)
                {
                    manifiestos.Add(_manifiesto_full);
                }

                pnlENA.Enabled = _ena;

                // Cargar los esquemas

                cboEsquema.DataSource = _mantenimiento.listarEsquemasManifiestos();
            }
            catch (Exception ex)
            {
                this.Close();
                throw ex;
            }
        }
Exemple #6
0
        /// <summary>
        /// Mostrar los datos del manifiesto seleccionado.
        /// </summary>
        public void seleccionarManifiesto(ManifiestoATMFull manifiesto)
        {
            _manifiesto = manifiesto;

            txtManifiesto.Text = manifiesto.Codigo;
            txtMarchamo.Text   = manifiesto.Marchamo;
        }
Exemple #7
0
        /// <summary>
        /// Obtener los datos de la descarga de un ATM Full.
        /// </summary>
        /// <param name="d">Objeto DescargaATMFull que representa la descarga para la cual se obtienen los datos</param>
        public void obtenerDatosDescargaATMFull(ref DescargaATMFull d)
        {
            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectDescargaATMFullDatos");
            SqlDataReader datareader = null;

            _manejador.agregarParametro(comando, "@descarga", d, SqlDbType.Int);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                if (datareader.Read())
                {
                    DateTime hora_inicio = datareader["Hora_Inicio"] == DBNull.Value ?
                                           DateTime.Today : (DateTime)datareader["Hora_Inicio"];
                    DateTime hora_finalizacion = datareader["Hora_Finalizacion"] == DBNull.Value ?
                                                 DateTime.Today : (DateTime)datareader["Hora_Finalizacion"];
                    DateTime hora_diferencia = datareader["Hora_Diferencia"] == DBNull.Value ?
                                               DateTime.Today : (DateTime)datareader["Hora_Diferencia"];
                    string observaciones = (string)datareader["Observaciones"];

                    ManifiestoATMFull manifiesto = null;

                    if (datareader["ID_Manifiesto"] != DBNull.Value)
                    {
                        int    id       = (int)datareader["ID_Manifiesto"];
                        string codigo   = (string)datareader["Codigo"];
                        string marchamo = (string)datareader["Marchamo"];
                        string marchamo_adicional_ena = datareader["Marchamo_Adicional_ENA"] as string;
                        string marchamo_ena_a         = datareader["Marchamo_ENA_A"] as string;
                        string marchamo_ena_b         = datareader["Marchamo_ENA_B"] as string;

                        string bolsa_rechazo = "";
                        if (datareader["Bolsa_Rechazo"] != DBNull.Value)
                        {
                            bolsa_rechazo = (string)datareader["Bolsa_Rechazo"];
                        }

                        DateTime fecha = (DateTime)datareader["Fecha"];

                        manifiesto = new ManifiestoATMFull(codigo, marchamo, fecha, marchamo_adicional_ena, marchamo_ena_a,
                                                           marchamo_ena_b, bolsa_rechazo, id: id);
                    }

                    d.Hora_inicio       = hora_inicio;
                    d.Hora_finalizacion = hora_finalizacion;
                    d.Hora_diferencia   = hora_diferencia;
                    d.Observaciones     = observaciones;
                    d.Manifiesto        = manifiesto;
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }
        }
        /// <summary>
        /// Clic en el botón de aceptar.
        /// </summary>
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            frmRegistroCierreATMs padre      = (frmRegistroCierreATMs)this.Owner;
            ManifiestoATMFull     manifiesto = (ManifiestoATMFull)dgvManifiestos.SelectedRows[0].DataBoundItem;

            padre.seleccionarManifiestoDescargaFull(manifiesto);

            this.Close();
        }
Exemple #9
0
        /// <summary>
        /// Clic en el botón de aceptar.
        /// </summary>
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            frmModificacionCargaEmergenciaFull padre = (frmModificacionCargaEmergenciaFull)this.Owner;
            ManifiestoATMFull manifiesto             = (ManifiestoATMFull)dgvManifiestos.SelectedRows[0].DataBoundItem;

            padre.seleccionarManifiesto(manifiesto);

            this.Close();
        }
Exemple #10
0
        /// <summary>
        /// Obtener una lista de las descargas de cargas de emergencia de ATM's Full pendientes.
        /// </summary>
        /// <returns>Lista de descargas pendientes</returns>
        public BindingList <DescargaATMFull> listarDescargasATMsFullEmergenciaPendientes()
        {
            BindingList <DescargaATMFull> descargas = new BindingList <DescargaATMFull>();
            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectCargasEmergenciaATMsFullNoDescargadas");
            SqlDataReader datareader = null;

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                while (datareader.Read())
                {
                    int      id_carga    = (int)datareader["ID_Carga"];
                    DateTime fecha_envio = (DateTime)datareader["Fecha_Envio"];
                    DateTime fecha_carga = (DateTime)datareader["Fecha_Carga"];
                    bool     ena         = (bool)datareader["ENA"];

                    short  id_atm     = (short)datareader["ID_ATM"];
                    short  numero     = (short)datareader["Numero"];
                    string codigo_atm = (string)datareader["Codigo_ATM"];
                    string oficinas   = (string)datareader["Oficinas"];

                    int      id_manifiesto          = (int)datareader["ID_Manifiesto"];
                    string   codigo_manifiesto      = (string)datareader["Codigo_Manifiesto"];
                    string   marchamo               = (string)datareader["Marchamo"];
                    string   marchamo_adicional_ena = datareader["Marchamo_Adicional_ENA"] as string;
                    string   marchamo_ena_a         = datareader["Marchamo_ENA_A"] as string;
                    string   marchamo_ena_b         = datareader["Marchamo_ENA_B"] as string;
                    DateTime fecha_manifiesto       = (DateTime)datareader["Fecha_Manifiesto"];

                    string bolsa_rechazo = "";
                    if (datareader["Bolsa_Rechazo"] != DBNull.Value)
                    {
                        bolsa_rechazo = (string)datareader["Bolsa_Rechazo"];
                    }

                    ATM atm = new ATM(id: id_atm, numero: numero, codigo: codigo_atm, oficinas: oficinas);
                    ManifiestoATMFull manifiesto = new ManifiestoATMFull(codigo_manifiesto, marchamo, fecha_manifiesto, marchamo_adicional_ena,
                                                                         marchamo_ena_a, marchamo_ena_b, bolsa_rechazo, id: id_manifiesto);
                    CargaEmergenciaATMFull carga = new CargaEmergenciaATMFull(fecha_envio, manifiesto, ena, id: id_carga, atm: atm,
                                                                              fecha_carga: fecha_carga);

                    DescargaATMFull descarga = new DescargaATMFull(carga_emergencia: carga);

                    descargas.Add(descarga);
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }

            return(descargas);
        }
        /// <summary>
        /// Clic en el botón de agregar un manifiesto full.
        /// </summary>
        private void btnNuevoManifiestoFull_Click(object sender, EventArgs e)
        {
            _manifiesto_full = null;

            pnlDatosManifiestoFull.Enabled = true;
            txtMarchamoFull.Select();

            this.limpiarDatosManifiestoFull();
        }
        /// <summary>
        /// Clic en el botón de aceptar.
        /// </summary>
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            frmRegistroCierreATMs padre      = (frmRegistroCierreATMs)this.Owner;
            ManifiestoATMCarga    manifiesto = dgvManifiestos.Rows.Count > 0 ?  (ManifiestoATMCarga)dgvManifiestos.SelectedRows[0].DataBoundItem : null;

            ManifiestoATMFull manifiesto_full = _carga.ATM_full ? (ManifiestoATMFull)dgvManifiestosFull.SelectedRows[0].DataBoundItem : null;

            padre.seleccionarManifiestosCarga(manifiesto, manifiesto_full);

            this.Close();
        }
        /// <summary>
        /// Clic en el botón de cancelar el registro de un manifiesto full.
        /// </summary>
        private void btnCancelarManifiestoFull_Click(object sender, EventArgs e)
        {
            if (dgvManifiestosFull.SelectedRows.Count > 0)
            {
                _manifiesto_full = (ManifiestoATMFull)dgvManifiestosFull.SelectedRows[0].DataBoundItem;

                this.mostrarDatosmanifiestoFull();
            }
            else
            {
                pnlDatosManifiesto.Enabled = false;

                this.limpiarDatosManifiestoFull();
            }
        }
        /// <summary>
        /// Se selecciona otro manifiesto full de la lista de manifiestos full.
        /// </summary>
        private void dgvManifiestosFull_SelectionChanged(object sender, EventArgs e)
        {
            if (dgvManifiestosFull.SelectedRows.Count > 0)
            {
                _manifiesto_full = (ManifiestoATMFull)dgvManifiestosFull.SelectedRows[0].DataBoundItem;

                pnlDatosManifiestoFull.Enabled = true;

                this.mostrarDatosmanifiestoFull();
            }
            else
            {
                pnlDatosManifiestoFull.Enabled = false;

                this.limpiarDatosManifiestoFull();
            }
        }
        /// <summary>
        /// Eliminar los datos de un manifiesto de un ATM Full.
        /// </summary>
        /// <param name="m">Objeto ManifiestoATMFull con los datos del manifiesto a eliminar</param>
        public void eliminarManifiestoATMFull(ManifiestoATMFull m)
        {
            SqlCommand comando = _manejador.obtenerProcedimiento("DeleteManifiestoATMFull");

            _manejador.agregarParametro(comando, "@manifiesto", m, SqlDbType.Int);

            try
            {
                _manejador.ejecutarConsultaActualizacion(comando);
                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorManifiestoATMFullEliminacion");
            }
        }
        /// <summary>
        /// Se selecciona otro manifiesto de la lista de manifiestos.
        /// </summary>
        private void dgvManifiestos_SelectionChanged(object sender, EventArgs e)
        {
            if (dgvManifiestos.SelectedRows.Count > 0)
            {
                _manifiesto = (ManifiestoATMFull)dgvManifiestos.SelectedRows[0].DataBoundItem;

                gbDatosManifiesto.Enabled = true;

                this.mostrarDatos();
            }
            else
            {
                gbDatosManifiesto.Enabled = false;

                this.limpiarDatos();
            }
        }
        /// <summary>
        /// Obtener una lista de los manifiestos de ATM's Full que tienen un determinado código o parte del mismo.
        /// </summary>
        /// <param name="c">Código o parte del mismo de los manifiestos que se listarán</param>
        /// <returns>Lista de manifiesto que cumplen con el criterio de búsqueda</returns>
        public BindingList <ManifiestoATMFull> listarManifiestosATMsFullPorCodigo(string c)
        {
            BindingList <ManifiestoATMFull> manifiestos = new BindingList <ManifiestoATMFull>();

            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectManifiestosATMsFullPorCodigo");
            SqlDataReader datareader = null;

            _manejador.agregarParametro(comando, "@codigo", c, SqlDbType.VarChar);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                while (datareader.Read())
                {
                    int    id       = (int)datareader["pk_ID"];
                    string codigo   = (string)datareader["Codigo"];
                    string marchamo = (string)datareader["Marchamo"];
                    string marchamo_adicional_ena = datareader["Marchamo_Adicional_ENA"] as string;
                    string marchamo_ena_a         = datareader["Marchamo_ENA_A"] as string;
                    string marchamo_ena_b         = datareader["Marchamo_ENA_B"] as string;
                    string bolsa_rechazo          = "";
                    if (datareader["Bolsa_Rechazo"] != DBNull.Value)
                    {
                        bolsa_rechazo = datareader["Marchamo_ENA_B"] as string;
                    }

                    DateTime fecha = (DateTime)datareader["Fecha"];

                    ManifiestoATMFull manifiesto = new ManifiestoATMFull(codigo, marchamo, fecha, marchamo_adicional_ena, marchamo_ena_a,
                                                                         marchamo_ena_b, bolsa_rechazo, id: id);

                    manifiestos.Add(manifiesto);
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }

            return(manifiestos);
        }
        /// <summary>
        /// Registrar un nuevo manifiesto de un ATM Full.
        /// </summary>
        /// <param name="m">Objeto ManifiestoATMFull con los datos del nuevo manifiesto</param>
        public void agregarManifiestoATMFull(ref ManifiestoATMFull m)
        {
            SqlCommand comando = _manejador.obtenerProcedimiento("InsertManifiestoATMFull");

            _manejador.agregarParametro(comando, "@codigo", m.Codigo, SqlDbType.VarChar);
            _manejador.agregarParametro(comando, "@marchamo", m.Marchamo, SqlDbType.VarChar);
            _manejador.agregarParametro(comando, "@marchamo_adicional_ena", m.Marchamo_adicional_ena, SqlDbType.VarChar);
            _manejador.agregarParametro(comando, "@marchamo_ena_a", m.Marchamo_ena_a, SqlDbType.VarChar);
            _manejador.agregarParametro(comando, "@marchamo_ena_b", m.Marchamo_ena_b, SqlDbType.VarChar);
            _manejador.agregarParametro(comando, "@bolsa_rechazo", m.Bolsa_rechazo, SqlDbType.VarChar);
            _manejador.agregarParametro(comando, "@fecha", m.Fecha, SqlDbType.Date);

            try
            {
                m.ID = (int)_manejador.ejecutarEscalar(comando);
                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorManifiestoATMFullRegistro");
            }
        }
        /// <summary>
        /// Actualizar los datos de un manifiesto de un ATM Full.
        /// </summary>
        /// <param name="m">Objeto ManifiestoATMFull con los datos del manifiesto a actualizar</param>
        public void actualizarManifiestoATMFull(ManifiestoATMFull m)
        {
            SqlCommand comando = _manejador.obtenerProcedimiento("UpdateManifiestoATMFull");

            _manejador.agregarParametro(comando, "@codigo", m.Codigo, SqlDbType.VarChar);
            _manejador.agregarParametro(comando, "@marchamo", m.Marchamo, SqlDbType.VarChar);
            _manejador.agregarParametro(comando, "@marchamo_adicional_ena", m.Marchamo_adicional_ena, SqlDbType.VarChar);
            _manejador.agregarParametro(comando, "@marchamo_ena_a", m.Marchamo_ena_a, SqlDbType.VarChar);
            _manejador.agregarParametro(comando, "@marchamo_ena_b", m.Marchamo_ena_b, SqlDbType.VarChar);
            _manejador.agregarParametro(comando, "@bolsa_rechazo", m.Bolsa_rechazo, SqlDbType.VarChar);
            _manejador.agregarParametro(comando, "@manifiesto", m, SqlDbType.Int);
            _manejador.agregarParametro(comando, "@fecha", m.Fecha, SqlDbType.Date);

            try
            {
                _manejador.ejecutarConsultaActualizacion(comando);
                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorManifiestoATMFullActualizacion");
            }
        }
Exemple #20
0
        /// <summary>
        /// Obtener las descargas full del cierre de un cajero de ATM's.
        /// </summary>
        /// <param name="c">Objeto CierreATMegcs con los datos del cierre del cajero de ATM's</param>
        public void obtenerDescargasATMsFullCierreATMs(ref CierreATMs c)
        {
            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectDescargasATMsFullCierreATMs");
            SqlDataReader datareader = null;

            _manejador.agregarParametro(comando, "@cierre", c, SqlDbType.Int);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                while (datareader.Read())
                {
                    int      id_descarga   = (int)datareader["ID_Descarga"];
                    DateTime fecha         = (DateTime)datareader["Fecha"];
                    string   observaciones = (string)datareader["Observaciones"];

                    short  id_atm   = (short)datareader["ID_ATM"];
                    short  numero   = (short)datareader["Numero"];
                    string codigo   = (string)datareader["Codigo"];
                    string oficinas = (string)datareader["Oficinas"];

                    ATM atm = new ATM(id: id_atm, numero: numero, codigo: codigo, oficinas: oficinas);

                    int      id_manifiesto          = (int)datareader["ID_Manifiesto"];
                    string   codigo_manifiesto      = (string)datareader["Codigo_Manifiesto"];
                    string   marchamo               = (string)datareader["Marchamo"];
                    DateTime fecha_manifiesto       = (DateTime)datareader["Fecha_manifiesto"];
                    string   marchamo_adicional_ena = datareader["Marchamo_Adicional_ENA"] as string;
                    string   marchamo_ena_a         = datareader["Marchamo_ENA_A"] as string;
                    string   marchamo_ena_b         = datareader["Marchamo_ENA_B"] as string;
                    string   bolsa_rechazo          = "";
                    if (datareader["Bolsa_Rechazo"] != DBNull.Value)
                    {
                        bolsa_rechazo = (string)datareader["Bolsa_Rechazo"];
                    }


                    ManifiestoATMFull manifiesto = new ManifiestoATMFull(codigo_manifiesto, marchamo, fecha_manifiesto, marchamo_adicional_ena,
                                                                         marchamo_ena_a, bolsa_rechazo, marchamo_ena_b);

                    CargaATM carga = null;

                    if (datareader["ID_Carga"] != DBNull.Value)
                    {
                        int      id_carga       = (int)datareader["ID_Carga"];
                        DateTime fecha_asignada = (DateTime)datareader["Fecha_Asignada"];

                        carga = new CargaATM(atm, id: id_carga, fecha_asignada: fecha_asignada, manifiesto_full: manifiesto);
                    }

                    CargaEmergenciaATMFull carga_emergencia = null;

                    if (datareader["ID_Carga_Emergencia"] != DBNull.Value)
                    {
                        int      id_carga    = (int)datareader["ID_Carga_Emergencia"];
                        DateTime fecha_envio = (DateTime)datareader["Fecha_Envio"];
                        DateTime?fecha_carga = datareader["Fecha_Carga"] as DateTime?;
                        bool     ena         = (bool)datareader["ENA"];

                        carga_emergencia = new CargaEmergenciaATMFull(fecha_envio, manifiesto, ena, id: id_carga, atm: atm, fecha_carga: fecha_carga);
                    }

                    DescargaATMFull descarga = new DescargaATMFull(id: id_descarga, fecha: fecha, cierre: c, carga: carga,
                                                                   observaciones: observaciones);

                    c.agregarDescargaFull(descarga);
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }
        }
Exemple #21
0
        /// <summary>
        /// Listar las descargas full por fecha, cajero y ATM.
        /// </summary>
        /// <param name="c">Objeto Colaborador con los datos del cajero de ATM's para el cual se genera la lista</param>
        /// <param name="a">Objeto ATM con los datos del ATM para el cual se genera la lista</param>
        /// <param name="f">Fecha de procesamiento de las descargas que se listarán</param>
        /// <returns>Lista de descargas full que cumplen con los parámetros</returns>
        public BindingList <DescargaATMFull> listarDescargasATMsFull(Colaborador c, ATM a, DateTime f)
        {
            BindingList <DescargaATMFull> descargas = new BindingList <DescargaATMFull>();
            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectDescargasATMsFullMonitoreo");
            SqlDataReader datareader = null;

            _manejador.agregarParametro(comando, "@cajero", c, SqlDbType.Int);
            _manejador.agregarParametro(comando, "@atm", a, SqlDbType.SmallInt);
            _manejador.agregarParametro(comando, "@fecha", f, SqlDbType.Date);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                while (datareader.Read())
                {
                    int id_descarga = (int)datareader["ID_Descarga"];

                    short  id_atm     = (short)datareader["ID_ATM"];
                    short  numero     = (short)datareader["Numero"];
                    string codigo_atm = (string)datareader["Codigo_ATM"];
                    string oficinas   = (string)datareader["Oficinas"];

                    ATM atm = new ATM(id: id_atm, numero: numero, codigo: codigo_atm);

                    int      id_manifiesto          = (int)datareader["ID_Manifiesto"];
                    string   codigo_manifiesto      = (string)datareader["Codigo_Manifiesto"];
                    string   marchamo               = (string)datareader["Marchamo"];
                    DateTime fecha_manifiesto       = (DateTime)datareader["Fecha_Manifiesto"];
                    string   marchamo_adicional_ena = datareader["Marchamo_Adicional_ENA"] as string;
                    string   marchamo_ena_a         = datareader["Marchamo_ENA_A"] as string;
                    string   marchamo_ena_b         = datareader["Marchamo_ENA_B"] as string;
                    string   bolsa_rechazo          = "";
                    if (datareader["Bolsa_Rechazo"] != DBNull.Value)
                    {
                        bolsa_rechazo = (string)datareader["Bolsa_Rechazo"];
                    }

                    ManifiestoATMFull manifiesto = new ManifiestoATMFull(codigo_manifiesto, marchamo, fecha_manifiesto, marchamo_adicional_ena,
                                                                         marchamo_ena_a, bolsa_rechazo, marchamo_ena_b);

                    CargaATM carga = null;

                    if (datareader["ID_Carga"] != DBNull.Value)
                    {
                        int      id_carga       = (int)datareader["ID_Carga"];
                        DateTime fecha_asignada = (DateTime)datareader["Fecha_Asignada"];

                        carga = new CargaATM(atm, id: id_carga, fecha_asignada: fecha_asignada, manifiesto_full: manifiesto);
                    }

                    CargaEmergenciaATMFull carga_emergencia = null;

                    if (datareader["ID_Carga_Emergencia"] != DBNull.Value)
                    {
                        int      id_carga    = (int)datareader["ID_Carga_Emergencia"];
                        DateTime fecha_envio = (DateTime)datareader["Fecha_Envio"];
                        DateTime?fecha_carga = datareader["Fecha_Carga"] as DateTime?;
                        bool     ena         = (bool)datareader["ENA"];

                        carga_emergencia = new CargaEmergenciaATMFull(fecha_envio, manifiesto, ena, id: id_carga, atm: atm, fecha_carga: fecha_carga);
                    }

                    int    id_cajero               = (int)datareader["ID_Cajero_Descarga"];
                    string nombre_cajero           = (string)datareader["Nombre_Cajero_Descarga"];
                    string primer_apellido_cajero  = (string)datareader["Primer_Apellido_Cajero_Descarga"];
                    string segundo_apellido_cajero = (string)datareader["Segundo_Apellido_Cajero_Descarga"];

                    Colaborador cajero_descarga = new Colaborador(id_cajero, nombre_cajero, primer_apellido_cajero,
                                                                  segundo_apellido_cajero);

                    int    id_coordinador               = (int)datareader["ID_Coordinador"];
                    string nombre_coordinador           = (string)datareader["Nombre_Coordinador"];
                    string primer_apellido_coordinador  = (string)datareader["Primer_Apellido_Coordinador"];
                    string segundo_apellido_coordinador = (string)datareader["Segundo_Apellido_Coordinador"];

                    Colaborador coordinador = new Colaborador(id_coordinador, nombre_coordinador, primer_apellido_coordinador,
                                                              segundo_apellido_coordinador);

                    byte   id_camara     = (byte)datareader["ID_Camara"];
                    string identificador = (string)datareader["Identificador"];

                    Camara camara = new Camara(identificador, id: id_camara);

                    int      id_cierre = (int)datareader["ID_cierre"];
                    DateTime fecha     = (DateTime)datareader["Fecha_Cierre"];

                    CierreATMs cierre = new CierreATMs(cajero_descarga, id: id_cierre, coordinador: coordinador, fecha: fecha, camara: camara);

                    DescargaATMFull descarga = new DescargaATMFull(id: id_descarga, cierre: cierre, carga: carga, carga_emergencia: carga_emergencia,
                                                                   fecha: f);

                    descargas.Add(descarga);
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }

            return(descargas);
        }
        /// <summary>
        /// Clic en el botón de guardar un  manifiesto de full.
        /// </summary>
        private void btnGuardarManifiestoFull_Click(object sender, EventArgs e)
        {
            // Verificar que se hayan especificado los datos del manifiesto

            if (txtMarchamoFull.Text.Equals(string.Empty) || (_carga.ENA && (txtMarchamoAdicionalENA.Text.Equals(string.Empty) ||
                                                                             txtMarchamoENAA.Text.Equals(string.Empty) || txtMarchamoENAB.Text.Equals(string.Empty))))
            {
                Excepcion.mostrarMensaje("ErrorManifiestoATMFullDatosRegistro");
                return;
            }

            try
            {
                string   codigo   = txtCodigoManifiestoFull.Text;
                string   marchamo = txtMarchamoFull.Text;
                DateTime fecha    = _carga.Fecha_asignada;

                string marchamo_adicional_ena = null;
                string marchamo_ena_a         = null;
                string marchamo_ena_b         = null;


                string bolsa_rechazo = chkBolsaRechazoFull.Checked ?
                                       txtBolsaRechazoFull.Text : null;

                if (_carga.ENA)
                {
                    marchamo_adicional_ena = txtMarchamoAdicionalENA.Text;
                    marchamo_ena_a         = txtMarchamoENAA.Text;
                    marchamo_ena_b         = txtMarchamoENAB.Text;
                }

                // Verificar si el manifiesto es nuevo

                if (_manifiesto_full == null)
                {
                    if (Mensaje.mostrarMensajeConfirmacion("MensajeManifiestoATMFullRegistro") == DialogResult.Yes)
                    {
                        ManifiestoATMFull nuevo = new ManifiestoATMFull(codigo, marchamo, fecha, marchamo_adicional_ena, marchamo_ena_a,
                                                                        marchamo_ena_b, bolsa_rechazo);

                        _atencion.agregarManifiestoATMFull(ref nuevo);

                        txtCodigoManifiestoFull.Text = nuevo.Codigo;

                        // Agregar el manifiesto a la lista de manifiestos

                        BindingList <ManifiestoATMFull> manifiestos = (BindingList <ManifiestoATMFull>)dgvManifiestosFull.DataSource;

                        manifiestos.Add(nuevo);

                        Mensaje.mostrarMensaje("MensajeManifiestoATMFullConfirmacionRegistro");

                        btnCancelarManifiesto.Enabled = false;
                        btnAceptar.Enabled            = true;
                    }
                }
                else
                {
                    ManifiestoATMFull copia = new ManifiestoATMFull(codigo, marchamo, fecha, marchamo_adicional_ena, marchamo_ena_a,
                                                                    marchamo_ena_b, bolsa_rechazo, id: _manifiesto_full.ID);

                    _atencion.actualizarManifiestoATMFull(copia);

                    _manifiesto_full.Codigo   = codigo;
                    _manifiesto_full.Marchamo = marchamo;
                    _manifiesto_full.Marchamo_adicional_ena = marchamo_adicional_ena;
                    _manifiesto_full.Marchamo_ena_a         = marchamo_ena_a;
                    _manifiesto_full.Marchamo_ena_b         = marchamo_ena_b;

                    Mensaje.mostrarMensaje("MensajeManifiestoATMFullConfirmacionActualizacion");
                }
            }
            catch (Excepcion ex)
            {
                ex.mostrarMensaje();
            }
        }