public virtual void ExportCharges() { Charges charges2 = null; try { _invoice_conditions.Orders.Clear(); _invoice_conditions.Orders.NewOrder("Vencimiento", System.ComponentModel.ListSortDirection.Ascending, typeof(Charge)); ChargeList cobros = ChargeList.GetList(_invoice_conditions, true); //Hacen falta todas porque un cobro puede estar asociado a una factura que no este en las condiciones del filtro _invoices = OutputInvoiceList.GetList(false); _clients = (_clients == null) ? ClienteList.GetList(false) : _clients; _expedients = ExpedienteList.GetList(false); foreach (ChargeInfo item in cobros) { if (item.EEstado == EEstado.Anulado) { continue; } LineaRegistro lr = _registry.LineaRegistros.NewItem(_registry, item); switch (item.ETipoCobro) { case ETipoCobro.Cliente: { BuildChargeAccountingEntry(item, lr); BuildFinalcialCashBookChargeAccountingEntry(item); } break; case ETipoCobro.REA: { BuildREAChargeAccountingEntry(item, lr); } break; } _accounting_entry++; } //Cambiamos el estado de las cobros contabilizados charges2 = Charges.GetList(_invoice_conditions, false); FinancialCashList efectos = FinancialCashList.GetList(false); foreach (Charge item in charges2) { if (item.EEstado == EEstado.Anulado) { continue; } if (item.EEstado != EEstado.Exportado) { if (item.EEstadoCobro == EEstado.Charged) { if (item.EMedioPago != EMedioPago.Cheque && item.EMedioPago != EMedioPago.Pagare) { item.EEstado = EEstado.Exportado; } else { FinancialCashInfo efecto = efectos.GetItemByCobro(item.Oid); if (efecto != null && efecto.EEstadoCobro == EEstado.Charged) { item.EEstado = EEstado.Exportado; } } } } } charges2.Save(); } catch (iQException ex) { _registry = null; throw ex; } catch (Exception ex) { _registry = null; throw ex; } finally { if (charges2 != null) { charges2.CloseSession(); } } }
protected string GetChargeAccount(ChargeInfo charge) { string cuenta = string.Empty; string info = string.Empty; try { switch (charge.EMedioPago) { case EMedioPago.Efectivo: CashInfo caja = CashInfo.Get(1); cuenta = caja.CuentaContable; info = String.Format(Resources.Messages.CASH_BOOK_ACCOUNT_NOT_FOUND, caja.Codigo, caja.Nombre); break; case EMedioPago.Tarjeta: if (Invoice.ModulePrincipal.GetUseTPVCountSetting()) { TPVInfo tpv = TPVInfo.Get(charge.OidTPV); cuenta = tpv.CuentaContable; info = tpv.Nombre; info = String.Format(Resources.Messages.TPV_BOOK_ACCOUNT_NOT_FOUND, tpv.Nombre); } else { BankAccountInfo cb = _bank_accounts.GetItem(charge.OidCuentaBancaria); cuenta = cb.CuentaContable; info = String.Format(Resources.Messages.BANK_ACCOUNT_BOOK_ACCOUNT_NOT_FOUND, cb.Valor, cb.Entidad); } break; case EMedioPago.CompensacionFactura: ClienteInfo client = _clients.GetItem(charge.OidCliente); cuenta = client.CuentaContable; info = String.Format(Resources.Messages.CLIENT_BOOK_ACCOUNT_NOT_FOUND, client.Codigo, client.Nombre); break; case EMedioPago.Pagare: case EMedioPago.Cheque: { FinancialCashInfo efecto = FinancialCashInfo.GetByCobro(charge, false); if (efecto.EEstadoCobro == EEstado.Charged) { BankAccountInfo cb = _bank_accounts.GetItem(efecto.OidCuentaBancaria); cuenta = cb.CuentaContable; info = String.Format(Resources.Messages.BANK_ACCOUNT_BOOK_ACCOUNT_NOT_FOUND, cb.Valor, cb.Entidad); } else { cuenta = GetFinancialCashChargesAccount(efecto.Vencimiento); } } break; default: { BankAccountInfo cb = _bank_accounts.GetItem(charge.OidCuentaBancaria); cuenta = cb.CuentaContable; info = String.Format(Resources.Messages.BANK_ACCOUNT_BOOK_ACCOUNT_NOT_FOUND, cb.Valor, cb.Entidad); } break; } } catch (Exception ex) { if (ex is iQException) { throw ex; } else { throw new iQException("El cobro nº " + charge.Codigo + " no tiene cuenta bancaria asociada"); } } if (cuenta == string.Empty) { throw new iQException(info); } return(cuenta); }