public void UpdateSaldo() { if (Items.Count == 0) { return; } BankAccountList cuentas = BankAccountList.GetList(false); BankAccountInfo cuenta; foreach (BankAccountInfo item in cuentas) { item.SaldoParcial = item.SaldoInicial; } foreach (BankLineInfo item in Items.Reverse()) { if (item.EEstado == EEstado.Anulado) { item.Saldo = 0; } else { cuenta = cuentas.GetItem(item.OidCuenta); if (cuenta != null) { cuenta.SaldoParcial += item.Importe; } item.Saldo = (cuenta != null) ? cuenta.SaldoParcial : item.Importe; } } }
protected string GetPaymentAccount(PaymentInfo payment) { string cuenta = string.Empty; string info = string.Empty; try { switch (payment.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: { CreditCardInfo tarjeta = CreditCardInfo.Get(payment.OidTarjetaCredito); BankAccountInfo cb = _bank_accounts.GetItem(payment.OidCuentaBancaria); cuenta = (tarjeta.ETipoTarjeta == ETipoTarjeta.Credito) ? tarjeta.CuentaContable : cb.CuentaContable; info = String.Format(Resources.Messages.CREDIT_CARD_BOOK_ACCOUNT_NOT_FOUND, tarjeta.Numeracion, tarjeta.Nombre); } break; case EMedioPago.CompensacionFactura: { IAcreedorInfo provider = _providers.GetItem(payment.OidAgente, payment.ETipoAcreedor); cuenta = provider.CuentaContable; info = String.Format(Resources.Messages.PROVIDER_BOOK_ACCOUNT_NOT_FOUND, provider.Codigo, provider.Nombre); } break; case EMedioPago.Pagare: if (payment.EEstadoPago == EEstado.Pagado) { BankAccountInfo cb = _bank_accounts.GetItem(payment.OidCuentaBancaria); cuenta = cb.CuentaContable; info = String.Format(Resources.Messages.BANK_ACCOUNT_BOOK_ACCOUNT_NOT_FOUND, cb.Valor, cb.Entidad); } else { cuenta = GetFinancialCashPaymentsAccount(payment.Vencimiento); } break; default: { BankAccountInfo cb = _bank_accounts.GetItem(payment.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 pago nº " + payment.Codigo + " no tiene cuenta bancaria asociada"); } } if (cuenta == string.Empty) { throw new iQException(info); } return(Convert.ToInt64(cuenta).ToString()); //Por algún motivo hay cuentas guardadas con un salto de línea al final y da problemas al exportar a contawin }