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");