{{ operation.description }}
@@ -34,21 +33,21 @@ const elapsedTime = computed(() => {
})
onMounted(async () => {
- const orderResponse = await fetch(`/api/resource/Work Order/${route.params.workOrder}`)
- const { data }: { data: Partial
} = await orderResponse.json()
+ const orderResponse = await fetch(`/api/resource/Work Order/${route.params.orderId}`)
+ const { data }: { data: WorkOrder } = await orderResponse.json()
workOrder.value = data
operation.value = workOrder.value.operations.find(operation => operation.name === route.params.id) || {}
const filters = [['operation_id', '=', route.params.id]]
const params = new URLSearchParams({ filters: JSON.stringify(filters) })
const checkJobResponse = await fetch(`/api/resource/Job Card?${params}`)
- const { data: jobData }: { data: Partial[] } = await checkJobResponse.json()
+ const { data: jobData }: { data: JobCard[] } = await checkJobResponse.json()
if (jobData.length === 0) {
return
}
const jobResponse = await fetch(`/api/resource/Job Card/${jobData[0].name}`)
- const { data: job }: { data: Partial } = await jobResponse.json()
+ const { data: job }: { data: JobCard } = await jobResponse.json()
jobCard.value = job
})
diff --git a/beam/www/beam/pages/Ship.vue b/beam/www/beam/pages/Ship.vue
index 9f3f506b..5910723e 100644
--- a/beam/www/beam/pages/Ship.vue
+++ b/beam/www/beam/pages/Ship.vue
@@ -1,5 +1,36 @@
- Ship
+
-
+
+
diff --git a/beam/www/beam/pages/Transfer.vue b/beam/www/beam/pages/Transfer.vue
index a885ec3b..bb8b2d5a 100644
--- a/beam/www/beam/pages/Transfer.vue
+++ b/beam/www/beam/pages/Transfer.vue
@@ -1,5 +1,42 @@
- Transfer
+
+
+
+const handlePrimaryAction = () => {}
+let transfer = ref[]>([])
+let transfers = []
+
+onMounted(async () => {
+ const params = new URLSearchParams({
+ fields: JSON.stringify(['name', 'workstation_type', 'plant_floor']),
+ order_by: 'creation asc',
+ })
+
+ const url = new URL(`/api/method/beam.beam.demand.demand.get_demand`, window.location.origin) // incorporate params
+ const response = await fetch(url)
+ let data = await response.json()
+ // TODO: move this the server
+ data.message.forEach(row => {
+ row.count = { count: row.allocated_qty, of: `${row.total_required_qty} ${row.stock_uom}` }
+ row.label = row.parent
+ row.linkComponent = 'ListAnchor'
+ row.description = `${row.item_code} - ${row.warehouse}`
+ row.route = `#/${row.doctype}/${row.parent}`
+ transfers.push(row)
+ })
+ transfer.value = transfers
+})
+
+
diff --git a/beam/www/beam/pages/WorkOrder.vue b/beam/www/beam/pages/WorkOrder.vue
index d84b6909..2bf0f743 100644
--- a/beam/www/beam/pages/WorkOrder.vue
+++ b/beam/www/beam/pages/WorkOrder.vue
@@ -1,48 +1,87 @@
- Work Order
-
-
-
- {{ workOrder.item_name }} ({{ workOrder.name }})
-
-
+
diff --git a/beam/www/beam/pages/Workstation.vue b/beam/www/beam/pages/Workstation.vue
index 93ea2086..ab029311 100644
--- a/beam/www/beam/pages/Workstation.vue
+++ b/beam/www/beam/pages/Workstation.vue
@@ -7,10 +7,33 @@
-
+
diff --git a/beam/www/beam/types/index.ts b/beam/www/beam/types/index.ts
index 99733be5..e7788f98 100644
--- a/beam/www/beam/types/index.ts
+++ b/beam/www/beam/types/index.ts
@@ -20,6 +20,7 @@ export type JobCard = ParentDoctype & {
export type WorkOrder = ParentDoctype & {
item_name: string
qty: number
+ produced_qty: number
operations: WorkOrderOperation[]
}
@@ -35,4 +36,18 @@ export type WorkOrderOperation = ChildDoctype & {
completed_qty: number
description?: string
operation: string
+ time_in_mins?: number
+}
+
+export type ListViewItem = {
+ label: string
+ description?: string
+ count?: {
+ count: number
+ of: number
+ uom?: string
+ }
+ checked?: boolean
+ linkComponent?: string
+ route?: string
}
diff --git a/beam/www/demand.html b/beam/www/demand.html
new file mode 100644
index 00000000..dff7dec9
--- /dev/null
+++ b/beam/www/demand.html
@@ -0,0 +1,31 @@
+{% extends "templates/web.html" %}
+
+{% block content %}
+
+
+{% endblock %}
+
+{%- block style -%}
+
+{% endblock %}
\ No newline at end of file
diff --git a/beam/www/demand.py b/beam/www/demand.py
new file mode 100644
index 00000000..90603315
--- /dev/null
+++ b/beam/www/demand.py
@@ -0,0 +1,9 @@
+import frappe
+
+no_cache = True
+
+
+def get_context(context):
+ csrf_token = frappe.sessions.get_csrf_token()
+ context.csrf_token = csrf_token
+ frappe.db.commit()
diff --git a/package.json b/package.json
index 234ba46d..180f1927 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"build:watch": "vite build --watch --config=./beam/www/beam/vite.config.ts"
},
"dependencies": {
- "@stonecrop/beam": "^0.2.27",
+ "@stonecrop/beam": "^0.2.28",
"@vitejs/plugin-vue": "^5.0.4",
"onscan.js": "^1.5.2",
"vite": "^5.2.11",
diff --git a/yarn.lock b/yarn.lock
index aa490246..f63ee942 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -212,10 +212,10 @@
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz#0cb240c147c0dfd0e3eaff4cc060a772d39e155c"
integrity sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==
-"@stonecrop/beam@^0.2.27":
- version "0.2.27"
- resolved "https://registry.yarnpkg.com/@stonecrop/beam/-/beam-0.2.27.tgz#b18b0646237ae2b0910f2c238d541f00ad832824"
- integrity sha512-tHRShy1rwuMefg8qvCMrCrxxifk49wpIxLEqZvDIhq2Bweh+/I8u+ZuGNdbkz1qWWPfb2KDKR9xuiSQdbBxqYQ==
+"@stonecrop/beam@^0.2.28":
+ version "0.2.28"
+ resolved "https://registry.yarnpkg.com/@stonecrop/beam/-/beam-0.2.28.tgz#79f1cbd96190448c9fc952720740e62f76d5f39c"
+ integrity sha512-A7Z7XL6YeT4VJoVlkiQkacnBxPi7d2w5/vZUM/9LAvnjnAaXBugKWb7luxarUPtHoE4Oz5weasWF0CKmXOSCzQ==
dependencies:
vue "^3.4.31"