Beispiel #1
0
        public List <ComprobantePagoBe> BuscarComprobantePago(DateTime?fechaPagoDesde, DateTime?fechaPagoHasta, int?codigoSerie, string nroComprobante, string nroDocIdentidadCliente, string nombresCliente, bool flagAnulado, SqlConnection cn)
        {
            List <ComprobantePagoBe> resultados = null;

            try
            {
                using (SqlCommand cmd = new SqlCommand("dbo.usp_comprobantepago_buscar", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@fechaPagoDesde", fechaPagoDesde.GetNullable());
                    cmd.Parameters.AddWithValue("@fechaPagoHasta", fechaPagoHasta.GetNullable());
                    cmd.Parameters.AddWithValue("@codigoSerie", codigoSerie.GetNullable());
                    cmd.Parameters.AddWithValue("@nroComprobante", nroComprobante.GetNullable());
                    cmd.Parameters.AddWithValue("@nroDocumentoIdentidadCliente", nroDocIdentidadCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@nombresCliente", nombresCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@flagAnulado", flagAnulado.GetNullable());

                    using (SqlDataReader dr = cmd.ExecuteReader())
                    {
                        if (dr.HasRows)
                        {
                            resultados = new List <ComprobantePagoBe>();

                            while (dr.Read())
                            {
                                ComprobantePagoBe item = new ComprobantePagoBe();
                                item.Fila = dr.GetData <int>("Fila");
                                item.CodigoComprobantePago = dr.GetData <int>("CodigoComprobantePago");
                                item.FechaHoraPago         = dr.GetData <DateTime>("FechaHoraPago");
                                item.CodigoSerie           = dr.GetData <int>("CodigoSerie");
                                item.Serie                 = new SerieBe();
                                item.Serie.Serial          = dr.GetData <string>("SerialSerie");
                                item.NroComprobante        = dr.GetData <int>("NroComprobante");
                                item.CodigoMoneda          = dr.GetData <int>("CodigoMoneda");
                                item.CodigoCliente         = dr.GetData <int>("CodigoCliente");
                                item.Cliente               = new ClienteBe();
                                item.Cliente.CodigoCliente = dr.GetData <int>("CodigoCliente");
                                item.Cliente.CodigoTipoDocumentoIdentidad = dr.GetData <int>("CodigoTipoDocumentoIdentidadCliente");
                                item.Cliente.TipoDocumentoIdentidad       = new TipoDocumentoIdentidadBe();
                                item.Cliente.TipoDocumentoIdentidad.CodigoTipoDocumentoIdentidad = dr.GetData <int>("CodigoTipoDocumentoIdentidadCliente");
                                item.Cliente.TipoDocumentoIdentidad.Descripcion = dr.GetData <string>("DescripcionTipoDocumentoIdentidadCliente");
                                item.Cliente.NroDocumentoIdentidad = dr.GetData <string>("NroDocumentoIdentidadCliente");
                                item.Cliente.Nombres    = dr.GetData <string>("NombresCliente");
                                item.Cliente.FlagActivo = dr.GetData <bool>("FlagActivoCliente");
                                item.Descripcion        = dr.GetData <string>("Descripcion");
                                item.Monto       = dr.GetData <decimal>("Monto");
                                item.FlagAnulado = dr.GetData <bool>("FlagAnulado");

                                resultados.Add(item);
                            }
                        }
                    }
                }
            }
            catch (Exception ex) { log.Error(ex.Message); }

            return(resultados);
        }
        void CargarComprobantePago()
        {
            ComprobantePagoBe item = comprobantePagoBl.ObtenerComprobantePago(codigoComprobantePago.Value, true, true);

            dtpFechaHoraPago.Value        = item.FechaHoraPago;
            cbbCodigoSerie.SelectedValue  = item.CodigoSerie;
            txtNroComprobante.Text        = item.NroComprobante.ToString("00000000");
            cbbCodigoMoneda.SelectedValue = item.CodigoMoneda.ToString();

            codigoCliente = item.CodigoCliente;
            CargarCliente(codigoCliente);

            listaDetalleInicial = item.ListaComprobantePagoDetalle;
            listaDetalle        = item.ListaComprobantePagoDetalle;
            ListarComprobantePagoDetalle();
        }
Beispiel #3
0
        public bool CambiarFlagAnuladoComprobantePago(ComprobantePagoBe registro)
        {
            bool seGuardo = false;

            try
            {
                cn.Open();
                seGuardo = comprobantePagoDa.CambiarFlagAnuladoComprobantePago(registro, cn);
            }
            catch (Exception ex) { log.Error(ex.Message); }
            finally { if (cn.State == ConnectionState.Open)
                      {
                          cn.Close();
                      }
            }

            return(seGuardo);
        }
Beispiel #4
0
        public bool GuardarComprobantePago(ComprobantePagoBe registro, SqlConnection cn, out int codigoComprobantePago, out int nroComprobante)
        {
            codigoComprobantePago = 0;
            nroComprobante        = 0;
            bool seGuardo = false;

            try
            {
                using (SqlCommand cmd = new SqlCommand("dbo.usp_comprobantepago_guardar", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter {
                        ParameterName = "@codigoComprobantePago", Value = registro.CodigoComprobantePago.GetNullable(), Direction = ParameterDirection.InputOutput
                    });
                    cmd.Parameters.AddWithValue("@fechaHoraPago", registro.FechaHoraPago.GetNullable());
                    cmd.Parameters.AddWithValue("@codigoSerie", registro.CodigoSerie.GetNullable());
                    cmd.Parameters.Add(new SqlParameter {
                        ParameterName = "@nroComprobante", Value = registro.NroComprobante.GetNullable(), Direction = ParameterDirection.InputOutput
                    });
                    cmd.Parameters.AddWithValue("@codigoMoneda", registro.CodigoMoneda.GetNullable());
                    cmd.Parameters.AddWithValue("@codigoCliente", registro.CodigoCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@descripcion", registro.CodigoCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@monto", registro.Monto.GetNullable());
                    cmd.Parameters.AddWithValue("@usuarioModi", registro.UsuarioModi.GetNullable());
                    int filasAfectadas = cmd.ExecuteNonQuery();

                    seGuardo = filasAfectadas > 0;

                    if (seGuardo)
                    {
                        codigoComprobantePago = (int)cmd.Parameters["@codigoComprobantePago"].Value;
                        nroComprobante        = (int)cmd.Parameters["@nroComprobante"].Value;
                    }
                }
            }
            catch (Exception ex) { log.Error(ex.Message); }

            return(seGuardo);
        }
Beispiel #5
0
        public bool CambiarFlagAnuladoComprobantePago(ComprobantePagoBe registro, SqlConnection cn)
        {
            bool seGuardo = false;

            try
            {
                using (SqlCommand cmd = new SqlCommand("dbo.usp_comprobantepago_cambiar_flaganulado", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@codigoComprobantePago", registro.CodigoComprobantePago.GetNullable());
                    cmd.Parameters.AddWithValue("@flagAnulado", registro.FlagAnulado.GetNullable());
                    cmd.Parameters.AddWithValue("@usuarioModi", registro.UsuarioModi.GetNullable());

                    int filasAfectadas = cmd.ExecuteNonQuery();

                    seGuardo = filasAfectadas > 0;
                }
            }
            catch (Exception ex) { log.Error(ex.Message); }

            return(seGuardo);
        }
Beispiel #6
0
        public ComprobantePagoBe ObtenerComprobantePago(int codigoComprobantePago, bool withDetalle = false, bool withProductoIndividual = false)
        {
            ComprobantePagoBe item = null;

            try
            {
                cn.Open();
                item = comprobantePagoDa.ObtenerComprobantePago(codigoComprobantePago, cn);
                if (withDetalle)
                {
                    item.ListaComprobantePagoDetalle = comprobantePagoDetalleDa.ListarComprobantePagoDetalle(codigoComprobantePago, cn);
                }
            }
            catch (Exception ex) { log.Error(ex.Message); }
            finally { if (cn.State == ConnectionState.Open)
                      {
                          cn.Close();
                      }
            }

            return(item);
        }
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            bool estaValidado = ValidarFormulario();

            if (!estaValidado)
            {
                return;
            }

            ComprobantePagoBe registro = new ComprobantePagoBe();

            if (codigoComprobantePago.HasValue)
            {
                registro.CodigoComprobantePago = codigoComprobantePago.Value;
            }
            registro.FechaHoraPago = dtpFechaHoraPago.Value;
            registro.CodigoSerie   = (int)cbbCodigoSerie.SelectedValue;
            if (!string.IsNullOrEmpty(txtNroComprobante.Text))
            {
                registro.NroComprobante = int.Parse(txtNroComprobante.Text.Trim());
            }
            registro.CodigoMoneda  = int.Parse(cbbCodigoMoneda.SelectedValue.ToString());
            registro.CodigoCliente = codigoCliente.Value;
            registro.ListaComprobantePagoDetalle         = listaDetalle;
            registro.ListaComprobantePagoDetalleEliminar = listaDetalleInicial == null ? null : listaDetalleInicial.Where(x => listaDetalle.Count(y => y.CodigoComprobantePagoDetalle == x.CodigoComprobantePagoDetalle) == 0).Select(x => x.CodigoComprobantePagoDetalle).ToArray();
            registro.Monto = listaDetalle.Sum(x => x.ImportePagar);

            bool seGuardoRegistro = comprobantePagoBl.GuardarComprobantePago(registro);

            if (seGuardoRegistro)
            {
                DialogResult = MessageBox.Show("¡El registro se guardó correctamente!", "¡Bien hecho!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Close();
            }
            else
            {
                MessageBox.Show("¡Ocurrió un error! Contáctese con el administrador del sistema", "¡Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Beispiel #8
0
        public ComprobantePagoBe ObtenerComprobantePago(int codigoComprobantePago, SqlConnection cn)
        {
            ComprobantePagoBe item = null;

            try
            {
                using (SqlCommand cmd = new SqlCommand("dbo.usp_comprobantepago_obtener", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@codigoComprobantePago", codigoComprobantePago.GetNullable());

                    using (SqlDataReader dr = cmd.ExecuteReader())
                    {
                        if (dr.HasRows)
                        {
                            item = new ComprobantePagoBe();

                            if (dr.Read())
                            {
                                item.CodigoComprobantePago = dr.GetData <int>("CodigoComprobantePago");
                                item.CodigoSerie           = dr.GetData <int>("CodigoSerie");
                                item.NroComprobante        = dr.GetData <int>("NroComprobante");
                                item.FechaHoraPago         = dr.GetData <DateTime>("FechaHoraPago");
                                item.CodigoCliente         = dr.GetData <int>("CodigoCliente");
                                item.Descripcion           = dr.GetData <string>("Descripcion");
                                item.Monto         = dr.GetData <decimal>("Monto");
                                item.FlagAnulado   = dr.GetData <bool>("FlagAnulado");
                                item.FlagEliminado = dr.GetData <bool>("FlagEliminado");
                            }
                        }
                    }
                }
            }
            catch (Exception ex) { log.Error(ex.Message); }

            return(item);
        }
Beispiel #9
0
        private void mitAnular_Click(object sender, EventArgs e)
        {
            MenuItem mitControl = (MenuItem)sender;
            dynamic  data       = (object)mitControl.Tag;

            DialogResult dr = MessageBox.Show($"¿Estás seguro que deseas anular el registro?", "Confirmar", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dr == DialogResult.Yes)
            {
                ComprobantePagoBe registro = new ComprobantePagoBe();
                registro.CodigoComprobantePago = data.CodigoComprobantePago;
                registro.FlagAnulado           = true;
                bool seGuardo = comprobantePagoBl.CambiarFlagAnuladoComprobantePago(registro);
                if (seGuardo)
                {
                    MessageBox.Show($"Se anuló el registro", "¡Bien hecho!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    BuscarComprobantesPago();
                }
                else
                {
                    MessageBox.Show("¡Ocurrió un error! Contáctese con el administrador del sistema", "¡Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Beispiel #10
0
        public bool GuardarComprobantePago(ComprobantePagoBe registro)
        {
            bool seGuardo = false;

            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    cn.Open();
                    int codigoComprobantePago = 0, nroComprobante = 0;
                    seGuardo = comprobantePagoDa.GuardarComprobantePago(registro, cn, out codigoComprobantePago, out nroComprobante);
                    if (registro.ListaComprobantePagoDetalle != null && seGuardo)
                    {
                        foreach (ComprobantePagoDetalleBe item in registro.ListaComprobantePagoDetalle)
                        {
                            if (item.CodigoComprobantePago == 0)
                            {
                                item.CodigoComprobantePago = codigoComprobantePago;
                            }
                            if (!seGuardo)
                            {
                                break;
                            }
                            seGuardo = comprobantePagoDetalleDa.GuardarComprobantePagoDetalle(item, cn);
                            if (!seGuardo)
                            {
                                break;
                            }
                            TipoDocumentoPago tipoDocumentoPago = (TipoDocumentoPago)item.CodigoTipoDocumentoPago;
                            switch (tipoDocumentoPago)
                            {
                            case TipoDocumentoPago.Factura:
                                FacturaVentaBe documentoPagoFactura = new FacturaVentaBe
                                {
                                    CodigoFacturaVenta = item.CodigoDocumentoPago,
                                    FlagCancelado      = true,
                                    UsuarioModi        = item.UsuarioModi
                                };
                                seGuardo = facturaVentaDa.CambiarFlagCanceladoFacturaVenta(documentoPagoFactura, cn);
                                break;

                            case TipoDocumentoPago.Boleta:
                                BoletaVentaBe documentoPagoBoleta = new BoletaVentaBe
                                {
                                    CodigoBoletaVenta = item.CodigoDocumentoPago,
                                    FlagCancelado     = true,
                                    UsuarioModi       = item.UsuarioModi
                                };
                                seGuardo = boletaVentaDa.CambiarFlagCanceladoBoletaVenta(documentoPagoBoleta, cn);
                                break;

                            case TipoDocumentoPago.Letra:
                                LetraBe letra      = letraDa.ObtenerLetra(item.CodigoDocumentoPago, cn);
                                bool    porRenovar = item.ImportePagar < letra.Total;

                                if (!porRenovar)
                                {
                                    int codigoLetraInicial     = letra.CodigoLetraInicial.HasValue ? letra.CodigoLetraInicial.Value : letra.CodigoLetra;
                                    var listaLetrasPorCancelar = letraDa.ListarLetraPorCodigoLetraInicial(codigoLetraInicial, cn);

                                    if (listaLetrasPorCancelar != null)
                                    {
                                        foreach (var letraPorCancelar in listaLetrasPorCancelar)
                                        {
                                            LetraBe documentoPagoLetra = new LetraBe
                                            {
                                                CodigoLetra   = letraPorCancelar.CodigoLetra,
                                                FlagCancelado = true,
                                                UsuarioModi   = letraPorCancelar.UsuarioModi
                                            };
                                            seGuardo = letraDa.CambiarFlagCanceladoLetra(documentoPagoLetra, cn);
                                            if (!seGuardo)
                                            {
                                                break;
                                            }
                                        }
                                    }
                                }

                                if (seGuardo && porRenovar)
                                {
                                    letra.Estado      = (int)EstadoLetra.Renovada;
                                    letra.UsuarioModi = registro.UsuarioModi;
                                    seGuardo          = letraDa.CambiarEstadoLetra(letra, cn);

                                    if (!seGuardo)
                                    {
                                        break;
                                    }

                                    LetraBe nuevaLetra = new LetraBe
                                    {
                                        FechaHoraEmision             = letra.FechaHoraEmision,
                                        FechaVencimiento             = letra.FechaVencimiento.AddMonths(1),
                                        Dias                         = (letra.FechaVencimiento.AddMonths(1) - letra.FechaVencimiento).Days,
                                        CodigoTipoComprobanteRef     = letra.CodigoTipoComprobanteRef,
                                        CodigoComprobanteRef         = letra.CodigoComprobanteRef,
                                        CodigoSerieComprobanteRef    = letra.CodigoSerieComprobanteRef,
                                        NroComprobanteComprobanteRef = letra.NroComprobanteComprobanteRef,
                                        CodigoGuiaRemision           = letra.CodigoGuiaRemision,
                                        CodigoSerieGuiaRemision      = letra.CodigoSerieGuiaRemision,
                                        NroComprobanteGuiaRemision   = letra.NroComprobanteGuiaRemision,
                                        CodigoCliente                = letra.CodigoCliente,
                                        CodigoBanco                  = letra.CodigoBanco,
                                        CodigoUnicoBanco             = letra.CodigoUnicoBanco,
                                        CodigoMoneda                 = letra.CodigoMoneda,
                                        Monto                        = letra.Monto - item.MontoPagar,
                                        Mora                         = letra.Mora - item.MoraPagar,
                                        Protesto                     = letra.Protesto - item.ProtestoPagar,
                                        Estado                       = (int)EstadoLetra.Pendiente,
                                        CodigoLetraPadre             = letra.CodigoLetra,
                                        CodigoLetraInicial           = letra.CodigoLetraInicial.HasValue ? letra.CodigoLetraInicial.Value : letra.CodigoLetra,
                                        FlagAval                     = letra.FlagAval,
                                        CodigoAval                   = letra.CodigoAval,
                                        DireccionAval                = letra.DireccionAval,
                                        NombrePaisAval               = letra.NombrePaisAval,
                                        NombreDepartamentoAval       = letra.NombreDepartamentoAval,
                                        NombreProvinciaAval          = letra.NombreProvinciaAval,
                                        CodigoDistritoAval           = letra.CodigoDistritoAval,
                                        NombreDistritoAval           = letra.NombreDistritoAval,
                                        FlagCancelado                = letra.FlagCancelado,
                                        FlagActivo                   = letra.FlagActivo,
                                        FlagEliminado                = letra.FlagEliminado
                                    };

                                    int nuevoCodigoLetra = 0, nuevoNumeroLetra = 0;
                                    seGuardo = letraDa.GuardarLetra(nuevaLetra, cn, out nuevoCodigoLetra, out nuevoNumeroLetra);
                                    if (!seGuardo)
                                    {
                                        break;
                                    }
                                }
                                break;
                            }
                            if (!seGuardo)
                            {
                                break;
                            }
                        }
                    }

                    if (registro.ListaComprobantePagoDetalleEliminar != null && seGuardo)
                    {
                        foreach (int codigoComprobantePagoDetalle in registro.ListaComprobantePagoDetalleEliminar)
                        {
                            seGuardo = comprobantePagoDetalleDa.EliminarComprobantePagoDetalle(codigoComprobantePagoDetalle, registro.UsuarioModi, cn);
                            if (!seGuardo)
                            {
                                break;
                            }
                        }
                    }

                    if (seGuardo)
                    {
                        scope.Complete();
                    }
                }
            }
            catch (Exception ex) { log.Error(ex.Message); }
            finally { if (cn.State == ConnectionState.Open)
                      {
                          cn.Close();
                      }
            }

            return(seGuardo);
        }