martes, 21 de febrero de 2012

Transaction Text

The Base > Config > "Transaction Texts" has a desceptively simple funcionality on the face of it yet provides us with a very useful tool. All of our ledgers can now be filled with wonderful texts that include the list I've copy/pasted from Microsoft below:
  • The Date field. To enter the date in this field, type %1.
  • The ID of program used to generate the information field. To enter this information, type %2.
  • The Voucher number field. To enter the voucher number or the vendor invoice number in this field, type %3.
  • Parameters %4 through %6 are reserved for user adjustments. These parameters can be used only by the system administrator.
That is to say you are just going to have to suck it and see for the %4 to %6 values.

However, when the client asks you to put the name of the client/supplier in the %4 field (warning: the transaction 'txt' is of somewhat limited space) they look at you incredulously as you can't give them a quick estimation as to how long it'll take. The problem being that yes, the TransactTxt table and the corresponding TransactionTxt class are very simple but we don't know where they are used. The key, so to speak, is with the LedgerTransTxt enumeration. Find where it is used in the classes and we are good.

My conclusion is that the changes themselves aren't difficult to undertake. It's just finding which classes to change and then applying rigorous testing post development to ensure that we aren't modifying other ledger texts other than what we desire.



The last part of this post is probably uninteresting to you, but these are notes to myself now ;)

The image below are what the analyst selected to add our client/supplier name functionality using the '%4' tag.  I've highlighted the registering of sales service and sales order invoices as an example.  This is a non exhaustive list and there are many other transaction types we can hook our free text on.

And below are indicators as to the changes to the classes I made:

Clientes -> Registrar factura del Pedido de venta

 * LedgerTransTxt::SalesInvoiceLedger : @SYS13480 : Pedido de ventas - Factura, Contabilidad
 - Asientos (LedgerTrans)
 - SalesFormLetter_Invoice.initTransactionTxt(...)

 * LedgerTransTxt::SalesInvoiceCust   : @SYS9935  : Pedido de ventas - Factura, Cliente
 - Cliente transacciones (CustTrans), Asientos (LedgerTrans)
 - CustVendVoucher.setTransactionTxt(...)

Clientes -> Factura de Servicios -> Registrar: 

 * LedgerTransTxt::CustInvoiceLedger  : @SYS57440 : Cliente - Factura, Contabilidad
 - Asientos (LedgerTrans)
 - CustPostInvoice.run(...) -> 169

 * LedgerTransTxt::CustInvoiceCust    : @SYS57441 : Cliente - Factura, Cliente
 - Cliente transacciones (CustTrans), Asientos (LedgerTrans)
 - CustVendVoucher.setTransactionTxt(...)

Proveedores -> Registrar factura del pedido de compra

 * LedgerTransTxt::PurchInvoiceLedger : @SYS2653  : Pedido de compra - Factura, Contabilidad
 - Asientos (LedgerTrans)
 - PurchFormLetter_Invoice.initTransactionTxt(...)

 * LedgerTransTxt::PurchInvoiceVend   : @SYS14768 : Pedido de compra - Factura, Proveedor
 - Proveedor transacciones (VendTrans), Asientos (LedgerTrans)
 - CustVendVoucher.setTransactionTxt(...)

Clientes -> Registrar factura del Pedido de venta con una cantidad negativa

 * LedgerTransTxt::SalesCreditNoteLedger : @SYS6176 : Pedido de ventas - Nota de abono, Contabilidad
 - Asientos (LedgerTrans)
 - SalesFormLetter_Invoice.initTransactionTxt(...)

 * LedgerTransTxt::SalesCreditNoteCust : @SYS9529 : Pedido de ventas - Nota de abono, Cliente
 - Cliente transacciones (CustTrans), Asientos (LedgerTrans)
 - CustVendVoucher.setTransactionTxt(...)

Proveedores -> Registrar factura del Pedido de compra con una cantidad negativa

 * LedgerTransTxt::PurchCreditNoteLedger : @SYS11877 : Pedido de compra - Nota de abono, Contabilidad
 - Asientos (LedgerTrans)
 - PurchFormLetter_Invoice.initTransactionTxt(...)

 * LedgerTransTxt::PurchCreditNoteVend   : @SYS13408 : Pedido de compra - Nota de abono, Proveedor
 - Proveedor transacciones (VendTrans), Asientos (LedgerTrans)
 - CustVendVoucher.setTransactionTxt(...)

