Ejemplo n.º 1
0
        public bool GuardarEmisionFacturaVenta(FacturaVentaBe registro)
        {
            bool seGuardo = false;

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

            return(seGuardo);
        }
Ejemplo n.º 2
0
        private void mitGenerarNotaDebito_Click(object sender, EventArgs e)
        {
            MenuItem mitControl = (MenuItem)sender;

            int codigoGuiaRemision = (int)mitControl.Tag;

            FacturaVentaBe facturaVenta = facturaVentaBl.ObtenerFacturaVenta(codigoGuiaRemision, true, withSerie: true);

            FrmMantenimientoNotaDebito frm = new FrmMantenimientoNotaDebito(null, facturaVenta, TipoComprobante.Factura);

            frm.ShowInTaskbar = false;
            frm.BringToFront();
            DialogResult dr = frm.ShowDialog();

            if (dr == DialogResult.OK)
            {
                BuscarFacturasVenta();
            }
        }
Ejemplo n.º 3
0
        public FacturaVentaBe ObtenerFacturaVenta(int codigoFacturaVenta, bool withDetalle = false, bool withLetra = false, bool withSerie = false, bool withUnidadMedida = false)
        {
            FacturaVentaBe item = null;

            try
            {
                cn.Open();
                item = facturaVentaDa.ObtenerFacturaVenta(codigoFacturaVenta, cn);
                if (withSerie)
                {
                    item.Serie = serieDa.ObtenerSerie(item.CodigoSerie, cn);
                }
                if (withDetalle)
                {
                    item.ListaFacturaVentaDetalle = facturaVentaDetalleDa.ListarFacturaVentaDetalle(codigoFacturaVenta, cn);
                }
                if (withLetra)
                {
                    item.ListaLetra = letraDa.ListarLetraPorRef((int)TipoComprobante.Factura, item.CodigoSerie, item.NroComprobante, cn);
                }
                if (withUnidadMedida)
                {
                    if (item.ListaFacturaVentaDetalle != null)
                    {
                        foreach (var detalle in item.ListaFacturaVentaDetalle)
                        {
                            if (withUnidadMedida)
                            {
                                detalle.UnidadMedida = unidadMedidaDa.ObtenerUnidadMedida(detalle.CodigoUnidadMedida, cn);
                            }
                        }
                    }
                }
            }
            catch (Exception ex) { log.Error(ex.Message); }
            finally { if (cn.State == ConnectionState.Open)
                      {
                          cn.Close();
                      }
            }

            return(item);
        }
