mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 20:30:33 +00:00
139 lines
3.8 KiB
TypeScript
139 lines
3.8 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
Delete,
|
|
Get,
|
|
Param,
|
|
Post,
|
|
Put,
|
|
Query,
|
|
} from '@nestjs/common';
|
|
import { BillPaymentsApplication } from './BillPaymentsApplication.service';
|
|
import { ApiOperation, ApiParam, ApiTags } from '@nestjs/swagger';
|
|
import {
|
|
CreateBillPaymentDto,
|
|
EditBillPaymentDto,
|
|
} from './dtos/BillPayment.dto';
|
|
import { GetBillPaymentsFilterDto } from './dtos/GetBillPaymentsFilter.dto';
|
|
import { BillPaymentsPages } from './commands/BillPaymentsPages.service';
|
|
|
|
@Controller('bill-payments')
|
|
@ApiTags('bill-payments')
|
|
export class BillPaymentsController {
|
|
constructor(
|
|
private billPaymentsApplication: BillPaymentsApplication,
|
|
private billPaymentsPagesService: BillPaymentsPages,
|
|
) {}
|
|
|
|
@Post()
|
|
@ApiOperation({ summary: 'Create a new bill payment.' })
|
|
public createBillPayment(@Body() billPaymentDTO: CreateBillPaymentDto) {
|
|
return this.billPaymentsApplication.createBillPayment(billPaymentDTO);
|
|
}
|
|
|
|
@Delete(':billPaymentId')
|
|
@ApiOperation({ summary: 'Delete the given bill payment.' })
|
|
@ApiParam({
|
|
name: 'billPaymentId',
|
|
required: true,
|
|
type: Number,
|
|
description: 'The bill payment id',
|
|
})
|
|
public deleteBillPayment(@Param('billPaymentId') billPaymentId: string) {
|
|
return this.billPaymentsApplication.deleteBillPayment(
|
|
Number(billPaymentId),
|
|
);
|
|
}
|
|
|
|
@Put(':billPaymentId')
|
|
@ApiOperation({ summary: 'Edit the given bill payment.' })
|
|
@ApiParam({
|
|
name: 'billPaymentId',
|
|
required: true,
|
|
type: Number,
|
|
description: 'The bill payment id',
|
|
})
|
|
public editBillPayment(
|
|
@Param('billPaymentId') billPaymentId: string,
|
|
@Body() billPaymentDTO: EditBillPaymentDto,
|
|
) {
|
|
return this.billPaymentsApplication.editBillPayment(
|
|
Number(billPaymentId),
|
|
billPaymentDTO,
|
|
);
|
|
}
|
|
|
|
@Get('/new-page/entries')
|
|
@ApiOperation({
|
|
summary:
|
|
'Retrieves the payable entries of the new page once vendor be selected.',
|
|
})
|
|
@ApiParam({
|
|
name: 'vendorId',
|
|
required: true,
|
|
type: Number,
|
|
description: 'The vendor id',
|
|
})
|
|
async getBillPaymentNewPageEntries(@Query('vendorId') vendorId: number) {
|
|
const entries =
|
|
await this.billPaymentsPagesService.getNewPageEntries(vendorId);
|
|
|
|
return entries;
|
|
}
|
|
|
|
@Get(':billPaymentId/bills')
|
|
@ApiOperation({ summary: 'Retrieves the bills of the given bill payment.' })
|
|
@ApiParam({
|
|
name: 'billPaymentId',
|
|
required: true,
|
|
type: Number,
|
|
description: 'The bill payment id',
|
|
})
|
|
public getPaymentBills(@Param('billPaymentId') billPaymentId: string) {
|
|
return this.billPaymentsApplication.getPaymentBills(Number(billPaymentId));
|
|
}
|
|
|
|
@Get('/:billPaymentId/edit-page')
|
|
@ApiOperation({
|
|
summary: 'Retrieves the edit page of the given bill payment.',
|
|
})
|
|
@ApiParam({
|
|
name: 'billPaymentId',
|
|
required: true,
|
|
type: Number,
|
|
description: 'The bill payment id',
|
|
})
|
|
public async getBillPaymentEditPage(
|
|
@Param('billPaymentId') billPaymentId: number,
|
|
) {
|
|
const billPaymentsWithEditEntries =
|
|
await this.billPaymentsPagesService.getBillPaymentEditPage(billPaymentId);
|
|
|
|
return billPaymentsWithEditEntries;
|
|
}
|
|
|
|
@Get(':billPaymentId')
|
|
@ApiOperation({ summary: 'Retrieves the bill payment details.' })
|
|
@ApiParam({
|
|
name: 'billPaymentId',
|
|
required: true,
|
|
type: Number,
|
|
description: 'The bill payment id',
|
|
})
|
|
public getBillPayment(@Param('billPaymentId') billPaymentId: string) {
|
|
return this.billPaymentsApplication.getBillPayment(Number(billPaymentId));
|
|
}
|
|
|
|
@Get()
|
|
@ApiOperation({ summary: 'Retrieves the bill payments list.' })
|
|
@ApiParam({
|
|
name: 'filterDTO',
|
|
required: true,
|
|
type: GetBillPaymentsFilterDto,
|
|
description: 'The bill payments filter dto',
|
|
})
|
|
public getBillPayments(@Query() filterDTO: GetBillPaymentsFilterDto) {
|
|
return this.billPaymentsApplication.getBillPayments(filterDTO);
|
|
}
|
|
}
|