diff --git a/packages/server/src/modules/Attachments/Attachment.module.ts b/packages/server/src/modules/Attachments/Attachment.module.ts index 638e32e01..dc9c6f9d4 100644 --- a/packages/server/src/modules/Attachments/Attachment.module.ts +++ b/packages/server/src/modules/Attachments/Attachment.module.ts @@ -15,6 +15,8 @@ import { AttachmentsOnPaymentsReceived } from "./events/AttachmentsOnPaymentsRec import { AttachmentsOnManualJournals } from "./events/AttachmentsOnManualJournals"; import { AttachmentsOnVendorCredits } from "./events/AttachmentsOnVendorCredits"; import { AttachmentsOnSaleInvoiceCreated } from "./events/AttachmentsOnSaleInvoice"; +import { AttachmentsOnSaleReceipt } from "./events/AttachmentsOnSaleReceipts"; +import { AttachmentsOnSaleEstimates } from "./events/AttachmentsOnSaleEstimates"; import { AttachmentsController } from "./Attachments.controller"; import { RegisterTenancyModel } from "../Tenancy/TenancyModels/Tenancy.module"; import { DocumentModel } from "./models/Document.model"; @@ -50,6 +52,8 @@ const models = [ AttachmentsOnManualJournals, AttachmentsOnVendorCredits, AttachmentsOnSaleInvoiceCreated, + AttachmentsOnSaleReceipt, + AttachmentsOnSaleEstimates, AttachmentsApplication, UploadDocument, AttachmentUploadPipeline, diff --git a/packages/server/src/modules/Attachments/events/AttachmentsOnPaymentsReceived.ts b/packages/server/src/modules/Attachments/events/AttachmentsOnPaymentsReceived.ts index b73f692e9..0e8e726d6 100644 --- a/packages/server/src/modules/Attachments/events/AttachmentsOnPaymentsReceived.ts +++ b/packages/server/src/modules/Attachments/events/AttachmentsOnPaymentsReceived.ts @@ -55,7 +55,7 @@ export class AttachmentsOnPaymentsReceived { ); await this.linkAttachmentService.bulkLink( keys, - 'PaymentReceive', + 'PaymentReceived', paymentReceive.id, trx, ); @@ -76,7 +76,7 @@ export class AttachmentsOnPaymentsReceived { ); await this.unlinkAttachmentService.unlinkUnpresentedKeys( keys, - 'PaymentReceive', + 'PaymentReceived', oldPaymentReceive.id, trx, ); @@ -100,7 +100,7 @@ export class AttachmentsOnPaymentsReceived { ); await this.linkAttachmentService.bulkLink( keys, - 'PaymentReceive', + 'PaymentReceived', oldPaymentReceive.id, trx, ); @@ -117,7 +117,7 @@ export class AttachmentsOnPaymentsReceived { trx, }: IPaymentReceivedDeletingPayload) { await this.unlinkAttachmentService.unlinkAllModelKeys( - 'PaymentReceive', + 'PaymentReceived', oldPaymentReceive.id, trx, ); diff --git a/packages/server/src/modules/BillPayments/models/BillPayment.ts b/packages/server/src/modules/BillPayments/models/BillPayment.ts index 5f05d9e4b..2910095de 100644 --- a/packages/server/src/modules/BillPayments/models/BillPayment.ts +++ b/packages/server/src/modules/BillPayments/models/BillPayment.ts @@ -9,7 +9,9 @@ import { BillPaymentMeta } from './BillPayment.meta'; import { TenantBaseModel } from '@/modules/System/models/TenantBaseModel'; import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator'; import { BillPaymentDefaultViews } from '../constants'; +import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator'; +@InjectAttachable() @ImportableModel() @ExportableModel() @InjectModelMeta(BillPaymentMeta) diff --git a/packages/server/src/modules/Bills/models/Bill.ts b/packages/server/src/modules/Bills/models/Bill.ts index 807c746e0..480c42607 100644 --- a/packages/server/src/modules/Bills/models/Bill.ts +++ b/packages/server/src/modules/Bills/models/Bill.ts @@ -13,7 +13,9 @@ import { InjectModelMeta } from '@/modules/Tenancy/TenancyModels/decorators/Inje import { BillMeta } from './Bill.meta'; import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator'; import { BillDefaultViews } from '../Bills.constants'; +import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator'; +@InjectAttachable() @ExportableModel() @InjectModelMeta(BillMeta) @InjectModelDefaultViews(BillDefaultViews) diff --git a/packages/server/src/modules/ChromiumlyTenancy/models/DocumentLink.ts b/packages/server/src/modules/ChromiumlyTenancy/models/DocumentLink.ts index bbde542a5..5f851003e 100644 --- a/packages/server/src/modules/ChromiumlyTenancy/models/DocumentLink.ts +++ b/packages/server/src/modules/ChromiumlyTenancy/models/DocumentLink.ts @@ -28,7 +28,7 @@ export class DocumentLink extends BaseModel{ * Relationship mapping. */ static get relationMappings() { - const Document = require('./Document'); + const { Document } = require('./Document'); return { /** @@ -36,7 +36,7 @@ export class DocumentLink extends BaseModel{ */ document: { relation: Model.HasOneRelation, - modelClass: Document.default, + modelClass: Document, join: { from: 'document_links.documentId', to: 'documents.id', diff --git a/packages/server/src/modules/CreditNotes/models/CreditNote.ts b/packages/server/src/modules/CreditNotes/models/CreditNote.ts index 0ca133c58..86947ae0b 100644 --- a/packages/server/src/modules/CreditNotes/models/CreditNote.ts +++ b/packages/server/src/modules/CreditNotes/models/CreditNote.ts @@ -11,7 +11,9 @@ import { Warehouse } from '@/modules/Warehouses/models/Warehouse.model'; import { CreditNoteMeta } from './CreditNote.meta'; import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator'; import { CreditNoteDefaultViews } from '../constants'; +import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator'; +@InjectAttachable() @ExportableModel() @ImportableModel() @InjectModelMeta(CreditNoteMeta) diff --git a/packages/server/src/modules/Expenses/models/Expense.model.ts b/packages/server/src/modules/Expenses/models/Expense.model.ts index 63433d510..6d6458cae 100644 --- a/packages/server/src/modules/Expenses/models/Expense.model.ts +++ b/packages/server/src/modules/Expenses/models/Expense.model.ts @@ -9,7 +9,9 @@ import { InjectModelMeta } from '@/modules/Tenancy/TenancyModels/decorators/Inje import { ExpenseMeta } from './Expense.meta'; import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator'; import { ExpenseDefaultViews } from '../constants'; +import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator'; +@InjectAttachable() @ExportableModel() @ImportableModel() @InjectModelMeta(ExpenseMeta) diff --git a/packages/server/src/modules/ManualJournals/models/ManualJournal.ts b/packages/server/src/modules/ManualJournals/models/ManualJournal.ts index 1f2dc98db..6d92821c6 100644 --- a/packages/server/src/modules/ManualJournals/models/ManualJournal.ts +++ b/packages/server/src/modules/ManualJournals/models/ManualJournal.ts @@ -8,7 +8,9 @@ import { ManualJournalMeta } from './ManualJournal.meta'; import { ImportableModel } from '@/modules/Import/decorators/Import.decorator'; import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator'; import { ManualJournalDefaultViews } from '../constants'; +import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator'; +@InjectAttachable() @ExportableModel() @ImportableModel() @InjectModelMeta(ManualJournalMeta) diff --git a/packages/server/src/modules/PaymentReceived/models/PaymentReceived.ts b/packages/server/src/modules/PaymentReceived/models/PaymentReceived.ts index 7a517e289..7b114423f 100644 --- a/packages/server/src/modules/PaymentReceived/models/PaymentReceived.ts +++ b/packages/server/src/modules/PaymentReceived/models/PaymentReceived.ts @@ -1,5 +1,6 @@ import { Model } from 'objection'; import { PaymentReceivedEntry } from './PaymentReceivedEntry'; +import { Document } from '@/modules/ChromiumlyTenancy/models/Document'; import { TenantBaseModel } from '@/modules/System/models/TenantBaseModel'; import { ExportableModel } from '@/modules/Export/decorators/ExportableModel.decorator'; import { ImportableModel } from '@/modules/Import/decorators/Import.decorator'; @@ -7,7 +8,9 @@ import { InjectModelMeta } from '@/modules/Tenancy/TenancyModels/decorators/Inje import { PaymentReceivedMeta } from './PaymentReceived.meta'; import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator'; import { PaymentReceivedDefaultViews } from '../constants'; +import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator'; +@InjectAttachable() @ExportableModel() @ImportableModel() @InjectModelMeta(PaymentReceivedMeta) @@ -31,6 +34,7 @@ export class PaymentReceived extends TenantBaseModel { updatedAt: string; entries?: PaymentReceivedEntry[]; + public attachments!: Document[]; /** * Table name. @@ -159,7 +163,7 @@ export class PaymentReceived extends TenantBaseModel { to: 'documents.id', }, filter(query) { - query.where('model_ref', 'PaymentReceive'); + query.where('model_ref', 'PaymentReceived'); }, }, diff --git a/packages/server/src/modules/PaymentReceived/queries/GetPaymentReceived.service.ts b/packages/server/src/modules/PaymentReceived/queries/GetPaymentReceived.service.ts index 9f159becb..6da696b41 100644 --- a/packages/server/src/modules/PaymentReceived/queries/GetPaymentReceived.service.ts +++ b/packages/server/src/modules/PaymentReceived/queries/GetPaymentReceived.service.ts @@ -32,6 +32,7 @@ export class GetPaymentReceivedService { .withGraphFetched('entries.invoice') .withGraphFetched('transactions') .withGraphFetched('branch') + .withGraphFetched('attachments') .findById(paymentReceiveId); if (!paymentReceive) { diff --git a/packages/server/src/modules/PaymentReceived/queries/PaymentReceivedTransformer.ts b/packages/server/src/modules/PaymentReceived/queries/PaymentReceivedTransformer.ts index 7b7a121d9..427a4c634 100644 --- a/packages/server/src/modules/PaymentReceived/queries/PaymentReceivedTransformer.ts +++ b/packages/server/src/modules/PaymentReceived/queries/PaymentReceivedTransformer.ts @@ -2,6 +2,7 @@ import { Transformer } from '../../Transformer/Transformer'; import { PaymentReceived } from '../models/PaymentReceived'; import { PaymentReceivedEntry } from '../models/PaymentReceivedEntry'; import { PaymentReceivedEntryTransfromer } from './PaymentReceivedEntryTransformer'; +import { AttachmentTransformer } from '@/modules/Attachments/Attachment.transformer'; export class PaymentReceiveTransfromer extends Transformer { /** @@ -17,6 +18,7 @@ export class PaymentReceiveTransfromer extends Transformer { 'formattedAmount', 'formattedExchangeRate', 'entries', + 'attachments', ]; }; @@ -89,4 +91,13 @@ export class PaymentReceiveTransfromer extends Transformer { protected entries = (payment: PaymentReceived): PaymentReceivedEntry[] => { return this.item(payment.entries, new PaymentReceivedEntryTransfromer()); }; + + /** + * Retrieves the payment received attachments. + * @param {PaymentReceived} payment + * @returns + */ + protected attachments = (payment: PaymentReceived) => { + return this.item(payment.attachments, new AttachmentTransformer()); + }; } diff --git a/packages/server/src/modules/SaleEstimates/models/SaleEstimate.ts b/packages/server/src/modules/SaleEstimates/models/SaleEstimate.ts index 69721ebf6..6c4ef759b 100644 --- a/packages/server/src/modules/SaleEstimates/models/SaleEstimate.ts +++ b/packages/server/src/modules/SaleEstimates/models/SaleEstimate.ts @@ -12,7 +12,9 @@ import { Customer } from '@/modules/Customers/models/Customer'; import { DiscountType } from '@/common/types/Discount'; import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator'; import { SaleEstimateDefaultViews } from '../constants'; +import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator'; +@InjectAttachable() @ExportableModel() @ImportableModel() @InjectModelMeta(SaleEstimateMeta) diff --git a/packages/server/src/modules/SaleReceipts/models/SaleReceipt.ts b/packages/server/src/modules/SaleReceipts/models/SaleReceipt.ts index 20fb18e09..833cb9a26 100644 --- a/packages/server/src/modules/SaleReceipts/models/SaleReceipt.ts +++ b/packages/server/src/modules/SaleReceipts/models/SaleReceipt.ts @@ -5,6 +5,7 @@ import { BaseModel } from '@/models/Model'; import { ItemEntry } from '@/modules/TransactionItemEntry/models/ItemEntry'; import { Customer } from '@/modules/Customers/models/Customer'; import { AccountTransaction } from '@/modules/Accounts/models/AccountTransaction.model'; +import { Document } from '@/modules/ChromiumlyTenancy/models/Document'; import { Branch } from '@/modules/Branches/models/Branch.model'; import { Warehouse } from '@/modules/Warehouses/models/Warehouse.model'; import { DiscountType } from '@/common/types/Discount'; @@ -15,6 +16,7 @@ import { SearchableBaseModelMixin } from '@/modules/DynamicListing/models/Search import { ExportableModel } from '@/modules/Export/decorators/ExportableModel.decorator'; import { ImportableModel } from '@/modules/Import/decorators/Import.decorator'; import { InjectModelMeta } from '@/modules/Tenancy/TenancyModels/decorators/InjectModelMeta.decorator'; +import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator'; import { SaleReceiptMeta } from './SaleReceipt.meta'; import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator'; import { SaleReceiptDefaultViews } from '../constants'; @@ -26,6 +28,7 @@ const ExtendedModel = R.pipe( MetadataModelMixin, )(BaseModel); +@InjectAttachable() @ExportableModel() @ImportableModel() @InjectModelMeta(SaleReceiptMeta) @@ -58,6 +61,7 @@ export class SaleReceipt extends ExtendedModel { public customer!: Customer; public entries!: ItemEntry[]; public transactions!: AccountTransaction[]; + public attachments!: Document[]; public branch!: Branch; public warehouse!: Warehouse; diff --git a/packages/server/src/modules/SaleReceipts/queries/SaleReceiptTransformer.ts b/packages/server/src/modules/SaleReceipts/queries/SaleReceiptTransformer.ts index b7eddc152..25b2ab529 100644 --- a/packages/server/src/modules/SaleReceipts/queries/SaleReceiptTransformer.ts +++ b/packages/server/src/modules/SaleReceipts/queries/SaleReceiptTransformer.ts @@ -139,22 +139,22 @@ export class SaleReceiptTransformer extends Transformer { }; /** - * Retrieves the entries of the credit note. - * @param {ISaleReceipt} credit + * Retrieves the entries of the sale receipt. + * @param {ISaleReceipt} receipt * @returns {} */ - // protected entries = (receipt: SaleReceipt) => { - // return this.item(receipt.entries, new ItemEntryTransformer(), { - // currencyCode: receipt.currencyCode, - // }); - // }; + protected entries = (receipt: SaleReceipt) => { + return this.item(receipt.entries, new ItemEntryTransformer(), { + currencyCode: receipt.currencyCode, + }); + }; /** * Retrieves the sale receipt attachments. * @param {SaleReceipt} receipt * @returns */ - // protected attachments = (receipt: SaleReceipt) => { - // return this.item(receipt.attachments, new AttachmentTransformer()); - // }; + protected attachments = (receipt: SaleReceipt) => { + return this.item(receipt.attachments, new AttachmentTransformer()); + }; } diff --git a/packages/server/src/modules/VendorCredit/models/VendorCredit.ts b/packages/server/src/modules/VendorCredit/models/VendorCredit.ts index 11912c2b5..d4a5b61fd 100644 --- a/packages/server/src/modules/VendorCredit/models/VendorCredit.ts +++ b/packages/server/src/modules/VendorCredit/models/VendorCredit.ts @@ -11,7 +11,9 @@ import { InjectModelMeta } from '@/modules/Tenancy/TenancyModels/decorators/Inje import { VendorCreditMeta } from './VendorCredit.meta'; import { InjectModelDefaultViews } from '@/modules/Views/decorators/InjectModelDefaultViews.decorator'; import { VendorCreditDefaultViews } from '../constants'; +import { InjectAttachable } from '@/modules/Attachments/decorators/InjectAttachable.decorator'; +@InjectAttachable() @ExportableModel() @ImportableModel() @InjectModelMeta(VendorCreditMeta)