public async Task <DocumentoResponse> Post([FromBody] DocumentoElectronico documento) { var response = new DocumentoResponse(); try { var invoice = _documentoXml.Generar(documento); response.TramaXmlSinFirma = await _serializador.GenerarXml(invoice); response.Exito = true; } catch (Exception ex) { response.MensajeError = ex.Message; response.Pila = ex.StackTrace; response.Exito = false; } return(response); }
public async Task <EnviarResumenResponse> Generar(string organization, ComunicacionBaja model) { EmpresaModel empresa = await _repositoryempresa.Get(organization); model.IdDocumento = string.Format("RA-{0:yyyyMMdd}-001", DateTime.Today); model.FechaEmision = DateTime.Today.ToString(FormatoFecha); model.FechaReferencia = DateTime.Today.AddDays(-1).ToString(FormatoFecha); model.Emisor = HelperTo.ToEmisor(empresa); IEstructuraXml summary = _documentoXml.Generar(model); string XmlSinFirma = await _serializador.GenerarXml(summary); CertificadoDigitalModel certificado = await _repositorycert.GetCertificate(organization); FirmadoRequest firmado = HelperTo.ToSignedModel(certificado, XmlSinFirma, true); FirmadoResponse responseFirma = await _certificador.FirmarXml(firmado); ParametroEmpresaModel parametro = await _repositoryparam.GetConfiguration(certificado.Empresa); EnviarDocumentoRequest request = HelperTo.ToSendVoidedDocument(model, parametro, responseFirma); File.WriteAllBytes("voided.xml", Convert.FromBase64String(responseFirma.TramaXmlFirmado)); EnviarResumenResponse response = new EnviarResumenResponse(); var nombreArchivo = $"{request.Ruc}-{request.IdDocumento}"; var tramaZip = await _serializador.GenerarZip(request.TramaXmlFirmado, nombreArchivo); _servicioSunatDocumentos.Inicializar(new ParametrosConexion { Ruc = request.Ruc, UserName = request.UsuarioSol, Password = request.ClaveSol, EndPointUrl = request.EndPointUrl }); RespuestaAsincrono resultado = _servicioSunatDocumentos.EnviarResumen(new DocumentoSunat { NombreArchivo = $"{nombreArchivo}.zip", TramaXml = tramaZip }); if (resultado.Exito) { response.NroTicket = resultado.NumeroTicket; response.Exito = true; response.NombreArchivo = nombreArchivo; } else { response.MensajeError = resultado.MensajeError; response.Exito = false; } //guardar la respuesta return(response); }
public async Task <EnviarDocumentoResponse> Generar(string organization, DocumentoElectronico model) { EmpresaModel empresa = await _repositoryempresa.Get(organization); model.Emisor = HelperTo.ToEmisor(empresa); IEstructuraXml invoice = _documentoXml.Generar(model); string XmlSinFirma = await _serializador.GenerarXml(invoice); CertificadoDigitalModel certificado = await _repositorycert.GetCertificate(organization); FirmadoRequest firmado = HelperTo.ToSignedModel(certificado, XmlSinFirma, false); FirmadoResponse responseFirma = await _certificador.FirmarXml(firmado); ParametroEmpresaModel parametro = await _repositoryparam.GetConfiguration(certificado.Empresa); EnviarDocumentoRequest request = HelperTo.ToSendDocument(model, parametro, responseFirma); File.WriteAllBytes("invoice.xml", Convert.FromBase64String(responseFirma.TramaXmlFirmado)); EnviarDocumentoResponse response = new EnviarDocumentoResponse(); var nombreArchivo = $"{request.Ruc}-{request.TipoDocumento}-{request.IdDocumento}"; var tramaZip = await _serializador.GenerarZip(request.TramaXmlFirmado, nombreArchivo); _servicioSunatDocumentos.Inicializar(new ParametrosConexion { Ruc = request.Ruc, UserName = request.UsuarioSol, Password = request.ClaveSol, EndPointUrl = request.EndPointUrl }); RespuestaSincrono resultado = _servicioSunatDocumentos.EnviarDocumento(new DocumentoSunat { TramaXml = tramaZip, NombreArchivo = $"{nombreArchivo}.zip" }); if (!resultado.Exito) { response.Exito = false; response.MensajeError = resultado.MensajeError; } else { response = await _serializador.GenerarDocumentoRespuesta(resultado.ConstanciaDeRecepcion); File.WriteAllBytes("cdr_invoice.zip", Convert.FromBase64String(response.TramaZipCdr)); // Quitamos la R y la extensión devueltas por el Servicio. response.NombreArchivo = nombreArchivo; } //guardar la respuesta return(response); }
public DocumentoResponse Post(DocumentoElectronico documento, bool sincrono) { var response = new DocumentoResponse(); try { var invoice = _documentoXml.Generar(documento); response.TramaXmlSinFirma = _serializador.GenerarXml(invoice, sincrono); response.Exito = true; } catch (Exception ex) { response.MensajeError = ex.Message; response.Pila = ex.StackTrace; response.Exito = false; } return(response); }
public DocumentoResponse Post(ResumenDiario resumen) { var response = new DocumentoResponse(); try { var summary = _documentoXml.Generar(resumen); response.TramaXmlSinFirma = _serializador.GenerarXml(summary, true); response.Exito = true; } catch (Exception ex) { response.Exito = false; response.MensajeError = ex.Message; response.Pila = ex.StackTrace; } return(response); }
public DocumentoResponse Post(ComunicacionBaja baja) { var response = new DocumentoResponse(); try { var voidedDocument = _documentoXml.Generar(baja); response.TramaXmlSinFirma = _serializador.GenerarXml(voidedDocument, true); response.Exito = true; } catch (Exception ex) { response.MensajeError = ex.Message; response.Pila = ex.StackTrace; response.Exito = false; } return(response); }
public async Task <DocumentoResponse> Post(GuiaRemision documento) { var response = new DocumentoResponse(); try { var notaCredito = _documentoXml.Generar(documento); response.TramaXmlSinFirma = await _serializador.GenerarXml(notaCredito); response.Exito = true; } catch (Exception ex) { response.MensajeError = ex.Message; response.Pila = ex.StackTrace; response.Exito = false; } return(response); }
public async Task <DocumentoResponse> ResumenNuevo([FromBody] ResumenDiarioNuevo resumen) { var response = new DocumentoResponse(); try { // Solucion temporal --> Issue #58 _documentoXml = UnityConfig.GetConfiguredContainer().Resolve <IDocumentoXml>(); var summary = _documentoXml.Generar(resumen); response.TramaXmlSinFirma = await _serializador.GenerarXml(summary); response.Exito = true; } catch (Exception ex) { response.Exito = false; response.MensajeError = ex.Message; response.Pila = ex.StackTrace; } return(response); }