From f15fecde54a4decb91c74aa10aed743c8e78a3e1 Mon Sep 17 00:00:00 2001 From: Ahmed Bouhuolia Date: Sun, 2 Jun 2024 13:15:56 +0200 Subject: [PATCH] feat: resource tables printing --- .../controllers/Export/ExportController.ts | 23 ------------------- .../20231108170207_create_documents_table.js | 2 +- packages/server/src/models/Bill.Settings.ts | 16 +++++++++---- .../server/src/models/BillPayment.Settings.ts | 4 ++++ packages/server/src/models/CreditNote.Meta.ts | 16 +++++++------ packages/server/src/models/Item.Settings.ts | 3 +++ .../src/models/PaymentReceive.Settings.ts | 4 ++++ .../server/src/models/SaleReceipt.Settings.ts | 14 +++++++---- .../server/src/models/VendorCredit.Meta.ts | 10 +++++++- .../PaymentsLanding/PaymentMadeActionsBar.tsx | 2 +- packages/webapp/src/hooks/query/import.ts | 1 - 11 files changed, 52 insertions(+), 43 deletions(-) diff --git a/packages/server/src/api/controllers/Export/ExportController.ts b/packages/server/src/api/controllers/Export/ExportController.ts index 0332db879..7ba493453 100644 --- a/packages/server/src/api/controllers/Export/ExportController.ts +++ b/packages/server/src/api/controllers/Export/ExportController.ts @@ -26,7 +26,6 @@ export class ExportController extends BaseController { ], this.validationResult, this.export.bind(this), - this.catchServiceErrors ); return router; } @@ -85,26 +84,4 @@ export class ExportController extends BaseController { next(error); } } - - /** - * Transforms service errors to response. - * @param {Error} - * @param {Request} req - * @param {Response} res - * @param {ServiceError} error - */ - private catchServiceErrors( - error, - req: Request, - res: Response, - next: NextFunction - ) { - if (error instanceof ServiceError) { - return res.status(400).send({ - errors: [{ type: error.errorType }], - }); - } - - next(error); - } } diff --git a/packages/server/src/database/migrations/20231108170207_create_documents_table.js b/packages/server/src/database/migrations/20231108170207_create_documents_table.js index 8ae0cc542..44e2f269c 100644 --- a/packages/server/src/database/migrations/20231108170207_create_documents_table.js +++ b/packages/server/src/database/migrations/20231108170207_create_documents_table.js @@ -3,7 +3,7 @@ exports.up = function (knex) { table.increments('id').primary(); table.string('key').notNullable(); table.string('mime_type').notNullable(); - table.integer('size').unsigned().notNullable(); + table.integer('size').unsigned(); table.string('origin_name'); table.timestamps(); }); diff --git a/packages/server/src/models/Bill.Settings.ts b/packages/server/src/models/Bill.Settings.ts index 890a9635a..0d9e2bda6 100644 --- a/packages/server/src/models/Bill.Settings.ts +++ b/packages/server/src/models/Bill.Settings.ts @@ -10,6 +10,9 @@ export default { importAggregator: 'group', importAggregateOn: 'entries', importAggregateBy: 'billNumber', + print: { + pageTitle: 'Bills', + }, fields: { vendor: { name: 'bill.field.vendor', @@ -83,6 +86,10 @@ export default { }, }, columns: { + billDate: { + name: 'Date', + accessor: 'formattedBillDate', + }, billNumber: { name: 'Bill No.', type: 'text', @@ -91,13 +98,10 @@ export default { name: 'Reference No.', type: 'text', }, - billDate: { - name: 'Date', - type: 'date', - }, dueDate: { name: 'Due Date', type: 'date', + accessor: 'formattedDueDate', }, vendorId: { name: 'Vendor', @@ -111,10 +115,12 @@ export default { exchangeRate: { name: 'Exchange Rate', type: 'number', + printable: false, }, currencyCode: { name: 'Currency Code', type: 'text', + printable: false, }, dueAmount: { name: 'Due Amount', @@ -127,10 +133,12 @@ export default { note: { name: 'Note', type: 'text', + printable: false, }, open: { name: 'Open', type: 'boolean', + printable: false, }, entries: { name: 'Entries', diff --git a/packages/server/src/models/BillPayment.Settings.ts b/packages/server/src/models/BillPayment.Settings.ts index 4d7de9239..d255ac3d2 100644 --- a/packages/server/src/models/BillPayment.Settings.ts +++ b/packages/server/src/models/BillPayment.Settings.ts @@ -77,6 +77,7 @@ export default { paymentDate: { name: 'bill_payment.field.payment_date', type: 'date', + accessor: 'formattedPaymentDate' }, paymentNumber: { name: 'bill_payment.field.payment_number', @@ -94,14 +95,17 @@ export default { currencyCode: { name: 'Currency Code', type: 'text', + printable: false, }, exchangeRate: { name: 'bill_payment.field.exchange_rate', type: 'number', + printable: false, }, statement: { name: 'bill_payment.field.note', type: 'text', + printable: false, }, reference: { name: 'bill_payment.field.reference', diff --git a/packages/server/src/models/CreditNote.Meta.ts b/packages/server/src/models/CreditNote.Meta.ts index 5da0c1d9e..95e8595b9 100644 --- a/packages/server/src/models/CreditNote.Meta.ts +++ b/packages/server/src/models/CreditNote.Meta.ts @@ -20,6 +20,10 @@ export default { importAggregateOn: 'entries', importAggregateBy: 'creditNoteNumber', + print: { + pageTitle: 'Credit Notes', + }, + fields: { customer: { name: 'credit_note.field.customer', @@ -88,36 +92,34 @@ export default { columns: { customer: { name: 'Customer', - type: 'relation', accessor: 'customer.displayName', }, exchangeRate: { name: 'Exchange Rate', - type: 'number', + printable: false, }, creditNoteDate: { name: 'Credit Note Date', - type: 'date', + accessor: 'formattedCreditNoteDate' }, referenceNo: { name: 'Reference No.', - type: 'text', }, note: { name: 'Note', - type: 'text', }, termsConditions: { name: 'Terms & Conditions', - type: 'text', + printable: false, }, creditNoteNumber: { name: 'Credit Note Number', - type: 'text', + printable: false, }, open: { name: 'Open', type: 'boolean', + printable: false, }, entries: { name: 'Entries', diff --git a/packages/server/src/models/Item.Settings.ts b/packages/server/src/models/Item.Settings.ts index 51e217dc0..af8968366 100644 --- a/packages/server/src/models/Item.Settings.ts +++ b/packages/server/src/models/Item.Settings.ts @@ -6,6 +6,9 @@ export default { sortField: 'name', sortOrder: 'DESC', }, + print: { + pageTitle: 'Items', + }, fields: { type: { name: 'item.field.type', diff --git a/packages/server/src/models/PaymentReceive.Settings.ts b/packages/server/src/models/PaymentReceive.Settings.ts index 663b5884d..15d287d66 100644 --- a/packages/server/src/models/PaymentReceive.Settings.ts +++ b/packages/server/src/models/PaymentReceive.Settings.ts @@ -67,10 +67,12 @@ export default { paymentDate: { name: 'payment_receive.field.payment_date', type: 'date', + accessor: 'formattedPaymentDate', }, amount: { name: 'payment_receive.field.amount', type: 'number', + accessor: 'formattedAmount' }, referenceNo: { name: 'payment_receive.field.reference_no', @@ -88,10 +90,12 @@ export default { statement: { name: 'payment_receive.field.statement', type: 'text', + printable: false, }, created_at: { name: 'payment_receive.field.created_at', type: 'date', + printable: false, }, }, fields2: { diff --git a/packages/server/src/models/SaleReceipt.Settings.ts b/packages/server/src/models/SaleReceipt.Settings.ts index 286f61ab2..54230128b 100644 --- a/packages/server/src/models/SaleReceipt.Settings.ts +++ b/packages/server/src/models/SaleReceipt.Settings.ts @@ -11,6 +11,10 @@ export default { importAggregator: 'group', importAggregateOn: 'entries', importAggregateBy: 'receiptNumber', + + print: { + pageTitle: 'Sale Receipts', + }, fields: { amount: { name: 'receipt.field.amount', @@ -81,11 +85,6 @@ export default { }, }, columns: { - amount: { - name: 'receipt.field.amount', - column: 'amount', - type: 'number', - }, depositAccount: { name: 'receipt.field.deposit_account', type: 'text', @@ -117,6 +116,11 @@ export default { type: 'text', printable: false, }, + amount: { + name: 'receipt.field.amount', + accessor: 'formattedAmount', + type: 'number', + }, statement: { name: 'receipt.field.statement', type: 'text', diff --git a/packages/server/src/models/VendorCredit.Meta.ts b/packages/server/src/models/VendorCredit.Meta.ts index b57cc275c..3834bc5ec 100644 --- a/packages/server/src/models/VendorCredit.Meta.ts +++ b/packages/server/src/models/VendorCredit.Meta.ts @@ -20,6 +20,9 @@ export default { importAggregateOn: 'entries', importAggregateBy: 'vendorCreditNumber', + print: { + pageTitle: 'Vendor Credits', + }, fields: { vendor: { name: 'vendor_credit.field.vendor', @@ -89,6 +92,7 @@ export default { exchangeRate: { name: 'Echange Rate', type: 'text', + printable: false, }, vendorCreditNumber: { name: 'Vendor Credit No.', @@ -100,7 +104,7 @@ export default { }, vendorCreditDate: { name: 'Vendor Credit Date', - type: 'date', + accessor: 'formattedVendorCreditDate', }, amount: { name: 'Amount', @@ -109,10 +113,12 @@ export default { creditRemaining: { name: 'Credits Remaining', accessor: 'formattedCreditsRemaining', + printable: false, }, refundedAmount: { name: 'Refunded Amount', accessor: 'refundedAmount', + printable: false, }, invoicedAmount: { name: 'Invoiced Amount', @@ -121,10 +127,12 @@ export default { note: { name: 'Note', type: 'text', + printable: false, }, open: { name: 'Open', type: 'boolean', + printable: false, }, entries: { name: 'Entries', diff --git a/packages/webapp/src/containers/Purchases/PaymentMades/PaymentsLanding/PaymentMadeActionsBar.tsx b/packages/webapp/src/containers/Purchases/PaymentMades/PaymentsLanding/PaymentMadeActionsBar.tsx index 74fd506fd..d7bcad9f9 100644 --- a/packages/webapp/src/containers/Purchases/PaymentMades/PaymentsLanding/PaymentMadeActionsBar.tsx +++ b/packages/webapp/src/containers/Purchases/PaymentMades/PaymentsLanding/PaymentMadeActionsBar.tsx @@ -92,7 +92,7 @@ function PaymentMadeActionsBar({ }; // Handle the print button click. const handlePrintBtnClick = () => { - downloadExportPdf({ resource: 'PaymentMade' }); + downloadExportPdf({ resource: 'BillPayment' }); }; return ( diff --git a/packages/webapp/src/hooks/query/import.ts b/packages/webapp/src/hooks/query/import.ts index 369dfbd6d..2c50d6851 100644 --- a/packages/webapp/src/hooks/query/import.ts +++ b/packages/webapp/src/hooks/query/import.ts @@ -134,7 +134,6 @@ const invalidateResourcesOnImport = ( queryClient: QueryClient, resource: string, ) => { - debugger; switch (resource) { case 'Item': queryClient.invalidateQueries(T.ITEMS);