api

viewsets

class CalendarioCronogramaViewset(**kwargs)[source]

Bases: ReadOnlyModelViewSet

ViewSet para consulta de etapas de cronograma em formato de calendário.

Endpoints: - GET /etapas-por-mes/ — Etapas agrupadas por mês/ano. - GET /datas-bloqueadas-armazenavel/ — Datas bloqueadas (tipo armazenável).

Utilizado pelo frontend para exibir cronogramas em visualização de calendário.

get_queryset()[source]

Retorna etapas de cronograma filtradas por mês/ano.

Valida os parâmetros mes e ano (obrigatórios) e filtra apenas cronogramas com status ASSINADO_CODAE, ALTERACAO_CODAE ou SOLICITADO_ALTERACAO.

permission_classes = (<class 'src.dados_comuns.permissions.PermissaoParaVisualizarCalendarioCronograma'>,)
queryset = <QuerySet de EtapasDoCronograma>
serializer_class

alias of EtapasDoCronogramaCalendarioSerializer

class CronogramaModelViewSet(**kwargs)[source]

Bases: ViewSetActionPermissionMixin, ModelViewSet

ViewSet para CRUD e gerenciamento de Cronogramas.

Endpoints principais: - GET / — Lista cronogramas (com filtros por número, empresa, produto, status). - POST / — Cria um novo cronograma (rascunho). - GET /dashboard/ — Dashboard agrupado por status. - GET /dashboard-com-filtro/ — Dashboard com filtros. - PATCH /<uuid>/fornecedor-assina-cronograma/ — Assinatura do fornecedor. - PATCH /<uuid>/abastecimento-assina/ — Assinatura DILOG Abastecimento. - PATCH /<uuid>/codae-assina/ — Assinatura CODAE. - GET /<uuid>/gerar-pdf-cronograma/ — Geração de PDF. - GET /rascunhos/ — Lista cronogramas em rascunho. - GET /listagem-relatorio/ — Relatório de cronogramas com filtros.

Permissões são definidas dinamicamente por permission_action_classes e ViewSetActionPermissionMixin.

abastecimento_assina(request, uuid)[source]

Registra a assinatura da DILOG Abastecimento no cronograma.

Valida a senha do usuário antes de prosseguir. Avança o fluxo do cronograma para ASSINADO_DILOG_ABASTECIMENTO.

codae_assina(request, uuid)[source]

Registra a assinatura da CODAE no cronograma.

Valida a senha do usuário antes de prosseguir. Avança o fluxo do cronograma para ASSINADO_CODAE (última etapa do fluxo).

dados_cronograma_ficha_recebimento(request, uuid)[source]

Retorna os dados completos do cronograma para a ficha de recebimento.

dados_cronograma_pos_recebimento(request, uuid)[source]

Dados do cronograma (produto, processo SEI, unidade de medida) para preenchimento automático no cadastro do Termo de Recebimento Definitivo (Pós-Recebimento).

dados_dashboard(request, query_set, use_raw)[source]

Monta os dados do dashboard agrupados por status.

Aceita parâmetros limit, offset e status via query params.

Return type:

list

dashboard(request)[source]

Dashboard de cronogramas agrupados por status.

Retorna os cronogramas mais recentes de cada status (ASSINADO_E_ENVIADO_AO_FORNECEDOR, ASSINADO_FORNECEDOR, ASSINADO_DILOG_ABASTECIMENTO, ASSINADO_CODAE) com até 6 registros por grupo.

dashboard_com_filtro(request)[source]

Dashboard de cronogramas com filtros.

Similar ao dashboard, mas permite filtrar por número do cronograma, nome do produto e nome do fornecedor via query params.

detalhar_com_log(request, uuid=None)[source]

Retorna os detalhes do cronograma com o histórico de logs.

etapas(_)[source]

Retorna lista de opções de etapas (1 a 100) para formulários.

filter_backends = (<class 'django_filters.rest_framework.backends.DjangoFilterBackend'>,)
filterset_class

alias of CronogramaFilter

fornecedor_assina(request, uuid=None)[source]

Registra a assinatura do fornecedor no cronograma.

Valida a senha do usuário antes de prosseguir. Avança o fluxo do cronograma para ASSINADO_FORNECEDOR.

gerar_pdf_cronograma(request, uuid=None)[source]

Gera o PDF do cronograma.

