Compare commits

..

2 commits

Author SHA1 Message Date
96ab531432 Added filter search (unfinish) 2025-10-29 19:42:40 +08:00
28cea3241b Updated backend 2025-10-29 19:42:10 +08:00
2 changed files with 64 additions and 42 deletions

View file

@ -18,12 +18,12 @@ import (
)
// DEV
var connection string = "root:superuser@tcp(localhost:3306)/iips"
var connectionPops string = "root:superuser@tcp(localhost:3306)/pops"
// var connection string = "root:superuser@tcp(localhost:3306)/iips"
// var connectionPops string = "root:superuser@tcp(localhost:3306)/pops"
// SERVER
// var connection string = "iips:iipsuser@tcp(192.168.7.100:3306)/iips"
// var connectionPops string = "pops:Pops2023!@tcp(192.168.76.10:3306)/pops"
var connection string = "iips:iipsuser@tcp(192.168.7.100:3306)/iips"
var connectionPops string = "pops:Pops2023!@tcp(192.168.76.10:3306)/pops"
func main() {
connect()
@ -44,23 +44,23 @@ func connect() {
router.Use(cors.Default())
//DEV
router.Use(cors.New(cors.Config{
AllowOrigins: []string{"http://localhost:5173"},
AllowMethods: []string{"GET", "POST"},
AllowHeaders: []string{"Origin", "OCBO-ShieldConnection"},
ExposeHeaders: []string{"Content-Length"},
AllowCredentials: true,
}))
//SERVER
// router.Use(cors.New(cors.Config{
// AllowAllOrigins: true,
// AllowOrigins: []string{"http://localhost:5173"},
// AllowMethods: []string{"GET", "POST"},
// AllowHeaders: []string{"Origin"},
// AllowHeaders: []string{"Origin", "OCBO-ShieldConnection"},
// ExposeHeaders: []string{"Content-Length"},
// AllowCredentials: true,
// }))
//SERVER
router.Use(cors.New(cors.Config{
AllowAllOrigins: true,
AllowMethods: []string{"GET", "POST"},
AllowHeaders: []string{"Origin"},
ExposeHeaders: []string{"Content-Length"},
AllowCredentials: true,
}))
router.StaticFile("/", "static/index.html")
// shield := "inquiry"
@ -612,8 +612,8 @@ func connect() {
array11 := []string{}
array12 := []string{}
results, err := db.Query(`SELECT IFNULL(e.electricalNo, '') AS result, IFNULL(c.firstName, '') AS result2, IFNULL(c.middleInitial, '') AS result3, IFNULL(c.lastName, '') AS result4, IFNULL(e.locationofinstallation, '') AS result5, IFNULL(re.type, '') AS result6, IFNULL(em.employeename, '') AS result7, IFNULL(rb.accountdescription, '') AS result8, IFNULL(o.amount, '') AS result9, IFNULL(o.opDate, '') AS result10, IFNULL(e.electricalid, 0) AS result11, IFNULL(o.assessedbyid, 0) AS result12
FROM electrical e, customer c, electrical_orderofpayment_new o, ref_electrical_type re, ref_bldgcomputationsheet rb, employee em WHERE e.customerid = c.customerid AND e.electricalid = o.electricalid AND e.ref_electrical_typeid = re.ref_electrical_typeid AND o.ref_bldgcomputationsheetid = rb.ref_bldgcomputationsheetid AND o.assessedbyid = em.employeeid AND e.electricalNo = ?`, data)
results, err := db.Query(`SELECT IFNULL(e.electricalNo, '') AS result, IFNULL(c.firstName, '') AS result2, IFNULL(c.middleInitial, '') AS result3, IFNULL(c.lastName, '') AS result4, IFNULL(e.locationofinstallation, '') AS result5, IFNULL(re.occupancyoruse, '') AS result6, IFNULL(em.employeename, '') AS result7, IFNULL(rb.accountdescription, '') AS result8, IFNULL(o.amount, '') AS result9, IFNULL(o.opDate, '') AS result10, IFNULL(e.electricalid, 0) AS result11, IFNULL(o.assessedbyid, 0) AS result12
FROM electrical e, customer c, electrical_orderofpayment_new o, ref_elec_occupancy re, ref_bldgcomputationsheet rb, employee em WHERE e.customerid = c.customerid AND e.electricalid = o.electricalid AND e.ref_elec_occupancyid = re.ref_elec_occupancyid AND o.ref_bldgcomputationsheetid = rb.ref_bldgcomputationsheetid AND o.assessedbyid = em.employeeid AND e.electricalNo = ?`, data)
if err != nil {
c.AbortWithError(http.StatusBadRequest, err)
c.String(http.StatusBadRequest, err.Error())

View file

@ -1,5 +1,5 @@
import './Assessor.sass'
import { Logo, Page, Row, Padding, ModalButton, Button, Clickable, Link, Modal, Column, Box } from '../../components'
import { Logo, Page, Row, Padding, ModalButton, Button, Clickable, Link, Modal, Column, Box, Input } from '../../components'
import { FiLogOut } from 'solid-icons/fi'
import { Tabs } from '@kobalte/core/tabs'
import { ofetch } from 'ofetch'
@ -10,6 +10,7 @@ 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 } from '../../stores/pdfinfo'
import { VsRefresh } from 'solid-icons/vs'
const API = import.meta.env.VITE_BACKEND
const PESO = import.meta.env.VITE_PESO
@ -23,15 +24,6 @@ export default () => {
const [location, setLocation] = createSignal('')
const [type, setType] = createSignal('')
const [applicationId, setApplicationId] = createSignal(0)
// const [assessorId, setAssessorId] = createSignal(0)
// const [gflgu, setGflgu] = createSignal<number[]>([])
// const [gfdpwh, setGfdpwh] = createSignal<number[]>([])
// const [tfbo, setTfbo] = createSignal<number[]>([])
// const [descriptionList, setDescriptionList] = createSignal<string[]>([])
// const [amountList, setAmountList] = createSignal<string[]>([])
// const [dateOpList, setDateOpList] = createSignal<string[]>([])
const [applicationList, setApplicationList] = createSignal<string[]>([])
const [nameList, setNameList] = createSignal<string[]>([])
@ -48,9 +40,9 @@ export default () => {
const [employeeId, setEmployeeId] = createSignal(0)
const [employeeName, setEmployeeName] = createSignal('')
// const [docApplicationNo, setDocApplicationNo] = createSignal('')
// const [docDate, setDocDate] = createSignal('')
// const [docLocation, setDocLocation] = createSignal('')
const [filter, setFilter] = createSignal('')
const [fullIDList, setFullIDList] = createSignal<string[]>([])
const [fullNameList, setFullNameList] = createSignal<string[]>([])
const checkAccess = async (access: string) => {
try {
@ -63,6 +55,19 @@ export default () => {
}
}
const handleFilterChange = (value: string) => {
// setFilter(value)
if (value.trim() === '') {
setApplicationList(fullIDList())
setNameList(fullNameList())
} else {
const filteredApplications = fullIDList().filter((app) => app.toLowerCase().includes(value.toLowerCase()))
const filteredNames = fullNameList().slice(0, filteredApplications.length)
setApplicationList(filteredApplications)
setNameList(filteredNames)
}
}
const getPrintDetails = async (id: number) => {
const response = await ofetch(API + 'get-printdetails-electrical/' + id)
const applicationno = response.result
@ -159,11 +164,6 @@ export default () => {
const assessorId = await getEmployeeId(op.result7[0])
const assessorsignId = await geteSignId(assessorId)
getAssessedDate(op.result11[0])
console.log('name', op.result7[0])
console.log('id', assessorId)
console.log('esignid', assessorsignId)
console.log('aaaa', op.result11[0])
}
const calculateTotal = (list: number[]) => {
@ -171,11 +171,22 @@ export default () => {
return total
}
const getListForPrinting = async () => {
const getListForPrinting = async (query?: string) => {
try {
const response = await ofetch(API + 'get-listopprinting-electrical', { parseResponse: JSON.parse })
setApplicationList(response.result)
setNameList(response.result2)
const filteredApplications = response.result.filter((item: any) =>
item
.toString()
.toLowerCase()
.includes((query ?? '').toLowerCase())
)
const filteredNames = response.result2.filter((item: any) =>
item.toString().toLowerCase().includes((query ?? '').toLowerCase())
)
// setApplicationList(response.result)
// setNameList(response.result2)
setApplicationList(filteredApplications)
setNameList(filteredNames)
} catch (error) {
console.error(error)
}
@ -211,10 +222,10 @@ export default () => {
return
}
signed = await setNewStatus('ELECTRICAL ORDER OF PAYMENT PRINTED', '171', 'ELECOPPRINTED')
signed = await setNewStatus('ELECTRICAL ORDER OF PAYMENT PRINTED', '171', 'ELECOPPRINTED', 1)
if (!signed) return
forprinting = await setNewStatus('FOR ELECTRICAL OFFICIAL RECEIPT VALIDATION', '98', 'ELECORVALIDATE')
forprinting = await setNewStatus('FOR ELECTRICAL OFFICIAL RECEIPT VALIDATION', '98', 'ELECORVALIDATE', 0)
if (!forprinting) return
updateOrderofpayment = await updateOp()
@ -240,7 +251,7 @@ export default () => {
}
}
const setNewStatus = async (status: string, tag: string, tagword: string) => {
const setNewStatus = async (status: string, tag: string, tagword: string, approved: number) => {
const today = new Date()
const formattedDate = dayjs(today).format('YYYY-MM-DD HH:mm:ss')
const statusid = parseInt(applicationId().toString())
@ -248,7 +259,7 @@ export default () => {
try {
await ofetch(API + 'post-newstatus-electrical', {
method: 'POST',
body: { data: statusid, data2: formattedDate, data3: status, data4: tag, data5: tagword, data6: parseInt(employeeId().toString()) },
body: { data: statusid, data2: formattedDate, data3: status, data4: tag, data5: tagword, data6: parseInt(approved.toString()), data7: parseInt(employeeId().toString()) },
})
return true
} catch {
@ -323,6 +334,10 @@ export default () => {
}
}
const refresh = async () => {
await getListForPrinting()
}
const logout = async () => {
removeEmployee()
navigate('/')
@ -434,6 +449,13 @@ export default () => {
</Clickable>
</Row>
<Padding top={0} bottom={0} right={10} left={10}>
<Row content="split">
<Input label="aa" value={filter()} onChange={getListForPrinting} />
<Button label="Refresh Data" edges="curved" design="bo-primary" icon={VsRefresh} onClick={refresh}></Button>
</Row>
</Padding>
<Row>
<table class="table">
<thead>