open-insight/LSL2/STPROC/ORDER_COMM.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

79 lines
3.0 KiB
Plaintext

compile function order_comm(Branch)
begin condition
pre:
post:
end condition
$insert order_equ
$insert annual_contracts_equ
ReturnVar = 0
declare function set_property, fieldcount, get_property, msg, editcell
declare function send_event
Branches = 'PREV_LINE_DFLT,PO_DEFAULT'
convert ',' to @fm in Branches
locate Branch in Branches using @fm setting Bpos then
on Bpos gosub PrevLineDflt, PODefault
end else
Void = msg( '', 'Invalid Branch ':Bpos:' passed to order_comm' )
end
return ReturnVar
*===========================================================================*
PrevLineDflt:
ReturnVar = ''
SelPos = get_property( @window:'.ORDER_DETAIL', 'SELPOS' )
OrderArray = get_property( @window:'.ORDER_DETAIL', 'ARRAY' )
Column = SelPos<1>
Row = SelPos<2>
if Row > 1 then
CurRowData = get_property( @window:'.ORDER_DETAIL', 'ROWDATA' )
convert @fm to @vm in CurRowData ;* it was @fm and should be @vm
;* according to the OI docs
if field( CurRowData, @vm, 1, 12 ) = str( @vm, 11 ) then ;* blank row fill
PQuote = OrderArray<Column,Row-1>
PPsn = OrderArray<2,Row-1>
PWo = OrderArray<4,Row-1>
PPart = OrderArray<5,Row-1>
PQty = OrderArray<11,Row-1>
PPrice = OrderArray<12,Row-1>
*PAmt = OrderArray<13,Row-1>
RowData = str( @vm, 12 )
RowData<1,1> = PQuote
RowData<1,2> = PPsn
RowData<1,4> = PWo
* DO NOT DUPLICATE THE WORK ORDER NUMBER FORCE ENTRY SO CHECK WITH PSN IS MADE
*RowData<1,4> = ''
* DO NOT DUPLICATE THE PART NUMBER FORCE ENTRY SO CHECK WITH PSN IS MADE
RowData<1,5> = PPart
RowData<1,11> = PQty
RowData<1,12> = PPrice
TAmt = iconv( PPrice, 'MD2' ) * PQty
if Tamt = 0 then
Tamt = ''
end else
Tamt = oconv( Tamt, 'MD2,$' )
end
RowData<1,13> = TAmt
Void = set_property( @window:'.ORDER_DETAIL', 'ROWDATA', RowData )
Record = get_property( @window, 'RECORD' )
Record<order_quantity$,Row> = PQty
Record<order_price$,Row> = iconv( PPrice, 'MD2' )
Void = set_property( @window, 'RECORD', Record )
Void = send_event( @window:'.ORDER_TOT', 'CALCULATE', 1 )
Void = send_event( @window:'.QTY_TOT', 'CALCULATE', 1 )
ReturnVar = PQuote ;* to satisfy the default
end
end
return ReturnVar
*============================================================================*
PODefault:
ReturnVar = ''
ACID = get_property( @window:'.AC_ID', 'TEXT' )
if ACID then
BasePO = xlate( 'ANNUAL_CONTRACTS', ACID, annual_contracts_po$, 'X' )
LastPO = xlate( 'ANNUAL_CONTRACTS', ACID, annual_contracts_rel_po$, 'X' )<1,1> ;* TAKE TOP ONE
ReturnVar = field( BasePO, '-', 1 ):'-':field( LastPO, '-', 2 )+1
end
return ReturnVar
*============================================================================*