Compare commits

..

3 commits

Author SHA1 Message Date
bbca186ab9 Cleanup comment 2026-03-05 17:33:03 +08:00
03b637b494 Updated assessor page 2026-03-05 17:32:51 +08:00
ca4883eb1c Updated backend 2026-03-05 17:32:34 +08:00
3 changed files with 105 additions and 17 deletions

View file

@ -46,6 +46,14 @@ func getCORSConfig(env string) cors.Config {
ExposeHeaders: []string{"Content-Length"},
AllowCredentials: true,
}
case "lan":
return cors.Config{
AllowOrigins: []string{"*"},
AllowMethods: []string{"GET", "POST", "OPTIONS", "DELETE"},
AllowHeaders: []string{"*"},
ExposeHeaders: []string{"Content-Length"},
AllowCredentials: true,
}
default:
return cors.DefaultConfig()
}
@ -1466,6 +1474,19 @@ func connect() {
"result2": resultCount,
})
case "login":
var resultInt, resultCount int
err := dbpop.QueryRow(`SELECT COUNT(OrderPayId) AS resultInt, COUNT(AFNum) AS resultCount FROM orderpaydetail WHERE oprefid = ?`, data).Scan(&resultInt, &resultCount)
if err != nil {
c.AbortWithError(http.StatusBadRequest, err)
c.String(http.StatusBadRequest, err.Error())
return
}
c.JSON(http.StatusOK, gin.H{
"result": resultInt,
"result2": resultCount,
})
}
})
@ -2335,6 +2356,50 @@ func connect() {
}
})
router.POST("/api/update-opforapproval-electrical", func(c *gin.Context) {
type forApprovalData struct {
Data string `json:"data"` //electricalNo
}
var forapprovalData forApprovalData
if err := c.ShouldBindJSON(&forapprovalData); 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")
c.Writer.Header().Set("Content-Security-Policy", "default-src 'self'; img-src 'self';")
c.Writer.Header().Set("X-Server", "OCBO Server")
dbpost, err := db.Prepare("UPDATE electrical_orderofpayment_new SET is_approve = 0, is_release = 0, popstransmitted = 0 WHERE is_paid = 0 AND electricalid = (SELECT electricalid FROM electrical WHERE electricalNo = ?)")
if err != nil {
c.AbortWithError(http.StatusInternalServerError, err)
c.String(http.StatusInternalServerError, "Internal Server Error")
return
}
defer dbpost.Close()
exec, err := dbpost.Exec(forapprovalData.Data)
if err != nil {
panic(err.Error())
}
affect, err := exec.RowsAffected()
if err != nil {
panic(err.Error())
}
if affect > 0 {
c.String(http.StatusOK, "Success on Updating Re-Approval")
} else {
c.String(http.StatusInternalServerError, "Failed on Updating Re-Approval")
}
})
// router.POST("/api/return-approval-electrical", middleware.TokenChecker(), func(c *gin.Context) {
// type returnApprovalData struct {
// Data string `json:"data"` //electricalNo

View file

@ -32,11 +32,12 @@ import {
_type,
_units,
} from '../../stores/pdfinfo.ts'
import { checkConnection, createPdfElectrical, createPdfOccupancy, getApi, getApiMulti, getDateTime, postApi, saveNewName, saveNewPassword, securePassword, statusPopsApi, voidPopsApi } from '../../utils/functions/index.ts'
import { checkConnection, createPdfElectrical, createPdfOccupancy, deleteApi, getApi, getApiMulti, getDateTime, postApi, saveNewName, saveNewPassword, securePassword, statusPopsApi, voidPopsApi } from '../../utils/functions/index.ts'
import { AiOutlineLoading3Quarters } from 'solid-icons/ai'
import './Assessor.sass'
const PESO = import.meta.env.VITE_PESO
const BACKEND = import.meta.env.VITE_BACKEND
export default () => {
const navigate = useNavigate()
@ -348,6 +349,9 @@ export default () => {
}
const rePrintHandler = async (division: string, application: string) => {
let popsExist: boolean = false
let popsPaid: boolean = false
setConnected(await checkConnection())
if (connected() === false) {
setErrorMessage('No Connection on Server')
@ -355,34 +359,46 @@ export default () => {
}
if (selectedType().includes('Void')) {
// Return to ASSESSMENT
// Return to APPROVAL
// TODO:
// Set current status (for validation) to 1, is_approve = 1
// Clear order of payment as long as not Paid
// Clear esign_transactions
const status = await statusPopsOp(application)
const message = status.message
if (BACKEND.includes('localhost')) {
const status = await checkStatusPopsLocal(application)
console.log('status', status)
if (status.result > 0) popsExist = true
if (status.result2 > 0) popsPaid = true
} else {
const status = await await statusPopsOp(application)
if (status.message === 'Success') popsExist = true
if (status.pops_paid === true) popsPaid = true
}
if (message.includes('No record')) {
// const status = await statusPopsOp(application)
// const message = status.message
if (!popsExist) {
setVoidError(true)
setErrorMessage('No record found on Pops')
return
} else {
const pops_paid = message.pops_paid
const epay_paid = message.epay_paid
// const pops_paid = message.pops_paid
// const epay_paid = message.epay_paid
}
if (pops_paid || epay_paid) {
setVoidError(true)
setErrorMessage('Already Paid')
return
}
if (popsPaid) {
setVoidError(true)
setErrorMessage('Already Paid')
return
}
if (division === 'electrical') {
await setNewStatus(division, 'ELECTRICAL ORDER OF PAYMENT VOIDED', '173', 'ELECOPVOIDED', 1)
await setNewStatus(division, 'FOR ELECTRICAL ORDER OF PAYMENT APPROVAL', '94', 'ELECOPAPPROVE', 0)
await updateDocflow(division, application, 'FOR ELECTRICAL ORDER OF PAYMENT PRINTING')
await updateOpForApproval(division, application)
await clearEsignTransactions(application)
} else if (division === 'occupancy') {
await setNewStatus(division, 'OCCUPANCY ORDER OF PAYMENT VOIDED', '174', 'OCCOPVOIDED', 1)
//UNFINISH
@ -514,7 +530,7 @@ export default () => {
}
const checkStatusPopsLocal = async (application: string) => {
const response = await getApi('check-statuspops-local', application)
const response = await getApiMulti('check-statuspops-local', application)
return response
}
@ -523,6 +539,16 @@ export default () => {
return response
}
const updateOpForApproval = async (division: string, application: string) => {
const response = await postApi(`update-opforapproval-${division}`, { data: application })
return response
}
const clearEsignTransactions = async (application: string) => {
const response = await deleteApi('delete-esigntransactions', { data: application })
return response
}
const saveConfig = async () => {
if (configNewName() !== '') await saveNewName(parseInt(employeeId().toString()), configNewName())
if (configNewPassword() !== '') await saveNewPassword(parseInt(employeeId().toString()), configNewEncPassword())

View file

@ -172,9 +172,6 @@ export default () => {
setLoadingText('Processing Data')
if (division === 'electrical') {
// const isPaid = BACKEND.includes('localhost') ? await checkStatusPopsLocal(application) : await statusPopsOp(application)
// let isPaid
if (BACKEND.includes('localhost')) {
const status = await checkStatusPopsLocal(application)
if (status.result > 0) popsExist = true