Pontos de Execução de Scripts
Revisão de 16h55min de 16 de outubro de 2025 por Alex.vieira (discussão | contribs)
Conceito
Os pontos de execução de scripts permitem associar scripts personalizados a momentos específicos do funcionamento do sistema. Com ele, é possível inserir lógicas adicionais, realizar validações, ajustar cálculos, sem alterar diretamente o código principal. Os pontos de execução são disparados em etapas estratégicas de processos, garantindo flexibilidade e controle sobre comportamentos que precisam ser adaptados conforme a necessidade.
Pontos de Execução Disponíveis
- OnChangeItemFaturamento: Este ponto de script é acionado durante a alteração de um item na tela de faturamento. Após o processamento das informações relacionadas ao produto, como unidade de medida e valor da tabela de preços, ocorre a chamada deste script. Em seguida, são executadas as rotinas relacionadas às informações fiscais. Vale ressaltar que é possível usar os parâmetros dos campos dos itens para realizar comportamento específicos, ou seja, parâmetros como VALORUNITARIO ou QUANTIDADE é possível consumir.
- Parâmetros:
- ItemID: Identificador do item que executou o evento.
- DocumentoID: Identificar do documento no qual está sendo executado o processo.
- ItemTabela: Corresponde ao nome da tabela de itens do processo. [ITENS].
- DocumentoTabela: Corresponde ao nome da tabela de documento do processo. [DOCUMENTOS].
- Exemplo: O exemplo apresentado mostra como, no ponto de execução OnChangeItemFaturamento, é possível calcular automaticamente o valor de desconto de um item com base na condição de pagamento do documento. Quando o item é alterado, o script é acionado e executa o procedimento CalculoDesconto, que obtém o percentual de desconto definido para a condição de pagamento vinculada ao documento. Com esse percentual em mãos, o script calcula o valor do desconto aplicando-o sobre o valor total do item, considerando quantidade e valor unitário, e arredonda o resultado para duas casas decimais. Esse valor é então atribuído ao parâmetro de retorno VALORDESCONTO, permitindo que seja utilizado no processo de faturamento. O uso de parâmetros como DocumentoTabela e DocumentoID torna o script flexível, permitindo sua aplicação em diferentes processos, como faturamento, pedidos ou orçamentos, sem necessidade de alterações no código.
- Parâmetros:
procedure CalculoDesconto;
var
Q:TPHQuery;
begin
Q := NewPHQuery;
try
Q.Add('SELECT CPAG.C_PERCENTUALDESC '+
'FROM CONDICOESPAGAMENTO CPAG '+
'INNER JOIN '+ParamByName('DocumentoTabela').AsString+' DOC ON DOC.CONDICAOPAGAMENTO = CPAG.ID '+
'WHERE DOC.ID = :DOC');
Q.ParamByName('DOC').AsLargeInt := ParamByName('DocumentoID').AsLargeInt;
Q.Open;
ParamByName('VALORDESCONTO').AsFloat :=
Arredondar((((ParamByName('QUANTIDADE').AsFloat *
ParamByName('VALORUNITARIO').AsFloat) /100) * Q.FieldByName('C_PERCENTUALDESC').AsFloat),2);
finally
Q.Free;
end;
end;
begin
CalculoDesconto;
end.
- OnChangeItemPedidoVenda:
- Parâmetros:
- ItemID: Identificador do item que executou o evento.
- DocumentoID: Identificar do documento no qual está sendo executado o processo.
- ItemTabela: Corresponde ao nome da tabela de itens do processo. [PEDIDOITENS].
- DocumentoTabela: Corresponde ao nome da tabela de documento do processo. [PEDIDOS].
- Parâmetros:
- OnChangeItemOrdemServico:
- Parâmetros:
- ItemID: Identificador do item que executou o evento.
- DocumentoID: Identificar do documento no qual está sendo executado o processo.
- ItemTabela: Corresponde ao nome da tabela de itens do processo. [ORDEMSERVICOITENS].
- DocumentoTabela: Corresponde ao nome da tabela de documento do processo. [ORDENSSERVICO].
- Parâmetros:
- OnChangeItemOrcamento:
- Parâmetros:
- ItemID: Identificador do item que executou o evento.
- DocumentoID: Identificar do documento no qual está sendo executado o processo.
- ItemTabela: Corresponde ao nome da tabela de itens do processo. [ORCAMENTOITENS].
- DocumentoTabela: Corresponde ao nome da tabela de documento do processo. [ORCAMENTOS].
- Parâmetros: