sale order
SAP-ERP Portal CI/CD / build (push) Successful in 3m57s

This commit is contained in:
John
2026-10-05 18:45:17 +05:30
parent e725a6571b
commit eead8f5ffd
129 changed files with 14252 additions and 452 deletions
+85 -32
View File
@@ -69,30 +69,33 @@ ol.steps b{color:var(--text)}
<a href="#start">1. Getting Started</a>
<a href="#bom">2. BOM Requests</a>
<a href="#items">3. Items</a>
<a href="#workorder">4. Work Order</a>
<a href="#batchissue">5. Batch Issuance</a>
<a href="#requirements">6. Requirements</a>
<a href="#planning">7. Production Planning</a>
<a href="#prodorder">8. Production Order</a>
<a href="#issue">9. Issue for Production</a>
<a href="#receipt">10. Receipt from Production</a>
<a href="#verifyprod">11. Verify Production</a>
<a href="#closeprod">12. Close Production</a>
<a href="#verifywo">13. Verify Work Order</a>
<a href="#manpower">14. Man Power</a>
<a href="#oee">15. OEE</a>
<a href="#rejection">16. Rejection Register &amp; Analytics</a>
<a href="#purchase">17. Purchase</a>
<a href="#custvendor">18. Customer / Vendor</a>
<a href="#approvals">19. Approvals</a>
<a href="#projects">20. Projects</a>
<a href="#finance">21. Finance</a>
<a href="#gst">22. GST Reports</a>
<a href="#masters">23. Business Master &amp; General Ledger</a>
<a href="#reports">24. Reports &amp; Dashboards</a>
<a href="#logs">25. Audit Logs &amp; Mail Log</a>
<a href="#documents">26. Documents</a>
<a href="#profile">27. Your Profile</a>
<a href="#invreports">4. Inventory Reports</a>
<a href="#invtransfer">5. Inventory Transfer</a>
<a href="#workorder">5. Work Order</a>
<a href="#batchissue">6. Batch Issuance</a>
<a href="#requirements">7. Requirements</a>
<a href="#planning">8. Production Planning</a>
<a href="#prodorder">9. Production Order</a>
<a href="#deviations">10. Deviations</a>
<a href="#issue">11. Issue for Production</a>
<a href="#receipt">12. Receipt from Production</a>
<a href="#verifyprod">13. Verify Production</a>
<a href="#closeprod">14. Close Production</a>
<a href="#verifywo">15. Verify Work Order</a>
<a href="#manpower">16. Man Power</a>
<a href="#oee">17. OEE</a>
<a href="#rejection">18. Rejection Register &amp; Analytics</a>
<a href="#purchase">19. Purchase</a>
<a href="#custvendor">20. Customer / Vendor</a>
<a href="#approvals">21. Approvals</a>
<a href="#projects">22. Projects</a>
<a href="#finance">23. Finance</a>
<a href="#gst">24. GST Reports</a>
<a href="#masters">25. Business Master &amp; General Ledger</a>
<a href="#reports">26. Reports &amp; Dashboards</a>
<a href="#logs">27. Audit Logs &amp; Mail Log</a>
<a href="#documents">28. Documents</a>
<a href="#profile">29. Your Profile</a>
</div>
<div>
@@ -112,6 +115,7 @@ ol.steps b{color:var(--text)}
<li>Open <b>Profile</b> (top-right area / sidebar) and check three things: your <b>full name &amp; email</b> are correct, your <b>SAP User ID &amp; Password</b> are set (needed for anything that posts to SAP — Work Orders, Production, Purchase), and your <b>Signature image</b> is uploaded if you'll be approving or issuing anything — it prints on Work Order PDFs wherever you sign.</li>
</ol>
<div class="tip"><b>Tip:</b> If a page says "You are not assigned this permission," it means an approval step needs to be granted to you — ask your admin, don't try to work around it.</div>
<div class="tip"><b>Tip:</b> If your company has set up Central Auth, you can also sign in by picking this app from your Central Auth dashboard — no separate password needed here, as long as your Central Auth email exactly matches the email on your profile in this portal.</div>
<div class="tip"><b>Tip:</b> Keeping your <b>email</b> correct in Profile matters — Work Order, Production Order and Batch Issuance now email whoever needs to act next at each stage, so you'll be notified automatically once something is waiting on you (as long as email is set up by your admin).</div>
</div>
</details>
@@ -135,13 +139,38 @@ ol.steps b{color:var(--text)}
<div class="sec-bd">
<ol class="steps">
<li>Use <b>Create Item</b> to add a new SAP item with its code, description, group and UoM.</li>
<li><b>Purchasing UoM</b> and <b>Sales UoM</b> aren't limited to a fixed list — start typing to pick a common one (NOS, KG, BOX…) or just type any UoM you need; it's saved exactly as entered.</li>
<li>Use <b>View Items</b> to search existing items before creating a duplicate.</li>
</ol>
</div>
</details>
<details class="sec" id="invreports">
<summary><span class="sec-ico">📚</span> 4. Inventory Reports <span class="chev">›</span></summary>
<div class="sec-bd">
<ol class="steps">
<li><b>Inventory Status</b> — live on-hand stock per item/warehouse, with the same Item Code/Vendor range filters, sorting and serial-numbered rows as SAP's own report. A negative available quantity shows in red. Export to a styled Excel workbook, 20 rows per page. Vendor is hidden from non-admin users.</li>
<li><b>Posting List</b> — every stock-moving transaction (issues, receipts, transfers, GRPO, invoices, returns…) for a date range, with a running Balance per item, matching SAP B1's own Inventory Posting List. Filter by Item Code range/group/date, toggle Daily/Monthly/Yearly subtotals, and export to Excel.</li>
<li><b>Batch No. Transaction</b> — same layout as SAP's own Batch Number Transactions Report: a top grid of every batch's current stock (Item, Batch, Whse, Quantity, Expiration/Manufacturing Date, Project, Status, COA Status, Sale Type), and below it the full transaction history for whichever batch you click — every document (Goods Receipt, Goods Issue, Sales Order, etc.) that ever moved that batch, with its quantity and In/Out direction. Tick <b>Display All Transactions for Selected (listed) Batches</b> to pull history for every batch currently listed at once. Exports to Excel.</li>
</ol>
</div>
</details>
<details class="sec" id="invtransfer">
<summary><span class="sec-ico">🔁</span> 5. Inventory Transfer <span class="chev">›</span></summary>
<div class="sec-bd">
<p class="lead">Move stock from one warehouse to another — any item, not tied to a Work Order or Production Order. Same document SAP's own Inventory Transfer window posts.</p>
<ol class="steps">
<li>Open <b>Inventory Transfer</b>, pick the <b>From Warehouse</b> and <b>To Warehouse</b>, then click <b>+ Add Item</b> and search for the item code.</li>
<li>Enter the <b>Quantity</b>. If the item is batch-managed, its available batches load automatically and the quantity is <b>pre-selected for you</b> (earliest-expiry-first — same FEFO auto-pick used in Issue for Production) — you can still adjust the split across batches manually if needed.</li>
<li>Add as many item lines as you need, then <b>OK — Post Transfer</b>. This uses <b>your own</b> SAP login (Profile → My SAP Account), so make sure that's set up for whichever company you're posting against.</li>
</ol>
<div class="tip"><b>Tip:</b> The document <b>Series</b> shown at the top-right of the page (e.g. "IC2627") is set once by your admin under System Settings — you don't choose it per transfer.</div>
</div>
</details>
<details class="sec" id="workorder">
<summary><span class="sec-ico">📋</span> 4. Work Order <span class="chev">›</span></summary>
<summary><span class="sec-ico">📋</span> 5. Work Order <span class="chev">›</span></summary>
<div class="sec-bd">
<p class="lead">A Work Order records the batch's product, raw materials and packing materials, and passes through a QA/Production sign-off chain before it's fully approved.</p>
<div class="flow"><span class="step">Prepared By QA</span><span class="arrow">→</span><span class="step">Checked By Store In-Charge</span><span class="arrow">→</span><span class="step">Checked By Mgr. Production</span><span class="arrow">→</span><span class="step badge b-green">Approved By Mgr. QA</span></div>
@@ -157,6 +186,9 @@ ol.steps b{color:var(--text)}
<div class="tip"><b>Round Up / Exact:</b> each Packing/Component Qty Req. row has its own toggle pill — some items should round up to the next whole unit, others shouldn't, and this is set per row rather than one plant-wide setting.</div>
<div class="tip"><b>Intimation No. vs. Reference:</b> a Work Order's card/detail shows both — <b>Intimation No.</b> is the actual linked Batch Intimation (always accurate, can't be hand-edited), while <b>Reference</b> is a free-text field anyone can type over (e.g. a customer/PO reference) — don't assume Reference always matches the Intimation it was generated from.</div>
<div class="tip"><b>Search &amp; filters:</b> the Work Order list has a search box (WO No., product, batch, reference) and All/Pending/Approved/Rejected filter chips, with pagination once the list gets long.</div>
<div class="tip"><b>Reject &amp; resubmit:</b> a rejected Work Order isn't a dead end — open it, edit whatever needed correcting (including its Batch No., if it's still tied to a Batch Issuance whose linked Work Order was rejected), and saving it both applies your changes and restarts the full approval chain from step 1.</div>
<div class="tip"><b>Send to QA</b> (if granted): a fully approved Work Order can be recalled back to QA for editing — same effect as a rejection, restarting the full chain — via the <b>Send to QA</b> button on its detail page. This normally needs an admin, unless you've been specifically granted the <code>work_order:send_to_qa</code> approval step.</div>
<div class="tip"><b>Item Group visibility (if restricted):</b> if you're restricted to certain Item Groups (Admin → Issue Items), the Work Order list only shows orders whose product is in your allowed groups.</div>
</div>
</details>
@@ -171,6 +203,7 @@ ol.steps b{color:var(--text)}
<div class="warn"><b>Note:</b> Once a Work Order has been generated from a batch, that Intimation locks — Edit and Delete are disabled (editing afterward could desync from a Work Order that already copied its data), and that same (item, batch) can't be used to generate a second Work Order.</div>
<div class="tip"><b>Tip:</b> If your admin has turned on the SFG Workflow, a second <b>Without Intimation</b> tab appears — search and add items directly with no Requirement needed at all. It's restricted to items whose SAP Item Group is tagged <b>Without Intimation</b> in Item Group Rules (Admin). You can also set a <b>Batch Size (Ltr)</b> here — it's fetched automatically into the Work Order's Solution Batch Size when generated from this batch.</div>
<div class="tip"><b>Multiple Solutions per batch (if enabled):</b> for a product whose BOM has more than one Solution, a single Batch Volume field isn't enough — click <b>+ Solutions</b> to open a modal that auto-detects every Solution in the product's own SAP BOM and lets you enter each one's Volume (Ltr) separately. These carry through exactly into the Work Order's per-Solution Batch Size, instead of one number being applied to every Solution.</div>
<div class="tip"><b>Batch No. Required (if enabled):</b> if your admin has turned this on, every batch line needs a Batch No./Mfg/Exp filled in before you can save, and it's checked for uniqueness against both other intimations in the portal and SAP's own batch records — a duplicate is rejected with a clear message instead of silently causing a clash later.</div>
</div>
</details>
@@ -214,26 +247,42 @@ ol.steps b{color:var(--text)}
<li>Go to <b>Receipt</b> to receive the finished quantity into stock (section 10).</li>
<li>Once fully received, <b>Transfer to Finished Goods</b> then <b>Close</b> the order.</li>
<li>Open any order's detail to see the <b>QA — Approved vs Issued</b> comparison: BOM Planned vs Work Order Approved vs actually Issued, with mismatches highlighted. A component with no entry in the Work Order at all is flagged <b>NOT IN WORK ORDER</b>, and one that also isn't a real ingredient anywhere in the item's BOM is flagged <b>NOT IN BOM</b> too — so QA can catch anything added directly on the Production Order before releasing/closing. (Solution containers, e.g. a chemical solution that's approved via its own raw ingredients, are exempt from this flag — that's expected, not an error.)</li>
<li><b>Raise Deviation</b> — once an order has completed Issuance, you can raise a <b>Shortage</b> (extra quantity needed), <b>Substitution</b> (replace one item with another) or <b>Damage/Loss</b> deviation with a reason. Any SAP write-off for a Damage/Loss deviation posts automatically — there's no separate checkbox to trigger it. If your admin requires QA approval, the deviation sits <b>Pending</b> until QA approves or rejects it; approving applies the change to the Production Order, rejecting reverses anything it already did. Whoever raised it and whoever holds the Deviation approval step both get an email at every stage — raised, approved, and rejected.</li>
<li><b>Raise Deviation</b> — once an order has completed Issuance, you can raise a <b>Shortage</b> (extra quantity of the same item needed), <b>Substitution</b> (replace one component with another), <b>Damage/Loss</b> (write off a damaged quantity) or <b>Addition</b> (add a genuinely new item that was never on the order at all) with a reason. Any SAP write-off for a Damage/Loss deviation posts automatically — there's no separate checkbox to trigger it. If your admin requires QA approval, the deviation sits <b>Pending</b> until QA approves or rejects it; approving applies the change to the Production Order, rejecting reverses anything it already did. Whoever raised it and whoever holds the Deviation approval step both get an email at every stage — raised, approved, and rejected. See the <b>Deviations</b> section next for a single list of every deviation across every order.</li>
<li><b>Cancel Order</b> (if granted) — bypasses all normal Close checks to cancel an order outright. This is irreversible and only available to admins or whoever's been specifically granted the Cancel approval step.</li>
</ol>
<div class="warn"><b>Optional — Pre-PWO Store Review:</b> if your admin has turned this on, creating from a Work Order no longer writes to SAP straight away. It first stages a <b>Pre-PWO</b> in the portal (same components table, editable, nothing sent to SAP yet) — find it under the new <b>Pre-PWO</b> tab. You must <b>Share it with Store</b>, who can adjust quantities or add/remove/substitute components outright, then revert it back to you. This is a <b>hard gate</b>: the order cannot be pushed to SAP until Store has completed that review — there's no way to skip ahead. Once pushed, the Pre-PWO locks and the normal Release → Issuance → Receipt → Transfer to FG → Close sequence above continues as usual.</div>
<div class="tip"><b>Manual Entry item restriction (if set):</b> an admin can limit which SAP Item Groups you're allowed to originate a Manual Entry Production Order for (Admin → user → <b>Manual PWO Item Groups</b>) — separate from the Issue Items restriction. If it's set, the Product No. search only shows items in your permitted groups, and the server independently re-checks on submit either way. No restriction set = you can create for any item, as before.</div>
<div class="tip"><b>Warehouse per component:</b> each row in the Components table has its own Warehouse dropdown (both a regular Production Order and a Consumable Order) — set it per component, not once for the whole order, since different components can come from different warehouses.</div>
<div class="tip"><b>Item Group visibility (if restricted):</b> if you're restricted to certain Item Groups (Admin → Issue Items), the Production Order list only shows orders whose main product is in your allowed groups — same restriction that already applied to issuing, now applied to what you can even see in the list.</div>
</div>
</details>
<details class="sec" id="deviations">
<summary><span class="sec-ico">⚠️</span> 10. Deviations <span class="chev">›</span></summary>
<div class="sec-bd">
<p class="lead">A single list of every Shortage/Substitution/Damage/Addition raised across every Production Order — instead of hunting through each order individually.</p>
<ol class="steps">
<li>Open <b>Deviations</b> and filter by Company, Type or QA Status, or search by PWO #, item, raised-by or reason.</li>
<li>Click <b>Open PWO ›</b> on any row to jump straight to that order's detail, where you can approve/reject it if you hold the Deviation approval step (see Production Order → Raise Deviation above).</li>
</ol>
<div class="tip"><b>Tip:</b> This is its own module — ask your admin to grant it if you don't see it in the sidebar yet.</div>
</div>
</details>
<details class="sec" id="issue">
<summary><span class="sec-ico">📤</span> 9. Issue for Production <span class="chev">›</span></summary>
<summary><span class="sec-ico">📤</span> 11. Issue for Production <span class="chev">›</span></summary>
<div class="sec-bd">
<p class="lead">You don't have to issue every component at once — pick exactly what you're issuing today.</p>
<ol class="steps">
<li>Open <b>Issue</b>, pick a Released order from the grid (search by item, description or document/order number if needed).</li>
<li>Each component shows as a card with a <b>checkbox</b> (checked by default), the quantity to issue, warehouse and any batches. <b>Uncheck</b> any item you don't want to issue right now — its inputs grey out.</li>
<li>Each component shows as a card with a <b>checkbox</b> (checked by default), the quantity to issue, warehouse, an <b>Available</b> on-hand figure (red if short of what's needed) and any batches. <b>Uncheck</b> any item you don't want to issue right now — its inputs grey out.</li>
<li>Use <b>✕ Remove</b> to take an item out of the list entirely for this session (a "Restore" option appears if you remove one by mistake). This doesn't affect SAP — it just declutters your current screen.</li>
<li>Use <b>Select all / Clear all</b> at the top of the list for quick bulk changes, and check the running "<b>X of Y selected · Qty to issue Z</b>" summary before posting.</li>
<li>Adjust quantities/warehouse/batches as needed, then click <b>Issue to Production</b>. Only the checked items with a quantity are posted to SAP.</li>
<li>Adjust quantities/warehouse/batches as needed. Add an optional <b>Remarks</b> note for the whole Issue document — it's saved as the document's Comments in SAP, not just kept in the portal.</li>
<li>Click <b>Issue to Production</b>. Only the checked items with a quantity are posted to SAP.</li>
<li>Items already fully issued show a <span class="badge b-green">✓ Fully Issued</span> badge and can't be changed.</li>
</ol>
<div class="tip"><b>Tip:</b> If you're restricted to certain Item Groups (Admin → Issue Items), items outside your allowed groups simply won't appear.</div>
<div class="tip"><b>Tip:</b> If you're restricted to certain Item Groups (Admin → Issue Items), items outside your allowed groups simply won't appear — and orders whose main product is outside your allowed groups won't be pickable at all.</div>
</div>
</details>
@@ -247,6 +296,7 @@ ol.steps b{color:var(--text)}
<li>Submit to post the receipt into SAP.</li>
<li>Check <b>Receipts History</b> any time to see everything received against an order.</li>
</ol>
<div class="warn"><b>Note:</b> If any component is set to auto-consume (Backflush) on this order, the page warns you up front if its warehouse doesn't have enough stock to cover the receipt — before you submit, not as a confusing SAP error afterward. It's informational only; you can still try to post if you believe it's fine.</div>
</div>
</details>
@@ -311,7 +361,7 @@ ol.steps b{color:var(--text)}
<ol class="steps">
<li>Open <b>OEE</b> and pick the form for your area (EBB Production, Plastic Sheet Plant, Moulding, Autoclave, etc. — forms not yet set up show as "Coming soon").</li>
<li>Click <b>+ New Entry</b>, pick the month, then <b>+ Add Shift</b> for each shift you want to log.</li>
<li>Fill in the downtime/output fields for that shift — Availability, Performance, Quality and the overall <b>OEE %</b> calculate live as you type.</li>
<li>Fill in the downtime/output fields for that shift — Availability, Performance, Quality and the overall <b>OEE %</b> calculate live as you type. Each shift also has its own <b>Remarks</b> field for a free-text note.</li>
<li>Save the shift, then save the whole entry once all shifts for the month are in.</li>
</ol>
</div>
@@ -492,11 +542,14 @@ document.getElementById('btn-logout').onclick=()=>{sessionStorage.clear();docume
start: {always:true},
bom: {modules:['bom']},
items: {modules:['items']},
invreports: {modules:['inventory-status-report','inventory-posting-list','batch-no-transaction']},
invtransfer:{modules:['inventory-transfer']},
workorder: {modules:['production-work-order']},
batchissue: {modules:['production-batch-issuance']},
requirements:{modules:['production-requirements']},
planning: {modules:['production-planning']},
prodorder: {modules:['production-create']},
deviations: {modules:['production-deviations']},
issue: {modules:['production-issue']},
receipt: {modules:['production-receipt']},
verifyprod: {modules:['production-verify']},
@@ -571,6 +624,6 @@ function syncToc(){
window.addEventListener('scroll',syncToc,{passive:true});
syncToc();
</script>
<script src="/sidebar.js?v=25"></script>
<script src="/sidebar.js?v=31"></script>
</body>
</html>