diff --git a/backend/main.go b/backend/main.go index b0b0cce..645f722 100644 --- a/backend/main.go +++ b/backend/main.go @@ -120,6 +120,34 @@ func connect() { "result2": array2, }) + case "get-listopprinting-electrical": + var result2 string + + array := []string{} + array2 := []string{} + + results, err := db.Query(`SELECT IFNULL(e.electricalno, '') AS result, IF(c.firstName IS NULL OR c.firstName = '', c.lastName, CONCAT(c.firstName, ' ', IF(c.middleInitial IS NULL OR c.middleInitial = '', '', CONCAT(c.middleInitial, '. ')), c.lastName) ) AS result2 + FROM iips.electrical e JOIN iips.customer c ON e.customerid = c.customerid JOIN iips.ref_elec_occupancy ec ON e.ref_elec_occupancyid = ec.ref_elec_occupancyid JOIN iips.electricaldocflowtxn ed ON e.electricalid = ed.electricalid JOIN (SELECT electricalid, MAX(electricaldocflowtxnid) AS latest_electricaldocflowtxnid FROM electricaldocflowtxn GROUP BY electricalid) latest_doc ON ed.electricalid = latest_doc.electricalid AND ed.electricaldocflowtxnid = latest_doc.latest_electricaldocflowtxnid WHERE remarks = ? AND is_approve = 0 ORDER BY e.electricalno ASC`, "FOR ELECTRICAL ORDER OF PAYMENT PRINTING") + if err != nil { + c.AbortWithError(http.StatusBadRequest, err) + c.String(http.StatusBadRequest, err.Error()) + return + } + for results.Next() { + err = results.Scan(&result, &result2) + if err != nil { + c.AbortWithError(http.StatusBadRequest, err) + c.String(http.StatusBadRequest, err.Error()) + return + } + array = append(array, result) + array2 = append(array2, result2) + } + c.JSON(http.StatusOK, gin.H{ + "result": array, + "result2": array2, + }) + case "get-list-assessors": array := []string{} @@ -670,6 +698,33 @@ func connect() { }) + router.GET("/api/:method/:data/:data2", func(c *gin.Context) { + var result string + method := c.Param("method") + data := c.Param("data") + data2 := c.Param("data2") + + c.Writer.Header().Set("X-XSS-Protection", "1; mode=block") + c.Writer.Header().Set("X-Content-Type-Options", "nosniff") + c.Writer.Header().Set("X-DNS-Prefetch-Control", "off") + c.Writer.Header().Set("X-Frame-Options", "DENY") + c.Writer.Header().Set("X-Download-Options", "noopen") + c.Writer.Header().Set("Referrer-Policy", "no-referrer") + + switch method { + case "check-access": + err = db.QueryRow("SELECT COUNT(accessid) AS result FROM access a JOIN ref_access ra ON a.ref_accessid = ra.ref_accessid AND ra.access = ? and employeeid = ?", data, data2).Scan(&result) + if err != nil { + c.AbortWithError(http.StatusBadRequest, err) + c.String(http.StatusBadRequest, err.Error()) + return + } + c.JSON(http.StatusOK, gin.H{ + "result": result, + }) + } + }) + router.POST("/api/post-newstatus-electrical", func(c *gin.Context) { type RegistrationData struct { Data int `json:"data"` diff --git a/src/pages/AssessorPage/Assessor.sass b/src/pages/AssessorPage/Assessor.sass new file mode 100644 index 0000000..1e0b5bc --- /dev/null +++ b/src/pages/AssessorPage/Assessor.sass @@ -0,0 +1 @@ +@use '/src/styles/classes.sass' diff --git a/src/pages/AssessorPage/Assessor.tsx b/src/pages/AssessorPage/Assessor.tsx new file mode 100644 index 0000000..be4b469 --- /dev/null +++ b/src/pages/AssessorPage/Assessor.tsx @@ -0,0 +1,204 @@ +import './Assessor.sass' +import { Logo, Link, Page, Row, Padding, ModalButton, Box, Button, Modal, Column } from '../../components' +import { FiLogOut } from 'solid-icons/fi' +import { Tabs } from '@kobalte/core/tabs' +import { ofetch } from 'ofetch' +import { onMount, createSignal } from 'solid-js' +import dayjs from 'dayjs' +import { checkConnection, createPdf } from '../../utils/functions' +import { FaSolidThumbsUp } from 'solid-icons/fa' +import { _employeeName } from '../../stores/employee' + +const API = import.meta.env.VITE_BACKEND +const PESO = import.meta.env.VITE_PESO +const ID = import.meta.env.VITE_HEADID + +export default () => { + const [totalOp, setTotalOp] = createSignal(0) + const [assessor, setAssessor] = createSignal('') + const [dateOp, setDateOp] = createSignal('') + const [location, setLocation] = createSignal('') + const [type, setType] = createSignal('') + const [applicationId, setApplicationId] = createSignal(0) + const [assessorId, setAssessorId] = createSignal(0) + + 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 [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('') + + return ( + <> + + + + + + +

OCBO e-Sign

+
+ + + + {_employeeName.get()} + + + + Logout + + + +
+ + + + + + + Building + + + Occupancy + + + Electrical + + + + + + + +

List of Ready to Approve and Sign Building Order of Payments

+
+ + + + + {/* + + + + */} + + +
Application NumberNameShow Details
+
+
+ + +

List of Ready to Approve and Sign Occupancy Order of Payments

+
+ + + + + {/* + + + + */} + + +
Application NumberNameShow Details
+
+
+ + +

List of Ready to Approve and Sign Electrical Order of Payments

+
+ + + + + + + + + + + + {applicationList().map((item, index) => ( + + + + + + + ))} + +
Application NumberNameShow Details
{item}{nameList()[index]} + { + // await getopdetails(item) + // }} + > + + {item} + + + + + + + + + + + + + + + + + + Click anywhere to cancel + + + +
+
+
+
+
+
+
+ + ) +} diff --git a/src/routes.tsx b/src/routes.tsx index 35d4668..fa10cbe 100644 --- a/src/routes.tsx +++ b/src/routes.tsx @@ -20,6 +20,10 @@ export const routes: RouteDefinition[] = [ path: '/login', component: lazy(() => import('./pages/LoginPage/Login.tsx')), }, + { + path: '/assessor', + component: lazy(() => import('./pages/AssessorPage/Assessor.tsx')), + }, { path: '**', component: lazy(() => import('./errors/404')),