diff --git a/backend/main.go b/backend/main.go index 82f8547..b8f7248 100644 --- a/backend/main.go +++ b/backend/main.go @@ -444,7 +444,7 @@ func connect() { array2 := []string{} results, err := db.Query(`SELECT IFNULL(DATE_FORMAT(b.txndate, '%M %d, %Y'), '') AS result, IFNULL(REPLACE(b.remarks, 'RECEIVE', 'RECEIVED'), '') AS result2 - FROM occupancydocflowtxn b, occupancy o WHERE o.occupancyid = b.occupancyreceivingid AND o.controlNo = ? ORDER BY b.occupancydocflowtxnid DESC`, data) + FROM occupancydocflowtxn b, occupancy o WHERE o.occupancyid = b.occupancyreceivingid AND o.controlNo = ? ORDER BY b.occupancydocflowtxnid DESC`, data) if err != nil { c.AbortWithError(http.StatusBadRequest, err) c.String(http.StatusBadRequest, err.Error()) @@ -1030,6 +1030,28 @@ func connect() { "result8": array8, "result9": array9, }) + + case "check-bldgadditional-approval": + err := db.QueryRow("SELECT COUNT(building_orderofpaymentid) AS result FROM building_orderofpayment WHERE occupancyid = (SELECT occupancyid FROM occupancy WHERE controlNo = ?) AND for_approval = 1 AND is_approve = 0 AND popstransmitted = 0 AND is_paid = 0 AND is_delete = 0", data).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, + }) + + case "check-bldgadditional-printing": + err := db.QueryRow("SELECT COUNT(building_orderofpaymentid) AS result FROM building_orderofpayment WHERE occupancyid = (SELECT occupancyid FROM occupancy WHERE controlNo = ?) AND for_approval = 1 AND is_approve = 1 AND popstransmitted = 0 AND is_paid = 0 AND is_delete = 0", data).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, + }) } }) @@ -1259,6 +1281,53 @@ func connect() { } }) + // router.POST("/api/update-docflow-bldgadditional", middleware.TokenChecker(), func(c *gin.Context) { + // type UpdateDocflowData struct { + // Data string `json:"data"` + // Data2 string `json:"data2"` + // } + // var updateDocflowData UpdateDocflowData + // if err := c.ShouldBindJSON(&updateDocflowData); err != nil { + // c.String(http.StatusBadRequest, "Invalid request body") + // return + // } + + // 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") + + // dbpost, err := db.Prepare("UPDATE occupancydocflowtxn SET is_approve = 1 WHERE remarks = ? AND occupancyreceivingid = (SELECT occupancyid FROM occupancy WHERE controlNo = ?)") + // if err != nil { + // c.AbortWithError(http.StatusInternalServerError, err) + // c.String(http.StatusInternalServerError, "Internal Server Error") + // return + // } + // defer dbpost.Close() + + // exec, err := dbpost.Exec(updateDocflowData.Data, updateDocflowData.Data2) + // if err != nil { + // c.AbortWithError(http.StatusInternalServerError, err) + // c.String(http.StatusInternalServerError, "Internal Server Error") + // return + // } + + // affect, err := exec.RowsAffected() + // if err != nil { + // c.AbortWithError(http.StatusInternalServerError, err) + // c.String(http.StatusInternalServerError, "Internal Server Error") + // return + // } + + // if affect > 0 { + // c.String(http.StatusOK, "Success on Updating Docflow on Electrical") + // } else { + // c.String(http.StatusInternalServerError, "Failed on Updating Docflow on Electrical") + // } + // }) + router.POST("/api/update-docflow-electrical", middleware.TokenChecker(), func(c *gin.Context) { type UpdateDocflowData struct { Data string `json:"data"` @@ -1528,6 +1597,53 @@ func connect() { } }) + router.POST("/api/update-opapproved-bldgadditional", middleware.TokenChecker(), func(c *gin.Context) { + type UpdateOpData struct { + Data int `json:"data"` + } + var updateOpData UpdateOpData + if err := c.ShouldBindJSON(&updateOpData); err != nil { + c.AbortWithError(http.StatusBadRequest, err) + c.String(http.StatusBadRequest, "Invalid request body") + return + } + + 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") + + dbpost, err := db.Prepare("UPDATE building_orderofpayment SET is_approve = 1 WHERE occupancyid = ? AND for_approval = 1 AND is_paid = 0") + if err != nil { + c.AbortWithError(http.StatusInternalServerError, err) + c.String(http.StatusInternalServerError, "Internal Server Error") + return + } + defer dbpost.Close() + + exec, err := dbpost.Exec(updateOpData.Data) + if err != nil { + c.AbortWithError(http.StatusInternalServerError, err) + c.String(http.StatusInternalServerError, "Internal Server Error") + return + } + + affect, err := exec.RowsAffected() + if err != nil { + c.AbortWithError(http.StatusInternalServerError, err) + c.String(http.StatusInternalServerError, "Internal Server Error") + return + } + + if affect > 0 { + c.String(http.StatusOK, "Success on Updating Order of Payment on Approval") + } else { + c.String(http.StatusInternalServerError, "Failed on Updating Order of Payment on Approval") + } + }) + router.POST("/api/update-opapproved-electrical", middleware.TokenChecker(), func(c *gin.Context) { type UpdateOpData struct { Data int `json:"data"` diff --git a/src/pages/AssessorPage/Assessor.tsx b/src/pages/AssessorPage/Assessor.tsx index 584a4cb..b96efb1 100644 --- a/src/pages/AssessorPage/Assessor.tsx +++ b/src/pages/AssessorPage/Assessor.tsx @@ -4,14 +4,13 @@ import { FiLogOut } from 'solid-icons/fi' import { Tabs } from '@kobalte/core/tabs' import { onMount, createSignal, Show, createEffect } from 'solid-js' import dayjs from 'dayjs' -import { checkConnection, createPdf } from '../../utils/functions' +import { checkConnection, createPdfOccupancy, createPdfElectrical } from '../../utils/functions' import { FaSolidThumbsUp } from 'solid-icons/fa' import { _employeeName, _employeeId } from '../../stores/employee' import { useNavigate } from '@solidjs/router' import { _applicationNo, _date, _optn, _name, _location, _type, _assessor, _feeList, _codeList, _amountList, _signatureAssessor, _signatureApprover, _assessorid, _approvedDate, _assessedDate, _units, _totalUnits, _floorArea } from '../../stores/pdfinfo' import { VsRefresh } from 'solid-icons/vs' import { getApi, getApiMulti, postApi } from '../../utils/functions' -import createPdfOccupancy from '../../utils/functions/createPdfOccupancy' const PESO = import.meta.env.VITE_PESO @@ -42,6 +41,8 @@ export default () => { const [filter, setFilter] = createSignal('') + let bldgadditional = false + const checkAccess = async (access: string) => { const response = await getApi('check-access', access, employeeId()) const result = response @@ -226,6 +227,9 @@ export default () => { await setNewStatus(division, 'FOR ELECTRICAL OFFICIAL RECEIPT VALIDATION', '98', 'ELECORVALIDATE', 0) await updateDocflow(division, application, 'FOR ELECTRICAL ORDER OF PAYMENT PRINTING') } else if (division === 'occupancy') { + const additionalResult = await getApi('check-bldgadditional-approval', application) + bldgadditional = additionalResult > 0 + await setNewStatus(division, 'OCCUPANCY ORDER OF PAYMENT PRINTED', '173', 'OCCOPPRINTED', 1) await setNewStatus(division, 'OCCUPANCY ORDER OF PAYMENT RELEASED', '174', 'OCCOPRELEASED', 1) await setNewStatus(division, 'ORDER OF PAYMENT RELEASE FOR BUREAU OF FIRE', '24', 'OCOOPRELEASE', 0) @@ -239,7 +243,7 @@ export default () => { setPrintedApplication(application) setPrinted(true) if (division === 'electrical') { - createPdf() + createPdfElectrical() } else createPdfOccupancy() } } diff --git a/src/pages/LoginPage/Login.tsx b/src/pages/LoginPage/Login.tsx index 7f164c5..cde44c3 100644 --- a/src/pages/LoginPage/Login.tsx +++ b/src/pages/LoginPage/Login.tsx @@ -113,7 +113,7 @@ export default () => {