Para cronogramas Ponto a Ponto (FLV) utiliza o template específico get_pdf_cronograma_ponto_a_ponto_flv. Para os demais, utiliza o template get_pdf_cronograma padrão.

gerar_relatorio_pdf_async(request)[source]

Solicita a geração assíncrona de relatório de cronogramas em PDF.

Os filtros (situação, data_inicial, data_final) são passados via query params.

gerar_relatorio_xlsx_async(request)[source]

Solicita a geração assíncrona de relatório de cronogramas em XLSX.

Os filtros (situação, data_inicial, data_final) são passados via query params.

get_default_sql(workflow, query_set, use_raw)[source]

Busca cronogramas por status ordenados pelo log mais recente.

Se use_raw=True utiliza SQL raw; caso contrário ordena em memória via Python.

get_lista_status()[source]

Retorna os status que aparecem no dashboard do cronograma.

get_queryset()[source]

Retorna todos os cronogramas ordenados por data de criação (decrescente).

get_serializer_class()[source]

Retorna o serializer adequado conforme a ação.

  • retrieve / list: CronogramaSerializer (leitura).

  • create com ponto_a_ponto=True: CronogramaPontoAPontoCreateSerializer.

  • demais ações: CronogramaCreateSerializer.

list(request, *args, **kwargs)[source]

Lista cronogramas com paginação.

Para usuários do perfil ADMINISTRADOR_EMPRESA que são fornecedores, filtra apenas os cronogramas da sua empresa.

lista_cronogramas_ficha_recebimento(request)[source]

Lista cronogramas aptos para gerar ficha de recebimento.

Retorna apenas cronogramas com status ASSINADO_CODAE.

lista_cronogramas_para_cadastro(request)[source]

Lista cronogramas para usar em campos de seleção em cadastros.

Para fornecedores, retorna apenas os cronogramas da sua empresa.

lista_cronogramas_pos_recebimento(request)[source]

Cronogramas vinculados ao contrato selecionado (query param contrato_id) para o cadastro do Termo de Recebimento Definitivo (Pós-Recebimento).

lista_relatorio(request, *args, **kwargs)[source]

Retorna listagem de cronogramas para relatório com filtros.

Aceita filtros por situacao (lista), data_inicial e data_final via query params. Aplica paginação e retorna totalizadores por status.

lookup_field = 'uuid'
pagination_class

alias of PreRecebimentoPagination

permission_action_classes = {'create': [<class 'src.dados_comuns.permissions.PermissaoParaCriarCronograma'>], 'delete': [<class 'src.dados_comuns.permissions.PermissaoParaCriarCronograma'>]}
permission_classes = (<class 'src.dados_comuns.permissions.PermissaoParaVisualizarCronograma'>,)
queryset = <QuerySet de Cronograma>
rascunhos(_)[source]

Retorna lista de cronogramas em status RASCUNHO.

serializer_class

alias of CronogramaSerializer

class InterrupcaoProgramadaEntregaViewSet(**kwargs)[source]

Bases: CreateModelMixin, ListModelMixin, DestroyModelMixin, GenericViewSet

ViewSet para cadastro e listagem de Interrupções Programadas de Entregas.

datas_bloqueadas_armazenavel(request)[source]

Retorna lista de datas bloqueadas para cadastro de etapas (tipo ARMAZENAVEL).

get_queryset()[source]

Retorna interrupções filtradas por mês, ano e tipo de calendário.

get_serializer_class()[source]

Retorna o serializer conforme a ação.

  • create: InterrupcaoProgramadaEntregaCreateSerializer.

  • demais: InterrupcaoProgramadaEntregaSerializer (leitura).

lookup_field = 'uuid'
motivos(request)[source]

Retorna lista de motivos disponíveis para interrupção.

permission_classes = (<class 'src.dados_comuns.permissions.PermissaoParaVisualizarCalendarioCronograma'>,)
queryset = <QuerySet de InterrupcaoProgramadaEntrega>
class SolicitacaoDeAlteracaoCronogramaViewSet(**kwargs)[source]

Bases: ModelViewSet

ViewSet para CRUD e gerenciamento de solicitações de alteração de cronograma.

Permite que fornecedores e CODAE criem solicitações de alteração de cronogramas já assinados. Inclui fluxo de aprovação com análise da DILOG Abastecimento e DILOG, ciência do cronograma e dashboard.

