F135CMC - Conferência de Carga Agrupada
Esta tela é destinada à conferência dos itens da carga. Os itens das cargas que necessitam de conferência serão determinados no momento da geração da carga.
Importante
Para que esta tela esteja disponível, é necessário habilitar o parâmetro global ConCarAgr - Indicativo se o usuário conferente irá utilizar o processo de Conferência de Carga Agrupada (F135CMC).
Este parâmetro tem como padrão N - Não. Mas, se estiver como S - Sim, quando for aberta a tela Conferência de Cargas (F135CCA) para fazer a conferência, o sistema emitirá um aviso informando que o usuário conferente irá utilizar a nota tela Conferência de Carga Agrupada (F135CMC).
Processos
Na abertura desta tela, deve-se informar o número da carga que precisa ser conferida. Então, serão carregadas para a grade superior, todas as pré-faturas e seus respectivos itens que necessitam de conferência.
Uma vez as informações carregadas, caso já existia anteriormente uma conferência em andamento, o sistema emitirá uma mensagem perguntando se deseja continuar a conferência ou começar novamente do início.
Para que os produtos sejam conferidos, basta que seja colocada alguma informação no campo Cód.Barras. Deve-se digitar e/ou ler a informação base da pesquisa para que o sistema possa procurar e verificar se esse item pertence a um dos produtos listados na grade superior (não necessariamente o item que está posicionado). Após a leitura do Cód.Barras, o sistema internamente fará as buscas para encontrar o produto na seguinte ordem:
- Aciona o identificador de regras VEN-135CBCCA01. Se esse identificador retornar o código do produto/derivação para ser conferido, a rotina irá pesquisar o item na grade superior, conforme o código do produto, derivação e sequência do item da pré-fatura retornados pela regra. Sendo a sequência, um item opcional;
- Caso não encontrar pelo item 1, o sistema irá procurar pelo código EAN do produto, seguindo a mesma lógica de procura do produto;
- Caso não encontrar pelo item 2, o sistema irá procurar pelo código LIVRE do produto, seguindo a mesma lógica de procura do produto;
- Caso não encontrar pelo item 3, o sistema irá procurar pelo código de SÉRIE do produto, seguindo a mesma lógica de procura do produto;
- Caso não encontrar pelo item 4, o sistema irá procurar pelo código de barras do FORNECEDOR do produto, seguindo a mesma lógica de procura do produto;
- Caso não encontrar pelo item 5, o sistema irá procurar pelo código de VOLUME do produto, seguindo a mesma lógica de procura do produto.
Na conferência conforme relação acima, os critérios de busca não atendem pedidos gerados com produtos controlados por lote informados na formação da carga. Para este critério, a busca para conferência é atendida pela tela Conferência de Cargas (F135CCA).
Se em alguma das buscas acima o produto for retornado e existir na grade superior, então os seguintes campos serão atualizados:
Qtde Lida
Definido pela regra VEN-135CBCCA01 ou pela própria tela.
Nr.Leitura
Será acrescido de "1" para cada código de barras lido.
Saldo p/ Conferir
Será o resultado do cálculo: Qtde Pedida - Qtde Lida.
Qualquer item da grade superior que atingir a quantidade será processado e, automaticamente, será excluído da grade.
Os produtos lidos que estão listados na grade inferior permanecerão até a conclusão da conferência da pré-fatura.
Se nenhum registro for encontrado, então, será exibida uma mensagem informando que o item não existe na pré-fatura.
O processo da tela Conferência de Cargas (F135CCA) possui opções para emitir aviso sonoro e exibir mensagens quando o produto lido na conferência não for encontrado. Essas opções estão disponíveis na tela Seleção (F135SCC).
Os seguintes campos influenciam na rotina:
Conferência da carga antes do seu fechamento
Indica se haverá necessidade de conferência da carga antes do fechamento da mesma. Este campo está disponível na tela Parâmetros da Filial para Vendas (F070FVE), guia Vendas 2, com a descrição "Conferir Carga Antes do Fechamento".
Conferência de quantidade na carga
Indica se necessita de conferência de quantidades na carga. Este campo está disponível na tela Cadastro de Produtos (F075PRO), guia Derivações, com a descrição "Conferir Qtde nas Cargas".
Itens da Pré-fatura conferidos
Indica se todos os itens da pré-fatura foram conferidos. Este campo será atualizado quando da formação das cargas. Caso o campo Conferir Carga Antes do Fechamento dos parâmetros da filial para vendas estiver definido com o valor "S - Sim", e o item de produto estiver com o campo Conferir Qtde nas Cargas igual a "S - Sim", então, esse campo da carga receberá o valor "N - Não", ou seja, os itens da pré-fatura ainda não foram conferidos. Caso nenhum item da pré-fatura possua o indicativo de necessidade de conferência de quantidades nas cargas, então o campo E135PFAPESCNF irá receber o valor "S - Sim". A carga/pré-fatura não poderá ser alterada/fechada enquanto esse campo estiver com o valor "N - Não".
Tipo de conferência do item
Indicativo do tipo de conferência do item. Este campo irá receber o valor "0" se o produto/derivação não possuir indicativo de necessidade de conferência de quantidades nas cargas. Caso o campo E075DER.INDPCQ for igual a "S - Sim", então, esse campo receberá o valor "1", que indicará que o item necessita de conferência. Após a conferência da carga/pré-fatura através desta tela, a rotina irá alterar esse campo para "2", indicando que o item foi conferido; ou "3", se o item foi conferido e o saldo a menor entre o que foi pedido e o que foi lido deverá ser cancelado. O cancelamento do saldo no pedido se dará ao faturar a carga. No caso de produto do tipo Kit, os componentes ficarão como "0 - Não conferir", e somente o produto pai será conferido.
Ao selecionar o campo Conf. Item, caso já tenha sido efetuada alguma leitura do item e, então, processar, o sistema irá verificar o retorno referente ao cancelamento de saldo (variável VSDisCancelar, do identificador de regra VEN-135CBCCA01).
Caso seja retornado "S - Sim" ao processar, marcando a opção de conferir o item, o saldo do item que não foi lido será retirado da pré-fatura e cancelado no pedido. E caso o retorno seja "N - Não", o sistema irá assumir que o saldo não deve ser cancelado e irá retirar as quantidades da pré-fatura, deixando em aberto no pedido para que possam ser pré-faturadas posteriormente. Quando nenhum item for lido, ele será removido da pré-fatura, reabrindo no pedido. Não é permitido marcar para conferir o item quando o pedido no qual ele pertence não aceita parcial; e marcar para conferir o item quando o mesmo é controlado por múltiplos volumes. Pois, não é permitido fazer conferência parcial de itens múltiplos volumes.
Após a conferência de todos os itens da pré-fatura através, o campo E135PFA.PFACNF passará a ter o valor "S - Sim", indicando que todos os itens da pré-fatura foram conferidos.
A função de programador RetornarDigitoVerificadorVolume permite informar ao sistema o código do dígito verificador de volume para cada código de barras da empresa.
Além da função de programador, o dígito verificador de volumes será controlado conforme o valor definido no campo Qtd. Caracteres Controle Leitura Volumes (F070EMP). Desta maneira, quando um código de barras for lido com o mesmo dígito verificador, haverá uma consistência, pois, não é possível efetuar a leitura de códigos de barras com o dígito verificador em duplicidade.
Observação
O controle do dígito verificador apenas será efetuado para volumes e múltiplos volumes, não compreendendo as demais leituras.
Campos
Carga
Número da carga a conferir.
Nota
Ao sair do campo, será verificado se a conferência da carga foi realizada (parcialmente) ou será realizada por outro usuário. Ao ir para outro usuário, o sistema questionará se o usuário logado deseja assumir a conferência. Caso sim, a conferência será atualizada com o usuário de conferência da carga (E135ANE) e uma observação será incluída (E135OBS) para a pré-fatura, informando que o usuário logado assumiu a conferência de outro usuário.
Caso opte por "Não", a conferência da carga não poderá ser realizada.
Pré-Fatura
Número da pré-fatura a conferir.
Botões
Seleção
Acesso à tela Conferência de Cargas - Seleção (F135SCC) com campos auxiliares para a rotina.
Consulta
Exibe a tela Alteração da Situação das Pendências para a Carga (F097SIT).
Parâmetros Globais
Nome | Descrição |
---|---|
CncSldCCa | Criado o parâmetro global CncSldCCa cujo objetivo é permitir a conclusão da conferência da carga, cancelando o saldo não conferido e liberando-a fechamento. |
Identificadores de Regras
VEN | 135CBCCA01 |
VEN | 135CBCCA02 |
VEN | 135CCACC01 |
@##################################################################################@
@ BUSCA O CODIGO LIDA EM VARIOS LOCAIS DE CADASTRO @
@ Identificador de Regra: VEN-135CBCCA01 REGRA: 004 @
xpto=0;
Definir alfa vaNumAne;
Definir alfa vaNumPfa;
Definir alfa vaCodEmp;
Definir alfa vaCodfil;
Definir alfa vaCodBar;
Definir Numero VSDisCodEmp;
intparaalfa(VSDisCodEmp,vaCodEmp);
Definir alfa VSDisCodBar;
Definir Numero VSDisCodFil;
intparaalfa(VSDisCodFil,vaCodfil);
Definir Numero VSDisNumAne;
intparaalfa(VSDisNumAne,vaNumane);
intparaalfa(VsDisNumPfa,vaNumPfa);
Definir Alfa VSDisCodPro;
Definir Alfa VSDisCodDer;
Definir Alfa VSDisOperacao;
Definir Alfa VSDisRetQtdLid;
Definir Alfa VSDisSomarQuantidades;
Definir Alfa VSDisProcessar;
Definir Alfa VSDisCancelar;
Definir Alfa VSDisInfQtd;
Definir Alfa VSDisProcSalZero;
Definir numero VSDisSeqPes;
@-------- Tira o item da pré-fatura mas não cancela o item do pedido ----------@
Definir alfa VSDisCancelar ;
VSDisCancelar ="N";
@------------------------------------------------------------------------------@
Definir Numero vnCodEmp;
Definir alfa vaCodBar;
Definir alfa vaCodBarLido;
vaCodBar=VSDisCodBar;
Definir alfa vaCodPro;
Definir alfa vaCodDer;
Definir Alfa vaCursorCodigoBarras;
Definir Alfa vaComandoCodigoBarras;
Definir Alfa vaCursorItemPreFatura;
Definir Alfa vaComandoItemPreFatura;
Definir cursor C_PES;
Definir alfa vaCodOri;
Definir alfa vaCodFam;
Definir alfa vaQtd;
Definir Alfa vaAuxiliar;
SE (VSDisOperacao = "PARAMETRIZAR")
INICIO
VSDisProcessar = "S";
VSDisInfQtd = "N";
VSDisProcSalZero = "S";
FIM
SE (VSDisOperacao = "PROCESSAR")
{
Definir alfa vCursorBAR;
Definir alfa vQueryBAR;
SQL_Criar(vCursorBAR);
Definir alfa vQueryBAR1;
vQueryBAR1 ="SELECT * FROM USU_VCODEXP WHERE CODEMP="+vaCodEmp+" AND CODFIL="+vaCodFil+" AND NUMANE="+vaNumAne;
se(VsDisNumPfa>0)
{
vQueryBAR1=vQueryBAR1+" AND NUMPFA="+vaNumPfa;
}
vQueryBAR1=vQueryBAR1+" AND CODBAR='"+vaCodBar+"' ORDER BY 1";
vQueryBAR=vQueryBAR1;
SQL_DefinirComando(vCursorBAR,vQueryBAR);
SQL_AbrirCursor(vCursorBAR);
SE(SQL_EOF(vCursorBAR) = 0)
{
@DEFINIÇÃO DE VALORES AOS PARAMETROS DO COMANDO SQL@
SQL_RetornarInteiro(vCursorBAR,"SEQ",vnSeq);
SQL_RetornarAlfa(vCursorBAR,"CODPRO",VSDisCodPro);
SQL_RetornarAlfa(vCursorBAR,"CODDER",VSDisCodDer);
@----------- VERIFICA SE O PRODUTO É MULTIPLO VOLUME -----------------@
Definir Cursor vCursorMV;
vCursorMV.SQL "SELECT qtdvol FROM e075pro WHERE CODPRO=:VSDisCodPro";
vCursorMV.AbrirCursor();
SE(vCursorMV.Achou)
{
vnQtdVol=vCursorMV.qtdvol;
}
senao
{
vnQtdVol=0;
}
vCursorMV.FecharCursor();
@---------------------------------------------------------------------@
SE (VSDisQtdPro = 0) @ não informou quantidade na tela F135CCA (VSDisInfQtd = "N") @
{
VSDisQtdPro = 1;
}
@======= código lido igual ao código de produto da derivação ========@
SE (vaCodPro = VSDisCodPro)
{
@ a quantidade está no próprio código de barras @
vnQtd=1;
SE (vnQtd>0)
{
VSDisQtdPro = vnQtd;
}
SENAO
{
VSDisQtdPro = 1;
}
}
VSDisQtdLid = VSDisQtdLid;
@==============================================================================@
@ VERIFICA SE O PRODUTO/DERIVAÇÃO ESTÁ NA PREFATURA @
@==============================================================================@
Definir Cursor vCursorPFA;
SE(VsDisNumPfa>0)
{
vCursorPFA.SQL "SELECT SEQPES,NUMPFA FROM E135PES \
WHERE CODEMP=:vaCodEmp AND CODFIL=:vaCodFil AND NUMANE=:vaNumAne AND NUMPFA=:vaNumPfa \
AND CODPRO=:VSDisCodPro and CODDER=:VSDisCodDer AND PESCNF = 1 ";
@AND PESCNF=1 a CONFERIR PQ VSDisSeqPes NAO ESTÁ RETORNANDO VALOR@
}
SENAO
{
vCursorPFA.SQL "SELECT SEQPES,NUMPFA FROM E135PES \
WHERE CODEMP=:vaCodEmp AND CODFIL=:vaCodFil AND NUMANE=:vaNumAne \
AND CODPRO=:VSDisCodPro and CODDER=:VSDisCodDer AND PESCNF = 1 ";
@AND PESCNF=1 a CONFERIR PQ VSDisSeqPes NAO ESTÁ RETORNANDO VALOR@
}
vCursorPFA.AbrirCursor();
SE(vCursorPFA.Achou)
{
VSDisSeqPes=vCursorPFA.SEQPES;
VSDisNumPfa=vCursorPFA.NUMPFA;
VSDisProcessar = "S";
}
SENAO
{
GeraLog("Produto não localizado na pré-fatura");
}
vCursorPFA.FecharCursor();
}
SENAO @SE NÃO ENCONTROU O CÓDIGO DE BARRAS EM UMA DAS 4 TABELAS @
{
GeraLog("Produto não localizado nesta Pré-Fatura...");
}
SQL_FecharCursor(vCursorBAR);
SQL_Destruir(vCursorBAR);
}