SAT. Cambios en cancelacion de factura. Reforma Fiscal 2022
This commit is contained in:
@@ -261,6 +261,19 @@ Public Class ClsGenerales
|
|||||||
End Try
|
End Try
|
||||||
Return retorno
|
Return retorno
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Function GetMotivosCancelacionSAT() As Boolean
|
||||||
|
Dim retorno As Boolean = False
|
||||||
|
DataAdapter("PA_Gral_SAT_MotivosCancelacionGet")
|
||||||
|
Try
|
||||||
|
SqlAdapter.Fill(Data)
|
||||||
|
retorno = True
|
||||||
|
Catch ex As Exception
|
||||||
|
OnError("Ocurrió un error al obtener los mptivos de cancelación.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
|
||||||
|
End Try
|
||||||
|
Return retorno
|
||||||
|
End Function
|
||||||
|
|
||||||
#Region " I N D I C A D O R E S Y G R A F I C A S"
|
#Region " I N D I C A D O R E S Y G R A F I C A S"
|
||||||
Public Function GetIndicadores(CveEmpresa As Integer) As DataSet
|
Public Function GetIndicadores(CveEmpresa As Integer) As DataSet
|
||||||
'Dim Retorno As Boolean = False
|
'Dim Retorno As Boolean = False
|
||||||
|
|||||||
@@ -1140,6 +1140,35 @@ Public Class ClsPaginas
|
|||||||
'ObjUnidadesMedida.Dispose()
|
'ObjUnidadesMedida.Dispose()
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
Public Shared Property GlobalDTSATMotivosCancelacion(Optional CveMotivoCancelacion As Integer = -1, Optional CodigoSAT As String = "-1") As DataTable
|
||||||
|
Get
|
||||||
|
If HttpContext.Current.Application("GlobalDTSATMotivosCancelacion") Is Nothing Then
|
||||||
|
Using ObjGral As New ClsGenerales
|
||||||
|
If ObjGral.GetMotivosCancelacionSAT() Then
|
||||||
|
HttpContext.Current.Application("GlobalDTSATMotivosCancelacion") = ObjGral.DtResultados.Copy()
|
||||||
|
End If
|
||||||
|
End Using
|
||||||
|
End If
|
||||||
|
|
||||||
|
If CveMotivoCancelacion <> -1 OrElse CodigoSAT <> "-1" Then
|
||||||
|
Dim StrSQL As New StringBuilder
|
||||||
|
StrSQL.Append("1=1")
|
||||||
|
If CveMotivoCancelacion <> -1 Then StrSQL.AppendFormat(" AND CveMotivoCancelacion = {0}", CveMotivoCancelacion)
|
||||||
|
If CodigoSAT <> "-1" Then StrSQL.AppendFormat(" AND CodigoSAT = '{0}'", CodigoSAT)
|
||||||
|
|
||||||
|
Dim Dv As New DataView(DirectCast(HttpContext.Current.Application("GlobalDTSATMotivosCancelacion"), DataTable), StrSQL.ToString.Trim.TrimStart("A"c, "N"c, "D"c), " CveMotivoCancelacion", DataViewRowState.CurrentRows)
|
||||||
|
GlobalDTSATMotivosCancelacion = Dv.ToTable
|
||||||
|
Dv.Dispose()
|
||||||
|
Else
|
||||||
|
GlobalDTSATMotivosCancelacion = DirectCast(HttpContext.Current.Application("GlobalDTSATMotivosCancelacion"), DataTable)
|
||||||
|
End If
|
||||||
|
|
||||||
|
End Get
|
||||||
|
Set(ByVal value As DataTable)
|
||||||
|
HttpContext.Current.Application("GlobalDTSATMotivosCancelacion") = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
Property GlobalDTEstatusOrdenCompra() As DataTable
|
Property GlobalDTEstatusOrdenCompra() As DataTable
|
||||||
Get
|
Get
|
||||||
GlobalDTEstatusOrdenCompra = DirectCast(Application("GlobalDTEstatusOrdenCompra"), DataTable)
|
GlobalDTEstatusOrdenCompra = DirectCast(Application("GlobalDTEstatusOrdenCompra"), DataTable)
|
||||||
|
|||||||
@@ -701,7 +701,8 @@ Public Class ClsVentas
|
|||||||
End Function
|
End Function
|
||||||
Public Function UpdateEstatusFactura(Estatus As Integer, FolioFiscal As String, SelloSAT As String, FechaCancelacion As DateTime, CveVenta As Integer,
|
Public Function UpdateEstatusFactura(Estatus As Integer, FolioFiscal As String, SelloSAT As String, FechaCancelacion As DateTime, CveVenta As Integer,
|
||||||
Optional IdPolizaCancelacion As Integer = -1, Optional CvePAC As Integer = -1, Optional CveEstatusRefacturacion As Integer = 0,
|
Optional IdPolizaCancelacion As Integer = -1, Optional CvePAC As Integer = -1, Optional CveEstatusRefacturacion As Integer = 0,
|
||||||
Optional CveUsuarioCambiaEstatus As Integer = -1, Optional FechaCambioEstatus As String = "-1", Optional RFCReceptor As String = "-1") As Boolean
|
Optional CveUsuarioCambiaEstatus As Integer = -1, Optional FechaCambioEstatus As String = "-1", Optional RFCReceptor As String = "-1",
|
||||||
|
Optional CveMotivoCancelacion As Integer = -1, Optional MotivoCancelacion As String = "") As Boolean
|
||||||
Dim Retorno As Boolean = False
|
Dim Retorno As Boolean = False
|
||||||
|
|
||||||
DataAdapter("PA_VentasUpdateEstatus")
|
DataAdapter("PA_VentasUpdateEstatus")
|
||||||
@@ -718,6 +719,8 @@ Public Class ClsVentas
|
|||||||
.Add("@CveUsuarioCambiaEstatus", SqlDbType.Int).Value = CveUsuarioCambiaEstatus
|
.Add("@CveUsuarioCambiaEstatus", SqlDbType.Int).Value = CveUsuarioCambiaEstatus
|
||||||
.Add("@FechaCambioEstatus", SqlDbType.VarChar).Value = FechaCambioEstatus
|
.Add("@FechaCambioEstatus", SqlDbType.VarChar).Value = FechaCambioEstatus
|
||||||
.Add("@RFCReceptor", SqlDbType.VarChar).Value = RFCReceptor
|
.Add("@RFCReceptor", SqlDbType.VarChar).Value = RFCReceptor
|
||||||
|
.Add("@CveMotivoCancelacion", SqlDbType.Int).Value = CveMotivoCancelacion
|
||||||
|
.Add("@MotivoCancelacion", SqlDbType.VarChar).Value = MotivoCancelacion
|
||||||
End With
|
End With
|
||||||
|
|
||||||
Try
|
Try
|
||||||
|
|||||||
@@ -4591,8 +4591,8 @@ Namespace Modelos
|
|||||||
''' Cancela la factura para poder realizar la refacturacion
|
''' Cancela la factura para poder realizar la refacturacion
|
||||||
''' </summary>
|
''' </summary>
|
||||||
''' <returns></returns>
|
''' <returns></returns>
|
||||||
Public Function CancelarPorRefacturacion() As MCancelacionVentaMensaje
|
Public Function CancelarPorRefacturacion(CveMotivoCancelacion As Integer, Motivo As String, Optional FolioSustitucion As String = "") As MCancelacionVentaMensaje
|
||||||
Return CancelarVenta(Me, Me.UsuarioActual, EsRefacturacion:=True)
|
Return CancelarVenta(Me, Me.UsuarioActual, EsRefacturacion:=True, CveMotivoCancelacion:=CveMotivoCancelacion, MotivoCancelacion:=Motivo, FolioSustitucion:=FolioSustitucion)
|
||||||
End Function
|
End Function
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' Cancela la factura y realiza las operaciones correspondientes
|
''' Cancela la factura y realiza las operaciones correspondientes
|
||||||
@@ -4600,13 +4600,15 @@ Namespace Modelos
|
|||||||
''' <param name="RealizarDevolucionAlmacen"></param>
|
''' <param name="RealizarDevolucionAlmacen"></param>
|
||||||
''' <param name="ListaRemisionesCancelar"></param>
|
''' <param name="ListaRemisionesCancelar"></param>
|
||||||
''' <returns></returns>
|
''' <returns></returns>
|
||||||
Public Function CancelarFactura(RealizarDevolucionAlmacen As Boolean, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing) As MCancelacionVentaMensaje
|
Public Function CancelarFactura(RealizarDevolucionAlmacen As Boolean, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing, Optional Motivo As String = "") As MCancelacionVentaMensaje
|
||||||
Return CancelarVenta(Me, Me.UsuarioActual, RealizarDevolucionAlmacen:=RealizarDevolucionAlmacen, ListaRemisionesCancelar:=ListaRemisionesCancelar)
|
'Comprobante emitido con errores sin relación
|
||||||
|
Return CancelarVenta(Me, Me.UsuarioActual, RealizarDevolucionAlmacen:=RealizarDevolucionAlmacen, ListaRemisionesCancelar:=ListaRemisionesCancelar, CveMotivoCancelacion:=2, MotivoCancelacion:=Motivo)
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function CancelarVenta(ObjFactura As Modelos.Factura, UsuarioActual As Usuario, Optional EsRefacturacion As Boolean = False, Optional RealizarDevolucionAlmacen As Boolean = False,
|
Private Function CancelarVenta(ObjFactura As Modelos.Factura, UsuarioActual As Usuario, Optional EsRefacturacion As Boolean = False, Optional RealizarDevolucionAlmacen As Boolean = False,
|
||||||
Optional ListaRemisionesCancelar As List(Of Integer) = Nothing, Optional CveEstatusFacturaAsignado As Integer = -1,
|
Optional ListaRemisionesCancelar As List(Of Integer) = Nothing, Optional CveEstatusFacturaAsignado As Integer = -1,
|
||||||
Optional FechaCancelacion As String = "-1", Optional AcuseCancelacion As String = "") As MCancelacionVentaMensaje
|
Optional FechaCancelacion As String = "-1", Optional AcuseCancelacion As String = "",
|
||||||
|
Optional CveMotivoCancelacion As Integer = -1, Optional MotivoCancelacion As String = "", Optional FolioSustitucion As String = "") As MCancelacionVentaMensaje
|
||||||
Dim Retorno As New MCancelacionVentaMensaje()
|
Dim Retorno As New MCancelacionVentaMensaje()
|
||||||
Dim ErrorList As New List(Of String)
|
Dim ErrorList As New List(Of String)
|
||||||
|
|
||||||
@@ -4783,6 +4785,11 @@ Namespace Modelos
|
|||||||
Dim RequiereAceptacion As Boolean = False
|
Dim RequiereAceptacion As Boolean = False
|
||||||
Dim Mensaje As String = ""
|
Dim Mensaje As String = ""
|
||||||
|
|
||||||
|
'SI YA ESTA TIMBRADA, NUEVO PROCESO REFACTURACION, ASIGNA LA CANCELACION PENDIENTE
|
||||||
|
If EsRefacturacion AndAlso Me.CveEstatusFactura = 3 AndAlso CveMotivoCancelacion > 0 Then
|
||||||
|
CveEstatusFacturaAsignado = 23
|
||||||
|
End If
|
||||||
|
|
||||||
If CveEstatusFacturaAsignado <= 0 Then
|
If CveEstatusFacturaAsignado <= 0 Then
|
||||||
Try
|
Try
|
||||||
If ObjFactura.FolioFiscal <> "" AndAlso UsuarioActual.Empresa.FacturaProduccion Then
|
If ObjFactura.FolioFiscal <> "" AndAlso UsuarioActual.Empresa.FacturaProduccion Then
|
||||||
@@ -4865,7 +4872,7 @@ Namespace Modelos
|
|||||||
|
|
||||||
If Not ObtenerAcuse Then
|
If Not ObtenerAcuse Then
|
||||||
If ContinuarCancelacion Then
|
If ContinuarCancelacion Then
|
||||||
If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TotalT, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion) Then
|
If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TotalT, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveMotivoCancelacion:=CveMotivoCancelacion, FolioSustitucion:=FolioSustitucion) Then
|
||||||
'GENERAMOS EL ACUSE Y MANDAMOS MAIL DE CON EL ACUSE DE CANCELACIÓN
|
'GENERAMOS EL ACUSE Y MANDAMOS MAIL DE CON EL ACUSE DE CANCELACIÓN
|
||||||
If RequiereAceptacion Then
|
If RequiereAceptacion Then
|
||||||
CancelacionFecha = Now.Date
|
CancelacionFecha = Now.Date
|
||||||
@@ -4906,7 +4913,7 @@ Namespace Modelos
|
|||||||
End Try
|
End Try
|
||||||
Else
|
Else
|
||||||
CveEstatus = CveEstatusFacturaAsignado
|
CveEstatus = CveEstatusFacturaAsignado
|
||||||
CancelacionFecha = FechaCancelacion.ToDateTime()
|
CancelacionFecha = If(IsDate(FechaCancelacion), FechaCancelacion, Now.ToString("dd/MM/yyyy")).ToDateTime()
|
||||||
CancelacionAcuse = AcuseCancelacion
|
CancelacionAcuse = AcuseCancelacion
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -4936,7 +4943,7 @@ Namespace Modelos
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
'SI ES CANCELACION EN PROCESO CANCELA EL PROCESO DE LAS REMISIONES
|
'SI ES CANCELACION EN PROCESO CANCELA EL PROCESO DE LAS REMISIONES
|
||||||
Dim SeCancelaRemisionProceso = (CveEstatus = 20 AndAlso TieneRemisionesRelacionadas AndAlso CancelarRemisiones)
|
Dim SeCancelaRemisionProceso = (CveEstatus.Contiene(20, 23) AndAlso TieneRemisionesRelacionadas AndAlso CancelarRemisiones)
|
||||||
|
|
||||||
Retorno.CveEstatus = CveEstatus
|
Retorno.CveEstatus = CveEstatus
|
||||||
|
|
||||||
@@ -4972,7 +4979,7 @@ Namespace Modelos
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
'CUANDO LA CANCELACION ESTA EN PROCESO NO DEBE REALIZAR NADA DE ESTE PROCESO
|
'CUANDO LA CANCELACION ESTA EN PROCESO NO DEBE REALIZAR NADA DE ESTE PROCESO
|
||||||
If Not AplicaRefacturacionConPagos AndAlso ((((ObjFactura.Saldo > 0 AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20)) OrElse (ObjFactura.Total = 0 AndAlso UsuarioActual.CveEmpresa.Contiene(72) AndAlso ObjFactura.TipoDocto.Contiene("Ing"))) AndAlso CveEstatus.Contiene(4, 5)) OrElse (CvePlantillaPoliza = 7 AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20))) Then
|
If Not AplicaRefacturacionConPagos AndAlso ((((ObjFactura.Saldo > 0 AndAlso (CveEstatus > 0 AndAlso Not CveEstatus.Contiene(20, 23))) OrElse (ObjFactura.Total = 0 AndAlso UsuarioActual.CveEmpresa.Contiene(72) AndAlso ObjFactura.TipoDocto.Contiene("Ing"))) AndAlso CveEstatus.Contiene(4, 5)) OrElse (CvePlantillaPoliza = 7 AndAlso (CveEstatus > 0 AndAlso Not CveEstatus.Contiene(20, 23)))) Then
|
||||||
|
|
||||||
'CUANDO SE CANCELA, LA PÓLIZA DEBE DE SER DE DIARIO
|
'CUANDO SE CANCELA, LA PÓLIZA DEBE DE SER DE DIARIO
|
||||||
CvePrePoliza = ObjConta.AddPrePolizas("Modelos/CancelarDocumento", CvePlantillaPoliza, ObjFactura.Total, ObjFactura.Total, ObjFactura.CveMoneda, Now, ObjFactura.Cliente.Nombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
|
CvePrePoliza = ObjConta.AddPrePolizas("Modelos/CancelarDocumento", CvePlantillaPoliza, ObjFactura.Total, ObjFactura.Total, ObjFactura.CveMoneda, Now, ObjFactura.Cliente.Nombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
|
||||||
@@ -5009,7 +5016,7 @@ Namespace Modelos
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
'CUANDO LA CANCELACION ESTA EN PROCESO NO DEBE REALIZAR NADA DE ESTE PROCESO
|
'CUANDO LA CANCELACION ESTA EN PROCESO NO DEBE REALIZAR NADA DE ESTE PROCESO
|
||||||
If Not ErrorCancelar AndAlso Not EsRefacturacion AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20) AndAlso CveEstatusRefacturacion = 0 Then
|
If Not ErrorCancelar AndAlso Not EsRefacturacion AndAlso (CveEstatus > 0 AndAlso Not CveEstatus.Contiene(20, 23)) AndAlso CveEstatusRefacturacion = 0 Then
|
||||||
|
|
||||||
'DEVOLUCION DE ALMACEN
|
'DEVOLUCION DE ALMACEN
|
||||||
If Not ErrorCancelar AndAlso TieneAlmacen Then
|
If Not ErrorCancelar AndAlso TieneAlmacen Then
|
||||||
@@ -5477,26 +5484,28 @@ Namespace Modelos
|
|||||||
|
|
||||||
'ACTUALIZA ESTATUS
|
'ACTUALIZA ESTATUS
|
||||||
If Not ErrorCancelar Then
|
If Not ErrorCancelar Then
|
||||||
Select Case ObjFactura.TipoDocto
|
If CveEstatus <> 23 Then
|
||||||
Case "Rem"
|
Select Case ObjFactura.TipoDocto
|
||||||
CveEstatus = 12
|
Case "Rem"
|
||||||
Case "Com"
|
CveEstatus = 12
|
||||||
CveEstatus = 9
|
Case "Com"
|
||||||
Case "Cot"
|
CveEstatus = 9
|
||||||
CveEstatus = 10
|
Case "Cot"
|
||||||
Case "Ped", "DPe"
|
CveEstatus = 10
|
||||||
CveEstatus = 14
|
Case "Ped", "DPe"
|
||||||
End Select
|
CveEstatus = 14
|
||||||
|
End Select
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
If CveEstatus.Contiene(4, 5) Then
|
If CveEstatus.Contiene(4, 5) Then
|
||||||
|
|
||||||
If Not ObjVentas.UpdateCancelaVenta(CveVenta, CancelacionFecha, CancelacionAcuse, UsuarioActual.CveEmpresa, CvePACCancelacion, CveEstatusRefacturacion) Then
|
If Not ObjVentas.UpdateCancelaVenta(CveVenta, CancelacionFecha, CancelacionAcuse, UsuarioActual.CveEmpresa, CvePACCancelacion, CveEstatusRefacturacion) Then
|
||||||
ErrorCancelar = True
|
ErrorCancelar = True
|
||||||
MensajeError = "Ocurrió un error al guardar el estatus de cancelación."
|
MensajeError = "Ocurrió un error al guardar el estatus de cancelación."
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
If Not ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, CancelacionAcuse, CancelacionFecha, CveVenta, IDPoliza, CvePAC:=CvePACCancelacion, CveEstatusRefacturacion:=CveEstatusRefacturacion,
|
If Not ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, CancelacionAcuse, CancelacionFecha, CveVenta, IDPoliza, CvePAC:=CvePACCancelacion, CveEstatusRefacturacion:=CveEstatusRefacturacion,
|
||||||
CveUsuarioCambiaEstatus:=UsuarioActual.CveUsuario, FechaCambioEstatus:=Now.ToString("yyyy-MM-dd HH:mm:ss.mmm")) Then
|
CveUsuarioCambiaEstatus:=UsuarioActual.CveUsuario, FechaCambioEstatus:=Now.ToString("yyyy-MM-dd HH:mm:ss.mmm"), CveMotivoCancelacion:=CveMotivoCancelacion, MotivoCancelacion:=MotivoCancelacion) Then
|
||||||
ErrorCancelar = True
|
ErrorCancelar = True
|
||||||
MensajeError = "Ocurrió un error al guardar el estatus de cancelación."
|
MensajeError = "Ocurrió un error al guardar el estatus de cancelación."
|
||||||
End If
|
End If
|
||||||
@@ -6735,6 +6744,10 @@ Namespace Modelos
|
|||||||
|
|
||||||
Public Property VentaDesglosaIEPS As Boolean
|
Public Property VentaDesglosaIEPS As Boolean
|
||||||
|
|
||||||
|
Public Property CveMotivoCancelacion As Integer = -1
|
||||||
|
|
||||||
|
Public Property MotivoCancelacion As String = ""
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ Public Class Timbrado
|
|||||||
End Using
|
End Using
|
||||||
Return Retorno
|
Return Retorno
|
||||||
End Function
|
End Function
|
||||||
Public Function CFDICancelar(Empresa As Empresa, FolioFiscal As String, Total As Decimal, RFCReceptor As String, RFCEmisor As String, Optional CvePACCancelacion As Integer = 2, Optional ValidaFactura As Boolean = True) As Boolean
|
Public Function CFDICancelar(Empresa As Empresa, FolioFiscal As String, Total As Decimal, RFCReceptor As String, RFCEmisor As String, Optional CvePACCancelacion As Integer = 2, Optional ValidaFactura As Boolean = True, Optional CveMotivoCancelacion As Integer = -1, Optional FolioSustitucion As String = "") As Boolean
|
||||||
Dim Retorno As Boolean = False
|
Dim Retorno As Boolean = False
|
||||||
Dim MsgCancelacion As New StringBuilder
|
Dim MsgCancelacion As New StringBuilder
|
||||||
|
|
||||||
@@ -78,6 +78,14 @@ Public Class Timbrado
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
Dim CodigoSATMotivoCancelacion As String = ""
|
||||||
|
|
||||||
|
If CveMotivoCancelacion > 0 Then
|
||||||
|
If ClsPaginas.GlobalDTSATMotivosCancelacion(CveMotivoCancelacion) IsNot Nothing AndAlso ClsPaginas.GlobalDTSATMotivosCancelacion(CveMotivoCancelacion).Rows.Count > 0 Then
|
||||||
|
CodigoSATMotivoCancelacion = ClsPaginas.GlobalDTSATMotivosCancelacion(CveMotivoCancelacion).Rows(0)("CodigoSAT").ToString()
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
MsgCancelacion.AppendFormat("CvePAC:{0}", CvePACCancelacion)
|
MsgCancelacion.AppendFormat("CvePAC:{0}", CvePACCancelacion)
|
||||||
|
|
||||||
Select Case CvePACCancelacion
|
Select Case CvePACCancelacion
|
||||||
@@ -471,7 +479,7 @@ Public Class Timbrado
|
|||||||
objCan.CancelacionCfdi = True
|
objCan.CancelacionCfdi = True
|
||||||
objCan.FechaCancelacion = System.DateTime.Now.AddMinutes(-120) ' operación requerida para que no se presente problemas con fechas adelantadas del PAC
|
objCan.FechaCancelacion = System.DateTime.Now.AddMinutes(-120) ' operación requerida para que no se presente problemas con fechas adelantadas del PAC
|
||||||
MsgCancelacion.AppendFormat("4.3-")
|
MsgCancelacion.AppendFormat("4.3-")
|
||||||
objCan.GeneraCancelacionB64(certBase64, llaveBase64, Clave, FolioFiscal)
|
objCan.GeneraCancelacionB64(certBase64, llaveBase64, Clave, FolioFiscal, CodigoSATMotivoCancelacion, FolioSustitucion)
|
||||||
If (objCan.MensajeError = "") Then
|
If (objCan.MensajeError = "") Then
|
||||||
MsgCancelacion.AppendFormat("4.4-")
|
MsgCancelacion.AppendFormat("4.4-")
|
||||||
objCan.CancelaCfdi(UsuarioServicio, ClaveServicio, UrlServicio, Empresa.FacturaProduccion)
|
objCan.CancelaCfdi(UsuarioServicio, ClaveServicio, UrlServicio, Empresa.FacturaProduccion)
|
||||||
|
|||||||
BIN
Bin/GoCfdi.dll
BIN
Bin/GoCfdi.dll
Binary file not shown.
@@ -67,7 +67,7 @@
|
|||||||
<asp:BoundField HeaderText="Mon" DataField="Abreviatura" ItemStyle-Width="30px" />
|
<asp:BoundField HeaderText="Mon" DataField="Abreviatura" ItemStyle-Width="30px" />
|
||||||
<asp:BoundField HeaderText="Estatus" DataField="EstatusFactura" ItemStyle-Width="160px" />
|
<asp:BoundField HeaderText="Estatus" DataField="EstatusFactura" ItemStyle-Width="160px" />
|
||||||
<asp:BoundField HeaderText="Fecha Solicitud" DataField="FechaCambioEstatus" ItemStyle-Width="160px" />
|
<asp:BoundField HeaderText="Fecha Solicitud" DataField="FechaCambioEstatus" ItemStyle-Width="160px" />
|
||||||
<asp:BoundField HeaderText="Fecha Cancelacion" DataField="FechaCancelacion" ItemStyle-Width="160px" />
|
<asp:BoundField HeaderText="Motivo" DataField="MotivoCancelacion" ItemStyle-Width="25%" />
|
||||||
<asp:TemplateField ItemStyle-Width="35px" HeaderText="Verificar">
|
<asp:TemplateField ItemStyle-Width="35px" HeaderText="Verificar">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:LinkButton runat="server" OnClick="BtnValidar_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea verificar la cancelación?" data-btn-ok-label="si"></asp:LinkButton>
|
<asp:LinkButton runat="server" OnClick="BtnValidar_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea verificar la cancelación?" data-btn-ok-label="si"></asp:LinkButton>
|
||||||
@@ -116,6 +116,7 @@
|
|||||||
<asp:BoundField HeaderText="Fecha Solicitud" DataField="FechaCambioEstatus" ItemStyle-Width="160px" />
|
<asp:BoundField HeaderText="Fecha Solicitud" DataField="FechaCambioEstatus" ItemStyle-Width="160px" />
|
||||||
<asp:BoundField HeaderText="Fecha Cancelacion" DataField="FechaCancelacion" ItemStyle-Width="160px" />
|
<asp:BoundField HeaderText="Fecha Cancelacion" DataField="FechaCancelacion" ItemStyle-Width="160px" />
|
||||||
<asp:BoundField HeaderText="Estatus" DataField="EstatusFactura" ItemStyle-Width="160px" />
|
<asp:BoundField HeaderText="Estatus" DataField="EstatusFactura" ItemStyle-Width="160px" />
|
||||||
|
<asp:BoundField HeaderText="Motivo" DataField="MotivoCancelacion" ItemStyle-Width="25%" />
|
||||||
<asp:TemplateField ItemStyle-Width="35px" HeaderText="Verificar">
|
<asp:TemplateField ItemStyle-Width="35px" HeaderText="Verificar">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:LinkButton runat="server" OnClick="BtnValidarRefacturacion_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea verificar la cancelación?" data-btn-ok-label="si"></asp:LinkButton>
|
<asp:LinkButton runat="server" OnClick="BtnValidarRefacturacion_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea verificar la cancelación?" data-btn-ok-label="si"></asp:LinkButton>
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
|
|||||||
}
|
}
|
||||||
|
|
||||||
ObjVentas.Dispose();
|
ObjVentas.Dispose();
|
||||||
GvDatos.DataSource = DtVentas.FiltraParametros("CveEstatusFactura = 20 AND CveEstatusRefacturacion = 0");
|
GvDatos.DataSource = DtVentas.FiltraParametros("CveEstatusFactura IN(20,23) AND CveEstatusRefacturacion = 0");
|
||||||
|
|
||||||
var DtRefacturar = DtVentas.FiltraParametros("CveEstatusRefacturacion IN (1,3)");
|
var DtRefacturar = DtVentas.FiltraParametros("CveEstatusRefacturacion IN (1,3)");
|
||||||
if (DtRefacturar != null && DtRefacturar.Rows.Count > 0)
|
if (DtRefacturar != null && DtRefacturar.Rows.Count > 0)
|
||||||
@@ -314,7 +314,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
|
|||||||
var factura = new Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion:true);
|
var factura = new Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion:true);
|
||||||
if (EsRefacturacion)
|
if (EsRefacturacion)
|
||||||
{
|
{
|
||||||
retorno = factura.CancelarPorRefacturacion();
|
retorno = factura.CancelarPorRefacturacion(1,"");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -10,7 +10,8 @@
|
|||||||
padding: 0px 5px;
|
padding: 0px 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nolineheight { line-height: 1;
|
.nolineheight {
|
||||||
|
line-height: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.claseesconder {
|
.claseesconder {
|
||||||
@@ -5356,7 +5357,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<%-- <div class="row " runat="server" id="DVDireccionCliente1" visible="false">
|
<%-- <div class="row " runat="server" id="DVDireccionCliente1" visible="false">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<div class="form-group form-md-line-input input-iconright">
|
<div class="form-group form-md-line-input input-iconright">
|
||||||
<asp:TextBox ID="TxtEnvioEstado" runat="server" Width="100%" CssClass="form-control" CausesValidation="true"></asp:TextBox>
|
<asp:TextBox ID="TxtEnvioEstado" runat="server" Width="100%" CssClass="form-control" CausesValidation="true"></asp:TextBox>
|
||||||
@@ -6758,7 +6759,7 @@
|
|||||||
<input type="text" id="TxtBusquedaNCBon" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaNCBon','{0}')", GvRemisionesNCBon.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
|
<input type="text" id="TxtBusquedaNCBon" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaNCBon','{0}')", GvRemisionesNCBon.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
|
||||||
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaNCBon','{0}')", GvRemisionesNCBon.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
|
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaNCBon','{0}')", GvRemisionesNCBon.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" id="DivRNCBonificaciones" runat="server" visible="false">
|
<div class="row" id="DivRNCBonificaciones" runat="server" visible="false">
|
||||||
<div class="col-md-12" style="max-height: 440px; overflow: auto">
|
<div class="col-md-12" style="max-height: 440px; overflow: auto">
|
||||||
<asp:GridView ID="GvRemisionesNCBon" runat="server" AutoGenerateColumns="False"
|
<asp:GridView ID="GvRemisionesNCBon" runat="server" AutoGenerateColumns="False"
|
||||||
DataKeyNames="CveVenta,CveVentaRNCCargo" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn" GridLines="None">
|
DataKeyNames="CveVenta,CveVentaRNCCargo" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn" GridLines="None">
|
||||||
@@ -7718,6 +7719,42 @@
|
|||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
</asp:UpdatePanel>
|
</asp:UpdatePanel>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="DivMotivoRefacturacion" class="modal ADS fade" role="dialog">
|
||||||
|
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpRefac" UpdateMode="Conditional">
|
||||||
|
<ContentTemplate>
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
<h4 class="modal-title" id="H1" runat="server">Motivo</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-2">
|
||||||
|
<label>Motivo:</label>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-8">
|
||||||
|
<asp:DropDownList ID="DdlMotivoCancelacion" CssClass=" form-control input-sm select2me" runat="server" Width="100%" DataTextField="CodigoSATDescripcion" DataValueField="CveMotivoCancelacion">
|
||||||
|
</asp:DropDownList>
|
||||||
|
<asp:RequiredFieldValidator ID="RFVDdlMotivo" runat="server" CssClass="help-block errorimput" InitialValue="-1" ControlToValidate="DdlMotivoCancelacion" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Motivo''</b> es necesario, por favor ingréselo." ValidationGroup="GrpMotivo"></asp:RequiredFieldValidator>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label>Descripción:</label>
|
||||||
|
<asp:TextBox ID="TxtMotivoRefac" runat="server" Height="100" Width="600" TextMode="MultiLine" CausesValidation="true" MaxLength="500"></asp:TextBox>
|
||||||
|
<asp:RequiredFieldValidator ID="RFVTxtMotivoRefac" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtMotivoRefac" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripcion''</b> es necesario, por favor ingréselo." ValidationGroup="GrpMotivo"></asp:RequiredFieldValidator>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<asp:LinkButton ID="BtnMotivoRefacturacion" runat="server" CssClass="btn btn-primary" ValidationGroup="GrpMotivo"> Refacturar</asp:LinkButton>
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ContentTemplate>
|
||||||
|
</asp:UpdatePanel>
|
||||||
|
</div>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
|
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
|
||||||
<script src="/Metronic/assets/global/scripts/jquery-sortable.js"></script>
|
<script src="/Metronic/assets/global/scripts/jquery-sortable.js"></script>
|
||||||
|
|||||||
@@ -2319,6 +2319,7 @@ Partial Class Ventas
|
|||||||
CargaMetodosPago()
|
CargaMetodosPago()
|
||||||
'CargaFormaPago(-1)
|
'CargaFormaPago(-1)
|
||||||
CargaUsoCFDI()
|
CargaUsoCFDI()
|
||||||
|
CargaMotivosCancelacion()
|
||||||
CargaTiposRelacion()
|
CargaTiposRelacion()
|
||||||
CargaMonedas()
|
CargaMonedas()
|
||||||
CargaVendedores()
|
CargaVendedores()
|
||||||
@@ -2981,9 +2982,12 @@ Partial Class Ventas
|
|||||||
If Me.CveDevolucion > 0 AndAlso Me.NuevaFactura = 1 Then
|
If Me.CveDevolucion > 0 AndAlso Me.NuevaFactura = 1 Then
|
||||||
Dim TipoEstatus As Integer = GlobalDTEstatusFactura().FiltroPrimeroValor("TipoEstatus", $"CveEstatusFactura = {Me.ObjFacturaNC.CveEstatusFactura}").ToEntero()
|
Dim TipoEstatus As Integer = GlobalDTEstatusFactura().FiltroPrimeroValor("TipoEstatus", $"CveEstatusFactura = {Me.ObjFacturaNC.CveEstatusFactura}").ToEntero()
|
||||||
If TipoEstatus <> 5 Then
|
If TipoEstatus <> 5 Then
|
||||||
Alert($"El documento de tipo '{Me.ObjFacturaNC.TipodeComprobante}' a refacturar no ha sido cancelado. Favor de verificar el documento", TipoMensaje.MsgAdvertencia)
|
'ESTATUS DE CANCELACION PENDIENTE
|
||||||
BtnEmitirImprimir.Visible = False
|
If Not Me.ObjFacturaNC.CveEstatusFactura = 23 Then
|
||||||
UpFacturar.Update()
|
Alert($"El documento de tipo '{Me.ObjFacturaNC.TipodeComprobante}' a refacturar no ha sido cancelado. Favor de verificar el documento", TipoMensaje.MsgAdvertencia)
|
||||||
|
BtnEmitirImprimir.Visible = False
|
||||||
|
UpFacturar.Update()
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -4187,7 +4191,7 @@ Partial Class Ventas
|
|||||||
LblAlertRefacInv.Visible = True
|
LblAlertRefacInv.Visible = True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If DdlTipoComprobante.SelectedValue.Contiene("Egs", "Ing", "Ant", "Dev", "Rem", "DPe", "RNC", "Pd2", "Cot") AndAlso Not CveEstatus.Contiene(4, 5, 10, 12, 13, 20) Then
|
If DdlTipoComprobante.SelectedValue.Contiene("Egs", "Ing", "Ant", "Dev", "Rem", "DPe", "RNC", "Pd2", "Cot") AndAlso Not CveEstatus.Contiene(4, 5, 10, 12, 13, 20, 23) Then
|
||||||
If UsuarioActual.TienePermisoProceso(159) Then
|
If UsuarioActual.TienePermisoProceso(159) Then
|
||||||
Dim TienePermiso As String = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, -1).FiltroPrimeroValor("CveSubProyecto", String.Format("CveSubProyecto = {0}", DbRowVenta("CveSubProyecto")))
|
Dim TienePermiso As String = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, -1).FiltroPrimeroValor("CveSubProyecto", String.Format("CveSubProyecto = {0}", DbRowVenta("CveSubProyecto")))
|
||||||
If TienePermiso <> "" Then
|
If TienePermiso <> "" Then
|
||||||
@@ -5480,6 +5484,13 @@ Partial Class Ventas
|
|||||||
DdlUsoCFDI.DataBind()
|
DdlUsoCFDI.DataBind()
|
||||||
DdlSucursalUsoCFDI.DataBind()
|
DdlSucursalUsoCFDI.DataBind()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub CargaMotivosCancelacion()
|
||||||
|
DdlMotivoCancelacion.DataSource = GlobalDTSATMotivosCancelacion()
|
||||||
|
DdlMotivoCancelacion.DataBind()
|
||||||
|
|
||||||
|
DdlMotivoCancelacion.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||||
|
End Sub
|
||||||
Private Sub CargaTiposRelacion()
|
Private Sub CargaTiposRelacion()
|
||||||
DdlTiposRelacion.DataSource = GlobalDTVtaTiposRelacion
|
DdlTiposRelacion.DataSource = GlobalDTVtaTiposRelacion
|
||||||
DdlTipoRelacionARelacionar.DataSource = GlobalDTVtaTiposRelacion
|
DdlTipoRelacionARelacionar.DataSource = GlobalDTVtaTiposRelacion
|
||||||
@@ -8766,6 +8777,12 @@ Partial Class Ventas
|
|||||||
Alert(ObjTimbrado.MensajeErrorCFDI, TipoMensaje.MsgError)
|
Alert(ObjTimbrado.MensajeErrorCFDI, TipoMensaje.MsgError)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If SeTimbro AndAlso (Me.CveDevolucion > 0 AndAlso Me.NuevaFactura = 1) Then
|
||||||
|
If Me.ObjFacturaNC IsNot Nothing Then
|
||||||
|
Me.ObjFacturaNC.CancelarPorRefacturacion(Me.ObjFacturaNC.CveMotivoCancelacion, Me.ObjFacturaNC.MotivoCancelacion, ObjTimbrado.UUID)
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'NOTA DE CREDITO DE REFACTURACION
|
'NOTA DE CREDITO DE REFACTURACION
|
||||||
@@ -20312,12 +20329,26 @@ Partial Class Ventas
|
|||||||
Alert(sb.ToString(), TipoMensaje.MsgConfirmacion, JSBtnAceptar:=script, TextoConfirmacion:=" Si ", TextoCancelacion:=" No ")
|
Alert(sb.ToString(), TipoMensaje.MsgConfirmacion, JSBtnAceptar:=script, TextoConfirmacion:=" Si ", TextoCancelacion:=" No ")
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub BtnMotivoRefacturacion_Click(sender As Object, e As System.EventArgs) Handles BtnMotivoRefacturacion.Click
|
||||||
|
CancelarDocumento(EsRefacturacion:=True)
|
||||||
|
End Sub
|
||||||
'BtnRefacturacionConfirmar
|
'BtnRefacturacionConfirmar
|
||||||
Private Sub BtnRefacturacionConfirmar_Click(sender As Object, e As System.EventArgs) Handles BtnRefacturacionConfirmar.Click
|
Private Sub BtnRefacturacionConfirmar_Click(sender As Object, e As System.EventArgs) Handles BtnRefacturacionConfirmar.Click
|
||||||
CancelarDocumento(True)
|
DdlMotivoCancelacion.SelectedValueExist(1)
|
||||||
|
DdlMotivoCancelacion.Enabled = False
|
||||||
|
|
||||||
|
UpRefac.Update()
|
||||||
|
RegistraScript("$('#DivMotivoRefacturacion').modal({ backdrop: 'static', keyboard: false });", "R1")
|
||||||
|
'CancelarDocumento(True)
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub BtnRefacturacionConfirmarAceptacion_Click(sender As Object, e As System.EventArgs) Handles BtnRefacturacionConfirmarAceptacion.Click
|
Private Sub BtnRefacturacionConfirmarAceptacion_Click(sender As Object, e As System.EventArgs) Handles BtnRefacturacionConfirmarAceptacion.Click
|
||||||
CancelarDocumento(True)
|
DdlMotivoCancelacion.SelectedValueExist(1)
|
||||||
|
DdlMotivoCancelacion.Enabled = False
|
||||||
|
|
||||||
|
UpRefac.Update()
|
||||||
|
RegistraScript("$('#DivMotivoRefacturacion').modal({ backdrop: 'static', keyboard: false });", "R1")
|
||||||
|
'CancelarDocumento(True)
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub BtnContabilizar_Click(sender As Object, e As System.EventArgs) Handles BtnContabilizar.Click
|
Private Sub BtnContabilizar_Click(sender As Object, e As System.EventArgs) Handles BtnContabilizar.Click
|
||||||
'Dim ObjMov As New ClsContabilidad
|
'Dim ObjMov As New ClsContabilidad
|
||||||
@@ -22997,7 +23028,13 @@ Partial Class Ventas
|
|||||||
SWatch.Start()
|
SWatch.Start()
|
||||||
|
|
||||||
If EsRefacturacion Then
|
If EsRefacturacion Then
|
||||||
resp = ObjFacturaCancelacion.CancelarPorRefacturacion()
|
|
||||||
|
'Dim msgBitacora As String = $"Motivo de refacturación: {TxtMotivoRefac.Text}"
|
||||||
|
'Dim ObjE As New ClsOIEventos()
|
||||||
|
'ObjE.AddEventoBitacora(msgBitacora, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveVenta)
|
||||||
|
'ObjE.Dispose()
|
||||||
|
|
||||||
|
resp = ObjFacturaCancelacion.CancelarPorRefacturacion(DdlMotivoCancelacion.SelectedValue.ToEntero(), TxtMotivoRefac.Text)
|
||||||
Else
|
Else
|
||||||
Dim ListaRemisionesCancelar As New List(Of Integer)
|
Dim ListaRemisionesCancelar As New List(Of Integer)
|
||||||
If ChkCanRem.Checked Then
|
If ChkCanRem.Checked Then
|
||||||
@@ -23031,7 +23068,7 @@ Partial Class Ventas
|
|||||||
If EsRefacturacion Then
|
If EsRefacturacion Then
|
||||||
If resp.CveEstatus = 20 Then
|
If resp.CveEstatus = 20 Then
|
||||||
LigaRedirigir = $"/Ventas/RepCancelacionesPorRespuesta.aspx?CveVenta={CveVenta}"
|
LigaRedirigir = $"/Ventas/RepCancelacionesPorRespuesta.aspx?CveVenta={CveVenta}"
|
||||||
ElseIf resp.CveEstatus.Contiene(4, 5) Then
|
ElseIf resp.CveEstatus.Contiene(4, 5, 23) Then
|
||||||
LigaRedirigir = $"Ventas.aspx?CveDevolucion={CveVenta}&NuevaFactura=1"
|
LigaRedirigir = $"Ventas.aspx?CveDevolucion={CveVenta}&NuevaFactura=1"
|
||||||
Else
|
Else
|
||||||
Alert(resp.Mensaje, resp.TipoMensaje, JSBtnAceptar:="BtnRefrescarPagina();")
|
Alert(resp.Mensaje, resp.TipoMensaje, JSBtnAceptar:="BtnRefrescarPagina();")
|
||||||
|
|||||||
Reference in New Issue
Block a user