x
1
DECLARE
2
ICMS_Code CHARACTER VARYING;
3
TaxName_ID INTEGER = get_sysconfig(taxname, '0', CLIENT_ID, ORG_ID);
4
DateNow TIMESTAMP = getDate();
5
BEGIN
6
BEGIN
7
SELECT
8
taxCL.COF_Classification
9
INTO STRICT ICMS_Code
10
FROM
11
COF_C_TaxClassification taxC
12
LEFT JOIN COF_C_TaxClassificationLine taxCL ON (taxC.COF_C_TaxClassification_ID=taxCL.COF_C_TaxClassification_ID)
13
14
WHERE
15
CASE WHEN TaxName_ID <=0 THEN taxC.LBR_TaxName_ID IS NULL AND taxC.cof_isSimpleNational='Y' ELSE taxC.LBR_TaxName_ID=TaxName_ID AND taxC.cof_isSimpleNational='N'END AND taxC.IsActive='Y' AND taxCL.IsActive='Y' AND taxC.AD_Client_ID IN (0, CLIENT_ID) AND taxC.AD_Org_ID IN (0,ORG_ID) AND taxCL.AD_Client_ID IN (0,CLIENT_ID) AND taxCL.AD_Org_ID IN (0,ORG_ID)
16
AND taxC.ValidFrom::DATE <= DateNow AND taxC.ValidTo::DATE >= DateNow
17
AND taxCL.COF_OperationType = TpOperation
18
AND (taxCL.LBR_TaxStatus_ID IS NULL OR taxCL.LBR_TaxStatus_ID IN (SELECT LBR_TaxStatus_ID FROM LBR_TaxStatus WHERE LBR_TaxName_ID=TaxName_ID AND LTRIM(RTRIM(Name)) = LTRIM(RTRIM(TaxStatus)) AND IsActive='Y'))
19
AND (taxCL.LBR_CFOP_ID = CFOP_ID OR taxCL.LBR_CFOP_ID IS NULL)
20
21
ORDER BY taxCL.AD_Client_ID, taxCL.AD_Org_ID DESC, taxCL.LBR_CFOP_ID DESC
22
LIMIT 1;
23
EXCEPTION
24
WHEN NO_DATA_FOUND THEN
25
ICMS_Code := '';
26
END;
27
RETURN ICMS_Code;
28
END;