--FIX. Forzar cancelacion de factura
This commit is contained in:
@@ -26750,96 +26750,104 @@ Partial Class Ventas
|
||||
RFCReceptor = Me.RFCReceptorVenta
|
||||
End If
|
||||
|
||||
Dim SWatch As New Stopwatch
|
||||
SWatch.Start()
|
||||
Dim Vigencia As Timbrado.AcuseCancelacionSAT = Timbrado.VerificarVigenciaSAT(FolioFiscal, UsuarioActual.Empresa.RFC, RFCReceptor, TotalT.ToString(), True)
|
||||
If Not UsuarioActual.Empresa.Funcionalidad(529) = "1" Then
|
||||
Dim SWatch As New Stopwatch
|
||||
SWatch.Start()
|
||||
Dim Vigencia As Timbrado.AcuseCancelacionSAT = Timbrado.VerificarVigenciaSAT(FolioFiscal, UsuarioActual.Empresa.RFC, RFCReceptor, TotalT.ToString(), True)
|
||||
|
||||
SWatch.Stop()
|
||||
SWatch.Stop()
|
||||
|
||||
Dim SegundosRespuesta As Double = SWatch.ElapsedMilliseconds / 1000
|
||||
SegundosRespuesta = SegundosRespuesta.ToEntero
|
||||
Dim SegundosRespuesta As Double = SWatch.ElapsedMilliseconds / 1000
|
||||
SegundosRespuesta = SegundosRespuesta.ToEntero
|
||||
|
||||
If SegundosRespuesta >= 5 Then
|
||||
Alert($"Los servicios de validacion del SAT presentan lentitud en la respuesta [{ SegundosRespuesta } s].", TipoMensaje.ToastAdventencia, "")
|
||||
End If
|
||||
If SegundosRespuesta >= 5 Then
|
||||
Alert($"Los servicios de validacion del SAT presentan lentitud en la respuesta [{ SegundosRespuesta } s].", TipoMensaje.ToastAdventencia, "")
|
||||
End If
|
||||
|
||||
If Vigencia IsNot Nothing Then
|
||||
If Vigencia.EsCancelable.ToUpper() = "NO CANCELABLE" Then
|
||||
If Vigencia IsNot Nothing Then
|
||||
If Vigencia.EsCancelable.ToUpper() = "NO CANCELABLE" Then
|
||||
|
||||
DivRelacionadasCancelacion.Visible = True
|
||||
BtnCancelarDocumento.Visible = False
|
||||
DivMotivoCancelacion.Visible = False
|
||||
DivMotivoCancelacionTxt.Visible = False
|
||||
DivCanRem.Visible = False
|
||||
DivDevAlm.Visible = False
|
||||
DivRelacionadasCancelacion.Visible = True
|
||||
BtnCancelarDocumento.Visible = False
|
||||
DivMotivoCancelacion.Visible = False
|
||||
DivMotivoCancelacionTxt.Visible = False
|
||||
DivCanRem.Visible = False
|
||||
DivDevAlm.Visible = False
|
||||
|
||||
Dim Relacionados As Timbrado.MRespUUIDRelacionados = Timbrado.ConsultarUUIDRelacionados(UsuarioActual.Empresa, FolioFiscal, UsuarioActual.Empresa.FacturaProduccion)
|
||||
If Relacionados IsNot Nothing Then
|
||||
If Relacionados.Codigo = 500 Then
|
||||
sbExtra.Append("El servicio de verificación de documentos relacionados no esta disponible.")
|
||||
Else
|
||||
sbExtra.Append(Relacionados.Mensaje)
|
||||
Dim SbHijos As New StringBuilder()
|
||||
Dim SbPadres As New StringBuilder()
|
||||
Dim Relacionados As Timbrado.MRespUUIDRelacionados = Timbrado.ConsultarUUIDRelacionados(UsuarioActual.Empresa, FolioFiscal, UsuarioActual.Empresa.FacturaProduccion)
|
||||
If Relacionados IsNot Nothing Then
|
||||
If Relacionados.Codigo = 500 Then
|
||||
sbExtra.Append("El servicio de verificación de documentos relacionados no esta disponible.")
|
||||
Else
|
||||
sbExtra.Append(Relacionados.Mensaje)
|
||||
Dim SbHijos As New StringBuilder()
|
||||
Dim SbPadres As New StringBuilder()
|
||||
|
||||
'If Relacionados.RelacionadosHijo IsNot Nothing Then
|
||||
' For Each hijo In Relacionados.RelacionadosHijo
|
||||
' SbHijos.AppendFormat("{0};", hijo.Uuid)
|
||||
' Next
|
||||
' If SbHijos.Length > 0 Then
|
||||
' SbHijos.Remove(SbHijos.Length - 1, 1)
|
||||
' End If
|
||||
'End If
|
||||
|
||||
If Relacionados.RelacionadosPadre IsNot Nothing Then
|
||||
For Each padre As Timbrado.RelacionadosPadre In Relacionados.RelacionadosPadre
|
||||
SbPadres.AppendFormat("{0};", padre.Uuid)
|
||||
Next
|
||||
If SbPadres.Length > 0 Then
|
||||
SbPadres.Remove(SbPadres.Length - 1, 1)
|
||||
End If
|
||||
End If
|
||||
|
||||
Using ObjVentas As New ClsVentas
|
||||
'If SbHijos.Length > 0 Then
|
||||
' If ObjVentas.GetFacturasRelacionadasPorFolioFiscal(SbHijos.ToString(), UsuarioActual.CveEmpresa) Then
|
||||
' GvFacturasHijosCancelar.DataSource = ObjVentas.DtResultados.Copy()
|
||||
'If Relacionados.RelacionadosHijo IsNot Nothing Then
|
||||
' For Each hijo In Relacionados.RelacionadosHijo
|
||||
' SbHijos.AppendFormat("{0};", hijo.Uuid)
|
||||
' Next
|
||||
' If SbHijos.Length > 0 Then
|
||||
' SbHijos.Remove(SbHijos.Length - 1, 1)
|
||||
' End If
|
||||
'End If
|
||||
If SbPadres.Length > 0 Then
|
||||
If ObjVentas.GetFacturasRelacionadasPorFolioFiscal(SbPadres.ToString(), UsuarioActual.CveEmpresa) Then
|
||||
GvFacturasPadreCancelar.DataSource = ObjVentas.DtResultados.FiltraParametros($"CveVenta <> {CveVenta}")
|
||||
|
||||
If Relacionados.RelacionadosPadre IsNot Nothing Then
|
||||
For Each padre As Timbrado.RelacionadosPadre In Relacionados.RelacionadosPadre
|
||||
SbPadres.AppendFormat("{0};", padre.Uuid)
|
||||
Next
|
||||
If SbPadres.Length > 0 Then
|
||||
SbPadres.Remove(SbPadres.Length - 1, 1)
|
||||
End If
|
||||
End If
|
||||
|
||||
End Using
|
||||
'GvFacturasHijosCancelar.DataBind()
|
||||
GvFacturasPadreCancelar.DataBind()
|
||||
Using ObjVentas As New ClsVentas
|
||||
'If SbHijos.Length > 0 Then
|
||||
' If ObjVentas.GetFacturasRelacionadasPorFolioFiscal(SbHijos.ToString(), UsuarioActual.CveEmpresa) Then
|
||||
' GvFacturasHijosCancelar.DataSource = ObjVentas.DtResultados.Copy()
|
||||
' End If
|
||||
'End If
|
||||
If SbPadres.Length > 0 Then
|
||||
If ObjVentas.GetFacturasRelacionadasPorFolioFiscal(SbPadres.ToString(), UsuarioActual.CveEmpresa) Then
|
||||
GvFacturasPadreCancelar.DataSource = ObjVentas.DtResultados.FiltraParametros($"CveVenta <> {CveVenta}")
|
||||
End If
|
||||
End If
|
||||
|
||||
End Using
|
||||
'GvFacturasHijosCancelar.DataBind()
|
||||
GvFacturasPadreCancelar.DataBind()
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
If String.IsNullOrEmpty(Vigencia.EsCancelable) Then
|
||||
If UsuarioActual.Empresa.FacturaProduccion AndAlso Not String.IsNullOrEmpty(FolioFiscal) Then
|
||||
Alert("No se pudo encontrar el estatus de la factura en el SAT.", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
If String.IsNullOrEmpty(Vigencia.EsCancelable) Then
|
||||
If UsuarioActual.Empresa.FacturaProduccion AndAlso Not String.IsNullOrEmpty(FolioFiscal) Then
|
||||
Alert("No se pudo encontrar el estatus de la factura en el SAT.", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
MostrarRemisionesCancelar()
|
||||
sb.Append("<b>No encontrado</b> <br/>")
|
||||
sb.Append("Está seguro de cancelar el documento?.")
|
||||
Else
|
||||
'GUARDA EL ESTADO DE CANCELACION
|
||||
If Vigencia.EsCancelable.ToUpper() = "CANCELABLE CON ACEPTACIÓN" Then
|
||||
Me.CveEstadoCancelacion = 2
|
||||
ElseIf Vigencia.EsCancelable.ToUpper() = "CANCELABLE SIN ACEPTACIÓN" Then
|
||||
Me.CveEstadoCancelacion = 1
|
||||
End If
|
||||
|
||||
sb.AppendFormat("<b>{0}</b> <br/>", Vigencia.EsCancelable)
|
||||
If Vigencia.EsCancelable.ToUpper() <> "NO CANCELABLE" Then
|
||||
MostrarRemisionesCancelar()
|
||||
sb.Append("Está seguro de cancelar el documento?.")
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
Else
|
||||
MostrarRemisionesCancelar()
|
||||
sb.Append("<b>No encontrado</b> <br/>")
|
||||
sb.Append("Está seguro de cancelar el documento?.")
|
||||
Else
|
||||
'GUARDA EL ESTADO DE CANCELACION
|
||||
If Vigencia.EsCancelable.ToUpper() = "CANCELABLE CON ACEPTACIÓN" Then
|
||||
Me.CveEstadoCancelacion = 2
|
||||
ElseIf Vigencia.EsCancelable.ToUpper() = "CANCELABLE SIN ACEPTACIÓN" Then
|
||||
Me.CveEstadoCancelacion = 1
|
||||
End If
|
||||
|
||||
sb.AppendFormat("<b>{0}</b> <br/>", Vigencia.EsCancelable)
|
||||
If Vigencia.EsCancelable.ToUpper() <> "NO CANCELABLE" Then
|
||||
MostrarRemisionesCancelar()
|
||||
sb.Append("Está seguro de cancelar el documento?.")
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
MostrarRemisionesCancelar()
|
||||
@@ -27073,12 +27081,17 @@ Partial Class Ventas
|
||||
|
||||
If EsRefacturacion Then
|
||||
|
||||
Dim ValidarSAT As Boolean = True
|
||||
If UsuarioActual.Empresa.Funcionalidad(529) = "1" Then
|
||||
ValidarSAT = False
|
||||
End If
|
||||
|
||||
'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(DdlMotivoRefacturacion.SelectedValue.ToEntero(), TxtMotivoRefac.Text.Trim(), CveEstadoCancelacion:=Me.CveEstadoCancelacion)
|
||||
resp = ObjFacturaCancelacion.CancelarPorRefacturacion(DdlMotivoRefacturacion.SelectedValue.ToEntero(), TxtMotivoRefac.Text.Trim(), CveEstadoCancelacion:=Me.CveEstadoCancelacion, ValidarSAT:=ValidarSAT)
|
||||
strMensaje.Append(resp.Mensaje)
|
||||
Else
|
||||
Dim ListaRemisionesCancelar As New List(Of Integer)
|
||||
@@ -27135,7 +27148,26 @@ Partial Class Ventas
|
||||
|
||||
End If
|
||||
|
||||
resp = ObjFacturaCancelacion.CancelarFactura(If(ChkDevAlm.Checked, 1, 0), ListaRemisionesCancelar, CveMotivoCancelacion:=DdlMotivoCancelacion.SelectedValue.ToEntero(), Motivo:=TxtMotivoCancelacion.Text.Trim(), CveEstadoCancelacion:=Me.CveEstadoCancelacion, ForzarDevolucion:=GenerarDevolucionAnticipada, CancelacionPagos:=CancelacionPagos)
|
||||
Dim ValidarSAT As Boolean = True
|
||||
Dim CveEstatusFacturaAsignado As Integer = -1
|
||||
If UsuarioActual.Empresa.Funcionalidad(529) = "1" Then
|
||||
ValidarSAT = False
|
||||
|
||||
Dim diasTimbrado As Decimal = DateDiff(DateInterval.Day, ObjFacturaCancelacion.FechaCP, ClsPaginas.NowADS())
|
||||
|
||||
'CANCELACION SIN ACEPTACION
|
||||
Me.CveEstadoCancelacion = 2
|
||||
'CANCELACION CON ACEPTACION
|
||||
If ObjFacturaCancelacion.Total < 1000D OrElse diasTimbrado <= 1 OrElse ObjFacturaCancelacion.Cliente.RFC.Contiene("XAXX010101000", "XEXX010101000") Then
|
||||
Me.CveEstadoCancelacion = 1
|
||||
End If
|
||||
|
||||
ObjFacturaCancelacion.CveEstadoCancelacion = Me.CveEstadoCancelacion
|
||||
|
||||
CveEstatusFacturaAsignado = 4
|
||||
End If
|
||||
|
||||
resp = ObjFacturaCancelacion.CancelarFactura(If(ChkDevAlm.Checked, 1, 0), ListaRemisionesCancelar, CveMotivoCancelacion:=DdlMotivoCancelacion.SelectedValue.ToEntero(), Motivo:=TxtMotivoCancelacion.Text.Trim(), CveEstadoCancelacion:=Me.CveEstadoCancelacion, ForzarDevolucion:=GenerarDevolucionAnticipada, CancelacionPagos:=CancelacionPagos, ValidarSAT:=ValidarSAT, CveEstatusFacturaAsignado:=CveEstatusFacturaAsignado)
|
||||
strMensaje.Append(resp.Mensaje)
|
||||
Dim DtBonificaciones As DataTable = Nothing
|
||||
|
||||
|
||||
Reference in New Issue
Block a user