public void ProcesarRepresentacionImpresa() { try { Ad_Comprobante adComprobante = new Ad_Comprobante(); List <En_Archivo> listaComprobante = adComprobante.ComprobantesPendientesGenerarPdf(); if (listaComprobante.Count > 0) { Task[] taskArray = new Task[listaComprobante.Count]; int i = 0; foreach (En_Archivo comprobante in listaComprobante) { En_Archivo comprobanteParam = comprobante; taskArray[i] = Task.Factory.StartNew(() => GenerarPdf(comprobanteParam)); i += 1; } Task.WaitAll(taskArray.ToArray()); } } catch (Exception ex) { log.Error(ex.Message.ToString(), ex); } }
public void ProcesarEnviarComprobantes() { try { Ad_Comprobante adComprobante = new Ad_Comprobante(); List <En_Comprobante> comprobantes = adComprobante.ComprobantesPendientesDeEnvio(); if (comprobantes.Count > 0) { Task[] taskArray = new Task[comprobantes.Count]; int i = 0; foreach (En_Comprobante comprobante in comprobantes) { En_Comprobante comprobanteParam = comprobante; taskArray[i] = Task.Factory.StartNew(() => EnviarComprobante(comprobanteParam)); i += 1; } Task.WaitAll(taskArray.ToArray()); } } catch (Exception ex) { log.Error(ex.Message.ToString(), ex); } }
public void EnviarComprobante(En_Comprobante comprobante) { long idComprobante = comprobante.IdComprobante; Ad_Archivo adArchivo = new Ad_Archivo(); Ad_Comprobante adComprobante = new Ad_Comprobante(); En_Archivo archivo = adArchivo.ObtenerArchivoComprobante(idComprobante); string nombre = archivo.Nombre; byte[] contenido = archivo.Contenido; string carpetaTemporal = adArchivo.ObtenerRutaTemporal("TempENVIO"); string carpetaArchivo = Path.GetFileNameWithoutExtension(nombre); string rutaCarpetaXML = Path.Combine(carpetaTemporal, carpetaArchivo); string rutaArchivoXML = Path.Combine(rutaCarpetaXML, nombre); string rutaArchivoZIP = string.Concat(rutaCarpetaXML, ".zip"); string nombreArchivoZIP = Path.GetFileName(rutaArchivoZIP); string nombreArchivoZipResponse = string.Concat("R-", nombreArchivoZIP); string rutaZipResponse = Path.Combine(carpetaTemporal, nombreArchivoZipResponse); CrearCarpeta(rutaCarpetaXML); CrearArchivo(rutaArchivoXML, contenido); Comprimir(rutaArchivoZIP, rutaCarpetaXML); EliminarCarpeta(rutaCarpetaXML); ServicePointManager.ServerCertificateValidationCallback = (snder, cert, chain, error) => true; byte[] archivoZip = File.ReadAllBytes(rutaArchivoZIP); wsSUNAT.sendBillRequest sendBill = new wsSUNAT.sendBillRequest(); wsSUNAT.billServiceClient billService = new wsSUNAT.billServiceClient(); try { billService.Open(); byte[] archivoResponse = billService.sendBill(nombreArchivoZIP, archivoZip, ""); adComprobante.InsertarCdrPendiente(idComprobante, archivoResponse); billService.Close(); log.Info(string.Format("El comprobante {0}-{1} de la empresa emisora con ruc: {2} se procesó correctamente.", comprobante.TipoComprobante, comprobante.SerieNumero, comprobante.RucEmisor)); } catch (FaultException ex) { if (billService.State == CommunicationState.Opened) { billService.Close(); } string codigo = ex.Code.Name.ToLower().Replace("client.", ""); string mensaje = ex.Message.ToString(); int reintento = adComprobante.QuitarPendienteEnvio(idComprobante, codigo); string mensajeReintento = (reintento == 1) ? "Se dejará de reintentar el envío de éste comprobante." : ""; log.Error(string.Format("El comprobante {0}-{1} de la empresa emisora con ruc: {2} obtuvo el código de error \"{3}\" con mensaje \"{4}\". {5}", comprobante.TipoComprobante, comprobante.SerieNumero, comprobante.RucEmisor, codigo, mensaje, mensajeReintento)); } EliminarArchivo(rutaZipResponse); EliminarArchivo(rutaArchivoZIP); }
public void InsertarRepresentacionImpresa(En_Archivo archivo) { try { Ad_Comprobante adComprobante = new Ad_Comprobante(); adComprobante.InsertarRepresentacionImpresa(archivo); } catch (Exception ex) { log.Error(archivo.NombreXML + " " + ex.Message.ToString(), ex); } }