private async void Ejecutar_Click(object sender, RoutedEventArgs e) { System.Windows.Forms.Cursor.Current = Cursors.WaitCursor; //20186C16-C1DC-4717-8F46-407447D225BC = 5 //E6360E58-8BD6-4F80-B65B-8B2098760287 = 6 var response = new DocumentoResponse(); //try //{ // Generar xml y serializar FacturaXml facturaXml = new FacturaXml(); Serializador serializador = new Serializador(); //var invoice = facturaXml.metodoTemp(documento); //response.TramaXmlSinFirma = serializador.GenerateSimpleXML(invoice); response.Exito = true; string xmlTextoPlano = Encoding.UTF8.GetString(Convert.FromBase64String(response.TramaXmlSinFirma)); // Para pruebas // Certificado rutaCertificado = "D:\\certificado\\Certificado-NuevoProveedor\\Wnl2U2wyVk01S2wyMzgzQQ%3d%3d.pfx"; passCertificado = "53P4xfFC8sSeFRmt"; var firmadoRequest = new FirmadoRequest { TramaXmlSinFirma = response.TramaXmlSinFirma, CertificadoDigital = Convert.ToBase64String(File.ReadAllBytes(rutaCertificado)), PasswordCertificado = passCertificado, UnSoloNodoExtension = false }; EnviarDocumentoRequest enviarDocumentoRequest = new EnviarDocumentoRequest() { Ruc = "1073580496", UsuarioSol = "MODDATOS", ClaveSol = "MODDATOS", EndPointUrl = "https://e-beta.sunat.gob.pe/ol-ti-itcpfegem-beta/billService", IdDocumento = "F001-00000001", TipoDocumento = "01", //TramaXmlFirmado = documentoFirmado.TramaXmlFirmado }; var jsonEnvioDocumento = await PostSimple(enviarDocumentoRequest); string waiiiit = string.Empty; //} //catch (Exception ex) //{ // response.MensajeError = ex.Message; // response.Pila = ex.StackTrace; // response.Exito = false; //} }
private async void ToolGenerar_Click(object sender, EventArgs e) { try { Cursor.Current = Cursors.WaitCursor; documentoElectronicoBindingSource.EndEdit(); totalVentaTextBox.Focus(); ISerializador serializador = new Serializador(); DocumentoResponse response = new DocumentoResponse { Exito = false }; switch (_documento.TipoDocumento) { case "07": response = await new GenerarNotaCredito(serializador).Post(_documento); break; case "08": response = await new GenerarNotaDedito(serializador).Post(_documento); break; default: response = await new GenerarFactura(serializador).Post(_documento); break; } if (!response.Exito) { throw new ApplicationException(response.MensajeError); } RutaArchivo = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"{_documento.IdDocumento}.xml"); File.WriteAllBytes(RutaArchivo, Convert.FromBase64String(response.TramaXmlSinFirma)); IdDocumento = _documento.IdDocumento; DialogResult = DialogResult.OK; } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { Cursor.Current = Cursors.Default; } }
public async Task <DocumentoResponse> Generar([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 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([FromBody] 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 DocumentoResponse Post([FromBody] ResumenDiario resumen) { var response = new DocumentoResponse(); try { var summary = Generador.GenerarSummaryDocuments(resumen); var serializador = new Serializador(); response.TramaXmlSinFirma = serializador.GenerarXml(summary); response.Exito = true; } catch (Exception ex) { response.Exito = false; response.MensajeError = ex.Message; response.Pila = ex.StackTrace; } return(response); }
private async void BtnNotaDebito_Click(object sender, EventArgs e) { DatosNDebito(); ISerializador serializador = new Serializador(); DocumentoResponse response = new DocumentoResponse { Exito = false }; response = await new GenerarNotaDedito(serializador).Post(_documento); if (!response.Exito) { throw new ApplicationException(response.MensajeError); } RutaArchivo = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"{_documento.IdDocumento}.xml"); File.WriteAllBytes(RutaArchivo, Convert.FromBase64String(response.TramaXmlSinFirma)); }
public DocumentoResponse Post([FromBody] ComunicacionBaja baja) { var response = new DocumentoResponse(); try { var voidedDocument = Generador.GenerarVoidedDocuments(baja); var serializador = new Serializador(); response.TramaXmlSinFirma = serializador.GenerarXml(voidedDocument); 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); }
public DocumentoResponse Post([FromBody] DocumentoElectronico documento) { var response = new DocumentoResponse(); try { var notaCredito = Generador.GenerarCreditNote(documento); var serializador = new Serializador(); response.TramaXmlSinFirma = serializador.GenerarXml(notaCredito); response.Exito = true; } catch (Exception ex) { response.MensajeError = ex.Message; response.Pila = ex.StackTrace; response.Exito = false; } return(response); }
public static HojaTramiteViewModel HojaTramite(DocumentoResponse response) { HojaTramiteViewModel item = new HojaTramiteViewModel { id_documento = response.id_documento, numero = response.numero, nombre_tipo_documento_tramite = response.tipo_documento.nombre, numero_documento = response.numero_documento, nom_doc = response.nom_doc, persona_crea = response.persona_crea, asunto = response.hoja_tramite.asunto, nombre_tipo_tramite = response.hoja_tramite.nombre_tipo_tramite, nombre_oficina_tramite = response.hoja_tramite.nombre_oficina, numero_HT = response.numero, referencia = response.hoja_tramite.referencia, Hoja_Tramite = response.hoja_tramite.hoja_tramite, id_expediente = response.hoja_tramite.id_expediente, editar = response.hoja_tramite.editar }; return(item); }
public string PostResumen(List <Data_Documentos> data_Documentos) { string mensajeRespuesta = string.Empty; try { GenerarResumenDiario generarResumenDiario = new GenerarResumenDiario(); ResumenDiario resumenDiario = generarResumenDiario.Data(data_Documentos); DocumentoResponse response = generarResumenDiario.Post(resumenDiario); if (!response.Exito) { Data_Log data_Log = new Data_Log() { DetalleError = response.MensajeError, Comentario = $"El XML con identificador: {resumenDiario.IdDocumento} no se pudo generar", IdUser_Empresa = data_Usuario.IdUser_Empresa }; data_Log.Create_Log(); } else { string rutaArchivo = Path.Combine(data_Documentos[0].Ruta, $"{resumenDiario.IdDocumento}.xml"); Firmar firmar = new Firmar(); FirmadoRequest firmadoRequest = firmar.Data(data_Usuario.IdAccesosSunat, response.TramaXmlSinFirma); FirmadoResponse firmadoResponse = firmar.Post(firmadoRequest, true); // Ya se obtuvo el documento firmado if (firmadoResponse.Exito) // Comprobamos que se haya firmado de forma correcta { EnviarSunat enviarSunat = new EnviarSunat(); EnviarDocumentoRequest enviarDocumentoRequest = enviarSunat.Data(firmadoResponse.TramaXmlFirmado, data_Documentos[0], GetURL("03")); string nombreZip = $"{resumenDiario.Emisor.NroDocumento}-{resumenDiario.IdDocumento}"; EnviarResumenResponse enviarResumenResponse = enviarSunat.Post_Figurativo(enviarDocumentoRequest, nombreZip); if (enviarResumenResponse.Exito) // Comprobar envío a sunat { ConsultaConstanciaRequest consultaConstanciaRequest = new ConsultaConstanciaRequest() { Ruc = enviarDocumentoRequest.Ruc, UsuarioSol = enviarDocumentoRequest.UsuarioSol, ClaveSol = enviarDocumentoRequest.ClaveSol, EndPointUrl = " https://e-factura.sunat.gob.pe/ol-it-wsconscpegem/billConsultService" }; Consultar consultar = new Consultar(); EnviarDocumentoResponse enviarDocumentoResponse = consultar.Post_Constancia(consultaConstanciaRequest); if (enviarDocumentoResponse.Exito) { mensajeRespuesta = $"El resumen diario ha realizado con éxito, detalle: {enviarDocumentoResponse.MensajeRespuesta}"; } else { mensajeRespuesta = "El resumen diario ha realizado con éxito, pero hemos tenido inconvenietes al obtener" + " el CDR del documento: " + resumenDiario.IdDocumento + ", probablemente se este empleado el usuario MODDATOS," + "para obtener el CDR debes descargarlo de forma manual en la opción 'Consulta de CDR'"; data_Log = new Data_Log() { DetalleError = mensajeRespuesta, Comentario = $"Ha ocurrido un error al generar el CDR del resumen diario: {resumenDiario.IdDocumento}, probablemente se este empleado MODDATOS", IdUser_Empresa = data_Usuario.IdUser_Empresa }; data_Log.Create_Log(); } Data_DocumentoFigurativo data_DocumentoFigurativo = new Data_DocumentoFigurativo() { XMLFirmado = firmadoResponse.TramaXmlFirmado, Tipo = "Resumen diario", ComentarioDocumento = mensajeRespuesta, Identificador = resumenDiario.IdDocumento, NumeroTicket = enviarResumenResponse.NroTicket, CdrSunat = enviarDocumentoResponse.TramaZipCdr ?? string.Empty }; if (!data_DocumentoFigurativo.Create_DocumentoFigurativo()) { data_Log = new Data_Log() { DetalleError = "Error inesperado en la base de datos", Comentario = "Ha ocurrido un error al guardar el registro del resumen diario", IdUser_Empresa = data_Usuario.IdUser_Empresa }; data_Log.Create_Log(); } else { Data_DocumentoFigurativo dataUnion_DocumentoFigurativo; Data_Documentos updateDocumento; foreach (var data_Documento in data_Documentos) { dataUnion_DocumentoFigurativo = new Data_DocumentoFigurativo() { IdDocumentoFigurativo = data_DocumentoFigurativo.SCOPE_IDENTITY_VALUE, IdDocumento = data_Documento.IdDocumento }; if (!dataUnion_DocumentoFigurativo.Create_Figurativo_Documentos()) { data_Log = new Data_Log() { DetalleError = $"Detalle de tablas: Documentos {data_Documento.IdDocumento},{data_Documento.SerieCorrelativo} con la " + $"tabla Figurativo_Documentos {data_DocumentoFigurativo.SCOPE_IDENTITY_VALUE}, {data_DocumentoFigurativo.Identificador} ", Comentario = "Ha ocurrido un error al guardar el registro del resumen diario, en la tabla de unión", IdUser_Empresa = data_Usuario.IdUser_Empresa }; data_Log.Create_Log(); } updateDocumento = new Data_Documentos() { IdDocumento = data_Documento.IdDocumento, EnviadoSunat = true, EstadoSunat = "Aceptado", ComentarioDocumento = $"El documento figura dentro del resumen diario con el código de identificación: {data_DocumentoFigurativo.Identificador}", ComunicacionBaja = false, }; if (!updateDocumento.Update_Documento()) { data_Log = new Data_Log() { DetalleError = $"No se ha podido actualizar el documento{data_Documento.IdDocumento}, {data_Documento.SerieCorrelativo} para indicar que resumen diario", Comentario = "Error en la base de datos", IdUser_Empresa = data_Usuario.IdUser_Empresa }; data_Log.Create_Log(); } } } } else { mensajeRespuesta = enviarResumenResponse.MensajeError; data_Log = new Data_Log() { DetalleError = enviarResumenResponse.MensajeError, Comentario = "Error al crear resumen diario", IdUser_Empresa = data_Usuario.IdUser_Empresa }; data_Log.Create_Log(); } } else { data_Log = new Data_Log() { DetalleError = response.MensajeError, Comentario = "Error al firmar el documento", IdUser_Empresa = data_Usuario.IdUser_Empresa }; data_Log.Create_Log(); } } } catch (Exception ex) { var msg = string.Concat(ex.InnerException?.Message, ex.Message); data_Log = new Data_Log() { DetalleError = $"Detalle del error: {msg}", Comentario = "Error al procesar el envío del documento", IdUser_Empresa = data_Usuario.IdUser_Empresa }; data_Log.Create_Log(); mensajeRespuesta = $"Detalle del error: {msg}"; } return(mensajeRespuesta); }
private void CrearFactura() { try { _documento = new DocumentoElectronico { Emisor = CrearEmisor(), Receptor = new Contribuyente { NroDocumento = "20100039207", TipoDocumento = "6", NombreLegal = "RANSA COMERCIAL S.A." }, IdDocumento = "FF11-001", FechaEmision = DateTime.Today.AddDays(-5).ToString(FormatoFecha), Moneda = "PEN", MontoEnLetras = "SON CIENTO DIECIOCHO SOLES CON 0/100", CalculoIgv = 0.18m, CalculoIsc = 0.10m, CalculoDetraccion = 0.04m, TipoDocumento = "01", TotalIgv = 18, TotalVenta = 118, Gravadas = 100, Items = new List <DetalleDocumento> { new DetalleDocumento { Id = 1, Cantidad = 5, PrecioReferencial = 20, PrecioUnitario = 20, TipoPrecio = "01", CodigoItem = "1234234", Descripcion = "Arroz Costeño", UnidadMedida = "KG", Impuesto = 18, TipoImpuesto = "10", // Gravada TotalVenta = 100, Suma = 100 } } }; TxtResultado.Text = "Generando XML...."; var requestInvoice = new RestRequest("GenerarFactura", Method.POST) { RequestFormat = DataFormat.Json }; requestInvoice.AddBody(_documento); _client.ExecuteAsync <DocumentoResponse>(requestInvoice, response => { _documentoResponse = response.Data; Dispatcher.BeginInvoke(() => { TxtResultado.Text = _documentoResponse.Exito ? "XML Generado" : _documentoResponse.MensajeError; BtnFirmar.IsEnabled = _documentoResponse.Exito; }); }); } catch (Exception ex) { TxtResultado.Text = ex.Message; } }