Pular para o conteúdo principal

Professional (Profissional)

O Professional representa um funcionario ou prestador de servico do petshop, com suporte a multiplas funcoes e gestao financeira.

Descricao

Profissionais sao as pessoas que trabalham no petshop: vendedores, tosadores, veterinarios, entregadores. Um profissional pode ter multiplas funcoes simultaneamente e pode ou nao ter acesso ao sistema.

Dados

Informacoes Pessoais

CampoTipoObrigatorioDescricao
nameTextoSimNome completo
cpfTextoNaoCPF do profissional
phoneTextoNaoTelefone de contato
emailTextoCondicionalEmail (obrigatorio se user_access=true)
jobTextoNaoCargo/funcao
start_dateDataNaoData de inicio (padrao: hoje)
end_dateDataNaoData de desligamento

Acesso ao Sistema

CampoTipoObrigatorioDescricao
user_accessBooleanoNaoSe pode acessar o sistema
profileReferenciaCondicionalPerfil de permissoes (obrigatorio se user_access=true)

Funcoes (Multi-funcao)

CampoTipoPadraoDescricao
sellerBooleanofalseE vendedor
doctorBooleanofalseE veterinario
beautyBooleanofalseE tosador/banhista
deliveryBooleanofalseE entregador

Informacoes de Delivery (Condicional)

CampoTipoObrigatorioDescricao
vehicle_typeSelecaoNaoTipo de veiculo (bike, car, motorcycle)
vehicle_plateTextoNaoPlaca do veiculo

Dados de Funcionario (Condicional)

CampoTipoObrigatorioDescricao
employeeBooleanoNaoE funcionario formal
salaryMonetarioNaoSalario bruto
salary_liquidMonetarioSim (se employee)Salario liquido
salary_dayNumeroSim (se employee)Dia do pagamento (1-31)
salary_categoryReferenciaSim (se salary > 0)Categoria financeira do salario
benefitsMonetarioNaoValor de beneficios
benefits_dayNumeroSim (se employee)Dia do pagamento de beneficios
benefits_categoryReferenciaSim (se benefits > 0)Categoria financeira dos beneficios

Comissoes (Condicional)

CampoTipoObrigatorioDescricao
commissionsBooleanoNaoRecebe comissoes
commission_tableReferenciaSim (se commissions)Tabela de comissoes

Dados Financeiros

CampoTipoObrigatorioDescricao
financial_accountReferenciaSim (se employee)Conta para pagamentos
financial_cost_centerReferenciaSim (se employee)Centro de custo

Relacionamentos

Pertence a

EntidadeDescricaoObrigatorio
AccountConta/empresaSim
StoreFilial especificaNao
ProfilePerfil de permissoesCondicional
CommissionTableTabela de comissoesCondicional
FinancialAccountConta para pagamentosCondicional
FinancialCostCenterCentro de custoCondicional
SalaryCategoryCategoria do salarioCondicional
BenefitsCategoryCategoria dos beneficiosCondicional

Possui

EntidadeDescricao
linked_userUsuario vinculado (1:1)
financial_transactionsTransacoes de salario/beneficios

Funcoes do Profissional

Um profissional pode ter multiplas funcoes simultaneamente:

Vendedor (seller)

CaracteristicaDescricao
ModuloPDV
UsoAparece como vendedor nas vendas
ComissaoPode receber comissao por venda

Veterinario (doctor)

CaracteristicaDescricao
ModuloClinical, Beauty Center
UsoAparece em consultas e atendimentos
EspecializacaoAtendimento clinico

Tosador/Banhista (beauty)

CaracteristicaDescricao
ModuloBeauty Center
UsoAparece em agendamentos de estetica
ServicosBanho, tosa, hidratacao, etc.

Entregador (delivery)

CaracteristicaDescricao
ModuloDelivery
UsoAparece em entregas
Dados extrasTipo e placa do veiculo

Regras de Negocio

Acesso ao Sistema

Quando user_access = true:

  1. Email se torna obrigatorio
  2. Profile se torna obrigatorio
  3. Sistema cria/vincula User automaticamente
  4. Email e Profile sao sincronizados

Sincronizacao com User

Se o profissional tem linked_user:

Campo alteradoEfeito
profile_idAtualiza profile do User
emailAtualiza email do User

Validacoes

CampoValidacaoQuando
nameObrigatorioSempre
emailObrigatorio + Unico (Account+Store)user_access = true
profileObrigatoriouser_access = true
salary_liquidObrigatorio + > 0employee = true
salary_dayObrigatorio + 1-31employee = true
benefits_dayObrigatorio + 1-31employee = true
financial_accountObrigatorioemployee = true
financial_cost_centerObrigatorioemployee = true
salary_categoryObrigatorioemployee = true E salary > 0
benefits_categoryObrigatorioemployee = true E benefits > 0
commission_tableObrigatoriocommissions = true
vehicle_typebike, car, motorcycledelivery = true

