示例#1
0
        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);
        }
示例#2
0
        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);
        }