@tonzxz/government-forms 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/FORM_CATALOG.md +44 -0
  2. package/README.md +165 -0
  3. package/dist/definitions.d.ts +1147 -0
  4. package/dist/definitions.js +60 -0
  5. package/dist/forms/iar.d.ts +172 -0
  6. package/dist/forms/iar.js +6 -0
  7. package/dist/forms/ics.d.ts +48 -0
  8. package/dist/forms/ics.js +6 -0
  9. package/dist/forms/iirup.d.ts +54 -0
  10. package/dist/forms/iirup.js +6 -0
  11. package/dist/forms/iirusp.d.ts +32 -0
  12. package/dist/forms/iirusp.js +6 -0
  13. package/dist/forms/itr.d.ts +42 -0
  14. package/dist/forms/itr.js +6 -0
  15. package/dist/forms/par.d.ts +84 -0
  16. package/dist/forms/par.js +6 -0
  17. package/dist/forms/ppelc.d.ts +34 -0
  18. package/dist/forms/ppelc.js +6 -0
  19. package/dist/forms/pr.d.ts +27 -0
  20. package/dist/forms/pr.js +6 -0
  21. package/dist/forms/property-card.d.ts +68 -0
  22. package/dist/forms/property-card.js +6 -0
  23. package/dist/forms/ptr.d.ts +54 -0
  24. package/dist/forms/ptr.js +6 -0
  25. package/dist/forms/regspi.d.ts +32 -0
  26. package/dist/forms/regspi.js +6 -0
  27. package/dist/forms/ris.d.ts +66 -0
  28. package/dist/forms/ris.js +6 -0
  29. package/dist/forms/rlsddp.d.ts +54 -0
  30. package/dist/forms/rlsddp.js +6 -0
  31. package/dist/forms/rlsddsp.d.ts +42 -0
  32. package/dist/forms/rlsddsp.js +6 -0
  33. package/dist/forms/rpci.d.ts +32 -0
  34. package/dist/forms/rpci.js +6 -0
  35. package/dist/forms/rpcppe.d.ts +32 -0
  36. package/dist/forms/rpcppe.js +6 -0
  37. package/dist/forms/rpcsp.d.ts +32 -0
  38. package/dist/forms/rpcsp.js +6 -0
  39. package/dist/forms/rrsp.d.ts +32 -0
  40. package/dist/forms/rrsp.js +6 -0
  41. package/dist/forms/rsmi.d.ts +32 -0
  42. package/dist/forms/rsmi.js +6 -0
  43. package/dist/forms/rsmp.d.ts +33 -0
  44. package/dist/forms/rsmp.js +6 -0
  45. package/dist/forms/rspi.d.ts +32 -0
  46. package/dist/forms/rspi.js +6 -0
  47. package/dist/forms/spc.d.ts +37 -0
  48. package/dist/forms/spc.js +6 -0
  49. package/dist/forms/splc.d.ts +41 -0
  50. package/dist/forms/splc.js +6 -0
  51. package/dist/forms/stock-card.d.ts +28 -0
  52. package/dist/forms/stock-card.js +6 -0
  53. package/dist/forms/wmr.d.ts +32 -0
  54. package/dist/forms/wmr.js +6 -0
  55. package/dist/gam/components/gam-report-workbench.d.ts +40 -0
  56. package/dist/gam/components/gam-report-workbench.js +2 -0
  57. package/dist/gam/components/grand-total-computation.d.ts +10 -0
  58. package/dist/gam/components/grand-total-computation.js +26 -0
  59. package/dist/gam/components/iar-preview.d.ts +30 -0
  60. package/dist/gam/components/iar-preview.js +150 -0
  61. package/dist/gam/components/ics-preview.d.ts +31 -0
  62. package/dist/gam/components/ics-preview.js +114 -0
  63. package/dist/gam/components/iirup-preview.d.ts +42 -0
  64. package/dist/gam/components/iirup-preview.js +237 -0
  65. package/dist/gam/components/itr-preview.d.ts +31 -0
  66. package/dist/gam/components/itr-preview.js +180 -0
  67. package/dist/gam/components/par-preview.d.ts +28 -0
  68. package/dist/gam/components/par-preview.js +95 -0
  69. package/dist/gam/components/ppelc-preview.d.ts +28 -0
  70. package/dist/gam/components/ppelc-preview.js +128 -0
  71. package/dist/gam/components/property-card-preview.d.ts +21 -0
  72. package/dist/gam/components/property-card-preview.js +117 -0
  73. package/dist/gam/components/ptr-preview.d.ts +36 -0
  74. package/dist/gam/components/ptr-preview.js +122 -0
  75. package/dist/gam/components/purchase-order-page-client.d.ts +66 -0
  76. package/dist/gam/components/purchase-order-page-client.js +179 -0
  77. package/dist/gam/components/reg-spi-preview.d.ts +28 -0
  78. package/dist/gam/components/reg-spi-preview.js +138 -0
  79. package/dist/gam/components/ris-form.d.ts +13 -0
  80. package/dist/gam/components/ris-form.js +20 -0
  81. package/dist/gam/components/ris-preview.d.ts +7 -0
  82. package/dist/gam/components/ris-preview.js +16 -0
  83. package/dist/gam/components/rlsddp-preview.d.ts +34 -0
  84. package/dist/gam/components/rlsddp-preview.js +251 -0
  85. package/dist/gam/components/rlsddsp-preview.d.ts +33 -0
  86. package/dist/gam/components/rlsddsp-preview.js +226 -0
  87. package/dist/gam/components/rpci-preview.d.ts +27 -0
  88. package/dist/gam/components/rpci-preview.js +123 -0
  89. package/dist/gam/components/rpcppe-preview.d.ts +28 -0
  90. package/dist/gam/components/rpcppe-preview.js +133 -0
  91. package/dist/gam/components/rpcsp-preview.d.ts +29 -0
  92. package/dist/gam/components/rpcsp-preview.js +81 -0
  93. package/dist/gam/components/rspi-preview.d.ts +23 -0
  94. package/dist/gam/components/rspi-preview.js +72 -0
  95. package/dist/gam/components/spc-preview.d.ts +23 -0
  96. package/dist/gam/components/spc-preview.js +149 -0
  97. package/dist/gam/components/splc-entry-form.d.ts +14 -0
  98. package/dist/gam/components/splc-entry-form.js +6 -0
  99. package/dist/gam/components/splc-preview.d.ts +27 -0
  100. package/dist/gam/components/splc-preview.js +192 -0
  101. package/dist/gam/components/stock-card-preview.d.ts +14 -0
  102. package/dist/gam/components/stock-card-preview.js +17 -0
  103. package/dist/gam/config/new-report-config.d.ts +1094 -0
  104. package/dist/gam/config/new-report-config.js +1478 -0
  105. package/dist/gam/purchase-order-flow.d.ts +146 -0
  106. package/dist/gam/purchase-order-flow.js +173 -0
  107. package/dist/gam/purchase-request/workflow.d.ts +19 -0
  108. package/dist/gam/purchase-request/workflow.js +45 -0
  109. package/dist/gam/types/ris-types.d.ts +37 -0
  110. package/dist/gam/types/ris-types.js +1 -0
  111. package/dist/gam/utils/export-ics-xlsx.d.ts +28 -0
  112. package/dist/gam/utils/export-ics-xlsx.js +273 -0
  113. package/dist/gam/utils/export-par-xlsx.d.ts +18 -0
  114. package/dist/gam/utils/export-par-xlsx.js +181 -0
  115. package/dist/gam/utils/export-preview-pdf.d.ts +13 -0
  116. package/dist/gam/utils/export-preview-pdf.js +270 -0
  117. package/dist/gam/utils/export-report-xlsx.d.ts +228 -0
  118. package/dist/gam/utils/export-report-xlsx.js +873 -0
  119. package/dist/gam/utils/line-totals.d.ts +6 -0
  120. package/dist/gam/utils/line-totals.js +18 -0
  121. package/dist/gam/utils/monetary-input.d.ts +6 -0
  122. package/dist/gam/utils/monetary-input.js +18 -0
  123. package/dist/gam/utils/print-element.d.ts +8 -0
  124. package/dist/gam/utils/print-element.js +157 -0
  125. package/dist/government-form.d.ts +16 -0
  126. package/dist/government-form.js +45 -0
  127. package/dist/index.d.ts +49 -0
  128. package/dist/index.js +50 -0
  129. package/dist/internal/components/configurable-form-layout.d.ts +20 -0
  130. package/dist/internal/components/configurable-form-layout.js +49 -0
  131. package/dist/internal/components/ui/badge.d.ts +7 -0
  132. package/dist/internal/components/ui/badge.js +34 -0
  133. package/dist/internal/components/ui/button.d.ts +10 -0
  134. package/dist/internal/components/ui/button.js +35 -0
  135. package/dist/internal/components/ui/calendar.d.ts +8 -0
  136. package/dist/internal/components/ui/calendar.js +77 -0
  137. package/dist/internal/components/ui/command.d.ts +19 -0
  138. package/dist/internal/components/ui/command.js +36 -0
  139. package/dist/internal/components/ui/date-input.d.ts +14 -0
  140. package/dist/internal/components/ui/date-input.js +33 -0
  141. package/dist/internal/components/ui/date-picker.d.ts +19 -0
  142. package/dist/internal/components/ui/date-picker.js +34 -0
  143. package/dist/internal/components/ui/dialog.d.ts +18 -0
  144. package/dist/internal/components/ui/dialog.js +38 -0
  145. package/dist/internal/components/ui/input-group.d.ts +18 -0
  146. package/dist/internal/components/ui/input-group.js +57 -0
  147. package/dist/internal/components/ui/input.d.ts +3 -0
  148. package/dist/internal/components/ui/input.js +12 -0
  149. package/dist/internal/components/ui/label.d.ts +3 -0
  150. package/dist/internal/components/ui/label.js +7 -0
  151. package/dist/internal/components/ui/popover.d.ts +9 -0
  152. package/dist/internal/components/ui/popover.js +23 -0
  153. package/dist/internal/components/ui/select.d.ts +17 -0
  154. package/dist/internal/components/ui/select.js +35 -0
  155. package/dist/internal/components/ui/switch.d.ts +5 -0
  156. package/dist/internal/components/ui/switch.js +8 -0
  157. package/dist/internal/components/ui/table.d.ts +10 -0
  158. package/dist/internal/components/ui/table.js +28 -0
  159. package/dist/internal/components/ui/tabs.d.ts +10 -0
  160. package/dist/internal/components/ui/tabs.js +29 -0
  161. package/dist/internal/components/ui/textarea.d.ts +3 -0
  162. package/dist/internal/components/ui/textarea.js +7 -0
  163. package/dist/internal/components/ui/tooltip.d.ts +6 -0
  164. package/dist/internal/components/ui/tooltip.js +17 -0
  165. package/dist/internal/contracts/modules/v1/reg-spi-reports/reg-spi-reports.schema.d.ts +112 -0
  166. package/dist/internal/contracts/modules/v1/reg-spi-reports/reg-spi-reports.schema.js +91 -0
  167. package/dist/internal/hooks/use-form-field-order.d.ts +7 -0
  168. package/dist/internal/hooks/use-form-field-order.js +43 -0
  169. package/dist/internal/lib/utils.d.ts +2 -0
  170. package/dist/internal/lib/utils.js +3 -0
  171. package/dist/inventory/components/inventory-item-form.d.ts +7 -0
  172. package/dist/inventory/components/inventory-item-form.js +5 -0
  173. package/dist/inventory/components/inventory-item-preview.d.ts +6 -0
  174. package/dist/inventory/components/inventory-item-preview.js +5 -0
  175. package/dist/inventory/iar.d.ts +4 -0
  176. package/dist/inventory/iar.js +4 -0
  177. package/dist/inventory/ics.d.ts +2 -0
  178. package/dist/inventory/ics.js +3 -0
  179. package/dist/inventory/iirup.d.ts +2 -0
  180. package/dist/inventory/iirup.js +3 -0
  181. package/dist/inventory/iirusp.d.ts +4 -0
  182. package/dist/inventory/iirusp.js +4 -0
  183. package/dist/inventory/index.d.ts +3 -0
  184. package/dist/inventory/index.js +4 -0
  185. package/dist/inventory/item.d.ts +3 -0
  186. package/dist/inventory/item.js +3 -0
  187. package/dist/inventory/itr.d.ts +4 -0
  188. package/dist/inventory/itr.js +4 -0
  189. package/dist/inventory/par.d.ts +2 -0
  190. package/dist/inventory/par.js +3 -0
  191. package/dist/inventory/po.d.ts +2 -0
  192. package/dist/inventory/po.js +2 -0
  193. package/dist/inventory/ppelc.d.ts +2 -0
  194. package/dist/inventory/ppelc.js +3 -0
  195. package/dist/inventory/pplc.d.ts +2 -0
  196. package/dist/inventory/pplc.js +4 -0
  197. package/dist/inventory/pr.d.ts +4 -0
  198. package/dist/inventory/pr.js +4 -0
  199. package/dist/inventory/property-card.d.ts +2 -0
  200. package/dist/inventory/property-card.js +3 -0
  201. package/dist/inventory/ptr.d.ts +2 -0
  202. package/dist/inventory/ptr.js +3 -0
  203. package/dist/inventory/regspi.d.ts +4 -0
  204. package/dist/inventory/regspi.js +4 -0
  205. package/dist/inventory/ris.d.ts +4 -0
  206. package/dist/inventory/ris.js +4 -0
  207. package/dist/inventory/rlsddp.d.ts +4 -0
  208. package/dist/inventory/rlsddp.js +4 -0
  209. package/dist/inventory/rlsddsp.d.ts +2 -0
  210. package/dist/inventory/rlsddsp.js +3 -0
  211. package/dist/inventory/rpci.d.ts +2 -0
  212. package/dist/inventory/rpci.js +3 -0
  213. package/dist/inventory/rpcppe.d.ts +2 -0
  214. package/dist/inventory/rpcppe.js +3 -0
  215. package/dist/inventory/rpcsp.d.ts +2 -0
  216. package/dist/inventory/rpcsp.js +3 -0
  217. package/dist/inventory/rrsp.d.ts +2 -0
  218. package/dist/inventory/rrsp.js +3 -0
  219. package/dist/inventory/rsmi.d.ts +4 -0
  220. package/dist/inventory/rsmi.js +4 -0
  221. package/dist/inventory/rsmp.d.ts +4 -0
  222. package/dist/inventory/rsmp.js +4 -0
  223. package/dist/inventory/rspi.d.ts +2 -0
  224. package/dist/inventory/rspi.js +3 -0
  225. package/dist/inventory/spc.d.ts +2 -0
  226. package/dist/inventory/spc.js +3 -0
  227. package/dist/inventory/splc.d.ts +3 -0
  228. package/dist/inventory/splc.js +4 -0
  229. package/dist/inventory/stock-card.d.ts +4 -0
  230. package/dist/inventory/stock-card.js +4 -0
  231. package/dist/inventory/types.d.ts +11 -0
  232. package/dist/inventory/types.js +1 -0
  233. package/dist/inventory/wmr.d.ts +4 -0
  234. package/dist/inventory/wmr.js +4 -0
  235. package/dist/lib/rpcsp-accountable-person.d.ts +1 -0
  236. package/dist/lib/rpcsp-accountable-person.js +10 -0
  237. package/dist/reports/iar/_components/create-form.d.ts +13 -0
  238. package/dist/reports/iar/_components/create-form.js +92 -0
  239. package/dist/reports/iar/_components/document-preview.d.ts +11 -0
  240. package/dist/reports/iar/_components/document-preview.js +131 -0
  241. package/dist/reports/iar/types.d.ts +97 -0
  242. package/dist/reports/iar/types.js +24 -0
  243. package/dist/reports/iirusp/_components/create-form.d.ts +17 -0
  244. package/dist/reports/iirusp/_components/create-form.js +118 -0
  245. package/dist/reports/iirusp/_components/document-preview.d.ts +8 -0
  246. package/dist/reports/iirusp/_components/document-preview.js +389 -0
  247. package/dist/reports/iirusp/types.d.ts +134 -0
  248. package/dist/reports/iirusp/types.js +29 -0
  249. package/dist/reports/iirusp/utils.d.ts +29 -0
  250. package/dist/reports/iirusp/utils.js +488 -0
  251. package/dist/reports/itr/_components/create-form.d.ts +28 -0
  252. package/dist/reports/itr/_components/create-form.js +90 -0
  253. package/dist/reports/itr/_components/document-preview.d.ts +6 -0
  254. package/dist/reports/itr/_components/document-preview.js +7 -0
  255. package/dist/reports/itr/types.d.ts +68 -0
  256. package/dist/reports/itr/types.js +27 -0
  257. package/dist/reports/itr/utils.d.ts +24 -0
  258. package/dist/reports/itr/utils.js +76 -0
  259. package/dist/reports/pr/_components/create-form.d.ts +16 -0
  260. package/dist/reports/pr/_components/create-form.js +52 -0
  261. package/dist/reports/pr/_components/document-preview.d.ts +7 -0
  262. package/dist/reports/pr/_components/document-preview.js +9 -0
  263. package/dist/reports/pr/types.d.ts +69 -0
  264. package/dist/reports/pr/types.js +1 -0
  265. package/dist/reports/pr/utils.d.ts +72 -0
  266. package/dist/reports/pr/utils.js +572 -0
  267. package/dist/reports/regspi/_components/create-form.d.ts +19 -0
  268. package/dist/reports/regspi/_components/create-form.js +33 -0
  269. package/dist/reports/regspi/_components/document-preview.d.ts +6 -0
  270. package/dist/reports/regspi/_components/document-preview.js +7 -0
  271. package/dist/reports/regspi/types.d.ts +29 -0
  272. package/dist/reports/regspi/types.js +24 -0
  273. package/dist/reports/regspi/utils.d.ts +48 -0
  274. package/dist/reports/regspi/utils.js +98 -0
  275. package/dist/reports/ris/_components/create-form.d.ts +36 -0
  276. package/dist/reports/ris/_components/create-form.js +149 -0
  277. package/dist/reports/ris/_components/document-preview.d.ts +8 -0
  278. package/dist/reports/ris/_components/document-preview.js +31 -0
  279. package/dist/reports/ris/types.d.ts +93 -0
  280. package/dist/reports/ris/types.js +1 -0
  281. package/dist/reports/rlsddp/_components/create-form.d.ts +11 -0
  282. package/dist/reports/rlsddp/_components/create-form.js +165 -0
  283. package/dist/reports/rlsddp/_components/document-preview.d.ts +8 -0
  284. package/dist/reports/rlsddp/_components/document-preview.js +15 -0
  285. package/dist/reports/rlsddp/types.d.ts +105 -0
  286. package/dist/reports/rlsddp/types.js +31 -0
  287. package/dist/reports/rrsp/components/rrsp-preview.d.ts +21 -0
  288. package/dist/reports/rrsp/components/rrsp-preview.js +155 -0
  289. package/dist/reports/rsmi/components/rsmi-create-form.d.ts +20 -0
  290. package/dist/reports/rsmi/components/rsmi-create-form.js +8 -0
  291. package/dist/reports/rsmi/components/rsmi-document-body.d.ts +15 -0
  292. package/dist/reports/rsmi/components/rsmi-document-body.js +12 -0
  293. package/dist/reports/rsmi/components/rsmi-types.d.ts +45 -0
  294. package/dist/reports/rsmi/components/rsmi-types.js +1 -0
  295. package/dist/reports/rsmi/components/rsmi-utils.d.ts +2 -0
  296. package/dist/reports/rsmi/components/rsmi-utils.js +18 -0
  297. package/dist/reports/rsmp/components/rsmp-create-modal.d.ts +5 -0
  298. package/dist/reports/rsmp/components/rsmp-create-modal.js +7 -0
  299. package/dist/reports/rsmp/components/rsmp-preview-modal.d.ts +11 -0
  300. package/dist/reports/rsmp/components/rsmp-preview-modal.js +47 -0
  301. package/dist/reports/rsmp/components/rsmp-types.d.ts +44 -0
  302. package/dist/reports/rsmp/components/rsmp-types.js +1 -0
  303. package/dist/reports/rsmp/components/rsmp-utils.d.ts +5 -0
  304. package/dist/reports/rsmp/components/rsmp-utils.js +41 -0
  305. package/dist/reports/rsmp/lib/rsmp-grouping.d.ts +14 -0
  306. package/dist/reports/rsmp/lib/rsmp-grouping.js +75 -0
  307. package/dist/reports/stock-card/_components/create-form.d.ts +13 -0
  308. package/dist/reports/stock-card/_components/create-form.js +39 -0
  309. package/dist/reports/stock-card/_components/document-preview.d.ts +7 -0
  310. package/dist/reports/stock-card/_components/document-preview.js +29 -0
  311. package/dist/reports/stock-card/types.d.ts +31 -0
  312. package/dist/reports/stock-card/types.js +1 -0
  313. package/dist/reports/stock-card/utils.d.ts +32 -0
  314. package/dist/reports/stock-card/utils.js +248 -0
  315. package/dist/reports/wmr/_components/create-form.d.ts +22 -0
  316. package/dist/reports/wmr/_components/create-form.js +61 -0
  317. package/dist/reports/wmr/_components/document-preview.d.ts +10 -0
  318. package/dist/reports/wmr/_components/document-preview.js +59 -0
  319. package/dist/reports/wmr/types.d.ts +45 -0
  320. package/dist/reports/wmr/types.js +1 -0
  321. package/dist/reports/wmr/utils.d.ts +32 -0
  322. package/dist/reports/wmr/utils.js +343 -0
  323. package/dist/styles.css +4492 -0
  324. package/extraction-manifest.json +620 -0
  325. package/package.json +197 -0