Endpoints principais: - GET / — Lista solicitações (ordenadas por prioridade do perfil). - POST / — Cria nova solicitação de alteração. - GET /dashboard/ — Dashboard por status. - PATCH /<uuid>/cronograma-ciente/ — Confirma ciência do cronograma. - PATCH /<uuid>/analise-abastecimento/ — Análise DILOG Abastecimento. - PATCH /<uuid>/analise-dilog/ — Análise DILOG. - PATCH /<uuid>/fornecedor-ciente/ — Ciência do fornecedor.

Permissões são ajustadas por ação via get_permissions().

analise_abastecimento(request, uuid)[source]

Análise da solicitação pela DILOG Abastecimento.

Recebe o parâmetro aprovado (bool) no body. Se True, aprova a solicitação; se False, reprova com justificativa (campo justificativa_abastecimento).

analise_dilog(request, uuid)[source]

Análise final da solicitação pela DILOG.

Recebe o parâmetro aprovado (bool) no body. Se aprovada, substitui as etapas e programações do cronograma original pelas novas. Se reprovada, registra a justificativa (campo justificativa_dilog).

cronograma_ciente(request, uuid)[source]

Registra a ciência do cronograma sobre a alteração solicitada.

Recebe as novas etapas e programações de recebimento, substitui as anteriores e avança o fluxo da solicitação.

dashboard(request)[source]

Dashboard de solicitações de alteração agrupadas por status.

Os status exibidos variam conforme o perfil do usuário logado (fornecedor, DILOG Abastecimento, DILOG, CODAE, etc.).

dashboard_com_filtro(request)[source]

Dashboard com filtros por parâmetros de consulta.

Aceita os mesmos filtros do SolicitacaoAlteracaoCronogramaFilter via query params (número do cronograma, fornecedor, data, status).

filter_backends = (<class 'django_filters.rest_framework.backends.DjangoFilterBackend'>,)
filterset_class

alias of SolicitacaoAlteracaoCronogramaFilter

fornecedor_ciente(request, uuid)[source]

Registra a ciência do fornecedor sobre a alteração.

Avança o fluxo da solicitação e, se o cronograma não estiver no status ASSINADO_CODAE, finaliza a solicitação de alteração.

get_permissions()[source]

Retorna as permissões específicas para cada ação.

  • list / retrieve: PermissaoParaVisualizarSolicitacoesAlteracaoCronograma.

  • create: PermissaoParaCriarSolicitacoesAlteracaoCronograma.

get_queryset()[source]

Retorna as solicitações de alteração.

Para fornecedores, filtra apenas as solicitações dos cronogramas da sua empresa.

get_serializer_class()[source]

Retorna o serializer adequado conforme a ação.

  • list: SolicitacaoAlteracaoCronogramaSerializer (resumo).

  • retrieve: SolicitacaoAlteracaoCronogramaCompletoSerializer (detalhes + logs).

  • demais: SolicitacaoDeAlteracaoCronogramaCreateSerializer.

list(request, *args, **kwargs)[source]

Lista solicitações de alteração ordenadas por prioridade do perfil.

Utiliza o ServiceQuerysetAlteracaoCronograma para ordenar: primeiro os status prioritários do perfil, depois os demais.

lookup_field = 'uuid'
pagination_class

alias of PreRecebimentoPagination

permission_classes = (<class 'rest_framework.permissions.IsAuthenticated'>,)

filters

class CronogramaFilter(data=None, queryset=None, *, request=None, prefix=None)[source]

Bases: FilterSet

Filtros para listagem de Cronogramas.

Permite filtrar por: - uuid: UUID exato. - numero: Parte do número do cronograma. - nome_empresa: Nome fantasia da empresa fornecedora. - nome_produto: Nome do produto (via ficha técnica). - data_inicial / data_final: Intervalo de datas programadas (etapas). - status: Um ou mais status do workflow. - armazem / empresa: UUIDs dos respectivos modelos.

