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
100 changes: 100 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# WMSS - Controle de Estoque por Área

Aplicação web simples (HTML/CSS/JS) para operar com Supabase e gerenciar:

- Cadastro/edição/exclusão de estoque por **área + SKU + tipo**.
- Cadastro de SKUs em `produtos`.
- Consulta de onde cada produto está e totais por SKU em todas as áreas.
- Expedição com baixa de estoque e registro em `movimentacoes`.
- Importação de planilha Excel/CSV para **incluir/atualizar/apagar** posições em lote.
- Exportação em planilha (XLSX) no fim de cada seção.

## Como rodar o front

Abra o `index.html` no navegador **ou** sirva com:

```bash
python3 -m http.server 4173
```

Depois acesse `http://localhost:4173`.

## Importação de planilha (novo)

Na aba **Cadastro** existe uma seção para upload de arquivo (`.xlsx`, `.xls`, `.csv`).

### Colunas esperadas

- `area`
- `sku`
- `tipo`
- `paletes`
- `acao` (opcional)

### Regras

- Se `acao` for `APAGAR`, `EXCLUIR`, `DELETE`, `DEL`, `REMOVER` ou `REMOVE`, a posição é apagada.
- Se `paletes = 0`, também apaga a posição.
- Nos demais casos, faz **incluir/atualizar** via `upsert`.

### Exemplo

| area | sku | tipo | paletes | acao |
|------|-----|------|---------|------|
| B02 | 20104409 | PL2 | 30 | |
| B02 | 30152626 | PBR | 25 | |
| B02 | 30152626 | PBR | 0 | APAGAR |

## Novo SQL do sistema (Supabase)

Foi adicionado o arquivo:

- `supabase/schema_v2.sql`

Esse script cria uma estrutura mais completa com:

- tabela `areas` (cadastro de áreas),
- tabela `tipos_palete`,
- tabela `produtos`,
- tabela `estoque_area` com chaves estrangeiras,
- tabela `movimentacoes` com tipo de operação,
- função `fn_expedir_produto(...)` para baixa segura de estoque,
- views `vw_consulta_estoque` e `vw_totais_sku` para consultas,
- seeds iniciais de tipos (`PL2`, `PBR`, `FARDO`) e áreas exemplo.

### Como aplicar no Supabase SQL Editor

1. Abra o projeto no Supabase.
2. Entre em **SQL Editor**.
3. Cole o conteúdo de `supabase/schema_v2.sql`.
4. Execute o script.

> Observação: o script é idempotente (usa `if not exists` e `on conflict do nothing`) para facilitar reexecução.


## Usando seu schema atual (somente ALTER TABLE)

Como você já tem as tabelas criadas, adicionei um script só com alterações incrementais:

- `supabase/alter_tables_from_current_schema.sql`

Esse script **não recria tabelas**. Ele apenas:

- adiciona checks básicos de qualidade de dados,
- cria índices de performance,
- adiciona colunas opcionais em `movimentacoes` (`operacao`, `area`, `observacao`),
- cria a view `vw_totais_sku`.

Pode rodar direto no SQL Editor do Supabase.


## Layout visual do galpão + PDF

Na aba **Cadastro**, clique em **"📦 Visualizar Layout (Cubículos)"** para abrir a planta:

- colunas fixas: `TISSUE | C | B | A | LONIL`,
- leitura automática das áreas no padrão `TISSUE1`, `C1`, `B1`, `A1`, `LONIL1` etc,
- cores por tipo de material (`PL2`, `PBR`, `FARDO`),
- botão para exportar a planta em PDF.

> Se a área não seguir esse padrão, ela continua aparecendo nas tabelas normais de estoque, mas não entra na planta fixa.
Loading