Definição da Regra de Negócio
Alterar programa de geração de documento de transferência WM9090 para permitir a alocação de saldos com status 3, 4 e 7.
Sendo assim na linha 173, alterar a situação atual:
IF wm-box-saldo.ind-status-saldo <> 3
Para:
(wm-box-saldo.ind-status-saldo = 1 OR
wm-box-saldo.ind-status-saldo = 2 OR
wm-box-saldo.ind-status-saldo = 5 OR
wm-box-saldo.ind-status-saldo = 6)
Alterar de confirmação de separação para incluir processo de registro de status dos saldos para utilizar no processo de destino no saldo e id movto deste.
Incluir a:
DEF INPUT PARAM i-ind-status-saldo-origem LIKE wm-box-saldo.ind-status-saldo NO-UNDO.
DEF OUTPUT PARAM o-ind-status-saldo-origem LIKE wm-box-saldo.ind-status-saldo NO-UNDO.
DEF INPUT PARAM i-id-movto-box-saldo LIKE wm-box-saldo.id-movto NO-UNDO.
DEF OUTPUT PARAM o-id-movto-box-saldo LIKE wm-box-saldo.id-movto NO-UNDO.
No bloco de confirmação de saída, onde estas são realizadas COM etiqueta, no bloco de posicionamento da wm-box-saldo, na linha 598, alterar:
ASSIGN wm-box-saldo.qtd-item-bloq = wm-box-saldo.qtd-item-bloq + tt-etiqueta.qtd-item
Para:
ASSIGN wm-box-saldo.qtd-item-bloq = wm-box-saldo.qtd-item-bloq + tt-etiqueta.qtd-item
o-ind-status-saldo-origem = wm-box-saldo.ind-status-saldo
o-id-movto-box-saldo = wm-box-saldo.id-movto.
No bloco de confirmação de saída, onde estas são realizadas SEM etiqueta, no bloco de posicionamento da wm-box-saldo, na linha 701, alterar:
FOR EACH wm-box-saldo EXCLUSIVE-LOCK
WHERE wm-box-saldo.cod-estabel = wms-box-sdo-alocad.cod-estabel
AND wm-box-saldo.cod-local = wms-box-sdo-alocad.cod-local
AND wm-box-saldo.cod-cliente = wms-box-sdo-alocad.cod-cliente
AND wm-box-saldo.id-box = wms-box-sdo-alocad.id-box
AND wm-box-saldo.cod-item = wms-box-sdo-alocad.cod-item
AND wm-box-saldo.cod-refer = wms-box-sdo-alocad.cod-refer
AND wm-box-saldo.cod-lote = wms-box-sdo-alocad.cod-lote
AND wm-box-saldo.cod-embalagem = wms-box-sdo-alocad.cod-embalagem
AND wm-box-saldo.ind-status-saldo = 3
Para:
FOR EACH wm-box-saldo EXCLUSIVE-LOCK
WHERE wm-box-saldo.cod-estabel = wms-box-sdo-alocad.cod-estabel
AND wm-box-saldo.cod-local = wms-box-sdo-alocad.cod-local
AND wm-box-saldo.cod-cliente = wms-box-sdo-alocad.cod-cliente
AND wm-box-saldo.id-box = wms-box-sdo-alocad.id-box
AND wm-box-saldo.cod-item = wms-box-sdo-alocad.cod-item
AND wm-box-saldo.cod-refer = wms-box-sdo-alocad.cod-refer
AND wm-box-saldo.cod-lote = wms-box-sdo-alocad.cod-lote
AND wm-box-saldo.cod-embalagem = wms-box-sdo-alocad.cod-embalagem
ASSIGN o-ind-status-saldo-origem = wm-box-saldo.ind-status-saldo
o-id-movto-box-saldo = wm-box-saldo.id-movto.
No processo de entrada alterar:
Linha 817:
ASSIGN wm-box-movto.ind-status-movto = 3 /* Atualizado */
wm-box-saldo.ind-status-saldo = 3. /*Liberado*/
Para:
ASSIGN wm-box-movto.ind-status-movto = 3 /* Atualizado */
wm-box-saldo.ind-status-saldo = IF (i-ind-status-saldo-origem = 1 OR i-ind-status-saldo-origem = 3) THEN 3 ELSE i-ind-status-saldo-origem /*Status do movimento de origem*/
wm-box-saldo.id-movto = IF i-ind-status-saldo-origem = 7 THEN i-id-movto-box-saldo ELSE wm-box-movto.id-movto.
Alterar as chamadas dos programas WM9091, para as alterações citadas na REQ001.
Processo de Confirmação de Saída:
RUN wmp/wm9091.p (INPUT r-box-movto,
INPUT 0, /* box destino */
INPUT c-usuario,
INPUT "", /* equipto */
INPUT "", /* coletor */
INPUT TIME, /* hora inicio */
INPUT NO,
INPUT 0,
INPUT i-ind-status-saldo-origem,
OUTPUT o-ind-status-saldo-origem,
INPUT i-id-movto-box-saldo,
OUTPUT o-id-movto-box-saldo,
INPUT TABLE tt-etiqueta,
OUTPUT TABLE RowErrors).
Processo de confirmação de entrada:
RUN wmp/wm9091.p (INPUT r-box-movto,
INPUT ttWm-box-movto.id-box, /* box destino */
INPUT c-usuario,
INPUT "", /* equipto */
INPUT "", /* coletor */
INPUT TIME, /* hora inicio */
INPUT NO,
INPUT 0,
INPUT o-ind-status-saldo-origem,
OUTPUT o-ind-status-saldo-origem,
INPUT o-id-movto-box-saldo,
OUTPUT o-id-movto-box-saldo,
INPUT TABLE tt-etiqueta,
OUTPUT TABLE RowErrors).
Alterar os programas BC9025L:
Incluir variáveis:
DEFINE VARIABLE i-ind-status-saldo-origem LIKE wm-box-saldo.ind-status-saldo NO-UNDO.
DEFINE VARIABLE o-ind-status-saldo-origem LIKE wm-box-saldo.ind-status-saldo NO-UNDO.
DEFINE VARIABLE i-id-movto-box-saldo LIKE wm-box-saldo.id-movto NO-UNDO.
DEFINE VARIABLE o-id-movto-box-saldo LIKE wm-box-saldo.id-movto NO-UNDO.
Alterar as chamadas do programa WM9091:
Processo de saída:
RUN wmp/wm9091.p(INPUT ROWID(wm-box-movto), /* pRwMovto */
INPUT ?, /* pIdBoxDestino */
INPUT ttWork.cod-usuario, /* pCodUsuario */
INPUT ttWork.cod-equipamento,/* pCodEqpto */
INPUT ttWork.cod-coletor, /* pCodColetor */
INPUT TIME, /* pHoraInicio */
INPUT NO, /* pSobreporBox */
INPUT 0, /* pIdAgrupador */
INPUT i-ind-status-saldo-origem,
OUTPUT o-ind-status-saldo-origem,
INPUT i-id-movto-box-saldo,
OUTPUT o-id-movto-box-saldo,
INPUT TABLE tt-etiqueta, /* tt-etiqueta */
OUTPUT TABLE RowErrors). /* rowerrors */
Processo entrada:
RUN wmp/wm9091.p (INPUT ttWm-box-movto-idx.r-rowid, /* pRwMovto */
INPUT ttWork.num-box-orig, /* pIdBoxDestino */
INPUT ttWork.cod-usuario, /* pCodUsuario */
INPUT ttWork.cod-equipamento, /* pCodEqpto */
INPUT ttWork.cod-coletor, /* pCodColetor */
INPUT TIME, /* pHoraInicio */
INPUT YES, /* pSobreporBox */
INPUT 0, /* pIdAgrupador */
INPUT o-ind-status-saldo-origem,
OUTPUT o-ind-status-saldo-origem,
INPUT o-id-movto-box-saldo,
OUTPUT o-id-movto-box-saldo,
INPUT TABLE tt-etiqueta, /* tt-etiqueta */
OUTPUT TABLE RowErrors). /* rowerrors */
Alterar BC9025M:
O programa BC9025M após a o comando 888888, executa o BC9025. Sendo assim, os retornos das variáveis i-ind-status-saldo-origem, o-ind-status-saldo-origem, i-id-movto-box-saldo e o-id-movto-box-saldo. Devem estar disponíveis para o programa BC9025O.
RUN wmp/wm9091.p(INPUT ROWID(wm-box-movto), /* pRwMovto */
INPUT ?, /* pIdBoxDestino */
INPUT ttWork.cod-usuario, /* pCodUsuario */
INPUT ttWork.cod-equipamento, /* pCodEqpto */
INPUT ttWork.cod-coletor, /* pCodColetor */
INPUT TIME, /* pHoraInicio */
INPUT NO, /* pSobreporBox */
INPUT 0, /* pIdAgrupador */
INPUT i-ind-status-saldo-origem,
OUTPUT o-ind-status-saldo-origem,
INPUT i-id-movto-box-saldo,
OUTPUT o-id-movto-box-saldo,
INPUT TABLE tt-etiqueta, /* tt-etiqueta */
OUTPUT TABLE RowErrors). /* rowerrors */
Alterar BC9025O:
RUN wmp/wm9091.p (INPUT ttWm-box-movto-idx.r-rowid, /* pRwMovto */
INPUT ttWork.num-box-orig, /* pIdBoxDestino */
INPUT ttWork.cod-usuario, /* pCodUsuario */
INPUT ttWork.cod-equipamento, /* pCodEqpto */
INPUT ttWork.cod-coletor, /* pCodColetor */
INPUT TIME, /* pHoraInicio */
INPUT YES, /* pSobreporBox */
INPUT 0, /* pIdAgrupador */
INPUT o-ind-status-saldo-origem,
OUTPUT o-ind-status-saldo-origem,
INPUT o-id-movto-box-saldo,
OUTPUT o-id-movto-box-saldo,
INPUT TABLE tt-etiqueta, /* tt-etiqueta */
OUTPUT TABLE RowErrors). /* rowerrors */
Mapa Mental
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
[ACAA040 – Parâmetros] | [Alteração] | [Atualizações > Acadêmico > Tesouraria] | - |
[ACAA050 – Negociação Financeira] | [Envolvida] | [Atualizações > Acadêmico > Tesouraria] | - |
[ACAA060 – Cadastro de Pedidos] | [Criação] | [Atualizações > Acadêmico > Cadastros] | - |
Exemplo de Aplicação:
Criar o campo “% Mínimo Espécie” (AAA_PERESP), onde o usuário informará o % (percentual) que o aluno pagará em dinheiro. Esse % (percentual) poderá ser alterado durante a negociação.
Criar o campo Referência Mínima para Cálculo (AAA_REFCAL), onde o usuário informará um dos 4 valores disponíveis para pagamento das mensalidades, como a referência mínima para calcular o débito total do aluno.
Criar o parâmetro MV_ACPARNE que definirá se as informações de % Mínimo Espécie e Referência Mínima para Cálculo serão obrigatórias.
O parâmetro MV_ACPARNE deve ter as seguintes opções: 1=Obrigatório e 2=Opcional. Deve ser inicializado como opcional.
Tabelas Utilizadas: