Compare commits
7 commits
79a3e508dc
...
a5a49e478f
| Author | SHA1 | Date | |
|---|---|---|---|
| a5a49e478f | |||
| 213fca2050 | |||
| 541c66b4bd | |||
| fd4a1df6b3 | |||
| 8176032cb1 | |||
| 79407086f3 | |||
| 7f14cbd044 |
9 changed files with 359 additions and 140 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -27,6 +27,7 @@ dist-ssr
|
|||
# environment variables
|
||||
.env.local
|
||||
/backend/.env
|
||||
/backend/tmp
|
||||
|
||||
# jetbrains setting folder
|
||||
.idea/
|
||||
|
|
|
|||
162
backend/main.go
162
backend/main.go
|
|
@ -158,6 +158,35 @@ func connect() {
|
|||
"result2": array2,
|
||||
})
|
||||
|
||||
case "get-listopprinting-occupancy":
|
||||
var result2 string
|
||||
|
||||
array := []string{}
|
||||
array2 := []string{}
|
||||
|
||||
results, err := db.Query(`SELECT IFNULL(o.controlNo, '') 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 occupancy o JOIN customer c ON o.customerid = c.customerid JOIN ref_occupancy_type rot ON o.ref_occupancy_typeid = rot.ref_occupancy_typeid JOIN ref_occupancy ro ON rot.ref_occupancyid = ro.ref_occupancyid JOIN occupancydocflowtxn od ON o.occupancyid = od.occupancyreceivingid JOIN (SELECT occupancyreceivingid, MAX(occupancydocflowtxnid) AS latest_occupancydocflowtxnid FROM occupancydocflowtxn GROUP BY occupancyreceivingid) latest_doc ON od.occupancyreceivingid = latest_doc.occupancyreceivingid AND od.occupancydocflowtxnid = latest_doc.latest_occupancydocflowtxnid
|
||||
WHERE remarks = ? AND is_approve = 0 ORDER BY o.controlNo ASC`, "APPROVED FOR PRINTING OF BUREAU OF FIRE AND ORDER OF PAYMENT")
|
||||
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-listopprinting-electrical":
|
||||
var result2 string
|
||||
|
||||
|
|
@ -262,7 +291,7 @@ func connect() {
|
|||
|
||||
})
|
||||
|
||||
router.GET("/api/:method/:data", func(c *gin.Context) {
|
||||
router.GET("/api/:method/:data/fetch-data", func(c *gin.Context) {
|
||||
var result string
|
||||
method := c.Param("method")
|
||||
data := c.Param("data")
|
||||
|
|
@ -749,6 +778,29 @@ func connect() {
|
|||
"result": result,
|
||||
})
|
||||
|
||||
case "get-printdetails-occupancy":
|
||||
var result2, result3, result4, result5, result6, result7, result8 string
|
||||
|
||||
err := db.QueryRow(`SELECT DISTINCT IFNULL(o.controlNo, '') AS result, IFNULL(op.opDate, '') AS result2, IFNULL(r.locationofconstruction, '') AS result3, IFNULL(ro.occupancy, '') AS result4, IFNULL(rot.occupancyType, '') AS result5, IFNULL(o.noOfPermitsApplied, '') AS result6, IFNULL(e.employeename, '') AS result7,
|
||||
IF(cu.firstName IS NULL OR cu.firstName = '', cu.lastName, CONCAT(cu.firstName, ' ', IF(cu.middleInitial IS NULL OR cu.middleInitial = '', '', CONCAT(cu.middleInitial, '. ')), cu.lastName) ) AS result8
|
||||
FROM occupancy o LEFT JOIN receiving r on o.bldgApplicationNo = r.applicationNo JOIN occupancy_orderofpayment op ON o.occupancyid = op.occupancyid JOIN ref_occupancy_type rot ON o.ref_occupancy_typeid = rot.ref_occupancy_typeid JOIN ref_occupancy ro ON rot.ref_occupancyid = ro.ref_occupancyid JOIN customer cu ON o.customerid = cu.customerid JOIN employee e ON op.assessedbyid = e.employeeid
|
||||
WHERE op.is_approve = 1 AND op.for_approval = 1 AND op.is_release = 0 AND is_paid = 0 AND popstransmitted = 0 AND o.occupancyid = ?`, data).Scan(&result, &result2, &result3, &result4, &result5, &result6, &result7, &result8)
|
||||
if err != nil {
|
||||
c.AbortWithError(http.StatusBadRequest, err)
|
||||
c.String(http.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"result": result,
|
||||
"result2": result2,
|
||||
"result3": result3,
|
||||
"result4": result4,
|
||||
"result5": result5,
|
||||
"result6": result6,
|
||||
"result7": result7,
|
||||
"result8": result8,
|
||||
})
|
||||
|
||||
case "get-printdetails-electrical":
|
||||
var result2, result3, result4, result5, result6, result7, result8 string
|
||||
|
||||
|
|
@ -772,15 +824,46 @@ func connect() {
|
|||
"result8": result8,
|
||||
})
|
||||
|
||||
case "get-printdetailsfees-occupancy":
|
||||
var result2, result3 string
|
||||
array := []string{}
|
||||
array2 := []string{}
|
||||
array3 := []string{}
|
||||
|
||||
results, err := db.Query(`SELECT IFNULL(ref.accountdescription, '') AS result, IFNULL(ref.accountcode, '') AS result2, IFNULL(op.amount, '') AS result3
|
||||
FROM occupancy o JOIN occupancy_orderofpayment op ON o.occupancyid = op.occupancyid JOIN ref_bldgcomputationsheet ref ON op.ref_bldgcomputationsheetid = ref.ref_bldgcomputationsheetid
|
||||
WHERE op.is_approve = 1 AND op.for_approval = 1 AND op.is_release = 0 AND op.is_paid = 0 AND op.popstransmitted = 0 AND op.is_delete <> 1 AND op.occupancyid = ?`, data)
|
||||
if err != nil {
|
||||
c.AbortWithError(http.StatusBadRequest, err)
|
||||
c.String(http.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
for results.Next() {
|
||||
err = results.Scan(&result, &result2, &result3)
|
||||
if err != nil {
|
||||
c.AbortWithError(http.StatusBadRequest, err)
|
||||
c.String(http.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
array = append(array, result)
|
||||
array2 = append(array2, result2)
|
||||
array3 = append(array3, result3)
|
||||
}
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"result": array,
|
||||
"result2": array2,
|
||||
"result3": array3,
|
||||
})
|
||||
|
||||
case "get-printdetailsfees-electrical":
|
||||
var result2, result3 string
|
||||
array := []string{}
|
||||
array2 := []string{}
|
||||
array3 := []string{}
|
||||
|
||||
results, err := db.Query(`SELECT IFNULL(ref.accountdescription, '') AS result, IFNULL(ref.accountcode, '') AS result2, IFNULL(op.amount, '') AS result3 FROM electrical_orderofpayment_new op, ref_bldgcomputationsheet ref, electrical el
|
||||
WHERE op.is_approve = 1 AND op.for_approval = 1 AND op.is_release = 0 AND op.is_paid = 0 AND op.popstransmitted = 0 AND op.is_delete <> 1 AND op.ref_bldgcomputationsheetid = ref.ref_bldgcomputationsheetid
|
||||
AND el.electricalid = op.electricalid AND op.electricalid = ?`, data)
|
||||
results, err := db.Query(`SELECT IFNULL(ref.accountdescription, '') AS result, IFNULL(ref.accountcode, '') AS result2, IFNULL(op.amount, '') AS result3
|
||||
FROM electrical el JOIN electrical_orderofpayment_new op ON el.electricalid = op.electricalid JOIN ref_bldgcomputationsheet ref ON op.ref_bldgcomputationsheetid = ref.ref_bldgcomputationsheetid
|
||||
WHERE op.is_approve = 1 AND op.for_approval = 1 AND op.is_release = 0 AND op.is_paid = 0 AND op.popstransmitted = 0 AND op.is_delete <> 1 AND op.electricalid = ?`, data)
|
||||
if err != nil {
|
||||
c.AbortWithError(http.StatusBadRequest, err)
|
||||
c.String(http.StatusBadRequest, err.Error())
|
||||
|
|
@ -825,6 +908,17 @@ func connect() {
|
|||
"result": result,
|
||||
})
|
||||
|
||||
case "get-signeddateassessed-occupancy":
|
||||
err := db.QueryRow(`SELECT IFNULL(txndate, '') AS result FROM occupancydocflowtxn WHERE occupancyreceivingid = ? AND remarks = "FOR OCCUPANCY RECOMMENDING APPROVAL"`, 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 "get-signeddateassessed-electrical":
|
||||
err := db.QueryRow(`SELECT IFNULL(txndate, '') AS result FROM electricaldocflowtxn WHERE electricalid = ? AND remarks = "FOR ELECTRICAL ORDER OF PAYMENT APPROVAL"`, data).Scan(&result)
|
||||
if err != nil {
|
||||
|
|
@ -938,7 +1032,7 @@ func connect() {
|
|||
}
|
||||
})
|
||||
|
||||
router.GET("/api/:method/:data/:data2", func(c *gin.Context) {
|
||||
router.GET("/api/:method/:data/:data2/fetch-data", func(c *gin.Context) {
|
||||
var result string
|
||||
method := c.Param("method")
|
||||
data := c.Param("data")
|
||||
|
|
@ -1021,7 +1115,7 @@ func connect() {
|
|||
|
||||
})
|
||||
|
||||
router.POST("/api/post-newstatus-occupancy", func(c *gin.Context) {
|
||||
router.POST("/api/post-newstatus-occupancy", middleware.TokenChecker(), func(c *gin.Context) {
|
||||
type NewstatusData struct {
|
||||
Data int `json:"data"` //occuapancyid
|
||||
Data2 string `json:"data2"` //date
|
||||
|
|
@ -1069,7 +1163,7 @@ func connect() {
|
|||
|
||||
})
|
||||
|
||||
router.POST("/api/post-newstatus-electrical", func(c *gin.Context) {
|
||||
router.POST("/api/post-newstatus-electrical", middleware.TokenChecker(), func(c *gin.Context) {
|
||||
type NewstatusData struct {
|
||||
Data int `json:"data"`
|
||||
Data2 string `json:"data2"`
|
||||
|
|
@ -1117,7 +1211,7 @@ func connect() {
|
|||
|
||||
})
|
||||
|
||||
router.POST("/api/update-docflow-occupancy", func(c *gin.Context) {
|
||||
router.POST("/api/update-docflow-occupancy", middleware.TokenChecker(), func(c *gin.Context) {
|
||||
type UpdateDocflowData struct {
|
||||
Data int `json:"data"`
|
||||
Data2 string `json:"data2"`
|
||||
|
|
@ -1164,7 +1258,7 @@ func connect() {
|
|||
}
|
||||
})
|
||||
|
||||
router.POST("/api/update-docflow-electrical", func(c *gin.Context) {
|
||||
router.POST("/api/update-docflow-electrical", middleware.TokenChecker(), func(c *gin.Context) {
|
||||
type UpdateDocflowData struct {
|
||||
Data int `json:"data"`
|
||||
Data2 string `json:"data2"`
|
||||
|
|
@ -1211,7 +1305,47 @@ func connect() {
|
|||
}
|
||||
})
|
||||
|
||||
router.POST("/api/update-opprinted-electrical", func(c *gin.Context) {
|
||||
router.POST("/api/update-opprinted-occupancy", middleware.TokenChecker(), func(c *gin.Context) {
|
||||
type UpdateOpData struct {
|
||||
Data int `json:"data"`
|
||||
}
|
||||
var updateOpData UpdateOpData
|
||||
if err := c.ShouldBindJSON(&updateOpData); 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 iips.occupancy_orderofpayment SET popstransmitted = 1, is_release = 1 WHERE occupancyid = ? AND for_approval = 1 AND is_paid = 0 AND is_approve = 1")
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
defer dbpost.Close()
|
||||
|
||||
exec, err := dbpost.Exec(updateOpData.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 Order of Payment for Printing")
|
||||
} else {
|
||||
c.String(http.StatusInternalServerError, "Failed on Updating Order of Payment for Printing")
|
||||
}
|
||||
})
|
||||
|
||||
router.POST("/api/update-opprinted-electrical", middleware.TokenChecker(), func(c *gin.Context) {
|
||||
type UpdateOpData struct {
|
||||
Data int `json:"data"`
|
||||
}
|
||||
|
|
@ -1251,7 +1385,7 @@ func connect() {
|
|||
}
|
||||
})
|
||||
|
||||
router.POST("/api/post-esigntransaction", func(c *gin.Context) {
|
||||
router.POST("/api/post-esigntransaction", middleware.TokenChecker(), func(c *gin.Context) {
|
||||
type UpdateOpData struct {
|
||||
Data int `json:"data"`
|
||||
Data2 string `json:"data2"`
|
||||
|
|
@ -1293,7 +1427,7 @@ func connect() {
|
|||
}
|
||||
})
|
||||
|
||||
router.POST("/api/post-pops", func(c *gin.Context) {
|
||||
router.POST("/api/post-pops", middleware.TokenChecker(), func(c *gin.Context) {
|
||||
type PostPopData struct {
|
||||
Data string `json:"data"` //applicationNo
|
||||
Data2 string `json:"data2"` //date
|
||||
|
|
@ -1346,7 +1480,7 @@ func connect() {
|
|||
}
|
||||
})
|
||||
|
||||
router.POST("/api/update-opapproved-occupancy", func(c *gin.Context) {
|
||||
router.POST("/api/update-opapproved-occupancy", middleware.TokenChecker(), func(c *gin.Context) {
|
||||
type UpdateOpData struct {
|
||||
Data int `json:"data"`
|
||||
}
|
||||
|
|
@ -1393,7 +1527,7 @@ func connect() {
|
|||
}
|
||||
})
|
||||
|
||||
router.POST("/api/update-opapproved-electrical", func(c *gin.Context) {
|
||||
router.POST("/api/update-opapproved-electrical", middleware.TokenChecker(), func(c *gin.Context) {
|
||||
type UpdateOpData struct {
|
||||
Data int `json:"data"`
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,21 +77,36 @@ func TokenChecker() gin.HandlerFunc {
|
|||
}
|
||||
|
||||
parts := strings.Split(decrypted, "-")
|
||||
requested := parts[2]
|
||||
requestedNum, _ := strconv.Atoi(requested)
|
||||
expiration := parts[3]
|
||||
expirationNum, _ := strconv.Atoi(expiration)
|
||||
partCount := len(parts)
|
||||
var finalRequest int
|
||||
var finalExpiration int
|
||||
|
||||
if partCount == 4 {
|
||||
requested := parts[2]
|
||||
requestedNum, _ := strconv.Atoi(requested)
|
||||
finalRequest = requestedNum
|
||||
expiration := parts[3]
|
||||
expirationNum, _ := strconv.Atoi(expiration)
|
||||
finalExpiration = expirationNum
|
||||
} else {
|
||||
requested := parts[3]
|
||||
requestedNum, _ := strconv.Atoi(requested)
|
||||
finalRequest = requestedNum
|
||||
expiration := parts[4]
|
||||
expirationNum, _ := strconv.Atoi(expiration)
|
||||
finalExpiration = expirationNum
|
||||
}
|
||||
|
||||
unix := strconv.FormatInt(time.Now().UTC().Unix(), 10)
|
||||
unixNum, _ := strconv.Atoi(unix)
|
||||
|
||||
if requestedNum > expirationNum {
|
||||
if finalRequest > finalExpiration {
|
||||
c.JSON(http.StatusUnauthorized, gin.H{"error": "Invalid OCBO Token Value"})
|
||||
c.Abort()
|
||||
return
|
||||
}
|
||||
|
||||
if unixNum > expirationNum {
|
||||
if unixNum > finalExpiration {
|
||||
c.JSON(http.StatusUnauthorized, gin.H{"error": "OCBO Token Expired"})
|
||||
c.Abort()
|
||||
return
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ import './Assessor.sass'
|
|||
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'
|
||||
import { onMount, createSignal, Show, createEffect } from 'solid-js'
|
||||
import dayjs from 'dayjs'
|
||||
import { checkConnection, createPdf } from '../../utils/functions'
|
||||
|
|
@ -11,8 +10,8 @@ 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'
|
||||
import { getApi, getApiMulti, postApi } from '../../utils/functions'
|
||||
|
||||
const API = import.meta.env.VITE_BACKEND
|
||||
const PESO = import.meta.env.VITE_PESO
|
||||
|
||||
export default () => {
|
||||
|
|
@ -43,18 +42,14 @@ export default () => {
|
|||
const [filter, setFilter] = createSignal('')
|
||||
|
||||
const checkAccess = async (access: string) => {
|
||||
try {
|
||||
const response = await ofetch(`${API}check-access/${access}/${employeeId()}`)
|
||||
const result = response.result
|
||||
if (result > 0) return true
|
||||
else return false
|
||||
} catch {
|
||||
return false
|
||||
}
|
||||
const response = await getApi('check-access', access, employeeId())
|
||||
const result = response
|
||||
if (result > 0) return true
|
||||
else return false
|
||||
}
|
||||
|
||||
const getPrintDetails = async (id: number) => {
|
||||
const response = await ofetch(API + 'get-printdetails-electrical/' + id)
|
||||
const getPrintDetails = async (division: string, id: number) => {
|
||||
const response = await getApiMulti(`get-printdetails-${division}`, id)
|
||||
const applicationno = response.result
|
||||
const date = response.result2
|
||||
const location = response.result3
|
||||
|
|
@ -72,8 +67,8 @@ export default () => {
|
|||
_assessorid.set(employeeId())
|
||||
}
|
||||
|
||||
const getPrintDetailsFees = async (id: number) => {
|
||||
const response = await ofetch(API + 'get-printdetailsfees-electrical/' + id)
|
||||
const getPrintDetailsFees = async (division: string, id: number) => {
|
||||
const response = await getApiMulti(`get-printdetailsfees-${division}`, id)
|
||||
const feeList = response.result
|
||||
const accountCodeList = response.result2
|
||||
const amountList = response.result3
|
||||
|
|
@ -111,7 +106,9 @@ export default () => {
|
|||
const closeNotification = async () => {
|
||||
setPrinted(false)
|
||||
await checkDivision()
|
||||
await getListForPrinting()
|
||||
if (isBuilding()) await getListForPrinting('building')
|
||||
if (isOccupancy()) await getListForPrinting('occupancy')
|
||||
if (isElectrical()) await getListForPrinting('electrical')
|
||||
}
|
||||
|
||||
const checkDivision = async () => {
|
||||
|
|
@ -125,8 +122,14 @@ export default () => {
|
|||
setIsElectrical(electrical)
|
||||
}
|
||||
|
||||
const getopdetails = async (applicationNo: string) => {
|
||||
const op = await ofetch(API + 'get-opdetails-electrical/' + applicationNo, { parseResponse: JSON.parse })
|
||||
const getopdetails = async (division: string, applicationNo: string) => {
|
||||
// let op = []
|
||||
// if (division === 'building') op = await getApiMulti('get-opdetails-building', applicationNo)
|
||||
// if (division === 'occupancy') op = await getApiMulti('get-opdetails-occupancy', applicationNo)
|
||||
// if (division === 'electrical') op = await getApiMulti('get-opdetails-electrical', applicationNo)
|
||||
|
||||
const op = await getApiMulti(`get-opdetails-${division}`, applicationNo)
|
||||
|
||||
setLocation(op.result[0])
|
||||
setType(op.result2[0])
|
||||
setAssessor(op.result3[0])
|
||||
|
|
@ -140,15 +143,16 @@ export default () => {
|
|||
// setDateOpList(op.result10)
|
||||
// calculateAmounts()
|
||||
|
||||
getPrintDetails(op.result6[0])
|
||||
getPrintDetailsFees(op.result6[0])
|
||||
getPrintDetails(division, op.result6[0])
|
||||
getPrintDetailsFees(division, op.result6[0])
|
||||
|
||||
getSignatureImage(employeeId())
|
||||
|
||||
const approversignId = await geteSignId(276)
|
||||
getApprovedDate(approversignId, applicationNo)
|
||||
// const assessorId = await getEmployeeId(op.result7[0])
|
||||
// const assessorsignId = await geteSignId(assessorId)
|
||||
getAssessedDate(op.result6[0])
|
||||
getAssessedDate(division, op.result6[0])
|
||||
}
|
||||
|
||||
const calculateTotal = (list: number[]) => {
|
||||
|
|
@ -156,9 +160,9 @@ export default () => {
|
|||
return total
|
||||
}
|
||||
|
||||
const getListForPrinting = async () => {
|
||||
const getListForPrinting = async (division: string) => {
|
||||
try {
|
||||
const response = await ofetch(API + 'get-listopprinting-electrical', { parseResponse: JSON.parse })
|
||||
const response = await getApiMulti(`get-listopprinting-${division}`)
|
||||
|
||||
if (filter() !== '' && filter().trim().length !== 0) {
|
||||
const filteredApplications = response.result.filter((item: string) => item.includes(filter()))
|
||||
|
|
@ -194,7 +198,7 @@ export default () => {
|
|||
return true
|
||||
}
|
||||
|
||||
const printHandler = async (application: string) => {
|
||||
const printHandler = async (division: string, application: string) => {
|
||||
let signed: boolean = false
|
||||
let forprinting: boolean = false
|
||||
let updateOrderofpayment: boolean = false
|
||||
|
|
@ -205,13 +209,13 @@ export default () => {
|
|||
return
|
||||
}
|
||||
|
||||
signed = await setNewStatus('ELECTRICAL ORDER OF PAYMENT PRINTED', '171', 'ELECOPPRINTED', 1)
|
||||
signed = await setNewStatus(division, 'ELECTRICAL ORDER OF PAYMENT PRINTED', '171', 'ELECOPPRINTED', 1)
|
||||
if (!signed) return
|
||||
|
||||
forprinting = await setNewStatus('FOR ELECTRICAL OFFICIAL RECEIPT VALIDATION', '98', 'ELECORVALIDATE', 0)
|
||||
forprinting = await setNewStatus(division, 'FOR ELECTRICAL OFFICIAL RECEIPT VALIDATION', '98', 'ELECORVALIDATE', 0)
|
||||
if (!forprinting) return
|
||||
|
||||
updateOrderofpayment = await updateOp()
|
||||
updateOrderofpayment = await updateOp(division)
|
||||
|
||||
if (updateOrderofpayment) {
|
||||
postTransaction(application)
|
||||
|
|
@ -221,42 +225,28 @@ export default () => {
|
|||
}
|
||||
}
|
||||
|
||||
const updateOp = async () => {
|
||||
try {
|
||||
await ofetch(API + 'update-opprinted-electrical', {
|
||||
method: 'POST',
|
||||
body: { data: parseInt(applicationId().toString()) },
|
||||
})
|
||||
return true
|
||||
} catch {
|
||||
return false
|
||||
}
|
||||
const updateOp = async (division: string) => {
|
||||
const post = await postApi(`update-opprinted-${division}`, { data: parseInt(applicationId().toString()) })
|
||||
return post
|
||||
}
|
||||
|
||||
const setNewStatus = async (status: string, tag: string, tagword: string, approved: number) => {
|
||||
const setNewStatus = async (division: string, 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())
|
||||
|
||||
try {
|
||||
await ofetch(API + 'post-newstatus-electrical', {
|
||||
method: 'POST',
|
||||
body: { data: statusid, data2: formattedDate, data3: status, data4: tag, data5: tagword, data6: parseInt(approved.toString()), data7: parseInt(employeeId().toString()) },
|
||||
})
|
||||
return true
|
||||
} catch {
|
||||
return false
|
||||
}
|
||||
const post = await postApi(`post-newstatus-${division}`, { data: statusid, data2: formattedDate, data3: status, data4: tag, data5: tagword, data6: parseInt(approved.toString()), data7: parseInt(employeeId().toString()) })
|
||||
return post
|
||||
}
|
||||
|
||||
const getSignatureImage = async (id: number) => {
|
||||
try {
|
||||
const response = await ofetch(API + 'get-signatureimage/' + id, { parseResponse: JSON.parse })
|
||||
const image = response.result
|
||||
const response = await getApi('get-signatureimage', id)
|
||||
const image = response
|
||||
_signatureAssessor.set(image)
|
||||
|
||||
const response2 = await ofetch(API + 'get-signatureimage/' + 276, { parseResponse: JSON.parse })
|
||||
const image2 = response2.result
|
||||
const response2 = await getApi('get-signatureimage', 276)
|
||||
const image2 = response2
|
||||
_signatureApprover.set(image2)
|
||||
return true
|
||||
} catch {
|
||||
|
|
@ -266,8 +256,8 @@ export default () => {
|
|||
|
||||
const geteSignId = async (id: number) => {
|
||||
try {
|
||||
const response = await ofetch(API + 'get-esignid/' + id, { parseResponse: JSON.parse })
|
||||
const result = response.result
|
||||
const response = await getApi('get-esignid', id)
|
||||
const result = response
|
||||
return result
|
||||
} catch {
|
||||
return 0
|
||||
|
|
@ -279,31 +269,17 @@ export default () => {
|
|||
const today = new Date()
|
||||
const formatedDate = dayjs(today).format('YYYY-MM-DD HH:mm:ss')
|
||||
|
||||
await ofetch(API + 'post-esigntransaction', {
|
||||
method: 'POST',
|
||||
body: { data: parseInt(id), data2: application, data3: formatedDate },
|
||||
})
|
||||
await postApi('post-esigntransaction', { data: parseInt(id), data2: application, data3: formatedDate })
|
||||
}
|
||||
|
||||
const getApprovedDate = async (id: number, application: string) => {
|
||||
try {
|
||||
const response = await ofetch(API + `get-signeddate/${id}/${application}`, { parseResponse: JSON.parse })
|
||||
const result = response.result
|
||||
_approvedDate.set(result)
|
||||
} catch (error) {
|
||||
_approvedDate.set('')
|
||||
}
|
||||
const response = await getApi('get-signeddate', id, application)
|
||||
_approvedDate.set(response)
|
||||
}
|
||||
|
||||
const getAssessedDate = async (electricalid: number) => {
|
||||
try {
|
||||
const response = await ofetch(API + 'get-signeddateassessed-electrical/' + electricalid, { parseResponse: JSON.parse })
|
||||
const result = response.result
|
||||
console.log('date', result)
|
||||
_assessedDate.set(result)
|
||||
} catch (error) {
|
||||
_assessedDate.set('')
|
||||
}
|
||||
const getAssessedDate = async (division: string, id: number) => {
|
||||
const response = await getApi(`get-signeddateassessed-${division}`, id)
|
||||
_assessedDate.set(response)
|
||||
}
|
||||
|
||||
// const getEmployeeId = async (name: string) => {
|
||||
|
|
@ -317,7 +293,9 @@ export default () => {
|
|||
// }
|
||||
|
||||
const refresh = async () => {
|
||||
await getListForPrinting()
|
||||
if (isBuilding()) await getListForPrinting('building')
|
||||
if (isOccupancy()) await getListForPrinting('occupancy')
|
||||
if (isElectrical()) await getListForPrinting('electrical')
|
||||
}
|
||||
|
||||
const logout = async () => {
|
||||
|
|
@ -335,15 +313,21 @@ export default () => {
|
|||
|
||||
if (logged) {
|
||||
await checkDivision()
|
||||
await getListForPrinting()
|
||||
if (isBuilding()) await getListForPrinting('building')
|
||||
if (isOccupancy()) await getListForPrinting('occupancy')
|
||||
if (isElectrical()) await getListForPrinting('electrical')
|
||||
}
|
||||
})
|
||||
|
||||
createEffect(async () => {
|
||||
if (filter() !== '') {
|
||||
await getListForPrinting()
|
||||
if (isBuilding()) await getListForPrinting('building')
|
||||
if (isOccupancy()) await getListForPrinting('occupancy')
|
||||
if (isElectrical()) await getListForPrinting('electrical')
|
||||
} else if (filter() === '') {
|
||||
await getListForPrinting()
|
||||
if (isBuilding()) await getListForPrinting('building')
|
||||
if (isOccupancy()) await getListForPrinting('occupancy')
|
||||
if (isElectrical()) await getListForPrinting('electrical')
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -420,30 +404,10 @@ export default () => {
|
|||
</Tabs.Content>
|
||||
<Tabs.Content class="tabs__content" value="occupancy">
|
||||
<Row>
|
||||
{/* <h2>List of Ready to Approve and Sign Occupancy Order of Payments</h2> */}
|
||||
<Box curved thickness={0} background="#602a2abf" padding="1rem 2rem">
|
||||
{/* <Box curved thickness={0} background="#602a2abf" padding="1rem 2rem">
|
||||
<h2>Under Development</h2>
|
||||
</Box>
|
||||
</Row>
|
||||
|
||||
<Row>
|
||||
<table class="table">
|
||||
<thead>
|
||||
{/* <tr>
|
||||
<th>Application Number</th>
|
||||
<th>Name</th>
|
||||
<th style="text-align: center">Show Details</th>
|
||||
</tr> */}
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</Row>
|
||||
</Tabs.Content>
|
||||
<Tabs.Content class="tabs__content" value="electrical">
|
||||
<Row>
|
||||
<Clickable onClick={() => createPdf()}>
|
||||
<h2>List of Ready to Print in Electrical Order of Payments</h2>
|
||||
</Clickable>
|
||||
</Box> */}{' '}
|
||||
<h2>List of Ready to Print in Occupancy Order of Payments</h2>
|
||||
</Row>
|
||||
|
||||
<Padding top={0} bottom={0} right={10} left={10}>
|
||||
|
|
@ -476,7 +440,7 @@ export default () => {
|
|||
background="#121e2acc"
|
||||
color="#ffffffec"
|
||||
function={async () => {
|
||||
await getopdetails(item)
|
||||
await getopdetails('occupancy', item)
|
||||
}}
|
||||
>
|
||||
<Padding top={0} left={2} right={2} bottom={0}>
|
||||
|
|
@ -517,7 +481,95 @@ export default () => {
|
|||
</Padding>
|
||||
|
||||
<Row padding="2rem 0 0 0">
|
||||
<Button wide label="Print" edges="curved" design="bo-primary" onClick={() => printHandler(item)}></Button>
|
||||
<Button wide label="Print" edges="curved" design="bo-primary" onClick={() => printHandler('occupancy', item)}></Button>
|
||||
<span class="modal__cancel">Click anywhere to cancel</span>
|
||||
</Row>
|
||||
</Padding>
|
||||
</ModalButton>
|
||||
</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</Row>
|
||||
</Tabs.Content>
|
||||
<Tabs.Content class="tabs__content" value="electrical">
|
||||
<Row>
|
||||
<h2>List of Ready to Print in Electrical Order of Payments</h2>
|
||||
</Row>
|
||||
|
||||
<Padding top={0} bottom={0} right={10} left={10}>
|
||||
<Row content="split">
|
||||
<Input value={filter()} onChange={setFilter} placeholder="Filter Application Number" />
|
||||
<Button label="Refresh Data" edges="curved" design="bo-primary" icon={VsRefresh} onClick={refresh}></Button>
|
||||
</Row>
|
||||
</Padding>
|
||||
|
||||
<Row>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Application Number</th>
|
||||
<th>Name</th>
|
||||
<th style="text-align: center">Show Details</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{applicationList().map((item, index) => (
|
||||
<tr>
|
||||
<td>{item}</td>
|
||||
<td>{nameList()[index]}</td>
|
||||
|
||||
<td>
|
||||
<ModalButton
|
||||
class="modal"
|
||||
label="Show Details"
|
||||
design="bo-link"
|
||||
background="#121e2acc"
|
||||
color="#ffffffec"
|
||||
function={async () => {
|
||||
await getopdetails('electrical', item)
|
||||
}}
|
||||
>
|
||||
<Padding top={0} left={2} right={2} bottom={0}>
|
||||
<span class="modal__application-number">{item}</span>
|
||||
|
||||
<Padding top={1} left={0} right={0} bottom={0}>
|
||||
<section class="modal__row">
|
||||
<span class="modal__row__label">Name of Applicant:</span>
|
||||
<span class="modal__row__detail">{nameList()[index]}</span>
|
||||
</section>
|
||||
|
||||
<section class="modal__row">
|
||||
<span class="modal__row__label">Location:</span>
|
||||
<span class="modal__row__detail">{location()}</span>
|
||||
</section>
|
||||
|
||||
<section class="modal__row">
|
||||
<span class="modal__row__label">Type:</span>
|
||||
<span class="modal__row__detail">{type().toUpperCase()}</span>
|
||||
</section>
|
||||
|
||||
<section class="modal__row">
|
||||
<span class="modal__row__label">Assessed By:</span>
|
||||
<span class="modal__row__detail">{assessor()}</span>
|
||||
</section>
|
||||
|
||||
<section class="modal__row">
|
||||
<span class="modal__row__label">Date Assessed:</span>
|
||||
<span class="modal__row__detail">{dateOp().toUpperCase()}</span>
|
||||
</section>
|
||||
|
||||
<section class="modal__row">
|
||||
<span class="modal__row__label">Total Fee:</span>
|
||||
<span class="modal__row__detail__price">
|
||||
{PESO} {totalOp().toFixed(2)}
|
||||
</span>
|
||||
</section>
|
||||
</Padding>
|
||||
|
||||
<Row padding="2rem 0 0 0">
|
||||
<Button wide label="Print" edges="curved" design="bo-primary" onClick={() => printHandler('electrical', item)}></Button>
|
||||
<span class="modal__cancel">Click anywhere to cancel</span>
|
||||
</Row>
|
||||
</Padding>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ import './Main.sass'
|
|||
import { Logo, Link, Page, Row, Padding, ModalButton, Box, Button, Modal, Column, Clickable } 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, getApi, getApiMulti, postApi } from '../../utils/functions'
|
||||
|
|
@ -13,7 +12,6 @@ import { _applicationNo, _date, _optn, _name, _location, _type, _assessor, _feeL
|
|||
import { VsRefresh } from 'solid-icons/vs'
|
||||
import { BiRegularErrorAlt } from 'solid-icons/bi'
|
||||
|
||||
const API = import.meta.env.VITE_BACKEND
|
||||
const PESO = import.meta.env.VITE_PESO
|
||||
const ID = import.meta.env.VITE_HEADID
|
||||
// const NAME = import.meta.env.VITE_HEAD
|
||||
|
|
@ -265,10 +263,7 @@ export default () => {
|
|||
const formattedDatewithTime = dayjs(today).format('YYYY-MM-DD HH:mm:ss')
|
||||
|
||||
for (let i = 0; i < response.result.length; i++) {
|
||||
await ofetch(API + 'post-pops', {
|
||||
method: 'POST',
|
||||
body: { data: application, data2: formattedDate, data3: customerid, data4: customerName, data5: location, data6: codeList[i], data7: amountList[i], data8: assessor(), data9: formattedDatewithTime, data10: lguList[i], data11: dpwhList[i], data12: boList[i], data13: PUBLICIP },
|
||||
})
|
||||
await postApi('post-pops', { data: application, data2: formattedDate, data3: customerid, data4: customerName, data5: location, data6: codeList[i], data7: amountList[i], data8: assessor(), data9: formattedDatewithTime, data10: lguList[i], data11: dpwhList[i], data12: boList[i], data13: PUBLICIP })
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -335,10 +330,7 @@ export default () => {
|
|||
const today = new Date()
|
||||
const formatedDate = dayjs(today).format('YYYY-MM-DD HH:mm:ss')
|
||||
|
||||
await ofetch(API + 'post-esigntransaction', {
|
||||
method: 'POST',
|
||||
body: { data: parseInt(id), data2: approvedApplication(), data3: formatedDate },
|
||||
})
|
||||
await postApi('post-esigntransaction', { data: parseInt(id), data2: approvedApplication(), data3: formatedDate })
|
||||
}
|
||||
|
||||
const updateDocflow = async (division: string, applicationid: number, status: string) => {
|
||||
|
|
|
|||
|
|
@ -1,14 +1,37 @@
|
|||
// import { ofetch } from 'ofetch'
|
||||
|
||||
// const API = import.meta.env.VITE_BACKEND
|
||||
|
||||
// export default async (api: string, value?: any) => {
|
||||
// try {
|
||||
// let fetch
|
||||
// if (!value) {
|
||||
// fetch = await ofetch(API + api, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] })
|
||||
// } else {
|
||||
// fetch = await ofetch(API + `${api}/${value}`, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] })
|
||||
// }
|
||||
// const result = fetch.result
|
||||
// return result
|
||||
// } catch {
|
||||
// return []
|
||||
// }
|
||||
// }
|
||||
|
||||
import { ofetch } from 'ofetch'
|
||||
|
||||
const API = import.meta.env.VITE_BACKEND
|
||||
|
||||
export default async (api: string, value?: any) => {
|
||||
export default async (api: string, value?: any, value2?: any) => {
|
||||
try {
|
||||
let fetch
|
||||
if (!value) {
|
||||
fetch = await ofetch(API + api, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] })
|
||||
if (!value2) {
|
||||
if (!value) {
|
||||
fetch = await ofetch(API + api, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] })
|
||||
} else {
|
||||
fetch = await ofetch(API + `${api}/${value}/fetch-data`, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] })
|
||||
}
|
||||
} else {
|
||||
fetch = await ofetch(API + `${api}/${value}`, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] })
|
||||
fetch = await ofetch(API + `${api}/${value}/${value2}/fetch-data`, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] })
|
||||
}
|
||||
const result = fetch.result
|
||||
return result
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ export default async (api: string, value?: any) => {
|
|||
if (!value) {
|
||||
fetch = await ofetch(API + api, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] })
|
||||
} else {
|
||||
fetch = await ofetch(API + `${api}/${value}`, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] })
|
||||
fetch = await ofetch(API + `${api}/${value}/fetch-data`, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] })
|
||||
}
|
||||
|
||||
return fetch
|
||||
|
|
|
|||
|
|
@ -3,4 +3,3 @@ export { default as createPdf } from './createPdf'
|
|||
export { default as postApi } from './postApi'
|
||||
export { default as getApi } from './getApi'
|
||||
export { default as getApiMulti } from './getApiMulti'
|
||||
// export { default as generateFavicon } from './generateFavicon'
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { ofetch } from 'ofetch'
|
||||
import encryptAes from './encryptAes'
|
||||
import dayjs from 'dayjs'
|
||||
import encryptRsa from './encryptRsa'
|
||||
|
||||
const API = import.meta.env.VITE_BACKEND
|
||||
|
||||
|
|
@ -8,9 +8,9 @@ export default async (api: string, body: Object) => {
|
|||
const today = new Date()
|
||||
const todayUnix = dayjs(today).unix()
|
||||
const expiration = todayUnix + 9
|
||||
const aes = await encryptAes(`${todayUnix.toString()}-${expiration.toString()}`)
|
||||
const aes = await encryptRsa(`${api.toString()}-${todayUnix.toString()}-${expiration.toString()}`)
|
||||
|
||||
const hash = `ocbo-${aes}-token`
|
||||
const hash = `ocbo=${aes}token`
|
||||
try {
|
||||
await ofetch(API + api, {
|
||||
headers: {
|
||||
|
|
@ -18,6 +18,9 @@ export default async (api: string, body: Object) => {
|
|||
'Cache-Control': 'no-cache',
|
||||
'OCBO-Token': hash,
|
||||
},
|
||||
retry: 3,
|
||||
retryDelay: 500,
|
||||
retryStatusCodes: [400, 404, 405, 500, 502],
|
||||
method: 'POST',
|
||||
body: body,
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue