@tomei/finance 0.4.18 → 0.4.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.commitlintrc.json +22 -22
- package/.eslintrc.js +72 -72
- package/.husky/commit-msg +4 -4
- package/.husky/pre-commit +4 -4
- package/.prettierrc +4 -4
- package/CONTRIBUTING.md +30 -30
- package/LICENSE +21 -21
- package/README.md +13 -13
- package/configs/config.js +336 -336
- package/dist/document/document.d.ts +1 -1
- package/dist/document/document.js +99 -5
- package/dist/document/document.js.map +1 -1
- package/dist/payment-item/payment-item.js +4 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/invoice-template/assets/css/style.css.map +12 -12
- package/invoice-template/assets/css/style.min.css +1 -1
- package/invoice-template/assets/img/arrow_bg.svg +11 -11
- package/invoice-template/assets/img/coffy_shop_img.svg +18 -18
- package/invoice-template/assets/img/logo_accent.svg +3 -3
- package/invoice-template/assets/img/logo_white.svg +4 -4
- package/invoice-template/assets/img/sign.svg +12 -12
- package/invoice-template/assets/img/tomei-logo.png +0 -0
- package/invoice-template/assets/img/tomei-logo.svg +9 -0
- package/invoice-template/assets/js/html2canvas.min.js +10379 -10379
- package/invoice-template/assets/js/jquery.min.js +1 -1
- package/invoice-template/assets/sass/common/_color_variable.scss +12 -12
- package/invoice-template/assets/sass/common/_typography.scss +178 -178
- package/invoice-template/assets/sass/style.scss +12 -12
- package/invoice-template/index.html +4 -4
- package/migrations/finance-account-migration.js +97 -97
- package/migrations/finance-company-migration.js +29 -29
- package/migrations/finance-customer-migration.js +51 -51
- package/migrations/finance-document-item-migration.js +111 -111
- package/migrations/finance-document-migration.js +116 -116
- package/migrations/finance-payment-item-migration.js +52 -52
- package/migrations/finance-payment-method-migration.js +31 -31
- package/migrations/finance-payment-method-type-migration.js +55 -55
- package/migrations/finance-payment-migration.js +86 -86
- package/migrations/finance-post-history-migration.js +45 -45
- package/nest-cli.json +19 -19
- package/package.json +79 -79
- package/src/account/account.repository.ts +11 -11
- package/src/account/account.ts +264 -264
- package/src/account/interfaces/account-attr.interface.ts +31 -31
- package/src/account-system-entity/account-system-entity.ts +65 -65
- package/src/account-system-entity/post-history.repository.ts +11 -11
- package/src/config.ts +382 -382
- package/src/customer/customer.ts +276 -276
- package/src/customer/finance-customer.repository.ts +13 -13
- package/src/customer/interfaces/customer.repository.interface.ts +3 -3
- package/src/customer/interfaces/finance-customer-attr.interface.ts +10 -10
- package/src/customer/interfaces/finance-customer.repository.interface.ts +4 -4
- package/src/database.ts +15 -15
- package/src/document/document-item.repository.ts +11 -11
- package/src/document/document.repository.ts +11 -11
- package/src/document/document.ts +122 -5
- package/src/document/interfaces/document-attr.interface.ts +28 -28
- package/src/document/interfaces/document-item-attr.interface.ts +22 -22
- package/src/document/interfaces/document-item.repository.interface.ts +4 -4
- package/src/enum/doc-type.enum.ts +8 -8
- package/src/enum/index.ts +17 -17
- package/src/enum/payment-method.enum.ts +3 -3
- package/src/enum/payment-type.enum.ts +4 -4
- package/src/finance-company/finance-company.repository.ts +11 -11
- package/src/finance-company/finance-company.ts +1626 -1626
- package/src/helpers/typeof.ts +29 -29
- package/src/index.ts +30 -30
- package/src/interfaces/account-system.interface.ts +20 -20
- package/src/interfaces/index.ts +3 -3
- package/src/models/account.entity.ts +206 -206
- package/src/models/customer.entity.ts +93 -93
- package/src/models/document-item.entity.ts +143 -143
- package/src/models/document.entity.ts +203 -203
- package/src/models/finance-company.entity.ts +25 -25
- package/src/models/journal-entry.entity.ts +110 -110
- package/src/models/ledger-transaction.entity.ts +148 -148
- package/src/models/payment-item.entity.ts +60 -60
- package/src/models/payment-method-type.entity.ts +70 -70
- package/src/models/payment-method.entity.ts +51 -51
- package/src/models/payment.entity.ts +147 -147
- package/src/models/post-history.entity.ts +41 -41
- package/src/payment/interfaces/payment-attr.interface.ts +22 -22
- package/src/payment/interfaces/payment-params.interface.ts +8 -8
- package/src/payment/payment.repository.ts +11 -11
- package/src/payment/payment.ts +211 -211
- package/src/payment-item/interfaces/payment-item-attr.interface.ts +10 -10
- package/src/payment-item/payment-item.repository.ts +11 -11
- package/src/payment-item/payment-item.ts +104 -104
- package/src/payment-method/payment-method.repository.ts +11 -11
- package/src/payment-method-type/payment-method-type.repository.ts +11 -11
- package/tsconfig.build.json +4 -4
- package/tsconfig.json +22 -22
- package/tslint.json +18 -18
- package/dist/account/entities/account.entity.d.ts +0 -26
- package/dist/account/entities/account.entity.js +0 -199
- package/dist/account/entities/account.entity.js.map +0 -1
- package/dist/account/entities/fee-associated-object.entity.d.ts +0 -6
- package/dist/account/entities/fee-associated-object.entity.js +0 -52
- package/dist/account/entities/fee-associated-object.entity.js.map +0 -1
- package/dist/account/index.d.ts +0 -6
- package/dist/account/index.js +0 -10
- package/dist/account/index.js.map +0 -1
- package/dist/account/interfaces/account.repository.interface.d.ts +0 -3
- package/dist/account/interfaces/account.repository.interface.js +0 -3
- package/dist/account/interfaces/account.repository.interface.js.map +0 -1
- package/dist/account-system-entity/index.d.ts +0 -2
- package/dist/account-system-entity/index.js +0 -6
- package/dist/account-system-entity/index.js.map +0 -1
- package/dist/account-system-entity/post-history.entity.d.ts +0 -11
- package/dist/account-system-entity/post-history.entity.js +0 -65
- package/dist/account-system-entity/post-history.entity.js.map +0 -1
- package/dist/base/account-system.interface.d.ts +0 -7
- package/dist/base/account-system.interface.js +0 -3
- package/dist/base/account-system.interface.js.map +0 -1
- package/dist/base/address.base.abstract.d.ts +0 -4
- package/dist/base/address.base.abstract.js +0 -10
- package/dist/base/address.base.abstract.js.map +0 -1
- package/dist/base/base.address.d.ts +0 -8
- package/dist/base/base.address.js +0 -15
- package/dist/base/base.address.js.map +0 -1
- package/dist/base/base.object.d.ts +0 -7
- package/dist/base/base.object.js +0 -14
- package/dist/base/base.object.js.map +0 -1
- package/dist/base/base.owner.d.ts +0 -23
- package/dist/base/base.owner.js +0 -34
- package/dist/base/base.owner.js.map +0 -1
- package/dist/base/base.repository.abstract.d.ts +0 -12
- package/dist/base/base.repository.abstract.js +0 -22
- package/dist/base/base.repository.abstract.js.map +0 -1
- package/dist/base/base.repository.interface.d.ts +0 -9
- package/dist/base/base.repository.interface.js +0 -3
- package/dist/base/base.repository.interface.js.map +0 -1
- package/dist/base/index.d.ts +0 -4
- package/dist/base/index.js +0 -10
- package/dist/base/index.js.map +0 -1
- package/dist/base/object/base.object.abstract.d.ts +0 -5
- package/dist/base/object/base.object.abstract.js +0 -7
- package/dist/base/object/base.object.abstract.js.map +0 -1
- package/dist/base/object/base.object.d.ts +0 -7
- package/dist/base/object/base.object.js +0 -14
- package/dist/base/object/base.object.js.map +0 -1
- package/dist/base/object/object.interface.d.ts +0 -4
- package/dist/base/object/object.interface.js +0 -3
- package/dist/base/object/object.interface.js.map +0 -1
- package/dist/base/object.base.abstract.d.ts +0 -5
- package/dist/base/object.base.abstract.js +0 -11
- package/dist/base/object.base.abstract.js.map +0 -1
- package/dist/base/owner/base.owner.abstract.d.ts +0 -20
- package/dist/base/owner/base.owner.abstract.js +0 -8
- package/dist/base/owner/base.owner.abstract.js.map +0 -1
- package/dist/base/owner/base.owner.d.ts +0 -22
- package/dist/base/owner/base.owner.js +0 -31
- package/dist/base/owner/base.owner.js.map +0 -1
- package/dist/base/owner/owner.interface.d.ts +0 -19
- package/dist/base/owner/owner.interface.js +0 -3
- package/dist/base/owner/owner.interface.js.map +0 -1
- package/dist/base/person.base.abstract.d.ts +0 -21
- package/dist/base/person.base.abstract.js +0 -17
- package/dist/base/person.base.abstract.js.map +0 -1
- package/dist/base/repository/base.repository.abstract.d.ts +0 -12
- package/dist/base/repository/base.repository.abstract.js +0 -22
- package/dist/base/repository/base.repository.abstract.js.map +0 -1
- package/dist/base/repository/base.repository.interface.d.ts +0 -9
- package/dist/base/repository/base.repository.interface.js +0 -3
- package/dist/base/repository/base.repository.interface.js.map +0 -1
- package/dist/customer/customer.repository.d.ts +0 -0
- package/dist/customer/customer.repository.js +0 -1
- package/dist/customer/customer.repository.js.map +0 -1
- package/dist/customer/entities/customer.entity.d.ts +0 -13
- package/dist/customer/entities/customer.entity.js +0 -111
- package/dist/customer/entities/customer.entity.js.map +0 -1
- package/dist/customer/index.d.ts +0 -7
- package/dist/customer/index.js +0 -10
- package/dist/customer/index.js.map +0 -1
- package/dist/document/entities/document-item.entity.d.ts +0 -27
- package/dist/document/entities/document-item.entity.js +0 -174
- package/dist/document/entities/document-item.entity.js.map +0 -1
- package/dist/document/entities/document.entity.d.ts +0 -22
- package/dist/document/entities/document.entity.js +0 -139
- package/dist/document/entities/document.entity.js.map +0 -1
- package/dist/document/index.d.ts +0 -11
- package/dist/document/index.js +0 -20
- package/dist/document/index.js.map +0 -1
- package/dist/document/interfaces/document.repository.interface.d.ts +0 -3
- package/dist/document/interfaces/document.repository.interface.js +0 -3
- package/dist/document/interfaces/document.repository.interface.js.map +0 -1
- package/dist/enum/document-type.enum.d.ts +0 -7
- package/dist/enum/document-type.enum.js +0 -12
- package/dist/enum/document-type.enum.js.map +0 -1
- package/dist/enum/intuit-client.enum.d.ts +0 -13
- package/dist/enum/intuit-client.enum.js +0 -19
- package/dist/enum/intuit-client.enum.js.map +0 -1
- package/dist/finance-company/entities/finance-company.entity.d.ts +0 -13
- package/dist/finance-company/entities/finance-company.entity.js +0 -113
- package/dist/finance-company/entities/finance-company.entity.js.map +0 -1
- package/dist/finance-company/finance-company.entity.d.ts +0 -13
- package/dist/finance-company/finance-company.entity.js +0 -66
- package/dist/finance-company/finance-company.entity.js.map +0 -1
- package/dist/finance-company/index.d.ts +0 -3
- package/dist/finance-company/index.js +0 -8
- package/dist/finance-company/index.js.map +0 -1
- package/dist/finance-company/interfaces/finance-company-attr.interface.d.ts +0 -10
- package/dist/finance-company/interfaces/finance-company-attr.interface.js +0 -3
- package/dist/finance-company/interfaces/finance-company-attr.interface.js.map +0 -1
- package/dist/finance-company/interfaces/finance-company.repository.interface.d.ts +0 -3
- package/dist/finance-company/interfaces/finance-company.repository.interface.js +0 -3
- package/dist/finance-company/interfaces/finance-company.repository.interface.js.map +0 -1
- package/dist/interfaces/account-system-entity.interface.d.ts +0 -7
- package/dist/interfaces/account-system-entity.interface.js +0 -3
- package/dist/interfaces/account-system-entity.interface.js.map +0 -1
- package/dist/interfaces/customer.repository.interface.d.ts +0 -3
- package/dist/interfaces/customer.repository.interface.js +0 -3
- package/dist/interfaces/customer.repository.interface.js.map +0 -1
- package/dist/interfaces/finance-customer.repository.interface.d.ts +0 -3
- package/dist/interfaces/finance-customer.repository.interface.js +0 -3
- package/dist/interfaces/finance-customer.repository.interface.js.map +0 -1
- package/dist/interfaces/systemConfig.interface.d.ts +0 -0
- package/dist/interfaces/systemConfig.interface.js +0 -1
- package/dist/interfaces/systemConfig.interface.js.map +0 -1
- package/dist/intuit-client/client.d.ts +0 -14
- package/dist/intuit-client/client.js +0 -44
- package/dist/intuit-client/client.js.map +0 -1
- package/dist/journal-entry/entities/journal-entry.entity.d.ts +0 -16
- package/dist/journal-entry/entities/journal-entry.entity.js +0 -129
- package/dist/journal-entry/entities/journal-entry.entity.js.map +0 -1
- package/dist/journal-entry/index.d.ts +0 -6
- package/dist/journal-entry/index.js +0 -10
- package/dist/journal-entry/index.js.map +0 -1
- package/dist/journal-entry/interfaces/journal-entry.repository.interface.d.ts +0 -10
- package/dist/journal-entry/interfaces/journal-entry.repository.interface.js +0 -3
- package/dist/journal-entry/interfaces/journal-entry.repository.interface.js.map +0 -1
- package/dist/ledger-transaction/entities/ledger-transaction.entity.d.ts +0 -19
- package/dist/ledger-transaction/entities/ledger-transaction.entity.js +0 -157
- package/dist/ledger-transaction/entities/ledger-transaction.entity.js.map +0 -1
- package/dist/ledger-transaction/index.d.ts +0 -6
- package/dist/ledger-transaction/index.js +0 -10
- package/dist/ledger-transaction/index.js.map +0 -1
- package/dist/payment/entities/payment-item.entity.d.ts +0 -10
- package/dist/payment/entities/payment-item.entity.js +0 -62
- package/dist/payment/entities/payment-item.entity.js.map +0 -1
- package/dist/payment/entities/payment.entity.d.ts +0 -25
- package/dist/payment/entities/payment.entity.js +0 -152
- package/dist/payment/entities/payment.entity.js.map +0 -1
- package/dist/payment/index.d.ts +0 -10
- package/dist/payment/index.js +0 -18
- package/dist/payment/index.js.map +0 -1
- package/dist/payment/interfaces/payment-item-attr.interface.d.ts +0 -8
- package/dist/payment/interfaces/payment-item-attr.interface.js +0 -7
- package/dist/payment/interfaces/payment-item-attr.interface.js.map +0 -1
- package/dist/payment/interfaces/payment-item.repository.interface.d.ts +0 -3
- package/dist/payment/interfaces/payment-item.repository.interface.js +0 -3
- package/dist/payment/interfaces/payment-item.repository.interface.js.map +0 -1
- package/dist/payment/interfaces/payment.repository.interface.d.ts +0 -3
- package/dist/payment/interfaces/payment.repository.interface.js +0 -3
- package/dist/payment/interfaces/payment.repository.interface.js.map +0 -1
- package/dist/payment/payment-item.repository.d.ts +0 -5
- package/dist/payment/payment-item.repository.js +0 -12
- package/dist/payment/payment-item.repository.js.map +0 -1
- package/dist/payment-item/interfaces/payment-item.repository.interface.d.ts +0 -3
- package/dist/payment-item/interfaces/payment-item.repository.interface.js +0 -3
- package/dist/payment-item/interfaces/payment-item.repository.interface.js.map +0 -1
- package/dist/quickbook-client/client.d.ts +0 -39
- package/dist/quickbook-client/client.js +0 -205
- package/dist/quickbook-client/client.js.map +0 -1
- package/dist/quickbook-client/constant.d.ts +0 -1
- package/dist/quickbook-client/constant.js +0 -5
- package/dist/quickbook-client/constant.js.map +0 -1
- package/dist/quickbook-client/index.d.ts +0 -5
- package/dist/quickbook-client/index.js +0 -6
- package/dist/quickbook-client/index.js.map +0 -1
- package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.d.ts +0 -6
- package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.js +0 -3
- package/dist/quickbook-client/interfaces/quickbook-client-call-options.interface.js.map +0 -1
- package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.d.ts +0 -9
- package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.js +0 -3
- package/dist/quickbook-client/interfaces/quickbook-client-create-account-options.interface.js.map +0 -1
- package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.d.ts +0 -7
- package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.js +0 -3
- package/dist/quickbook-client/interfaces/quickbook-client-create-customer-options.interface.js.map +0 -1
- package/dist/quickbook-client/interfaces/quickbook-client-options.interface.d.ts +0 -8
- package/dist/quickbook-client/interfaces/quickbook-client-options.interface.js +0 -3
- package/dist/quickbook-client/interfaces/quickbook-client-options.interface.js.map +0 -1
- package/dist/quickbook-client/quickbook-client.module-definition.d.ts +0 -2
- package/dist/quickbook-client/quickbook-client.module-definition.js +0 -9
- package/dist/quickbook-client/quickbook-client.module-definition.js.map +0 -1
- package/dist/quickbook-client/quickbook-client.module.d.ts +0 -6
- package/dist/quickbook-client/quickbook-client.module.js +0 -34
- package/dist/quickbook-client/quickbook-client.module.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
-
import DocumentItemModel from '../models/document-item.entity';
|
|
3
|
-
|
|
4
|
-
export class DocumentItemRepository
|
|
5
|
-
extends RepositoryBase<DocumentItemModel>
|
|
6
|
-
implements IRepositoryBase<DocumentItemModel>
|
|
7
|
-
{
|
|
8
|
-
constructor() {
|
|
9
|
-
super(DocumentItemModel);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
+
import DocumentItemModel from '../models/document-item.entity';
|
|
3
|
+
|
|
4
|
+
export class DocumentItemRepository
|
|
5
|
+
extends RepositoryBase<DocumentItemModel>
|
|
6
|
+
implements IRepositoryBase<DocumentItemModel>
|
|
7
|
+
{
|
|
8
|
+
constructor() {
|
|
9
|
+
super(DocumentItemModel);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
-
import DocumentModel from '../models/document.entity';
|
|
3
|
-
|
|
4
|
-
export class DocumentRepository
|
|
5
|
-
extends RepositoryBase<DocumentModel>
|
|
6
|
-
implements IRepositoryBase<DocumentModel>
|
|
7
|
-
{
|
|
8
|
-
constructor() {
|
|
9
|
-
super(DocumentModel);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
+
import DocumentModel from '../models/document.entity';
|
|
3
|
+
|
|
4
|
+
export class DocumentRepository
|
|
5
|
+
extends RepositoryBase<DocumentModel>
|
|
6
|
+
implements IRepositoryBase<DocumentModel>
|
|
7
|
+
{
|
|
8
|
+
constructor() {
|
|
9
|
+
super(DocumentModel);
|
|
10
|
+
}
|
|
11
|
+
}
|
package/src/document/document.ts
CHANGED
|
@@ -298,7 +298,7 @@ export default class Document extends AccountSystemEntity {
|
|
|
298
298
|
*
|
|
299
299
|
* @returns {Express.Multer.File} - PDF File
|
|
300
300
|
*/
|
|
301
|
-
public
|
|
301
|
+
public async DEFAULT_INVOICE_TEMPLATE_PDF(
|
|
302
302
|
customer: FinanceCustomerBase,
|
|
303
303
|
): Promise<Express.Multer.File> {
|
|
304
304
|
/* prepping HTML conversion by getting its URL and String */
|
|
@@ -316,7 +316,9 @@ export default class Document extends AccountSystemEntity {
|
|
|
316
316
|
const browser = await puppeteer.launch();
|
|
317
317
|
const page = await browser.newPage();
|
|
318
318
|
|
|
319
|
-
const imagePath = path.resolve(
|
|
319
|
+
const imagePath = path.resolve(
|
|
320
|
+
'./invoice-template/assets/img/tomei-logo.svg',
|
|
321
|
+
);
|
|
320
322
|
const imageBuffer = await readFileContent(imagePath);
|
|
321
323
|
const imageDataUrl = `data:image/svg+xml;base64,${imageBuffer.toString(
|
|
322
324
|
'base64',
|
|
@@ -335,7 +337,7 @@ export default class Document extends AccountSystemEntity {
|
|
|
335
337
|
|
|
336
338
|
// Get the current date and invoice number from customer
|
|
337
339
|
const currentDate = new Date().toLocaleDateString('en-GB');
|
|
338
|
-
const invoiceNo =
|
|
340
|
+
const invoiceNo = this.DocNo;
|
|
339
341
|
|
|
340
342
|
// Update the invoice number and date in the HTML content
|
|
341
343
|
const invoiceContent = `
|
|
@@ -371,6 +373,121 @@ export default class Document extends AccountSystemEntity {
|
|
|
371
373
|
invoice.innerHTML = invoiceCustomerContent;
|
|
372
374
|
}, invoiceCustomerContent);
|
|
373
375
|
|
|
376
|
+
// Update the invoice Pay To details in the HTML content
|
|
377
|
+
const invoicePayToContent = ``;
|
|
378
|
+
const invoicePayToHandle = await page.$('.tm_payto_detail');
|
|
379
|
+
await invoicePayToHandle.evaluate((invoice, invoicePayToContent) => {
|
|
380
|
+
invoice.innerHTML = invoicePayToContent;
|
|
381
|
+
}, invoicePayToContent);
|
|
382
|
+
|
|
383
|
+
// Update the invoice payment info in the HTML content
|
|
384
|
+
const invoicePaymentInfoContent = ``;
|
|
385
|
+
const invoicePaymentInfoHandle = await page.$('.tm_payment_info');
|
|
386
|
+
await invoicePaymentInfoHandle.evaluate(
|
|
387
|
+
(invoice, invoicePaymentInfoContent) => {
|
|
388
|
+
invoice.innerHTML = invoicePaymentInfoContent;
|
|
389
|
+
},
|
|
390
|
+
invoicePaymentInfoContent,
|
|
391
|
+
);
|
|
392
|
+
|
|
393
|
+
// Update the invoice right footer content in the HTML content
|
|
394
|
+
const invoiceSubtotal = +this.Amount;
|
|
395
|
+
const invoiceTax = 0;
|
|
396
|
+
const invoiceRightFooterContent = `
|
|
397
|
+
<table>
|
|
398
|
+
<tbody>
|
|
399
|
+
<tr>
|
|
400
|
+
<td
|
|
401
|
+
class="tm_width_3 tm_primary_color tm_border_none tm_bold"
|
|
402
|
+
>
|
|
403
|
+
Subtotal
|
|
404
|
+
</td>
|
|
405
|
+
<td
|
|
406
|
+
class="tm_width_3 tm_primary_color tm_text_right tm_border_none tm_bold"
|
|
407
|
+
>
|
|
408
|
+
${this.Currency} ${invoiceSubtotal}
|
|
409
|
+
</td>
|
|
410
|
+
</tr>
|
|
411
|
+
<tr>
|
|
412
|
+
<td
|
|
413
|
+
class="tm_width_3 tm_primary_color tm_border_none tm_pt0"
|
|
414
|
+
>
|
|
415
|
+
Tax <span class="tm_ternary_color">(0%)</span>
|
|
416
|
+
</td>
|
|
417
|
+
<td
|
|
418
|
+
class="tm_width_3 tm_primary_color tm_text_right tm_border_none tm_pt0"
|
|
419
|
+
>
|
|
420
|
+
${this.Currency} ${invoiceTax}
|
|
421
|
+
</td>
|
|
422
|
+
</tr>
|
|
423
|
+
<tr class="tm_border_top tm_border_bottom">
|
|
424
|
+
<td
|
|
425
|
+
class="tm_width_3 tm_border_top_0 tm_bold tm_f16 tm_primary_color"
|
|
426
|
+
>
|
|
427
|
+
Grand Total
|
|
428
|
+
</td>
|
|
429
|
+
<td
|
|
430
|
+
class="tm_width_3 tm_border_top_0 tm_bold tm_f16 tm_primary_color tm_text_right"
|
|
431
|
+
>
|
|
432
|
+
${this.Currency} ${invoiceSubtotal + invoiceTax}
|
|
433
|
+
</td>
|
|
434
|
+
</tr>
|
|
435
|
+
</tbody>
|
|
436
|
+
</table>
|
|
437
|
+
`;
|
|
438
|
+
const invoiceRightFooterHandle = await page.$('.tm_right_footer');
|
|
439
|
+
await invoiceRightFooterHandle.evaluate(
|
|
440
|
+
(invoice, invoiceRightFooterContent) => {
|
|
441
|
+
invoice.innerHTML = invoiceRightFooterContent;
|
|
442
|
+
},
|
|
443
|
+
invoiceRightFooterContent,
|
|
444
|
+
);
|
|
445
|
+
|
|
446
|
+
// Update the invoice Terms & Agreement content in the HTML content
|
|
447
|
+
const invoiceTNCContent = `
|
|
448
|
+
<li>
|
|
449
|
+
All payment must be made to:
|
|
450
|
+
<ul>
|
|
451
|
+
<li>Bank: <b>RHB</b></li>
|
|
452
|
+
<li>Account Name: <b>TXG Financial Solutions Sdn Bhd</b></li>
|
|
453
|
+
<li>Account No.: <b>TBD</b></li>
|
|
454
|
+
</ul>
|
|
455
|
+
</li>
|
|
456
|
+
<li>
|
|
457
|
+
Once payment has been made, please email your transaction confirmation slip to <i>payment@ezcash.com.my</i>
|
|
458
|
+
</li>
|
|
459
|
+
`;
|
|
460
|
+
const invoiceTNCHandle = await page.$('.tm_tnc_content');
|
|
461
|
+
await invoiceTNCHandle.evaluate((invoice, invoiceTNCContent) => {
|
|
462
|
+
invoice.innerHTML = invoiceTNCContent;
|
|
463
|
+
}, invoiceTNCContent);
|
|
464
|
+
|
|
465
|
+
// Update the invoice items content in the HTML content
|
|
466
|
+
const invoiceDocumentItems = await this.DocumentItems;
|
|
467
|
+
|
|
468
|
+
let invoiceItemContent = ``;
|
|
469
|
+
invoiceDocumentItems.forEach((documentItem, i) => {
|
|
470
|
+
invoiceItemContent += `
|
|
471
|
+
<tr>
|
|
472
|
+
<td class="tm_width_3">${i + 1}. ${documentItem.Name}</td>
|
|
473
|
+
<td class="tm_width_4">
|
|
474
|
+
${documentItem.Description}
|
|
475
|
+
</td>
|
|
476
|
+
<td class="tm_width_2">${documentItem.Currency} ${
|
|
477
|
+
documentItem.UnitPrice
|
|
478
|
+
}</td>
|
|
479
|
+
<td class="tm_width_1">${documentItem.Quantity}</td>
|
|
480
|
+
<td class="tm_width_2 tm_text_right">${documentItem.Currency} ${
|
|
481
|
+
+documentItem.UnitPrice * +documentItem.Quantity
|
|
482
|
+
}</td>
|
|
483
|
+
</tr>
|
|
484
|
+
`;
|
|
485
|
+
});
|
|
486
|
+
const invoiceDocumentItemHandle = await page.$('.tm_items_content');
|
|
487
|
+
await invoiceDocumentItemHandle.evaluate((invoice, invoiceItemContent) => {
|
|
488
|
+
invoice.innerHTML = invoiceItemContent;
|
|
489
|
+
}, invoiceItemContent);
|
|
490
|
+
|
|
374
491
|
const pdfBuffer = await page.pdf({
|
|
375
492
|
format: 'a4',
|
|
376
493
|
printBackground: true,
|
|
@@ -503,7 +620,7 @@ export default class Document extends AccountSystemEntity {
|
|
|
503
620
|
ObjectType: this.DocType,
|
|
504
621
|
Type: MediaType.Document,
|
|
505
622
|
FileName: `${this.DocType}-${this.DocNo}`,
|
|
506
|
-
FileStream: await
|
|
623
|
+
FileStream: await this.DEFAULT_INVOICE_TEMPLATE_PDF(customer),
|
|
507
624
|
FileExtension: 'pdf',
|
|
508
625
|
Title: `${this.DocType}-${this.DocNo}.pdf`,
|
|
509
626
|
Description: `PDF ${this.DocType}`,
|
|
@@ -512,7 +629,7 @@ export default class Document extends AccountSystemEntity {
|
|
|
512
629
|
|
|
513
630
|
/* create PDF media from the converted HTML */
|
|
514
631
|
const PDFInvoiceMedia = await media.postInternal(
|
|
515
|
-
await
|
|
632
|
+
await this.DEFAULT_INVOICE_TEMPLATE_PDF(customer),
|
|
516
633
|
pdfPayload,
|
|
517
634
|
userId ?? 'System',
|
|
518
635
|
);
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { DocType, DocumentStatus } from '../../enum';
|
|
2
|
-
|
|
3
|
-
export class IDocumentAttr {
|
|
4
|
-
DocNo: string;
|
|
5
|
-
DocType: DocType;
|
|
6
|
-
DocDate: Date;
|
|
7
|
-
CompanyId: string;
|
|
8
|
-
Currency: string;
|
|
9
|
-
Amount: number;
|
|
10
|
-
Description: string;
|
|
11
|
-
Status: DocumentStatus;
|
|
12
|
-
IssuedById: string;
|
|
13
|
-
IssuedToId: string;
|
|
14
|
-
IssuedToType: string;
|
|
15
|
-
RelatedObjectId?: string;
|
|
16
|
-
RelatedObjectType?: string;
|
|
17
|
-
CreatedById: string;
|
|
18
|
-
CreatedAt: Date;
|
|
19
|
-
UpdatedById?: string;
|
|
20
|
-
UpdatedAt?: Date;
|
|
21
|
-
DocPDFFileMediaId?: string;
|
|
22
|
-
DocHTMLFileMediaId?: string;
|
|
23
|
-
AccSystemRefId?: string;
|
|
24
|
-
PostedToAccSystemYN: string;
|
|
25
|
-
PostedById?: string;
|
|
26
|
-
PostedDateTime?: Date;
|
|
27
|
-
UseAccSystemDocYN: string;
|
|
28
|
-
}
|
|
1
|
+
import { DocType, DocumentStatus } from '../../enum';
|
|
2
|
+
|
|
3
|
+
export class IDocumentAttr {
|
|
4
|
+
DocNo: string;
|
|
5
|
+
DocType: DocType;
|
|
6
|
+
DocDate: Date;
|
|
7
|
+
CompanyId: string;
|
|
8
|
+
Currency: string;
|
|
9
|
+
Amount: number;
|
|
10
|
+
Description: string;
|
|
11
|
+
Status: DocumentStatus;
|
|
12
|
+
IssuedById: string;
|
|
13
|
+
IssuedToId: string;
|
|
14
|
+
IssuedToType: string;
|
|
15
|
+
RelatedObjectId?: string;
|
|
16
|
+
RelatedObjectType?: string;
|
|
17
|
+
CreatedById: string;
|
|
18
|
+
CreatedAt: Date;
|
|
19
|
+
UpdatedById?: string;
|
|
20
|
+
UpdatedAt?: Date;
|
|
21
|
+
DocPDFFileMediaId?: string;
|
|
22
|
+
DocHTMLFileMediaId?: string;
|
|
23
|
+
AccSystemRefId?: string;
|
|
24
|
+
PostedToAccSystemYN: string;
|
|
25
|
+
PostedById?: string;
|
|
26
|
+
PostedDateTime?: Date;
|
|
27
|
+
UseAccSystemDocYN: string;
|
|
28
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
export class IDocumentItemAttr {
|
|
2
|
-
DocumentItemId: string;
|
|
3
|
-
DocNo: string;
|
|
4
|
-
Name: string;
|
|
5
|
-
NameBM: string;
|
|
6
|
-
Description?: string;
|
|
7
|
-
ItemId?: string;
|
|
8
|
-
ItemType?: string;
|
|
9
|
-
ItemSKU?: string;
|
|
10
|
-
ItemSerialNo?: string;
|
|
11
|
-
Currency: string;
|
|
12
|
-
UnitPrice?: number;
|
|
13
|
-
Quantity?: number;
|
|
14
|
-
QuantityUOM?: string;
|
|
15
|
-
Amount: number;
|
|
16
|
-
TaxCode?: string;
|
|
17
|
-
TaxAmount?: number;
|
|
18
|
-
TaxRate?: number;
|
|
19
|
-
TaxInclusiveYN?: string;
|
|
20
|
-
DtAccountNo?: string;
|
|
21
|
-
CtAccountNo?: string;
|
|
22
|
-
}
|
|
1
|
+
export class IDocumentItemAttr {
|
|
2
|
+
DocumentItemId: string;
|
|
3
|
+
DocNo: string;
|
|
4
|
+
Name: string;
|
|
5
|
+
NameBM: string;
|
|
6
|
+
Description?: string;
|
|
7
|
+
ItemId?: string;
|
|
8
|
+
ItemType?: string;
|
|
9
|
+
ItemSKU?: string;
|
|
10
|
+
ItemSerialNo?: string;
|
|
11
|
+
Currency: string;
|
|
12
|
+
UnitPrice?: number;
|
|
13
|
+
Quantity?: number;
|
|
14
|
+
QuantityUOM?: string;
|
|
15
|
+
Amount: number;
|
|
16
|
+
TaxCode?: string;
|
|
17
|
+
TaxAmount?: number;
|
|
18
|
+
TaxRate?: number;
|
|
19
|
+
TaxInclusiveYN?: string;
|
|
20
|
+
DtAccountNo?: string;
|
|
21
|
+
CtAccountNo?: string;
|
|
22
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IRepositoryBase } from '@tomei/general';
|
|
2
|
-
import DocumentItemModel from '../../models/document-item.entity';
|
|
3
|
-
|
|
4
|
-
export type IDocumentItemRepository = IRepositoryBase<DocumentItemModel>;
|
|
1
|
+
import { IRepositoryBase } from '@tomei/general';
|
|
2
|
+
import DocumentItemModel from '../../models/document-item.entity';
|
|
3
|
+
|
|
4
|
+
export type IDocumentItemRepository = IRepositoryBase<DocumentItemModel>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export enum DocType {
|
|
2
|
-
INVOICE = 'Invoice',
|
|
3
|
-
DEBIT_NOTE = 'Debit Note',
|
|
4
|
-
CREDIT_NOTE = 'Credit Note',
|
|
5
|
-
QUOTATION = 'Quotation',
|
|
6
|
-
PURCHASEORDER = 'Purchase Order',
|
|
7
|
-
RECEIPT = 'Receipt',
|
|
8
|
-
}
|
|
1
|
+
export enum DocType {
|
|
2
|
+
INVOICE = 'Invoice',
|
|
3
|
+
DEBIT_NOTE = 'Debit Note',
|
|
4
|
+
CREDIT_NOTE = 'Credit Note',
|
|
5
|
+
QUOTATION = 'Quotation',
|
|
6
|
+
PURCHASEORDER = 'Purchase Order',
|
|
7
|
+
RECEIPT = 'Receipt',
|
|
8
|
+
}
|
package/src/enum/index.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { ClientScopes } from './quick-book-client-scopes.enum';
|
|
2
|
-
import { PaymentType } from './payment-type.enum';
|
|
3
|
-
import { PaymentMethod } from './payment-method.enum';
|
|
4
|
-
import { TransactionTypeOptions } from './transaction-type.enum';
|
|
5
|
-
import { DocType } from './doc-type.enum';
|
|
6
|
-
import { DocumentStatus } from './document-status.enum';
|
|
7
|
-
import { PaymentStatus } from './payment-status.enum';
|
|
8
|
-
|
|
9
|
-
export {
|
|
10
|
-
ClientScopes,
|
|
11
|
-
PaymentType,
|
|
12
|
-
PaymentMethod,
|
|
13
|
-
TransactionTypeOptions,
|
|
14
|
-
DocType,
|
|
15
|
-
DocumentStatus,
|
|
16
|
-
PaymentStatus,
|
|
17
|
-
};
|
|
1
|
+
import { ClientScopes } from './quick-book-client-scopes.enum';
|
|
2
|
+
import { PaymentType } from './payment-type.enum';
|
|
3
|
+
import { PaymentMethod } from './payment-method.enum';
|
|
4
|
+
import { TransactionTypeOptions } from './transaction-type.enum';
|
|
5
|
+
import { DocType } from './doc-type.enum';
|
|
6
|
+
import { DocumentStatus } from './document-status.enum';
|
|
7
|
+
import { PaymentStatus } from './payment-status.enum';
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
ClientScopes,
|
|
11
|
+
PaymentType,
|
|
12
|
+
PaymentMethod,
|
|
13
|
+
TransactionTypeOptions,
|
|
14
|
+
DocType,
|
|
15
|
+
DocumentStatus,
|
|
16
|
+
PaymentStatus,
|
|
17
|
+
};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export enum PaymentMethod {
|
|
2
|
-
Cash = 'Cash', // example
|
|
3
|
-
}
|
|
1
|
+
export enum PaymentMethod {
|
|
2
|
+
Cash = 'Cash', // example
|
|
3
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export enum PaymentType {
|
|
2
|
-
PAYMENT_RECEIVED = 'Payment Received',
|
|
3
|
-
PAYOUT = 'Payout',
|
|
4
|
-
}
|
|
1
|
+
export enum PaymentType {
|
|
2
|
+
PAYMENT_RECEIVED = 'Payment Received',
|
|
3
|
+
PAYOUT = 'Payout',
|
|
4
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
-
import FinanceCompanyModel from '../models/finance-company.entity';
|
|
3
|
-
|
|
4
|
-
export class FinanceCompanyRepository
|
|
5
|
-
extends RepositoryBase<FinanceCompanyModel>
|
|
6
|
-
implements IRepositoryBase<FinanceCompanyModel>
|
|
7
|
-
{
|
|
8
|
-
constructor() {
|
|
9
|
-
super(FinanceCompanyModel);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
1
|
+
import { RepositoryBase, IRepositoryBase } from '@tomei/general';
|
|
2
|
+
import FinanceCompanyModel from '../models/finance-company.entity';
|
|
3
|
+
|
|
4
|
+
export class FinanceCompanyRepository
|
|
5
|
+
extends RepositoryBase<FinanceCompanyModel>
|
|
6
|
+
implements IRepositoryBase<FinanceCompanyModel>
|
|
7
|
+
{
|
|
8
|
+
constructor() {
|
|
9
|
+
super(FinanceCompanyModel);
|
|
10
|
+
}
|
|
11
|
+
}
|