Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,20 @@
# wms
WMS for small business

WMS for small business.

## Extensão Edge: Registro de Portaria

A pasta `edge-extension/` contém uma extensão (Manifest V3) para Microsoft Edge com a tela de **Registro de Portaria**.

### Como instalar localmente no Edge

1. Abra `edge://extensions`.
2. Ative o **Modo de desenvolvedor**.
3. Clique em **Carregar sem compactação**.
4. Selecione a pasta `edge-extension` deste repositório.

### O que a extensão faz

- Exibe o formulário base de portaria em popup.
- Botão **Preencher do PDF** insere os dados informados (incluindo `DT: 23258415` em observações).
- Salva rascunho no `chrome.storage.local` automaticamente.
13 changes: 13 additions & 0 deletions edge-extension/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"manifest_version": 3,
"name": "WMS Registro de Portaria",
"version": "1.0.0",
"description": "Extensão para Edge com formulário de Registro de Portaria.",
"action": {
"default_title": "Registro de Portaria",
"default_popup": "popup.html"
},
"permissions": [
"storage"
]
}
28 changes: 28 additions & 0 deletions edge-extension/popup.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
body{
margin:0;
padding:12px;
background:#f8fafc;
min-width:520px;
font-family:Inter,Arial,sans-serif;
}
.portaria-container{
background:#fff;
border-radius:18px;
padding:20px;
box-shadow:0 10px 30px rgba(0,0,0,.08);
}
.portaria-header{ margin-bottom:18px; }
.portaria-header h1{ margin:0; font-size:22px; color:#0f172a; }
.portaria-header p{ margin-top:6px; color:#64748b; font-size:12px; }
.portaria-form{ display:flex; flex-direction:column; gap:14px; }
.form-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.form-group{ display:flex; flex-direction:column; gap:6px; }
.form-group label{ font-weight:700; color:#334155; font-size:13px; }
.form-group input,.form-group select,.form-group textarea{
border:1px solid #cbd5e1; border-radius:10px; padding:10px 12px; font-size:13px;
}
.form-actions{ display:flex; gap:8px; }
.btn-primary,.btn-secondary{ border:none; border-radius:10px; padding:10px 14px; font-weight:700; cursor:pointer; }
.btn-primary{ background:#2563eb; color:#fff; }
.btn-secondary{ background:#e2e8f0; color:#0f172a; }
#status{ margin:0; font-size:12px; color:#2563eb; min-height:14px; }
71 changes: 71 additions & 0 deletions edge-extension/popup.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Registro de Portaria</title>
<link rel="stylesheet" href="popup.css" />
</head>
<body>
<div class="portaria-container">
<div class="portaria-header">
<h1>Registro de Portaria</h1>
<p>Extensão Edge • Controle de entrada e saída</p>
</div>

<form class="portaria-form" id="portariaForm">
<div class="form-group">
<label>Transportadora</label>
<input type="text" name="transportadora" placeholder="Digite conforme documento" />
</div>

<div class="form-group">
<label>Nome do Motorista</label>
<input type="text" name="motorista" />
</div>

<div class="form-grid">
<div class="form-group">
<label>Placa</label>
<input type="text" name="placa1" />
</div>

<div class="form-group">
<label>Placa 2</label>
<input type="text" name="placa2" />
</div>

<div class="form-group">
<label>Placa 3</label>
<input type="text" name="placa3" />
</div>
</div>

<div class="form-group">
<label>Tipo de Veículo</label>
<select name="tipo_veiculo">
<option value="">Selecione...</option>
<option>TRUCK BAU</option>
<option>TRUCK BAU 76 m³</option>
<option>TRUCK SIDER</option>
<option>CARRETA</option>
<option>BITREM</option>
</select>
</div>

<div class="form-group">
<label>Observações</label>
<textarea name="observacoes" rows="5"></textarea>
</div>

<div class="form-actions">
<button type="button" class="btn-primary" id="fillPdf">Preencher do PDF</button>
<button type="reset" class="btn-secondary">Limpar</button>
</div>
<p id="status"></p>
</form>
</div>

<script src="popup.js"></script>
</body>
</html>
50 changes: 50 additions & 0 deletions edge-extension/popup.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
const PDF_DATA = {
transportadora: 'JOALERIA TRANSPORTES',
motorista: 'VAGNER RODRIGUES DOS SANTOS',
placa1: 'EZU-4743',
placa2: 'EOE-9685',
placa3: '',
tipo_veiculo: 'CARRETA',
observacoes: [
'DT: 23258415',
'Número: 052025',
'Operação: CARGA',
'Condômino/Cliente: SUZANO PAPEL E CELULOSE',
'Data Entrada/Início: 19/05/2026 19:58:00',
'CPF: 301863388/13',
'Contato: (11)91055-6767',
'Responsável/Porteiro: MARCOS',
'RG: 41.823.143-X'
].join('\n')
}

const form = document.getElementById('portariaForm')
const status = document.getElementById('status')

function fillFromPdf() {
Object.entries(PDF_DATA).forEach(([key, value]) => {
const field = form.elements.namedItem(key)
if (field) field.value = value
})
status.textContent = 'Dados do PDF preenchidos.'
chrome.storage.local.set({ portariaDraft: PDF_DATA })
}

document.getElementById('fillPdf').addEventListener('click', fillFromPdf)

chrome.storage.local.get(['portariaDraft'], (result) => {
if (!result.portariaDraft) return
Object.entries(result.portariaDraft).forEach(([key, value]) => {
const field = form.elements.namedItem(key)
if (field) field.value = value
})
status.textContent = 'Rascunho restaurado.'
})

form.addEventListener('input', () => {
const draft = {}
;['transportadora', 'motorista', 'placa1', 'placa2', 'placa3', 'tipo_veiculo', 'observacoes'].forEach((name) => {
draft[name] = form.elements.namedItem(name).value
})
chrome.storage.local.set({ portariaDraft: draft })
})
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ <h1>📦 WMS</h1>
<a href="conferencia.html">Cadastro / Atualização</a>
<a href="expedicao.html">Expedição</a>
<a href="consukta.html">Consulta de Estoque</a>
<a href="portaria.html">Registro de Portaria</a>

<div class="desc">
Sistema simples para controle de áreas, SKUs e pallets
Expand Down
144 changes: 144 additions & 0 deletions portaria.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Registro de Portaria</title>
<style>
.portaria-container{
max-width:900px;
margin:40px auto;
background:#fff;
border-radius:18px;
padding:32px;
box-shadow:0 10px 30px rgba(0,0,0,.08);
font-family:Inter,sans-serif;
}

.portaria-header{ margin-bottom:28px; }
.portaria-header h1{ margin:0; font-size:28px; color:#0f172a; }
.portaria-header p{ margin-top:6px; color:#64748b; }

.portaria-form{ display:flex; flex-direction:column; gap:20px; }

.form-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }

.form-group{ display:flex; flex-direction:column; gap:8px; }

.form-group label{ font-weight:700; color:#334155; }

.form-group input,
.form-group select,
.form-group textarea{
border:1px solid #cbd5e1;
border-radius:12px;
padding:12px 14px;
font-size:14px;
outline:none;
transition:.2s;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
border-color:#2563eb;
box-shadow:0 0 0 4px rgba(37,99,235,.1);
}

.form-actions{ display:flex; gap:12px; margin-top:10px; }

.btn-primary{
background:#2563eb;
color:#fff;
border:none;
border-radius:12px;
padding:12px 22px;
font-weight:700;
cursor:pointer;
}

.btn-secondary{
background:#e2e8f0;
color:#0f172a;
border:none;
border-radius:12px;
padding:12px 22px;
font-weight:700;
cursor:pointer;
}

@media(max-width:768px){
.form-grid{ grid-template-columns:1fr; }
.portaria-container{ padding:20px; }
}
</style>
</head>
<body style="background:#f8fafc; margin:0; padding:20px;">
<div class="portaria-container">
<div class="portaria-header">
<h1>Registro de Portaria</h1>
<p>Controle de entrada e saída de veículos</p>
</div>

<form class="portaria-form">
<div class="form-group">
<label>Transportadora</label>
<input type="text" name="transportadora" value="JOALERIA TRANSPORTES" placeholder="Digite conforme documento">
</div>

<div class="form-group">
<label>Nome do Motorista</label>
<input type="text" name="motorista" value="VAGNER RODRIGUES DOS SANTOS">
</div>

<div class="form-grid">
<div class="form-group">
<label>Placa</label>
<input type="text" name="placa1" value="EZU-4743">
</div>

<div class="form-group">
<label>Placa 2</label>
<input type="text" name="placa2" value="EOE-9685">
</div>

<div class="form-group">
<label>Placa 3</label>
<input type="text" name="placa3" value="">
</div>
</div>

<div class="form-group">
<label>Tipo de Veículo</label>
<select name="tipo_veiculo">
<option value="">Selecione...</option>
<option>TRUCK BAU</option>
<option>TRUCK BAU 76 m³</option>
<option>TRUCK SIDER</option>
<option>CARRETA</option>
<option selected>CARRETA BAU</option>
<option>BITREM</option>
</select>
</div>

<div class="form-group">
<label>Observações</label>
<textarea name="observacoes" rows="6">DT: 23258415
Número: 052025
Operação: CARGA
Condômino/Cliente: SUZANO PAPEL E CELULOSE
Data Entrada/Início: 19/05/2026 19:58:00
CPF: 301863388/13
Contato: (11)91055-6767
Responsável/Porteiro: MARCOS
RG: 41.823.143-X</textarea>
</div>

<div class="form-actions">
<button type="submit" class="btn-primary">Registrar Entrada</button>
<button type="reset" class="btn-secondary">Limpar</button>
</div>
</form>
</div>
</body>
</html>