@@ -0,0 +1,179 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { ConfigurableFormLayout } from "../../internal/components/configurable-form-layout.js";
4
+ import { DatePicker } from "../../internal/components/ui/date-picker.js";
5
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from "../../internal/components/ui/tabs.js";
6
+ import { formatPesoAmount, getPurchaseOrderTotal } from "../purchase-order-flow.js";
7
+ import { sanitizeMonetaryInput } from "../utils/monetary-input.js";
8
+ function formatTemplateDate(value) {
9
+ if (!value)
10
+ return "";
11
+ const date = new Date(value);
12
+ if (Number.isNaN(date.getTime()))
13
+ return value;
14
+ return `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear()}`;
15
+ }
16
+ function formatMoneyPlain(value) {
17
+ const amount = typeof value === "string" ? Number(value) : value;
18
+ if (!Number.isFinite(amount))
19
+ return "-";
20
+ return amount.toLocaleString("en-PH", {
21
+ minimumFractionDigits: 2,
22
+ maximumFractionDigits: 2,
23
+ });
24
+ }
25
+ export function defaultPoTemplateFields() {
26
+ return {
27
+ supplierAddress: "",
28
+ supplierTin: "",
29
+ modeOfProcurement: "",
30
+ placeOfDelivery: "",
31
+ deliveryTerm: "",
32
+ paymentTerm: "",
33
+ amountInWords: "",
34
+ supplierConforme: "",
35
+ conformeDate: "",
36
+ authorizedOfficial: "",
37
+ fundsAvailable: "",
38
+ orsBursNo: "",
39
+ orsBursDate: "",
40
+ orsBursAmount: "",
41
+ chiefAccountantName: "",
42
+ };
43
+ }
44
+ const DELIVERY_TERM_OPTIONS = [
45
+ "Complete Delivery",
46
+ "Partial Delivery",
47
+ "30 Calendar Days",
48
+ "45 Calendar Days",
49
+ "As Scheduled",
50
+ ];
51
+ export function PurchaseOrderPreview({ data }) {
52
+ const totalAmount = getPurchaseOrderTotal(data.items);
53
+ const rows = Array.from({ length: Math.max(15, data.items.length) }, (_, index) => data.items[index]);
54
+ return (_jsx("div", { "data-pdf-page": true, "data-pdf-orientation": "portrait", className: "w-190 bg-white p-6.5 font-['Times_New_Roman',Times,serif] text-black shadow-sm", children: _jsxs("div", { className: "border-2 border-black text-[12.5px] leading-[1.35]", children: [_jsx("div", { className: "flex h-11.5 items-center justify-center border-b-2 border-black text-center text-[21px] leading-normal font-bold", children: "PURCHASE ORDER" }), _jsx("div", { className: "flex h-10 items-center justify-center border-b-2 border-black text-center text-[17px] leading-normal font-bold", children: data.entityName }), _jsxs("table", { className: "w-full table-fixed border-collapse font-bold", children: [_jsxs("colgroup", { children: [_jsx("col", { className: "w-[68%]" }), _jsx("col", { className: "w-[32%]" })] }), _jsxs("tbody", { children: [_jsxs("tr", { className: "border-b border-black align-top", children: [_jsxs("td", { className: "border-r border-black px-1.5 py-1.5", children: ["Supplier: ", _jsx("span", { className: "wrap-break-word", children: data.supplier })] }), _jsxs("td", { className: "px-1.5 py-1.5", children: ["P.O. NO. ", _jsx("span", { className: "wrap-break-word", children: data.poNo })] })] }), _jsxs("tr", { className: "border-b border-black align-top", children: [_jsxs("td", { className: "border-r border-black px-1.5 py-1.5", children: ["Address: ", _jsx("span", { className: "wrap-break-word", children: data.supplierAddress })] }), _jsxs("td", { className: "px-1.5 py-1.5", children: ["Date: ", _jsx("span", { className: "wrap-break-word", children: formatTemplateDate(data.poDate) })] })] }), _jsxs("tr", { className: "border-b-2 border-black align-top", children: [_jsxs("td", { className: "border-r border-black px-1.5 py-1.5", children: ["TIN: ", _jsx("span", { className: "wrap-break-word", children: data.supplierTin })] }), _jsxs("td", { className: "px-1.5 py-1.5", children: ["Mode of Procurement:", " ", _jsx("span", { className: "wrap-break-word", children: data.modeOfProcurement })] })] })] })] }), _jsxs("div", { className: "min-h-18 border-b-2 border-black px-1.5 pt-3", children: [_jsx("p", { children: "Gentlemen:" }), _jsx("p", { className: "pl-8", children: "Please furnish this office the following articles subject to the terms and conditions contained herein:" })] }), _jsxs("table", { className: "w-full table-fixed border-collapse font-bold", children: [_jsxs("colgroup", { children: [_jsx("col", { className: "w-[68%]" }), _jsx("col", { className: "w-[32%]" })] }), _jsxs("tbody", { children: [_jsxs("tr", { className: "border-b border-black align-top", children: [_jsxs("td", { className: "border-r border-black px-1.5 py-1.5", children: ["Place of Delivery: ", _jsx("span", { className: "wrap-break-word", children: data.placeOfDelivery })] }), _jsxs("td", { className: "px-1.5 py-1.5", children: ["Delivery Term: ", _jsx("span", { className: "wrap-break-word", children: data.deliveryTerm })] })] }), _jsxs("tr", { className: "border-b border-black align-top", children: [_jsxs("td", { className: "border-r border-black px-1.5 py-1.5", children: ["Date of Delivery:", " ", _jsx("span", { className: "wrap-break-word", children: formatTemplateDate(data.expectedDeliveryDate) })] }), _jsxs("td", { className: "px-1.5 py-1.5", children: ["Payment Term: ", _jsx("span", { className: "wrap-break-word", children: data.paymentTerm })] })] })] })] }), _jsxs("table", { className: "w-full table-fixed border-collapse text-[12.5px]", children: [_jsxs("colgroup", { children: [_jsx("col", { className: "w-[8.5%]" }), _jsx("col", { className: "w-[6.5%]" }), _jsx("col", { className: "w-[41%]" }), _jsx("col", { className: "w-[10%]" }), _jsx("col", { className: "w-[18%]" }), _jsx("col", { className: "w-[16%]" })] }), _jsx("thead", { children: _jsxs("tr", { className: "h-13 border-b border-black text-center text-[14px] leading-tight font-bold", children: [_jsxs("th", { className: "border-r border-black px-1 text-[12px] leading-tight", children: ["Stock/", _jsx("br", {}), "Property", _jsx("br", {}), "No."] }), _jsx("th", { className: "border-r border-black px-1", children: "Unit" }), _jsx("th", { className: "border-r border-black px-1", children: "Description" }), _jsx("th", { className: "border-r border-black px-1", children: "Quantity" }), _jsx("th", { className: "border-r border-black px-1", children: "Unit Cost" }), _jsx("th", { className: "px-1", children: "Amount" })] }) }), _jsx("tbody", { children: rows.map((item, index) => {
55
+ const amount = item ? getPurchaseOrderTotal([item]) : null;
56
+ return (_jsxs("tr", { className: item ? "h-9.25 align-top" : "h-6 align-top", children: [_jsx("td", { className: "border-r border-black px-1 text-center text-[10.5px] leading-tight wrap-break-word", children: item?.stockNo ?? "" }), _jsx("td", { className: "border-r border-black px-1 text-center", children: item?.unit ?? "" }), _jsx("td", { className: "border-r border-black px-1.5 wrap-break-word", children: item?.description ?? "" }), _jsx("td", { className: "border-r border-black px-1 text-center", children: item?.quantity ?? "" }), _jsx("td", { className: "border-r border-black px-1 text-right", children: item ? formatMoneyPlain(item.unitCost) : "" }), _jsx("td", { className: "px-1 text-right", children: amount ? formatMoneyPlain(amount) : "-" })] }, `${item?.stockNo ?? "blank"}-${index}`));
57
+ }) }), _jsx("tfoot", { children: _jsxs("tr", { className: "border-t border-black align-top", children: [_jsxs("td", { colSpan: 4, className: "border-r border-black px-1.5 py-2 wrap-break-word", children: ["(Amount in words) : ", data.amountInWords] }), _jsx("td", { className: "border-r border-black px-1 py-2 text-center font-bold", children: "Total" }), _jsx("td", { className: "px-1 py-2 text-right font-bold", children: formatMoneyPlain(totalAmount) })] }) })] }), _jsxs("div", { className: "border-t-2 border-black px-10 py-4 text-center text-[14px]", children: [_jsx("p", { children: "In case of failure to make the full delivery within the time specified above, a penalty of one-tenth (1/10)" }), _jsx("p", { children: "of one percent for every day of delay shall be imposed on the undelivered item/s" }), _jsxs("p", { children: [_jsx("span", { className: "font-bold", children: "Note:" }), " In the event a finding of overpricing and/or overpayment has been made by the appropriate authority,"] }), _jsx("p", { children: "the contractor/supplier shall reimburse the Procuring Entity the amount declared as overpriced or overpaid." })] }), _jsxs("div", { className: "grid grid-cols-2 px-14 pb-6 text-center text-[14px]", children: [_jsx("div", { className: "pt-6 text-left", children: "Conforme:" }), _jsx("div", { children: "Very truly yours," }), _jsxs("div", { className: "pt-8", children: [_jsx("div", { className: "mx-auto min-h-5 w-65 wrap-break-word", children: data.supplierConforme }), _jsx("div", { className: "border-t border-black", children: "(Signature over Printed name of Supplier" }), _jsx("div", { className: "mx-auto mt-4 min-h-5 w-65", children: formatTemplateDate(data.conformeDate) }), _jsx("div", { className: "border-t border-black", children: "(Date)" })] }), _jsxs("div", { className: "pt-8", children: [_jsx("div", { className: "mx-auto min-h-5 w-65 wrap-break-word", children: data.authorizedOfficial }), _jsx("div", { className: "mx-auto border-t border-black", children: "(Authorized Official)" })] })] }), _jsxs("div", { className: "grid grid-cols-[68%_32%] border-t-2 border-black text-[13px] font-bold", children: [_jsxs("div", { className: "min-h-24 border-r border-black px-3 py-1", children: [_jsxs("p", { className: "wrap-break-word", children: ["Fund Cluster: ", data.fundCluster] }), _jsxs("p", { className: "wrap-break-word", children: ["Funds Available: ", data.fundsAvailable ? formatMoneyPlain(data.fundsAvailable) : ""] }), _jsxs("div", { className: "pt-14 text-center", children: [data.chiefAccountantName ? _jsx("p", { children: data.chiefAccountantName }) : null, _jsx("p", { children: "Signature over Printed Name of Chief Accountant/" }), _jsx("p", { children: "Head of Accounting Division/Unit" })] })] }), _jsxs("div", { className: "px-1 py-5", children: [_jsxs("p", { className: "wrap-break-word", children: ["ORS/BURS No. ", data.orsBursNo] }), _jsxs("p", { children: ["Date of the ORS/BURS: ", formatTemplateDate(data.orsBursDate)] }), _jsxs("p", { children: ["Amount: ", data.orsBursAmount ? formatMoneyPlain(data.orsBursAmount) : ""] })] })] })] }) }));
58
+ }
59
+ export function PurchaseOrderCreateForm({ loading = false, approversLoading = false, availablePurchaseRequests, selectedPurchaseRequest, createTab, setCreateTab, setSelectedPrNo, supplier, setSupplier, expectedDeliveryDate, setExpectedDeliveryDate, poTemplateFields, setPoTemplateField, configuredChiefAccountantName, selectedAmountInWords, poNumber }) {
60
+ const selectedPurchaseRequestTotal = getPurchaseOrderTotal(selectedPurchaseRequest?.items ?? []);
61
+ return (_jsx("div", { className: "space-y-3", children: loading ? (_jsx("div", { className: "text-muted-foreground rounded-md border bg-slate-50 px-3 py-2 text-sm", children: "Loading approved Purchase Requests..." })) : availablePurchaseRequests.length === 0 ? (_jsx("div", { className: "text-muted-foreground rounded-md border bg-amber-50 px-3 py-2 text-sm", children: "No eligible approved Purchase Requests are available. A PR must be approved, PO-eligible, and must not already have a Purchase Order." })) : (_jsxs(Tabs, { value: createTab, onValueChange: setCreateTab, children: [_jsxs(TabsList, { className: "grid w-full grid-cols-3", children: [_jsx(TabsTrigger, { value: "basic", children: "Basic Info" }), _jsx(TabsTrigger, { value: "details", children: "Details" }), _jsx(TabsTrigger, { value: "items", children: "Items" })] }), _jsx(TabsContent, { value: "basic", className: "mt-4", children: (() => {
62
+ const poBasicFields = [
63
+ {
64
+ id: "purchaseRequest",
65
+ label: "Approved Purchase Request *",
66
+ fullWidth: true,
67
+ render: () => (_jsx("select", { value: selectedPurchaseRequest?.prNo ?? "", onChange: event => {
68
+ setSelectedPrNo(event.target.value);
69
+ /* host owns save errors */
70
+ }, className: "w-full rounded-md border px-3 py-2 text-sm", children: availablePurchaseRequests.map(row => (_jsxs("option", { value: row.prNo, children: [row.prNo, " -", " ", formatPesoAmount(getPurchaseOrderTotal(row.items ?? []))] }, row.prNo))) })),
71
+ },
72
+ {
73
+ id: "supplier",
74
+ label: "Supplier *",
75
+ render: () => (_jsx("input", { value: supplier, onChange: event => {
76
+ setSupplier(event.target.value);
77
+ /* host owns save errors */
78
+ }, placeholder: "Supplier name", className: "w-full rounded-md border px-3 py-2 text-sm" })),
79
+ },
80
+ {
81
+ id: "expectedDeliveryDate",
82
+ label: "Expected Delivery Date",
83
+ render: () => (_jsx(DatePicker, { value: expectedDeliveryDate, onValueChange: value => {
84
+ setExpectedDeliveryDate(value);
85
+ /* host owns save errors */
86
+ } })),
87
+ },
88
+ ];
89
+ return (_jsx(ConfigurableFormLayout, { formKey: "po-basic-info", fields: poBasicFields, header: _jsx("div", { className: "rounded-md border border-indigo-200 bg-indigo-50 p-4", children: _jsxs("div", { className: "grid gap-3 sm:grid-cols-3", children: [_jsxs("div", { children: [_jsx("p", { className: "text-muted-foreground text-xs font-medium", children: "PO Number" }), _jsx("p", { className: "font-mono text-sm font-semibold text-slate-700", children: selectedPurchaseRequest
90
+ ? poNumber || "-"
91
+ : "-" })] }), _jsxs("div", { children: [_jsx("p", { className: "text-muted-foreground text-xs font-medium", children: "Items" }), _jsx("p", { className: "text-sm font-semibold text-slate-700", children: selectedPurchaseRequest?.items?.length ?? 0 })] }), _jsxs("div", { children: [_jsx("p", { className: "text-muted-foreground text-xs font-medium", children: "Total Amount" }), _jsx("p", { className: "text-sm font-semibold text-slate-700", children: formatPesoAmount(selectedPurchaseRequestTotal) })] })] }) }) }));
92
+ })() }), _jsx(TabsContent, { value: "details", className: "mt-4", children: (() => {
93
+ const templateFields = [
94
+ {
95
+ id: "supplierAddress",
96
+ label: "Supplier Address",
97
+ fullWidth: true,
98
+ render: () => (_jsx("input", { value: poTemplateFields.supplierAddress, onChange: event => setPoTemplateField("supplierAddress", event.target.value), placeholder: "Supplier address", className: "w-full rounded-md border px-3 py-2 text-sm" })),
99
+ },
100
+ {
101
+ id: "supplierTin",
102
+ label: "TIN",
103
+ render: () => (_jsx("input", { value: poTemplateFields.supplierTin, onChange: event => setPoTemplateField("supplierTin", event.target.value), placeholder: "000-000-000-000", className: "w-full rounded-md border px-3 py-2 text-sm" })),
104
+ },
105
+ {
106
+ id: "modeOfProcurement",
107
+ label: "Mode of Procurement",
108
+ render: () => (_jsx("input", { value: poTemplateFields.modeOfProcurement, onChange: event => setPoTemplateField("modeOfProcurement", event.target.value), className: "w-full rounded-md border px-3 py-2 text-sm" })),
109
+ },
110
+ {
111
+ id: "placeOfDelivery",
112
+ label: "Place of Delivery",
113
+ fullWidth: true,
114
+ render: () => (_jsx("input", { value: poTemplateFields.placeOfDelivery, onChange: event => setPoTemplateField("placeOfDelivery", event.target.value), className: "w-full rounded-md border px-3 py-2 text-sm" })),
115
+ },
116
+ {
117
+ id: "deliveryTerm",
118
+ label: "Delivery Term",
119
+ render: () => (_jsxs("select", { value: poTemplateFields.deliveryTerm, onChange: event => setPoTemplateField("deliveryTerm", event.target.value), className: "w-full rounded-md border px-3 py-2 text-sm", children: [_jsx("option", { value: "", children: "Select delivery term" }), DELIVERY_TERM_OPTIONS.map(option => (_jsx("option", { value: option, children: option }, option))), poTemplateFields.deliveryTerm &&
120
+ !DELIVERY_TERM_OPTIONS.includes(poTemplateFields.deliveryTerm) ? (_jsx("option", { value: poTemplateFields.deliveryTerm, children: poTemplateFields.deliveryTerm })) : null] })),
121
+ },
122
+ {
123
+ id: "paymentTerm",
124
+ label: "Payment Term",
125
+ render: () => (_jsx("input", { value: poTemplateFields.paymentTerm, onChange: event => setPoTemplateField("paymentTerm", event.target.value), placeholder: "e.g. 30 days", className: "w-full rounded-md border px-3 py-2 text-sm" })),
126
+ },
127
+ {
128
+ id: "amountInWords",
129
+ label: "Amount in Words",
130
+ fullWidth: true,
131
+ render: () => (_jsx("input", { value: selectedAmountInWords, readOnly: true, "aria-readonly": "true", className: "w-full rounded-md border bg-slate-50 px-3 py-2 text-sm text-slate-700" })),
132
+ },
133
+ {
134
+ id: "authorizedOfficial",
135
+ label: "Authorized Official",
136
+ render: () => (_jsx("input", { value: poTemplateFields.authorizedOfficial, onChange: event => setPoTemplateField("authorizedOfficial", event.target.value), className: "w-full rounded-md border px-3 py-2 text-sm" })),
137
+ },
138
+ {
139
+ id: "supplierConforme",
140
+ label: "Supplier Conforme",
141
+ render: () => (_jsx("input", { value: poTemplateFields.supplierConforme, onChange: event => setPoTemplateField("supplierConforme", event.target.value), className: "w-full rounded-md border px-3 py-2 text-sm" })),
142
+ },
143
+ {
144
+ id: "conformeDate",
145
+ label: "Conforme Date",
146
+ render: () => (_jsx(DatePicker, { value: poTemplateFields.conformeDate, onValueChange: value => setPoTemplateField("conformeDate", value) })),
147
+ },
148
+ {
149
+ id: "fundsAvailable",
150
+ label: "Funds Available",
151
+ render: () => (_jsx("input", { type: "text", inputMode: "decimal", pattern: "[0-9]*[.]?[0-9]{0,2}", value: poTemplateFields.fundsAvailable, onChange: event => setPoTemplateField("fundsAvailable", sanitizeMonetaryInput(event.target.value)), className: "w-full rounded-md border px-3 py-2 text-sm" })),
152
+ },
153
+ {
154
+ id: "orsBursNo",
155
+ label: "ORS/BURS No.",
156
+ render: () => (_jsx("input", { value: poTemplateFields.orsBursNo, onChange: event => setPoTemplateField("orsBursNo", event.target.value), className: "w-full rounded-md border px-3 py-2 text-sm" })),
157
+ },
158
+ {
159
+ id: "orsBursDate",
160
+ label: "ORS/BURS Date",
161
+ render: () => (_jsx(DatePicker, { value: poTemplateFields.orsBursDate, onValueChange: value => setPoTemplateField("orsBursDate", value) })),
162
+ },
163
+ {
164
+ id: "orsBursAmount",
165
+ label: "ORS/BURS Amount",
166
+ render: () => (_jsx("input", { type: "text", inputMode: "decimal", pattern: "[0-9]*[.]?[0-9]{0,2}", value: poTemplateFields.orsBursAmount, onChange: event => setPoTemplateField("orsBursAmount", sanitizeMonetaryInput(event.target.value)), placeholder: selectedPurchaseRequestTotal.toFixed(2), className: "w-full rounded-md border px-3 py-2 text-sm" })),
167
+ },
168
+ {
169
+ id: "chiefAccountantName",
170
+ label: "Chief Accountant / Accounting Head",
171
+ fullWidth: true,
172
+ render: () => (_jsx("input", { value: configuredChiefAccountantName, readOnly: true, "aria-readonly": "true", placeholder: approversLoading
173
+ ? "Loading configured approver..."
174
+ : "Configure the Purchase Order accounting head in document approvers", className: "w-full rounded-md border bg-slate-50 px-3 py-2 text-sm text-slate-700" })),
175
+ },
176
+ ];
177
+ return (_jsx(ConfigurableFormLayout, { formKey: "po-template-fields", fields: templateFields }));
178
+ })() }), _jsx(TabsContent, { value: "items", className: "mt-4 space-y-3", children: _jsx("div", { className: "overflow-x-auto rounded-md border", children: _jsxs("table", { className: "min-w-full border-collapse text-xs", children: [_jsx("thead", { className: "bg-gray-50", children: _jsxs("tr", { children: [_jsx("th", { className: "border p-2 text-left", children: "Stock/Property No." }), _jsx("th", { className: "border p-2 text-left", children: "Unit" }), _jsx("th", { className: "border p-2 text-left", children: "Description" }), _jsx("th", { className: "border p-2 text-right", children: "Qty" }), _jsx("th", { className: "border p-2 text-right", children: "Unit Cost" }), _jsx("th", { className: "border p-2 text-right", children: "Total" })] }) }), _jsxs("tbody", { children: [(selectedPurchaseRequest?.items ?? []).map((item, index) => (_jsxs("tr", { children: [_jsx("td", { className: "border p-2", children: item.stockNo }), _jsx("td", { className: "border p-2", children: item.unit }), _jsx("td", { className: "border p-2", children: item.description }), _jsx("td", { className: "border p-2 text-right", children: item.quantity }), _jsx("td", { className: "border p-2 text-right", children: formatPesoAmount(item.unitCost) }), _jsx("td", { className: "border p-2 text-right", children: formatPesoAmount(getPurchaseOrderTotal([item])) })] }, `${item.stockNo ?? "item"}-${index}`))), (selectedPurchaseRequest?.items ?? []).length === 0 ? (_jsx("tr", { children: _jsx("td", { className: "text-muted-foreground border p-4 text-center", colSpan: 6, children: "No PR items found." }) })) : null] })] }) }) })] })) }));
179
+ }
@@ -0,0 +1,28 @@
1
+ interface EntryRow {
2
+ entryDate: string;
3
+ reference: string;
4
+ iicRrspNo: string;
5
+ semiExpendablePropertyNo: string;
6
+ itemDescription: string;
7
+ estimatedUsefulLife: string;
8
+ issuedQty: string;
9
+ issuedOfficeOfficer: string;
10
+ returnedQty: string;
11
+ returnedOfficeOfficer: string;
12
+ reissuedQty: string;
13
+ reissuedOfficeOfficer: string;
14
+ disposedQty: string;
15
+ balance: string;
16
+ amount: string;
17
+ remarks: string;
18
+ }
19
+ interface RegSpiPreviewProps {
20
+ entityName: string;
21
+ semiExpendableProperty: string;
22
+ fundCluster: string;
23
+ sheetNumber: string;
24
+ regSpiNo: string;
25
+ entries: EntryRow[];
26
+ }
27
+ export declare function RegSpiPreview({ entityName, semiExpendableProperty, fundCluster, entries, }: RegSpiPreviewProps): import("react/jsx-runtime").JSX.Element;
28
+ export {};
@@ -0,0 +1,138 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ const FIXED_ROWS = 23;
4
+ const PAGE_PADDING = "6mm 5.5mm 14mm";
5
+ function display(value) {
6
+ return value.trim();
7
+ }
8
+ function fmtDate(value) {
9
+ if (!value || value.trim() === "")
10
+ return "";
11
+ const date = new Date(value);
12
+ if (Number.isNaN(date.getTime()))
13
+ return value;
14
+ return date.toLocaleDateString("en-PH");
15
+ }
16
+ function fmtQty(value) {
17
+ if (!value || value.trim() === "")
18
+ return "";
19
+ const n = Number(value);
20
+ if (Number.isNaN(n))
21
+ return value;
22
+ return n === 0 ? "" : Number.isInteger(n) ? n.toString() : n.toFixed(2);
23
+ }
24
+ function fmtAmount(value) {
25
+ if (!value || value.trim() === "")
26
+ return "";
27
+ const n = Number(value);
28
+ if (Number.isNaN(n))
29
+ return value;
30
+ return n === 0
31
+ ? ""
32
+ : n.toLocaleString("en-PH", {
33
+ minimumFractionDigits: 2,
34
+ maximumFractionDigits: 2,
35
+ });
36
+ }
37
+ const BORDER = "1.25px solid #111";
38
+ const OUTER_BORDER = "1.8px solid #111";
39
+ const headerCell = {
40
+ border: BORDER,
41
+ padding: "0.8mm 0.7mm",
42
+ textAlign: "center",
43
+ verticalAlign: "middle",
44
+ fontSize: "7.8pt",
45
+ fontWeight: 400,
46
+ lineHeight: 1.2,
47
+ };
48
+ const mergedHeaderTop = {
49
+ ...headerCell,
50
+ borderBottom: "none",
51
+ padding: 0,
52
+ };
53
+ const mergedHeaderBottom = {
54
+ ...headerCell,
55
+ borderTop: "none",
56
+ padding: 0,
57
+ };
58
+ const mergedHeaderLabel = {
59
+ position: "relative",
60
+ top: "-3.25mm",
61
+ display: "block",
62
+ };
63
+ const bodyCell = {
64
+ border: BORDER,
65
+ height: "5.8mm",
66
+ padding: "0.4mm 0.8mm",
67
+ fontSize: "7.4pt",
68
+ lineHeight: 1.08,
69
+ overflow: "hidden",
70
+ whiteSpace: "nowrap",
71
+ verticalAlign: "middle",
72
+ };
73
+ const centeredBodyCell = {
74
+ ...bodyCell,
75
+ textAlign: "center",
76
+ };
77
+ export function RegSpiPreview({ entityName, semiExpendableProperty, fundCluster, entries, }) {
78
+ const rows = Array.from({ length: FIXED_ROWS }, (_, i) => entries[i] ?? null);
79
+ return (_jsxs(_Fragment, { children: [_jsx("style", { children: `
80
+ @media print {
81
+ .no-print { display: none !important; }
82
+ @page { size: A4 landscape; margin: 0; }
83
+ body { background: white !important; }
84
+ .regspi-a4-page {
85
+ box-shadow: none !important;
86
+ margin: 0 !important;
87
+ padding: ${PAGE_PADDING} !important;
88
+ }
89
+ }
90
+
91
+ .regspi-a4-page * {
92
+ box-sizing: border-box;
93
+ }
94
+ ` }), _jsx("div", { style: { overflowX: "auto", width: "100%" }, children: _jsxs("div", { className: "regspi-a4-page bg-white shadow-sm", "data-pdf-page": "true", "data-pdf-orientation": "landscape", style: {
95
+ boxSizing: "border-box",
96
+ width: "297mm",
97
+ minHeight: "210mm",
98
+ padding: PAGE_PADDING,
99
+ fontFamily: '"Times New Roman", Times, serif',
100
+ color: "#111",
101
+ }, children: [_jsxs("header", { style: {
102
+ position: "relative",
103
+ height: "32mm",
104
+ }, children: [_jsx("div", { style: {
105
+ position: "absolute",
106
+ top: "0",
107
+ right: "1mm",
108
+ fontSize: "8pt",
109
+ fontStyle: "italic",
110
+ fontWeight: 600,
111
+ }, children: "Annex A.4" }), _jsx("div", { style: {
112
+ position: "absolute",
113
+ top: "7mm",
114
+ left: 0,
115
+ right: 0,
116
+ textAlign: "center",
117
+ fontSize: "11.5pt",
118
+ fontWeight: 700,
119
+ letterSpacing: "0.2px",
120
+ }, children: "REGISTRY OF SEMI-EXPENDABLE PROPERTY ISSUED" }), _jsxs("div", { style: {
121
+ position: "absolute",
122
+ left: 0,
123
+ right: "8mm",
124
+ bottom: "4mm",
125
+ display: "grid",
126
+ gridTemplateColumns: "1fr auto",
127
+ columnGap: "12mm",
128
+ alignItems: "start",
129
+ fontSize: "8.5pt",
130
+ fontWeight: 700,
131
+ lineHeight: 1.25,
132
+ }, children: [_jsxs("div", { children: [_jsxs("div", { children: ["Entity Name: ", display(entityName)] }), _jsxs("div", { children: ["Semi-Expendable Property: ", display(semiExpendableProperty)] })] }), _jsxs("div", { style: { minWidth: "66mm" }, children: ["Fund Cluster : ", display(fundCluster)] })] })] }), _jsxs("table", { style: {
133
+ width: "100%",
134
+ borderCollapse: "collapse",
135
+ tableLayout: "fixed",
136
+ border: OUTER_BORDER,
137
+ }, children: [_jsxs("colgroup", { children: [_jsx("col", { style: { width: "5%" } }), _jsx("col", { style: { width: "8%" } }), _jsx("col", { style: { width: "7.2%" } }), _jsx("col", { style: { width: "15.3%" } }), _jsx("col", { style: { width: "4.6%" } }), _jsx("col", { style: { width: "2.4%" } }), _jsx("col", { style: { width: "14.7%" } }), _jsx("col", { style: { width: "2.3%" } }), _jsx("col", { style: { width: "8.3%" } }), _jsx("col", { style: { width: "2.3%" } }), _jsx("col", { style: { width: "8.3%" } }), _jsx("col", { style: { width: "3.7%" } }), _jsx("col", { style: { width: "3.6%" } }), _jsx("col", { style: { width: "5%" } }), _jsx("col", { style: { width: "9.3%" } })] }), _jsxs("thead", { children: [_jsxs("tr", { style: { height: "6.5mm" }, children: [_jsx("th", { "aria-hidden": "true", style: mergedHeaderTop }), _jsx("th", { colSpan: 2, style: headerCell, children: "Reference" }), _jsx("th", { "aria-hidden": "true", style: mergedHeaderTop }), _jsx("th", { "aria-hidden": "true", style: mergedHeaderTop }), _jsx("th", { colSpan: 2, style: headerCell, children: "Issued" }), _jsx("th", { colSpan: 2, style: headerCell, children: "Returned" }), _jsx("th", { colSpan: 2, style: headerCell, children: "Re-issued" }), _jsx("th", { style: headerCell, children: "Disposed" }), _jsx("th", { style: headerCell, children: "Balance" }), _jsx("th", { "aria-hidden": "true", style: mergedHeaderTop }), _jsx("th", { "aria-hidden": "true", style: mergedHeaderTop })] }), _jsxs("tr", { style: { height: "12.5mm" }, children: [_jsx("th", { style: mergedHeaderBottom, children: _jsx("span", { style: mergedHeaderLabel, children: "Date" }) }), _jsx("th", { style: headerCell, children: "ICS/RRSP No." }), _jsxs("th", { style: headerCell, children: ["Semi-", _jsx("br", {}), "Expendable", _jsx("br", {}), "Property No."] }), _jsx("th", { style: mergedHeaderBottom, children: _jsx("span", { style: mergedHeaderLabel, children: "Item Description" }) }), _jsx("th", { style: mergedHeaderBottom, children: _jsxs("span", { style: mergedHeaderLabel, children: ["Estimated", _jsx("br", {}), "Useful Life"] }) }), _jsx("th", { style: headerCell, children: "Qty." }), _jsx("th", { style: headerCell, children: "Office/Officer" }), _jsx("th", { style: headerCell, children: "Qty." }), _jsx("th", { style: headerCell, children: "Office/Officer" }), _jsx("th", { style: headerCell, children: "Qty." }), _jsx("th", { style: headerCell, children: "Office/Officer" }), _jsx("th", { style: headerCell, children: "Qty." }), _jsx("th", { style: headerCell, children: "Qty." }), _jsx("th", { style: mergedHeaderBottom, children: _jsx("span", { style: mergedHeaderLabel, children: "Amount" }) }), _jsx("th", { style: mergedHeaderBottom, children: _jsx("span", { style: mergedHeaderLabel, children: "Remarks" }) })] })] }), _jsx("tbody", { children: rows.map((row, index) => (_jsxs("tr", { children: [_jsx("td", { style: centeredBodyCell, children: row ? fmtDate(row.entryDate) : "" }), _jsx("td", { style: bodyCell, children: row ? display(row.iicRrspNo || row.reference) : "" }), _jsx("td", { style: bodyCell, children: row ? display(row.semiExpendablePropertyNo) : "" }), _jsx("td", { style: bodyCell, children: row ? display(row.itemDescription) : "" }), _jsx("td", { style: centeredBodyCell, children: row ? display(row.estimatedUsefulLife) : "" }), _jsx("td", { style: centeredBodyCell, children: row ? fmtQty(row.issuedQty) : "" }), _jsx("td", { style: bodyCell, children: row ? display(row.issuedOfficeOfficer) : "" }), _jsx("td", { style: centeredBodyCell, children: row ? fmtQty(row.returnedQty) : "" }), _jsx("td", { style: bodyCell, children: row ? display(row.returnedOfficeOfficer) : "" }), _jsx("td", { style: centeredBodyCell, children: row ? fmtQty(row.reissuedQty) : "" }), _jsx("td", { style: bodyCell, children: row ? display(row.reissuedOfficeOfficer) : "" }), _jsx("td", { style: centeredBodyCell, children: row ? fmtQty(row.disposedQty) : "" }), _jsx("td", { style: centeredBodyCell, children: row ? fmtQty(row.balance) : "" }), _jsx("td", { style: { ...bodyCell, textAlign: "right" }, children: row ? fmtAmount(row.amount) : "" }), _jsx("td", { style: bodyCell, children: row ? display(row.remarks) : "" })] }, index))) })] })] }) })] }));
138
+ }
@@ -0,0 +1,13 @@
1
+ import type { GamTableField } from "./gam-report-workbench.js";
2
+ interface RISFormProps {
3
+ form: Record<string, string>;
4
+ setForm: (form: Record<string, string>) => void;
5
+ tableRows: Record<string, string>[];
6
+ setTableRows: (rows: Record<string, string>[]) => void;
7
+ tableFields: GamTableField[];
8
+ onAddRow: () => void;
9
+ onRemoveRow: (index: number) => void;
10
+ errors?: Record<string, string>;
11
+ }
12
+ export declare function RISForm({ form, setForm, tableRows, setTableRows, tableFields, onAddRow, onRemoveRow, errors, }: RISFormProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Button } from "../../internal/components/ui/button.js";
4
+ import { DateInput } from "../../internal/components/ui/date-input.js";
5
+ export function RISForm({ form, setForm, tableRows, setTableRows, tableFields, onAddRow, onRemoveRow, errors, }) {
6
+ const updateField = (field, value) => {
7
+ setForm({ ...form, [field]: value });
8
+ };
9
+ const updateTableRow = (rowIndex, field, value) => {
10
+ setTableRows(tableRows.map((row, i) => (i === rowIndex ? { ...row, [field]: value } : row)));
11
+ };
12
+ const InputField = ({ field, label, type = "text", placeholder, required, className = "", value, onChange, }) => {
13
+ const fieldValue = value !== undefined ? value : (form[field] ?? "");
14
+ const handleChange = onChange || ((v) => updateField(field, v));
15
+ return (_jsxs("div", { className: className, children: [_jsxs("label", { className: "mb-1 block text-xs font-medium text-slate-700", children: [label, required && _jsx("span", { className: "text-rose-500 ml-0.5", children: "*" })] }), type === "textarea" ? (_jsx("textarea", { value: fieldValue, onChange: (e) => handleChange(e.target.value), placeholder: placeholder, rows: 2, className: "w-full rounded-md border border-slate-300 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500" })) : type === "date" ? (_jsx(DateInput, { type: "date", value: fieldValue, onChange: (e) => handleChange(e.target.value), className: "w-full rounded-md border border-slate-300 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500" })) : (_jsx("input", { type: type, value: fieldValue, onChange: (e) => handleChange(e.target.value), placeholder: placeholder, className: "w-full rounded-md border border-slate-300 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500" })), errors?.[field] && _jsx("p", { className: "mt-1 text-xs text-rose-500", children: errors[field] })] }));
16
+ };
17
+ const SectionHeader = ({ title }) => (_jsx("div", { className: "flex items-center gap-2 mb-3 pb-2 border-b border-slate-300", children: _jsx("h3", { className: "text-sm font-semibold text-slate-800 uppercase tracking-wide", children: title }) }));
18
+ const SubSectionHeader = ({ title }) => (_jsx("div", { className: "bg-slate-100 px-3 py-1.5 mb-2 rounded", children: _jsx("h4", { className: "text-xs font-semibold text-slate-700 uppercase", children: title }) }));
19
+ return (_jsxs("div", { className: "space-y-5", children: [_jsxs("div", { className: "rounded-lg border border-slate-300 p-4 bg-white", children: [_jsx(SectionHeader, { title: "Document Information" }), _jsxs("div", { className: "grid gap-4 md:grid-cols-3", children: [_jsx(InputField, { field: "entityName", label: "Entity Name", required: true, placeholder: "e.g., State University", className: "md:col-span-2" }), _jsx(InputField, { field: "fundCluster", label: "Fund Cluster", required: true, placeholder: "e.g., NTF" })] }), _jsxs("div", { className: "grid gap-4 md:grid-cols-2 mt-3", children: [_jsx(InputField, { field: "risNo", label: "RIS No.", required: true, placeholder: "e.g., RIS-2026-001" }), _jsx(InputField, { field: "rcCode", label: "Responsibility Center Code", required: true, placeholder: "e.g., RC-001" })] })] }), _jsxs("div", { className: "rounded-lg border border-slate-300 p-4 bg-white", children: [_jsx(SectionHeader, { title: "Requesting Office" }), _jsxs("div", { className: "grid gap-4 md:grid-cols-2", children: [_jsx(InputField, { field: "division", label: "Division", required: true, placeholder: "e.g., Academic Affairs" }), _jsx(InputField, { field: "office", label: "Office", required: true, placeholder: "e.g., Office of the Dean" })] })] }), _jsxs("div", { className: "rounded-lg border border-slate-300 p-4 bg-white", children: [_jsx(SectionHeader, { title: "Item Details" }), tableRows.map((row, rowIndex) => (_jsxs("div", { className: "mb-4 last:mb-0 rounded border border-slate-200", children: [_jsxs("div", { className: "flex items-center justify-between bg-slate-50 px-3 py-2 border-b border-slate-200", children: [_jsxs("span", { className: "text-sm font-semibold text-slate-700", children: ["Item #", rowIndex + 1] }), tableRows.length > 1 && (_jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: () => onRemoveRow(rowIndex), className: "h-7 text-rose-600 hover:bg-rose-50 hover:text-rose-700", children: "Remove" }))] }), _jsxs("div", { className: "p-3", children: [_jsx(SubSectionHeader, { title: "Requisition" }), _jsxs("div", { className: "grid gap-3 md:grid-cols-4 mb-3", children: [_jsx(InputField, { field: "stockNo", label: "Stock No.", required: true, placeholder: "e.g., S-001", value: row.stockNo ?? "", onChange: (v) => updateTableRow(rowIndex, "stockNo", v) }), _jsx(InputField, { field: "unit", label: "Unit", required: true, placeholder: "e.g., pcs", value: row.unit ?? "", onChange: (v) => updateTableRow(rowIndex, "unit", v) }), _jsx(InputField, { field: "description", label: "Description", required: true, placeholder: "Item description", value: row.description ?? "", onChange: (v) => updateTableRow(rowIndex, "description", v), className: "md:col-span-2" }), _jsx(InputField, { field: "quantity", label: "Quantity", required: true, placeholder: "e.g., 10", value: row.quantity ?? "", onChange: (v) => updateTableRow(rowIndex, "quantity", v) })] }), _jsx(SubSectionHeader, { title: "Stock Available?" }), _jsxs("div", { className: "grid gap-3 md:grid-cols-2 mb-3", children: [_jsx(InputField, { field: "stockYes", label: "Yes", placeholder: "\u2713", value: row.stockYes ?? "", onChange: (v) => updateTableRow(rowIndex, "stockYes", v) }), _jsx(InputField, { field: "stockNo_", label: "No", placeholder: "\u2713", value: row.stockNo_ ?? "", onChange: (v) => updateTableRow(rowIndex, "stockNo_", v) })] }), _jsx(SubSectionHeader, { title: "Issue" }), _jsxs("div", { className: "grid gap-3 md:grid-cols-2", children: [_jsx(InputField, { field: "issueQuantity", label: "Quantity", required: true, placeholder: "e.g., 5", value: row.issueQuantity ?? "", onChange: (v) => updateTableRow(rowIndex, "issueQuantity", v) }), _jsx(InputField, { field: "remarks", label: "Remarks", type: "textarea", placeholder: "Notes...", value: row.remarks ?? "", onChange: (v) => updateTableRow(rowIndex, "remarks", v) })] })] })] }, rowIndex))), _jsx(Button, { type: "button", variant: "outline", onClick: onAddRow, className: "w-full mt-3 border-dashed border-2 text-slate-600 hover:bg-slate-50 hover:text-slate-800", children: "+ Add Item Row" })] }), _jsxs("div", { className: "rounded-lg border border-slate-300 p-4 bg-white", children: [_jsx(SectionHeader, { title: "Purpose" }), _jsx(InputField, { field: "purpose", label: "Purpose of Requisition", type: "textarea", required: true, placeholder: "Describe the purpose of this requisition..." })] }), _jsxs("div", { className: "rounded-lg border border-slate-300 p-4 bg-white", children: [_jsx(SectionHeader, { title: "Signatories" }), _jsxs("div", { className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4", children: [_jsxs("div", { className: "rounded-lg border border-slate-200 p-3 bg-slate-50", children: [_jsx("h4", { className: "text-xs font-semibold text-slate-700 mb-2 uppercase border-b border-slate-200 pb-1", children: "Requested By" }), _jsxs("div", { className: "space-y-2", children: [_jsx(InputField, { field: "requestedBy", label: "Printed Name", required: true }), _jsx(InputField, { field: "requestedByDesig", label: "Designation", required: true }), _jsx(InputField, { field: "requestedByDate", label: "Date", type: "date", required: true })] })] }), _jsxs("div", { className: "rounded-lg border border-slate-200 p-3 bg-slate-50", children: [_jsx("h4", { className: "text-xs font-semibold text-slate-700 mb-2 uppercase border-b border-slate-200 pb-1", children: "Approved By" }), _jsxs("div", { className: "space-y-2", children: [_jsx(InputField, { field: "approvedBy", label: "Printed Name", required: true }), _jsx(InputField, { field: "approvedByDesig", label: "Designation", required: true }), _jsx(InputField, { field: "approvedByDate", label: "Date", type: "date", required: true })] })] }), _jsxs("div", { className: "rounded-lg border border-slate-200 p-3 bg-slate-50", children: [_jsx("h4", { className: "text-xs font-semibold text-slate-700 mb-2 uppercase border-b border-slate-200 pb-1", children: "Issued By" }), _jsxs("div", { className: "space-y-2", children: [_jsx(InputField, { field: "issuedBy", label: "Printed Name", required: true }), _jsx(InputField, { field: "issuedByDesig", label: "Designation", required: true }), _jsx(InputField, { field: "issuedByDate", label: "Date", type: "date", required: true })] })] }), _jsxs("div", { className: "rounded-lg border border-slate-200 p-3 bg-slate-50", children: [_jsx("h4", { className: "text-xs font-semibold text-slate-700 mb-2 uppercase border-b border-slate-200 pb-1", children: "Received By" }), _jsxs("div", { className: "space-y-2", children: [_jsx(InputField, { field: "receivedBy", label: "Printed Name", required: true }), _jsx(InputField, { field: "receivedByDesig", label: "Designation", required: true }), _jsx(InputField, { field: "receivedByDate", label: "Date", type: "date", required: true })] })] })] })] })] }));
20
+ }
@@ -0,0 +1,7 @@
1
+ import type { RISFormData, RISRow } from "../types/ris-types.js";
2
+ interface RISPreviewProps {
3
+ data: RISFormData;
4
+ tableRows: RISRow[];
5
+ }
6
+ export declare function RISPreview({ data, tableRows }: RISPreviewProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ export function RISPreview({ data, tableRows }) {
4
+ return (_jsxs(_Fragment, { children: [_jsx("style", { children: `
5
+
6
+ @media print {
7
+ .no-print { display: none !important; }
8
+ body { background: white !important; }
9
+ .print-container { box-shadow: none !important; margin: 0 !important; padding: 0 !important; }
10
+ }
11
+ body { font-family: 'EB Garamond', serif; }
12
+ input, textarea, select { font-family: 'Source Code Pro', monospace; font-size: 11px; }
13
+ ` }), _jsxs("div", { className: "print-container mx-auto bg-white border border-gray-400 p-6", style: { fontFamily: "'EB Garamond', serif", maxWidth: "210mm" }, children: [_jsx("div", { className: "text-right text-xs italic text-gray-500 mb-1", children: "Appendix 63" }), _jsx("h2", { className: "text-center font-bold text-sm tracking-widest uppercase mb-4", children: "REQUISITION AND ISSUE SLIP" }), _jsxs("div", { className: "flex justify-between mb-1 gap-4", children: [_jsxs("div", { className: "flex-1 flex items-end gap-1 text-xs", children: [_jsx("span", { className: "font-medium whitespace-nowrap", children: "Entity Name :" }), _jsx("span", { className: "border-b border-gray-500 flex-1 min-h-[16px] px-1", children: data.entityName })] }), _jsxs("div", { className: "flex items-end gap-1 text-xs", children: [_jsx("span", { className: "font-medium whitespace-nowrap", children: "Fund Cluster :" }), _jsx("span", { className: "border-b border-gray-500 w-40 min-h-[16px] px-1", children: data.fundCluster })] })] }), _jsxs("div", { className: "flex gap-4 mb-2 text-xs", children: [_jsxs("div", { className: "flex-1 space-y-0.5", children: [_jsxs("div", { className: "flex items-end gap-1", children: [_jsx("span", { className: "font-medium", children: "Division :" }), _jsx("span", { className: "border-b border-gray-500 flex-1 min-h-[16px] px-1", children: data.division })] }), _jsxs("div", { className: "flex items-end gap-1", children: [_jsx("span", { className: "font-medium", children: "Office :" }), _jsx("span", { className: "border-b border-gray-500 flex-1 min-h-[16px] px-1", children: data.office })] })] }), _jsxs("div", { className: "flex-1 space-y-0.5", children: [_jsxs("div", { className: "flex items-end gap-1", children: [_jsx("span", { className: "font-medium whitespace-nowrap", children: "Responsibility Center Code :" }), _jsx("span", { className: "border-b border-gray-500 flex-1 min-h-[16px] px-1", children: data.rcCode })] }), _jsxs("div", { className: "flex items-end gap-1", children: [_jsx("span", { className: "font-medium whitespace-nowrap", children: "RIS No. :" }), _jsx("span", { className: "border-b border-gray-500 flex-1 min-h-[16px] px-1", children: data.risNo })] })] })] }), _jsxs("table", { className: "w-full border-collapse border border-gray-400 text-xs mb-2", children: [_jsxs("thead", { children: [_jsxs("tr", { children: [_jsx("th", { colSpan: 4, className: "border border-gray-400 bg-gray-50 py-1 text-center font-semibold italic", children: "Requisition" }), _jsx("th", { colSpan: 2, className: "border border-gray-400 bg-gray-50 py-1 text-center font-semibold italic", children: "Stock Available?" }), _jsx("th", { colSpan: 2, className: "border border-gray-400 bg-gray-50 py-1 text-center font-semibold italic", children: "Issue" })] }), _jsxs("tr", { className: "bg-gray-50", children: [_jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium text-center w-16", children: "Stock No." }), _jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium text-center w-12", children: "Unit" }), _jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium", children: "Description" }), _jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium text-center w-16", children: "Quantity" }), _jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium text-center w-12", children: "Yes" }), _jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium text-center w-12", children: "No" }), _jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium text-center w-16", children: "Quantity" }), _jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium text-center w-20", children: "Remarks" })] })] }), _jsx("tbody", { children: tableRows.length > 0 ? (tableRows.map((row, index) => (_jsxs("tr", { children: [_jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7", children: row.stockNo }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7 text-center", children: row.unit }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7", children: row.description }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7 text-center", children: row.quantity }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7 text-center", children: row.stockYes }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7 text-center", children: row.stockNo_ }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7 text-center", children: row.issueQuantity }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7", children: row.remarks })] }, index)))) : (
14
+ // Show 1 empty row when no data
15
+ Array.from({ length: 1 }).map((_, index) => (_jsxs("tr", { children: [_jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7" }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7" }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7" }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7" }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7" }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7" }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7" }), _jsx("td", { className: "border border-gray-300 py-0.5 px-1 h-7" })] }, index)))) })] }), _jsx("div", { className: "mb-4 text-xs", children: _jsxs("div", { className: "flex gap-2 items-start", children: [_jsx("span", { className: "font-medium pt-0.5 whitespace-nowrap", children: "Purpose:" }), _jsx("div", { className: "flex-1 border-t border-b border-gray-400 py-1 min-h-[60px]", children: data.purpose })] }) }), _jsxs("table", { className: "w-full border-collapse border border-gray-400 text-xs", children: [_jsx("thead", { children: _jsxs("tr", { className: "bg-gray-50", children: [_jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium text-left w-24", children: "Signature :" }), _jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium text-left", children: "Requested by:" }), _jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium text-left", children: "Approved by:" }), _jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium text-left", children: "Issued by:" }), _jsx("th", { className: "border border-gray-400 py-1 px-1 font-medium text-left", children: "Received by:" })] }) }), _jsxs("tbody", { children: [_jsxs("tr", { children: [_jsx("td", { className: "border border-gray-400 py-1 px-1 font-medium", children: "Printed Name :" }), _jsx("td", { className: "border border-gray-400 py-1 px-1 h-7", children: data.requestedBy }), _jsx("td", { className: "border border-gray-400 py-1 px-1 h-7", children: data.approvedBy }), _jsx("td", { className: "border border-gray-400 py-1 px-1 h-7", children: data.issuedBy }), _jsx("td", { className: "border border-gray-400 py-1 px-1 h-7", children: data.receivedBy })] }), _jsxs("tr", { children: [_jsx("td", { className: "border border-gray-400 py-1 px-1 font-medium", children: "Designation :" }), _jsx("td", { className: "border border-gray-400 py-1 px-1 h-7", children: data.requestedByDesig }), _jsx("td", { className: "border border-gray-400 py-1 px-1 h-7", children: data.approvedByDesig }), _jsx("td", { className: "border border-gray-400 py-1 px-1 h-7", children: data.issuedByDesig }), _jsx("td", { className: "border border-gray-400 py-1 px-1 h-7", children: data.receivedByDesig })] }), _jsxs("tr", { children: [_jsx("td", { className: "border border-gray-400 py-1 px-1 font-medium", children: "Date :" }), _jsx("td", { className: "border border-gray-400 py-1 px-1 h-7", children: data.requestedByDate }), _jsx("td", { className: "border border-gray-400 py-1 px-1 h-7", children: data.approvedByDate }), _jsx("td", { className: "border border-gray-400 py-1 px-1 h-7", children: data.issuedByDate }), _jsx("td", { className: "border border-gray-400 py-1 px-1 h-7", children: data.receivedByDate })] })] })] })] })] }));
16
+ }
@@ -0,0 +1,34 @@
1
+ type RlsddpPreviewProps = {
2
+ entityName?: string;
3
+ fundCluster?: string;
4
+ departmentOffice?: string;
5
+ accountableOfficer?: string;
6
+ designation?: string;
7
+ policeNotified?: string;
8
+ policeStation?: string;
9
+ policeNotifiedDate?: string;
10
+ rlsddpNo?: string;
11
+ rlsddpDate?: string;
12
+ parNo?: string;
13
+ parDate?: string;
14
+ statusOfProperty?: string;
15
+ propertyNo?: string;
16
+ description?: string;
17
+ acquisitionCost?: string;
18
+ circumstance?: string;
19
+ accountableOfficerSignature?: string;
20
+ accountableOfficerDate?: string;
21
+ governmentIssuedId?: string;
22
+ idNo?: string;
23
+ dateIssued?: string;
24
+ immediateSupervisorSignature?: string;
25
+ immediateSupervisorDate?: string;
26
+ swornDate?: string;
27
+ docNo?: string;
28
+ pageNo?: string;
29
+ bookNo?: string;
30
+ seriesOf?: string;
31
+ notaryPublic?: string;
32
+ };
33
+ export declare function RlsddpPreview({ entityName, fundCluster, departmentOffice, accountableOfficer, designation, policeNotified, policeStation, policeNotifiedDate, rlsddpNo, rlsddpDate, parNo, parDate, statusOfProperty, propertyNo, description, acquisitionCost, circumstance, accountableOfficerSignature, accountableOfficerDate, governmentIssuedId, idNo, dateIssued, immediateSupervisorSignature, immediateSupervisorDate, swornDate, docNo, pageNo, bookNo, seriesOf, notaryPublic, }: RlsddpPreviewProps): import("react/jsx-runtime").JSX.Element;
34
+ export {};