base_filters = {'armazem': <django_filters.filters.ModelMultipleChoiceFilter object>, 'data_final': <django_filters.filters.DateFilter object>, 'data_inicial': <django_filters.filters.DateFilter object>, 'empresa': <django_filters.filters.ModelMultipleChoiceFilter object>, 'nome_empresa': <django_filters.filters.CharFilter object>, 'nome_produto': <django_filters.filters.CharFilter object>, 'numero': <django_filters.filters.CharFilter object>, 'status': <django_filters.filters.MultipleChoiceFilter object>, 'uuid': <django_filters.filters.CharFilter object>}
declared_filters = {'armazem': <django_filters.filters.ModelMultipleChoiceFilter object>, 'data_final': <django_filters.filters.DateFilter object>, 'data_inicial': <django_filters.filters.DateFilter object>, 'empresa': <django_filters.filters.ModelMultipleChoiceFilter object>, 'nome_empresa': <django_filters.filters.CharFilter object>, 'nome_produto': <django_filters.filters.CharFilter object>, 'numero': <django_filters.filters.CharFilter object>, 'status': <django_filters.filters.MultipleChoiceFilter object>, 'uuid': <django_filters.filters.CharFilter object>}
class SolicitacaoAlteracaoCronogramaFilter(data=None, queryset=None, *, request=None, prefix=None)[source]

Bases: FilterSet

Filtros para listagem de Solicitações de Alteração de Cronograma.

Permite filtrar por: - numero_cronograma: Número do cronograma original. - fornecedor: Nome fantasia do fornecedor. - data: Intervalo de data de criação (DateFromToRangeFilter). - status: Um ou mais status do fluxo de alteração.

base_filters = {'data': <django_filters.filters.DateFromToRangeFilter object>, 'fornecedor': <django_filters.filters.CharFilter object>, 'numero_cronograma': <django_filters.filters.CharFilter object>, 'status': <django_filters.filters.MultipleChoiceFilter object>}
declared_filters = {'data': <django_filters.filters.DateFromToRangeFilter object>, 'fornecedor': <django_filters.filters.CharFilter object>, 'numero_cronograma': <django_filters.filters.CharFilter object>, 'status': <django_filters.filters.MultipleChoiceFilter object>}

services

class ServiceDashboardSolicitacaoAlteracaoCronogramaProfiles(original_queryset, filter_class, serializer_class, request)[source]

Bases: BaseServiceDashboard

Mapeamento de status do dashboard por perfil de usuário.

Define quais status de CronogramaAlteracaoWorkflow são exibidos no dashboard de solicitações de alteração para cada perfil (DILOG Abastecimento, DILOG Diretoria, DILOG Cronograma, etc.).

STATUS_POR_PERFIL = {'ADMINISTRADOR_CODAE_GABINETE': ['EM_ANALISE', 'APROVADO_DILOG', 'REPROVADO_DILOG', 'ALTERACAO_ENVIADA_FORNECEDOR', 'FORNECEDOR_CIENTE'], 'COORDENADOR_CODAE_DILOG_LOGISTICA': ['EM_ANALISE', 'APROVADO_DILOG', 'REPROVADO_DILOG', 'ALTERACAO_ENVIADA_FORNECEDOR', 'FORNECEDOR_CIENTE'], 'DILOG_ABASTECIMENTO': ['CRONOGRAMA_CIENTE', 'APROVADO_DILOG_ABASTECIMENTO', 'REPROVADO_DILOG_ABASTECIMENTO', 'ALTERACAO_ENVIADA_FORNECEDOR', 'FORNECEDOR_CIENTE'], 'DILOG_CRONOGRAMA': ['EM_ANALISE', 'APROVADO_DILOG', 'REPROVADO_DILOG', 'ALTERACAO_ENVIADA_FORNECEDOR', 'FORNECEDOR_CIENTE'], 'DILOG_DIRETORIA': ['APROVADO_DILOG_ABASTECIMENTO', 'REPROVADO_DILOG_ABASTECIMENTO', 'APROVADO_DILOG', 'REPROVADO_DILOG', 'ALTERACAO_ENVIADA_FORNECEDOR', 'FORNECEDOR_CIENTE'], 'DILOG_QUALIDADE': ['EM_ANALISE', 'APROVADO_DILOG', 'REPROVADO_DILOG', 'ALTERACAO_ENVIADA_FORNECEDOR', 'FORNECEDOR_CIENTE'], 'DILOG_VISUALIZACAO': ['EM_ANALISE', 'APROVADO_DILOG', 'REPROVADO_DILOG', 'ALTERACAO_ENVIADA_FORNECEDOR', 'FORNECEDOR_CIENTE']}
class ServiceQuerysetAlteracaoCronograma(request)[source]

Bases: object

Gerencia a ordenação de solicitações de alteração por prioridade.

Define quais status são prioritários para cada perfil de usuário e monta uma QuerySet ordenada: primeiro os registros com status prioritário, depois os demais, ambos ordenados por criado_em.

