feat: wip UI upload attachments

This commit is contained in:
Ahmed Bouhuolia
2024-05-28 23:34:51 +02:00
parent fcd61c6159
commit cfdbcea9c0
49 changed files with 286 additions and 67 deletions

View File

@@ -2,6 +2,7 @@ import { IBillPayment } from '@/interfaces';
import { Transformer } from '@/lib/Transformer/Transformer';
import { formatNumber } from 'utils';
import { BillPaymentEntryTransformer } from './BillPaymentEntryTransformer';
import { AttachmentTransformer } from '@/services/Attachments/AttachmentTransformer';
export class BillPaymentTransformer extends Transformer {
/**
@@ -9,7 +10,12 @@ export class BillPaymentTransformer extends Transformer {
* @returns {Array}
*/
public includeAttributes = (): string[] => {
return ['formattedPaymentDate', 'formattedAmount', 'entries'];
return [
'formattedPaymentDate',
'formattedAmount',
'entries',
'attachments',
];
};
/**
@@ -38,4 +44,13 @@ export class BillPaymentTransformer extends Transformer {
protected entries = (billPayment) => {
return this.item(billPayment.entries, new BillPaymentEntryTransformer());
};
/**
* Retrieves the bill attachments.
* @param {ISaleInvoice} invoice
* @returns
*/
protected attachments = (billPayment) => {
return this.item(billPayment.attachments, new AttachmentTransformer());
};
}

View File

@@ -1,6 +1,6 @@
import { Inject, Service } from 'typedi';
import * as R from 'ramda';
import { sumBy } from 'lodash';
import { omit, sumBy } from 'lodash';
import { IBillPayment, IBillPaymentDTO, IVendor } from '@/interfaces';
import { BranchTransactionDTOTransform } from '@/services/Branches/Integrations/BranchTransactionDTOTransform';
import { formatDateFields } from '@/utils';
@@ -24,7 +24,9 @@ export class CommandBillPaymentDTOTransformer {
oldBillPayment?: IBillPayment
): Promise<IBillPayment> {
const initialDTO = {
...formatDateFields(billPaymentDTO, ['paymentDate']),
...formatDateFields(omit(billPaymentDTO, ['attachments']), [
'paymentDate',
]),
amount: sumBy(billPaymentDTO.entries, 'paymentAmount'),
currencyCode: vendor.currencyCode,
exchangeRate: billPaymentDTO.exchangeRate || 1,

View File

@@ -13,7 +13,7 @@ export class GetBillPayment {
private transformer: TransformerInjectable;
/**
* Retrieve bill payment.
* Retrieves bill payment.
* @param {number} tenantId
* @param {number} billPyamentId
* @return {Promise<IBillPayment>}
@@ -30,6 +30,7 @@ export class GetBillPayment {
.withGraphFetched('paymentAccount')
.withGraphFetched('transactions')
.withGraphFetched('branch')
.withGraphFetched('attachments')
.findById(billPyamentId)
.throwIfNotFound();

View File

@@ -29,7 +29,8 @@ export class GetBill {
.withGraphFetched('vendor')
.withGraphFetched('entries.item')
.withGraphFetched('branch')
.withGraphFetched('taxes.taxRate');
.withGraphFetched('taxes.taxRate')
.withGraphFetched('attachments');
// Validates the bill existance.
this.validators.validateBillExistance(bill);

View File

@@ -1,5 +1,6 @@
import { IBill } from '@/interfaces';
import { Transformer } from '@/lib/Transformer/Transformer';
import { AttachmentTransformer } from '@/services/Attachments/AttachmentTransformer';
import { ItemEntryTransformer } from '@/services/Sales/Invoices/ItemEntryTransformer';
import { SaleInvoiceTaxEntryTransformer } from '@/services/Sales/Invoices/SaleInvoiceTaxEntryTransformer';
import { formatNumber } from 'utils';
@@ -26,6 +27,7 @@ export class PurchaseInvoiceTransformer extends Transformer {
'totalLocalFormatted',
'taxes',
'entries',
'attachments',
];
};
@@ -192,4 +194,13 @@ export class PurchaseInvoiceTransformer extends Transformer {
currencyCode: bill.currencyCode,
});
};
/**
* Retrieves the bill attachments.
* @param {ISaleInvoice} invoice
* @returns
*/
protected attachments = (bill) => {
return this.item(bill.attachments, new AttachmentTransformer());
};
}

View File

@@ -64,7 +64,7 @@ export default class BaseVendorCredit {
autoNextNumber;
const initialDTO = {
...omit(vendorCreditDTO, ['open']),
...omit(vendorCreditDTO, ['open', 'attachments']),
amount,
currencyCode: vendorCurrencyCode,
exchangeRate: vendorCreditDTO.exchangeRate || 1,

View File

@@ -26,7 +26,8 @@ export default class GetVendorCredit {
.findById(vendorCreditId)
.withGraphFetched('entries.item')
.withGraphFetched('vendor')
.withGraphFetched('branch');
.withGraphFetched('branch')
.withGraphFetched('attachments');
if (!vendorCredit) {
throw new ServiceError(ERRORS.VENDOR_CREDIT_NOT_FOUND);

View File

@@ -1,5 +1,6 @@
import { IVendorCredit } from '@/interfaces';
import { Transformer } from '@/lib/Transformer/Transformer';
import { AttachmentTransformer } from '@/services/Attachments/AttachmentTransformer';
import { ItemEntryTransformer } from '@/services/Sales/Invoices/ItemEntryTransformer';
import { formatNumber } from 'utils';
@@ -16,6 +17,7 @@ export class VendorCreditTransformer extends Transformer {
'formattedCreditsRemaining',
'formattedInvoicedAmount',
'entries',
'attachments',
];
};
@@ -80,4 +82,13 @@ export class VendorCreditTransformer extends Transformer {
currencyCode: vendorCredit.currencyCode,
});
};
/**
* Retrieves the vendor credit attachments.
* @param {IVendorCredit} invoice
* @returns
*/
protected attachments = (vendorCredit) => {
return this.item(vendorCredit.attachments, new AttachmentTransformer());
};
}