/// <summary>
        /// Clic en el botón de guardar.
        /// </summary>
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if (dgvManifiestos.SelectedRows.Count == 0 || dgvTulas.SelectedRows.Count == 0 ||
                dgvDepositos.SelectedRows.Count == 0 || cboCajero.SelectedItem == null ||
                cboDigitador.SelectedItem == null || cboPuntoVenta.SelectedItem == null ||
                cboCamara.SelectedItem == null)
            {
                Excepcion.mostrarMensaje("ErrorInconsistenciaDatosRegistro");
                return;
            }

            try
            {
                frmAdministracionInconsistenciasCEF padre = (frmAdministracionInconsistenciasCEF)this.Owner;

                PuntoVenta punto_venta = (PuntoVenta)cboPuntoVenta.SelectedItem;

                SegregadoCEF  segregado      = null;
                ManifiestoCEF manifiesto_cef = null;

                DateTime fecha    = dtpFecha.Value;
                Camara   camara   = (Camara)cboCamara.SelectedItem;
                Deposito deposito = (Deposito)dgvDepositos.SelectedRows[0].DataBoundItem;
                Tula     tula     = (Tula)dgvTulas.SelectedRows[0].DataBoundItem;

                decimal diferencia_colones = nudDiferenciaColones.Value;
                decimal diferencia_dolares = nudDiferenciaDolares.Value;
                decimal diferencia_euros   = nudDiferenciaEuros.Value;
                short   bolso      = (short)nudBolso.Value;
                string  comentario = txtComentario.Text;

                Colaborador cajero         = (Colaborador)cboCajero.SelectedItem;
                Colaborador digitador      = (Colaborador)cboDigitador.SelectedItem;
                Colaborador coordinador    = (Colaborador)cboCoordinador.SelectedItem;
                DateTime    fecha_planilla = dtpFechaManifiesto.Value;

                if (_planilla is SegregadoCEF)
                {
                    segregado      = (SegregadoCEF)_planilla;
                    manifiesto_cef = (ManifiestoCEF)dgvManifiestos.SelectedRows[0].DataBoundItem;

                    segregado.Cajero      = cajero;
                    segregado.Digitador   = digitador;
                    segregado.Coordinador = coordinador;
                    segregado.Punto_venta = punto_venta;

                    manifiesto_cef.Fecha_procesamiento = fecha_planilla;
                }
                else
                {
                    manifiesto_cef = (ManifiestoCEF)_planilla;

                    manifiesto_cef.Cajero              = cajero;
                    manifiesto_cef.Digitador           = digitador;
                    manifiesto_cef.Coordinador         = coordinador;
                    manifiesto_cef.Punto_venta         = punto_venta;
                    manifiesto_cef.Fecha_procesamiento = fecha_planilla;
                }

                BindingList <Valor> valores = (BindingList <Valor>)dgvValores.DataSource;
                BindingList <Sobre> sobres  = (BindingList <Sobre>)dgvSobres.DataSource;

                // Verificar si la inconsistencia es nueva

                if (_inconsistencia == null)
                {
                    // Agregar la inconsistencia

                    if (Mensaje.mostrarMensajeConfirmacion("MensajeInconsistenciaRegistro") == DialogResult.Yes)
                    {
                        InconsistenciaDeposito nueva =
                            new InconsistenciaDeposito(manifiesto_cef, segregado, bolso, tula, deposito, camara,
                                                       fecha, diferencia_colones, diferencia_dolares, comentario, diferencia_euros);

                        foreach (Valor valor in valores)
                        {
                            nueva.agregarValor(valor);
                        }

                        foreach (Sobre sobre in sobres)
                        {
                            nueva.agregarSobre(sobre);
                        }

                        _coordinacion.agregarInconsistenciaDeposito(ref nueva);

                        padre.agregarInconsistenciaClienteDeposito(nueva);
                        Mensaje.mostrarMensaje("MensajeInconsistenciaConfirmacionRegistro");
                        this.Close();
                    }
                }
                else
                {
                    InconsistenciaDeposito copia =
                        new InconsistenciaDeposito(_inconsistencia.Id, manifiesto_cef, segregado, bolso, tula, deposito, camara,
                                                   fecha, diferencia_colones, diferencia_dolares, comentario, diferencia_euros);

                    foreach (Valor sobre in valores)
                    {
                        copia.agregarValor(sobre);
                    }

                    foreach (Sobre sobre in sobres)
                    {
                        copia.agregarSobre(sobre);
                    }

                    _coordinacion.actualizarInconsistenciaDeposito(copia);

                    //Actualizar la inconsistencia

                    _inconsistencia.Manifiesto = manifiesto_cef;
                    _inconsistencia.Segregado  = segregado;
                    _inconsistencia.Camara     = camara;
                    _inconsistencia.Fecha      = fecha;
                    _inconsistencia.Comentario = comentario;
                    _inconsistencia.Deposito   = deposito;
                    _inconsistencia.Tula       = tula;

                    _inconsistencia.Diferencia_colones = diferencia_colones;
                    _inconsistencia.Diferencia_dolares = diferencia_dolares;

                    _inconsistencia.Valores = copia.Valores;
                    _inconsistencia.Sobres  = copia.Sobres;

                    padre.actualizarListaClientesDepositos();
                    Mensaje.mostrarMensaje("MensajeInconsistenciaConfirmacionActualizacion");
                    this.Close();
                }
            }
            catch (Excepcion ex)
            {
                ex.mostrarMensaje();
            }
        }
        /// <summary>
        /// Clic en el botón de guardar.
        /// </summary>
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            if (dgvManifiestos.SelectedRows.Count == 0 || cboCajero.SelectedItem == null || cboDigitador.SelectedItem == null ||
                cboPuntoVenta.SelectedItem == null || cboCamara.SelectedItem == null)
            {
                Excepcion.mostrarMensaje("ErrorInconsistenciaDatosRegistro");
                return;
            }

            try
            {
                frmAdministracionInconsistenciasCEF padre = (frmAdministracionInconsistenciasCEF)this.Owner;

                Camara   camara     = (Camara)cboCamara.SelectedItem;
                DateTime fecha      = dtpFecha.Value;
                string   comentario = txtComentario.Text;

                decimal monto_colones_reportado = nudMontoColonesReportado.Value;
                decimal monto_dolares_reportado = nudMontoDolaresReportado.Value;
                decimal monto_total_reportado   = nudMontoTotalReportado.Value;
                decimal monto_euros_reportado   = nudMontoEurosReportado.Value;

                PuntoVenta  punto_venta      = (PuntoVenta)cboPuntoVenta.SelectedItem;
                Colaborador cajero           = (Colaborador)cboCajero.SelectedItem;
                Colaborador digitador        = (Colaborador)cboDigitador.SelectedItem;
                DateTime    fecha_manifiesto = dtpFechaManifiesto.Value;

                decimal monto_colones = nudMontoColonesReal.Value;
                decimal monto_dolares = nudMontoDolaresReal.Value;
                decimal monto_total   = nudMontoTotalReal.Value;
                decimal monto_euros   = nudMontoEurosReal.Value;
                short   depositos     = (short)nudDepositosReales.Value;

                _manifiesto.Cajero              = cajero;
                _manifiesto.Digitador           = digitador;
                _manifiesto.Coordinador         = _coordinador;
                _manifiesto.Fecha_procesamiento = fecha_manifiesto;
                _manifiesto.Punto_venta         = punto_venta;
                _manifiesto.Monto_colones       = monto_colones;
                _manifiesto.Monto_dolares       = monto_dolares;
                _manifiesto.Depositos           = depositos;
                _manifiesto.Monto_Euros         = monto_euros;

                // Verificar si la inconsistencia es nueva

                if (_inconsistencia == null)
                {
                    // Agregar la inconsistencia

                    if (Mensaje.mostrarMensajeConfirmacion("MensajeInconsistenciaRegistro") == DialogResult.Yes)
                    {
                        InconsistenciaManifiestoCEF nueva =
                            new InconsistenciaManifiestoCEF(_manifiesto, camara, fecha, monto_colones_reportado,
                                                            monto_dolares_reportado, monto_total_reportado, monto_total,
                                                            comentario, monto_euros_reportado);

                        _coordinacion.agregarInconsistenciaManifiestoCEF(ref nueva);

                        padre.agregarInconsistenciaManifiestoCEF(nueva);
                        Mensaje.mostrarMensaje("MensajeInconsistenciaConfirmacionRegistro");
                        this.Close();
                    }
                }
                else
                {
                    InconsistenciaManifiestoCEF copia =
                        new InconsistenciaManifiestoCEF(_inconsistencia.Id, _manifiesto, camara, fecha, monto_colones_reportado,
                                                        monto_dolares_reportado, monto_total_reportado, monto_total,
                                                        comentario, monto_euros_reportado);

                    _coordinacion.actualizarInconsistenciaManifiestoCEF(copia);

                    //Actualizar la inconsistencia

                    _inconsistencia.Manifiesto = _manifiesto;
                    _inconsistencia.Camara     = camara;
                    _inconsistencia.Fecha      = fecha;

                    _inconsistencia.Monto_colones_reportado = monto_colones_reportado;
                    _inconsistencia.Monto_dolares_reportado = monto_dolares_reportado;

                    _inconsistencia.Monto_total_reportado = monto_total_reportado;
                    _inconsistencia.Monto_total_real      = monto_total;

                    padre.actualizarListaClientesManifiestos();
                    Mensaje.mostrarMensaje("MensajeInconsistenciaConfirmacionActualizacion");
                    this.Close();
                }
            }
            catch (Excepcion ex)
            {
                ex.mostrarMensaje();
            }
        }