Clique em qualquer ponto da linha para abrir e editar o pedido.
NOVO ORÇAMENTO
Quanto cobrar?
Informe cliente, peças e custos. O preço é calculado na hora.
1Cliente e proposta
2Peças e materiais
2BInsumos e processos
Use aqui itens como fita de cetim, folhas, cola, montagem, prensagem, impressão, acabamento ou qualquer material/processo cadastrado em Custos.
3Custos adicionais
ORÇAMENTOS
Propostas comerciais
Gere o PDF, acompanhe a aprovação e transforme a proposta em pedido.
Nenhuma proposta comercial salva.
BASE DE CUSTOS
Configurações
Os valores ficam salvos neste aparelho e, quando a nuvem estiver conectada, são sincronizados com os outros dispositivos.
A alteração recalcula imediatamente os novos orçamentos.
Materiais por chapa
Outros materiais / insumos
Ex.: fita de cetim por metro, folha de impressão por unidade, cola por ml, medalha metálica por unidade.
Processos
Ex.: montagem por minuto, prensagem por unidade, impressão por folha, instalação por hora.
SAÍDAS
Compras & despesas
Registre tudo que foi comprado ou pago pelo Ateliê.
Nenhuma compra ou despesa cadastrada.
FECHAMENTO
Resultado por período
Compare faturamento, recebimentos e gastos no intervalo escolhido.
FaturadoR$ 0,00
RecebidoR$ 0,00
A receberR$ 0,00
Compras / despesasR$ 0,00
Resultado brutoR$ 0,00
Resumo
Faturamento por pedido
Gastos por categoria
V5.6 ADMINISTRAÇÃO
Usuários e permissões
O administrador autoriza quem pode acessar o CRM e define quais áreas cada pessoa pode usar.
Meu acesso
Usuário—
Perfil—
Status—
Autorizar / editar pessoa
A pessoa autorizada cria a própria senha em “Nuvem → Criar meu usuário”. O administrador nunca precisa saber a senha dela.
Pessoas autorizadas
Carregando…
V5.6 USUÁRIOS + PERMISSÕES
Nuvem do Ateliê
Conecte o CRM a um banco Supabase para usar os mesmos dados no Dell, iPhone e outros aparelhos.
1. Conexão com o Supabase
2. Sincronização
StatusAinda não conectado.
Última sincronização—
Última atualização na nuvem—
Dispositivo—
A V5.6 continua funcionando offline. Quando a conexão volta, as alterações locais são enviadas automaticamente. Para evitar conflito, não edite o mesmo pedido simultaneamente em dois aparelhos.
3. Primeira configuração do banco
Execute este SQL uma única vez no Supabase para ativar o compartilhamento e o controle de acesso da V5.6. O primeiro usuário que entrar após a migração torna-se Administrador; depois ele autoriza os demais pela aba Usuários.
create table if not exists public.crm_state (
id text primary key,
owner uuid default auth.uid(),
data jsonb not null default '{}'::jsonb,
device text,
updated_at timestamptz not null default now()
);
create table if not exists public.crm_access (
email text primary key,
display_name text not null default '',
role text not null default 'consulta',
permissions jsonb not null default '{}'::jsonb,
active boolean not null default true,
created_at timestamptz not null default now(),
updated_at timestamptz not null default now()
);
alter table public.crm_state enable row level security;
alter table public.crm_access enable row level security;
create or replace function public.crm_access_empty() returns boolean
language sql stable security definer set search_path=public as $$
select not exists(select 1 from public.crm_access);
$$;
create or replace function public.crm_is_active() returns boolean
language sql stable security definer set search_path=public as $$
select exists(select 1 from public.crm_access a where lower(a.email)=lower(auth.jwt()->>'email') and a.active);
$$;
create or replace function public.crm_is_admin() returns boolean
language sql stable security definer set search_path=public as $$
select exists(select 1 from public.crm_access a where lower(a.email)=lower(auth.jwt()->>'email') and a.active and a.role='admin');
$$;
drop policy if exists "crm_select_own" on public.crm_state;
drop policy if exists "crm_insert_own" on public.crm_state;
drop policy if exists "crm_update_own" on public.crm_state;
drop policy if exists "crm_state_shared_select" on public.crm_state;
drop policy if exists "crm_state_shared_insert" on public.crm_state;
drop policy if exists "crm_state_shared_update" on public.crm_state;
create policy "crm_state_shared_select" on public.crm_state for select using (public.crm_is_active());
create policy "crm_state_shared_insert" on public.crm_state for insert with check (public.crm_is_active());
create policy "crm_state_shared_update" on public.crm_state for update using (public.crm_is_active()) with check (public.crm_is_active());
drop policy if exists "crm_access_select" on public.crm_access;
drop policy if exists "crm_access_insert" on public.crm_access;
drop policy if exists "crm_access_update" on public.crm_access;
drop policy if exists "crm_access_delete" on public.crm_access;
create policy "crm_access_select" on public.crm_access for select using (lower(email)=lower(auth.jwt()->>'email') or public.crm_is_admin());
create policy "crm_access_insert" on public.crm_access for insert with check (public.crm_is_admin() or (public.crm_access_empty() and lower(email)=lower(auth.jwt()->>'email')));
create policy "crm_access_update" on public.crm_access for update using (public.crm_is_admin()) with check (public.crm_is_admin());
create policy "crm_access_delete" on public.crm_access for delete using (public.crm_is_admin());
Novo cliente / pedido
Cliente
Produtos do pedido
Total do pedido:R$ 0,00
Pedido / produção
Financeiro
Nova compra / despesa
Dados da compra
Itens desta compra
Cadastre quantos materiais ou insumos vierem do mesmo fornecedor. Cada item possui sua própria categoria.