Ejemplo n.º 1
0
        /// <summary>
        /// Obtener todos los sobres que pertenecen a una inconsistencia en un deposito.
        /// </summary>
        /// <param name="i">Inconsistencia en un deposito para la cual se obtiene la lista de sobre</param>
        public void obtenerSobresInconsistencia(ref InconsistenciaDeposito i)
        {
            SqlCommand    comando    = _manejador.obtenerProcedimiento("SelectInconsistenciaDepositoSobres");
            SqlDataReader datareader = null;

            _manejador.agregarParametro(comando, "@inconsistencia", i.Id, SqlDbType.Int);

            try
            {
                datareader = _manejador.ejecutarConsultaDatos(comando);

                while (datareader.Read())
                {
                    int     id              = (int)datareader["pk_ID"];
                    int     numero          = (int)datareader["Numero"];
                    decimal monto_reportado = (decimal)datareader["Monto_Reportado"];
                    decimal monto_real      = (decimal)datareader["Monto_Real"];
                    Monedas moneda          = (Monedas)datareader["Moneda"];

                    Sobre sobre = new Sobre(id, numero, monto_reportado, monto_real, moneda);
                    i.agregarSobre(sobre);
                }

                comando.Connection.Close();
            }
            catch (Exception)
            {
                comando.Connection.Close();
                throw new Excepcion("ErrorDatosConexion");
            }
        }
        /// <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();
            }
        }