MateriaaliHallinta

0
NimikettÀ
0
VÀhissÀ
0
Loppu
📋 Pohja

Skannaa viivakoodi

đŸ“·
Napauta avataksesi kamera
Ota kuva viivakoodista — tunnistus automaattinen

Manuaalinen vastaanotto

Inventointi — korjaa saldo

Skannaa tai hae nimike ja aseta todellinen saldo inventoinnin perusteella.

Varastosta kerÀys
Skannaa viivakoodi tai valitse nimike
SisÀiset pyynnöt
Tuotanto tilaa — trukkikuski toimittaa
Historia
Tuotanto
Kaikki kategoriat

Tuotanto — Ovitehdas

Viikkokuorma vaikuttaa materiaalin kulutukseen. Aseta normaali vaihteluvÀli.

Kausikerroin kuukausittain

1.00 = normaali. Talvikuukaudet tyypillisesti ~0.90, kesĂ€kuukaudet ~1.05–1.10. Kertoimen muutos vaikuttaa kulutusennusteisiin.

Inventaarion tuonti

Lataa inventaarioraportti jĂ€rjestelmĂ€stĂ€. Sovellus lukee automaattisesti vain ne nimikkeet jotka on jo tallennettu — muut ohitetaan. TĂ€smĂ€ytys toimii nimellĂ€ tai viivakoodilla.
Sarakkeiden nimet ExcelissÀ
Sovellus tunnistaa automaattisesti yleisimmÀt nimet. Voit myös mÀÀrittÀÀ itse:
Nimike-sarake
Koodi-sarake
MÀÀrÀ-sarake

Kulutusdata ExcelistÀ

Tuo kulutusdata jÀrjestelmÀstÀ. Sovellus laskee automaattisesti:
‱ Viikko- ja pĂ€ivĂ€kulutuksen keskiarvot
‱ Kausikorjatut kulutukset
‱ Kulutus per ovi
‱ HĂ€lytysrajaehdotukset

Vie Exceliin

Pilvisynkronointi

đŸ”„ Firebase — Reaaliaikainen synkronointi
Asetukset (5 min, kerran):
1. Mene → console.firebase.google.com
2. Luo uusi projekti (ilmainen, ei luottokorttia)
3. Valikosta: Build → Realtime Database
4. Luo tietokanta → valitse "Start in test mode"
5. Kopioi URL: https://projekti-xxx-rtdb.firebaseio.com

TuotantojÀrjestelmÀ-integraatio