STATUS_PRIORITARIO = {'ADMINISTRADOR_EMPRESA': ['ALTERACAO_ENVIADA_FORNECEDOR'], 'COORDENADOR_CODAE_DILOG_LOGISTICA': ['EM_ANALISE'], 'DILOG_ABASTECIMENTO': ['CRONOGRAMA_CIENTE'], 'DILOG_CRONOGRAMA': ['EM_ANALISE'], 'DILOG_DIRETORIA': ['APROVADO_DILOG_ABASTECIMENTO', 'REPROVADO_DILOG_ABASTECIMENTO'], 'DILOG_QUALIDADE': [], 'DILOG_VISUALIZACAO': [], 'USUARIO_EMPRESA': ['ALTERACAO_ENVIADA_FORNECEDOR']}
get_queryset(filter=False)[source]

Monta a QuerySet ordenada por prioridade de status.

Aceita uma função de filtro adicional aplicada às sub-queries.

classmethod get_status(user)[source]

Retorna a lista de status prioritários para o perfil do usuário.

Levanta ValueError se o perfil do usuário não estiver mapeado.

Return type:

list

validators

contrato_pertence_a_empresa(contrato, empresa)[source]

Valida se o contrato pertence à empresa informada.

Levanta ValidationError se o contrato não pertencer à empresa.

valida_parametros_calendario(mes, ano)[source]

Valida os parâmetros mês (1-12) e ano (4 dígitos) para consultas de calendário.

Levanta ValidationError se os parâmetros forem inválidos ou ausentes.

helpers

aplicar_filtros_etapa(etapa_data, data_inicio_obj, data_fim_obj, situacoes, tem_filtro_situacao)[source]

Aplica os filtros de data e situação a uma etapa do relatório.

converter_para_numero(quantidade_str)[source]

Converte string formatada para número float.

Exemplo: "10.000,00 kg"10000.00. Retorna None se a conversão falhar.

cria_etapas_de_cronograma(etapas, cronograma=None)[source]

Cria registros de EtapasDoCronograma a partir de uma lista de dicionários.

Retorna a lista das etapas criadas, já persistidas no banco.

cria_programacao_de_cronograma(programacoes, cronograma=None)[source]

Cria registros de ProgramacaoDoRecebimentoDoCronograma.

Retorna a lista das programações criadas, já persistidas no banco.

extrair_numero_quantidade(quantidade_str)[source]

Extrai apenas os números da string de quantidade, removendo unidades.

Exemplo: "10.000,00 kg""10.000,00".

filtrar_etapas(serialized_data, filtros)[source]

Filtra uma lista de cronogramas por data e situação das etapas.

migrar_fichas_para_etapas_novas(etapas_antigas, etapas_novas)[source]
parse_date(date_str)[source]

Converte string de data DD/MM/YYYY para datetime.date.

Retorna None se a string for inválida.

passa_filtro_data_etapa(etapa_data, data_inicio_obj, data_fim_obj)[source]

Verifica se a data da etapa está dentro do intervalo informado.

passa_filtro_situacao(etapa_data, situacoes)[source]

Verifica se a etapa atende ao filtro de situação selecionado.

processar_situacao_a_receber(situacoes, fichas_recebimento, tem_fichas_com_ocorrencia, tem_fichas_sem_ocorrencia, incluir_etapa, fichas_finais)[source]

Processa o filtro de situação “A Receber” nas fichas de recebimento.

processar_situacao_ocorrencia(situacoes, tem_fichas_com_ocorrencia, tem_fichas_sem_ocorrencia, fichas_recebimento, incluir_etapa, fichas_finais)[source]

Processa o filtro de situação “Ocorrência” nas fichas de recebimento.

processar_situacao_recebido(situacoes, tem_fichas_sem_ocorrencia, fichas_recebimento, incluir_etapa, fichas_finais)[source]

Processa o filtro de situação “Recebido” nas fichas de recebimento.

totalizador_relatorio_cronograma(data)[source]

Calcula a quantidade de itens por status do cronograma.

Aceita tanto um QuerySet (usando ORM) quanto uma lista de dicionários já serializados, mantendo o mesmo formato de saída.

Retorna dicionário ordenado de forma decrescente pela quantidade, onde a chave é o título do status e o valor é a contagem.

Return type:

dict[str, int]

serializers

class CronogramaComLogSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'numero', 'status', 'criado_em', 'alterado_em', 'contrato', 'empresa', 'qtd_total_programada', 'unidade_medida', 'armazem', 'etapas', 'programacoes_de_recebimento', 'ficha_tecnica', 'tipo_embalagem_secundaria', 'custo_unitario_produto', 'logs', 'observacoes', 'numero_empenho', 'qtd_total_empenho', 'ponto_a_ponto')
model

alias of Cronograma

class CronogramaDetalhePosRecebimentoSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

Dados do cronograma para preenchimento automático do cadastro do Termo de Recebimento Definitivo (Pós-Recebimento).

Produto e unidade de medida vêm da ficha técnica; o número do processo SEI vem do contrato vinculado ao cronograma. As relações são opcionais (blank/null) e os campos são protegidos contra ausência.

class Meta[source]

Bases: object

fields = ('uuid', 'numero', 'produto', 'processo_sei', 'unidade_medida', 'unidade_medida_abreviacao')
model

alias of Cronograma

read_only_fields = ('uuid', 'numero', 'produto', 'processo_sei', 'unidade_medida', 'unidade_medida_abreviacao')
get_processo_sei(obj)[source]
get_produto(obj)[source]
get_unidade_medida(obj)[source]
get_unidade_medida_abreviacao(obj)[source]
class CronogramaFichaDeRecebimentoSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'fornecedor', 'contrato', 'pregao_chamada_publica', 'ata', 'produto', 'marca', 'qtd_total_programada', 'peso_liquido_embalagem_primaria', 'peso_liquido_embalagem_secundaria', 'embalagem_primaria', 'embalagem_secundaria', 'categoria', 'etapas', 'documentos_de_recebimento', 'sistema_vedacao_embalagem_secundaria', 'programa_leve_leite', 'numero_chamada_publica')
model

alias of Cronograma

get_ata(obj)[source]
get_categoria(obj)[source]
get_contrato(obj)[source]
get_documentos_de_recebimento(obj)[source]
get_embalagem_primaria(obj)[source]
get_embalagem_secundaria(obj)[source]
get_fornecedor(obj)[source]
get_marca(obj)[source]
get_numero_chamada_publica(obj)[source]
get_peso_liquido_embalagem_primaria(obj)[source]
get_peso_liquido_embalagem_secundaria(obj)[source]
get_pregao_chamada_publica(obj)[source]
get_produto(obj)[source]
get_programa_leve_leite(obj)[source]
get_qtd_total_programada(obj)[source]
get_sistema_vedacao_embalagem_secundaria(obj)[source]
class CronogramaMensalAssinadoSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

Serializer para listar cronogramas mensal Ponto a Ponto assinados

class Meta[source]

Bases: object

fields = ('uuid', 'numero', 'produto_nome', 'fornecedor_nome', 'numero_contrato')
model

alias of Cronograma

get_fornecedor_nome(obj)[source]
get_numero_contrato(obj)[source]
get_produto_nome(obj)[source]
class CronogramaRascunhosSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'numero', 'alterado_em', 'ponto_a_ponto')
model

alias of Cronograma

class CronogramaRelatorioSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'numero', 'numero_contrato', 'numero_processo', 'produto', 'empresa', 'qtd_total_programada', 'armazem', 'status', 'marca', 'custo_unitario_produto', 'etapas', 'programa_leve_leite', 'modalidade')
model

alias of Cronograma

get_armazem(obj)[source]
get_custo_unitario_produto(obj)[source]
get_empresa(obj)[source]
get_marca(obj)[source]
get_modalidade(obj)[source]
get_numero_contrato(obj)[source]
get_numero_processo(obj)[source]
get_produto(obj)[source]
get_programa_leve_leite(obj)[source]
class CronogramaSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'numero', 'status', 'criado_em', 'alterado_em', 'contrato', 'empresa', 'qtd_total_programada', 'unidade_medida', 'armazem', 'etapas', 'programacoes_de_recebimento', 'ficha_tecnica', 'tipo_embalagem_secundaria', 'custo_unitario_produto', 'observacoes', 'numero_empenho', 'qtd_total_empenho', 'ponto_a_ponto')
model

alias of Cronograma

get_ponto_a_ponto(obj)[source]
class CronogramaSimplesSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'numero', 'pregao_chamada_publica', 'nome_produto', 'programa_leve_leite', 'ponto_a_ponto')
model

alias of Cronograma

