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 { ApprovalData } from "shared/interfaces/invoice.interface";
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
  };