YhdistĂ€ tehtaan ERP:iin tai tuotannonohjausjĂ€rjestelmÀÀn — kulutustiedot pĂ€ivittyvĂ€t automaattisesti viikkokulutukseksi.
Kartoita ERP:n kenttien nimet — barcode = nimikkeen tunniste, consumption = viikkokulutus
Tavoite
MateriaaliHallinta-sovellus hakee viikkokulutustiedot tehtaan SQL-tietokannasta automaattisesti. Selain ei voi ottaa suoraa SQL-yhteyttÀ, joten tarvitaan vÀlityspalvelin (REST API).
Arkkitehtuuri
SQL-tietokanta → VĂ€lityspalvelin (API) → Selain (tĂ€mĂ€ sovellus)
MitÀ API:n pitÀÀ palauttaa
GET /api/consumption → JSON-array:
[ { "barcode": "4006209047117", "weekly_qty": 45.5 }, { "barcode": "6418677003003", "weekly_qty": 12.0 }, { "item_code": "NIM-001", "consumption": 8.0 } ]
Kenttien nimet voivat olla mitĂ€ tahansa — ne kartoitetaan yllĂ€ olevaan kenttĂ€kartoitus-kenttÀÀn.
Esim: {"barcode":"item_code","consumption":"weekly_qty"}
Node.js esimerkki (Express)
const express = require('express'); const sql = require('mssql'); // tai mysql2, pg jne. const app = express(); // CORS — salli tĂ€mĂ€ sovellus app.use((req,res,next) => { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); next(); }); // API-avain tarkistus app.use((req,res,next) => { const key = req.headers['authorization']; if (key !== 'Bearer OMAN_AVAIMEN_TÄHÄN') { return res.status(401).json({error:'Unauthorized'}); } next(); }); // Kulutusdata — muokkaa SQL kyselyĂ€ tarpeen mukaan app.get('/api/consumption', async (req,res) => { try { await sql.connect(process.env.DB_CONNECTION); const result = await sql.query(` SELECT item_barcode AS barcode, SUM(quantity) / 4.0 AS weekly_qty FROM consumption_log WHERE date >= DATEADD(week, -4, GETDATE()) GROUP BY item_barcode `); res.json(result.recordset); } catch(e) { res.status(500).json({error: e.message}); } }); app.listen(3000);
Python esimerkki (Flask)
from flask import Flask, jsonify, request from flask_cors import CORS import pyodbc # tai psycopg2, mysql.connector app = Flask(__name__) CORS(app) API_KEY = 'OMAN_AVAIMEN_TÄHÄN' @app.route('/api/consumption') def consumption(): if request.headers.get('Authorization') != f'Bearer {API_KEY}': return jsonify({'error':'Unauthorized'}), 401 conn = pyodbc.connect('DSN=TEHDAS_DB') cursor = conn.cursor() cursor.execute(""" SELECT item_barcode, SUM(qty)/4.0 as weekly_qty FROM kulutus_loki WHERE pvm >= DATEADD(week,-4,GETDATE()) GROUP BY item_barcode """) rows = [{'barcode':r[0],'weekly_qty':float(r[1])} for r in cursor.fetchall()] return jsonify(rows) if __name__ == '__main__': app.run(port=3000)
Muistilista koodarille
✓ CORS-otsikot pakollisia (selain hylkÀÀ ilman niitĂ€)
✓ API-avain suojaa endpointin — vaihda oletusarvo
✓ Palvelin voi ajaa tehtaan omalla koneella tai pilvessĂ€ (Railway, Render, Azure jne.)
✓ HTTPS tarvitaan tuotannossa (HTTP toimii vain testissĂ€)
✓ SQL-kyselyssĂ€ laske viikkokulutus: summa / viikkojen mÀÀrĂ€
✓ Nimike tunnistetaan viivakoodilla — varmista ettĂ€ sama koodi on molemmissa jĂ€rjestelmissĂ€
✓ KenttĂ€nimet kartoitetaan sovelluksessa — SQL-taulurakennetta ei tarvitse muuttaa

Sovellus

Tumma teema
ÄÀnimerkit
HĂ€lytykset push-ilmoituksina

Tiedot

NimikkeitÀ: 0
Viimeksi tallennettu: —
Versio: 1.2.0
Tallennus: Paikallinen

Vaara-alue

Tietoja

MateriaalinHallinta v1.0 — Toimii tĂ€ysin selaimessa ilman pilvipalvelua. Kaikki tiedot tallennetaan laitteen muistiin.
📋 Tilaukset
🏱 Toimittajat
⚙ Asetukset
Varastonhallinta
0 tuotetta
📩 Varasto
📝 Viikkotarve
🚚 KerĂ€ilylista

Kategoriat

Varastosaldot

YllÀpidÀ tuotteita ja saldoja. Saldo pienenee automaattisesti kerÀilylistan vahvistuksessa.

Tuote
Saldo
Muokkaa
Poista

Viikon tarve

SyötÀ kuinka monta kutakin tuotetta tarvitaan tÀllÀ viikolla.

Tuote
Saldo
Tarve
JÀljellÀ

KerÀilylista

Luo lista viikon tarpeesta. Vahvistus pÀivittÀÀ saldot ja lataa Excel-tiedoston kategorioittain.

Paina "Luo kerÀilylista" aloittaaksesi.

Aiemmat kerÀilyt