get_nome_produto(obj)[source]
get_ponto_a_ponto(obj)[source]
get_pregao_chamada_publica(obj)[source]
get_programa_leve_leite(obj)[source]
class EtapaCronogramaRelatorioSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('numero_cronograma', 'produto', 'empresa', 'marca', 'qtd_total_programada', 'unidade_medida', 'custo_unitario_produto', 'armazem', 'status_cronograma', 'etapa', 'parte', 'data_programada', 'quantidade', 'total_embalagens', 'situacao')
model

alias of EtapasDoCronograma

get_armazem(obj)[source]
get_custo_unitario_produto(obj)[source]
get_data_programada(obj)[source]
get_empresa(obj)[source]
get_etapa(obj)[source]
get_marca(obj)[source]
get_numero_cronograma(obj)[source]
get_numero_empenho(obj)[source]
get_parte(obj)[source]
get_produto(obj)[source]
get_qtd_total_programada(obj)[source]
get_situacao(obj)[source]
get_status_cronograma(obj)[source]
get_total_embalagens(obj)[source]
get_unidade_medida(obj)[source]
class EtapasDoCronogramaCalendarioSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'nome_produto', 'uuid_cronograma', 'numero_cronograma', 'nome_fornecedor', 'data_programada', 'numero_empenho', 'etapa', 'parte', 'quantidade', 'status', 'unidade_medida', 'programa_leve_leite')
model

alias of EtapasDoCronograma

get_data_programada(obj)[source]
get_etapa(obj)[source]
get_nome_fornecedor(obj)[source]
get_nome_produto(obj)[source]
get_numero_cronograma(obj)[source]
get_parte(obj)[source]
get_programa_leve_leite(obj)[source]
get_status(obj)[source]
get_unidade_medida(obj)[source]
get_uuid_cronograma(obj)[source]
class EtapasDoCronogramaFichaDeRecebimentoSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'numero_empenho', 'qtd_total_empenho', 'etapa', 'parte', 'data_programada', 'quantidade', 'total_embalagens', 'desvinculada_recebimento', 'houve_ocorrencia', 'houve_reposicao', 'fichas_recebimento', 'foi_recebida', 'unidade_medida')
model

alias of EtapasDoCronograma

get_data_programada(obj)[source]
get_desvinculada_recebimento(obj)[source]
get_etapa(obj)[source]
get_fichas_recebimento(obj)[source]
get_foi_recebida(obj)[source]
get_houve_ocorrencia(obj)[source]
get_houve_reposicao(obj)[source]
get_parte(obj)[source]
get_qtd_total_empenho(obj)[source]
get_quantidade(obj)[source]
get_total_embalagens(obj)[source]
get_unidade_medida(obj)[source]
class EtapasDoCronogramaSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'numero_empenho', 'qtd_total_empenho', 'etapa', 'parte', 'data_programada', 'quantidade', 'total_embalagens', 'quantidade_estimada_disponivel')
model

alias of EtapasDoCronograma

get_data_programada(obj)[source]
get_etapa(obj)[source]
get_parte(obj)[source]
get_quantidade_estimada_disponivel(obj)[source]
class InterrupcaoProgramadaEntregaCreateSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ['data', 'motivo', 'descricao_motivo', 'tipo_calendario']
model

alias of InterrupcaoProgramadaEntrega

validate(attrs)[source]
class InterrupcaoProgramadaEntregaSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ['uuid', 'data', 'motivo', 'motivo_display', 'descricao_motivo', 'tipo_calendario', 'tipo_calendario_display']
model

alias of InterrupcaoProgramadaEntrega

class PainelCronogramaSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'numero', 'status', 'empresa', 'produto', 'log_mais_recente', 'programa_leve_leite', 'ponto_a_ponto')
model

alias of Cronograma

get_empresa(obj)[source]
get_log_mais_recente(obj)[source]
get_produto(obj)[source]
get_programa_leve_leite(obj)[source]
class PainelSolicitacaoAlteracaoCronogramaSerializer(*args, **kwargs)[source]

Bases: Serializer

class Meta[source]

Bases: object

fields = ('uuid', 'status', 'total', 'dados')
model

alias of SolicitacaoAlteracaoCronograma

get_dados(obj)[source]
to_representation(instance)[source]

Object instance -> Dict of primitive datatypes.

class PainelSolicitacaoAlteracaoCronogramaSerializerItem(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'numero_solicitacao', 'empresa', 'status', 'cronograma', 'produto', 'log_mais_recente', 'programa_leve_leite', 'ponto_a_ponto')
model

