Neste documento será apresentado a regra de negócio relacionada às entidades de ordem de serviço, insumos e etapas, que devem ser aplicadas no sistema Keepfy.
O Campo de 'branch' define o registro de maneira que em todas as entidades JAMAIS deve ser alterado.
-
Abertura
- Campo 'branch' é obrigatório e seu conteúdo deve existir na tabela 'saas.branch'
- Campo 'ordem' obrigatório, devendo ser sequencial e único
- Campo 'equipamento' é obrigatório e possui relacionamento com a tabela 'equipments' devendo existir seu códugo na mesma, ou em caso de ser um UUID deve existir da tabela correspondente com o prefixo de 'generic.'
- Campo 'serviço' é obrigatório e deve possuir o conteúdo 'P00001' ou 'C00001' definindo o tipo da O.S. como preventiva ou corretiva. Caso seja preventiva deve gerar um registro na tabela correspondente à manutenções
'maintenances'
com mesmo equipamento, serviço e sequencia informados na ordem - Campo 'sequencia' da ordem de serviço é obrigatório e deve possuir o conteúdo '0' se corretiva e a sequencia da manutenção criada caso seja preventiva
- Campo 'posição do contador' é obrigatório devendo ser '0' caso o bem não possua controle por contador, ou deve buscar a posição do contador do equipamento de acordo com a data e hora atual do sistema
- Campo 'hora do contador' se preenchido a 'posição do contador' este campo se torna obrigatório, armazenando hora atual do sistema, caso contrário, este campo deve ser vazio
- Campo 'data de manutenção prevista início' é opcional e se preenchida deve respeitar o limite sendo a data de compra do equipamento da ordem de serviço (se preenchida)
- Campo 'hora da manutenção prevista início' é obrigatório se o campo 'data da manutenção prevista início' estiver preenchido, caso contrário deve ser vazio
- Campo 'data da manutenção prevista fim' é obrigatória se 'data da manutenção prevista início' estiver preenchida e deve ser calculada de acordo com os insumos pertencentes à esta ordem de serviço, se a ordem não possuir insumos, deve conter o mesmo conteúdo do campo 'data da manutenção prevista início', caso contrário deve ser vazio
- Campo 'hora da manutenção prevista fim' é obrigatória se 'data da manutenção prevista fim' estiver preenchida e deve ser calculada de acordo com os insumos pertencentes à esta ordem de serviço, se a ordem não possuir insumos, deve conter o mesmo conteúdo do campo 'hora da manutenção prevista início', caso contrário deve ser vazio
- Campo 'data de manutenção realizada início' deve possuir conteúdo como
null
por não possui insumos realizados na abertura de O.S. - Campo 'hora da manutenção realizada início' deve possuir conteúdo
como
null
por não possui insumos realizados na abertura de O.S. - Campo 'data de manutenção realizada fim' deve possuir conteúdo como
null
por não possui insumos realizados na abertura de O.S. - Campo 'hora da manutenção realizada fim' deve possuir conteúdo
como
null
por não possui insumos realizados na abertura de O.S. - Campo 'termino' é obrigatório e deve possuir conteúdo como 'N'
- Campo 'prioridade' é obrigatório e deve possuir conteúdo como '81', '61', '41', '21' ou '0'.
- Campo 'situação' é obrigatório e deve possuir conteúdo como 'L'
- Campo 'observação' é obrigatório e não possui critério de validação
- Campo 'usuário' é obrigatório e deve armazenar usuário que esta abrindo a ordem de serviço, devendo existir na tabela de users e sua branch devendo ser a mesma da ordem de serviço
- Campo 'motivo de cancelamento' deve possuir conteúdo como
null
por se tratar do processo de abertura de ordem de serviço - Os demais campos devem ser gravados como
null
ou com seus respectivos default's - Pode-se anexar mais de uma imagem do problema a uma ordem de serviço gerando registros na tabela 'saas.order_attachment'
-
Alteração
-
Campo 'equipamento' não deve ser possível a alteração
-
Campo 'serviço' não deve ser possível a alteração
-
Campo 'observação' pode sofrer alterções sem critérios de avaliação somente sendo obrigatório
-
Campo 'data previsão manutencao inicio' pode sofrer alterações com as mesmas validações do processo de abertura
-
Campo 'prioridade' pode ser alterada sendo validada com o mesmos critérios do processo de abertura
-
Pode-se anexar mais de uma imagem do problema a uma ordem de serviço gerando registros na tabela 'saas.order_attachment'
-
Campos de data em geral são calculados de acordo com os insumos na ordem de serviço reportados, sendo validados da mesma forma que no processo de abertura de ordem de serviço
-
Obs:
- É possível incluir insumos previstos e realizados na alteração de uma ordem de serviço
-
-
Finalização
-
Campo 'observação' é obrigatório preenchimento
-
Campo 'posição do contador' é possivel preenchimento caso o equipamento possua contador não sendo obrigatório
-
Campo 'data de leitura' é obrigatório preenchimento se o campo 'posição do contador' estiver preenchido, deve ser maior ou igual conteúdo do campo 'data de manutenção real início' e menor ou igual ao campo 'data de manutençao real fim'
-
Campo 'data de parada realizada inicio' pode ser preenchida, devendo estar entre o conteúdo dos campos de 'data manutenção realizada início' e 'data manutenção realizada fim'
-
Preenchimento do campo 'hora de parada realizada início' se torna obrigatório quando o campo de 'data parada realizada inicio' estiver preenchido, caso contrário o campo deve ser vazio. Seu conteúdo deve estar entre os intervalos dos campos 'data manutencao realizada início' e 'hora da manutenção realizada início' com 'data manutenção realizada fim' e 'hora manutenção realizada fim'
-
Campo 'termino' obrigatóriamente deve possuir conteúdo como 'S'
-
Os demais campos não devem ser permitidos a alteração no processo de finalização
-
Obs:
- Para o processo de finalização da ordem de serviço ocorrer, a O.S. deve possuir ao menos um insumo como realizado
-
-
Cancelamento
-
Campo 'motivo de cancelamento' é obrigatório devendo existir na tabela de reasons e o registro possuindo conteúdo do campo
tipo
como '3' -
Campo 'observação' é de preenchimento obrigatório sem validações em seu conteúdo
-
Os demais campos não devem ser permitidos a alteração no processo de cancelamento e deve seguir os mesmo critérios de inclusão
-
Obs:
-
É permitido que exista insumos previstos e realizados para uma O.S. que esteja sendo cancelada não sendo impeditivo para realizar a ação
-
Não é possivel cancelar uma ordem de serviço já terminada
-
-
-
Exclusão
- Não é possível realizar a exclusão de uma ordem de serviço no sistema atualmente
-
Campos a serem removidos:
organization
tj_filial
tj_plano
tj_dtorigi
tj_nombem
tj_nomserv
tj_tipo
tj_nomtipo
tj_codarea
tj_nomarea
tj_ccusto
tj_nomcust
tj_custmdo
tj_custmat
tj_custmaa
tj_custmas
tj_custter
tj_dtultma
tj_coultma
tj_dtppini
tj_hoppini
tj_dtppfim
tj_hoppfim
tj_coultm2
tj_poscon2
tj_horaco2
tj_centrab
tj_nomtrab
tj_tiporet
tj_ordepai
tj_bempai
tj_nomepai
tj_filqnc
tj_fnc
tj_revqfnc
tj_valatf
tj_lubrifi
tj_substit
tj_solici
tj_sequenc
tj_irregu
tj_nirregu
tj_terceir
tj_stfolup
tj_destflu
tj_contini
tj_contfim
tj_usuario
tj_usuafim
tj_qtdrep
tj_motrepr
tj_custfer
tj_cdevent
tj_osorig
tj_intprj
tj_filori
tj_insttsk
tj_fatura
tj_apropri
-
Inclusão
- Campo 'branch' obrigatório e seu conteúdo deve existir na tabela 'saas.branch'
- Campo 'ordem' é obrigatório possuindo relacionamento com a tabela
service_order
existindo seu código na mesma - Campo 'sequencia de realização' é obrgatório possuindo conteúdo como '0'
- Campo 'tarefa' é obrigatório possuindo relacionamento com a tabela
task
existindo seu código na mesma - Campo 'tipo do registro' deve estar preenchido como 'F', 'P', 'M', 'E'
- Campo 'codigo' é um campo que possui relacionamento com uma tabela sendo condicionalmente de acordo com o conteúdo do campo 'tipo' informado
Tipo
como'E'
código deve existir na tabelaspecialties
ou caso seja um UUID deve existir na tabela correspondente com o prefixo de 'generic.'Tipo
como'F'
código deve existir na tabelatools
ou caso seja um UUID deve existir na tabela correspondente com o prefixo de 'generic.'Tipo
como'M'
código deve existir na tabelaemployees
Tipo
como'P'
código deve existir na tabelaproducts
ou caso seja um UUID deve existir na tabela correspondente com o prefixo de 'generic.'
- Campo 'quantidade' deve ser obrigatório e positivo
- Campo 'unidade' é validado condicionalmente de acordo com o conteúdo do campo 'tipo', caso seja 'E', 'M' ou 'F' o conteúdo do campo deve ser o código referente a descrição de 'Hora' no sistema, caso não encontrado, ele busca na base padrão, efetua a gravação na base do cliente e o código é armazenado neste campo, caso o tipo seja 'P' é armazenado o conteúdo do campo de unidade de medida do produto
- Campo 'custo' é obrigatório podendo ser zero ou positivo sendo resultado do custo proveniente de registro por tabela de acordo com o tipo e código informado, sendo o produto do cálculo de quantidade x valor unitário
- Campo 'quantidade de recurso' é de preenchimento obrigatório, devendo ser positivo somente quando o conteúdo do campo 'tipo'* for 'F' ou 'E', caso contrário deve ser possui conteúdo '0'
- Campo 'data início' obrigatória
- Campo 'hora início' obrigatório
- Campo 'data fim' obrigatório, e quando o registro for 'tipo' como 'E', 'F', 'M' o conteúdo deve ser o resultado da soma da 'quantidade' com a data e hora início, verificando a data, caso seja 'tipo' 'P' deve replicar o conteúdo do campo 'data início'
- Campo 'hora fim' obrigatório, e quando o registro for 'tipo' como 'E', 'F', 'M' o conteúdo deve ser o resultado da soma da 'quantidade' com a data e hora início, verificando a hora, caso seja 'tipo' 'P' deve replicar o conteúdo do campo 'hora início'
- Código do insumo não deve ser repetido para a mesma área
- Campo 'nivel' deve seguir as seguintes regras:
- Essa informação é obrigatória
- Deve ser preenchido com um sequencial maior que '000'
- Não pode ser igual a nenhum 'nivel da tarefa' da árvore
- Deve ser unica por 'ordem'
- Campo 'nivel superior' deve seguir as seguintes regras:
- Essa informação é obrigatória
- Caso o 'tipo do registro seja 'M' ou 'E':
- O valor do campo deve ser igual ao valor do 'nivel da tarefa'
- Caso o 'tipo do registro seja 'P' ou 'F':
- O valor do campo deve ser diferente do 'nivel'. E deve existir para a chave 'ordem' e 'nivel' na árvore
- Campo 'nivel da tarefa' é obrigatório
-
Alteração
- Campo 'codigo' não é alterável
- Campo 'tipo' não é alterável
- Campo 'sequencia de realização não é alterável
- Demais campos possuem as mesmas validações de inclusão
-
Retorno
- Somente é possível retornar insumos de uma ordem de serviço que possua situação liberada e não terminada
- É possível somente retornar insumos na alteração de uma ordem de serviço
- Um insumo realizado pode prover de um insumo previsto ou não
- A divergencia do insumo sendo realizado é o conteúdo do campo 'sequencia de realização' devendo ser maior que zero
-
Exclusão
- Um insumo independente do tipo, somente pode ser excluído se a ordem de serviço não estiver com situação como 'Cancelada' ou 'Terminada'
-
Inclusão
- Campo 'branch' obrigatório e seu conteúdo deve existir na tabela 'saas.branch'
- Caso seja 'tipo' como 'M', deve-se verificar se não existe sobreposição de mão de obra onde um insumo já utilizou o tempo dentro do período informado
- Não deve ser possível incluir um insumo realizado do 'tipo'
-
Alteração
- Um insumo independente do tipo, somente pode ser alteração se a ordem de serviço não estiver com situação como 'Cancelada' ou 'Terminada'
- As regras seguem as mesma de inclusão
-
Exclusão
- Um insumo independente do tipo, somente pode ser excluído se a ordem de serviço não estiver com situação como 'Cancelada' ou 'Terminada'
-
Campos a serem retirados:
organization
tl_filial
tl_plano
tl_nomseq
tl_nomtar
tl_nomtreg
tl_nomcodi
tl_usacale
tl_destino
tl_repfim
tl_pcthrex
tl_numseq
tl_local
tl_lotectl
tl_numlote
tl_dtvalid
tl_localiz
tl_numseri
tl_etapa
tl_nometap
tl_garanti
tl_locapli
tl_nomloca
tl_numsc
tl_intemsc
tl_numop
tl_intemop
tl_sequeop
tl_observa
tl_codbem
tl_servico
tl_seqman
tl_poscont
tl_poscon2
tl_tipohor
tl_sequenc
tl_seqrman
tl_notfis
tl_serie
tl_fornec
tl_loja
tl_numsa
tl_itemsa
tl_seqtare
tl_doc
tl_item
tl_orignfe
tl_hrextra
tl_permdoe
tl_sdoc
tl_codaen
-
Inclusão
- Campo 'branch' obrigatório e seu conteúdo deve existir na tabela 'saas.branch'
- Campo 'ordem' é obrigatório possuindo relacionamento com a tabela
service_order
existindo seu código na mesma - Campo 'tarefa' é obrigatório possuindo relacionamento com a tabela
task
existindo seu código na mesma - Campo 'etapa' é obrigatório e deve ser único
- Campo 'ok' deve ser vazio por se tratar de uma etapa prevista
- Campo 'nivel' deve seguir as seguintes regras:
- Essa informação é obrigatória
- Deve ser preenchido com um sequencial maior que '000'
- Não pode ser igual a nenhum 'nivel da tarefa' da árvore
- Deve ser unica por 'ordem'
- Campo 'nivel superior' deve seguir as seguintes regras:
- Essa informação é obrigatória
- O valor do campo deve ser diferente do 'nivel'. E deve existir para a chave 'ordem' e 'nivel' na árvore
- Campo 'nivel da tarefa' é obrigatório
-
Alteração
- Campo 'branch' não é alterável
- Campo 'ordem' não é alterável
- Campo 'etapa' não é alterável
- Campo 'ok' deve ser vazio
- Campos de níveis são alteráveis e são validados da mesma maneira que inclusão
-
Retorno
- No processo de realizar uma etapa, é preenchido o campo 'ok' com
'XX'
- No processo de realizar uma etapa, é preenchido o campo 'ok' com
-
Exclusão
- Uma etapa somente pode ser excluída se a ordem de serviço não estiver com situação como 'Cancelada' ou 'Terminada'
-
Inclusão
- Segue as mesmas regras de inclusão de uma etapa prevista com exceção do campo 'ok' que é obrigatório e deve possuir conteúdo como
'XX'
- Segue as mesmas regras de inclusão de uma etapa prevista com exceção do campo 'ok' que é obrigatório e deve possuir conteúdo como
-
Alteração
- Somente é possível alterar uma etapa prevista caso a ordem de serviço não esteja terminada ou cancelada
-
Exclusão
- Uma etapa somente pode ser excluída se a ordem de serviço não estiver com situação como 'Cancelada' ou 'Terminada'
-
Campos a serem retirados:
organization
tq_filial
tq_plano
tq_nomtare
tq_nomsitu
tq_nometap
tq_codfunc
tq_opcoes
tq_seqeta
tq_seqtare
tq_observa