Clientes -> Factura de servicios -> Registrar -VE cantidad 

 * LedgerTransTxt::CustCreditNoteLedger : @SYS57442 : Cliente - Nota de abono, Contabilidad  
 - Asientos (LedgerTrans)
 - CustPostInvoice.run(...) -> 169

 * LedgerTransTxt::CustCreditNoteCust   : @SYS57443 : Cliente - Nota de abono, Cliente
 - Cliente transacciones (CustTrans), Asientos (LedgerTrans)
 - CustVendVoucher.setTransactionTxt(...)

Pendiente!

 * LedgerTransTxt::VendCashPayment      : @SYS28685 : Proveedor - Pago en efectivo
 - (VendTransData.cashledgerTransTxt())
 * LedgerTransTxt::CustCashPayment      : @SYS28684 : Cliente - Pago en efectivo
 - (CustTransData.cashledgerTransTxt())

Proveedores -> Diario de Pagos/Cobros -> Propuesta de pago
Proveedores -> Pagares -> Diario de creación de pagares -> Propuesta de pago
Proveedores -> Pagares -> Diario de envíos -> Propuesta de pago
Proveedores -> Pagares -> Diario de liquidación de pagos -> Propuesta de pago
Proveedores -> Diario de Pagos/Cobros -> Liquidación (LedgerJournalTrans.PaymentNotes)
Proveedores -> Pagares -> Diario de creación de pagares -> Liquidación (LedgerJournalTrans.PaymentNotes)


 * LedgerTransTxt::VendPaymentVend    : @SYS1390  : Proveedor - Pago, Proveedor
 - Diario de pagos (LedgerJournalTrans), Proveedor transacciones (VendTrans), Asientos (LedgerTrans)
 - CustVendPaymProposalTransferToJournal.getTransactionText() - Texto de la transacción   (LedgerJournalTrans.Txt)
 - CustVendPaymNote.buildPaymNote() -> 74                     - Nota asociado con el pago (LedgerJournalTrans.PaymentNotes)

Clientes -> Diario de Pagos/Cobros -> Propuesta de pago
Clientes -> Letra de cambio -> Diario de creación de letra de cambio -> Propuesta de pago
Clientes -> Letra de cambio -> Diario de envíos -> Propuesta de pago
Clientes -> Letra de cambio -> Diario de liquidación... -> Propuesta de pago
Clientes -> Diario de Pagos/Cobros -> Liquidación (LedgerJournalTrans.PaymentNotes)
Clientes -> Letra de cambio -> Diario de envíos -> Liquidación (LedgerJournalTrans.PaymentNotes)

 * LedgerTransTxt::CustPaymentCust    : @SYS60760 : Cliente - Pago, Cliente
 - Diario de pagos (LedgerJournalTrans), Cliente transacciones (CustTrans), Asientos (LedgerTrans)
 - CustVendPaymProposalTransferToJournal.getTransactionText() - Texto de la transacción   (LedgerJournalTrans.Txt)
 - CustVendPaymNote.buildPaymNote() -> 74                     - Nota asociado con el pago (LedgerJournalTrans.PaymentNotes)

-------------------
¿¿¿ Not found or used ???
 * LedgerTransTxt::CustBillOfExchangeLedger : @SYS71601 : Cliente - Letra de cambio, contabilidad
 - NOT USED?

 * LedgerTransTxt::CustBillOfExchangeCust   : @SYS71602 : Cliente - Letra de cambio, cliente
 - NOT USED?

 * LedgerTransTxt::VendPaymentLedger        : @SYS14411 : Proveedor - Pago, Contabilidad
 - NOT USED?

 * LedgerTransTxt::VendPromissoryNoteVend   : @SYS71605 : Proveedor - Pagaré, Proveedor
 - NOT USED?

 * LedgerTransTxt::VendPromissoryNoteLedger : @SYS71604 : Proveedor - Pagaré, Contabilidad
 - NOT USED?


No hay comentarios:

Publicar un comentario