Spaces:
Runtime error
Runtime error
Bansari Akhani commited on
Commit ·
0212fa2
1
Parent(s): 68affe5
set dafult bill split account for vendor if set
Browse files
src/controllers/invoice/invoice.controller.ts
CHANGED
|
@@ -17,7 +17,7 @@ import { logInvoiceAction } from "../invoiceActivityLogs.controller";
|
|
| 17 |
import InvoiceApproval from "../../models/invoiceApproval";
|
| 18 |
import Role from "../../models/roles";
|
| 19 |
import { AuthenticatedRequest } from "shared/interfaces/user.interface";
|
| 20 |
-
import {
|
| 21 |
|
| 22 |
export const createInvoice = async (req: Request, res: Response) => {
|
| 23 |
const files = req.files as Express.Multer.File[];
|
|
@@ -66,6 +66,10 @@ export const createInvoice = async (req: Request, res: Response) => {
|
|
| 66 |
);
|
| 67 |
const invoiceDate = new Date(aiServiceData.billDate);
|
| 68 |
const dueDate = new Date(aiServiceData.dueDate);
|
|
|
|
|
|
|
|
|
|
|
|
|
| 69 |
let invoiceRecord = {
|
| 70 |
reference_number: aiServiceData.refNo,
|
| 71 |
invoice_number: aiServiceData.refNo,
|
|
@@ -126,7 +130,7 @@ export const createInvoice = async (req: Request, res: Response) => {
|
|
| 126 |
pw_portfolio_id: portfolioId,
|
| 127 |
pw_building_id: buildingId,
|
| 128 |
pw_unit_id: unitId,
|
| 129 |
-
pw_gl_account_id: details.glAccount ? details.glAccount : null,
|
| 130 |
amount: details.amount,
|
| 131 |
description: details.description,
|
| 132 |
};
|
|
@@ -619,7 +623,6 @@ export const updateInvoice = async (req: Request & { user: { id: number } }, res
|
|
| 619 |
pw_work_order_id: invoice.pw_work_order_id,
|
| 620 |
filename: invoice.filename,
|
| 621 |
pdf_url: invoice.pdf_url,
|
| 622 |
-
uploaded_by: invoice.uploaded_by,
|
| 623 |
};
|
| 624 |
|
| 625 |
await updateInvoiceData(existingInvoice.id as number, updatedInvoiceData, userId);
|
|
|
|
| 17 |
import InvoiceApproval from "../../models/invoiceApproval";
|
| 18 |
import Role from "../../models/roles";
|
| 19 |
import { AuthenticatedRequest } from "shared/interfaces/user.interface";
|
| 20 |
+
import { isVendorHasDefaultBillsplitAccount } from "../../controllers/propertyware/vendors.controller";
|
| 21 |
|
| 22 |
export const createInvoice = async (req: Request, res: Response) => {
|
| 23 |
const files = req.files as Express.Multer.File[];
|
|
|
|
| 66 |
);
|
| 67 |
const invoiceDate = new Date(aiServiceData.billDate);
|
| 68 |
const dueDate = new Date(aiServiceData.dueDate);
|
| 69 |
+
|
| 70 |
+
// check if vendor has default bill split ID defined in Propertyware
|
| 71 |
+
const isDefaultBillsplitAccountSet = await isVendorHasDefaultBillsplitAccount(aiServiceData.vendor_id);
|
| 72 |
+
|
| 73 |
let invoiceRecord = {
|
| 74 |
reference_number: aiServiceData.refNo,
|
| 75 |
invoice_number: aiServiceData.refNo,
|
|
|
|
| 130 |
pw_portfolio_id: portfolioId,
|
| 131 |
pw_building_id: buildingId,
|
| 132 |
pw_unit_id: unitId,
|
| 133 |
+
pw_gl_account_id: isDefaultBillsplitAccountSet? isDefaultBillsplitAccountSet : (details.glAccount ? details.glAccount : null),
|
| 134 |
amount: details.amount,
|
| 135 |
description: details.description,
|
| 136 |
};
|
|
|
|
| 623 |
pw_work_order_id: invoice.pw_work_order_id,
|
| 624 |
filename: invoice.filename,
|
| 625 |
pdf_url: invoice.pdf_url,
|
|
|
|
| 626 |
};
|
| 627 |
|
| 628 |
await updateInvoiceData(existingInvoice.id as number, updatedInvoiceData, userId);
|
src/controllers/propertyware/vendors.controller.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
import { Request, Response } from 'express';
|
| 2 |
|
| 3 |
-
import { fetchVendors } from '../../shared/services/propertyware.service';
|
| 4 |
import { logger } from '../../utils/logger';
|
| 5 |
|
| 6 |
export const fetchVendorsData = async (req: Request, res: Response) => {
|
|
@@ -19,3 +19,13 @@ export const fetchVendorsData = async (req: Request, res: Response) => {
|
|
| 19 |
res.status(500).json({ error: 'Error fetching Vendors' });
|
| 20 |
}
|
| 21 |
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
import { Request, Response } from 'express';
|
| 2 |
|
| 3 |
+
import { fetchVendorById, fetchVendors } from '../../shared/services/propertyware.service';
|
| 4 |
import { logger } from '../../utils/logger';
|
| 5 |
|
| 6 |
export const fetchVendorsData = async (req: Request, res: Response) => {
|
|
|
|
| 19 |
res.status(500).json({ error: 'Error fetching Vendors' });
|
| 20 |
}
|
| 21 |
};
|
| 22 |
+
|
| 23 |
+
export const isVendorHasDefaultBillsplitAccount = async (vendorId: number) => {
|
| 24 |
+
const vendor = await fetchVendorById(vendorId);
|
| 25 |
+
console.log("vendor : " + vendor);
|
| 26 |
+
if (vendor && vendor.defaultBillSplitAccountId){
|
| 27 |
+
return vendor.defaultBillSplitAccountId;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
return false;
|
| 31 |
+
};
|
src/shared/services/propertyware.service.ts
CHANGED
|
@@ -15,6 +15,11 @@ export const fetchVendors = async (params = []) => {
|
|
| 15 |
return response.data;
|
| 16 |
};
|
| 17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
export const fetchPortfolio = async (params = []) => {
|
| 19 |
const response = await apiClientPW.get(`/portfolios`, { params });
|
| 20 |
return response.data;
|
|
@@ -55,7 +60,6 @@ export const fetchWorkorderById = async (workOrderID: number) => {
|
|
| 55 |
return response.data;
|
| 56 |
};
|
| 57 |
|
| 58 |
-
|
| 59 |
export const createBill = async (params: unknown) => {
|
| 60 |
const response = await apiClientPW.post(`/bills/`, params);
|
| 61 |
return response.data;
|
|
@@ -72,6 +76,5 @@ export const uploadBill = async (billId: string, params: FormData) => {
|
|
| 72 |
|
| 73 |
export const fetchAllWorkorders = async () => {
|
| 74 |
const response = await apiClientPW.get(`/workorders`);
|
| 75 |
-
console.log(response);
|
| 76 |
return response.data;
|
| 77 |
};
|
|
|
|
| 15 |
return response.data;
|
| 16 |
};
|
| 17 |
|
| 18 |
+
export const fetchVendorById = async (vendorId: number) => {
|
| 19 |
+
const response = await apiClientPW.get(`/vendors/${vendorId}`);
|
| 20 |
+
return response.data;
|
| 21 |
+
};
|
| 22 |
+
|
| 23 |
export const fetchPortfolio = async (params = []) => {
|
| 24 |
const response = await apiClientPW.get(`/portfolios`, { params });
|
| 25 |
return response.data;
|
|
|
|
| 60 |
return response.data;
|
| 61 |
};
|
| 62 |
|
|
|
|
| 63 |
export const createBill = async (params: unknown) => {
|
| 64 |
const response = await apiClientPW.post(`/bills/`, params);
|
| 65 |
return response.data;
|
|
|
|
| 76 |
|
| 77 |
export const fetchAllWorkorders = async () => {
|
| 78 |
const response = await apiClientPW.get(`/workorders`);
|
|
|
|
| 79 |
return response.data;
|
| 80 |
};
|