diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb
index ae57244f9..21be0f560 100644
--- a/App_Code/ClsVentas.vb
+++ b/App_Code/ClsVentas.vb
@@ -838,7 +838,7 @@ Public Class ClsVentas
Return Retorno
End Function
- Public Function UpdateEstatusVenta(CveVenta As Integer, CveEstatusFactura As Integer, CveEmpresa As Integer, Optional Num2 As Integer = -1) As Boolean
+ Public Function UpdateEstatusVenta(CveVenta As Integer, CveEstatusFactura As Integer, CveEmpresa As Integer, Optional Num2 As Integer = -1, Optional CveEstatusRefacturacion As Integer = -1, Optional CveMotivoCancelacion As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Vta_VentasEstatusUpdate")
@@ -848,6 +848,8 @@ Public Class ClsVentas
.Add("@CveEstatusFactura", SqlDbType.Int).Value = CveEstatusFactura
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@Num2", SqlDbType.Float).Value = Num2
+ .Add("@CveEstatusRefacturacion", SqlDbType.Int).Value = CveEstatusRefacturacion
+ .Add("@CveMotivoCancelacion", SqlDbType.Int).Value = CveMotivoCancelacion
End With
Try
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index b49be482e..e6fbe82fd 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -4845,7 +4845,8 @@ Namespace Modelos
End If
'SI YA ESTA TIMBRADA, NUEVO PROCESO REFACTURACION, ASIGNA LA CANCELACION PENDIENTE
- If EsRefacturacion AndAlso Me.CveEstatusFactura = 3 AndAlso CveMotivoCancelacion > 0 Then
+ 'EL ESTATUS REFACTURACION 4 ES PARA LAS QUE NO SE PUDIERON CANCELAR, DEBE OBLIGAR A CANCELAR ANTE EL SAT
+ If EsRefacturacion AndAlso Me.CveEstatusFactura = 3 AndAlso CveMotivoCancelacion > 0 AndAlso CveEstatusRefacturacion <> 4 Then
CveEstatusFacturaAsignado = 23
End If
diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx b/Ventas/RepCancelacionesPorRespuesta.aspx
index 3c079264a..a159d3b16 100644
--- a/Ventas/RepCancelacionesPorRespuesta.aspx
+++ b/Ventas/RepCancelacionesPorRespuesta.aspx
@@ -41,7 +41,7 @@
-
+
@@ -70,7 +70,7 @@
-
+
@@ -88,7 +88,7 @@
-
+
@@ -115,7 +115,7 @@
-
+
@@ -123,10 +123,19 @@
-
+
+
-
+
diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx.cs b/Ventas/RepCancelacionesPorRespuesta.aspx.cs
index f00369605..e86360122 100644
--- a/Ventas/RepCancelacionesPorRespuesta.aspx.cs
+++ b/Ventas/RepCancelacionesPorRespuesta.aspx.cs
@@ -68,9 +68,9 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
}
ObjVentas.Dispose();
- GvDatos.DataSource = DtVentas.FiltraParametros("(CveEstatusFactura = 20 AND CveEstatusRefacturacion = 0)");
+ GvDatos.DataSource = DtVentas.FiltraParametros("(CveEstatusFactura = 20 AND CveEstatusRefacturacion IN (0,4))");
- var DtRefacturar = DtVentas.FiltraParametros("CveEstatusRefacturacion IN (1,3) OR (CveEstatusFactura = 20 AND CveEstatusRefacturacion > 0) OR CveEstatusFactura = 23");
+ var DtRefacturar = DtVentas.FiltraParametros("CveEstatusRefacturacion IN (1,3) OR (CveEstatusFactura = 20 AND CveEstatusRefacturacion IN (1,2,3)) OR CveEstatusFactura = 23");
if (DtRefacturar != null && DtRefacturar.Rows.Count > 0)
{
DivRefacturar.Visible = true;
@@ -177,9 +177,25 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
string Nombre = GvRow.DataKey("Nombre");
string FolioSustitucion = GvRow.DataKey("FolioFiscalSustitucion");
+ int CveMotivoCancelacion = -1;
+ int CveEstatusRefacturacion = GvRow.DataKey("CveEstatusRefacturacion").ToEntero();
+
+ //SI NO SE PUDO CANCELAR, CANCELAR CON EL 02
+ if (CveEstatusRefacturacion == 4)
+ {
+ FolioSustitucion = "";
+ //CUANDO LAS REFACTURACIONES NO SE PUEDEN CANCELAR, DEBE SER CANCELADO CON EL MOTIVO 02
+ CveMotivoCancelacion = get_GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa, CveSATMotivoCancelacion: 2).FiltroPrimeroValor("CveMotivoCancelacion").ToEntero();
+ }
+ else
+ {
+ CveEstatusRefacturacion = 2;
+ }
+
+
if (CveVenta > 0 && Uuid != "")
{
- var respCancelacion = CancelarDocumento(CveVenta, -1, CveCliente, Folio, Uuid, "", DateTime.Now, TipoDocto, Total.ToDouble(), UsuarioActual.Empresa.CvePAC, EsRefacturacion: true, FolioSustitucion: FolioSustitucion, CveEstatusRefacturacion: 2);
+ var respCancelacion = CancelarDocumento(CveVenta, -1, CveCliente, Folio, Uuid, "", DateTime.Now, TipoDocto, Total.ToDouble(), UsuarioActual.Empresa.CvePAC, EsRefacturacion: true, FolioSustitucion: FolioSustitucion, CveEstatusRefacturacion: CveEstatusRefacturacion);
if (!respCancelacion.HuboError)
{
@@ -463,7 +479,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
retorno.Mensaje = sb.ToString();
return retorno;
}
- private Modelos.Factura.MCancelacionVentaMensaje CancelarDocumento(int CveVenta, int CveEstatus, int CveCliente, string Folio, string FolioFiscal, string CancelacionAcuse, DateTime CancelacionFecha, string TipoComprobante, double Total, int CvePACCancelacion, bool EsRefacturacion = false, string FolioSustitucion = "", int CveEstatusRefacturacion = 0)
+ private Modelos.Factura.MCancelacionVentaMensaje CancelarDocumento(int CveVenta, int CveEstatus, int CveCliente, string Folio, string FolioFiscal, string CancelacionAcuse, DateTime CancelacionFecha, string TipoComprobante, double Total, int CvePACCancelacion, bool EsRefacturacion = false, string FolioSustitucion = "", int CveEstatusRefacturacion = 0, int CveMotivoCancelacion = 0)
{
Modelos.Factura.MCancelacionVentaMensaje retorno = null;
var factura = new Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion: true);
@@ -480,12 +496,22 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
factura.CveEstatusRefacturacion = CveEstatusRefacturacion;
}
+ if (CveMotivoCancelacion > 0)
+ {
+ factura.CveMotivoCancelacion = CveMotivoCancelacion;
+ }
+
int CveEstatusFactura = -1;
//SI LA FACTURA YA ESTA CANCELADA, LA ASIGNA YA COMO CANCELADA
if (CveEstatus == 5)
{
CveEstatusFactura = CveEstatus;
}
+ //NO DEBE DE ASIGNAR ESTATUS
+ if (CveEstatus == -2)
+ {
+ CveEstatusFactura = -1;
+ }
retorno = factura.CancelarPorRefacturacion(factura.CveMotivoCancelacion, factura.MotivoCancelacion, FolioSustitucion: FolioSustitucion, CveEstatusFacturaAsignado: CveEstatusFactura);
}
@@ -561,6 +587,11 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
if (e.Row.DBCampo("PuedeRefacturar").ToString().ToEntero() == 0 && e.Row.DBCampo("CveEstatusFactura").ToString().ToEntero() == 23 && e.Row.DBCampo("CveVentaSustitucion").ToEntero() > 0)
{
e.Row.FCLinkButton("LnkCancelar").Visible = true;
+ //SOLO MOSTRAR SI LA FACTURA NUEVA ESTA EMITIDA
+ if (e.Row.DBCampo("CveEstatusRefacturacion").ToString().ToEntero() != 4 && e.Row.DBCampo("CveEstatusFacturaSustitucion").ToString().ToEntero() == 3)
+ {
+ e.Row.FCLinkButton("LnkCancelarFolioSustitucion").Visible = true;
+ }
}
}
}
@@ -708,40 +739,127 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
}
+ protected void LnkCancelarFolioSustitucion_Click(object sender, EventArgs e)
+ {
+ //this.HdnLigaRefacturar.Value = "";
+ this.CveVenta = -1;
- //protected void BtnAcuse_Click(object sender, EventArgs e)
- //{
- // GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
- // string UsuarioServicio = "rene.molina@adsistemas.mx";
- // string ClaveServicio = "rene2018";
- // string UrlServicio = "https://cfdi.gofac.com.mx/timbrado.asmx?WSDL";
+ GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
+ this.CveVenta = GvRow.DataKey("CveVentaSustitucion").ToEntero();
- // this.CveVenta = GvRow.DataKey("CveVenta").ToEntero();
+ int CveCliente = GvRow.DataKey("CveClienteSustitucion").ToEntero();
+ string Total = GvRow.DataKey("TotalSustitucion");
+ string RFCReceptor = GvRow.DataKey("RFCReceptorSustitucion");
+ string TipoDocto = GvRow.DataKey("TipoDocto");
+ string Nombre = GvRow.DataKey("Nombre");
+ string FolioSustitucion = GvRow.DataKey("FolioFiscalSustitucion");
+ string SerieFolioSustitucion = GvRow.DataKey("SerieFolioSustitucion");
- // string Uuid = GvRow.DataKey("FolioFiscal");
- // decimal Total = GvRow.DataKey("Total").ToDecimal();
- // string RFCCliente = GvRow.DataKey("RFCCliente");
- // string FolioFiscalSustitucion = GvRow.DataKey("FolioFiscalSustitucion");
- // Cancelacion2022.AcuseSat resp = new Cancelacion2022.AcuseSat();
- // GoFac.GoCfdi a = new GoFac.GoCfdi();
- // a.ObtenerAcuse(UrlServicio, UsuarioActual.Empresa.RFC, UsuarioServicio, ClaveServicio, Uuid);
+ int CveVentaOriginal = GvRow.DataKey("CveVenta").ToEntero();
+ string SerieFolioOriginal = GvRow.DataKey("SerieFolio");
- // if (a.CodigoError != 0)
- // {
- // //no se pudo obtener, la mandamos cancelar
- // Timbrado ObjCancelacion = new Timbrado();
+ //CUANDO LAS REFACTURACIONES NO SE PUEDEN CANCELAR, DEBE SER CANCELADO CON EL MOTIVO 02
+ int CveMotivoCancelacion = get_GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa, CveSATMotivoCancelacion: 2).FiltroPrimeroValor("CveMotivoCancelacion").ToEntero();
- // if (ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, Uuid, Total, RFCCliente, UsuarioActual.Empresa.RFC, 4, ValidaFactura:false, CveSATMotivoCancelacion: 1, FolioSustitucion: FolioFiscalSustitucion ))
- // {
- // string b = ObjCancelacion.CancelacionAcuse;
- // //falta actualizar
- // Alert("Se regeneró la solicitud de cancelación");
- // }
+ if (CveVenta > 0 && FolioSustitucion != "")
+ {
+ var respCancelacion = CancelarDocumento(CveVenta, -2, CveCliente, "", FolioSustitucion, "", DateTime.Now, TipoDocto, Total.ToDouble(), UsuarioActual.Empresa.CvePAC, EsRefacturacion: true, FolioSustitucion: "", CveEstatusRefacturacion: 4, CveMotivoCancelacion: CveMotivoCancelacion);
+ if (!respCancelacion.HuboError)
+ {
+ var sb = new StringBuilder();
+ var EnviarAcuse = false;
+ if (respCancelacion.CveEstatus > 0)
+ {
+ if (respCancelacion.CveEstatus.Contiene(5, 20))
+ {
+ EnviarAcuse = true;
+ }
- // }
+ var CveEstatus = respCancelacion.CveEstatus;
+ var ObjVentas = new ClsVentas();
+ if (ObjVentas.UpdateEstatusVenta(CveVenta, CveEstatus, UsuarioActual.CveEmpresa))
+ {
+ if (respCancelacion.CveEstatus == 20)
+ {
+ sb.Append($"El estatus de la factura {SerieFolioSustitucion} fue cambiado a 'Cancelación en proceso'.");
+ sb.Append("El documento se canceló correctamente.");
+ sb.Append($" Imprimir Acuse");
+ }
+ else if (respCancelacion.CveEstatus == 23)
+ {
+ sb.Append("La solicitud de cancelación no la aplicó el SAT, intente cancelar de nuevo.");
+ }
+ else if (respCancelacion.CveEstatus == 5)
+ {
+ sb.Append($"El estatus de la factura {SerieFolioSustitucion} fue cambiado a 'Cancelada'.");
+ sb.Append("El documento se canceló correctamente.");
+ sb.Append($" Imprimir Acuse");
+ }
- //}
+ if (respCancelacion.CveEstatus.Contiene(5,20))
+ {
+ if (ObjVentas.UpdateEstatusVenta(CveVentaOriginal, 23, UsuarioActual.CveEmpresa, CveEstatusRefacturacion:4, CveMotivoCancelacion: CveMotivoCancelacion))
+ {
+ sb.Append($"La Factura {SerieFolioOriginal} fue desligada.");
+ }
+ }
+
+ }
+ else
+ {
+ sb.Append("Ocurrió un error al cambiar el estatus de la factura.");
+ }
+ ObjVentas.Dispose();
+
+ if (respCancelacion.CveEstatus == 23)
+ {
+ var resp = Timbrado.VerificarVigenciaSAT(FolioSustitucion, UsuarioActual.Empresa.RFC, RFCReceptor, Total, true);
+ if (resp != null)
+ {
+ sb.AppendFormat("
Folio Fiscal: {0}
", FolioSustitucion);
+ sb.AppendFormat("Código Estado: {0}
", resp.CodigoEstatus);
+ sb.AppendFormat("Estado: {0}
", resp.Estado);
+ sb.AppendFormat("Es Cancelable: {0}
", string.IsNullOrEmpty(resp.EsCancelable) ? "Desconocido" : resp.EsCancelable);
+ sb.AppendFormat("Estatus de Cancelación: {0}
", string.IsNullOrEmpty(resp.EsCancelable) ? "Desconocido" : resp.EstatusCancelacion);
+ }
+ }
+ }
+ else
+ {
+ var resp = Timbrado.VerificarVigenciaSAT(FolioSustitucion, UsuarioActual.Empresa.RFC, RFCReceptor, Total, true);
+ if (resp != null)
+ {
+ sb.AppendFormat("Folio Fiscal: {0}
", FolioSustitucion);
+ sb.AppendFormat("Código Estado: {0}
", resp.CodigoEstatus);
+ sb.AppendFormat("Estado: {0}
", resp.Estado);
+ sb.AppendFormat("Es Cancelable: {0}
", string.IsNullOrEmpty(resp.EsCancelable) ? "Desconocido" : resp.EsCancelable);
+ sb.AppendFormat("Estatus de Cancelación: {0}
", string.IsNullOrEmpty(resp.EsCancelable) ? "Desconocido" : resp.EstatusCancelacion);
+ }
+
+ sb.Append(respCancelacion.Mensaje);
+ }
+
+ if (EnviarAcuse)
+ {
+ sb.Append(" ¿Desea enviar el Acuse de Cancelación al Cliente?");
+ Alert(sb.ToString(), TipoMensaje.MsgConfirmacion, "BtnEnviarMailCancelacion();", TextoConfirmacion: "Enviar", TextoSegundoBoton: "Cancelar");
+ }
+ else
+ {
+ Alert(sb.ToString());
+ }
+ }
+ else
+ {
+ Alert(respCancelacion.Mensaje, TipoMensaje.MsgError);
+ }
+
+ CargaDatos();
+ }
+ UPDatos.Update();
+
+ }
}
public class MRespuestaSAT
{
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 2187ff233..e264f5997 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -1266,6 +1266,14 @@ Partial Class Ventas
ViewState("CveEstatusRefacturacion") = value
End Set
End Property
+ Private Property RefacturarCancelada As Boolean
+ Get
+ Return If(IsNothing(ViewState("RefacturarCancelada")), False, CBool(ViewState("RefacturarCancelada")))
+ End Get
+ Set(value As Boolean)
+ ViewState("RefacturarCancelada") = value
+ End Set
+ End Property
Private Property CveEstadoCancelacion As Integer
Get
@@ -4393,10 +4401,13 @@ Partial Class Ventas
'End If
- If Not CveEstatus.Contiene(4, 5, 12, 13, 20, 23) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Egs", "Ant") AndAlso UsuarioActual.TienePermisoProceso(159) Then
+ If (Not CveEstatus.Contiene(4, 5, 12, 13, 20, 23) OrElse (CveEstatus = 5 AndAlso DbRowVenta("CveEstatusRefacturacion").ToString().ToEntero() = 4)) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Egs", "Ant") AndAlso UsuarioActual.TienePermisoProceso(159) Then
Dim TienePermiso As String = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, -1).FiltroPrimeroValor("CveSubProyecto", String.Format("CveSubProyecto = {0}", DbRowVenta("CveSubProyecto")))
If TienePermiso <> "" Then
LkRefacturacion.Visible = True
+ If (CveEstatus = 5 AndAlso DbRowVenta("CveEstatusRefacturacion").ToString().ToEntero() = 4) Then
+ RefacturarCancelada = True
+ End If
End If
End If
@@ -9106,6 +9117,15 @@ Partial Class Ventas
End If
End If
+ 'MARCAR LA FACTURA ANTERIOR
+ If (Me.CveDevolucion > 0 AndAlso Me.NuevaFactura = 1) Then
+ If Me.ObjFacturaNC IsNot Nothing Then
+ If Me.ObjFacturaNC.CveEstatusRefacturacion = 4 AndAlso Not ObjVentas.UpdateEstatusVenta(ObjFacturaNC.CveVenta, ObjFacturaNC.CveEstatusFactura, UsuarioActual.CveEmpresa, CveEstatusRefacturacion:=5) Then
+ ErrorList.Add("No se actualizó el estatus de la factura anterior.")
+ End If
+ End If
+ End If
+
If ObjFactura.CveVenta > 0 AndAlso ErrorList.Count = 0 AndAlso (SeGuardoPrePoliza Or ObjFactura.TipoDocto.Contiene("Ped", "Cot", "DPe", "PeC", "PA", "Pd2")) Then
ObjVentas.Commit()
@@ -9134,13 +9154,14 @@ Partial Class Ventas
End If
Else
Alert(String.Format("Falta asignación de las siguientes cuentas contables: {0}", CuentasContablesInvalidas), TipoMensaje.MsgAdvertencia)
+ End If
+ Else
+ If UsuarioActual.Empresa.UsaAC Then
+ If ObjContPaq IsNot Nothing Then ObjContPaq.Commit()
End If
End If
-
- 'If ObjContPaq IsNot Nothing Then ObjContPaq.RollBack()
-
'RMF, cuando es pedido, se manda autorización.
If ObjFactura.TipoDocto.Contiene("PA") Then
@@ -9268,7 +9289,7 @@ Partial Class Ventas
'CANCELAR FACTURA ANTERIOR
If SeTimbro AndAlso (Me.CveDevolucion > 0 AndAlso Me.NuevaFactura = 1) Then
- If Me.ObjFacturaNC IsNot Nothing Then
+ If Me.ObjFacturaNC IsNot Nothing AndAlso Me.ObjFacturaNC.CveEstatusFactura <> 5 Then
Me.ObjFacturaNC.CveEstatusRefacturacion = 2 'MARCAR COMO REFACTURADA
MsgCancelacionRefacturacion = Me.ObjFacturaNC.CancelarPorRefacturacion(Me.ObjFacturaNC.CveMotivoCancelacion, Me.ObjFacturaNC.MotivoCancelacion, FolioFiscalFactura)
End If
@@ -20905,129 +20926,134 @@ Partial Class Ventas
'End Sub
Private Sub BtnNuevaFactura_Click(sender As Object, e As EventArgs) Handles LkRefacturacion.Click
'Nos vamos a la nueva factura
- Dim script As String = ""
- If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Dev", "Egs") Then
- Dim sb As New StringBuilder()
+ If RefacturarCancelada Then
+ Response.Redirect($"Ventas.aspx?CveDevolucion={CveVenta}&NuevaFactura=1")
+ Else
+ Dim script As String = ""
+ If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Dev", "Egs") Then
+ Dim sb As New StringBuilder()
- If Not String.IsNullOrEmpty(FolioFiscal) AndAlso Not (UsuarioActual.Empresa.Funcionalidad(529) = "1") Then
- sb.Append("La factura se encuentra en el siguiente estatus del SAT:
")
+ If Not String.IsNullOrEmpty(FolioFiscal) AndAlso Not (UsuarioActual.Empresa.Funcionalidad(529) = "1") Then
+ sb.Append("La factura se encuentra en el siguiente estatus del SAT:
")
- Dim TotalT As Decimal = TxtTotal.Text.ToDecimal
- Dim RFCReceptor As String = LblRFC.Text.Trim
+ Dim TotalT As Decimal = TxtTotal.Text.ToDecimal
+ Dim RFCReceptor As String = LblRFC.Text.Trim
- 'SI SE FACTURO LA SUCURSAL DEL CLIENTE TOMA EL RFC DE ESTA
- If FacturarSucursal AndAlso Me.ClienteSucursal IsNot Nothing Then
- RFCReceptor = Me.ClienteSucursal.RFC
- End If
+ 'SI SE FACTURO LA SUCURSAL DEL CLIENTE TOMA EL RFC DE ESTA
+ If FacturarSucursal AndAlso Me.ClienteSucursal IsNot Nothing Then
+ RFCReceptor = Me.ClienteSucursal.RFC
+ End If
- Dim SWatch As New Stopwatch
- SWatch.Start()
+ Dim SWatch As New Stopwatch
+ SWatch.Start()
- Dim Vigencia = Timbrado.VerificarVigenciaSAT(FolioFiscal, UsuarioActual.Empresa.RFC, RFCReceptor, TotalT.ToString(), True)
- SWatch.Stop()
+ Dim Vigencia = Timbrado.VerificarVigenciaSAT(FolioFiscal, UsuarioActual.Empresa.RFC, RFCReceptor, TotalT.ToString(), True)
+ 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.ToastError, "")
- End If
+ If SegundosRespuesta >= 5 Then
+ Alert($"Los servicios de validacion del SAT presentan lentitud en la respuesta [{ SegundosRespuesta } s].", TipoMensaje.ToastError, "")
+ End If
- If Vigencia IsNot Nothing Then
+ If Vigencia IsNot Nothing Then
- If Vigencia.EsCancelable.ToUpper() = "NO CANCELABLE" Then
- sb.AppendFormat("{0}
", Vigencia.EsCancelable)
+ If Vigencia.EsCancelable.ToUpper() = "NO CANCELABLE" Then
+ sb.AppendFormat("{0}
", Vigencia.EsCancelable)
- DivRelacionadasRefacturacion.Visible = True
- BtnMotivoRefacturacion.Visible = False
- DivMotivoRefacturacionTexto.Visible = False
+ DivRelacionadasRefacturacion.Visible = True
+ BtnMotivoRefacturacion.Visible = False
+ DivMotivoRefacturacionTexto.Visible = False
- Dim Relacionados = Timbrado.ConsultarUUIDRelacionados(UsuarioActual.Empresa, FolioFiscal, UsuarioActual.Empresa.FacturaProduccion)
- If Relacionados IsNot Nothing Then
- Dim sbExtra As New StringBuilder()
- If Relacionados.Codigo = 500 Then
- sbExtra.Append("El servicio de verificación de documentos relacionados no esta disponible.")
- Else
- sbExtra.Append(Relacionados.Mensaje)
+ Dim Relacionados = Timbrado.ConsultarUUIDRelacionados(UsuarioActual.Empresa, FolioFiscal, UsuarioActual.Empresa.FacturaProduccion)
+ If Relacionados IsNot Nothing Then
+ Dim sbExtra As New StringBuilder()
+ 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 = New StringBuilder()
- Dim SbPadres = New StringBuilder()
+ Dim SbHijos = New StringBuilder()
+ Dim SbPadres = 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 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
- GvFacturasPadreRefacturar.DataSource = ObjVentas.DtResultados.FiltraParametros($"CveVenta <> {CveVenta}")
+ If Relacionados.RelacionadosPadre IsNot Nothing Then
+ For Each padre 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
+ 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
+ GvFacturasPadreRefacturar.DataSource = ObjVentas.DtResultados.FiltraParametros($"CveVenta <> {CveVenta}")
+ End If
+ End If
+
+ End Using
+
+ 'GvFacturasHijosCancelar.DataBind()
+ GvFacturasPadreRefacturar.DataBind()
+ End If
+
+ If sbExtra.Length > 0 Then
+ LbExtraRefacturacion.Text = $"
*{sbExtra.ToString()}"
+ End If
- 'GvFacturasHijosCancelar.DataBind()
- GvFacturasPadreRefacturar.DataBind()
End If
-
- If sbExtra.Length > 0 Then
- LbExtraRefacturacion.Text = $"
*{sbExtra.ToString()}"
- End If
-
End If
- End If
- If Vigencia.EsCancelable = "Cancelable sin aceptación" Then
- 'script = "BtnRefacturacionConfirmarAceptacion();"
- Me.CveEstadoCancelacion = 1
- sb.AppendFormat("{0}
", Vigencia.EsCancelable)
- sb.Append("Está seguro de realizar la refacturación?.")
- End If
+ If Vigencia.EsCancelable = "Cancelable sin aceptación" Then
+ 'script = "BtnRefacturacionConfirmarAceptacion();"
+ Me.CveEstadoCancelacion = 1
+ sb.AppendFormat("{0}
", Vigencia.EsCancelable)
+ sb.Append("Está seguro de realizar la refacturación?.")
+ End If
- If Vigencia.EsCancelable = "Cancelable con aceptación" OrElse String.IsNullOrEmpty(Vigencia.EsCancelable) Then
- 'script = "BtnRefacturacionConfirmar();"
- Me.CveEstadoCancelacion = 2
- sb.AppendFormat("{0}
", "Cancelable con aceptación")
- sb.Append("Está seguro de cancelar el documento para realizar la refacturación?.")
+ If Vigencia.EsCancelable = "Cancelable con aceptación" OrElse String.IsNullOrEmpty(Vigencia.EsCancelable) Then
+ 'script = "BtnRefacturacionConfirmar();"
+ Me.CveEstadoCancelacion = 2
+ sb.AppendFormat("{0}
", "Cancelable con aceptación")
+ sb.Append("Está seguro de cancelar el documento para realizar la refacturación?.")
+ End If
+ Else
+ 'If Not UsuarioActual.Empresa.FacturaProduccion Then
+ ' script = "BtnRefacturacionConfirmar();"
+ 'End If
+ sb.Append("No encontrado
")
End If
Else
- 'If Not UsuarioActual.Empresa.FacturaProduccion Then
- ' script = "BtnRefacturacionConfirmar();"
- 'End If
- sb.Append("No encontrado
")
+ 'sb.Append("¿Desea realizar la refacturación?
")
+ script = "BtnRefacturacionConfirmarAceptacion();"
End If
- Else
- 'sb.Append("¿Desea realizar la refacturación?
")
- script = "BtnRefacturacionConfirmarAceptacion();"
+
+ LblEstatusRefacturacion.Text = sb.ToString()
+ UpMotivoRefac.Update()
+
+ RegistraScript("$('#DivMotivoRefacturacion').modal({ backdrop: 'static', keyboard: false });", "R1")
+ 'Alert(sb.ToString(), TipoMensaje.MsgConfirmacion, JSBtnAceptar:=script, TextoConfirmacion:=" Si ", TextoCancelacion:=" No ")
End If
-
- LblEstatusRefacturacion.Text = sb.ToString()
- UpMotivoRefac.Update()
-
- RegistraScript("$('#DivMotivoRefacturacion').modal({ backdrop: 'static', keyboard: false });", "R1")
- 'Alert(sb.ToString(), TipoMensaje.MsgConfirmacion, JSBtnAceptar:=script, TextoConfirmacion:=" Si ", TextoCancelacion:=" No ")
End If
+
End Sub
Private Sub BtnMotivoRefacturacion_Click(sender As Object, e As System.EventArgs) Handles BtnMotivoRefacturacion.Click