From ffe0f4c9274504babd6783a1030160db57bd1828 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Wed, 8 Oct 2025 17:27:36 +0800 Subject: [PATCH] Updated assessor page --- src/pages/AssessorPage/Assessor.tsx | 201 +++++++++++++++++++++++++--- 1 file changed, 180 insertions(+), 21 deletions(-) diff --git a/src/pages/AssessorPage/Assessor.tsx b/src/pages/AssessorPage/Assessor.tsx index 9ce5428..9de12fc 100644 --- a/src/pages/AssessorPage/Assessor.tsx +++ b/src/pages/AssessorPage/Assessor.tsx @@ -1,12 +1,12 @@ import './Assessor.sass' -import { Logo, Page, Row, Padding, ModalButton, Button, Clickable, Link } from '../../components' +import { Logo, Page, Row, Padding, ModalButton, Button, Clickable, Link, Modal, Column, Box } from '../../components' import { FiLogOut } from 'solid-icons/fi' import { Tabs } from '@kobalte/core/tabs' import { ofetch } from 'ofetch' import { onMount, createSignal, Show } from 'solid-js' -// import dayjs from 'dayjs' -// import { checkConnection, createPdf } from '../../utils/functions' -// import { FaSolidThumbsUp } from 'solid-icons/fa' +import dayjs from 'dayjs' +import { checkConnection, createPdf } from '../../utils/functions' +import { FaSolidThumbsUp } from 'solid-icons/fa' import { _employeeName, _employeeId } from '../../stores/employee' import { useNavigate } from '@solidjs/router' @@ -22,23 +22,23 @@ export default () => { const [location, setLocation] = createSignal('') const [type, setType] = createSignal('') const [applicationId, setApplicationId] = createSignal(0) - const [assessorId, setAssessorId] = createSignal(0) + // const [assessorId, setAssessorId] = createSignal(0) - const [gflgu, setGflgu] = createSignal([]) - const [gfdpwh, setGfdpwh] = createSignal([]) - const [tfbo, setTfbo] = createSignal([]) + // const [gflgu, setGflgu] = createSignal([]) + // const [gfdpwh, setGfdpwh] = createSignal([]) + // const [tfbo, setTfbo] = createSignal([]) - const [descriptionList, setDescriptionList] = createSignal([]) - const [amountList, setAmountList] = createSignal([]) - const [dateOpList, setDateOpList] = createSignal([]) + // const [descriptionList, setDescriptionList] = createSignal([]) + // const [amountList, setAmountList] = createSignal([]) + // const [dateOpList, setDateOpList] = createSignal([]) const [applicationList, setApplicationList] = createSignal([]) const [nameList, setNameList] = createSignal([]) const [errorMessage, setErrorMessage] = createSignal('') const [connected, setConnected] = createSignal(true) - const [approved, setApproved] = createSignal(false) - const [approvedApplication, setApprovedApplication] = createSignal('') + const [printed, setPrinted] = createSignal(false) + const [printedApplication, setPrintedApplication] = createSignal('') const [isBuilding, setIsBuilding] = createSignal(false) const [isOccupancy, setIsOccupancy] = createSignal(false) @@ -58,6 +58,37 @@ export default () => { } } + // const calculateAmounts = () => { + // const amounts: string[] = amountList() + // let gflguList: number[] = [] + // let gfdpwhList: number[] = [] + // let tfboList: number[] = [] + + // for (let i = 0; i < amounts.length; i++) { + // const gflgu = parseFloat(amounts[i]) * 0.8 + // const gfdpwh = parseFloat(amounts[i]) * 0.05 + // const tfbo = parseFloat(amounts[i]) * 0.15 + + // const roundedGflgu = parseFloat(gflgu.toFixed(2)) + // const roundedGfdpwh = parseFloat(gfdpwh.toFixed(2)) + // const roundedTfbo = parseFloat(tfbo.toFixed(2)) + + // gflguList.push(roundedGflgu) + // gfdpwhList.push(roundedGfdpwh) + // tfboList.push(roundedTfbo) + // } + + // setGflgu(gflguList) + // setGfdpwh(gfdpwhList) + // setTfbo(tfboList) + // } + + const closeNotification = async () => { + setPrinted(false) + await checkDivision() + await getListForPrinting() + } + const checkDivision = async () => { console.log('AAAA') const building = await checkAccess('BUILDING ORDER OF PAYMENT') @@ -70,6 +101,27 @@ export default () => { setIsElectrical(electrical) } + const getopdetails = async (applicationNo: string) => { + const op = await ofetch(API + 'get-opdetails-electrical/' + applicationNo, { parseResponse: JSON.parse }) + setAssessor(op.result7[0]) + setLocation(op.result5[0]) + setType(op.result6[0]) + setDateOp(dayjs(op.result10[0]).format('MMMM DD, YYYY')) + setApplicationId(op.result11[0]) + // setAssessorId(op.result12[0]) + setTotalOp(calculateTotal(op.result9)) + + // setDescriptionList(op.result8) + // setAmountList(op.result9) + // setDateOpList(op.result10) + // calculateAmounts() + } + + const calculateTotal = (list: number[]) => { + const total = list.map((item) => parseFloat(item.toString())).reduce((acc, curr) => acc + curr, 0) + return total + } + const getListForPrinting = async () => { console.log('BBB') try { @@ -100,6 +152,59 @@ export default () => { return true } + const printHandler = async (application: string) => { + let signed: boolean = false + let forprinting: boolean = false + let updateOrderofpayment: boolean = false + + setConnected(await checkConnection()) + if (connected() === false) { + setErrorMessage('No Connection on Server') + return + } + + signed = await setNewStatus('ELECTRICAL ORDER OF PAYMENT PRINTED', '171', 'ELECOPPRINTED') + if (!signed) return + + forprinting = await setNewStatus('FOR ELECTRICAL OFFICIAL RECEIPT VALIDATION', '98', 'ELECORVALIDATE') + if (!forprinting) return + + updateOrderofpayment = await updateOp() + + if (updateOrderofpayment) { + setPrintedApplication(application) + setPrinted(true) + } + } + + const updateOp = async () => { + try { + await ofetch(API + 'update-opprinted-electrical', { + method: 'POST', + body: { data: parseInt(applicationId().toString()) }, + }) + return true + } catch { + return false + } + } + + const setNewStatus = async (status: string, tag: string, tagword: string) => { + const today = new Date() + const formattedDate = dayjs(today).format('YYYY-MM-DD HH:mm:ss') + const statusid = parseInt(applicationId().toString()) + + try { + await ofetch(API + 'post-newstatus-electrical', { + method: 'POST', + body: { data: statusid, data2: formattedDate, data3: status, data4: tag, data5: tagword, data6: parseInt(employeeId().toString()) }, + }) + return true + } catch { + return false + } + } + const logout = async () => { removeEmployee() navigate('/') @@ -127,7 +232,9 @@ export default () => { - {employeeName()} + + {employeeName()} + @@ -162,7 +269,10 @@ export default () => { -

List of Ready to Approve and Sign Building Order of Payments

+ {/*

List of Ready to Approve and Sign Building Order of Payments

*/} + +

Under Development

+
@@ -180,7 +290,10 @@ export default () => {
-

List of Ready to Approve and Sign Occupancy Order of Payments

+ {/*

List of Ready to Approve and Sign Occupancy Order of Payments

*/} + +

Under Development

+
@@ -198,7 +311,9 @@ export default () => {
-

List of Ready to Print in Electrical Order of Payments

+ createPdf()}> +

List of Ready to Print in Electrical Order of Payments

+
@@ -223,9 +338,9 @@ export default () => { design="bo-link" background="#121e2acc" color="#ffffffec" - // function={async () => { - // await getopdetails(item) - // }} + function={async () => { + await getopdetails(item) + }} > {item} @@ -265,7 +380,7 @@ export default () => { - + Click anywhere to cancel @@ -281,6 +396,50 @@ export default () => { + +
+ + + + + + + Printed + + + +

{printedApplication()}

+
+ + + Click anywhere to proceed + +
+
+
+
+ +
setConnected(true)}> + + + + + +

Connection Error

+
+
+ + +

{errorMessage()}

+
+ + + Click anywhere to close + +
+
+
+
) }