Pregunta Cálculo del saldo del cliente a partir de los datos de QuickBooks (QBXML)


Estoy trabajando en la construcción de un sitio web simple donde los clientes de mi empresa puedan ver un estado de cuenta de los últimos 12 meses y, por lo tanto, sus saldos actuales. Para lograr esto, utilizaré el Quick Connector Web de QuickBooks para exportar los datos necesarios de nuestros archivos de la compañía QuickBooks a una base de datos MySQL (a través del PHP DevKit de ConsoliBYTE).

Sin embargo, no soy muy versado en QuickBooks, así que mi pregunta es: ¿Qué campos de los que necesitaría almacenar las respuestas QBXML en la base de datos para calcular el saldo exacto de un cliente?

No sé qué tipo de transacción puede contribuir o afectar el saldo (que no sean Facturas), por lo que no sé qué solicitudes QBXML realizar más allá de InvoiceQuery y CustomerQuery.

También soy consciente de esta publicación por Keith Palmer, que sugiere que un balance de factura por sí solo no es necesariamente confiable:

"un saldo de factura puede cambiar SIN cambiar la factura en sí misma (porque el saldo es un campo calculado a partir de otros registros, no un campo en la factura en sí)"

No sé si sería mejor reemplazar todos los datos de Factura en mi base de datos cada vez que se ejecutara el Conector Web, o calcular el saldo de Factura mismo a partir de registros relacionados, en cuyo caso, ¿qué datos necesitaría para calcular el saldo de la factura? ?

Respuestas

La respuesta de @consolibyte parece ser el método más simple para obtener un saldo de cliente, así que lo acepté aunque no sea lo suficientemente detallado para mi uso específico.

La respuesta de @Hpjchobbes podría ser útil para obtener el informe detallado de Balance integrado de QuickBooks.

También agregué mi propia respuesta ya que necesitaba presentar una lista de transacciones completamente detallada. Parece que funciona bien, pero puede haber circunstancias en las que falla.


5
2017-09-20 10:55


origen


Respuestas:


El cálculo de saldos basados ​​únicamente en datos de transacciones puede ser difícil con la API de QuickBooks. Hay muchas cosas que posiblemente deberás tener en cuenta:

  • saldos facturas
  • saldos de notas de crédito
  • cheques
  • saldos iniciales del cliente
  • pagos
  • descuentos de pago
  • Probablemente algunas otras cosas que no puedo pensar en la parte superior de mi cabeza en este momento

Dependiendo de cuántos clientes tenga en QuickBooks, es mejor que consulte a los clientes directamente y luego utilice la Balance nodo devuelto con el registro de cliente en su lugar.


4
2017-09-20 12:21



Es posible que pueda usar un informe de detalles generales e incluso filtrar para que cada cliente obtenga las transacciones que conforman su saldo pendiente. No he usado los informes del SDK, pero deberían imitar el informe en QuickBooks. El informe de Factura abierta debe mostrar cualquier transacción 'abierta' que componga el saldo del cliente.

IGeneralDetailReportQuery report = MsgRequest.AppendGeneralDetailReportQueryRq();
report.DisplayReport.SetValue(false);
report.GeneralDetailReportType.SetValue(ENGeneralDetailReportType.gdrtOpenInvoices);
report.ORReportPeriod.ReportDateMacro.SetValue(ENReportDateMacro.rdmAll);
report.ReportOpenBalanceAsOf.SetValue(ENReportOpenBalanceAsOf.robaoToday);

// Use this to filter for just a specific customer
report.ReportEntityFilter.ORReportEntityFilter.FullNameWithChildren.SetValue("CustomerName");
report.ReportEntityFilter.ORReportEntityFilter.EntityTypeFilter.SetValue(ENEntityTypeFilter.etfCustomer);

4
2017-09-24 18:07



Nota: esto parece funcionar para mi caso de uso, pero no puedo decir con seguridad que sea una solución que cubra todo.

Como necesito presentar estados de cuenta detallados a los clientes, estoy usando un TransactionQuery para importar todas las transacciones de QuickBooks.

Posteriormente, al filtrar las transacciones para el nombre de cuenta "Cuentas por cobrar" aparece una lista precisa de todas las transacciones que contribuyen al saldo del cliente y se puede usar para calcular el saldo sumando la columna "Importe" o para consultar la misma tabla de transacción para líneas individuales Vea las consultas de ejemplo a continuación:

/* Calculate balance from transactions */
SELECT SUM(Amount)
FROM quickbooks_transaction
WHERE EntityRefListID = '$customer_listid'
  AND AccountRefFullName = 'Accounts Receivable';

/* Retrieve line items for a transaction */
SELECT *
FROM quickbooks_transaction
WHERE TxnID = '$transaction_id'
  AND TxnLineID != '';

Supongo que incluso podría SUMAR los montos de las líneas de pedido para calcular un saldo si realmente quisiera, pero debe asegurarse de no incluir las transacciones principales en SUM.


3
2017-09-26 11:17