diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx
index be2b24622..13e2eaef7 100644
--- a/Ventas/Ventas.aspx
+++ b/Ventas/Ventas.aspx
@@ -932,6 +932,7 @@
Comandos |
|
|
+ |
|
@@ -1040,6 +1041,7 @@
| --%>
|
+ |
@@ -1255,6 +1257,8 @@
+ <%--22--%>
+
@@ -1360,19 +1364,26 @@
- | Descuentos. RNC.: |
+ Descuentos RNC: |
|
|
- | Total NC.: |
+ Total NC: |
|
|
+
+ | Pronto Pago: |
+
+ |
+
+ |
+
@@ -1576,6 +1587,7 @@
+
@@ -7790,8 +7802,10 @@
var totalDebito = ToDouble($get("TxtImporteDebito").value);
var totalCheque = ToDouble($get("TxtImporteCheque").value);
var totalTransferencia = ToDouble($get("TxtImporteTransferencia").value);
+
var totalRNC = ToDouble($get("HdnTotalRNC").value);
var totalAmortizado = ToDouble($get("HdnAnticipos").value);
+ var totalProntoPago = ToDouble($get("HdnProntoPago").value);
var TotalOtrosContado = 0;
@@ -7801,7 +7815,7 @@
}
} catch (e) { }
- var total = totalEfectivo + totalCredito + totalDebito + totalCheque + totalTransferencia + TotalOtrosContado + totalRNC + totalAmortizado;
+ var total = totalEfectivo + totalCredito + totalDebito + totalCheque + totalTransferencia + TotalOtrosContado + totalRNC + totalAmortizado + totalProntoPago;
var totalVenta = ToDouble($get('TxtTotal').value);
if (total > totalVenta) {
@@ -7810,7 +7824,7 @@
$get("TxtCambio").value = "0.00";
}
- $get("TxtImporteContado").value = total - totalRNC - totalAmortizado;
+ $get("TxtImporteContado").value = total - totalRNC - totalAmortizado - totalProntoPago;
}
// ****************************************************************************************************************************************************************************
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index f7cd4ecd5..d62e04bd5 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -3995,6 +3995,8 @@ Partial Class Ventas
TmpDT.Columns.Add("EntregaDirecta", GetType(Integer))
TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer))
TmpDT.Columns.Add("CveVentaDetalleRNC", GetType(Integer))
+ TmpDT.Columns.Add("TieneProntoPago", GetType(String))
+ TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal))
GvPS.DataSource = ObjVentas.DtResultados
GvPS.DataBind()
@@ -7837,6 +7839,25 @@ Partial Class Ventas
End If
End If
End If
+ Dim SerieFolioNCProntoPago As String = ""
+ Dim CveVentaNCProntoPago As Integer = -1
+ Dim GeneroDescuentoProntoPago As Boolean = False
+ If ObjFactura.DescuentoProntoPago > 0 Then
+ Dim RespFacturaProntoPago = GenerarNCProntoPago(ObjVentas.IniciaTransacSQL(), ObjClientes, ObjContPaq, ObjFactura)
+ If RespFacturaProntoPago.ObjFacturaProntoPago Is Nothing OrElse RespFacturaProntoPago Is Nothing Then
+ ErrorList.Add("No se pudo generar la nota de crédito de pronto pago")
+ Else
+ If RespFacturaProntoPago.Mensaje.CveVenta <= 0 OrElse RespFacturaProntoPago.Mensaje.TieneError Then
+ ErrorList.Add("No se pudo generar la nota de crédito de pronto pago")
+ Else
+ GeneroDescuentoProntoPago = True
+ CveVentaNCProntoPago = RespFacturaProntoPago.Mensaje.CveVenta
+ SerieFolioNCProntoPago = RespFacturaProntoPago.Mensaje.SerieFolio
+
+ Obj2.Add(RespFacturaProntoPago.ObjFacturaProntoPago)
+ End If
+ End If
+ End If
'MARCA PARA NO SURTIR VENTA DE COTNRATO DE CONSIGNACION DE VENTA | [IPP] : PARCHE
If ErrorList.Count = 0 Then
@@ -7936,7 +7957,7 @@ Partial Class Ventas
'ENVIAR POLIZA VIRTUAL
If ErrorList.Count = 0 Then
- If UsuarioActual.Empresa.Funcionalidad(576) = "1" Then
+ If UsuarioActual.Empresa.Funcionalidad(576) = "1" AndAlso EsProduccion Then
GeneraPolizaVentaWS(ObjFactura)
End If
End If
@@ -8029,7 +8050,7 @@ Partial Class Ventas
SeTimbro = ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura)
'NOTA DE CREDITO - REFACTURADA - CASO ESPECIAL, TIMBRADO E IMPRESION
- If Not IsNothing(Obj2) AndAlso Obj2.Count > 0 AndAlso SeTimbro Then
+ If Not GeneroDescuentoProntoPago AndAlso Not IsNothing(Obj2) AndAlso Obj2.Count > 0 AndAlso SeTimbro Then
Dim ofa As Modelos.Factura = CType(Obj2(0), Modelos.Factura)
'asigna el foliofiscal del ingreso que se acaba de timbrar, cuando es amortización de anticipo con NC
If TieneAnticipo AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then
@@ -8041,9 +8062,25 @@ Partial Class Ventas
GeneraPDFFactura(ChkEnviarFactura.Checked)
End If
+ 'NOTA DE CREDITO - REFACTURADA - CASO ESPECIAL, TIMBRADO E IMPRESION
+ If GeneroDescuentoProntoPago AndAlso Not IsNothing(Obj2) AndAlso Obj2.Count > 0 AndAlso SeTimbro Then
+ Try
+ Dim ofa As Modelos.Factura = CType(Obj2(Obj2.Count - 1), Modelos.Factura)
+ 'asigna el foliofiscal del ingreso que se acaba de timbrar, cuando es amortización de anticipo con NC
+ ofa.Timbre.CFDIRelacionados.UUID.Clear()
+ ofa.Timbre.CFDIRelacionados.UUID.Add(ObjTimbrado.UUID)
+
+ ObjTimbrado.TimbrarFactura(UsuarioActual, ofa)
+ GeneraPDFFactura(ChkEnviarFactura.Checked)
+ Catch ex As Exception
+ OnError("Ocurrió un error al timbrar la nota de credito", ex)
+ End Try
+ End If
+
If SeTimbro AndAlso ObjFactura.TipoDocto.Contiene("Ing") Then
EstatusSMS = EnviarSMSTimbrado(ObjEventos)
End If
+
If Not SeTimbro Then
Alert(ObjTimbrado.MensajeErrorCFDI, TipoMensaje.MsgError)
End If
@@ -8202,6 +8239,10 @@ Partial Class Ventas
MensajeAlert.AppendFormat("
Su cambio es de ${0}
", TxtCambio.Text.ToDecimal.FormatoNumero(2))
End If
+ If CveVentaNCProntoPago > 0 Then
+ MensajeAlert.AppendFormat(String.Format("
La nota de crédito {0} por descuento pronto pago se generó correctamente.
", SerieFolioNCProntoPago))
+ End If
+
'MUESTA ALERT OK
' si es elrol 1165-Ventas,EMp:80, o la empresa 119, recarga ventas, para seguir registrando-.
Dim Liga = If(UsuarioActual.CveRol = 1165 Or UsuarioActual.CveEmpresa = 119, "document.location.href=""/Ventas/Ventas.aspx?CveVenta=-1"";", If(CveEmpresaCRM > 0, $"document.location.href=""/CRM/EmpresaCRM.aspx?CveEmpresaCRM={CveEmpresaCRM}"";", $"document.location.href=""/Ventas/Clientes.aspx?CveCliente={CveCliente}&Opt=2"";"))
@@ -9644,6 +9685,7 @@ Partial Class Ventas
End If
ObjFactura.CveTipoRetencion = DdlTipoRetencion.SelectedValue.ToEntero()
+ ObjFactura.DescuentoProntoPago = HdnProntoPago.Value.ToDecimal()
ObjFactura.NuevaFactura = Me.NuevaFactura
End Sub
@@ -15023,6 +15065,8 @@ Partial Class Ventas
If ObjVentas.GetVentaDetalle(ObjFacturaDevolucion.CveVenta) Then
TmpDT = ObjVentas.DtResultados
TmpDT.Columns.Add("CveVentaDetalleRNC", GetType(Integer))
+ TmpDT.Columns.Add("TieneProntoPago", GetType(String))
+ TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal))
End If
ErrorCancelar = ProcesoPrepolizas(ObjConta, ObjFacturaDevolucion, -1, TmpDT, ObjAC, -1, ObjBancos, ObjVentas)
Else
@@ -16229,6 +16273,14 @@ Partial Class Ventas
Descuento += ((Cantidad * PU) - TotalFinal)
End If
+ 'SI TIENE PRONTO PAGO CALCULA EL IMPORTE
+ If RowPorcentaje("ProntoPago").ToString().ToDecimal() > 0 Then
+ Dim TotalProntoPago As Decimal = (Cantidad * (PU)) - Descuento
+ Dim PorcentajeProntoPago = RowPorcentaje("ProntoPago").ToString().ToDecimal() / 100D
+
+ ObjDescuento.ImporteProntoPago = (TotalProntoPago * PorcentajeProntoPago).RoundSQL(2)
+ End If
+
End If
End If
End If
@@ -16262,6 +16314,7 @@ Partial Class Ventas
Dim Cantidad As Decimal = TxtCantidad.Text.ToDecimal
Dim PU As Decimal = If(CvePSAmortizacion > 0, TxtPrecio.Text.Trim.ToDecimal * -1, TxtPrecio.Text.Trim.ToDecimal)
+
Dim ObjDescuento As Descuentos = CalcularDescuentos(CvePS, Cantidad, PU)
If ObjDescuento.EsPUModificado Then
PU = ObjDescuento.PU
@@ -16270,7 +16323,8 @@ Partial Class Ventas
AgregarProductoServicio(Cantidad, DdlUnidadMedida.SelectedValue.ToEntero(), DdlUnidadMedida.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero(), DdlClasificacion.SelectedItem.Text,
CvePS, "", TxtObsPS.Text.Trim, PU, ObjDescuento.ImporteDescuento,
DdlProyecto.SelectedValue.ToEntero(), DdlProyecto.SelectedItem.Text, DdlSubProyecto.SelectedValue.ToEntero(), DdlSubProyecto.SelectedItem.Text,
- Serie:=If(DIVCod.Visible, TxtCodigoSerie.Text.Trim, ""), TiempoEntrega:=TxtTiempoEntrega.Text, CuentaPredial:=TxtCuentaPredial.Text.Trim, RegeneraIEPS:=ClienteDesglosaIEPS, CvePromocionDetalle:=ObjDescuento.CvePromocionDetalle)
+ Serie:=If(DIVCod.Visible, TxtCodigoSerie.Text.Trim, ""), TiempoEntrega:=TxtTiempoEntrega.Text, CuentaPredial:=TxtCuentaPredial.Text.Trim, RegeneraIEPS:=ClienteDesglosaIEPS, CvePromocionDetalle:=ObjDescuento.CvePromocionDetalle,
+ ImporteProntoPago:=ObjDescuento.ImporteProntoPago)
CalculaUsados()
@@ -16404,7 +16458,8 @@ Partial Class Ventas
PU As Decimal, Descuento As Decimal, CveProyecto As Integer, Proyecto As String, CveSubProyecto As Integer, SubProyecto As String, Optional Serie As String = "", Optional TiempoEntrega As String = "",
Optional EntregaDirecta As Integer = 0, Optional CveContratoDetalle As Integer = 0, Optional CveVentaDetalle As Integer = 0, Optional CveMovimientoDetallePedido As Integer = 0,
Optional CveOrdenCompraDetalle As Integer = 0, Optional CveVentaDetalleRemision As Integer = 0, Optional CveVentaDetalleCotizacion As Integer = 0, Optional CuentaPredial As String = "",
- Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional SeActualiza As Boolean = False, Optional CvePromocionDetalle As Integer = -1, Optional EsCargo As Boolean = False) As Boolean
+ Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional SeActualiza As Boolean = False, Optional CvePromocionDetalle As Integer = -1, Optional EsCargo As Boolean = False,
+ Optional ImporteProntoPago As Decimal = 0) As Boolean
Dim Retorno As Boolean = False
Try
@@ -16606,6 +16661,14 @@ Partial Class Ventas
Row("EsOutSourcing") = DrPS("EsOutSourcing")
Row("EsCargo") = EsCargo
+ If ImporteProntoPago > 0 Then
+ Row("ImporteProntoPago") = ImporteProntoPago
+ Row("TieneProntoPago") = "Si"
+ GvPS.Columns(22).Visible = True
+ thProntoPago.Visible = True
+ thProntoPago2.Visible = True
+ End If
+
If UsuarioActual.CveEmpresa = 119 Then
If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA
@@ -16825,9 +16888,15 @@ Partial Class Ventas
TmpDT.Columns.Add("EsCargo", GetType(Boolean))
TmpDT.Columns.Add("CveVentaDetalleRNC", GetType(Integer))
+ TmpDT.Columns.Add("TieneProntoPago", GetType(String))
+ TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal))
+
TmpDT.Columns("EsOutSourcing").DefaultValue = False
TmpDT.Columns("EsCargo").DefaultValue = False
+ TmpDT.Columns("TieneProntoPago").DefaultValue = "No"
+ TmpDT.Columns("ImporteProntoPago").DefaultValue = 0
+
End Sub
Private Sub CreaDTmpC()
DTmpC = New DataTable
@@ -17250,6 +17319,8 @@ Partial Class Ventas
Dim Total As Decimal = 0
Dim TotalImpuestosLocales As Decimal = 0
+ Dim TotalProntoPago As Decimal = TmpDT.SUM("ImporteProntoPago").ToDecimal
+
If TotalAmortizacion > 0 AndAlso TotalSubTotal = TotalAmortizacion Then ' si se amortizó completa la factura, debe de limpiar los impuestos
If DdlTipoAmortizacionAnticipo.SelectedValue.Contiene("3") Then
For Each dr As DataRow In TmpDT.Rows
@@ -17317,6 +17388,9 @@ Partial Class Ventas
TxtIEPS.Text = TotalIEPS.FormatoNumero
TxtTotal.Text = Total.FormatoNumero
+ HdnProntoPago.Value = TotalProntoPago.ToString()
+ LblProntoPago.Text = TotalProntoPago.FormatoNumero(2)
+
LblAmort.Text = TxtSubTotal.Text
If CveVenta <= 0 OrElse (CveDevolucion > 0 And NuevaFactura = 1) Then
HdnVentaSaldo.Value = Total.ToString()
@@ -25084,6 +25158,8 @@ Partial Class Ventas
TmpDT.Columns.Add("EntregaDirecta", GetType(Integer))
TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer))
TmpDT.Columns.Add("CveVentaDetalleRNC", GetType(Integer))
+ TmpDT.Columns.Add("TieneProntoPago", GetType(String))
+ TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal))
End If
If AplicaNCMasiva OrElse AplicaNCUsado Then
@@ -28812,6 +28888,7 @@ Partial Class Ventas
Public CvePromocionDetalle As Integer = -1
Public PU As Decimal = 0
Public EsPUModificado As Boolean = False
+ Public ImporteProntoPago As Decimal = 0
End Class
Protected Sub btnupEventoBitacora_Click(sender As Object, e As EventArgs)
@@ -29073,4 +29150,468 @@ Partial Class Ventas
+#Region " N O T A - D E - C R E D I T O - P R O N T O - P A G O"
+
+ Private Function GenerarNCProntoPago(SqlTransaccion As SqlClient.SqlTransaction, ByRef ObjCliente As ClsClientes, ByRef ObjConta As ClsContPAQi, ObjFactura As Modelos.Factura) As MensajeProntoPago
+ Dim Retorno As New MensajeProntoPago
+
+ Dim Resp As New Modelos.Factura.MMensajeFactura
+ Dim ObjFacturaProntoPago As Modelos.Factura = Nothing
+
+ Try
+ ObjFacturaProntoPago = New Modelos.Factura(UsuarioActual)
+
+ ObjFacturaProntoPago.TipoMensajeRespuesta = Modelos.TipoMensajeRespuesta.TextoLimpio
+ ObjFacturaProntoPago.CveUsuario = UsuarioActual.CveUsuario
+ ObjFacturaProntoPago.UsuarioCreo = UsuarioActual.Usuario
+
+ Dim CveSubProyecto As Integer = ObjFactura.CveSubProyecto
+ Dim CveMoneda As Integer = ObjFactura.CveMoneda
+ Dim CveCliente As Integer = ObjFactura.CveCliente
+
+ Dim Folio As Integer = -1
+ Dim Serie As String = "-1"
+
+ ObjFacturaProntoPago.CveEmpresa = UsuarioActual.CveEmpresa
+ ObjFacturaProntoPago.TipoCambio = If(CveMoneda = 1, 1, GlobalTipoCambio(Now).FormatoNumero(4).ToDecimal())
+ ObjFacturaProntoPago.ConvertirPesos = False
+ ObjFacturaProntoPago.CveMoneda = CveMoneda
+ ObjFacturaProntoPago.Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $"CveMoneda = {CveMoneda}")
+ ObjFacturaProntoPago.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", $"CveMoneda = {CveMoneda}")
+ ObjFacturaProntoPago.Serie = Serie
+ ObjFacturaProntoPago.Folio = Folio
+ ObjFacturaProntoPago.Fecha = Now
+ ObjFacturaProntoPago.CvePrePoliza = -1
+ ObjFacturaProntoPago.CveMetodoPago = 0
+ ObjFacturaProntoPago.CondicionesPago = 0 ' 0 - Contado, 1 - Credito (CHECAR)
+ ObjFacturaProntoPago.FormaPago = 0
+
+ ObjFacturaProntoPago.TipoDocto = "Egs"
+ ObjFacturaProntoPago.Fecha = Now
+
+ ObjFacturaProntoPago.Version = "3.3"
+ ObjFacturaProntoPago.CveMetodoPago33 = 1
+ ObjFacturaProntoPago.MetodoPago33 = "Pago en una sola exhibición"
+ ObjFacturaProntoPago.ClaveMetodoPagoSAT = "PUE"
+
+ ObjFacturaProntoPago.CveFormaPago33 = 21
+ ObjFacturaProntoPago.FormaPago33 = "Aplicación de anticipos"
+ ObjFacturaProntoPago.FormaPagoSAT33 = "30"
+
+ ObjFacturaProntoPago.MetodoPago = ""
+ ObjFacturaProntoPago.ClaveMetodoPagoSAT = GlobalDTMetodosPago.FiltroPrimeroValor("ClaveSAT", $"CveMetodoPago = {ObjFacturaProntoPago.CveMetodoPago33}")
+
+ ObjFacturaProntoPago.CveSubProyecto = CveSubProyecto
+ ObjFacturaProntoPago.SetSubProyecto()
+
+ ObjFacturaProntoPago.CveCliente = CveCliente
+ ObjFacturaProntoPago.SetCliente()
+
+
+ If ObjCliente.GetClientes(ObjFacturaProntoPago.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1, TipoCliente:=-1) Then
+ If ObjCliente.DtResultados.Rows.Count > 0 Then
+
+ ObjFacturaProntoPago.CveUsoCFDI = ObjCliente.CveUsoCFDI
+ ObjFacturaProntoPago.UsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("Descripcion", String.Format("CveUsoCFDI = {0}", ObjCliente.CveUsoCFDI))
+ ObjFacturaProntoPago.ClaveUsoCFDI = GlobalDTSATUsosCFDI.FiltroPrimeroValor("UsoCFDI", String.Format("CveUsoCFDI = {0}", ObjCliente.CveUsoCFDI))
+
+ ObjFacturaProntoPago.DtDetalle = CreaDTDetalleNCProntoPago()
+
+ CargaImpuestosProntoPago(ObjFacturaProntoPago, ObjFactura, ObjCliente.DesglosaIEPS, ObjCliente.RetIVA.ToDecimal, ObjCliente.RetISR.ToDecimal)
+
+ End If
+ End If
+
+ If ObjCliente.GetSucursales(CveCliente) Then
+ If ObjCliente.DtResultados.Rows.Count > 0 Then
+ ObjFacturaProntoPago.CveClienteSucursal = If(String.IsNullOrEmpty(ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "Estatus = 'Activo'")), -1, ObjCliente.DtResultados.FiltroPrimeroValor("CveClienteSucursal", "Estatus = 'Activo'").ToEntero())
+ Else
+ ObjFacturaProntoPago.CveClienteSucursal = -1
+ End If
+ End If
+
+ ObjFacturaProntoPago.CveTipoRelacion = 7
+ ObjFacturaProntoPago.TipoRelacion = "07"
+
+ Dim Fol As New List(Of String)
+ Fol.Add(ObjFactura.FolioFiscal)
+ ObjFacturaProntoPago.UUIDRelacionados = Fol
+
+ Select Case ObjFacturaProntoPago.TipoDocto
+ Case "Ing"
+ ObjFacturaProntoPago.TipoDocumento = "Factura"
+ Case "REM"
+ ObjFacturaProntoPago.TipoDocumento = "Remision"
+ Case "Cot"
+ ObjFacturaProntoPago.TipoDocumento = "Cotizacion"
+ Case "Egs"
+ ObjFacturaProntoPago.TipoDocumento = "Nota de Crédito"
+ Case "Dev"
+ ObjFacturaProntoPago.TipoDocumento = "Nota de Devolución"
+ Case Else
+ ObjFacturaProntoPago.TipoDocumento = ""
+ End Select
+
+ ObjFacturaProntoPago.FechaPago = Now
+
+ ObjFacturaProntoPago.CveCorte = -1
+ ObjFacturaProntoPago.CveMesa = -1
+ ObjFacturaProntoPago.NumeroPersonas = 0
+ ObjFacturaProntoPago.CveContrato = -1
+ ObjFacturaProntoPago.DescripcionContrato = ""
+ ObjFacturaProntoPago.CveClienteSucursal = -1
+ ObjFacturaProntoPago.Entrega = ""
+ ObjFacturaProntoPago.CveAlmacen = -1
+
+ Dim DtVentasNC = InicializaDTVentasNCProntoPago()
+
+ Dim TotalImporte As Decimal = ObjFacturaProntoPago.DtDetalle.SUMD("TotalImporte")
+ Dim ImporteIVA As Decimal = ObjFacturaProntoPago.DtDetalle.SUMD("ImporteIVA")
+ Dim ImporteRetIVA As Decimal = ObjFacturaProntoPago.DtDetalle.SUMD("ImporteRetIVA")
+ Dim ImporteRetISR As Decimal = ObjFacturaProntoPago.DtDetalle.SUMD("ImporteRetISR")
+ Dim ImporteIEPS As Decimal = ObjFacturaProntoPago.DtDetalle.SUMD("ImporteIEPS")
+ Dim Descuento As Decimal = ObjFacturaProntoPago.DtDetalle.SUMD("Descuento")
+ Dim Amortizacion As Decimal = 0
+
+ Dim Total As Decimal = (TotalImporte + ImporteIVA + ImporteIEPS) - (ImporteRetIVA + ImporteRetISR + Descuento + Amortizacion)
+
+ 'DETALLES
+ ObjFacturaProntoPago.SubTotal = TotalImporte
+ ObjFacturaProntoPago.Descuento = Descuento
+ ObjFacturaProntoPago.Amortizacion = Amortizacion
+ ObjFacturaProntoPago.IVA = ImporteIVA
+ ObjFacturaProntoPago.RetIVA = ImporteRetIVA
+ ObjFacturaProntoPago.RetISR = ImporteRetISR
+ ObjFacturaProntoPago.IEPS = ImporteIEPS
+ ObjFacturaProntoPago.Total = Total
+ ObjFacturaProntoPago.TotalOtrosConceptos = 0
+
+ Dim Drt = DtVentasNC.NewRow
+ Drt("CveVenta") = ObjFactura.CveVenta
+ Drt("Importe") = ObjFactura.DescuentoProntoPago
+ Drt("FolioFiscal") = ObjFactura.FolioFiscal
+
+ DtVentasNC.Rows.Add(Drt)
+ DtVentasNC.AcceptChanges()
+
+ ObjFacturaProntoPago.DtVentasNC = DtVentasNC
+
+ Resp = ObjFacturaProntoPago.EmitirFactura(False, Transac:=SqlTransaccion, ObjContPaqTransac:=ObjConta)
+
+ ObjFacturaProntoPago.Dispose()
+
+ Catch ex As Exception
+ Resp.CveVenta = -1
+ Resp.TieneError = True
+ OnError("Ocurrio un error al generar la nota de credito de pronto pago", ex)
+ End Try
+
+ Retorno.ObjFacturaProntoPago = ObjFacturaProntoPago
+ Retorno.Mensaje = Resp
+
+ Return Retorno
+ End Function
+
+
+ Private Sub AgregaTempDTNCProntoPago(ByRef TmpDT As DataTable, CvePS As Integer, PS As String, Codigo As String, CodigoPS As String, CveTipoPS As Integer, CveTipoInvPS As Integer, CveUM As Integer, UM As String,
+ CveClasificacion As Integer, Clasificacion As String, CveProyecto As Integer, CveSubProyecto As Integer,
+ Obs As String, Cantidad As Double, PU As Double, PorcentajeIVA As Double, ImporteIVA As Double, PorcentajeRetIVA As Double, ImporteRetIVA As Double,
+ PorcentajeRetISR As Double, ImporteRetISR As Double, PorcentajeIEPS As Double, ImporteIEPS As Double, TipoDescuento As Integer, Descuento As Double,
+ Total As Double, Serie As String, TiempoEntrega As String, CvePresupuestoIngreso As Integer, EntregaDirecta As Integer, SATClaveProdServ As String,
+ SATClaveUM As String, CveContratoDetalle As Integer, CveVentaDetalle As Integer, CveMovimientoDetallePedido As Integer, CveOrdenCompraDetalle As Integer,
+ CveVentaDetalleRemision As Integer, CveVentaDetalleCotizacion As Integer)
+
+ Dim Row As DataRow = Nothing
+ Row = TmpDT.NewRow()
+
+ Row("Consec") = TmpDT.Rows.Count + 1
+ Row("Orden") = TmpDT.Rows.Count + 1
+
+ Row("CvePS") = CvePS
+ Row("PS") = PS
+ Row("Codigo") = Codigo
+ Row("CodigoPS") = CodigoPS
+ Row("CveTipoPS") = CveTipoPS
+ Row("CveTipoInvPS") = CveTipoInvPS
+
+ Row("CveUM") = CveUM
+ Row("UM") = UM
+
+ Row("CveClasificacion") = CveClasificacion
+ Row("Clasificacion") = Clasificacion
+ Row("CveProyecto") = CveProyecto
+ Row("Proyecto") = ""
+ Row("CveSubProyecto") = CveSubProyecto
+ Row("SubProyecto") = ""
+
+ Row("Obs") = Obs
+ Row("Cantidad") = Cantidad
+ Row("PU") = Math.Round(PU, 6)
+ Row("PorcentajeIVA") = PorcentajeIVA
+ Row("IVA") = PorcentajeIVA
+ Row("ImporteIVA") = Math.Round(ImporteIVA, 2)
+ Row("PorcentajeRetIVA") = PorcentajeRetIVA
+ Row("ImporteRetIVA") = Math.Round(ImporteRetIVA, 2)
+ Row("PorcentajeRetISR") = PorcentajeRetISR
+ Row("ImporteRetISR") = Math.Round(ImporteRetISR, 2)
+ Row("PorcentajeIEPS") = PorcentajeIEPS
+ Row("ImporteIEPS") = Math.Round(ImporteIEPS, 2)
+ Row("IEPS") = Math.Round(ImporteIEPS, 2)
+ Row("TipoDescuento") = TipoDescuento
+ Row("Descuento") = Math.Round(Descuento, 2)
+ Row("Total") = Math.Round(Total, 2)
+ Row("TotalImporte") = Math.Round(Total, 2)
+
+ Row("Serie") = Serie
+ Row("TiempoEntrega") = TiempoEntrega
+ Row("CvePresupuestoIngreso") = CvePresupuestoIngreso
+ Row("EntregaDirecta") = EntregaDirecta
+ Row("SATClaveProdServ") = SATClaveProdServ
+ Row("SATClaveUM") = SATClaveUM
+
+ 'Contratos
+ Row("CveContratoDetalle") = CveContratoDetalle
+ Row("CveVentaDetalle") = CveVentaDetalle
+ Row("CveMovimientoDetallePedido") = CveMovimientoDetallePedido
+ Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
+ Row("CveVentaDetalleRemision") = CveVentaDetalleRemision
+ Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
+
+ TmpDT.Rows.Add(Row)
+ End Sub
+
+ Private Sub CargaImpuestosProntoPago(ByRef ObjFacturaDevolucion As Modelos.Factura, ObjFactura As Modelos.Factura, ClienteDesglosaIEPS As Boolean, ClienteRetIVA As Decimal, ClienteRetISR As Decimal)
+ Dim DtImpuestos As New DataTable
+ DtImpuestos.Columns.Add("ImportePU", GetType(Decimal))
+ DtImpuestos.Columns.Add("ImporteTotal", GetType(Decimal))
+ DtImpuestos.Columns.Add("PorcentajeIVA", GetType(Decimal))
+ DtImpuestos.Columns.Add("ImporteIVA", GetType(Decimal))
+ DtImpuestos.Columns.Add("PorcentajeRetIVA", GetType(Decimal))
+ DtImpuestos.Columns.Add("ImporteRetIVA", GetType(Decimal))
+ DtImpuestos.Columns.Add("PorcentajeRetISR", GetType(Decimal))
+ DtImpuestos.Columns.Add("ImporteRetISR", GetType(Decimal))
+ DtImpuestos.Columns.Add("PorcentajeIEPS", GetType(Decimal))
+ DtImpuestos.Columns.Add("ImporteIEPS", GetType(Decimal))
+ DtImpuestos.Columns.Add("CveSubProyecto", GetType(Integer))
+ DtImpuestos.AcceptChanges()
+ Dim AcumuladoNC As Decimal = 0
+
+ DtImpuestos.Merge(CargaDtImpuestosNC(ObjFactura.CveVenta, ObjFactura.DescuentoProntoPago), True, MissingSchemaAction.Ignore)
+
+ DtImpuestos = CargaTotalesImpuestosProntoPago(DtImpuestos)
+
+ Dim DrSubProyecto As DataRow = GlobalDTSubProyectos(-1, ObjFacturaDevolucion.CveSubProyecto).Rows(0)
+
+ Dim Cantidad As Decimal = 1
+ Dim CveProyecto As Integer = DrSubProyecto("CveProyecto").ToString().ToEntero()
+ Dim CveSubProyecto = DrSubProyecto("CveSubProyecto").ToString.ToEntero
+ Dim SubProyecto = DrSubProyecto("SubProyecto").ToString
+ Dim Proyecto = DrSubProyecto("Proyecto").ToString
+
+ Dim CveSATNC As Integer
+ Dim ArrayNC As String() = UsuarioActual.Empresa.Funcionalidad(591).Split(",".ToCharArray())
+ Dim NCBonificacion As Integer = 0
+ If ArrayNC.Length > 6 Then 'CONCEPTO DE PRONTO PAGO
+ CveSATNC = ArrayNC(6).ToEntero()
+ End If
+ Dim DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CveSATNC, AplicaParaVenta:=1).FiltroPrimero("")
+
+ For Each Dr As DataRow In DtImpuestos.Rows
+ AgregaTempDTNCProntoPago(ObjFacturaDevolucion.DtDetalle, DrPS("CvePS").ToString.ToEntero, DrPS("PS").ToString, DrPS("Codigo").ToString, DrPS("PSCodigo").ToString, DrPS("CveTipoPS").ToString.ToEntero, DrPS("Inv_CveMetodoInventario").ToString.ToEntero,
+ DrPS("CveUM").ToString.ToEntero, DrPS("UnidadMedida").ToString, DrPS("CveClasificacion").ToString.ToEntero, DrPS("Clasificacion").ToString, CveProyecto, CveSubProyecto,
+ "", Cantidad, Dr("ImportePU").ToString.ToDecimal, Dr("PorcentajeIVA").ToString.ToDecimal, Dr("ImporteIVA").ToString.ToDecimal, Dr("PorcentajeRetIVA").ToString.ToDecimal, Dr("ImporteRetIVA").ToString.ToDecimal,
+ Dr("PorcentajeRetISR").ToString.ToDecimal, Dr("ImporteRetISR").ToString.ToDecimal, Dr("PorcentajeIEPS").ToString.ToDecimal, Dr("ImporteIEPS").ToString.ToDecimal, -1, 0.0, Dr("ImporteTotal").ToString.ToDecimal, "", "", -1, -1,
+ DrPS("SATClavePS").ToString, DrPS("SATClaveUnidadMedida").ToString, -1, -1, -1, -1, -1, -1)
+ Next
+
+ End Sub
+
+ Private Function CargaDtImpuestosNCProntoPago(CveVentaNC As Integer, Importe As Decimal) As DataTable
+ Dim Total As Decimal = 0, SubTotal As Decimal = 0, Saldo As Decimal = 0
+
+ Dim TmpDT As DataTable = Nothing
+ Dim ObjVentas As New ClsVentas
+
+ If ObjVentas.GetVentaDetalle(CveVentaNC) Then
+ TmpDT = ObjVentas.DtResultados
+ TmpDT.Columns.Add("EntregaDirecta", GetType(Integer))
+ TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer))
+ End If
+
+ If ObjVentas.GetVenta(CveVentaNC, UsuarioActual.CveEmpresa) Then
+ If ObjVentas.DtResultados.Rows.Count > 0 Then
+ Total = ObjVentas.DtResultados()(0)("Total").ToString.ToDecimal
+ SubTotal = ObjVentas.DtResultados()(0)("SubTotal").ToString.ToDecimal
+ End If
+ End If
+ ObjVentas.Dispose()
+
+ Dim DtImpuestosLocal = TmpDT.FiltraParametros("", "", {"PorcentajeIVA", "PorcentajeRetIVA", "PorcentajeRetISR", "PorcentajeIEPS", "CveSubProyecto"}).Copy
+ DtImpuestosLocal.Columns.Add("ImportePU", GetType(Decimal))
+ DtImpuestosLocal.Columns.Add("ImporteTotal", GetType(Decimal))
+ DtImpuestosLocal.Columns.Add("ImporteIVA", GetType(Decimal))
+ DtImpuestosLocal.Columns.Add("ImporteRetIVA", GetType(Decimal))
+ DtImpuestosLocal.Columns.Add("ImporteRetISR", GetType(Decimal))
+ DtImpuestosLocal.Columns.Add("ImporteIEPS", GetType(Decimal))
+
+ Dim ImporteReferencia As Decimal = Total
+ Dim Porcentaje As Decimal = ((Importe * 100) / ImporteReferencia) / 100
+ Dim FiltroStr As String = ""
+ Dim ImporteTotalConcepto As Decimal = 0
+ For Each Dr As DataRow In DtImpuestosLocal.Rows
+ FiltroStr = String.Format("ISNULL(PorcentajeIVA,0) = {0} AND ISNULL(PorcentajeRetIVA,0) = {1} AND ISNULL(PorcentajeRetISR,0) = {2} AND ISNULL(PorcentajeIEPS,0) = {3} AND ISNULL(CveSubProyecto,0) = {4} ", Dr("PorcentajeIVA").ToString.ToDecimal, Dr("PorcentajeRetIVA").ToString.ToDecimal, Dr("PorcentajeRetISR").ToString.ToDecimal, Dr("PorcentajeIEPS").ToString.ToDecimal, Dr("CveSubProyecto"))
+ ImporteTotalConcepto = Porcentaje * (TmpDT.SUMD("TotalImporte", FiltroStr) - TmpDT.SUMD("Descuento", FiltroStr))
+
+ Dr("ImportePU") = ImporteTotalConcepto.RoundSQL(6)
+ Dr("ImporteTotal") = ImporteTotalConcepto.RoundSQL(2)
+
+ Dr("ImporteIVA") = (ImporteTotalConcepto * Dr("PorcentajeIVA").ToString().ToDecimal()).RoundSQL(2)
+ Dr("ImporteRetIVA") = (ImporteTotalConcepto * Dr("PorcentajeRetIVA").ToString().ToDecimal()).RoundSQL(2)
+ Dr("ImporteRetISR") = (ImporteTotalConcepto * Dr("PorcentajeRetISR").ToString().ToDecimal()).RoundSQL(2)
+ Dr("ImporteIEPS") = (ImporteTotalConcepto * Dr("PorcentajeIEPS").ToString().ToDecimal()).RoundSQL(2)
+
+ 'Dr("ImporteIVA") = Math.Round(Porcentaje * TmpDT.SUM("ImporteIVA", FiltroStr), 2)
+ 'Dr("ImporteRetIVA") = Math.Round(Porcentaje * TmpDT.SUM("ImporteRetIVA", FiltroStr), 2)
+ 'Dr("ImporteRetISR") = Math.Round(Porcentaje * TmpDT.SUM("ImporteRetISR", FiltroStr), 2)
+ 'Dr("ImporteIEPS") = Math.Round(Porcentaje * TmpDT.SUM("ImporteIEPS", FiltroStr), 2)
+
+ '(Dr("ImporteTotal").ToString.ToDecimal - Dr("ImporteIVA").ToString.ToDecimal - Dr("ImporteRetIVA").ToString.ToDecimal - Dr("ImporteRetISR").ToString.ToDecimal - Dr("ImporteIEPS").ToString.ToDecimal)
+ Next
+ 'codigo para ajuste de centavo, si el importe total no cuadra con los totales
+ Dim difTmp As Decimal = Importe - (DtImpuestosLocal.SUMD("ImporteTotal") + DtImpuestosLocal.SUMD("ImporteIVA") + DtImpuestosLocal.SUMD("ImporteIEPS") - DtImpuestosLocal.SUMD("ImporteRetIVA") - DtImpuestosLocal.SUMD("ImporteRetISR"))
+ If Math.Abs(difTmp) >= 0.01 Then
+ 'asusto la diferencia en el último concepto
+ Dim ImporteAjustado As Decimal = DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteTotal").ToString.ToDecimal + difTmp
+ DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImporteTotal") = ImporteAjustado
+ DtImpuestosLocal.Rows(DtImpuestosLocal.Rows.Count - 1)("ImportePU") = ImporteAjustado
+ End If
+ 'CARGA FACTURA A LA CUAL SE APLICA LA NC
+ 'CargaNCDT(CveVentaNC, Importe.ToDecimal)
+ Return DtImpuestosLocal
+ End Function
+
+ Private Function CargaTotalesImpuestosProntoPago(DtImpuestos As DataTable) As DataTable
+ Dim query = From dr In DtImpuestos
+ Group By PorcentajeIVA = dr("PorcentajeIVA").ToString.ToDecimal,
+ PorcentajeRetIVA = dr("PorcentajeRetIVA").ToString.ToDecimal,
+ PorcentajeRetISR = dr("PorcentajeRetISR").ToString.ToDecimal,
+ PorcentajeIEPS = dr("PorcentajeIEPS").ToString.ToDecimal
+ Into x = Group
+ Select ImportePU = x.Sum(Function(s) s("ImportePU").ToString.ToDecimal),
+ ImporteTotal = x.Sum(Function(s) s("ImporteTotal").ToString.ToDecimal),
+ ImporteIVA = x.Sum(Function(s) Math.Round(s("ImporteIVA").ToString.ToDecimal, 2)), ' Math.Round(s("ImporteIVA").ToString.ToDecimal, 2)) * (1 + PorcentajeIEPS) * PorcentajeIVA,
+ ImporteRetIVA = x.Sum(Function(s) Math.Round(s("ImporteRetIVA").ToString.ToDecimal, 2)),' Math.Round(s("ImportePU").ToString.ToDecimal, 2)) * PorcentajeRetIVA,
+ ImporteRetISR = x.Sum(Function(s) Math.Round(s("ImporteRetISR").ToString.ToDecimal, 2)),' Math.Round(s("ImportePU").ToString.ToDecimal, 2)) * PorcentajeRetISR,
+ ImporteIEPS = x.Sum(Function(s) Math.Round(s("ImporteIEPS").ToString.ToDecimal, 2)), 'Math.Round(s("ImportePU").ToString.ToDecimal, 2)) * PorcentajeIEPS,
+ PorcentajeIVA = PorcentajeIVA,
+ PorcentajeRetIVA = PorcentajeRetIVA,
+ PorcentajeRetISR = PorcentajeRetISR,
+ PorcentajeIEPS = PorcentajeIEPS
+
+ Return query.QueryToDataTable(False)
+ End Function
+
+ Protected Function CreaDTDetalleNCProntoPago() As DataTable
+ Dim TmpDT = New DataTable
+ TmpDT.Columns.Add("CveVenta", GetType(Integer))
+ TmpDT.Columns.Add("Consec", GetType(Integer))
+ TmpDT.Columns.Add("Cantidad", GetType(Decimal))
+ TmpDT.Columns.Add("Codigo", GetType(String))
+ TmpDT.Columns.Add("CveUM", GetType(Integer))
+ TmpDT.Columns.Add("UM", GetType(String))
+ TmpDT.Columns.Add("SATClaveUM", GetType(String))
+ TmpDT.Columns.Add("CveClasificacion", GetType(Integer))
+ TmpDT.Columns.Add("Clasificacion", GetType(String))
+ TmpDT.Columns.Add("CvePS", GetType(Integer))
+ TmpDT.Columns.Add("PS", GetType(String))
+ TmpDT.Columns.Add("CodigoPS", GetType(String))
+ TmpDT.Columns.Add("SATClaveProdServ", GetType(String))
+ TmpDT.Columns.Add("NoIdentificacion", GetType(String))
+ TmpDT.Columns.Add("CveTipoPS", GetType(Integer))
+ TmpDT.Columns.Add("CveTipoInvPS", GetType(Integer))
+ TmpDT.Columns.Add("Serie", GetType(String))
+ TmpDT.Columns.Add("CuentaPredial", GetType(String))
+ TmpDT.Columns.Add("Obs", GetType(String))
+ TmpDT.Columns.Add("TiempoEntrega", GetType(String))
+ TmpDT.Columns.Add("PU", GetType(Decimal))
+ TmpDT.Columns.Add("IVA", GetType(Decimal))
+ TmpDT.Columns.Add("ImporteIVA", GetType(Decimal))
+ TmpDT.Columns.Add("PorcentajeIVA", GetType(Decimal))
+ TmpDT.Columns.Add("ImporteRetIVA", GetType(Decimal))
+ TmpDT.Columns.Add("ImporteRetISR", GetType(Decimal))
+ TmpDT.Columns.Add("PorcentajeRetIVA", GetType(Decimal))
+ TmpDT.Columns.Add("PorcentajeRetISR", GetType(Decimal))
+ TmpDT.Columns.Add("ImporteIEPS", GetType(Decimal))
+ TmpDT.Columns.Add("IEPS", GetType(Decimal))
+ TmpDT.Columns.Add("PorcentajeIEPS", GetType(Decimal))
+ TmpDT.Columns.Add("Descuento", GetType(Decimal))
+ TmpDT.Columns.Add("TipoDescuento", GetType(Integer))
+ TmpDT.Columns.Add("TotalImporte", GetType(Decimal))
+ TmpDT.Columns.Add("Total", GetType(Decimal))
+ 'Para uso del módulo contable
+ TmpDT.Columns.Add("AsientoContableVentas", GetType(Integer))
+ TmpDT.Columns.Add("IdCtaContVentas", GetType(Integer))
+ TmpDT.Columns.Add("AplicaParaConcepto", GetType(Boolean))
+ TmpDT.Columns.Add("CveProyecto", GetType(Integer))
+ TmpDT.Columns.Add("Proyecto", GetType(String))
+ TmpDT.Columns.Add("CveSubProyecto", GetType(Integer))
+ TmpDT.Columns.Add("SubProyecto", GetType(String))
+ TmpDT.Columns.Add("CveVentaDetallePadre", GetType(Integer))
+ 'TipoDescuento: 1 = Descuento * PU; 2 = Descuento por Total del concepto
+ TmpDT.Columns.Add("CvePresupuestoIngreso", GetType(Integer))
+ TmpDT.Columns.Add("CveFuenteRecaudacion", GetType(Integer))
+ 'Contratos
+ TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer))
+ 'Remisiones a Facturas
+ TmpDT.Columns.Add("CveVentaDetalle", GetType(Integer))
+ TmpDT.Columns.Add("CveVentaDetalleRemision", GetType(Integer))
+ TmpDT.Columns.Add("CveVentaDetalleCotizacion", GetType(Integer))
+ 'Pedido2 a Facturas
+ TmpDT.Columns.Add("CveVentaDetallePedido2", GetType(Integer))
+ TmpDT.Columns.Add("Origen", GetType(Integer))
+ 'Ordenes Servicio
+ TmpDT.Columns.Add("CveOS", GetType(Integer))
+ TmpDT.Columns.Add("CveOSDetalle", GetType(Integer))
+ TmpDT.Columns.Add("SeFacturara", GetType(Integer))
+ TmpDT.Columns.Add("Folio", GetType(Integer))
+ TmpDT.Columns.Add("Estatus", GetType(String))
+ 'Ordenamiento
+ TmpDT.Columns.Add("Orden", GetType(Integer))
+ TmpDT.Columns.Add("TipoDocto", GetType(String))
+ 'OC
+ TmpDT.Columns.Add("CveOrdenCompraDetalle", GetType(Integer))
+ TmpDT.Columns.Add("EntregaDirecta", GetType(Integer))
+ TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer))
+ TmpDT.Columns.Add("CantidadFacturadaRem", GetType(Decimal))
+ TmpDT.Columns.Add("CantidadFacturadaCot", GetType(Decimal))
+ TmpDT.Columns.Add("CantidadFacturadaPed2", GetType(Decimal))
+ TmpDT.Columns.Add("CantidadInventario", GetType(Decimal))
+ TmpDT.Columns.Add("ClaveSATFraccionArancelaria", GetType(String))
+ TmpDT.Columns.Add("ClaveSATUnidadAduana", GetType(String))
+ TmpDT.Columns.Add("ClaveSATFraccionArancelariaDescripcion", GetType(String))
+ TmpDT.Columns.Add("ClaveSATUnidadAduanaDescripcion", GetType(String))
+ TmpDT.Columns.Add("CveTamaño", GetType(Integer))
+ TmpDT.Columns.Add("EsCargo", GetType(Boolean))
+
+ Return TmpDT
+ End Function
+ Private Function InicializaDTVentasNCProntoPago() As DataTable
+ Dim DtVentasNC = New DataTable
+ DtVentasNC.Columns.Add("CveVenta", GetType(Integer))
+ DtVentasNC.Columns.Add("Importe", GetType(Decimal))
+ DtVentasNC.Columns.Add("FolioFiscal", GetType(String))
+ DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "TC", .DataType = GetType(Decimal), .DefaultValue = 1})
+ DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "TCCambioValuacion", .DataType = GetType(Decimal), .DefaultValue = 1})
+ DtVentasNC.Columns.Add(New DataColumn With {.ColumnName = "CveEstatusFactura", .DataType = GetType(Integer), .DefaultValue = -1})
+
+ Return DtVentasNC
+ End Function
+
+ Public Class MensajeProntoPago
+ Public Property ObjFacturaProntoPago As Modelos.Factura
+ Public Property Mensaje As Modelos.Factura.MMensajeFactura
+ End Class
+
+#End Region
+
End Class
\ No newline at end of file