diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 7167697c1..f91f6b6b1 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -5736,7 +5736,7 @@ Namespace Modelos
Else
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"), CveMotivoCancelacion:=CveMotivoCancelacion,
- MotivoCancelacion:=MotivoCancelacion, EstadoCancelacion:=EstadoCancelacion, CveEstadoCancelacion:=CveEstadoCancelacion) Then
+ MotivoCancelacion:=MotivoCancelacion, EstadoCancelacion:=EstadoCancelacion, CveEstadoCancelacion:=CveEstadoCancelacion, SelloSolicitudDigitalSAT:=SolicitudCancelacionAcuse) Then
ErrorCancelar = True
MensajeError = "Ocurrió un error al guardar el estatus de cancelación."
End If
diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx b/Ventas/RepCancelacionesPorRespuesta.aspx
index e3c8aa809..a71609e98 100644
--- a/Ventas/RepCancelacionesPorRespuesta.aspx
+++ b/Ventas/RepCancelacionesPorRespuesta.aspx
@@ -103,7 +103,7 @@
diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx.cs b/Ventas/RepCancelacionesPorRespuesta.aspx.cs
index 9c3321bb2..ac61af08b 100644
--- a/Ventas/RepCancelacionesPorRespuesta.aspx.cs
+++ b/Ventas/RepCancelacionesPorRespuesta.aspx.cs
@@ -129,10 +129,11 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
string TipoDocto = GvRow.DataKey("TipoDocto");
string Nombre = GvRow.DataKey("Nombre");
string FolioSustitucion = GvRow.DataKey("FolioFiscalSustitucion");
+ int CveEstatusFactura = GvRow.DataKey("CveEstatusFactura").ToEntero();
if (CveVenta > 0 && Uuid != "")
{
- var respuesta = VerificarVigenciaSAT(CveVenta, CveCliente, Folio, TipoDocto, Uuid, UsuarioActual.Empresa.RFC, RFCCliente, Total, true, FolioSustitucion);
+ var respuesta = VerificarVigenciaSAT(CveVenta, CveCliente, Folio, TipoDocto, Uuid, UsuarioActual.Empresa.RFC, RFCCliente, Total, EsRefacturacion: true, FolioSustitucion: FolioSustitucion, CveEstatusFactura: CveEstatusFactura);
CargaDatos();
if (respuesta.CveEstatus.Contiene(4, 5))
{
@@ -186,7 +187,11 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
var EnviarAcuse = false;
if (respCancelacion.CveEstatus > 0)
{
- EnviarAcuse = true;
+ if (respCancelacion.CveEstatus.Contiene(5, 20))
+ {
+ EnviarAcuse = true;
+ }
+
var CveEstatus = respCancelacion.CveEstatus;
var ObjVentas = new ClsVentas();
if (ObjVentas.UpdateEstatusVenta(CveVenta, CveEstatus, UsuarioActual.CveEmpresa))
@@ -194,25 +199,27 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
if (respCancelacion.CveEstatus == 20)
{
sb.Append("El estatus de la factura 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
+ else
{
sb.Append("El estatus de la factura fue cambiado a 'Cancelada'.");
+ sb.Append("El documento se canceló correctamente.");
+ sb.Append($" Imprimir Acuse");
}
-
+
}
else
{
sb.Append("Ocurrió un error al cambiar el estatus de la factura.");
}
ObjVentas.Dispose();
- sb.Append("El documento se canceló correctamente.");
- sb.Append($" Imprimir Acuse");
- sb.Append(" ¿Desea enviar el Acuse de Cancelación al Cliente?");
+
}
else
{
@@ -221,6 +228,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
if (EnviarAcuse)
{
+ sb.Append(" ¿Desea enviar el Acuse de Cancelación al Cliente?");
Alert(sb.ToString(), TipoMensaje.MsgConfirmacion, "BtnEnviarMailCancelacion();", TextoConfirmacion: "Enviar", TextoSegundoBoton: "Cancelar");
}
else
@@ -238,7 +246,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
UPDatos.Update();
}
- private MRespuestaSAT VerificarVigenciaSAT(int CveVenta, int CveCliente, string Folio, string TipoDocto, string uuid, string emisor, string receptor, string total, bool EsRefacturacion = false, string FolioSustitucion = "")
+ private MRespuestaSAT VerificarVigenciaSAT(int CveVenta, int CveCliente, string Folio, string TipoDocto, string uuid, string emisor, string receptor, string total, bool EsRefacturacion = false, string FolioSustitucion = "", int CveEstatusFactura = -1)
{
//HdnLigaRefacturar.Value = "";
@@ -301,14 +309,22 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
}
else
{
- if ((resp.EsCancelable.ToUpper() == "NO CANCELABLE"))
+ //SI ES REFACTURACION Y SE MANDO LA SOLICITUD, PERO NO APARECE EL ESTATUS DE CANCELACION, DEBE PONERSE COMO CANCELACION PENDIENTE
+ if (EsRefacturacion && CveEstatusFactura == 20 && resp.Estado.ToUpper().Trim() == "VIGENTE" && string.IsNullOrEmpty(resp.EstatusCancelacion))
{
- sb.Append("Esta factura no es cancelable.");
- retorno.Mensaje = sb.ToString();
- return retorno;
+ CveEstatus = 23;
+ var ObjVentas = new ClsVentas();
+ if (ObjVentas.UpdateEstatusVenta(CveVenta, CveEstatus, UsuarioActual.CveEmpresa))
+ {
+ sb.Append("El estatus de la factura fue cambiado a 'Cancelación Pendiente'.");
+ }
+ else
+ {
+ sb.Append("Ocurrió un error al cambiar el estatus de la factura.");
+ }
+ ObjVentas.Dispose();
}
-
- if (resp.Estado.ToUpper().Trim() == "CANCELADO" || resp.EstatusCancelacion.ToUpper() == "PLAZO VENCIDO")
+ else if (resp.Estado.ToUpper().Trim() == "CANCELADO" || resp.EstatusCancelacion.ToUpper() == "PLAZO VENCIDO")
{
CveEstatus = 5;
@@ -377,7 +393,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
}
ObjVentas.Dispose();
}
- else if (resp.Estado.ToUpper().Trim() == "VIGENTE" && string.IsNullOrEmpty(resp.EstatusCancelacion))
+ else if (resp.Estado.ToUpper().Trim() == "VIGENTE" && string.IsNullOrEmpty(resp.EstatusCancelacion) && !EsRefacturacion)
{
//ASIGNAMOS ESTATUS EMITIDA
CveEstatus = 3;
@@ -392,6 +408,12 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
}
ObjVentas.Dispose();
}
+ else if ((resp.EsCancelable.ToUpper() == "NO CANCELABLE"))
+ {
+ sb.Append("Esta factura no es cancelable.");
+ retorno.Mensaje = sb.ToString();
+ return retorno;
+ }
}
}
else
@@ -586,7 +608,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
byte[] ObjetoPDF = DescargarPDF(Encripta(String.Format("OP=CAN&CVEVTA={0}", CveVenta)));
- List LSRutasMail = new List();
+ List LSRutasMail = new List();
string Asunto = string.Empty;
string Cuerpo = string.Empty;
@@ -658,7 +680,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
}
-
+
//protected void BtnAcuse_Click(object sender, EventArgs e)
//{
// GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
@@ -667,7 +689,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
// string UrlServicio = "https://cfdi.gofac.com.mx/timbrado.asmx?WSDL";
// this.CveVenta = GvRow.DataKey("CveVenta").ToEntero();
-
+
// string Uuid = GvRow.DataKey("FolioFiscal");
// decimal Total = GvRow.DataKey("Total").ToDecimal();
// string RFCCliente = GvRow.DataKey("RFCCliente");