Identificador de Regra
EST-210SUGPD01
Módulo: EST-Estoques.
Finalidade: possibilita a sugestão de itens de destino na tela de transferência entre estoques (F210TPA). É chamado ao inserir um item de origem quando o tipo de transferência for Entre Produtos.
Variáveis Disponibilizadas:
| Nome | Tipo | Observações | Retorna Valor |
|---|---|---|---|
| VSCodEmp | Número | Código da empresa logada | N |
| VSCodOri | Texto | Código da origem do item de origem | N |
| VSCodFam | Texto | Código da família do item de origem | N |
| VSCodPro | Texto | Código do produto do item de origem | N |
| VSCodDer | Texto | Código da derivação do item de origem | N |
| VSCodDep | Texto | Código do depósito do item de origem | N |
| VSCodLot | Texto | Código do lote do item de origem | N |
| VSNumSep | Texto | Código da série do item de origem | N |
| VSQtdOri | Número | Quantidade do item de origem | N |
| VSVlrOri | Número | Valor do item de origem | N |
| VSNumDoc | Número | Número do documento do item de origem | N |
| VSNumOrp | Número | Número da OP informada nos filtros de pesquisa da tela | N |
| VSLisDes | Número | Lista de itens de destino a ser populada pela regra | S |
Através da variável VSLisDes é possível definir os valores que serão usados para preencher a grade de itens de destino. As colunas disponíveis nessa lista são:
| Nome | Tipo | Observações | Retorna Valor |
|---|---|---|---|
| CodProDes | Texto | Código de item de destino | S |
| CodDerDes | Texto | Código da derivação do item de destino | S |
| CodDepDes | Texto | Código do depósito do item de destino | S |
| CodLotDes | Texto | Código do lote do item de destino | S |
| NumSepDes | Texto | Número da série do item de destino | S |
| QtdDes | Número | Quantidade do item de destino | S |
Observação
O valor do item de destino será o rateio do valor do item de origem pela quantidade de itens de destino. Dessa forma, as transações devem ser modificadas para utilizarem a Forma Valorização Movimento como F-Pelo Fechamento, utilizando assim o preço médio na contabilização.
/* Variáveis do identificador */
Definir Numero VSCodEmp;
Definir Alfa VSCodOri;
Definir Alfa VSCodFam;
Definir Alfa VSCodPro;
Definir Alfa VSCodDer;
Definir Alfa VSCodDep;
Definir Alfa VSCodLot;
Definir Alfa VSNumSep;
Definir Numero VSQtdOri;
Definir Numero VSVlrOri;
Definir Numero VSNumDoc;
Definir Numero VSNumOrp;
Definir Numero VSLisDes; /* Lista usada para definir os itens de destino */
/* Variáveis auxiliares */
Definir Alfa xStrAux;
Definir Cursor Cur_E900CMO;
/* O cursor lê os insumos da OP */
Cur_E900CMO.SQL "SELECT CodCmp, CodDer, CodDep, CodLot, NumSep, QtdUti \
FROM E900CMO \
WHERE CodEmp = :VSCodEmp \
and CodOri = :VSCodOri \
and NumOrp = :VSNumOrp \
and QtdUti > 0";
Cur_E900CMO.AbrirCursor();
Enquanto (Cur_E900CMO.Achou)
Inicio
/* Para cada registro encontrado é criada uma nova linha na lista */
ListaRegraNovaLinha(VSLisDes);
ListaRegraAddValorLinhaAlfa(VSLisDes, "CodProDes", Cur_E900CMO.CodCmp, xStrAux);
ListaRegraAddValorLinhaAlfa(VSLisDes, "CodDerDes", Cur_E900CMO.CodDer, xStrAux);
ListaRegraAddValorLinhaAlfa(VSLisDes, "CodDepDes", Cur_E900CMO.CodDep, xStrAux);
ListaRegraAddValorLinhaAlfa(VSLisDes, "CodLotDes", Cur_E900CMO.CodLot, xStrAux);
ListaRegraAddValorLinhaAlfa(VSLisDes, "NumSepDes", Cur_E900CMO.NumSep, xStrAux);
ListaRegraAddValorLinhaNumero(VSLisDes, "QtdDes", Cur_E900CMO.QtdUti, xStrAux);
/*Salva as colunas populadas acima na linha atual */
ListaRegraSalvarLinha(VSLisDes);
Cur_E900CMO.Proximo();
Fim;
Cur_E900CMO.FecharCursor();
English
Español
English
Español


