Add address fields to sales invoices and implement related validations

- Introduced new columns `address`, `latitude`, and `longitude` in the `sales_invoices` table to store location details.
- Updated the `SalesInvoicesService` to handle the new fields, including validation for address format and geographical coordinates.
- Enhanced the `SalesInvoiceDto` and related data transfer objects to include the new fields for API requests and responses.
- Added unit and e2e tests to ensure proper handling of the new fields and validate their integration within the sales invoice workflow.
- Created a new migration script to apply the database schema changes for the sales invoices.
This commit is contained in:
shancheas
2026-09-01 09:50:19 +07:00
parent 23028abd48
commit 0e73d14381
23 changed files with 444 additions and 33 deletions
@@ -15,7 +15,9 @@ describe('parseGroupNamesQuery', () => {
it('reads array values', () => {
expect(
parseGroupNamesQuery({ groupNames: ['sales_report', 'logistics_report'] }),
parseGroupNamesQuery({
groupNames: ['sales_report', 'logistics_report'],
}),
).toEqual(['sales_report', 'logistics_report']);
});
});
@@ -1,10 +1,6 @@
export function parseGroupNamesQuery(
query: Record<string, unknown>,
): string[] {
export function parseGroupNamesQuery(query: Record<string, unknown>): string[] {
const raw =
query.groupNames ??
query['groupNames[]'] ??
query['groupNames[0]'];
query.groupNames ?? query['groupNames[]'] ?? query['groupNames[0]'];
if (raw === undefined || raw === null || raw === '') {
return [];