Example #1
0
        public List <object> CancelarAcuseStatus(InfoATimbrar infoATimbrar, DBContextAdapter dbContext)
        {
            datosCancelados = new List <object>();
            try
            {
                cUUIDCancelado UUIDCancelado = null;

                WsSolucionfactibleCancelar.Cancelacion Cancelacion            = new WsSolucionfactibleCancelar.Cancelacion();
                WsSolucionfactibleCancelar.StatusCancelacionResponse response = new WsSolucionfactibleCancelar.StatusCancelacionResponse();
                BITCancelacion bITCancelacion = new BITCancelacion();
                Cancelacion.Url = infoATimbrar.urlWebServices.Substring(0, infoATimbrar.urlWebServices.LastIndexOf("/") + 1) + "Cancelacion ";
                XmlDocument      xmlAcuse = new XmlDocument();
                List <InfoExtra> extras   = infoATimbrar.infoExtras;

                this.Url         = infoATimbrar.urlWebServices;
                this.Usuario     = infoATimbrar.usuario;
                this.Password    = infoATimbrar.password;
                this.PasswordCSD = infoATimbrar.passwordKey;
                this.KeyCSD      = infoATimbrar.archivoKey;
                this.CertCSD     = infoATimbrar.archivoPfx;


                for (int i = 0; i < extras.Count; i++)
                {
                    this.RFC            = extras[i].rfcEmisor;
                    this.folio          = extras[i].folio;
                    this.serie          = extras[i].serie;
                    this.cfdirecibo_id  = extras[i].cfdirecibo_id;
                    this.UsuarioSistema = extras[i].usuario;


                    response = Cancelacion.getStatusCancelacionAsincrona(this.Usuario, this.Password, extras[i].UUID, null);
                    switch (response.status)
                    {
                    case 200:

                        bITCancelacion.fechaYHora    = DateTime.Now;
                        bITCancelacion.usuario       = this.UsuarioSistema;
                        bITCancelacion.proceso       = ProcesoBitcancelacion.GETSTATUSCANCELACION;
                        bITCancelacion.status        = StatusBitcancelacion.ObtuvoAcuse;
                        bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                        bITCancelacion.statusMsj     = "[" + response.status.ToString() + "] " + response.mensaje;
                        bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                        MemoryStream msXMLT = new MemoryStream(response.acuseSat);
                        msXMLT.Position = 0;
                        xmlAcuse.Load(msXMLT);

                        UUIDCancelado           = new cUUIDCancelado();
                        UUIDCancelado.UUID      = extras[i].UUID;
                        UUIDCancelado.status    = "100";
                        UUIDCancelado.statusSAT = StatusXmlSat.SOLICITUDREGISTRADA;
                        UUIDCancelado.Acuse     = System.Text.Encoding.UTF8.GetBytes(xmlAcuse.OuterXml);
                        datosCancelados.Add(UUIDCancelado);
                        break;

                    case 202:
                        bITCancelacion.fechaYHora    = DateTime.Now;
                        bITCancelacion.usuario       = this.UsuarioSistema;
                        bITCancelacion.proceso       = ProcesoBitcancelacion.GETSTATUSCANCELACION;
                        bITCancelacion.status        = StatusBitcancelacion.SolicitudRegistrada;
                        bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                        bITCancelacion.statusMsj     = "[" + response.status.ToString() + "] " + response.mensaje;
                        bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                        UUIDCancelado               = cancelar(extras[i].UUID, dbContext);
                        UUIDCancelado.UUID          = extras[i].UUID;
                        UUIDCancelado.statusSAT     = StatusXmlSat.SOLICITUDREGISTRADA;
                        UUIDCancelado.status        = "100";
                        UUIDCancelado.observaciones = "";
                        datosCancelados.Add(UUIDCancelado);
                        break;

                    case 204:

                        bITCancelacion.fechaYHora    = DateTime.Now;
                        bITCancelacion.usuario       = this.UsuarioSistema;
                        bITCancelacion.proceso       = ProcesoBitcancelacion.GETSTATUSCANCELACION;
                        bITCancelacion.status        = StatusBitcancelacion.NoCancelable;
                        bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                        bITCancelacion.statusMsj     = "[" + response.status.ToString() + "] " + response.mensaje;
                        bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                        UUIDCancelado               = new cUUIDCancelado();
                        UUIDCancelado.UUID          = extras[i].UUID;
                        UUIDCancelado.statusSAT     = StatusXmlSat.NOCANCELABLE;
                        UUIDCancelado.status        = "100";
                        UUIDCancelado.observaciones = "[" + response.status.ToString() + "] " + response.mensaje;
                        datosCancelados.Add(UUIDCancelado);
                        break;

                    case 211:
                        bITCancelacion.fechaYHora    = DateTime.Now;
                        bITCancelacion.usuario       = this.UsuarioSistema;
                        bITCancelacion.proceso       = ProcesoBitcancelacion.GETSTATUSCANCELACION;
                        bITCancelacion.status        = StatusBitcancelacion.EnProcesoAceptacion;
                        bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                        bITCancelacion.statusMsj     = "[" + response.status.ToString() + "] " + response.mensaje;
                        bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                        UUIDCancelado               = new cUUIDCancelado();
                        UUIDCancelado.UUID          = extras[i].UUID;
                        UUIDCancelado.statusSAT     = StatusXmlSat.ENPROCESOACEPTACION;
                        UUIDCancelado.status        = "100";
                        UUIDCancelado.observaciones = "[" + response.status.ToString() + "] " + response.mensaje;
                        datosCancelados.Add(UUIDCancelado);
                        break;

                    case 213:

                        bITCancelacion.fechaYHora    = DateTime.Now;
                        bITCancelacion.usuario       = this.UsuarioSistema;
                        bITCancelacion.proceso       = ProcesoBitcancelacion.GETSTATUSCANCELACION;
                        bITCancelacion.status        = StatusBitcancelacion.SolicitudRechazada;
                        bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                        bITCancelacion.statusMsj     = "[" + response.status.ToString() + "] " + response.mensaje;
                        bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                        UUIDCancelado               = new cUUIDCancelado();
                        UUIDCancelado.UUID          = extras[i].UUID;
                        UUIDCancelado.statusSAT     = StatusXmlSat.SOLICITUDRECHAZADA;
                        UUIDCancelado.status        = "100";
                        UUIDCancelado.observaciones = "[" + response.status.ToString() + "] " + response.mensaje;
                        datosCancelados.Add(UUIDCancelado);
                        break;

                    default:
                        bITCancelacion.fechaYHora    = DateTime.Now;
                        bITCancelacion.usuario       = this.UsuarioSistema;
                        bITCancelacion.proceso       = ProcesoBitcancelacion.GETSTATUSCANCELACION;
                        bITCancelacion.status        = StatusBitcancelacion.SolicitudRegistrada;
                        bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                        bITCancelacion.statusMsj     = "[" + response.status.ToString() + "] " + response.mensaje;
                        bitCancelacionDAO.agregar(bITCancelacion, dbContext);


                        UUIDCancelado               = new cUUIDCancelado();
                        UUIDCancelado.UUID          = extras[i].UUID;
                        UUIDCancelado.status        = "160";
                        UUIDCancelado.statusSAT     = StatusXmlSat.SOLICITUDREGISTRADA;
                        UUIDCancelado.observaciones = "Error al obtener el status de la cancelación: [" + response.status.ToString() + "] " + response.mensaje;
                        datosCancelados.Add(UUIDCancelado);
                        break;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(datosCancelados);
        }
Example #2
0
        public cUUIDCancelado CancelarAcuseStatusUno(string UUID, DBContextAdapter dbContext)
        {
            cUUIDCancelado UUIDCancelado  = null;
            BITCancelacion bITCancelacion = new BITCancelacion();

            try {
                WsSolucionfactibleCancelar.Cancelacion Cancelacion            = new WsSolucionfactibleCancelar.Cancelacion();
                WsSolucionfactibleCancelar.StatusCancelacionResponse response = new WsSolucionfactibleCancelar.StatusCancelacionResponse();

                Cancelacion.Url = this.Url.Substring(0, this.Url.LastIndexOf("/") + 1) + "Cancelacion ";
                XmlDocument xmlAcuse = new XmlDocument();
                response = Cancelacion.getStatusCancelacionAsincrona(this.Usuario, this.Password, UUID, null);
                switch (response.status)
                {
                case 200:

                    bITCancelacion.fechaYHora    = DateTime.Now;
                    bITCancelacion.usuario       = this.UsuarioSistema;
                    bITCancelacion.proceso       = ProcesoBitcancelacion.GETSTATUSCANCELACION;
                    bITCancelacion.status        = StatusBitcancelacion.ObtuvoAcuse;
                    bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                    bITCancelacion.statusMsj     = response.mensaje;
                    bitCancelacionDAO.agregar(bITCancelacion, dbContext);


                    /* MemoryStream msXMLT = new MemoryStream(response.acuseSat);
                     * msXMLT.Position = 0;
                     * xmlAcuse.Load(msXMLT); */

                    UUIDCancelado           = new cUUIDCancelado();
                    UUIDCancelado.UUID      = UUID;
                    UUIDCancelado.status    = "100";
                    UUIDCancelado.statusSAT = StatusXmlSat.SOLICITUDREGISTRADA;
                    UUIDCancelado.Acuse     = System.Text.Encoding.UTF8.GetBytes(xmlAcuse.OuterXml);
                    break;

                case 202:

                    bITCancelacion.fechaYHora    = DateTime.Now;
                    bITCancelacion.usuario       = this.UsuarioSistema;
                    bITCancelacion.proceso       = ProcesoBitcancelacion.GETSTATUSCANCELACION;
                    bITCancelacion.status        = StatusBitcancelacion.SolicitudRegistrada;
                    bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                    bITCancelacion.statusMsj     = response.mensaje;
                    bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                    UUIDCancelado               = cancelar(UUID, dbContext);
                    UUIDCancelado.UUID          = UUID;
                    UUIDCancelado.statusSAT     = StatusXmlSat.SOLICITUDREGISTRADA;
                    UUIDCancelado.status        = "100";
                    UUIDCancelado.observaciones = "";
                    break;

                case 204:

                    bITCancelacion.fechaYHora    = DateTime.Now;
                    bITCancelacion.usuario       = this.UsuarioSistema;
                    bITCancelacion.proceso       = ProcesoBitcancelacion.GETSTATUSCANCELACION;
                    bITCancelacion.status        = StatusBitcancelacion.NoCancelable;
                    bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                    bITCancelacion.statusMsj     = response.mensaje;
                    bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                    UUIDCancelado               = new cUUIDCancelado();
                    UUIDCancelado.UUID          = UUID;
                    UUIDCancelado.statusSAT     = StatusXmlSat.NOCANCELABLE;
                    UUIDCancelado.status        = "100";
                    UUIDCancelado.observaciones = "[" + response.status.ToString() + "] " + response.mensaje;
                    break;

                case 211:
                    bITCancelacion.fechaYHora    = DateTime.Now;
                    bITCancelacion.usuario       = this.UsuarioSistema;
                    bITCancelacion.proceso       = ProcesoBitcancelacion.GETSTATUSCANCELACION;
                    bITCancelacion.status        = StatusBitcancelacion.EnProcesoAceptacion;
                    bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                    bITCancelacion.statusMsj     = response.mensaje;
                    bitCancelacionDAO.agregar(bITCancelacion, dbContext);


                    UUIDCancelado               = new cUUIDCancelado();
                    UUIDCancelado.UUID          = UUID;
                    UUIDCancelado.statusSAT     = StatusXmlSat.ENPROCESOACEPTACION;
                    UUIDCancelado.status        = "100";
                    UUIDCancelado.observaciones = "[" + response.status.ToString() + "] " + response.mensaje;
                    break;

                case 213:

                    bITCancelacion.fechaYHora    = DateTime.Now;
                    bITCancelacion.usuario       = this.UsuarioSistema;
                    bITCancelacion.proceso       = ProcesoBitcancelacion.GETSTATUSCANCELACION;
                    bITCancelacion.status        = StatusBitcancelacion.SolicitudRechazada;
                    bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                    bITCancelacion.statusMsj     = response.mensaje;
                    bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                    UUIDCancelado               = new cUUIDCancelado();
                    UUIDCancelado.UUID          = UUID;
                    UUIDCancelado.statusSAT     = StatusXmlSat.SOLICITUDRECHAZADA;
                    UUIDCancelado.status        = "100";
                    UUIDCancelado.observaciones = "[" + response.status.ToString() + "] " + response.mensaje;
                    break;

                default:

                    bITCancelacion.fechaYHora    = DateTime.Now;
                    bITCancelacion.usuario       = this.UsuarioSistema;
                    bITCancelacion.proceso       = ProcesoBitcancelacion.GETSTATUSCANCELACION;
                    bITCancelacion.status        = StatusBitcancelacion.SolicitudRegistrada;
                    bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                    bITCancelacion.statusMsj     = response.mensaje;
                    bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                    UUIDCancelado               = new cUUIDCancelado();
                    UUIDCancelado.UUID          = UUID;
                    UUIDCancelado.status        = "160";
                    UUIDCancelado.statusSAT     = StatusXmlSat.SOLICITUDREGISTRADA;
                    UUIDCancelado.observaciones = "Error al obtener el status de la cancelación: [" + response.status.ToString() + "] " + response.mensaje;
                    break;
                }
            }

            catch (Exception)
            {
                throw;
            }
            return(UUIDCancelado);
        }
Example #3
0
        public cUUIDCancelado cancelar(string UUID, DBContextAdapter dbContext)
        {
            cUUIDCancelado UUIDCancelado = null;

            try
            {
                WsSolucionfactibleCancelar.Cancelacion cancelacion = new WsSolucionfactibleCancelar.Cancelacion();
                WsSolucionfactibleCancelar.CancelacionAsincronoResponse response = new WsSolucionfactibleCancelar.CancelacionAsincronoResponse();
                WsSolucionfactibleCancelar.StatusCancelacionResponse    status   = new  WsSolucionfactibleCancelar.StatusCancelacionResponse();

                BITCancelacion bITCancelacion = new BITCancelacion();
                cancelacion.Url = this.Url.Substring(0, this.Url.LastIndexOf("/") + 1) + "Cancelacion ";

                response = cancelacion.cancelarAsincrono(Usuario, Password, UUID, RFC, "", CertCSD, KeyCSD, PasswordCSD, null);
                switch (response.status)
                {
                case 200:
                    bITCancelacion.fechaYHora    = DateTime.Now;
                    bITCancelacion.usuario       = this.UsuarioSistema;
                    bITCancelacion.proceso       = ProcesoBitcancelacion.CANCELARASINCRONO;
                    bITCancelacion.status        = StatusBitcancelacion.SolicitudRegistrada;
                    bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                    bITCancelacion.statusMsj     = "[" + response.status.ToString() + "] " + response.mensaje;
                    bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                    UUIDCancelado           = new cUUIDCancelado();
                    UUIDCancelado.UUID      = UUID;
                    UUIDCancelado.statusSAT = StatusXmlSat.CANCELABLESINACEPTACION;
                    UUIDCancelado.status    = "200";
                    UUIDCancelado           = CancelarAcuseStatusUno(UUID, dbContext);
                    break;

                case 201:
                case 202:
                case 701:

                    bITCancelacion.fechaYHora    = DateTime.Now;
                    bITCancelacion.usuario       = this.UsuarioSistema;
                    bITCancelacion.proceso       = ProcesoBitcancelacion.CANCELARASINCRONO;
                    bITCancelacion.status        = StatusBitcancelacion.SolicitudRegistrada;
                    bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                    bITCancelacion.statusMsj     = "[" + response.status.ToString() + "] " + response.mensaje;
                    bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                    UUIDCancelado           = new cUUIDCancelado();
                    UUIDCancelado.UUID      = UUID;
                    UUIDCancelado.statusSAT = StatusXmlSat.SOLICITUDREGISTRADA;
                    UUIDCancelado.status    = "100";
                    break;

                case 204:

                    bITCancelacion.fechaYHora    = DateTime.Now;
                    bITCancelacion.usuario       = this.UsuarioSistema;
                    bITCancelacion.proceso       = ProcesoBitcancelacion.CANCELARASINCRONO;
                    bITCancelacion.status        = StatusBitcancelacion.NoCancelable;
                    bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                    bITCancelacion.statusMsj     = "[" + response.status.ToString() + "] " + response.mensaje;
                    bitCancelacionDAO.agregar(bITCancelacion, dbContext);


                    UUIDCancelado               = new cUUIDCancelado();
                    UUIDCancelado.UUID          = UUID;
                    UUIDCancelado.statusSAT     = StatusXmlSat.NOCANCELABLE;
                    UUIDCancelado.status        = "100";
                    UUIDCancelado.observaciones = "[" + response.status.ToString() + "] " + response.mensaje;
                    break;

                case 211:

                    bITCancelacion.fechaYHora    = DateTime.Now;
                    bITCancelacion.usuario       = this.UsuarioSistema;
                    bITCancelacion.proceso       = ProcesoBitcancelacion.CANCELARASINCRONO;
                    bITCancelacion.status        = StatusBitcancelacion.EnProcesoAceptacion;
                    bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                    bITCancelacion.statusMsj     = "[" + response.status.ToString() + "] " + response.mensaje;;
                    bitCancelacionDAO.agregar(bITCancelacion, dbContext);
                    UUIDCancelado               = new cUUIDCancelado();
                    UUIDCancelado.UUID          = UUID;
                    UUIDCancelado.statusSAT     = StatusXmlSat.ENPROCESOACEPTACION;
                    UUIDCancelado.status        = "100";
                    UUIDCancelado.observaciones = "[" + response.status.ToString() + "] " + response.mensaje;
                    break;

                case 213:
                    bITCancelacion.fechaYHora    = DateTime.Now;
                    bITCancelacion.usuario       = this.UsuarioSistema;
                    bITCancelacion.proceso       = ProcesoBitcancelacion.CANCELARASINCRONO;
                    bITCancelacion.status        = StatusBitcancelacion.SolicitudRechazada;
                    bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                    bITCancelacion.statusMsj     = "[" + response.status.ToString() + "] " + response.mensaje;
                    bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                    UUIDCancelado               = new cUUIDCancelado();
                    UUIDCancelado.UUID          = UUID;
                    UUIDCancelado.statusSAT     = StatusXmlSat.SOLICITUDRECHAZADA;
                    UUIDCancelado.status        = "100";
                    UUIDCancelado.observaciones = "[" + response.status.ToString() + "] " + response.mensaje;
                    break;

                default:
                    bITCancelacion.fechaYHora    = DateTime.Now;
                    bITCancelacion.usuario       = this.UsuarioSistema;
                    bITCancelacion.proceso       = ProcesoBitcancelacion.CANCELARASINCRONO;
                    bITCancelacion.status        = StatusBitcancelacion.Indefinido;
                    bITCancelacion.cfdiRecibo_ID = this.cfdirecibo_id;
                    bITCancelacion.statusMsj     = "Error al realizar la cancelación: [" + response.status.ToString() + "] " + response.mensaje;
                    bitCancelacionDAO.agregar(bITCancelacion, dbContext);

                    UUIDCancelado               = new cUUIDCancelado();
                    UUIDCancelado.UUID          = UUID;
                    UUIDCancelado.status        = "160";
                    UUIDCancelado.statusSAT     = StatusXmlSat.INDEFINIDO;
                    UUIDCancelado.observaciones = "Error al realizar la cancelación: [" + response.status.ToString() + "] " + response.mensaje;
                    break;
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(UUIDCancelado);
        }