Dados de Funcionario

Quando employee = true, o profissional e tratado como funcionario formal:

Automacoes

Transacoes de Salario

Quando profissional e salvo com employee = true e salary_liquid > 0:

  1. Cria transacao de salario

    • Nome: "Salario: [nome do profissional]"
    • Tipo: despesa
    • Valor: salary_liquid
    • Frequencia: mensal
    • Dia: salary_day do proximo mes
    • Duracao: 3 anos
  2. Atualiza transacao existente

    • Se ja existe transacao pendente
    • Atualiza valor e data
    • Marca para atualizar proximas

Transacoes de Beneficios

Quando profissional e salvo com employee = true e benefits > 0:

  1. Cria transacao de beneficios

    • Nome: "Beneficios: [nome do profissional]"
    • Tipo: despesa
    • Valor: benefits
    • Frequencia: mensal
    • Dia: benefits_day do proximo mes
    • Duracao: 3 anos
  2. Atualiza transacao existente

    • Mesmo comportamento do salario

Geracao de SHA1

  • Ao criar profissional, gera identificador unico (SHA1)
  • Usado para integracao com sistemas externos de delivery
  • Gerado apenas uma vez (se sha1 estiver vazio)

Sistema de Comissoes

Tabela de Comissoes

Quando commissions = true, o profissional usa uma CommissionTable:

Regras de Comissao

As regras podem ser baseadas em:

CriterioDescricao
FabricanteComissao por fabricante do produto
CategoriaComissao por categoria de estoque
SubcategoriaComissao por subcategoria
TodasComissao geral (fallback)

Condicoes de Comissao

As regras podem ter restricoes:

CondicaoDescricao
Dias da semanaComissao so aplica em certos dias
HorarioComissao so aplica em certas horas

Tipos de Comissao

TipoDescricao
PercentualX% do valor da venda (0-100%)
FixoValor fixo em reais

Visibilidade de Campos

Os campos aparecem condicionalmente:

CampoVisivel quando
profileuser_access = true
vehicle_type, vehicle_platedelivery = true
salary, salary_liquid, salary_day, salary_categoryemployee = true
benefits, benefits_day, benefits_categoryemployee = true
commission_tablecommissions = true
financial_account, financial_cost_centeremployee = true

Organizacao por Abas

Aba "Sobre" (Informacoes)

  • Dados pessoais
  • Funcoes (checkboxes)
  • Acesso ao sistema
  • Dados de delivery

Aba "Financeiro"

  • Status de funcionario
  • Dados de salario
  • Dados de beneficios
  • Comissoes
  • Contas financeiras

Escopos de Busca

EscopoDescricao
deliveryApenas entregadores
doctorApenas veterinarios
beautyApenas tosadores/banhistas
sellerApenas vendedores

Tipos de Veiculo

ValorDescricao
bikeBicicleta
carCarro
motorcycleMotocicleta

Permissoes

AcaoQuem Pode
CriarOwner, usuarios com permissao de RH
EditarOwner, usuarios com permissao de RH
ExcluirOwner, usuarios com permissao de RH
VerOwner, usuarios com permissao de RH
Ativar/DesativarOwner, usuarios com permissao de RH

Restricoes Importantes

  1. Email Unico: Por Account + Store
  2. Um User por Professional: Maximo um User vinculado
  3. Funcionario requer dados completos: salary_liquid, salary_day, contas financeiras
  4. Categoria requer valor: salary_category so obrigatoria se salary > 0
  5. 3 anos de transacoes: Salario e beneficios sao projetados para 3 anos
  6. Transacoes mensais: Recorrencia automatica mensal
  7. Comissao condicional: So aplica se regra e dia/hora corresponderem
  8. Sincronizacao automatica: Email e Profile sincronizam com User vinculado

Exemplos de Uso

Tosador Sem Acesso ao Sistema

name: "Maria Silva"
beauty: true
employee: true
salary_liquid: 2000.00
salary_day: 5
user_access: false

Vendedor com Acesso e Comissao

name: "Joao Santos"
email: "joao@petshop.com"
seller: true
employee: true
salary_liquid: 1800.00
salary_day: 5
commissions: true
commission_table: [tabela de vendas]
user_access: true
profile: [perfil de atendente]

Entregador

name: "Pedro Oliveira"
delivery: true
vehicle_type: motorcycle
vehicle_plate: "ABC-1234"
employee: false
user_access: false

Veterinario com Multiplas Funcoes

name: "Dra. Ana Costa"
email: "ana@petshop.com"
doctor: true
beauty: true
employee: true
salary_liquid: 5000.00
salary_day: 10
user_access: true
profile: [perfil de veterinario]