private int TraerEstatusSAT(string uuid, SAT.CFDI.Cliente.Procesamiento.ServicioCancelacionCFDI.Acuse acuse) { int result; try { if (acuse.Folios != null && acuse.Folios.Length > 0) { SAT.CFDI.Cliente.Procesamiento.ServicioCancelacionCFDI.AcuseFolios[] folios = acuse.Folios; for (int i = 0; i < folios.Length; i++) { SAT.CFDI.Cliente.Procesamiento.ServicioCancelacionCFDI.AcuseFolios acuseFoliose = folios[i]; if (acuseFoliose.UUID == uuid) { result = Convert.ToInt32(acuseFoliose.EstatusUUID); return(result); } } } else if (!string.IsNullOrEmpty(acuse.CodEstatus)) { result = Convert.ToInt32(acuse.CodEstatus); return(result); } result = 0; } catch (Exception err) { Cancelador.Logger.Error("(TraerEstatusSAT) Error al intentar parsear el XML de respuesta SAT, Err:" + err); result = 104; } return(result); }
public RespuestaCancelacion Cancelar(string requestCancelacion) { Cancelador.Logger.Info(requestCancelacion); AccesoServicios serv = new AccesoServicios(); XmlSerializer ser = new XmlSerializer(typeof(SAT.CFDI.Cliente.Procesamiento.ServicioCancelacionCFDI.Cancelacion), "http://cancelacfd.sat.gob.mx"); SAT.CFDI.Cliente.Procesamiento.ServicioCancelacionCFDI.Cancelacion cancelacion = null; RespuestaCancelacion result; try { cancelacion = (ser.Deserialize(new StringReader(requestCancelacion)) as SAT.CFDI.Cliente.Procesamiento.ServicioCancelacionCFDI.Cancelacion); NtLinkTimbrado nlt = new NtLinkTimbrado(); } catch (SerializationException ee) { Cancelador.Logger.Error(ee); result = new RespuestaCancelacion { Acuse = null, MensajeError = "Request mal formado " + ee.Message, StatusUuids = new List <StatusUuid>() }; return(result); } catch (Exception ee2) { Cancelador.Logger.Error(ee2); result = new RespuestaCancelacion { Acuse = null, MensajeError = "Request mal formado ", StatusUuids = new List <StatusUuid>() }; return(result); } SAT.CFDI.Cliente.Procesamiento.ServicioCancelacionCFDI.Acuse respuesta = serv.CancelaCfdi(cancelacion); List <StatusUuid> res = new List <StatusUuid>(); MemoryStream acuseStream = new MemoryStream(); XmlSerializer xmlSerializer = new XmlSerializer(typeof(SAT.CFDI.Cliente.Procesamiento.ServicioCancelacionCFDI.Acuse)); xmlSerializer.Serialize(acuseStream, respuesta); acuseStream.Seek(0L, SeekOrigin.Begin); StreamReader acuseReader = new StreamReader(acuseStream); string acuse = acuseReader.ReadToEnd(); Cancelador.Logger.Info(acuse); if (respuesta.Folios != null && respuesta.Folios.Length > 0) { SAT.CFDI.Cliente.Procesamiento.ServicioCancelacionCFDI.AcuseFolios[] folios = respuesta.Folios; for (int i = 0; i < folios.Length; i++) { SAT.CFDI.Cliente.Procesamiento.ServicioCancelacionCFDI.AcuseFolios acuseFoliose = folios[i]; NtLinkTimbrado tim = new NtLinkTimbrado(); TimbreWs33 timbre = tim.ObtenerTimbre(acuseFoliose.UUID); if (timbre == null) { TimbreWsHistorico timbreHist = tim.ObtenerTimbreHist(acuseFoliose.UUID); if (timbreHist != null) { timbre = new TimbreWs33(); timbre.RfcEmisor = timbreHist.RfcEmisor; timbre.RfcReceptor = timbreHist.RfcReceptor; timbre.AcuseCancelacion = timbreHist.AcuseCancelacion; timbre.IdTimbre = timbreHist.IdTimbre; timbre.Uuid = timbreHist.Uuid; timbre.StrError = "Hist"; } } if (timbre != null) { if (acuseFoliose.EstatusUUID == "201" || acuseFoliose.EstatusUUID == "202") { timbre.Status = new int?(2); } timbre.AcuseCancelacion = acuse; tim.GuardarTimbre(timbre); res.Add(new StatusUuid { Uuid = acuseFoliose.UUID, Status = acuseFoliose.EstatusUUID }); } } } RespuestaCancelacion resultado = new RespuestaCancelacion { Acuse = acuse, StatusUuids = res }; result = resultado; return(result); }