Ir para o conteúdo principal

Alteração na composição do CO

O gerador de CO (Código de Operação ou Código de Impressão), vigente desde novembro/2019, chegou a um denominador que está criando conflito em alguns clientes (como Objetiva).

Hoje, o CO é gerado através dos seguintes fatores:

Prefixo (2 dígitos, completados com zero a esquerda): 

  •  Se a impressão está vinculado a uma ação direta de caixa (com o caixa vinculado), pega os dois últimos dígitos do campo `caixa`.`id`.
  • Se a impressão não estiver vinculado a uma ação direta de caixa (sem o caixa vinculado), e estiver vinculado a um servidor sincronismo pega os dois últimos dígitos do campo `sincronismo`.`id`.
  • Caso contrário, determina 0.

Miolo (10 dígitos):

  • Converte a data atual para EPOCH (unixtime) e pega os 5 últimos dígitos.
  • Acrescenta com os 5 últimos dígitos do campo `impressao`.`id`.

Sufixo (1 dígito):

  •  Se é um registro vinculado a uma ação direta de caixa (com o caixa vinculado) e estiver em um servidor sincronismo, define 1, se não estiver em um servidor de sincronismo, define 0. -
  •  Se não for um registro vinculado a uma ação direta de caixa (sem o caixa vinculado) e estiver em um servidor sincronismo, define 4, caso contrário 9. -
  •  Se for detectado duplicidade do código no local (onde a impressão está sendo gerada) e estiver em um servidor sincronismo, define 3, caso contrário 2.

Exemplo, considerando o seguinte registro:

  • Id Caixa: 761
  • Id Impressão: 9626 
  • Sincronismo: Não 
  • Data da Ocorrência: 03/05/2024 12:12:16
  • C.O gerado: 61-4913609626-0

Foi aplicado a seguinte alteração de formato:

  • Prefixo (3 dígitos, completados com zero a esquerda):
  • Se a impressão está vinculado a uma ação direta de caixa (com o caixa vinculado), pega os 3 últimos dígitos do campo `entidade`.`id`, caso contrário define 0.

Miolo (11 dígitos):

  • Pega o ano, em 2 dígitos, do campo `impressao`.`data_impressao`.
  • Se estiver em um servidor de sincronismo, define 1, caso contrário, define 0. 
  • Pega o dia do ano, em 3 dígitos completados com zero, do campo `impressao`.`data_impressao`.
  • Acrescenta com os 5 últimos dígitos do campo `impressao`.`id`.

Sufixo (2 dígitos, completados com zero a esquerda):

  • Dígitos de Controle Módulo 11, baseado no calculo do CPF (o mesmo que usamos na geração do código do PACK);

Exemplo, considerando o seguinte registro:

  • Id Entidade: 1 -
  • Id Impressão: 9633 -
  • Sincronismo: Não -
  • Data da Impressão: 2024-05-10 10:05:48 -
  • C.O gerado: 001-24013009633-00