alias of SolicitacaoAlteracaoCronograma

get_log_mais_recente(obj)[source]
get_ponto_a_ponto(obj)[source]
get_produto(obj)[source]
get_programa_leve_leite(obj)[source]
class ProgramacaoDoRecebimentoDoCronogramaSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'data_programada', 'tipo_carga')
model

alias of ProgramacaoDoRecebimentoDoCronograma

class SolicitacaoAlteracaoCronogramaCompletoSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'numero_solicitacao', 'fornecedor', 'status', 'criado_em', 'cronograma', 'etapas_antigas', 'etapas_novas', 'justificativa', 'logs')
model

alias of SolicitacaoAlteracaoCronograma

class SolicitacaoAlteracaoCronogramaSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'numero_solicitacao', 'fornecedor', 'status', 'criado_em', 'cronograma', 'programa_leve_leite')
model

alias of SolicitacaoAlteracaoCronograma

get_programa_leve_leite(obj)[source]
class TipoEmbalagemQldSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

exclude = ('id',)
model

alias of TipoEmbalagemQld

class TipoEmbalagemQldSimplesSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'nome', 'abreviacao')
model

alias of TipoEmbalagemQld

class UnidadeMedidaSerialzer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

fields = ('uuid', 'nome', 'abreviacao', 'criado_em')
model

alias of UnidadeMedida

read_only_fields = ('uuid', 'nome', 'abreviacao', 'criado_em')

serializers_create

class CronogramaCreateSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

exclude = ('id', 'numero', 'status')
model

alias of Cronograma

create(validated_data)[source]

We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:

return ExampleModel.objects.create(**validated_data)

If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:

example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance

The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.

gera_proximo_numero_cronograma()[source]
update(instance, validated_data)[source]
validate(attrs)[source]
class CronogramaPontoAPontoCreateSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

Serializer para criação de cronogramas FLV Ponto a Ponto. - Omitidos: Armazém, Embalagem Secundária e Programações de Recebimento. - Numeração com sufixo “P”.

class Meta[source]

Bases: object

fields = ('uuid', 'numero', 'contrato', 'empresa', 'qtd_total_programada', 'unidade_medida', 'ficha_tecnica', 'custo_unitario_produto', 'observacoes', 'numero_empenho', 'qtd_total_empenho', 'etapas', 'cadastro_finalizado', 'password')
model

alias of Cronograma

create(validated_data)[source]

We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:

return ExampleModel.objects.create(**validated_data)

If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:

example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance

The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.

gera_proximo_numero_cronograma()[source]
update(instance, validated_data)[source]
validate(attrs)[source]
class EtapasDoCronogramaCreateSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

exclude = ('id', 'cronograma')
model

alias of EtapasDoCronograma

class EtapasDoCronogramaPontoAPontoCreateSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

Serializer simplificado para etapas do cronograma Ponto a Ponto (FLV). Omitidos campos de empenho e total de embalagens.

class Meta[source]

Bases: object

fields = ('uuid', 'etapa', 'data_programada', 'quantidade')
model

alias of EtapasDoCronograma

validate_data_programada(value)[source]

Converte MM/YYYY para o dia 01 do mês para salvamento.

class ProgramacaoDoRecebimentoDoCronogramaCreateSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

exclude = ('id', 'cronograma')
model

alias of ProgramacaoDoRecebimentoDoCronograma

class SolicitacaoDeAlteracaoCronogramaCreateSerializer(*args, **kwargs)[source]

Bases: ModelSerializer

class Meta[source]

Bases: object

exclude = ('id', 'usuario_solicitante', 'etapas_antigas', 'etapas_novas')
model

alias of SolicitacaoAlteracaoCronograma

create(validated_data)[source]

We have a bit of extra checking around this in order to provide descriptive messages when something goes wrong, but this method is essentially just:

return ExampleModel.objects.create(**validated_data)

If there are many to many fields present on the instance then they cannot be set until the model is instantiated, in which case the implementation is like so:

example_relationship = validated_data.pop(‘example_relationship’) instance = ExampleModel.objects.create(**validated_data) instance.example_relationship = example_relationship return instance

The default implementation also does not handle nested relationships. If you want to support writable nested relationships you’ll need to write an explicit .create() method.

valida_campo_etapa(etapa, campo)[source]
validate(attrs)[source]
validate_cronograma(value)[source]
novo_numero_solicitacao(objeto)[source]