Whylode
Memoir

Program

INVCALC.rpgle

3 notes. Lines with a note are marked in brass.

INVCALC.rpgleScroll sideways for full lines
1H DFTACTGRP(*NO) ACTGRP(*CALLER)
2H OPTION(*SRCSTMT)
3 *
4 * INVCALC - Invoice Tax Calculation
5 * Receives order amount and customer type, returns tax amount.
6 *
7 * Maintenance log:
8 * 2019-03 RLT Initial version
9 * 2021-11 RLT Chg per sales ops req
10 *
11FTAXTBL IF E K DISK
12 *
13D CustNo S 7P 0
14D CustType S 2A
15D OrderAmt S 11P 2
16D TaxAmt S 11P 2
17D ErrFlag S 1A
18 *
19D TaxRate S 7P 4
20D CalcBase S 11P 2
21 *
22C *ENTRY PLIST
23C PARM CustNo
24C PARM CustType
25C PARM OrderAmt
26C PARM TaxAmt
27C PARM ErrFlag
28 *
29 * Set rate
30C EVAL TaxRate = 0.0725
31 *
32 * Check override
33C CustType CHAIN TAXTBL
34C IF %FOUND
35C EVAL TaxRate = TBTAXRT
36C ENDIF
37 *
38 *
39C IF CustType = 'C2'
40C SETON 42
41C ENDIF
42 *
43C IF *IN42 = *ON
44C EVAL TaxRate = 0.0525
45C ENDIF
46 *
47 * Calc tax
48C EVAL CalcBase = OrderAmt
49C EVAL TaxAmt = CalcBase * TaxRate
50 *
51 *
52C EVAL(H) TaxAmt = TaxAmt
53 *
54C EVAL *INLR = *ON