mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-18 22:00:31 +00:00
refactor: nestjs
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { ItemEntryDto } from '@/modules/TransactionItemEntry/dto/ItemEntry.dto';
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
import { Type } from 'class-transformer';
|
||||
import {
|
||||
IsArray,
|
||||
@@ -31,89 +32,159 @@ class PaymentMethodDto {
|
||||
class CommandSaleInvoiceDto {
|
||||
@IsInt()
|
||||
@IsNotEmpty()
|
||||
@ApiProperty({ description: 'Customer ID', example: 1 })
|
||||
customerId: number;
|
||||
|
||||
@IsDate()
|
||||
@Type(() => Date)
|
||||
@IsNotEmpty()
|
||||
@ApiProperty({ description: 'Invoice date', example: '2023-01-01T00:00:00Z' })
|
||||
invoiceDate: Date;
|
||||
|
||||
@IsDate()
|
||||
@Type(() => Date)
|
||||
@IsNotEmpty()
|
||||
@ApiProperty({ description: 'Due date', example: '2023-01-15T00:00:00Z' })
|
||||
dueDate: Date;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
@ApiProperty({
|
||||
description: 'Invoice number',
|
||||
required: false,
|
||||
example: 'INV-001',
|
||||
})
|
||||
invoiceNo?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
@ApiProperty({
|
||||
description: 'Reference number',
|
||||
required: false,
|
||||
example: 'REF-001',
|
||||
})
|
||||
referenceNo?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
@ApiProperty({
|
||||
description: 'Whether the invoice is delivered',
|
||||
default: false,
|
||||
required: false,
|
||||
})
|
||||
delivered: boolean = false;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
@ApiProperty({
|
||||
description: 'Invoice message',
|
||||
required: false,
|
||||
example: 'Thank you for your business',
|
||||
})
|
||||
invoiceMessage?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
@ApiProperty({
|
||||
description: 'Terms and conditions',
|
||||
required: false,
|
||||
example: 'Payment due within 14 days',
|
||||
})
|
||||
termsConditions?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsNumber()
|
||||
@Min(0)
|
||||
@ApiProperty({
|
||||
description: 'Exchange rate',
|
||||
required: false,
|
||||
minimum: 0,
|
||||
example: 1.0,
|
||||
})
|
||||
exchangeRate?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
@ApiProperty({ description: 'Warehouse ID', required: false, example: 1 })
|
||||
warehouseId?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
@ApiProperty({ description: 'Branch ID', required: false, example: 1 })
|
||||
branchId?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
@ApiProperty({ description: 'Project ID', required: false, example: 1 })
|
||||
projectId?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
@ApiProperty({
|
||||
description: 'Whether tax is inclusive',
|
||||
required: false,
|
||||
example: false,
|
||||
})
|
||||
isInclusiveTax?: boolean;
|
||||
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
@Type(() => ItemEntryDto)
|
||||
@MinLength(1)
|
||||
@ApiProperty({
|
||||
description: 'Invoice line items',
|
||||
type: [ItemEntryDto],
|
||||
minItems: 1,
|
||||
})
|
||||
entries: ItemEntryDto[];
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
@ApiProperty({ description: 'PDF template ID', required: false, example: 1 })
|
||||
pdfTemplateId?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
@Type(() => PaymentMethodDto)
|
||||
@ApiProperty({
|
||||
description: 'Payment methods',
|
||||
type: [PaymentMethodDto],
|
||||
required: false,
|
||||
})
|
||||
paymentMethods?: PaymentMethodDto[];
|
||||
|
||||
@IsOptional()
|
||||
@IsNumber()
|
||||
@ApiProperty({ description: 'Discount value', required: false, example: 10 })
|
||||
discount?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsEnum(DiscountType)
|
||||
@ApiProperty({
|
||||
description: 'Discount type',
|
||||
enum: DiscountType,
|
||||
required: false,
|
||||
example: DiscountType.Percentage,
|
||||
})
|
||||
discountType?: DiscountType;
|
||||
|
||||
@IsOptional()
|
||||
@IsNumber()
|
||||
@ApiProperty({
|
||||
description: 'Adjustment amount',
|
||||
required: false,
|
||||
example: 5,
|
||||
})
|
||||
adjustment?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
@ApiProperty({
|
||||
description: 'ID of the estimate this invoice is created from',
|
||||
required: false,
|
||||
example: 1,
|
||||
})
|
||||
fromEstimateId?: number;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user