/* INTRANET_S_Base_Values_Analysis.p */ /* last print date 110407 */
/* RUNTIME ~ 7 min. */
/********************************************************/
/* PROGRESS Base Values Analysis - csv file re Intranet */
/********************************************************/
DEF VAR qbf-count AS INT.
DEF VAR qbf-loop AS INT.
DEF VAR qbf-time AS INT.
DEF VAR qbf-002 AS CHAR.
DEF VAR qbf-003 AS DEC.
DEF VAR qbf-004 AS DEC.
DEF VAR qbf-005 AS DEC.
DEF VAR qbf-003# AS DEC.
DEF VAR qbf-004# AS DEC.
DEF VAR qbf-005# AS DEC.
DEF BUFFER D2_MOVE FOR SYDB.D2_MOVE.
DEF BUFFER A1_TRAD_POINT FOR SYDB.A1_TRAD_POINT.
DEFINE VARIABLE mh AS INTEGER.
DEFINE VARIABLE yr AS INTEGER.
DEFINE VARIABLE idayb AS INTEGER.
DEFINE VARIABLE idaye AS INTEGER.
DEFINE VARIABLE imon AS INTEGER.
DEFINE VARIABLE iyr AS INTEGER.
DEFINE VARIABLE bdate AS DATE FORMAT "99/99/9999".
DEFINE VARIABLE edate AS DATE FORMAT "99/99/9999".
ASSIGN
qbf-count = 0
qbf-time = TIME
/* additional */
mh = MONTH(TODAY)
yr = YEAR(TODAY).
CASE mh:
WHEN 1 THEN
ASSIGN
imon = 1
idaye = 31
iyr = yr.
WHEN 2 THEN
ASSIGN
imon = 2
iyr = yr.
WHEN 3 THEN
ASSIGN
imon = 3
idaye = 31
iyr = yr.
WHEN 4 THEN
ASSIGN
imon = 4
idaye = 30
iyr = yr.
WHEN 5 THEN
ASSIGN
imon = 5
idaye = 31
iyr = yr.
WHEN 6 THEN
ASSIGN
imon = 6
idaye = 30
iyr = yr.
WHEN 7 THEN
ASSIGN
imon = 7
idaye = 31
iyr = yr.
WHEN 8 THEN
ASSIGN
imon = 8
idaye = 31
iyr = yr.
WHEN 9 THEN
ASSIGN
imon = 9
idaye = 30
iyr = yr.
WHEN 10 THEN
ASSIGN
imon = 10
idaye = 31
iyr = yr.
WHEN 11 THEN
ASSIGN
imon = 11
idaye = 30
iyr = yr.
WHEN 12 THEN
ASSIGN
imon = 12
idaye = 31
iyr = yr.
END CASE.
CASE mh:
WHEN 2 THEN
CASE yr:
WHEN 2004 OR WHEN 2008 OR WHEN 2012 OR WHEN 2016 OR WHEN 2020 OR WHEN 2024 THEN
ASSIGN
idaye = 29.
OTHERWISE
ASSIGN
idaye = 28.
END CASE.
END.
ASSIGN
idayb = 1
bdate = DATE(imon,idayb,iyr)
edate = DATE(imon,idaye,iyr).
OUTPUT TO \\enconfs10\csv\base_values_analysis.csv.
/* Headers */
PUT CONTROL
'~"' "T/P Name" '~"'
"~,"
'~"' "Movement Type" '~"'
"~,"
'~"' "Value" '~"'
"~,"
'~"' "Cost" '~"'
"~,"
'~"' "Profit" '~"'
"~,"
CHR(13) CHR(10).
main-loop:
FOR EACH SYDB.D2_MOVE NO-LOCK
WHERE (( SYDB.D2_MOVE.mv_date >= bdate AND SYDB.D2_MOVE.mv_date <= edate ) AND (SYDB.D2_MOVE.mv_type = "002" OR SYDB.D2_MOVE.mv_type = "003")),EACH SYDB.A1_TRAD_POINT NO-LOCK
OF SYDB.D2_MOVE
BREAK BY SYDB.D2_MOVE.trad_code
BY SYDB.D2_MOVE.mv_type:
qbf-count = qbf-count + 1.
ASSIGN
qbf-002 = IF (SYDB.D2_MOVE.mv_type = "002") THEN ("Sales") ELSE ("Returns")
qbf-003 = IF (SYDB.D2_MOVE.mv_type = "002") THEN (SYDB.D2_MOVE.mv_value) ELSE -(SYDB.D2_MOVE.mv_value)
qbf-004 = IF (SYDB.D2_MOVE.mv_type = "002") THEN (SYDB.D2_MOVE.mv_cost) ELSE -(SYDB.D2_MOVE.mv_cost)
qbf-005 = IF (SYDB.D2_MOVE.mv_type = "002") THEN ((SYDB.D2_MOVE.mv_value - SYDB.D2_MOVE.mv_cost)) ELSE -((SYDB.D2_MOVE.mv_value - SYDB.D2_MOVE.mv_cost)).
ACCUMULATE qbf-003 (SUB-TOTAL BY SYDB.D2_MOVE.mv_type).
ACCUMULATE qbf-004 (SUB-TOTAL BY SYDB.D2_MOVE.mv_type).
ACCUMULATE qbf-005 (SUB-TOTAL BY SYDB.D2_MOVE.mv_type).
ASSIGN
qbf-003# = (ACCUM SUB-TOTAL BY SYDB.D2_MOVE.mv_type qbf-003)
qbf-004# = (ACCUM SUB-TOTAL BY SYDB.D2_MOVE.mv_type qbf-004)
qbf-005# = (ACCUM SUB-TOTAL BY SYDB.D2_MOVE.mv_type qbf-005).
IF LAST-OF(SYDB.D2_MOVE.mv_type) THEN
PUT CONTROL
'~"' SYDB.A1_TRAD_POINT.trad_name '~"'
"~,"
'~"' qbf-002 '~"'
"~,"
qbf-003#
"~,"
qbf-004#
"~,"
qbf-005#
CHR(13) CHR(10).
END.