fix: bill response with entries

This commit is contained in:
Ahmed Bouhuolia
2026-01-21 13:39:56 +02:00
parent 785c49f2e6
commit 6da7e8185c
5 changed files with 40 additions and 55 deletions

View File

@@ -51,6 +51,7 @@ export class Bill extends TenantBaseModel {
public updatedAt: Date | null;
public entries?: ItemEntry[];
public attachments!: Document[];
public locatedLandedCosts?: BillLandedCost[];
/**
* Timestamps columns.
@@ -633,7 +634,7 @@ export class Bill extends TenantBaseModel {
return this.query(trx)
.where('id', billId)
[changeMethod]('payment_amount', Math.abs(amount));
[changeMethod]('payment_amount', Math.abs(amount));
}
/**

View File

@@ -1,5 +1,7 @@
import { Transformer } from '@/modules/Transformer/Transformer';
import { Bill } from '../models/Bill';
import { ItemEntryTransformer } from '@/modules/TransactionItemEntry/ItemEntry.transformer';
import { AttachmentTransformer } from '@/modules/Attachments/Attachment.transformer';
export class BillTransformer extends Transformer {
/**
@@ -231,20 +233,18 @@ export class BillTransformer extends Transformer {
/**
* Retrieves the entries of the bill.
* @param {Bill} credit
* @returns {}
*/
// protected entries = (bill: Bill) => {
// return this.item(bill.entries, new ItemEntryTransformer(), {
// currencyCode: bill.currencyCode,
// });
// };
protected entries = (bill: Bill) => {
return this.item(bill.entries, new ItemEntryTransformer(), {
currencyCode: bill.currencyCode,
});
};
/**
* Retrieves the bill attachments.
* @param {ISaleInvoice} invoice
* @returns
* @param {Bill} bill
*/
// protected attachments = (bill: Bill) => {
// return this.item(bill.attachments, new AttachmentTransformer());
// };
protected attachments = (bill: Bill) => {
return this.item(bill.attachments, new AttachmentTransformer());
};
}

View File

@@ -13,9 +13,8 @@ export class UpdateOrganizationService {
private readonly tenancyContext: TenancyContext,
private readonly eventEmitter: EventEmitter2,
private readonly commandOrganizationValidators: CommandOrganizationValidators,
private readonly tenantRepository: TenantRepository,
) {}
) { }
/**
* Updates organization information.

View File

@@ -1,18 +0,0 @@
.root{
padding: 20px;
}
.footer{
margin-top: 2rem;
}
.resourceFormGroup{
max-width: 280px;
}
.paragraph{
color: #5F6B7C;
margin-bottom: 1.2rem;
}

View File

@@ -2,8 +2,8 @@
import { FFormGroup, FRadioGroup, FSelect, Group } from '@/components';
import { Button, Intent, Radio } from '@blueprintjs/core';
import { Form, useFormikContext } from 'formik';
import { x } from '@xstyled/emotion';
import { ExportResources } from './constants';
import styles from './ExportDialogContent.module.scss';
import { compose } from '@/utils';
import { withDialogActions } from '@/containers/Dialog/withDialogActions';
import { DialogsName } from '@/constants/dialogs';
@@ -19,21 +19,22 @@ function ExportDialogFormContentRoot({
return (
<Form>
<div className={styles.root}>
<p className={styles.paragraph}>
<x.div p="20px">
<x.p className="bp4-text-muted" mb="1.2rem">
You can export data from Bigcapital in CSV or XLSX format
</p>
</x.p>
<FFormGroup
name={'resource'}
label={'Select Resource'}
className={styles.resourceFormGroup}
>
<FSelect
name={'resource'}
items={ExportResources}
popoverProps={{ minimal: true }}
/>
<x.div maxWidth="280px">
<FSelect
name={'resource'}
items={ExportResources}
popoverProps={{ minimal: true }}
/>
</x.div>
</FFormGroup>
<FRadioGroup label={'Export As'} name={'format'}>
@@ -41,19 +42,21 @@ function ExportDialogFormContentRoot({
<Radio value={'csv'}>CSV (Comma Seperated Value)</Radio>
</FRadioGroup>
<Group position={'right'} spacing={10} className={styles.footer}>
<Button intent={Intent.NONE} onClick={handleCancelBtnClick}>
Cancel
</Button>
<Button
type={'submit'}
intent={Intent.PRIMARY}
loading={isSubmitting}
>
Export
</Button>
</Group>
</div>
<x.div mt="1.6rem">
<Group position={'right'} spacing={10}>
<Button intent={Intent.NONE} onClick={handleCancelBtnClick}>
Cancel
</Button>
<Button
type={'submit'}
intent={Intent.PRIMARY}
loading={isSubmitting}
>
Export
</Button>
</Group>
</x.div>
</x.div>
</Form>
);
}