diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx.cs b/Ventas/RepCancelacionesPorRespuesta.aspx.cs index 8ae294174..096e121fc 100644 --- a/Ventas/RepCancelacionesPorRespuesta.aspx.cs +++ b/Ventas/RepCancelacionesPorRespuesta.aspx.cs @@ -138,13 +138,30 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas string RFCReceptor = GvRow.DataKey("RFCReceptor"); string Folio = GvRow.DataKey("Folio"); string TipoDocto = GvRow.DataKey("TipoDocto"); - string Nombre = GvRow.DataKey("Nombre"); - string FolioSustitucion = GvRow.DataKey("FolioFiscalSustitucion"); + string Nombre = GvRow.DataKey("Nombre"); int CveEstatusFactura = GvRow.DataKey("CveEstatusFactura").ToEntero(); + string FolioSustitucion = GvRow.DataKey("FolioFiscalSustitucion"); + int CveVentaSustitucion = GvRow.DataKey("CveVentaSustitucion").ToEntero(); + string RFCReceptorSustitucion = GvRow.DataKey("RFCReceptorSustitucion"); + + int CveMotivoSustitucion = 0; + + if (CveVentaSustitucion > 0) + { + //VERIFICA EL ESTATUS DE LA FACTURA NUEVA, SI ESTA ESTÁ CANCELADA, SE MANDA UNA CANCELACIÓN SIN FOLIO DE SUSTITUCIÓN Y CON EL CÓDIGO 02 + Timbrado.AcuseCancelacionSAT VigenciaExtra = Timbrado.VerificarVigenciaSAT(FolioSustitucion, UsuarioActual.Empresa.RFC, RFCReceptorSustitucion, Total.ToString(), true); + if (VigenciaExtra.Estado.ToUpper() == "CANCELADO") + { + FolioSustitucion = ""; + CveMotivoSustitucion = get_GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa, CveSATMotivoCancelacion: 2).FiltroPrimeroValor("CveMotivoCancelacion").ToEntero(); + } + } + + if (CveVenta > 0 && Uuid != "") { - var respuesta = VerificarVigenciaSAT(CveVenta, CveCliente, Folio, TipoDocto, Uuid, UsuarioActual.Empresa.RFC, RFCReceptor, Total, EsRefacturacion: true, FolioSustitucion: FolioSustitucion, CveEstatusFactura: CveEstatusFactura); + var respuesta = VerificarVigenciaSAT(CveVenta, CveCliente, Folio, TipoDocto, Uuid, UsuarioActual.Empresa.RFC, RFCReceptor, Total, EsRefacturacion: true, FolioSustitucion: FolioSustitucion, CveEstatusFactura: CveEstatusFactura, CveMotivoSustitucion: CveMotivoSustitucion); CargaDatos(); if (respuesta.CveEstatus.Contiene(4, 5)) { @@ -302,7 +319,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 = "", int CveEstatusFactura = -1) + 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, int CveMotivoSustitucion = 0) { //HdnLigaRefacturar.Value = ""; @@ -341,7 +358,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas if (!UsuarioActual.Empresa.FacturaProduccion && (string.IsNullOrEmpty(uuid) || uuid.Contains("test"))) { - var respCancelacion = CancelarDocumento(CveVenta, CveEstatus, CveCliente, Folio, uuid, CancelacionAcuse, CancelacionFecha, TipoDocto, total.ToDouble(), UsuarioActual.Empresa.CvePAC, EsRefacturacion: EsRefacturacion, FolioSustitucion: FolioSustitucion); + var respCancelacion = CancelarDocumento(CveVenta, CveEstatus, CveCliente, Folio, uuid, CancelacionAcuse, CancelacionFecha, TipoDocto, total.ToDouble(), UsuarioActual.Empresa.CvePAC, EsRefacturacion: EsRefacturacion, FolioSustitucion: FolioSustitucion, CveMotivoCancelacion : CveMotivoSustitucion); //sb.AppendFormat("{0}
", respCancelacion.Mensaje); if (!respCancelacion.HuboError) @@ -384,7 +401,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas { CveEstatus = 5; - var respCancelacion = CancelarDocumento(CveVenta, CveEstatus, CveCliente, Folio, uuid, CancelacionAcuse, CancelacionFecha, TipoDocto, total.ToDouble(), UsuarioActual.Empresa.CvePAC, EsRefacturacion: EsRefacturacion, FolioSustitucion: FolioSustitucion); + var respCancelacion = CancelarDocumento(CveVenta, CveEstatus, CveCliente, Folio, uuid, CancelacionAcuse, CancelacionFecha, TipoDocto, total.ToDouble(), UsuarioActual.Empresa.CvePAC, EsRefacturacion: EsRefacturacion, FolioSustitucion: FolioSustitucion, CveMotivoCancelacion: CveMotivoSustitucion); //sb.AppendFormat("{0}
", respCancelacion.Mensaje); if (!respCancelacion.HuboError)