@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.
- package/FORM_CATALOG.md +44 -0
- package/README.md +165 -0
- package/dist/definitions.d.ts +1147 -0
- package/dist/definitions.js +60 -0
- package/dist/forms/iar.d.ts +172 -0
- package/dist/forms/iar.js +6 -0
- package/dist/forms/ics.d.ts +48 -0
- package/dist/forms/ics.js +6 -0
- package/dist/forms/iirup.d.ts +54 -0
- package/dist/forms/iirup.js +6 -0
- package/dist/forms/iirusp.d.ts +32 -0
- package/dist/forms/iirusp.js +6 -0
- package/dist/forms/itr.d.ts +42 -0
- package/dist/forms/itr.js +6 -0
- package/dist/forms/par.d.ts +84 -0
- package/dist/forms/par.js +6 -0
- package/dist/forms/ppelc.d.ts +34 -0
- package/dist/forms/ppelc.js +6 -0
- package/dist/forms/pr.d.ts +27 -0
- package/dist/forms/pr.js +6 -0
- package/dist/forms/property-card.d.ts +68 -0
- package/dist/forms/property-card.js +6 -0
- package/dist/forms/ptr.d.ts +54 -0
- package/dist/forms/ptr.js +6 -0
- package/dist/forms/regspi.d.ts +32 -0
- package/dist/forms/regspi.js +6 -0
- package/dist/forms/ris.d.ts +66 -0
- package/dist/forms/ris.js +6 -0
- package/dist/forms/rlsddp.d.ts +54 -0
- package/dist/forms/rlsddp.js +6 -0
- package/dist/forms/rlsddsp.d.ts +42 -0
- package/dist/forms/rlsddsp.js +6 -0
- package/dist/forms/rpci.d.ts +32 -0
- package/dist/forms/rpci.js +6 -0
- package/dist/forms/rpcppe.d.ts +32 -0
- package/dist/forms/rpcppe.js +6 -0
- package/dist/forms/rpcsp.d.ts +32 -0
- package/dist/forms/rpcsp.js +6 -0
- package/dist/forms/rrsp.d.ts +32 -0
- package/dist/forms/rrsp.js +6 -0
- package/dist/forms/rsmi.d.ts +32 -0
- package/dist/forms/rsmi.js +6 -0
- package/dist/forms/rsmp.d.ts +33 -0
- package/dist/forms/rsmp.js +6 -0
- package/dist/forms/rspi.d.ts +32 -0
- package/dist/forms/rspi.js +6 -0
- package/dist/forms/spc.d.ts +37 -0
- package/dist/forms/spc.js +6 -0
- package/dist/forms/splc.d.ts +41 -0
- package/dist/forms/splc.js +6 -0
- package/dist/forms/stock-card.d.ts +28 -0
- package/dist/forms/stock-card.js +6 -0
- package/dist/forms/wmr.d.ts +32 -0
- package/dist/forms/wmr.js +6 -0
- package/dist/gam/components/gam-report-workbench.d.ts +40 -0
- package/dist/gam/components/gam-report-workbench.js +2 -0
- package/dist/gam/components/grand-total-computation.d.ts +10 -0
- package/dist/gam/components/grand-total-computation.js +26 -0
- package/dist/gam/components/iar-preview.d.ts +30 -0
- package/dist/gam/components/iar-preview.js +150 -0
- package/dist/gam/components/ics-preview.d.ts +31 -0
- package/dist/gam/components/ics-preview.js +114 -0
- package/dist/gam/components/iirup-preview.d.ts +42 -0
- package/dist/gam/components/iirup-preview.js +237 -0
- package/dist/gam/components/itr-preview.d.ts +31 -0
- package/dist/gam/components/itr-preview.js +180 -0
- package/dist/gam/components/par-preview.d.ts +28 -0
- package/dist/gam/components/par-preview.js +95 -0
- package/dist/gam/components/ppelc-preview.d.ts +28 -0
- package/dist/gam/components/ppelc-preview.js +128 -0
- package/dist/gam/components/property-card-preview.d.ts +21 -0
- package/dist/gam/components/property-card-preview.js +117 -0
- package/dist/gam/components/ptr-preview.d.ts +36 -0
- package/dist/gam/components/ptr-preview.js +122 -0
- package/dist/gam/components/purchase-order-page-client.d.ts +66 -0
- package/dist/gam/components/purchase-order-page-client.js +179 -0
- package/dist/gam/components/reg-spi-preview.d.ts +28 -0
- package/dist/gam/components/reg-spi-preview.js +138 -0
- package/dist/gam/components/ris-form.d.ts +13 -0
- package/dist/gam/components/ris-form.js +20 -0
- package/dist/gam/components/ris-preview.d.ts +7 -0
- package/dist/gam/components/ris-preview.js +16 -0
- package/dist/gam/components/rlsddp-preview.d.ts +34 -0
- package/dist/gam/components/rlsddp-preview.js +251 -0
- package/dist/gam/components/rlsddsp-preview.d.ts +33 -0
- package/dist/gam/components/rlsddsp-preview.js +226 -0
- package/dist/gam/components/rpci-preview.d.ts +27 -0
- package/dist/gam/components/rpci-preview.js +123 -0
- package/dist/gam/components/rpcppe-preview.d.ts +28 -0
- package/dist/gam/components/rpcppe-preview.js +133 -0
- package/dist/gam/components/rpcsp-preview.d.ts +29 -0
- package/dist/gam/components/rpcsp-preview.js +81 -0
- package/dist/gam/components/rspi-preview.d.ts +23 -0
- package/dist/gam/components/rspi-preview.js +72 -0
- package/dist/gam/components/spc-preview.d.ts +23 -0
- package/dist/gam/components/spc-preview.js +149 -0
- package/dist/gam/components/splc-entry-form.d.ts +14 -0
- package/dist/gam/components/splc-entry-form.js +6 -0
- package/dist/gam/components/splc-preview.d.ts +27 -0
- package/dist/gam/components/splc-preview.js +192 -0
- package/dist/gam/components/stock-card-preview.d.ts +14 -0
- package/dist/gam/components/stock-card-preview.js +17 -0
- package/dist/gam/config/new-report-config.d.ts +1094 -0
- package/dist/gam/config/new-report-config.js +1478 -0
- package/dist/gam/purchase-order-flow.d.ts +146 -0
- package/dist/gam/purchase-order-flow.js +173 -0
- package/dist/gam/purchase-request/workflow.d.ts +19 -0
- package/dist/gam/purchase-request/workflow.js +45 -0
- package/dist/gam/types/ris-types.d.ts +37 -0
- package/dist/gam/types/ris-types.js +1 -0
- package/dist/gam/utils/export-ics-xlsx.d.ts +28 -0
- package/dist/gam/utils/export-ics-xlsx.js +273 -0
- package/dist/gam/utils/export-par-xlsx.d.ts +18 -0
- package/dist/gam/utils/export-par-xlsx.js +181 -0
- package/dist/gam/utils/export-preview-pdf.d.ts +13 -0
- package/dist/gam/utils/export-preview-pdf.js +270 -0
- package/dist/gam/utils/export-report-xlsx.d.ts +228 -0
- package/dist/gam/utils/export-report-xlsx.js +873 -0
- package/dist/gam/utils/line-totals.d.ts +6 -0
- package/dist/gam/utils/line-totals.js +18 -0
- package/dist/gam/utils/monetary-input.d.ts +6 -0
- package/dist/gam/utils/monetary-input.js +18 -0
- package/dist/gam/utils/print-element.d.ts +8 -0
- package/dist/gam/utils/print-element.js +157 -0
- package/dist/government-form.d.ts +16 -0
- package/dist/government-form.js +45 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.js +50 -0
- package/dist/internal/components/configurable-form-layout.d.ts +20 -0
- package/dist/internal/components/configurable-form-layout.js +49 -0
- package/dist/internal/components/ui/badge.d.ts +7 -0
- package/dist/internal/components/ui/badge.js +34 -0
- package/dist/internal/components/ui/button.d.ts +10 -0
- package/dist/internal/components/ui/button.js +35 -0
- package/dist/internal/components/ui/calendar.d.ts +8 -0
- package/dist/internal/components/ui/calendar.js +77 -0
- package/dist/internal/components/ui/command.d.ts +19 -0
- package/dist/internal/components/ui/command.js +36 -0
- package/dist/internal/components/ui/date-input.d.ts +14 -0
- package/dist/internal/components/ui/date-input.js +33 -0
- package/dist/internal/components/ui/date-picker.d.ts +19 -0
- package/dist/internal/components/ui/date-picker.js +34 -0
- package/dist/internal/components/ui/dialog.d.ts +18 -0
- package/dist/internal/components/ui/dialog.js +38 -0
- package/dist/internal/components/ui/input-group.d.ts +18 -0
- package/dist/internal/components/ui/input-group.js +57 -0
- package/dist/internal/components/ui/input.d.ts +3 -0
- package/dist/internal/components/ui/input.js +12 -0
- package/dist/internal/components/ui/label.d.ts +3 -0
- package/dist/internal/components/ui/label.js +7 -0
- package/dist/internal/components/ui/popover.d.ts +9 -0
- package/dist/internal/components/ui/popover.js +23 -0
- package/dist/internal/components/ui/select.d.ts +17 -0
- package/dist/internal/components/ui/select.js +35 -0
- package/dist/internal/components/ui/switch.d.ts +5 -0
- package/dist/internal/components/ui/switch.js +8 -0
- package/dist/internal/components/ui/table.d.ts +10 -0
- package/dist/internal/components/ui/table.js +28 -0
- package/dist/internal/components/ui/tabs.d.ts +10 -0
- package/dist/internal/components/ui/tabs.js +29 -0
- package/dist/internal/components/ui/textarea.d.ts +3 -0
- package/dist/internal/components/ui/textarea.js +7 -0
- package/dist/internal/components/ui/tooltip.d.ts +6 -0
- package/dist/internal/components/ui/tooltip.js +17 -0
- package/dist/internal/contracts/modules/v1/reg-spi-reports/reg-spi-reports.schema.d.ts +112 -0
- package/dist/internal/contracts/modules/v1/reg-spi-reports/reg-spi-reports.schema.js +91 -0
- package/dist/internal/hooks/use-form-field-order.d.ts +7 -0
- package/dist/internal/hooks/use-form-field-order.js +43 -0
- package/dist/internal/lib/utils.d.ts +2 -0
- package/dist/internal/lib/utils.js +3 -0
- package/dist/inventory/components/inventory-item-form.d.ts +7 -0
- package/dist/inventory/components/inventory-item-form.js +5 -0
- package/dist/inventory/components/inventory-item-preview.d.ts +6 -0
- package/dist/inventory/components/inventory-item-preview.js +5 -0
- package/dist/inventory/iar.d.ts +4 -0
- package/dist/inventory/iar.js +4 -0
- package/dist/inventory/ics.d.ts +2 -0
- package/dist/inventory/ics.js +3 -0
- package/dist/inventory/iirup.d.ts +2 -0
- package/dist/inventory/iirup.js +3 -0
- package/dist/inventory/iirusp.d.ts +4 -0
- package/dist/inventory/iirusp.js +4 -0
- package/dist/inventory/index.d.ts +3 -0
- package/dist/inventory/index.js +4 -0
- package/dist/inventory/item.d.ts +3 -0
- package/dist/inventory/item.js +3 -0
- package/dist/inventory/itr.d.ts +4 -0
- package/dist/inventory/itr.js +4 -0
- package/dist/inventory/par.d.ts +2 -0
- package/dist/inventory/par.js +3 -0
- package/dist/inventory/po.d.ts +2 -0
- package/dist/inventory/po.js +2 -0
- package/dist/inventory/ppelc.d.ts +2 -0
- package/dist/inventory/ppelc.js +3 -0
- package/dist/inventory/pplc.d.ts +2 -0
- package/dist/inventory/pplc.js +4 -0
- package/dist/inventory/pr.d.ts +4 -0
- package/dist/inventory/pr.js +4 -0
- package/dist/inventory/property-card.d.ts +2 -0
- package/dist/inventory/property-card.js +3 -0
- package/dist/inventory/ptr.d.ts +2 -0
- package/dist/inventory/ptr.js +3 -0
- package/dist/inventory/regspi.d.ts +4 -0
- package/dist/inventory/regspi.js +4 -0
- package/dist/inventory/ris.d.ts +4 -0
- package/dist/inventory/ris.js +4 -0
- package/dist/inventory/rlsddp.d.ts +4 -0
- package/dist/inventory/rlsddp.js +4 -0
- package/dist/inventory/rlsddsp.d.ts +2 -0
- package/dist/inventory/rlsddsp.js +3 -0
- package/dist/inventory/rpci.d.ts +2 -0
- package/dist/inventory/rpci.js +3 -0
- package/dist/inventory/rpcppe.d.ts +2 -0
- package/dist/inventory/rpcppe.js +3 -0
- package/dist/inventory/rpcsp.d.ts +2 -0
- package/dist/inventory/rpcsp.js +3 -0
- package/dist/inventory/rrsp.d.ts +2 -0
- package/dist/inventory/rrsp.js +3 -0
- package/dist/inventory/rsmi.d.ts +4 -0
- package/dist/inventory/rsmi.js +4 -0
- package/dist/inventory/rsmp.d.ts +4 -0
- package/dist/inventory/rsmp.js +4 -0
- package/dist/inventory/rspi.d.ts +2 -0
- package/dist/inventory/rspi.js +3 -0
- package/dist/inventory/spc.d.ts +2 -0
- package/dist/inventory/spc.js +3 -0
- package/dist/inventory/splc.d.ts +3 -0
- package/dist/inventory/splc.js +4 -0
- package/dist/inventory/stock-card.d.ts +4 -0
- package/dist/inventory/stock-card.js +4 -0
- package/dist/inventory/types.d.ts +11 -0
- package/dist/inventory/types.js +1 -0
- package/dist/inventory/wmr.d.ts +4 -0
- package/dist/inventory/wmr.js +4 -0
- package/dist/lib/rpcsp-accountable-person.d.ts +1 -0
- package/dist/lib/rpcsp-accountable-person.js +10 -0
- package/dist/reports/iar/_components/create-form.d.ts +13 -0
- package/dist/reports/iar/_components/create-form.js +92 -0
- package/dist/reports/iar/_components/document-preview.d.ts +11 -0
- package/dist/reports/iar/_components/document-preview.js +131 -0
- package/dist/reports/iar/types.d.ts +97 -0
- package/dist/reports/iar/types.js +24 -0
- package/dist/reports/iirusp/_components/create-form.d.ts +17 -0
- package/dist/reports/iirusp/_components/create-form.js +118 -0
- package/dist/reports/iirusp/_components/document-preview.d.ts +8 -0
- package/dist/reports/iirusp/_components/document-preview.js +389 -0
- package/dist/reports/iirusp/types.d.ts +134 -0
- package/dist/reports/iirusp/types.js +29 -0
- package/dist/reports/iirusp/utils.d.ts +29 -0
- package/dist/reports/iirusp/utils.js +488 -0
- package/dist/reports/itr/_components/create-form.d.ts +28 -0
- package/dist/reports/itr/_components/create-form.js +90 -0
- package/dist/reports/itr/_components/document-preview.d.ts +6 -0
- package/dist/reports/itr/_components/document-preview.js +7 -0
- package/dist/reports/itr/types.d.ts +68 -0
- package/dist/reports/itr/types.js +27 -0
- package/dist/reports/itr/utils.d.ts +24 -0
- package/dist/reports/itr/utils.js +76 -0
- package/dist/reports/pr/_components/create-form.d.ts +16 -0
- package/dist/reports/pr/_components/create-form.js +52 -0
- package/dist/reports/pr/_components/document-preview.d.ts +7 -0
- package/dist/reports/pr/_components/document-preview.js +9 -0
- package/dist/reports/pr/types.d.ts +69 -0
- package/dist/reports/pr/types.js +1 -0
- package/dist/reports/pr/utils.d.ts +72 -0
- package/dist/reports/pr/utils.js +572 -0
- package/dist/reports/regspi/_components/create-form.d.ts +19 -0
- package/dist/reports/regspi/_components/create-form.js +33 -0
- package/dist/reports/regspi/_components/document-preview.d.ts +6 -0
- package/dist/reports/regspi/_components/document-preview.js +7 -0
- package/dist/reports/regspi/types.d.ts +29 -0
- package/dist/reports/regspi/types.js +24 -0
- package/dist/reports/regspi/utils.d.ts +48 -0
- package/dist/reports/regspi/utils.js +98 -0
- package/dist/reports/ris/_components/create-form.d.ts +36 -0
- package/dist/reports/ris/_components/create-form.js +149 -0
- package/dist/reports/ris/_components/document-preview.d.ts +8 -0
- package/dist/reports/ris/_components/document-preview.js +31 -0
- package/dist/reports/ris/types.d.ts +93 -0
- package/dist/reports/ris/types.js +1 -0
- package/dist/reports/rlsddp/_components/create-form.d.ts +11 -0
- package/dist/reports/rlsddp/_components/create-form.js +165 -0
- package/dist/reports/rlsddp/_components/document-preview.d.ts +8 -0
- package/dist/reports/rlsddp/_components/document-preview.js +15 -0
- package/dist/reports/rlsddp/types.d.ts +105 -0
- package/dist/reports/rlsddp/types.js +31 -0
- package/dist/reports/rrsp/components/rrsp-preview.d.ts +21 -0
- package/dist/reports/rrsp/components/rrsp-preview.js +155 -0
- package/dist/reports/rsmi/components/rsmi-create-form.d.ts +20 -0
- package/dist/reports/rsmi/components/rsmi-create-form.js +8 -0
- package/dist/reports/rsmi/components/rsmi-document-body.d.ts +15 -0
- package/dist/reports/rsmi/components/rsmi-document-body.js +12 -0
- package/dist/reports/rsmi/components/rsmi-types.d.ts +45 -0
- package/dist/reports/rsmi/components/rsmi-types.js +1 -0
- package/dist/reports/rsmi/components/rsmi-utils.d.ts +2 -0
- package/dist/reports/rsmi/components/rsmi-utils.js +18 -0
- package/dist/reports/rsmp/components/rsmp-create-modal.d.ts +5 -0
- package/dist/reports/rsmp/components/rsmp-create-modal.js +7 -0
- package/dist/reports/rsmp/components/rsmp-preview-modal.d.ts +11 -0
- package/dist/reports/rsmp/components/rsmp-preview-modal.js +47 -0
- package/dist/reports/rsmp/components/rsmp-types.d.ts +44 -0
- package/dist/reports/rsmp/components/rsmp-types.js +1 -0
- package/dist/reports/rsmp/components/rsmp-utils.d.ts +5 -0
- package/dist/reports/rsmp/components/rsmp-utils.js +41 -0
- package/dist/reports/rsmp/lib/rsmp-grouping.d.ts +14 -0
- package/dist/reports/rsmp/lib/rsmp-grouping.js +75 -0
- package/dist/reports/stock-card/_components/create-form.d.ts +13 -0
- package/dist/reports/stock-card/_components/create-form.js +39 -0
- package/dist/reports/stock-card/_components/document-preview.d.ts +7 -0
- package/dist/reports/stock-card/_components/document-preview.js +29 -0
- package/dist/reports/stock-card/types.d.ts +31 -0
- package/dist/reports/stock-card/types.js +1 -0
- package/dist/reports/stock-card/utils.d.ts +32 -0
- package/dist/reports/stock-card/utils.js +248 -0
- package/dist/reports/wmr/_components/create-form.d.ts +22 -0
- package/dist/reports/wmr/_components/create-form.js +61 -0
- package/dist/reports/wmr/_components/document-preview.d.ts +10 -0
- package/dist/reports/wmr/_components/document-preview.js +59 -0
- package/dist/reports/wmr/types.d.ts +45 -0
- package/dist/reports/wmr/types.js +1 -0
- package/dist/reports/wmr/utils.d.ts +32 -0
- package/dist/reports/wmr/utils.js +343 -0
- package/dist/styles.css +4492 -0
- package/extraction-manifest.json +620 -0
- package/package.json +197 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export { Form, Form as default, definition } from '../forms/rsmi.js';
|
|
3
|
+
export { RsmiDocumentBody, RsmiDocumentBody as Preview } from '../reports/rsmi/components/rsmi-document-body.js';
|
|
4
|
+
export { RsmiCreateForm } from '../reports/rsmi/components/rsmi-create-form.js';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { Form, Form as default, definition } from '../forms/rsmp.js';
|
|
2
|
+
export { RsmpDocumentPreview, RsmpDocumentPreview as Preview } from '../reports/rsmp/components/rsmp-preview-modal.js';
|
|
3
|
+
export { RsmpCreateForm } from '../reports/rsmp/components/rsmp-create-modal.js';
|
|
4
|
+
export type * from '../reports/rsmp/components/rsmp-types.js';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export { Form, Form as default, definition } from '../forms/rsmp.js';
|
|
3
|
+
export { RsmpDocumentPreview, RsmpDocumentPreview as Preview } from '../reports/rsmp/components/rsmp-preview-modal.js';
|
|
4
|
+
export { RsmpCreateForm } from '../reports/rsmp/components/rsmp-create-modal.js';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { Form, Form as default, definition } from '../forms/stock-card.js';
|
|
2
|
+
export { ScDocumentPreview, ScDocumentPreview as Preview } from '../reports/stock-card/_components/document-preview.js';
|
|
3
|
+
export { StockCardCreateForm } from '../reports/stock-card/_components/create-form.js';
|
|
4
|
+
export type * from '../reports/stock-card/types.js';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export { Form, Form as default, definition } from '../forms/stock-card.js';
|
|
3
|
+
export { ScDocumentPreview, ScDocumentPreview as Preview } from '../reports/stock-card/_components/document-preview.js';
|
|
4
|
+
export { StockCardCreateForm } from '../reports/stock-card/_components/create-form.js';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type InventoryStatus = "In Stock" | "Out of Stock" | "Low Stock";
|
|
2
|
+
export type Inventory = {
|
|
3
|
+
id: string;
|
|
4
|
+
product: string;
|
|
5
|
+
propertyCode?: string;
|
|
6
|
+
category?: string;
|
|
7
|
+
warehouse?: string;
|
|
8
|
+
quantity: number;
|
|
9
|
+
status?: InventoryStatus;
|
|
10
|
+
dateAdded?: string;
|
|
11
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { Form, Form as default, definition } from '../forms/wmr.js';
|
|
2
|
+
export { WmrDocumentPreview, WmrDocumentPreview as Preview } from '../reports/wmr/_components/document-preview.js';
|
|
3
|
+
export { WastematerialReportWmrCreateForm } from '../reports/wmr/_components/create-form.js';
|
|
4
|
+
export type * from '../reports/wmr/types.js';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export { Form, Form as default, definition } from '../forms/wmr.js';
|
|
3
|
+
export { WmrDocumentPreview, WmrDocumentPreview as Preview } from '../reports/wmr/_components/document-preview.js';
|
|
4
|
+
export { WastematerialReportWmrCreateForm } from '../reports/wmr/_components/create-form.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resolveRpcspAccountablePerson(lineAccountablePerson: string | null | undefined, requestorWhoReceivedItem: string | null | undefined): string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function resolveRpcspAccountablePerson(lineAccountablePerson, requestorWhoReceivedItem) {
|
|
2
|
+
const lineValue = lineAccountablePerson?.trim() ?? "";
|
|
3
|
+
// Older auto-generated RPCSP lines stored their source note in this field.
|
|
4
|
+
// It is displayed as the Accountable Person, so fall back to the actual
|
|
5
|
+
// requestor named on the report instead.
|
|
6
|
+
if (/^auto-(generated|posted|created)\b/i.test(lineValue)) {
|
|
7
|
+
return requestorWhoReceivedItem?.trim() || "";
|
|
8
|
+
}
|
|
9
|
+
return lineValue || requestorWhoReceivedItem?.trim() || "";
|
|
10
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type IarBasicForm, type IarItemDraft } from "../types.js";
|
|
2
|
+
interface IarCreateFormProps {
|
|
3
|
+
form: IarBasicForm;
|
|
4
|
+
items: IarItemDraft[];
|
|
5
|
+
purchaseRequestOptions?: string[];
|
|
6
|
+
onFormChange: (form: IarBasicForm) => void;
|
|
7
|
+
onItemsChange: (items: IarItemDraft[]) => void;
|
|
8
|
+
onSubmit: () => void;
|
|
9
|
+
onCancel: () => void;
|
|
10
|
+
isSubmitting?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function IarCreateForm({ form, items, purchaseRequestOptions, onFormChange, onItemsChange, onSubmit, onCancel, isSubmitting, }: IarCreateFormProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,92 @@
|
|
|
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 { Button } from "../../../internal/components/ui/button.js";
|
|
5
|
+
import { DatePicker } from "../../../internal/components/ui/date-picker.js";
|
|
6
|
+
import { Input } from "../../../internal/components/ui/input.js";
|
|
7
|
+
import { EMPTY_ITEM_DRAFT, } from "../types.js";
|
|
8
|
+
export function IarCreateForm({ form, items, purchaseRequestOptions = [], onFormChange, onItemsChange, onSubmit, onCancel, isSubmitting = false, }) {
|
|
9
|
+
const set = (key, value) => {
|
|
10
|
+
onFormChange({ ...form, [key]: value });
|
|
11
|
+
};
|
|
12
|
+
const setItem = (index, key, value) => {
|
|
13
|
+
onItemsChange(items.map((item, i) => (i === index ? { ...item, [key]: value } : item)));
|
|
14
|
+
};
|
|
15
|
+
const addRow = () => onItemsChange([...items, { ...EMPTY_ITEM_DRAFT }]);
|
|
16
|
+
const removeRow = (index) => onItemsChange(items.filter((_, i) => i !== index));
|
|
17
|
+
const categoryOptions = [
|
|
18
|
+
"Supplies",
|
|
19
|
+
"Semi-Expendable",
|
|
20
|
+
"PPE",
|
|
21
|
+
"Services",
|
|
22
|
+
];
|
|
23
|
+
const fields = [
|
|
24
|
+
{
|
|
25
|
+
id: "purchaseRequestRef",
|
|
26
|
+
label: "PR No. (Reference)",
|
|
27
|
+
render: () => purchaseRequestOptions.length > 0 ? (_jsxs("select", { value: form.purchaseRequestRef ?? "", onChange: e => set("purchaseRequestRef", e.target.value), className: "border-input bg-background w-full rounded-md border px-3 py-2 text-sm", children: [_jsx("option", { value: "", children: "\u2014 select PR \u2014" }), purchaseRequestOptions.map(opt => (_jsx("option", { value: opt, children: opt }, opt)))] })) : (_jsx(Input, { value: form.purchaseRequestRef ?? "", onChange: e => set("purchaseRequestRef", e.target.value), placeholder: "PR-2026-06(0001)" })),
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: "supplier",
|
|
31
|
+
label: "Supplier *",
|
|
32
|
+
render: () => (_jsx(Input, { value: form.supplier, onChange: e => set("supplier", e.target.value), placeholder: "Supplier name" })),
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: "entityName",
|
|
36
|
+
label: "Entity Name",
|
|
37
|
+
render: () => (_jsx(Input, { value: form.entityName, onChange: e => set("entityName", e.target.value) })),
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: "fundCluster",
|
|
41
|
+
label: "Fund Cluster",
|
|
42
|
+
render: () => (_jsx(Input, { value: form.fundCluster, onChange: e => set("fundCluster", e.target.value), placeholder: "e.g. General Fund" })),
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
id: "requisitioningOffice",
|
|
46
|
+
label: "Requisitioning Office/Dept.",
|
|
47
|
+
render: () => (_jsx(Input, { value: form.requisitioningOffice ?? "", onChange: e => set("requisitioningOffice", e.target.value) })),
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: "responsibilityCenterCode",
|
|
51
|
+
label: "Responsibility Center Code",
|
|
52
|
+
render: () => (_jsx(Input, { value: form.responsibilityCenterCode ?? "", onChange: e => set("responsibilityCenterCode", e.target.value) })),
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: "invoiceNo",
|
|
56
|
+
label: "CR/SI No.",
|
|
57
|
+
render: () => (_jsx(Input, { value: form.invoiceNo ?? "", onChange: e => set("invoiceNo", e.target.value), placeholder: "Invoice / SI number" })),
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
id: "invoiceDate",
|
|
61
|
+
label: "CR/SI Date",
|
|
62
|
+
render: () => (_jsx(DatePicker, { value: form.invoiceDate ?? "", onValueChange: value => set("invoiceDate", value), placeholder: "Pick CR/SI date" })),
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: "iarDate",
|
|
66
|
+
label: "IAR Date",
|
|
67
|
+
render: () => (_jsx(DatePicker, { value: form.iarDate ?? "", onValueChange: value => set("iarDate", value), placeholder: "Pick IAR date" })),
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: "deliveryDate",
|
|
71
|
+
label: "Delivery Date",
|
|
72
|
+
render: () => (_jsx(DatePicker, { value: form.deliveryDate ?? "", onValueChange: value => set("deliveryDate", value), placeholder: "Pick delivery date" })),
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: "dateInspected",
|
|
76
|
+
label: "Date Inspected",
|
|
77
|
+
render: () => (_jsx(DatePicker, { value: form.dateInspected ?? "", onValueChange: value => set("dateInspected", value), placeholder: "Pick inspection date" })),
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: "dateReceived",
|
|
81
|
+
label: "Date Received (Acceptance)",
|
|
82
|
+
render: () => (_jsx(DatePicker, { value: form.dateReceived ?? "", onValueChange: value => set("dateReceived", value), placeholder: "Pick acceptance date" })),
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: "remarks",
|
|
86
|
+
label: "Remarks",
|
|
87
|
+
fullWidth: true,
|
|
88
|
+
render: () => (_jsx("textarea", { value: form.remarks ?? "", onChange: e => set("remarks", e.target.value), rows: 2, className: "border-input bg-background w-full resize-none rounded-md border px-3 py-2 text-sm" })),
|
|
89
|
+
},
|
|
90
|
+
];
|
|
91
|
+
return (_jsxs("div", { className: "space-y-5", children: [_jsx(ConfigurableFormLayout, { formKey: "iar-basic-info", fields: fields }), _jsxs("div", { children: [_jsxs("div", { className: "mb-2 flex items-center justify-between", children: [_jsx("span", { className: "text-muted-foreground text-xs font-semibold", children: "Items" }), _jsx(Button, { type: "button", variant: "outline", size: "sm", onClick: addRow, children: "+ Add Row" })] }), _jsx("div", { className: "overflow-x-auto rounded-md border border-slate-200", children: _jsxs("table", { className: "w-full text-xs", children: [_jsx("thead", { className: "bg-muted", children: _jsxs("tr", { children: [_jsx("th", { className: "w-35 border-b border-slate-200 px-2 py-2 text-left font-medium text-slate-600", children: "Stock/Property No." }), _jsx("th", { className: "w-37.5 border-b border-slate-200 px-2 py-2 text-left font-medium text-slate-600", children: "Inspection Category" }), _jsx("th", { className: "border-b border-slate-200 px-2 py-2 text-left font-medium text-slate-600", children: "Description *" }), _jsx("th", { className: "w-22.5 border-b border-slate-200 px-2 py-2 text-left font-medium text-slate-600", children: "Unit" }), _jsx("th", { className: "w-22.5 border-b border-slate-200 px-2 py-2 text-left font-medium text-slate-600", children: "Quantity *" }), _jsx("th", { className: "w-9 border-b border-slate-200 px-2 py-2" })] }) }), _jsxs("tbody", { children: [items.length === 0 && (_jsx("tr", { children: _jsx("td", { colSpan: 6, className: "px-3 py-4 text-center text-slate-400", children: "No items \u2014 click \u201C+ Add Row\u201D" }) })), items.map((item, index) => (_jsxs("tr", { className: "border-b border-slate-100 last:border-0", children: [_jsx("td", { className: "px-1 py-1", children: _jsx(Input, { value: item.stockNo, onChange: e => setItem(index, "stockNo", e.target.value), className: "h-7 text-xs" }) }), _jsx("td", { className: "px-1 py-1", children: _jsx("select", { value: item.category ?? "Supplies", onChange: e => setItem(index, "category", e.target.value), className: "border-input bg-background h-7 w-full rounded-md border px-2 text-xs", children: categoryOptions.map(category => (_jsx("option", { value: category, children: category }, category))) }) }), _jsx("td", { className: "px-1 py-1", children: _jsx(Input, { value: item.description, onChange: e => setItem(index, "description", e.target.value), className: "h-7 text-xs" }) }), _jsx("td", { className: "px-1 py-1", children: _jsx(Input, { value: item.unit ?? "", onChange: e => setItem(index, "unit", e.target.value), className: "h-7 text-xs" }) }), _jsx("td", { className: "px-1 py-1", children: _jsx(Input, { type: "number", value: item.quantity, onChange: e => setItem(index, "quantity", e.target.value), className: "h-7 text-xs" }) }), _jsx("td", { className: "px-1 py-1 text-center", children: _jsx("button", { type: "button", onClick: () => removeRow(index), className: "text-base leading-none text-slate-400 hover:text-red-500", "aria-label": "Remove row", children: "\u00D7" }) })] }, index)))] })] }) })] }), _jsxs("div", { className: "flex justify-end gap-2 pt-2", children: [_jsx(Button, { type: "button", variant: "outline", onClick: onCancel, disabled: isSubmitting, children: "Cancel" }), _jsx(Button, { type: "button", onClick: onSubmit, disabled: isSubmitting, children: isSubmitting ? "Saving…" : "Save IAR" })] })] }));
|
|
92
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IarRecord } from "../types.js";
|
|
2
|
+
export type IarDocumentPreviewProps = {
|
|
3
|
+
record: IarRecord;
|
|
4
|
+
/** PR date — pass from the linked PR if available */
|
|
5
|
+
purchaseRequestDate?: string | null;
|
|
6
|
+
/** Resolved name of the Inspection Officer */
|
|
7
|
+
inspectionOfficer?: string;
|
|
8
|
+
/** Resolved name of the Supply and/or Property Custodian */
|
|
9
|
+
supplyCustodian?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare function IarDocumentPreview({ record, purchaseRequestDate, inspectionOfficer, supplyCustodian, }: IarDocumentPreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
// ─── helpers ─────────────────────────────────────────────────────────────────
|
|
4
|
+
function fmt(value) {
|
|
5
|
+
return (value ?? "").trim();
|
|
6
|
+
}
|
|
7
|
+
function fmtDate(value) {
|
|
8
|
+
if (!value)
|
|
9
|
+
return "";
|
|
10
|
+
const d = new Date(value);
|
|
11
|
+
if (isNaN(d.getTime()))
|
|
12
|
+
return value;
|
|
13
|
+
return d.toLocaleDateString("en-PH", { year: "numeric", month: "long", day: "2-digit" });
|
|
14
|
+
}
|
|
15
|
+
// ─── Checkbox ─────────────────────────────────────────────────────────────────
|
|
16
|
+
function Checkbox({ checked }) {
|
|
17
|
+
return (_jsx("span", { style: {
|
|
18
|
+
display: "inline-block",
|
|
19
|
+
width: "11px",
|
|
20
|
+
height: "11px",
|
|
21
|
+
border: "1px solid black",
|
|
22
|
+
flexShrink: 0,
|
|
23
|
+
marginTop: "1px",
|
|
24
|
+
textAlign: "center",
|
|
25
|
+
lineHeight: "9px",
|
|
26
|
+
fontSize: "9px",
|
|
27
|
+
fontFamily: "serif",
|
|
28
|
+
}, children: checked ? "✓" : "" }));
|
|
29
|
+
}
|
|
30
|
+
// ─── component ───────────────────────────────────────────────────────────────
|
|
31
|
+
const ITEM_ROWS = 15;
|
|
32
|
+
export function IarDocumentPreview({ record, purchaseRequestDate, inspectionOfficer, supplyCustodian, }) {
|
|
33
|
+
const items = record.items ?? [];
|
|
34
|
+
// Build padded row list: real items → "***NOTHING FOLLOWS***" → blank rows
|
|
35
|
+
const blankRow = { stockNo: "", description: "", unit: "", quantity: "" };
|
|
36
|
+
const dataRows = items.map(r => ({
|
|
37
|
+
stockNo: fmt(r.stockNo),
|
|
38
|
+
description: fmt(r.description),
|
|
39
|
+
unit: fmt(r.unit),
|
|
40
|
+
quantity: fmt(r.quantity),
|
|
41
|
+
}));
|
|
42
|
+
const nothingRow = { stockNo: "", description: "***NOTHING FOLLOWS***", unit: "", quantity: "", isNothing: true };
|
|
43
|
+
const padCount = Math.max(0, ITEM_ROWS - dataRows.length - 1);
|
|
44
|
+
const allRows = [
|
|
45
|
+
...dataRows.map(r => ({ ...r, isNothing: false })),
|
|
46
|
+
{ ...nothingRow },
|
|
47
|
+
...Array.from({ length: padCount }, () => ({ ...blankRow, isNothing: false })),
|
|
48
|
+
];
|
|
49
|
+
const prNoDate = [fmt(record.purchaseRequestRef), fmtDate(purchaseRequestDate)]
|
|
50
|
+
.filter(Boolean)
|
|
51
|
+
.join(" / ");
|
|
52
|
+
// Border style shorthand
|
|
53
|
+
const borderAll = "1px solid black";
|
|
54
|
+
return (_jsxs("div", { "data-pdf-page": "true", "data-pdf-orientation": "portrait", style: {
|
|
55
|
+
fontFamily: "Times New Roman, serif",
|
|
56
|
+
fontSize: "11px",
|
|
57
|
+
color: "black",
|
|
58
|
+
background: "white",
|
|
59
|
+
width: "794px",
|
|
60
|
+
margin: "0 auto",
|
|
61
|
+
boxSizing: "border-box",
|
|
62
|
+
}, children: [_jsx("div", { style: { textAlign: "right", fontStyle: "italic", fontSize: "10px", marginBottom: "2px" }, children: "Appendix 62" }), _jsx("div", { style: {
|
|
63
|
+
textAlign: "center",
|
|
64
|
+
fontWeight: "bold",
|
|
65
|
+
fontSize: "13px",
|
|
66
|
+
textTransform: "uppercase",
|
|
67
|
+
letterSpacing: "0.5px",
|
|
68
|
+
marginBottom: "4px",
|
|
69
|
+
}, children: "Inspection and Acceptance Report" }), _jsx("table", { style: { width: "100%", borderCollapse: "collapse", tableLayout: "fixed" }, children: _jsx("tbody", { children: _jsxs("tr", { children: [_jsxs("td", { style: { border: borderAll, padding: "2px 6px" }, children: [_jsx("span", { style: { fontWeight: "bold" }, children: "Entity Name :" }), " ", _jsx("span", { style: { textDecoration: "underline" }, children: fmt(record.entityName) })] }), _jsxs("td", { style: { border: borderAll, padding: "2px 6px", textAlign: "right" }, children: [_jsx("span", { style: { fontWeight: "bold" }, children: "Fund Cluster :" }), " ", fmt(record.fundCluster)] })] }) }) }), _jsx("table", { style: { width: "100%", borderCollapse: "collapse", tableLayout: "fixed" }, children: _jsx("tbody", { children: _jsxs("tr", { children: [_jsxs("td", { style: { border: borderAll, padding: "3px 6px", width: "50%", verticalAlign: "top" }, children: [_jsxs("div", { style: { marginBottom: "2px" }, children: [_jsx("span", { style: { fontWeight: "bold" }, children: "Supplier :" }), " ", fmt(record.supplier)] }), _jsxs("div", { style: { marginBottom: "2px" }, children: [_jsx("span", { style: { fontWeight: "bold" }, children: "PR No./Date :" }), " ", prNoDate] }), _jsxs("div", { style: { marginBottom: "2px" }, children: [_jsx("span", { style: { fontWeight: "bold" }, children: "Requisitioning Office/Dept. :" }), " ", fmt(record.requisitioningOffice)] }), _jsxs("div", { children: [_jsx("span", { style: { fontWeight: "bold" }, children: "Responsibility Center Code :" }), " ", fmt(record.responsibilityCenterCode)] })] }), _jsxs("td", { style: { border: borderAll, padding: "3px 6px", width: "50%", verticalAlign: "top" }, children: [_jsxs("div", { style: { marginBottom: "2px" }, children: [_jsx("span", { style: { fontWeight: "bold" }, children: "IAR No. :" }), " ", fmt(record.iarNo)] }), _jsxs("div", { style: { marginBottom: "2px" }, children: [_jsx("span", { style: { fontWeight: "bold" }, children: "Date :" }), " ", fmtDate(record.iarDate)] }), _jsxs("div", { style: { marginBottom: "2px" }, children: [_jsx("span", { style: { fontWeight: "bold" }, children: "CR/SI No. :" }), " ", fmt(record.invoiceNo)] }), _jsxs("div", { children: [_jsx("span", { style: { fontWeight: "bold" }, children: "Date :" }), " ", fmtDate(record.invoiceDate)] })] })] }) }) }), _jsxs("table", { style: { width: "100%", borderCollapse: "collapse", tableLayout: "fixed" }, children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsxs("th", { style: {
|
|
70
|
+
border: borderAll,
|
|
71
|
+
padding: "3px 4px",
|
|
72
|
+
textAlign: "center",
|
|
73
|
+
fontStyle: "italic",
|
|
74
|
+
fontWeight: "bold",
|
|
75
|
+
width: "18%",
|
|
76
|
+
}, children: ["Stock/", _jsx("br", {}), "Property No."] }), _jsx("th", { style: {
|
|
77
|
+
border: borderAll,
|
|
78
|
+
padding: "3px 4px",
|
|
79
|
+
textAlign: "center",
|
|
80
|
+
fontStyle: "italic",
|
|
81
|
+
fontWeight: "bold",
|
|
82
|
+
}, children: "Description" }), _jsx("th", { style: {
|
|
83
|
+
border: borderAll,
|
|
84
|
+
padding: "3px 4px",
|
|
85
|
+
textAlign: "center",
|
|
86
|
+
fontStyle: "italic",
|
|
87
|
+
fontWeight: "bold",
|
|
88
|
+
width: "13%",
|
|
89
|
+
}, children: "Unit" }), _jsx("th", { style: {
|
|
90
|
+
border: borderAll,
|
|
91
|
+
padding: "3px 4px",
|
|
92
|
+
textAlign: "center",
|
|
93
|
+
fontStyle: "italic",
|
|
94
|
+
fontWeight: "bold",
|
|
95
|
+
width: "13%",
|
|
96
|
+
}, children: "Quantity" })] }) }), _jsx("tbody", { children: allRows.map((row, i) => (_jsxs("tr", { style: { height: "22px" }, children: [_jsx("td", { style: { border: borderAll, padding: "1px 4px", fontSize: "10px" }, children: row.stockNo }), _jsx("td", { style: {
|
|
97
|
+
border: borderAll,
|
|
98
|
+
padding: "1px 4px",
|
|
99
|
+
fontSize: "10px",
|
|
100
|
+
textAlign: row.isNothing ? "center" : "left",
|
|
101
|
+
fontStyle: row.isNothing ? "italic" : "normal",
|
|
102
|
+
}, children: row.description }), _jsx("td", { style: { border: borderAll, padding: "1px 4px", fontSize: "10px", textAlign: "center" }, children: row.unit }), _jsx("td", { style: { border: borderAll, padding: "1px 4px", fontSize: "10px", textAlign: "center" }, children: row.quantity })] }, i))) })] }), _jsxs("table", { style: { width: "100%", borderCollapse: "collapse", tableLayout: "fixed" }, children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { style: {
|
|
103
|
+
border: borderAll,
|
|
104
|
+
padding: "2px 6px",
|
|
105
|
+
textAlign: "center",
|
|
106
|
+
fontStyle: "italic",
|
|
107
|
+
fontWeight: "bold",
|
|
108
|
+
width: "50%",
|
|
109
|
+
fontSize: "11px",
|
|
110
|
+
}, children: "Inspection" }), _jsx("th", { style: {
|
|
111
|
+
border: borderAll,
|
|
112
|
+
padding: "2px 6px",
|
|
113
|
+
textAlign: "center",
|
|
114
|
+
fontStyle: "italic",
|
|
115
|
+
fontWeight: "bold",
|
|
116
|
+
width: "50%",
|
|
117
|
+
fontSize: "11px",
|
|
118
|
+
}, children: "Complete" })] }) }), _jsx("tbody", { children: _jsxs("tr", { children: [_jsxs("td", { style: { border: borderAll, padding: "6px 10px", verticalAlign: "top" }, children: [_jsxs("div", { style: { marginBottom: "8px", fontSize: "10px" }, children: [_jsx("span", { style: { fontWeight: "bold" }, children: "Date Inspected :" }), " ", fmtDate(record.dateInspected)] }), _jsxs("div", { style: { display: "flex", alignItems: "flex-start", gap: "8px", marginBottom: "28px" }, children: [_jsx(Checkbox, { checked: record.isInspected }), _jsx("span", { style: { fontSize: "10px", lineHeight: "1.4" }, children: "Inspected, verified and found in order as to quantity and specifications" })] }), _jsx("div", { style: {
|
|
119
|
+
borderTop: "1px solid black",
|
|
120
|
+
textAlign: "center",
|
|
121
|
+
paddingTop: "3px",
|
|
122
|
+
fontSize: "10px",
|
|
123
|
+
marginTop: "12px",
|
|
124
|
+
}, children: inspectionOfficer || "" }), _jsx("div", { style: { textAlign: "center", fontSize: "10px", color: "#333" }, children: "Inspection Officer" })] }), _jsxs("td", { style: { border: borderAll, padding: "6px 10px", verticalAlign: "top" }, children: [_jsxs("div", { style: { marginBottom: "8px", fontSize: "10px" }, children: [_jsx("span", { style: { fontWeight: "bold" }, children: "Date Received :" }), " ", fmtDate(record.dateReceived)] }), _jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "6px" }, children: [_jsx(Checkbox, { checked: record.isComplete }), _jsx("span", { style: { fontSize: "10px" }, children: "Complete" })] }), _jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "28px" }, children: [_jsx(Checkbox, { checked: !record.isComplete }), _jsx("span", { style: { fontSize: "10px" }, children: "Partial (pls. specify quantity)" })] }), _jsx("div", { style: {
|
|
125
|
+
borderTop: "1px solid black",
|
|
126
|
+
textAlign: "center",
|
|
127
|
+
paddingTop: "3px",
|
|
128
|
+
fontSize: "10px",
|
|
129
|
+
marginTop: "12px",
|
|
130
|
+
}, children: supplyCustodian || "" }), _jsx("div", { style: { textAlign: "center", fontSize: "10px", color: "#333" }, children: "Supply and/or Property Custodian" })] })] }) })] })] }));
|
|
131
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
export type IarStatus = "Draft" | "Submitted" | "Approved" | "Returned" | "Cancelled" | "Closed";
|
|
2
|
+
export type InspectionAndAcceptanceCategory = "Supplies" | "Semi-Expendable" | "PPE" | "Services";
|
|
3
|
+
export type IarItem = {
|
|
4
|
+
id?: string | number;
|
|
5
|
+
category?: InspectionAndAcceptanceCategory;
|
|
6
|
+
stockNo: string;
|
|
7
|
+
description: string;
|
|
8
|
+
unit: string;
|
|
9
|
+
quantity: string;
|
|
10
|
+
unitCost?: string;
|
|
11
|
+
totalAmount?: string;
|
|
12
|
+
receivedQty?: string;
|
|
13
|
+
rejectedQty?: string;
|
|
14
|
+
batchNo?: string;
|
|
15
|
+
manufacturingDate?: string | null;
|
|
16
|
+
expiryDate?: string | null;
|
|
17
|
+
warehouseLocation?: string;
|
|
18
|
+
remarks?: string;
|
|
19
|
+
};
|
|
20
|
+
export type IarRecord = {
|
|
21
|
+
id: number;
|
|
22
|
+
iarNo: string;
|
|
23
|
+
/** FK to document_types (added in migration) */
|
|
24
|
+
documentTypeId: number | null;
|
|
25
|
+
/** FK to offices (added in migration) */
|
|
26
|
+
officeId: string | null;
|
|
27
|
+
purchaseRequestId: number | null;
|
|
28
|
+
purchaseRequestRef: string;
|
|
29
|
+
poNo?: string | null;
|
|
30
|
+
risId: number | null;
|
|
31
|
+
risRef: string | null;
|
|
32
|
+
supplier: string;
|
|
33
|
+
entityName: string;
|
|
34
|
+
fundCluster: string;
|
|
35
|
+
/** CR/SI No. — maps to invoice_no column */
|
|
36
|
+
invoiceNo: string;
|
|
37
|
+
/** CR/SI Date — maps to invoice_date column (added in migration) */
|
|
38
|
+
invoiceDate: string | null;
|
|
39
|
+
/** CR/SI No. — preferred alias (crsi_no column) */
|
|
40
|
+
crsiNo: string | null;
|
|
41
|
+
/** CR/SI Date — preferred alias (crsi_date column) */
|
|
42
|
+
crsiDate: string | null;
|
|
43
|
+
/** Requisitioning Office/Dept. — maps to requisitioning_office column (added in migration) */
|
|
44
|
+
requisitioningOffice: string;
|
|
45
|
+
iarDate: string | null;
|
|
46
|
+
deliveryDate: string | null;
|
|
47
|
+
responsibilityCenterCode: string;
|
|
48
|
+
/** Date accepted (right-side footer) */
|
|
49
|
+
dateReceived: string | null;
|
|
50
|
+
/** Date inspected (left-side footer) */
|
|
51
|
+
dateInspected: string | null;
|
|
52
|
+
/** Left-side checkbox: "Inspected, verified and found in order as to quantity and specifications" */
|
|
53
|
+
isInspected: boolean;
|
|
54
|
+
/** Right-side: Complete checkbox */
|
|
55
|
+
isComplete: boolean;
|
|
56
|
+
/** Right-side: Partial checkbox (mutually exclusive with isComplete) */
|
|
57
|
+
isPartial: boolean;
|
|
58
|
+
remarks: string;
|
|
59
|
+
status: IarStatus;
|
|
60
|
+
items: IarItem[];
|
|
61
|
+
createdAt: string;
|
|
62
|
+
updatedAt: string;
|
|
63
|
+
};
|
|
64
|
+
export type IarBasicForm = {
|
|
65
|
+
documentTypeId?: number;
|
|
66
|
+
officeId?: string;
|
|
67
|
+
purchaseRequestRef?: string;
|
|
68
|
+
supplier: string;
|
|
69
|
+
entityName: string;
|
|
70
|
+
fundCluster: string;
|
|
71
|
+
invoiceNo?: string;
|
|
72
|
+
invoiceDate?: string;
|
|
73
|
+
requisitioningOffice?: string;
|
|
74
|
+
iarDate?: string;
|
|
75
|
+
deliveryDate?: string;
|
|
76
|
+
responsibilityCenterCode?: string;
|
|
77
|
+
dateReceived?: string;
|
|
78
|
+
dateInspected?: string;
|
|
79
|
+
isInspected?: boolean;
|
|
80
|
+
isComplete?: boolean;
|
|
81
|
+
isPartial?: boolean;
|
|
82
|
+
remarks?: string;
|
|
83
|
+
};
|
|
84
|
+
export type IarItemDraft = {
|
|
85
|
+
category: InspectionAndAcceptanceCategory;
|
|
86
|
+
stockNo: string;
|
|
87
|
+
description: string;
|
|
88
|
+
unit: string;
|
|
89
|
+
quantity: string;
|
|
90
|
+
unitCost?: string;
|
|
91
|
+
totalAmount?: string;
|
|
92
|
+
receivedQty?: string;
|
|
93
|
+
rejectedQty?: string;
|
|
94
|
+
remarks?: string;
|
|
95
|
+
};
|
|
96
|
+
export declare const EMPTY_BASIC_FORM: IarBasicForm;
|
|
97
|
+
export declare const EMPTY_ITEM_DRAFT: IarItemDraft;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// ─── Status ───────────────────────────────────────────────────────────────────
|
|
2
|
+
export const EMPTY_BASIC_FORM = {
|
|
3
|
+
supplier: "",
|
|
4
|
+
entityName: "",
|
|
5
|
+
fundCluster: "",
|
|
6
|
+
invoiceNo: "",
|
|
7
|
+
invoiceDate: "",
|
|
8
|
+
requisitioningOffice: "",
|
|
9
|
+
iarDate: "",
|
|
10
|
+
deliveryDate: "",
|
|
11
|
+
responsibilityCenterCode: "",
|
|
12
|
+
dateReceived: "",
|
|
13
|
+
dateInspected: "",
|
|
14
|
+
remarks: "",
|
|
15
|
+
};
|
|
16
|
+
export const EMPTY_ITEM_DRAFT = {
|
|
17
|
+
category: "Supplies",
|
|
18
|
+
stockNo: "",
|
|
19
|
+
description: "",
|
|
20
|
+
unit: "",
|
|
21
|
+
quantity: "",
|
|
22
|
+
unitCost: "",
|
|
23
|
+
remarks: "",
|
|
24
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type IiruspBasicForm, type IiruspItemDraft } from "../types.js";
|
|
2
|
+
interface IiruspCreateFormProps {
|
|
3
|
+
form: IiruspBasicForm;
|
|
4
|
+
items: IiruspItemDraft[];
|
|
5
|
+
currentRole?: string | null;
|
|
6
|
+
canEditHeader: boolean;
|
|
7
|
+
canEditInventory: boolean;
|
|
8
|
+
canEditDisposal: boolean;
|
|
9
|
+
canManageRows: boolean;
|
|
10
|
+
activeTab: string;
|
|
11
|
+
formError?: string | null;
|
|
12
|
+
onTabChange: (tab: string) => void;
|
|
13
|
+
onFormChange: (form: IiruspBasicForm) => void;
|
|
14
|
+
onItemsChange: (items: IiruspItemDraft[]) => void;
|
|
15
|
+
}
|
|
16
|
+
export declare function IiruspCreateForm({ form, items, currentRole, canEditHeader, canEditInventory, canEditDisposal, canManageRows, activeTab, formError, onTabChange, onFormChange, onItemsChange, }: IiruspCreateFormProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|