Compras Pronto Pago
This commit is contained in:
@@ -1118,6 +1118,8 @@ Partial Class Compras_Compras
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
#Region "PROPIEDADES PRONTO PAGO"
|
||||
''' <summary>
|
||||
''' Descuento por pronto pago proveedor
|
||||
''' </summary>
|
||||
@@ -1192,6 +1194,38 @@ Partial Class Compras_Compras
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Property ImporteRNCSaldar As Decimal
|
||||
Get
|
||||
If ViewState("ImporteRNCSaldar") Is Nothing Then
|
||||
ViewState("ImporteRNCSaldar") = 0D
|
||||
End If
|
||||
Return ViewState("ImporteRNCSaldar").ToString.ToDecimal
|
||||
End Get
|
||||
Set(value As Decimal)
|
||||
ViewState("ImporteRNCSaldar") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Property DTRemisionesNotaDeCredito As DataTable
|
||||
Get
|
||||
|
||||
If ViewState("DTRemisionesNotaDeCredito") Is Nothing Then
|
||||
ViewState("DTRemisionesNotaDeCredito") = New DataTable
|
||||
End If
|
||||
|
||||
Return DirectCast(ViewState("DTRemisionesNotaDeCredito"), DataTable)
|
||||
|
||||
End Get
|
||||
Set(value As DataTable)
|
||||
ViewState("DTRemisionesNotaDeCredito") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1596,6 +1630,9 @@ Partial Class Compras_Compras
|
||||
DdlTipoComprobante.SelectedValueExist("DEV")
|
||||
End If
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(574).ToEntero = 1 Then
|
||||
DdlTipoCompra.Items.Add(New ListItem("Remision Nota De Crédito", "13"))
|
||||
End If
|
||||
|
||||
|
||||
End If
|
||||
@@ -6907,6 +6944,37 @@ Partial Class Compras_Compras
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(574).ToEntero = 1 AndAlso DdlRemisionNotaCredito.SelectedValue.ToEntero > 0 AndAlso ImporteRNCSaldar > 0 Then
|
||||
|
||||
'Dim importeMovimientoNC As Decimal = Gvr.FCTextBox("TxtImporte").Text.ToDecimal
|
||||
|
||||
Dim Pago As New CompraPago
|
||||
Pago.ImportePago = ImporteRNCSaldar
|
||||
Pago.CveMonedaPago = CompraActual.CveMoneda
|
||||
Pago.CveCompraAmortizacion = CompraActual.CveCompra
|
||||
Pago.Referencia = CompraActual.SerieFolio
|
||||
Pago.TCPago = CompraActual.TC
|
||||
Pago.AplicaAcreditable = False
|
||||
Pago.TipoPago = "NC"
|
||||
Pago.Fecha = CompraActual.Fecha 'toma la misma fecha de la provisión en el pago de NC
|
||||
|
||||
Dim CompraPago As New Compra
|
||||
''datos de la compra tipodocto:Fac, para sobreescribirlos
|
||||
'CompraPago.CveCompra = DdlRemisionNotaCredito.SelectedValue.ToEntero
|
||||
'CompraPago.CveProveedor = DdlProveedor.SelectedValue.ToEntero
|
||||
'CompraPago.SerieFolio = Gvr.DataKey("SerieFolio")
|
||||
'CompraPago.TC = Gvr.DataKey("TipoCambio").ToDecimal
|
||||
'CompraPago.Fecha = Gvr.DataKey("Fecha").ToDate
|
||||
'CompraPago.CveMoneda = Gvr.DataKey("CveMoneda").ToEntero
|
||||
'CompraPago.Total = Gvr.DataKey("Total").ToDecimal
|
||||
'CompraPago.CveTipoConceptoProveedor = CveTipoConcepto
|
||||
CompraPago.CveSubProyecto = CompraActual.CveSubProyecto
|
||||
|
||||
ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraPago, Pago, CvePrePoliza, ObjConta)
|
||||
|
||||
End If
|
||||
|
||||
If ErrorPrepoliza Then
|
||||
ErrorMovtosCxP = True
|
||||
Exit Select
|
||||
@@ -7475,7 +7543,7 @@ Partial Class Compras_Compras
|
||||
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(574).ToEntero = 1 AndAlso (ImporteRNC > 0 Or ImporteRNCProntoPago > 0) Then
|
||||
If Not GeneraRemisionsNotadeCredito(ObjCompras.IniciaTransacSQL) Then
|
||||
If Not GeneraRemisionsNotadeCredito(ObjCompras.IniciaTransacSQL, CveCompra) Then
|
||||
TieneError = True
|
||||
End If
|
||||
End If
|
||||
@@ -14354,7 +14422,7 @@ Partial Class Compras_Compras
|
||||
|
||||
End Sub
|
||||
Protected Sub BtnVincularOC_Click(sender As Object, e As EventArgs)
|
||||
|
||||
VincularOcProntoPago = False
|
||||
AjusteProntoPagoPorcentajeIVA = 0D
|
||||
AjusteProntoPagoConIVA = 0D
|
||||
AjusteProntoPagoSinIVA = 0D
|
||||
@@ -14435,10 +14503,14 @@ Partial Class Compras_Compras
|
||||
Next
|
||||
|
||||
AjusteProntoPagoPorcentajeIVA = TmpDT.MAX("IVAPorcentaje").ToDecimal
|
||||
AjusteProntoPagoConIVA = (ImporteCompraConIVA - ImporteOCConIVA) '+ ((ImporteCompraConIVA) * PorcentajeProntoPago)
|
||||
AjusteProntoPagoSinIVA = (ImporteCompraSinIVA - ImporteOCSinIVA) '+ ((ImporteCompraSinIVA) * PorcentajeProntoPago)
|
||||
AjusteProntoPagoConIVA = (ImporteCompraConIVA - ImporteOCConIVA)
|
||||
AjusteProntoPagoSinIVA = (ImporteCompraSinIVA - ImporteOCSinIVA)
|
||||
|
||||
If ConfirmaVinculacionOCProntoPago() Then
|
||||
Vinculacion()
|
||||
End If
|
||||
|
||||
|
||||
Vinculacion()
|
||||
|
||||
Else
|
||||
LbSubTotalDif.Visible = True
|
||||
@@ -14453,6 +14525,7 @@ Partial Class Compras_Compras
|
||||
UpEstatus.Update()
|
||||
End Sub
|
||||
Protected Sub BtnVincularOCCompleta_Click(sender As Object, e As EventArgs)
|
||||
VincularOcProntoPago = False
|
||||
Vinculacion(True)
|
||||
End Sub
|
||||
Private Sub Vinculacion(Optional VinculacionCompleta As Boolean = False)
|
||||
@@ -15356,6 +15429,9 @@ Partial Class Compras_Compras
|
||||
|
||||
Protected Sub DdlProveedores_SelectedIndexChanged(sender As Object, e As EventArgs)
|
||||
CargarFacturas()
|
||||
If UsuarioActual.Empresa.Funcionalidad(574).ToEntero = 1 Then
|
||||
CargaDdlRemisionNotaCredito()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub CargarFacturas()
|
||||
@@ -19327,6 +19403,7 @@ Partial Class Compras_Compras
|
||||
dr("CveMetodoInventario") = 1
|
||||
Next
|
||||
CargaGvInv()
|
||||
|
||||
End If
|
||||
ElseIf DdlTipoComprobante.SelectedValue.Contiene("Fac") Then
|
||||
If DdlTipoCompra.SelectedValue.Contiene("14") Then 'Recolección
|
||||
@@ -19342,9 +19419,24 @@ Partial Class Compras_Compras
|
||||
End If
|
||||
End If
|
||||
|
||||
If DdlTipoCompra.SelectedValue = "13" Then 'Remisión de nota de crédito
|
||||
|
||||
If DdlTipoComprobante.SelectedValue = "NC" Then
|
||||
CargaDdlRemisionNotaCredito()
|
||||
Else
|
||||
Alert("Para elegir Remisión de Nota de Crédito el tipo de documento debe de ser Nota de Crédito.", TipoMensaje.MsgAdvertencia)
|
||||
DdlRemisionNotaCredito.SelectedValueExist(-1)
|
||||
DdlTipoCompra.SelectedValueExist(-1)
|
||||
End If
|
||||
|
||||
|
||||
End If
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "GARANTÍAS"
|
||||
@@ -20514,24 +20606,7 @@ Partial Class Compras_Compras
|
||||
|
||||
If resultadosFiltrados.Count > 0 Then
|
||||
|
||||
Dim EnumAgrupado = (From row In TmpDT.AsEnumerable()
|
||||
Group row By
|
||||
SubProyecto = row.Field(Of String)("SubProyecto"),
|
||||
CveSubProyecto = row.Field(Of Integer)("CveSubProyecto"),
|
||||
Clasificacion = row.Field(Of String)("Clasificacion"),
|
||||
CveClasificacion = row.Field(Of Integer)("CveClasificacion"),
|
||||
TipoGasto = row.Field(Of String)("TipoGasto"),
|
||||
CveTipoGasto = row.Field(Of Integer)("CveTipoGasto")
|
||||
Into Group
|
||||
Select New With {
|
||||
.SubProyecto = SubProyecto,
|
||||
.CveSubProyecto = CveSubProyecto,
|
||||
.Clasificacion = Clasificacion,
|
||||
.CveClasificacion = CveClasificacion,
|
||||
.CveTipoGasto = CveTipoGasto,
|
||||
.TipoGasto = TipoGasto,
|
||||
.TotalSum = Group.Sum(Function(r) If(IsDBNull(r("Total")), 0D, Convert.ToDecimal(r("Total"))))
|
||||
}).ToList()
|
||||
|
||||
|
||||
''.TotalSum = Group.Sum(Function(r) r.Field(Of Decimal)("Total"))
|
||||
If Opcion = 1 Then
|
||||
@@ -20568,6 +20643,48 @@ Partial Class Compras_Compras
|
||||
|
||||
|
||||
Else
|
||||
|
||||
'Dim EnumAgrupado = (From row In TmpDT.AsEnumerable()
|
||||
' Group row By
|
||||
' SubProyecto = row.Field(Of String)("SubProyecto"),
|
||||
' CveSubProyecto = row.Field(Of Integer)("CveSubProyecto"),
|
||||
' Clasificacion = row.Field(Of String)("Clasificacion"),
|
||||
' CveClasificacion = row.Field(Of Integer)("CveClasificacion"),
|
||||
' TipoGasto = row.Field(Of String)("TipoGasto"),
|
||||
' CveTipoGasto = row.Field(Of Integer)("CveTipoGasto")
|
||||
' Into Group
|
||||
' Select New With {
|
||||
' .SubProyecto = SubProyecto,
|
||||
' .CveSubProyecto = CveSubProyecto,
|
||||
' .Clasificacion = Clasificacion,
|
||||
' .CveClasificacion = CveClasificacion,
|
||||
' .CveTipoGasto = CveTipoGasto,
|
||||
' .TipoGasto = TipoGasto,
|
||||
' .TotalSum = Group.Sum(Function(r) If(IsDBNull(r("Total")), 0D, Convert.ToDecimal(r("Total"))))
|
||||
' }).ToList()
|
||||
|
||||
Dim EnumAgrupado = (
|
||||
From row In TmpDT.AsEnumerable()
|
||||
Group row By
|
||||
SubProyecto = If(row.IsNull("SubProyecto"), String.Empty, row.Field(Of String)("SubProyecto")),
|
||||
CveSubProyecto = If(row.IsNull("CveSubProyecto"), -1, row.Field(Of Integer)("CveSubProyecto")),
|
||||
Clasificacion = If(row.IsNull("Clasificacion"), String.Empty, row.Field(Of String)("Clasificacion")),
|
||||
CveClasificacion = If(row.IsNull("CveClasificacion"), -1, row.Field(Of Integer)("CveClasificacion")),
|
||||
TipoGasto = If(row.IsNull("TipoGasto"), String.Empty, row.Field(Of String)("TipoGasto")),
|
||||
CveTipoGasto = If(row.IsNull("CveTipoGasto"), -1, row.Field(Of Integer)("CveTipoGasto"))
|
||||
Into Group
|
||||
Select New With {
|
||||
.SubProyecto = SubProyecto,
|
||||
.CveSubProyecto = CveSubProyecto,
|
||||
.Clasificacion = Clasificacion,
|
||||
.CveClasificacion = CveClasificacion,
|
||||
.CveTipoGasto = CveTipoGasto,
|
||||
.TipoGasto = TipoGasto,
|
||||
.TotalSum = Group.Sum(Function(r) If(IsDBNull(r("Total")), 0D, Convert.ToDecimal(r("Total"))))
|
||||
}
|
||||
).ToList()
|
||||
|
||||
|
||||
For Each item In EnumAgrupado
|
||||
|
||||
|
||||
@@ -20633,7 +20750,7 @@ Partial Class Compras_Compras
|
||||
|
||||
#Region "PRONTO PAGO"
|
||||
|
||||
Public Function GeneraRemisionsNotadeCredito(ByRef trasaccion As SqlTransaction) As Boolean
|
||||
Public Function GeneraRemisionsNotadeCredito(ByRef trasaccion As SqlTransaction, CveCompraRegistrada As Integer) As Boolean
|
||||
Dim respuesta As Boolean = True
|
||||
|
||||
Dim CvePS_RNC As Integer = UsuarioActual.Empresa.Funcionalidad(580).ToEntero
|
||||
@@ -20669,6 +20786,8 @@ Partial Class Compras_Compras
|
||||
CompraRNC.CveMoneda = DdlMoneda.SelectedValue.ToEntero
|
||||
CompraRNC.Serie = TxtSerie.Text
|
||||
CompraRNC.Folio = TxtFolio.Text
|
||||
CompraRNC.CveCompraAmortizacion = CveCompraRegistrada
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -20703,6 +20822,7 @@ Partial Class Compras_Compras
|
||||
CompraRNCProntoPAgo.CveMoneda = DdlMoneda.SelectedValue.ToEntero
|
||||
CompraRNCProntoPAgo.Serie = $"{TxtSerie.Text}_P"
|
||||
CompraRNCProntoPAgo.Folio = $"{TxtFolio.Text}_P"
|
||||
CompraRNCProntoPAgo.CveCompraAmortizacion = CveCompraRegistrada
|
||||
|
||||
CompraRNCProntoPAgo.ConfiguraRegistroRapidoRNC(CvePS_RNC, CveUM, UM, CveClasificacion, Clasificacion, PS, CveSubProyectoPrincipal, SubProyecto, ImporteRNCProntoPago, ImporteRNCProntoPago)
|
||||
If Not CompraRNCProntoPAgo.AddCompraRNC(trasaccion) Then
|
||||
@@ -20719,8 +20839,99 @@ Partial Class Compras_Compras
|
||||
Return respuesta
|
||||
End Function
|
||||
|
||||
|
||||
Public Property VincularOcProntoPago As Boolean
|
||||
Get
|
||||
If ViewState("VincularOcProntoPago") Is Nothing Then
|
||||
ViewState("VincularOcProntoPago") = False
|
||||
End If
|
||||
Return Boolean.Parse(ViewState("VincularOcProntoPago").ToString)
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
ViewState("VincularOcProntoPago") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Function ConfirmaVinculacionOCProntoPago() As Boolean
|
||||
|
||||
If VincularOcProntoPago Then
|
||||
Return True
|
||||
Else
|
||||
|
||||
If ImporteRNCProntoPago > 0 Then
|
||||
LblModalConfirmaVinculacionProntoPago.Text = $"Existe una diferencia de ${(ImporteRNC + ImporteRNCProntoPago).ToString("###,###,###.00")} entre la compra y la Orden de Compra, se generararan dos Remisiones de Nota de Crédito una por descuento de ${ImporteRNC.ToString("###,###,###.00")} y otra por pronto pago de ${ImporteRNCProntoPago.ToString("###,###,###.00")}"
|
||||
Else
|
||||
LblModalConfirmaVinculacionProntoPago.Text = $"Existe una diferencia de ${(ImporteRNC).ToString("###,###,###.00")} entre la compra y la Orden de Compra, se generara una Remision de Nota de Crédito una por descuento de ${ImporteRNC.ToString("###,###,###.00")}"
|
||||
End If
|
||||
|
||||
RegistraScript("$('#DVModalConfirmaVinculacionProntoPago').modal('show');")
|
||||
UpModalConfirmaVinculacionProntoPago.Update()
|
||||
|
||||
Return False
|
||||
End If
|
||||
|
||||
End Function
|
||||
|
||||
Protected Sub BtnModalConfirmaVinculacionProntoPago_Click(sender As Object, e As EventArgs)
|
||||
|
||||
RegistraScript("$('#DVModalConfirmaVinculacionProntoPago').modal('hide');")
|
||||
VincularOcProntoPago = True
|
||||
BtnVincularOC_Click(Nothing, Nothing)
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub CargaDdlRemisionNotaCredito()
|
||||
DvDdlRemisionNotaCredito.Visible = True
|
||||
DTRemisionesNotaDeCredito = New DataTable
|
||||
|
||||
Dim ObjCompras As New ClsCompras
|
||||
|
||||
If ObjCompras.GetNotasCreditoRep(DdlProveedor.SelectedValue.ToEntero, 0, "-1", "-1", UsuarioActual.CveEmpresa, 2) Then
|
||||
DdlRemisionNotaCredito.DataSource = ObjCompras.DtResultados
|
||||
DTRemisionesNotaDeCredito = ObjCompras.DtResultados
|
||||
Else
|
||||
Alert("Ocurrió un error al obtener el catálogo de Notas de Crédito", Extensiones.TipoMensaje.MsgError)
|
||||
End If
|
||||
|
||||
ObjCompras.Dispose()
|
||||
|
||||
DdlRemisionNotaCredito.DataBind()
|
||||
DdlRemisionNotaCredito.Items.Insert(0, New ListItem("-", "-1"))
|
||||
|
||||
UpEstatus.Update()
|
||||
|
||||
End Sub
|
||||
Protected Sub DdlRemisionNotaCredito_SelectedIndexChanged(sender As Object, e As EventArgs)
|
||||
|
||||
'ImporteRNCSaldar = 0
|
||||
|
||||
'If DdlRemisionNotaCredito.SelectedValue.ToEntero > 0 Then
|
||||
' ImporteRNCSaldar = DTRemisionesNotaDeCredito.FiltroPrimeroValor("Saldo", $" CveCompra = {DdlRemisionNotaCredito.SelectedValue.ToEntero} ").ToDecimal
|
||||
' SerieFolioProntoPago = DTRemisionesNotaDeCredito.FiltroPrimeroValor("Saldo", $" CveCompra = {DdlRemisionNotaCredito.SelectedValue.ToEntero} ").ToDecimal
|
||||
' TipoCambioProntoPago = DTRemisionesNotaDeCredito.FiltroPrimeroValor("Saldo", $" CveCompra = {DdlRemisionNotaCredito.SelectedValue.ToEntero} ").ToDecimal
|
||||
' FechaProntoPago = DTRemisionesNotaDeCredito.FiltroPrimeroValor("Saldo", $" CveCompra = {DdlRemisionNotaCredito.SelectedValue.ToEntero} ").ToDecimal
|
||||
' CveMonedaProntoPago = DTRemisionesNotaDeCredito.FiltroPrimeroValor("Saldo", $" CveCompra = {DdlRemisionNotaCredito.SelectedValue.ToEntero} ").ToDecimal
|
||||
' ProntoPago = DTRemisionesNotaDeCredito.FiltroPrimeroValor("Saldo", $" CveCompra = {DdlRemisionNotaCredito.SelectedValue.ToEntero} ").ToDecimal
|
||||
'End If
|
||||
|
||||
''Alert(ImporteRNCSaldar.ToString)
|
||||
'CompraPago.SerieFolio = Gvr.DataKey("SerieFolio")
|
||||
'CompraPago.TC = Gvr.DataKey("TipoCambio").ToDecimal
|
||||
'CompraPago.Fecha = Gvr.DataKey("Fecha").ToDate
|
||||
'CompraPago.CveMoneda = Gvr.DataKey("CveMoneda").ToEntero
|
||||
|
||||
'CompraPago.Total = Gvr.DataKey("Total").ToDecimal
|
||||
'CompraPago.CveTipoConceptoProveedor = CveTipoConcepto
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
@@ -22734,14 +22945,14 @@ Public Class ClsCompraManagerCompras
|
||||
|
||||
If ES_RNC Then
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Me.Total, Me.Total, 370, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, Me.Total), TipoCambio:=TipoCambio,
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Me.Total, Me.Total, 370, Referencia, Concepto, CveCompra:=CveCompra, CveCompraAmortizacion:=Me.CveCompraAmortizacion, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, Me.Total), TipoCambio:=TipoCambio,
|
||||
CveClasificacion:=-1, CveSubProyecto:=Me.CveSubProyecto, Contabilizable:=True) Then
|
||||
respuesta = False
|
||||
|
||||
End If
|
||||
|
||||
If respuesta Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Me.Total, Me.Total, 372, Referencia, Concepto, CveCompra:=CveCompra, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, Me.Total), TipoCambio:=TipoCambio,
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Me.Total, Me.Total, 372, Referencia, Concepto, CveCompra:=CveCompra, CveCompraAmortizacion:=Me.CveCompraAmortizacion, CveProveedor:=Me.CveProveedor, ImporteME:=If(TipoCambio = 1, 0, Me.Total), TipoCambio:=TipoCambio,
|
||||
CveClasificacion:=-1, CveSubProyecto:=Me.CveSubProyecto, Contabilizable:=True) Then
|
||||
respuesta = False
|
||||
|
||||
|
||||
Reference in New Issue
Block a user