Sanitation Inventory Control Center

Inventory • Chemical Supplies • PPE • Replenishment • Issue History

Imported from Sanitation Inventory 2026. Data is stored in this browser only; for shared live inventory across devices, connect a central database. Back up regularly. Historical orders and issue records are imported separately from current stock and will not be deducted again.

Live Inventory Connection

Not connected. Inventory is in local preview mode; changes are not shared.

Current Inventory

PhotoItemSKU / SizeCategorySupplierAvailableMinimumStatusAction
');w.document.close();w.focus();setTimeout(()=>w.print(),300)} function exportRequisitionXLSX(){let groups=reqGroups();if(!Object.keys(groups).length)return alert('No out-of-stock items to requisition.');if(typeof XLSX==='undefined'){alert('Excel export library could not load. Check your internet connection, or use Print / Save PDF.');return}let wb=XLSX.utils.book_new(),idx=0;for(let [vendor,items] of Object.entries(groups)){let rows=[['PURCHASE REQUISITION'],['Is this a replacement to an existing item?','No - routine inventory replenishment'],['Reason for purchase',$('reqReason').value],['VENDOR:',vendor],['REQUISITIONER:',$('reqBy').value,'DATE:',reqDate()],['DEPARTMENT:',$('reqDept').value,'GL CODE:',$('reqGL').value],[],['VENDOR # / DESCRIPTION','','ITEM','DESCRIPTION','ORDER QTY','UNIT COST','','TOTAL COST'],...items.map(i=>[vendor,'',i.sku||i.name,i.description,i.qty,i.cost,'',i.qty*i.cost]),[],['NOTES:',$('reqNotes').value,'','','','','TOTAL',items.reduce((a,i)=>a+i.qty*i.cost,0)]];let ws=XLSX.utils.aoa_to_sheet(rows);ws['!cols']=[{wch:24},{wch:20},{wch:25},{wch:62},{wch:13},{wch:14},{wch:4},{wch:18}];ws['!merges']=[{s:{r:0,c:0},e:{r:0,c:7}}];for(let r=8;r<8+items.length;r++){for(let c of [5,7]){let cell=ws[XLSX.utils.encode_cell({r,c})];if(cell)cell.z='$#,##0.00'}}let sheetName=(vendor.replace(/[\\/?*\[\]:]/g,' ').slice(0,24)||'Vendor')+' '+(++idx);XLSX.utils.book_append_sheet(wb,ws,sheetName)}XLSX.writeFile(wb,'Sanitation_Out_of_Stock_Requisition_'+new Date().toISOString().slice(0,10)+'.xlsx')}

Product picture

No product picture yet

Local preview: photos are saved in this browser only until Supabase is connected.