public List <object> cancelarAcuse(InfoATimbrar infoATimbrar, DBContextAdapter dbContext) { datosCancelados = new List <object>(); cUUIDCancelado UUIDCancelado = null; try { WsSolucionfactibleCancelar.Cancelacion cancelacion = new WsSolucionfactibleCancelar.Cancelacion(); WsSolucionfactibleCancelar.CancelacionAsincronoResponse response = new WsSolucionfactibleCancelar.CancelacionAsincronoResponse(); cancelacion.Url = infoATimbrar.urlWebServices.Substring(0, infoATimbrar.urlWebServices.LastIndexOf("/") + 1) + "Cancelacion "; 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; UUIDCancelado = cancelar(extras[i].UUID, dbContext); datosCancelados.Add(UUIDCancelado); } } catch (Exception) { throw; } return(datosCancelados); }
public List <object> generaTimbres(InfoATimbrar infoATimbrar, DBContextAdapter dbContext) { datosTimbrados = null; error = ""; try { if (infoATimbrar.urlWebServices.Contains("solucionfactible.com")) { SolucionFactible solucionFact = new SolucionFactible(); if (infoATimbrar.tipoOperacion == TipoOperacionWS.TIMBRAR) { datosTimbrados = solucionFact.Timbrar(infoATimbrar); } else if (infoATimbrar.tipoOperacion == TipoOperacionWS.CANCELAR) { datosTimbrados = solucionFact.cancelarAcuse(infoATimbrar, dbContext); } else if (infoATimbrar.tipoOperacion == TipoOperacionWS.CANCELARSTATUS) { datosTimbrados = solucionFact.CancelarAcuseStatus(infoATimbrar, dbContext); } error = solucionFact.error; } } catch (Exception e) { if (error != "") { error = e.Message; } // System.out.println(e.getMessage()); // Utilerias.bitacora(e.getMessage()); } return(datosTimbrados == null ? new List <object>() : datosTimbrados); }
public List <CFDIEmpleado> generaComprobanteV33(TipoNomina tipoNomina, PeriodosNomina periodosNomina, List <CFDIEmpleado> listCFDIEmpleados, ConfiguraTimbrado configuraTimbrado, System.Xml.Xsl.XslCompiledTransform transformerCadenaOriginal, DBContextAdapter dbContextSimple) { Comprobante oComprobante = new Comprobante(); //aqui va que agarre el certificado de donde se tiene configurado ConcepNomDefi conceptoNominaSubsidio = servicioCFDIEmpleado.getConceptoNominaSubsidio(dbContextSimple); /* string pathCer = ruta; * string pathKey = ruta;*/ string pathXML = ruta; // string clavePrivada = null; SelloDigital oSelloDigital = new SelloDigital(); Certificados certificadoActual = new Certificados(); listCFDIEmpleados = listCFDIEmpleados == null ? new List <CFDIEmpleado>() : listCFDIEmpleados; List <object> timbreFiscalDigitales; try { List <DatosEmpleadoComprobate> datosEmpleadoComprobates = new List <DatosEmpleadoComprobate>(); if (listCFDIEmpleados.Count > 0) { RazonesSociales razonSocial = listCFDIEmpleados[0].razonesSociales; int i, j; String nombreFile; certificadoActual = servicioCertificado.certificadoActualId(razonSocial.id, dbContextSimple); StringBuilder pathXmlExistentes = new StringBuilder(); pathXmlExistentes.Append(construyeRutaXML(razonSocial, tipoNomina, periodosNomina)).Append(System.IO.Path.DirectorySeparatorChar); /*******************Busca documentos ya existentes********************/ Comprobante comprobanteExistentes; ConstruyeTimbreFiscalDigital11 timbreDigitalCadenaOrig = null; List <CFDIEmpleado> listCFDIEmpleadosTimbrados = new List <CFDIEmpleado>(); String ruta2 = pathXmlExistentes.ToString(), nombreArchivo; for (i = 0; i < listCFDIEmpleados.Count(); i++) { nombreArchivo = nomenclaturaNombreArchivo(tipoNomina, periodosNomina, listCFDIEmpleados[i]); if (listCFDIEmpleados[i].cfdiRecibo.statusTimbrado == StatusTimbrado.TIMBRADO) { XmlDocument doc = new XmlDocument(); MemoryStream ms = new MemoryStream(listCFDIEmpleados[i].cfdiRecibo.xmlTimbrado); doc.Load(ms); XmlSerializer oXmlSerializar = new XmlSerializer(typeof(Comprobante)); using (XmlReader writer = new XmlNodeReader(doc)) { comprobanteExistentes = (Comprobante)oXmlSerializar.Deserialize(writer); } CreateXML(comprobanteExistentes, string.Concat(ruta2, nombreArchivo)); listCFDIEmpleadosTimbrados.Add(listCFDIEmpleados[i]); } } if (listCFDIEmpleadosTimbrados.Count() > 0) { for (i = 0; i < listCFDIEmpleadosTimbrados.Count; i++) { listCFDIEmpleados.Remove(listCFDIEmpleadosTimbrados[i]); } } Comprobante comprobante = null; ConstruyeNomina12 creaXmlNomina = new ConstruyeNomina12(); Nomina nomina12; if (listCFDIEmpleados.Count > 0) { for (i = 0; i < listCFDIEmpleados.Count; i++) { if (listCFDIEmpleados[i].cfdiRecibo.statusXmlSat == StatusXmlSat.NINGUNO) { listCFDIEmpleados[i].certificadoAsignado = certificadoActual; comprobante = construyeComprobante(listCFDIEmpleados[i]); listCFDIEmpleados[i].cfdiRecibo.fechaEmision = fechaGeneraXML; nomina12 = creaXmlNomina.generaComplementoNomina(listCFDIEmpleados[i], conceptoNominaSubsidio); if (creaXmlNomina.mensajeNomina.noError > 0) { DatosEmpleadoComprobate errorNominaDatos = new DatosEmpleadoComprobate(listCFDIEmpleados[i], comprobante); datosEmpleadoComprobates.Add(new DatosEmpleadoComprobate(listCFDIEmpleados[i], comprobante)); errorNominaDatos.cfdiEmpleado.mensaje = creaXmlNomina.mensajeNomina.error; } else { comprobante = agregarComplementoNomina(comprobante, nomina12); datosEmpleadoComprobates.Add(new DatosEmpleadoComprobate(listCFDIEmpleados[i], comprobante)); } } else if (listCFDIEmpleados[i].cfdiRecibo.statusXmlSat == StatusXmlSat.ENVIADO_SAT) { try { XmlDocument doc = new XmlDocument(); MemoryStream ms = new MemoryStream(listCFDIEmpleados[i].cfdiRecibo.xmlTimbrado); doc.Load(ms); XmlSerializer oXmlSerializar = new XmlSerializer(typeof(Comprobante)); using (XmlReader writer = new XmlNodeReader(doc)) { comprobante = (Comprobante)oXmlSerializar.Deserialize(writer); } } catch (Exception) { listCFDIEmpleados[i].certificadoAsignado = certificadoActual; listCFDIEmpleados[i].cfdiRecibo.statusXmlSat = StatusXmlSat.NINGUNO; comprobante = construyeComprobante(listCFDIEmpleados[i]); listCFDIEmpleados[i].cfdiRecibo.fechaEmision = fechaGeneraXML; nomina12 = creaXmlNomina.generaComplementoNomina(listCFDIEmpleados[i], conceptoNominaSubsidio); comprobante = agregarComplementoNomina(comprobante, nomina12); } datosEmpleadoComprobates.Add(new DatosEmpleadoComprobate(listCFDIEmpleados[i], comprobante)); } } CFDIRecibo recibo; for (i = 0; i < datosEmpleadoComprobates.Count; i++) { if (datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo.statusXmlSat == StatusXmlSat.NINGUNO) { nombreFile = nomenclaturaNombreArchivo(tipoNomina, periodosNomina, datosEmpleadoComprobates[i].cfdiEmpleado); CreateXML(datosEmpleadoComprobates[i].comprobante, string.Concat(ruta2, nombreFile)); string cadenaOriginal = getCadenaoriginal(string.Concat(ruta2, nombreFile)); //byte[] ClavePrivada1 = razonSocial.llaveSAT; byte[] ClavePrivada1 = certificadoActual.llavePrivada; datosEmpleadoComprobates[i].comprobante.Sello = oSelloDigital.Sellar(cadenaOriginal, ClavePrivada1, certificadoActual.password); CreateXML(datosEmpleadoComprobates[i].comprobante, string.Concat(ruta2, nombreFile)); recibo = datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo; recibo.total = Convert.ToDouble(datosEmpleadoComprobates[i].comprobante.Total); recibo.folioCFDI = datosEmpleadoComprobates[i].comprobante.Folio; recibo.noCertificado = datosEmpleadoComprobates[i].comprobante.NoCertificado; recibo.sello = (datosEmpleadoComprobates[i].comprobante.Sello); recibo.serieCFDI = (datosEmpleadoComprobates[i].comprobante.Serie); recibo.cadenaCertificado = (datosEmpleadoComprobates[i].comprobante.Certificado); recibo.version = (datosEmpleadoComprobates[i].comprobante.Version); recibo.serie = (datosEmpleadoComprobates[i].comprobante.Serie); datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo = (recibo); datosEmpleadoComprobates[i].archivoByte = System.IO.File.ReadAllBytes(string.Concat(ruta2, nombreFile)); datosEmpleadoComprobates[i].nombreArchivo = nombreFile; } else if (datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo.statusXmlSat == StatusXmlSat.ENVIADO_SAT) { nombreFile = nomenclaturaNombreArchivo(tipoNomina, periodosNomina, datosEmpleadoComprobates[i].cfdiEmpleado); datosEmpleadoComprobates[i].archivoByte = datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo.xmlTimbrado; datosEmpleadoComprobates[i].nombreArchivo = nombreFile; } } List <InfoExtra> infoExtras = new List <InfoExtra>(); InfoExtra infoExtra; for (i = 0; i < datosEmpleadoComprobates.Count; i++) { datosEmpleadoComprobates[i].statusTimbrado = (StatusTimbrado.EN_PROCESO); infoExtra = new InfoExtra(); infoExtra.archivoXML = (datosEmpleadoComprobates[i].archivoByte); infoExtra.nombreArchivo = (datosEmpleadoComprobates[i].nombreArchivo); infoExtra.rfcEmisor = (datosEmpleadoComprobates[i].comprobante.Emisor.Rfc); infoExtra.rfcReceptor = (datosEmpleadoComprobates[i].comprobante.Receptor.Rfc); infoExtra.version = (datosEmpleadoComprobates[i].comprobante.Version); infoExtra.folio = (datosEmpleadoComprobates[i].comprobante.Folio); infoExtras.Add(infoExtra); if (datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo.statusXmlSat == StatusXmlSat.NINGUNO) { datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo.statusXmlSat = (StatusXmlSat.ENVIADO_SAT); datosEmpleadoComprobates[i].cfdiEmpleado.cfdiRecibo.xmlTimbrado = (datosEmpleadoComprobates[i].archivoByte); if (datosEmpleadoComprobates[i].cfdiEmpleado.id != 0) { servicioCFDIEmpleado.actualizar(datosEmpleadoComprobates[i].cfdiEmpleado, dbContextSimple); } } } //timbrar if (infoExtras.Count > 0) { //datos de timbrar desde la razon social TimbrarXmlSat timbrarXmlSat = new TimbrarXmlSat(); InfoATimbrar infoATimbrar = new InfoATimbrar(); infoATimbrar.tipoOperacion = (TipoOperacionWS.TIMBRAR); infoATimbrar.infoExtras = (infoExtras); infoATimbrar.password = configuraTimbrado.contraseña; infoATimbrar.urlWebServices = configuraTimbrado.URL; infoATimbrar.usuario = configuraTimbrado.usuario; timbreFiscalDigitales = timbrarXmlSat.generaTimbres(infoATimbrar, dbContextSimple); if (timbrarXmlSat.error != null) { mensaje.noError = 101; mensaje.resultado = (timbrarXmlSat.error); if (timbreFiscalDigitales.Count > 0) { for (i = 0; i < timbreFiscalDigitales.Count; i++) { j = 0; DatosTimbreFiscalDigital info = (DatosTimbreFiscalDigital)timbreFiscalDigitales[i]; while (j < datosEmpleadoComprobates.Count) { if (info.error != 0) { if (string.Equals((datosEmpleadoComprobates[j].folio == null ? "" : datosEmpleadoComprobates[j].folio), (info.folio == null ? "" : info.folio), StringComparison.OrdinalIgnoreCase)) { datosEmpleadoComprobates[j].cfdiEmpleado.mensaje = info.descripcion; } } j++; } } } } timbreFiscalDigitales = timbreFiscalDigitales == null ? new List <object>() : timbreFiscalDigitales; if (timbreFiscalDigitales.Count > 0) { XmlNode tfd; ConstruyeTimbreFiscalDigital11 digital11 = new ConstruyeTimbreFiscalDigital11(ruta); j = 0; listCFDIEmpleados.Clear(); for (i = 0; i < timbreFiscalDigitales.Count; i++) { while (j < datosEmpleadoComprobates.Count) { DatosTimbreFiscalDigital timbre = (DatosTimbreFiscalDigital)timbreFiscalDigitales[i]; if (string.Equals((datosEmpleadoComprobates[j].folio == null ? "" : datosEmpleadoComprobates[j].folio), (timbre.folio == null ? "" : timbre.folio), StringComparison.OrdinalIgnoreCase)) { if (string.Equals(timbre.status, "200", StringComparison.OrdinalIgnoreCase) || string.Equals(timbre.status, "307", StringComparison.OrdinalIgnoreCase)) { //CreateXMLTimbreFiscal(digital11.contruyeTimbreFiscalDigital(timbreFiscalDigitales[i]), string.Concat(ruta2, "pruebaTimbre.xml")); recibo = datosEmpleadoComprobates[j].cfdiEmpleado.cfdiRecibo; CreateXML(datosEmpleadoComprobates[j].comprobante, string.Concat(ruta2, datosEmpleadoComprobates[j].nombreArchivo)); string cadenaOriginal = getCadenaoriginal(string.Concat(ruta2, datosEmpleadoComprobates[j].nombreArchivo)); recibo.cadenaCertificado = cadenaOriginal; recibo.certificadoTimbrado = (timbre.noCertificadoSAT); recibo.noCertificadoSAT = (timbre.noCertificadoSAT); recibo.fechaHoraTimbrado = (timbre.fechaTimbrado); recibo.selloTimbrado = (timbre.selloSAT); recibo.selloSAT = (timbre.selloSAT); recibo.UUID = (timbre.uuid); recibo.rfcProvCertif = (timbre.referenciasProveedor); recibo.statusTimbrado = (StatusTimbrado.TIMBRADO); recibo.statusXmlSat = (StatusXmlSat.RECIBIDO_SAT); recibo.xmlTimbrado = (timbre.xmlTimbrado); string cadenaOriginalSAT1 = "||" + timbre.version + "|" + timbre.uuid + "|" + timbre.fechaTimbrado + "|" + timbre.referenciasProveedor; if (timbre.descripcion != "") { cadenaOriginalSAT1 += "|" + timbre.descripcion + "|" + timbre.selloCFD + "|" + timbre.noCertificadoSAT + "||"; } else { cadenaOriginalSAT1 += "|" + timbre.selloCFD + "|" + timbre.noCertificadoSAT + "||"; } recibo.cadenaOriginalTimbrado = cadenaOriginalSAT1; datosEmpleadoComprobates[j].cfdiEmpleado.recienTimbrado = (true); datosEmpleadoComprobates[j].cfdiEmpleado.cfdiRecibo = (recibo); if (datosEmpleadoComprobates[i].cfdiEmpleado.id != 0) { servicioCFDIEmpleado.actualizar(datosEmpleadoComprobates[j].cfdiEmpleado, dbContextSimple); } } else { datosEmpleadoComprobates[j].statusTimbrado = StatusTimbrado.ERROR; datosEmpleadoComprobates[j].cfdiEmpleado.cfdiRecibo.mensajeRec = (timbre.descripcion); datosEmpleadoComprobates[j].cfdiEmpleado.cfdiRecibo.statusTimbrado = StatusTimbrado.ERROR; datosEmpleadoComprobates[j].cfdiEmpleado.cfdiRecibo.statusXmlSat = StatusXmlSat.NINGUNO; datosEmpleadoComprobates[j].cfdiEmpleado.cfdiRecibo.xmlTimbrado = null; if (datosEmpleadoComprobates[j].cfdiEmpleado.id != 0) { servicioCFDIEmpleado.actualizar(datosEmpleadoComprobates[j].cfdiEmpleado, dbContextSimple); } } datosEmpleadoComprobates[j].cfdiEmpleado.mensaje = (timbre.descripcion); listCFDIEmpleados.Add(datosEmpleadoComprobates[j].cfdiEmpleado); // datosEmpleadoComprobates.RemoveAt(j); j = 0; break; } else { j++; } } } } } } if (listCFDIEmpleadosTimbrados.Count() > 0) { listCFDIEmpleados.AddRange(listCFDIEmpleadosTimbrados); // Utilerias.ordena(listCFDIEmpleados, uuidCxn); } } } catch (Exception ex) { throw; } return(listCFDIEmpleados); }
public List <object> Timbrar(InfoATimbrar infoATimbrar) { try { WsSolucionfactible.Timbrado timbrar = new WsSolucionfactible.Timbrado(); WsSolucionfactible.CFDICertificacion certificar = new WsSolucionfactible.CFDICertificacion(); WsSolucionfactible.CFDIResultadoCertificacion response = new WsSolucionfactible.CFDIResultadoCertificacion(); List <InfoExtra> extras = infoATimbrar.infoExtras; DatosTimbreFiscalDigital datosTimbreFiscalDigital; datosTimbreFiscalDigitales = new List <object>(); if (extras != null) { List <byte[]> xmlCfdi = new List <byte[]>(); for (int i = 0; i < extras.Count; i++) { timbrar.Url = infoATimbrar.urlWebServices; certificar = timbrar.timbrar(infoATimbrar.usuario, infoATimbrar.password, extras[i].archivoXML, false, true); if (certificar.status == 200) { response = certificar.resultados[0]; byte[] inter_byte = certificar.resultados[0].cfdiTimbrado; if (response.status == 200 | response.status == 307) { datosTimbreFiscalDigital = new DatosTimbreFiscalDigital(); //datosTimbreFiscalDigital.setDescripcion(""); datosTimbreFiscalDigital.error = 0; datosTimbreFiscalDigital.fechaTimbrado = (response.fechaTimbrado.GetValueOrDefault()); datosTimbreFiscalDigital.noCertificadoSAT = (response.certificadoSAT); //datosTimbreFiscalDigital.setSelloCFD(cfdiCertificacion.getSelloCFD()); datosTimbreFiscalDigital.selloSAT = (response.selloSAT); datosTimbreFiscalDigital.uuid = (response.uuid); datosTimbreFiscalDigital.version = (response.versionTFD); datosTimbreFiscalDigital.status = (response.status.ToString()); datosTimbreFiscalDigital.referenciasProveedor = ("SFE0807172W8"); datosTimbreFiscalDigital.folio = (extras[i].folio); datosTimbreFiscalDigital.xmlTimbrado = inter_byte; datosTimbreFiscalDigitales.Add(datosTimbreFiscalDigital); } else { datosTimbreFiscalDigital = new DatosTimbreFiscalDigital(); datosTimbreFiscalDigital.status = Convert.ToString(response.status); datosTimbreFiscalDigital.error = response.status; datosTimbreFiscalDigital.descripcion = response.mensaje; datosTimbreFiscalDigital.folio = (extras[i].folio); datosTimbreFiscalDigitales.Add(datosTimbreFiscalDigital); this.error = response.mensaje; } } else { this.error = certificar.mensaje; } } } } catch (Exception) { throw; } return(datosTimbreFiscalDigitales); }
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); }