/// <summary> /// Ensambla la aceptación o rechazo de un lote de facturas de compra /// _lDocumentos: Lista de dte's /// </summary> /// <param name="loteFacturasCompra">Lote de documentos a procesar</param> public void EnsamblaLote(vwCfdLogFacturaCompra loteFacturasCompra, int evento, String motivoRechazo) { String sTipo = String.Empty; try { OnProgreso(1, "Iniciando..."); //Notifica al suscriptor loteFacturasCompra.Rewind(); //move to first record _sMsj = string.Empty; _iErr = 0; int iMaxErr = 0; _lAcuses.Clear(); _lRespuestas.Clear(); do { //RespuestaEnvio cfdCompra = new RespuestaEnvio() ; //CFDReciboMercaServicio cfdRecibo = new CFDReciboMercaServicio() ; if (evento == Maquina.eventoAcuseProducto) { ArmaRecepcionProducto(loteFacturasCompra, evento, _Param.RutaArchivosTemp); sTipo = "RECIBO"; if (_iErr == 0) { _lAcuses.Add(_reciboProducto); } } if (evento == Maquina.eventoResultadoAceptado || evento == Maquina.eventoResultadoRechazado) { ArmaResultadoDte(loteFacturasCompra, evento, _Param.RutaArchivosTemp, motivoRechazo); //evento resultado: acepta sTipo = "RESULTADO"; if (_iErr == 0) { _lRespuestas.Add(_respuestaResultado); } } OnProgreso(100 / loteFacturasCompra.RowCount, "Doc. compra: " + loteFacturasCompra.Folio + " " + _sMsj); if (_iErr > 0) { iMaxErr++; } _sMsj = String.Empty; _iErr = 0; } while (loteFacturasCompra.MoveNext() && iMaxErr < 10); int numDocs = _lRespuestas.Count() + _lAcuses.Count(); OnProgreso(100, numDocs.ToString() + " comprobante(s) procesados. "); } catch (Exception errorGral) { _sMsj = "Excepción encontrada al formar la respuesta tipo: " + sTipo + " " + errorGral.Message + " [CFDFacturasCompraFabrica.EnsamblaLote] "; _iErr++; OnProgreso(0, _sMsj); } }