132 lines
2.2 KiB
Plaintext
132 lines
2.2 KiB
Plaintext
COMPILE FUNCTION TEST_CONVERT_PO(RawPO,CompNo)
|
|
|
|
DECLARE SUBROUTINE Send_Dyn
|
|
DECLARE FUNCTION Get_Status
|
|
|
|
IF NOT(ASSIGNED(RawPO)) THEN RETURN ''
|
|
IF NOT(ASSIGNED(CompNo)) THEN RETURN ''
|
|
|
|
PONo = ''
|
|
LineNo = ''
|
|
RelNo = ''
|
|
|
|
POIn = TRIM(RawPO)
|
|
RawPO = POIn
|
|
|
|
IF POIn[1,3] = 'GG-' THEN
|
|
SWAP 'GG-' WITH 'GG' IN POIn
|
|
END
|
|
|
|
IF POIn[1,1] = '-' THEN
|
|
Result = POIn
|
|
GOTO Bail
|
|
END
|
|
|
|
CONVERT ' ' TO '' IN POIn
|
|
|
|
IF POIn[1,2] = 'S-' THEN
|
|
Result = POIn
|
|
GOTO Bail
|
|
END
|
|
|
|
IF INDEX(POIn,'-',1) AND NOT(INDEX(POIn,'-',2)) THEN
|
|
|
|
TestPOIn = POIn[1,'F-']
|
|
Suffix = POIn[-1,'B-']
|
|
|
|
IF LEN(POIn) = 1 OR NOT(NUM(Suffix)) OR LEN(Suffix) > LEN(TestPOIn) THEN
|
|
CONVERT ' ' TO '' IN RawPO
|
|
Result = RawPO
|
|
GOTO Bail
|
|
END
|
|
|
|
IF LEN(Suffix) < 5 AND Suffix[1,1] NE '0' THEN
|
|
POIn = POIn[1,'F-']
|
|
|
|
PONo = POIn
|
|
IF CompNo = '6495' OR CompNo = '506' THEN
|
|
RelNo = Suffix
|
|
END
|
|
END ELSE
|
|
BEGIN CASE
|
|
CASE LEN(Suffix) = 5
|
|
RelNo = '0':Suffix
|
|
Dummy = POIn[-1,'B-']
|
|
POIn[COL1()-1,99] = ''
|
|
|
|
CASE LEN(Suffix) = 7
|
|
RelNo = '0':Suffix
|
|
Dummy = POIn[-1,'B-']
|
|
POIn[COL1()-1,99] = ''
|
|
|
|
CASE LEN(Suffix) = 6
|
|
RelNo = Suffix
|
|
Dummy = POIn[-1,'B-']
|
|
POIn[COL1()-1,99] = ''
|
|
|
|
CASE LEN(Suffix) = 8
|
|
RelNo = Suffix
|
|
Dummy = POIn[-1,'B-']
|
|
POIn[COL1()-1,99] = ''
|
|
|
|
CASE 1
|
|
Null
|
|
|
|
END CASE
|
|
PONo = POIn
|
|
END
|
|
END ELSE
|
|
PONo = POIn
|
|
END
|
|
|
|
|
|
IF INDEX(POIn,'LINE',1) THEN
|
|
SWAP 'LINE' WITH @FM IN POIn
|
|
LineNo = POIn<2>
|
|
PONo = POIn<1>
|
|
END
|
|
|
|
IF INDEX(POIn,'Line#',1) THEN
|
|
SWAP 'Line#' WITH @FM IN POIn
|
|
LineNo = POIn<2>
|
|
PONo = POIn<1>
|
|
END
|
|
|
|
IF INDEX(POIn,'Line',1) THEN
|
|
SWAP 'Line' WITH @FM IN POIn
|
|
LineNo = POIn<2>
|
|
PONo = POIn<1>
|
|
END
|
|
|
|
IF INDEX(POIn,'Item',1) THEN
|
|
SWAP 'Item' WITH @FM IN POIn
|
|
LineNo = POIn<2>
|
|
PONo = POIn<1>
|
|
END
|
|
|
|
IF INDEX(POIn,'=L',1) THEN
|
|
SWAP '=L' WITH @FM IN POIn
|
|
LineNo = POIn<2>
|
|
PONo = POIn<1>
|
|
END
|
|
|
|
IF INDEX(POIn,'*L',1) THEN
|
|
SWAP '*L' WITH @FM IN POIn
|
|
LineNo = POIn<2>
|
|
PONo = POIn<1>
|
|
END
|
|
|
|
IF INDEX(POIn,'Rel',1) THEN
|
|
SWAP 'Rel' WITH @FM IN POIn
|
|
RelNo = POIn<2>
|
|
PONo = POIn<1>
|
|
END
|
|
|
|
Result = PONo:@vm:LineNo:@VM:RelNo
|
|
|
|
* * * * * * *
|
|
Bail:
|
|
* * * * * * *
|
|
|
|
RETURN Result
|