70 lines
2.1 KiB
TypeScript
70 lines
2.1 KiB
TypeScript
import { UpdateCustomerInvoiceByIdResponseDTO } from "@erp/customer-invoices/common/dto";
|
|
import { toEmptyString } from "@repo/rdx-ddd";
|
|
import { CustomerInvoice } from "../../../domain";
|
|
import { GetCustomerInvoiceItemsAssembler } from "./get-invoice-items.assembler";
|
|
|
|
export class GetCustomerInvoiceAssembler {
|
|
private _itemsAssembler!: GetCustomerInvoiceItemsAssembler;
|
|
|
|
constructor() {
|
|
this._itemsAssembler = new GetCustomerInvoiceItemsAssembler();
|
|
}
|
|
|
|
public toDTO(invoice: CustomerInvoice): UpdateCustomerInvoiceByIdResponseDTO {
|
|
const items = this._itemsAssembler.toDTO(invoice);
|
|
|
|
return {
|
|
id: invoice.id.toString(),
|
|
company_id: invoice.companyId.toString(),
|
|
|
|
invoice_number: invoice.invoiceNumber.toString(),
|
|
status: invoice.status.toPrimitive(),
|
|
series: toEmptyString(invoice.series, (value) => value.toString()),
|
|
|
|
invoice_date: invoice.invoiceDate.toDateString(),
|
|
operation_date: toEmptyString(invoice.operationDate, (value) => value.toDateString()),
|
|
|
|
notes: toEmptyString(invoice.notes, (value) => value.toString()),
|
|
|
|
language_code: invoice.languageCode.toString(),
|
|
currency_code: invoice.currencyCode.toString(),
|
|
|
|
/*subtotal_amount: {
|
|
value: invoice.subtotalAmount.value.toString(),
|
|
scale: invoice.subtotalAmount.scale.toString(),
|
|
},
|
|
|
|
discount_percentage: {
|
|
value: invoice.discountPercentage.value.toString(),
|
|
scale: invoice.discountPercentage.scale.toString(),
|
|
},
|
|
|
|
discount_amount: {
|
|
value: invoice.discountAmount.value.toString(),
|
|
scale: invoice.discountAmount.scale.toString(),
|
|
},
|
|
|
|
taxable_amount: {
|
|
value: invoice.taxableAmount.value.toString(),
|
|
scale: invoice.taxableAmount.scale.toString(),
|
|
},
|
|
|
|
tax_amount: {
|
|
value: invoice.taxAmount.value.toString(),
|
|
scale: invoice.taxAmount.scale.toString(),
|
|
},
|
|
|
|
total_amount: {
|
|
value: invoice.totalAmount.value.toString(),
|
|
scale: invoice.totalAmount.scale.toString(),
|
|
},*/
|
|
|
|
items,
|
|
|
|
metadata: {
|
|
entity: "customer-invoices",
|
|
},
|
|
};
|
|
}
|
|
}
|