Ejemplo n.º 4
0
        public bool CambiarFlagCanceladoFacturaVenta(FacturaVentaBe registro, SqlConnection cn)
        {
            bool seGuardo = false;

            try
            {
                using (SqlCommand cmd = new SqlCommand("dbo.usp_facturaventa_cambiar_flagcancelado", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@codigoFacturaVenta", registro.CodigoFacturaVenta.GetNullable());
                    cmd.Parameters.AddWithValue("@flagCancelado", registro.FlagCancelado.GetNullable());
                    cmd.Parameters.AddWithValue("@usuarioModi", registro.UsuarioModi.GetNullable());

                    int filasAfectadas = cmd.ExecuteNonQuery();

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

            return(seGuardo);
        }
Ejemplo n.º 5
0
        public bool GuardarEmisionFacturaVenta(FacturaVentaBe registro, SqlConnection cn)
        {
            bool seGuardo = false;

            try
            {
                using (SqlCommand cmd = new SqlCommand("dbo.usp_facturaventa_guardar_emision", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@codigoFacturaVenta", registro.CodigoFacturaVenta.GetNullable());
                    cmd.Parameters.AddWithValue("@hash", registro.Hash.GetNullable());
                    cmd.Parameters.AddWithValue("@codigoRptaSunat", registro.CodigoRptaSunat.GetNullable());
                    cmd.Parameters.AddWithValue("@descripcionRptaSunat", registro.DescripcionRptaSunat.GetNullable());
                    cmd.Parameters.AddWithValue("@flagEmitido", registro.FlagEmitido.GetNullable());
                    cmd.Parameters.AddWithValue("@usuarioModi", registro.UsuarioModi.GetNullable());
                    int filasAfectadas = cmd.ExecuteNonQuery();

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

            return(seGuardo);
        }
Ejemplo n.º 6
0
        public bool GuardarFacturaVenta(FacturaVentaBe registro, out int nroComprobante, out string totalEnLetras)
        {
            nroComprobante = 0;
            totalEnLetras  = null;
            bool seGuardo = false;

            try
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    cn.Open();
                    int codigoFacturaVenta = 0;
                    seGuardo = facturaVentaDa.GuardarFacturaVenta(registro, cn, out codigoFacturaVenta, out nroComprobante, out totalEnLetras);
                    if (registro.ListaFacturaVentaDetalle != null && seGuardo)
                    {
                        foreach (FacturaVentaDetalleBe item in registro.ListaFacturaVentaDetalle)
                        {
                            if (item.CodigoFacturaVenta == 0)
                            {
                                item.CodigoFacturaVenta = codigoFacturaVenta;
                            }
                            seGuardo = facturaVentaDetalleDa.GuardarFacturaVentaDetalle(item, cn);
                            if (!seGuardo)
                            {
                                break;
                            }
                            else
                            {
                                seGuardo = productoIndividualDa.RegenerarProductoIndividual(item.CodigoProductoIndividual, item.Cantidad, registro.UsuarioModi, cn);
                            }
                        }
                    }

                    if (registro.ListaFacturaVentaDetalleEliminar != null && seGuardo)
                    {
                        foreach (int codigoFacturaVentaDetalle in registro.ListaFacturaVentaDetalleEliminar)
                        {
                            seGuardo = facturaVentaDetalleDa.EliminarFacturaVentaDetalle(codigoFacturaVentaDetalle, registro.UsuarioModi, cn);
                            if (!seGuardo)
                            {
                                break;
                            }
                        }
                    }

                    if (registro.ListaLetra != null && seGuardo)
                    {
                        int codigoTipoComprobanteRef = (int)Enums.TipoComprobante.Factura;

                        if (registro.CodigoFacturaVenta != 0)
                        {
                            seGuardo = letraDa.EliminarLetraPorRef(codigoTipoComprobanteRef, codigoFacturaVenta, registro.UsuarioModi, cn);
                        }

                        foreach (LetraBe item in registro.ListaLetra)
                        {
                            item.CodigoTipoComprobanteRef = codigoTipoComprobanteRef;
                            item.CodigoComprobanteRef     = codigoFacturaVenta;
                            item.CodigoGuiaRemision       = registro.CodigoGuiaRemision;
                            item.CodigoCliente            = registro.CodigoCliente;
                            item.CodigoMoneda             = registro.CodigoMoneda;


                            int codigoLetra = 0, numeroLetra = 0;

                            seGuardo = letraDa.GuardarLetra(item, cn, out codigoLetra, out numeroLetra);
                            if (!seGuardo)
                            {
                                break;
                            }
                        }
                    }

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

            return(seGuardo);
        }
Ejemplo n.º 7
0
        public bool GuardarFacturaVenta(FacturaVentaBe registro, SqlConnection cn, out int codigoFacturaVenta, out int nroComprobante, out string totalEnLetras)
        {
            codigoFacturaVenta = 0;
            nroComprobante     = 0;
            totalEnLetras      = null;
            bool seGuardo = false;

            try
            {
                using (SqlCommand cmd = new SqlCommand("dbo.usp_facturaventa_guardar", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter {
                        ParameterName = "@codigoFacturaVenta", Value = registro.CodigoFacturaVenta.GetNullable(), Direction = ParameterDirection.InputOutput
                    });
                    cmd.Parameters.AddWithValue("@codigoSerie", registro.CodigoSerie.GetNullable());
                    cmd.Parameters.Add(new SqlParameter {
                        ParameterName = "@nroComprobante", Value = registro.NroComprobante.GetNullable(), SqlDbType = SqlDbType.Int, Direction = ParameterDirection.InputOutput
                    });
                    cmd.Parameters.AddWithValue("@fechaHoraEmision", registro.FechaHoraEmision.GetNullable());
                    cmd.Parameters.AddWithValue("@fechaHoraVencimiento", registro.FechaHoraVencimiento.GetNullable());
                    cmd.Parameters.AddWithValue("@codigoCliente", registro.CodigoCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@direccionCliente", registro.DireccionCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@nombrePaisCliente", registro.NombrePaisCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@nombreDepartamentoCliente", registro.NombreDepartamentoCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@nombreProvinciaCliente", registro.NombreProvinciaCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@nombreDistritoCliente", registro.NombreDistritoCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@codigoDistritoCliente", registro.CodigoDistritoCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@codigoMoneda", registro.CodigoMoneda.GetNullable());
                    cmd.Parameters.AddWithValue("@codigoMetodoPago", registro.CodigoMetodoPago.GetNullable());
                    cmd.Parameters.AddWithValue("@cantidadLetrasCredito", registro.CantidadLetrasCredito.GetNullable());
                    cmd.Parameters.AddWithValue("@totalOperacionGravada", registro.TotalOperacionGravada.GetNullable());
                    cmd.Parameters.AddWithValue("@totalOperacionInafecta", registro.TotalOperacionInafecta.GetNullable());
                    cmd.Parameters.AddWithValue("@totalOperacionExonerada", registro.TotalOperacionExonerada.GetNullable());
                    cmd.Parameters.AddWithValue("@totalOperacionExportacion", registro.TotalOperacionExportacion.GetNullable());
                    cmd.Parameters.AddWithValue("@totalOperacionGratuita", registro.TotalOperacionGratuita.GetNullable());
                    cmd.Parameters.AddWithValue("@totalValorVenta", registro.TotalValorVenta.GetNullable());
                    cmd.Parameters.AddWithValue("@totalIgv", registro.TotalIgv.GetNullable());
                    cmd.Parameters.AddWithValue("@totalIsc", registro.TotalIsc.GetNullable());
                    cmd.Parameters.AddWithValue("@totalOtrosCargos", registro.TotalOtrosCargos.GetNullable());
                    cmd.Parameters.AddWithValue("@totalOtrosTributos", registro.TotalOtrosTributos.GetNullable());
                    cmd.Parameters.AddWithValue("@totalIcbper", registro.TotalIcbper.GetNullable());
                    cmd.Parameters.AddWithValue("@totalDescuentoDetallado", registro.TotalDescuentoDetallado.GetNullable());
                    cmd.Parameters.AddWithValue("@totalPorcentajeDescuentoGlobal", registro.TotalPorcentajeDescuentoGlobal.GetNullable());
                    cmd.Parameters.AddWithValue("@totalDescuentoGlobal", registro.TotalDescuentoGlobal.GetNullable());
                    cmd.Parameters.AddWithValue("@totalPrecioVenta", registro.TotalPrecioVenta.GetNullable());
                    cmd.Parameters.AddWithValue("@totalImporte", registro.TotalImporte.GetNullable());
                    cmd.Parameters.AddWithValue("@totalPercepcion", registro.TotalPercepcion.GetNullable());
                    cmd.Parameters.AddWithValue("@totalPagar", registro.TotalPagar.GetNullable());
                    cmd.Parameters.Add(new SqlParameter {
                        ParameterName = "@totalEnLetras", SqlDbType = SqlDbType.NVarChar, Size = -1, Direction = ParameterDirection.Output
                    });
                    cmd.Parameters.AddWithValue("@codigoGuiaRemision", registro.CodigoGuiaRemision.GetNullable());
                    cmd.Parameters.AddWithValue("@codigoCotizacion", registro.CodigoCotizacion.GetNullable());
                    cmd.Parameters.AddWithValue("@flagEmitido", registro.FlagEmitido.GetNullable());
                    cmd.Parameters.AddWithValue("@usuarioModi", registro.UsuarioModi.GetNullable());
                    int filasAfectadas = cmd.ExecuteNonQuery();

                    seGuardo = filasAfectadas > 0;

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

            return(seGuardo);
        }
Ejemplo n.º 8
0
        public List <FacturaVentaBe> BuscarFacturaVenta(DateTime?fechaEmisionDesde, DateTime?fechaEmisionHasta, int?codigoSerie, string numero, string nroDocIdentidadCliente, string nombresCliente, bool flagActivo, SqlConnection cn)
        {
            List <FacturaVentaBe> resultados = null;

            try
            {
                using (SqlCommand cmd = new SqlCommand("dbo.usp_facturaventa_buscar", cn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@fechaEmisionDesde", fechaEmisionDesde.GetNullable());
                    cmd.Parameters.AddWithValue("@fechaEmisionHasta", fechaEmisionHasta.GetNullable());
                    cmd.Parameters.AddWithValue("@codigoSerie", codigoSerie.GetNullable());
                    cmd.Parameters.AddWithValue("@numero", numero.GetNullable());
                    cmd.Parameters.AddWithValue("@nroDocumentoIdentidadCliente", nroDocIdentidadCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@nombresCliente", nombresCliente.GetNullable());
                    cmd.Parameters.AddWithValue("@flagActivo", flagActivo.GetNullable());

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

                            while (dr.Read())
                            {
                                FacturaVentaBe item = new FacturaVentaBe();
                                item.Fila = dr.GetData <int>("Fila");
                                item.CodigoFacturaVenta   = dr.GetData <int>("CodigoFacturaVenta");
                                item.FechaHoraEmision     = dr.GetData <DateTime>("FechaHoraEmision");
                                item.FechaHoraVencimiento = dr.GetData <DateTime>("FechaHoraVencimiento");
                                item.CodigoSerie          = dr.GetData <int>("CodigoSerie");
                                item.Serie                 = new SerieBe();
                                item.Serie.CodigoSerie     = dr.GetData <int>("CodigoSerie");
                                item.Serie.Serial          = dr.GetData <string>("SerialSerie");
                                item.NroComprobante        = dr.GetData <int>("NroComprobante");
                                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.NroDocumentoIdentidadCliente             = dr.GetData <string>("NroDocumentoIdentidadCliente");
                                item.DescripcionTipoDocumentoIdentidadCliente = dr.GetData <string>("DescripcionTipoDocumentoIdentidadCliente");
                                item.CodigoMoneda       = dr.GetData <int>("CodigoMoneda");
                                item.TotalImporte       = dr.GetData <decimal>("TotalImporte");
                                item.CodigoGuiaRemision = dr.GetData <int?>("CodigoGuiaRemision");
                                if (item.CodigoGuiaRemision.HasValue)
                                {
                                    item.GuiaRemision = new GuiaRemisionBe();
                                    item.GuiaRemision.CodigoTipoComprobante = dr.GetData <int>("CodigoTipoComprobanteGuiaRemision");
                                    item.GuiaRemision.TipoComprobante       = new TipoComprobanteBe();
                                    item.GuiaRemision.TipoComprobante.CodigoTipoComprobante = dr.GetData <int>("CodigoTipoComprobanteGuiaRemision");
                                    item.GuiaRemision.TipoComprobante.Nombre = dr.GetData <string>("NombreTipoComprobanteGuiaRemision");
                                    item.GuiaRemision.CodigoSerie            = dr.GetData <int>("CodigoSerieGuiaRemision");
                                    item.GuiaRemision.Serie             = new SerieBe();
                                    item.GuiaRemision.Serie.CodigoSerie = dr.GetData <int>("CodigoSerieGuiaRemision");
                                    item.GuiaRemision.Serie.Serial      = dr.GetData <string>("SerialSerieGuiaRemision");
                                    item.GuiaRemision.NroComprobante    = dr.GetData <int>("NroComprobanteGuiaRemision");
                                    item.GuiaRemision.FechaHoraEmision  = dr.GetData <DateTime>("FechaHoraEmisionGuiaRemision");
                                }
                                item.CodigoCotizacion = dr.GetData <int?>("CodigoCotizacion");
                                if (item.CodigoCotizacion.HasValue)
                                {
                                    item.Cotizacion = new CotizacionBe();
                                    item.Cotizacion.NroComprobante   = dr.GetData <int>("NroComprobanteCotizacion");
                                    item.Cotizacion.NroPedido        = dr.GetData <string>("NroPedidoCotizacion");
                                    item.Cotizacion.FechaHoraEmision = dr.GetData <DateTime>("FechaHoraEmisionCotizacion");
                                }
                                item.FlagEmitido = dr.GetData <bool>("FlagEmitido");
                                item.FlagActivo  = dr.GetData <bool>("FlagActivo");

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

            return(resultados);
        }
Ejemplo n.º 9
0
        public FacturaVentaBe ObtenerFacturaVenta(int codigoFacturaVenta, SqlConnection cn)
        {
            FacturaVentaBe item = null;

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

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

                            if (dr.Read())
                            {
                                item.CodigoFacturaVenta        = dr.GetData <int>("CodigoFacturaVenta");
                                item.CodigoSerie               = dr.GetData <int>("CodigoSerie");
                                item.NroComprobante            = dr.GetData <int>("NroComprobante");
                                item.FechaHoraEmision          = dr.GetData <DateTime>("FechaHoraEmision");
                                item.FechaHoraVencimiento      = dr.GetData <DateTime>("FechaHoraVencimiento");
                                item.CodigoCliente             = dr.GetData <int>("CodigoCliente");
                                item.DireccionCliente          = dr.GetData <string>("DireccionCliente");
                                item.NombrePaisCliente         = dr.GetData <string>("NombrePaisCliente");
                                item.NombreDepartamentoCliente = dr.GetData <string>("NombreDepartamentoCliente");
                                item.NombreProvinciaCliente    = dr.GetData <string>("NombreProvinciaCliente");
                                item.NombreDistritoCliente     = dr.GetData <string>("NombreDistritoCliente");
                                item.CodigoDistritoCliente     = dr.GetData <int>("CodigoDistritoCliente");
                                item.CodigoMoneda              = dr.GetData <int>("CodigoMoneda");
                                item.CodigoMetodoPago          = dr.GetData <int>("CodigoMetodoPago");
                                item.CantidadLetrasCredito     = dr.GetData <int>("CantidadLetrasCredito");
                                item.TotalOperacionGravada     = dr.GetData <decimal>("TotalOperacionGravada");
                                item.TotalOperacionInafecta    = dr.GetData <decimal>("TotalOperacionInafecta");
                                item.TotalOperacionExonerada   = dr.GetData <decimal>("TotalOperacionExonerada");
                                item.TotalOperacionExportacion = dr.GetData <decimal>("TotalOperacionExportacion");
                                item.TotalOperacionGratuita    = dr.GetData <decimal>("TotalOperacionGratuita");
                                item.TotalIgv                       = dr.GetData <decimal>("TotalIgv");
                                item.TotalIsc                       = dr.GetData <decimal>("TotalIsc");
                                item.TotalOtrosCargos               = dr.GetData <decimal>("TotalOtrosCargos");
                                item.TotalOtrosTributos             = dr.GetData <decimal>("TotalOtrosTributos");
                                item.TotalIcbper                    = dr.GetData <decimal>("TotalIcbper");
                                item.TotalDescuentoDetallado        = dr.GetData <decimal>("TotalDescuentoDetallado");
                                item.TotalPorcentajeDescuentoGlobal = dr.GetData <decimal>("TotalPorcentajeDescuentoGlobal");
                                item.TotalDescuentoGlobal           = dr.GetData <decimal>("TotalDescuentoGlobal");
                                item.TotalImporte                   = dr.GetData <decimal>("TotalImporte");
                                item.TotalPercepcion                = dr.GetData <decimal>("TotalPercepcion");
                                item.TotalPagar                     = dr.GetData <decimal>("TotalPagar");
                                item.FlagEmitido                    = dr.GetData <bool>("FlagEmitido");
                                item.FlagActivo                     = dr.GetData <bool>("FlagActivo");
                            }
                        }
                    }
                }
            }
            catch (Exception ex) { log.Error(ex.Message); }

            return(item);
        }
Ejemplo n.º 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);
        }