A partir de agora, toda fórmula customizada que for utilizada no processo de emissão de nota fiscal eletrônica (NF-e), além do cálculo escrito na linguagem Visual Basic (VB), será necessário a escrita do cálculo na linguagem PL/SQL.
A inserção da fórmula no formato PL/SQL é necessária por uma questão de desempenho no processo de emissão da nota fiscal eletrônica.
O processo de geração da nota fiscal eletrônica se utiliza da tag <PL/SQL> nas fórmulas desde a liberação do projeto de adequação legal da “NF-e 4.0”.
Veja abaixo um exemplo de fórmula de conversão de unidade customizada que é utilizada na geração da NF-e contendo a tag <PLSQL>.
Function PC_KG()
Dim vPC_KG, tCONVERSOR, vQuantidade, vConversor
Dim CodPro, PadPro
CodPro = StrToInt("CODIGOPRODUTO")
PadPro = StrToInt("PADRAOPRODUTO")
tCONVERSOR = TTabela
tCONVERSOR.Create(ADM)
with tCONVERSOR
SQL.Add("SELECT P.PRO_RE_PELIQUIDO ")
SQL.Add(" FROM EST_PRODUTOS P ")
SQL.Add(" WHERE P.PRO_TAB_IN_CODIGO = :pPRO_TAB_IN_CODIGO ")
SQL.Add(" AND P.PRO_PAD_IN_CODIGO = :pPRO_PAD_IN_CODIGO ")
SQL.Add(" AND P.PRO_IN_CODIGO = :pPRO_IN_CODIGO ")
ParamByName("pPRO_TAB_IN_CODIGO").AsInteger = 100
ParamByName("pPRO_PAD_IN_CODIGO").AsInteger = PadPro
ParamByName("pPRO_IN_CODIGO").AsInteger = CodPro
end with
tCONVERSOR.Open
vQuantidade = StrToFloat("QTDCONVERTIDA")
if not tCONVERSOR.EOF then
vConversor = tCONVERSOR.Field("PRO_RE_PELIQUIDO").AsFloat
vQuantidade = vQuantidade * vConversor
end if
vPC_KG = Round(vQuantidade,3)
return vPC_KG
/*
declare
vQuantidade number; vConversor number;
begin
vQuantidade := xmltype(:pXML).extract('/Values/T_ItemDocumento/ITD_RE_QTDECONVERTIDA/text()').getNumberVal();
vConversor := xmltype(:pXML).extract('/Values/T_ItemDocumento/PRO_RE_PELIQUIDO/text()').getNumberVal();
:result := Round(vQuantidade * vConversor, 3);
end;
*/
end function
Caso o sistema não encontre a tag <PLSQL> durante o processo de geração da NF-e, será apresentada
a seguinte mensagem:
Comentários
0 comentário
Por favor, entre para comentar.