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

401 lines
9.2 KiB
Plaintext

COMPILE FUNCTION Comm_Invoice(Instruction, Parm1,Parm2)
/*
Commuter module for Invoice window
02/27/2005 - John C. Henry, J.C. Henry & Co., Inc.
*/
DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, Center_Window, Post_Event, Set_List_Box_Data
DECLARE SUBROUTINE ErrMsg, Send_Message, Set_Property, Send_Event, Btree.Extract, obj_AppWindow
DECLARE SUBROUTINE obj_Notes, Security_Err_Msg, End_Window, Forward_Event, Start_Window
DECLARE FUNCTION Get_Property, Get_Status, Dialog_Box, Utility, Center_Window, Popup
DECLARE FUNCTION Send_Message, Msg, Security_Check, NextKey
$INSERT POPUP_EQUATES
$INSERT LOGICAL
$INSERT MSG_EQUATES
$INSERT APPCOLORS
$INSERT COC_EQU
$INSERT LSL_USERS_EQU
$INSERT SECURITY_RIGHTS_EQU
$INSERT WO_LOG_EQU
$INSERT WO_STEP_EQU
$INSERT COMPANY_EQU
$INSERT INVOICE_EQU
ErrTitle = 'Error in Comm_Invoice'
ErrorMsg = ''
Result = ''
/*
Most of this is not used. Invoicing will be moving to the Vision system so the only things
this is used for is button events from the OLD Invoice window. Leave the rest of the stuff
here just in case. JCH 7/24/2005
*/
BEGIN CASE
CASE Instruction = 'Create' ; GOSUB Create
CASE Instruction = 'Refresh' ; GOSUB Refresh
CASE Instruction = 'Read' ; GOSUB Read
CASE Instruction = 'Write' ; GOSUB Write
CASE Instruction = 'Clear' ; GOSUB Clear
CASE Instruction = 'Delete' ; GOSUB Delete
CASE Instruction = 'Page' ; GOSUB Page
CASE Instruction = 'Close' ; GOSUB Close
CASE Instruction = 'ViewCust' ; GOSUB ViewCust
CASE Instruction = 'ViewOrder' ; GOSUB ViewOrder
CASE Instruction = 'ViewWO' ; GOSUB ViewWO
CASE Instruction = 'ViewShipment' ; GOSUB ViewShipment
CASE 1
ErrorMsg = 'Unknown Instruction ':QUOTE(Instruction):' passed to routine.'
ErrMsg(ErrorMsg)
END CASE
RETURN Result
* * * * * * *
Create:
* * * * * * *
IF NOT(Security_Check('COC',READ$)) THEN
Security_Err_Msg('COC',READ$)
End_Window(@WINDOW)
RETURN
END
obj_Appwindow('Create',@WINDOW)
Set_List_Box_Data(@WINDOW)
GOSUB Refresh
RETURN
* * * * * * *
Clear:
* * * * * * *
Send_Event(@WINDOW,'PAGE',1)
obj_AppWindow('ReadOnly',@RM:1) ;* Reenables data bound controls
* * * * * * *
Refresh:
* * * * * * *
IF Security_Check('COC',EDIT$) AND (Get_Property(@WINDOW:'.POST_BUTTON','TEXT') = 'Post') THEN
obj_AppWindow('ReadOnly',@WINDOW:@RM:1) ;* enable all database controls
END ELSE
obj_AppWindow('ReadOnly',@WINDOW) ;* disable all database controls
END
Ctrls = @WINDOW:'.POST_BUTTON':@RM ; Props = 'TEXT':@RM
Ctrls := @WINDOW:'.POST_BUTTON':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.POSTED_FIX':@RM ; Props := 'VISIBLE':@RM
Ctrls := @WINDOW:'.UNPOST_BUTTON':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.UNPOST_BUTTON' ; Props := 'VISIBLE'
Vals = ''
IF Get_Property(@WINDOW:'.POST_DTM','TEXT') NE '' THEN
* Timesheet is Posted
Vals<1> = 'Posted' ;* PostButton text
Vals<2> = 0 ;* PostButton Disabled
Vals<3> = 1 ;* Posted Text Visisble
Vals<4> = 1 ;* Unpost button Enabled
Vals<5> = 1 ;* UnPost button Visible
END ELSE
Vals<1> = "Post" ;* PostButton text
Vals<2> = 1 ;* PostButton Enabled
Vals<3> = 0 ;* Posted Text invisible
END
CONVERT @FM TO @RM IN Vals
Set_Property(Ctrls,Props,Vals)
Ctrls = @WINDOW:'.ENTER_BY':@RM ; Props = 'TEXT':@RM
Ctrls := @WINDOW:'.ENTER_DTM' ; Props := 'TEXT'
Vals = Get_Property(Ctrls,Props)
EnterBy = Vals[1,@RM]
EnterDTM = Vals[COL2()+1,@RM]
IF EnterBy = '' THEN Vals = 1:@RM ELSE Vals = 0:@RM
IF EnterDTM = '' THEN Vals := 1 ELSE Vals := 0
Props = 'ENABLED':@RM:'ENABLED'
Set_Property(Ctrls,Props,Vals)
NextNumber = XLATE('DICT.COC','%SK%',1,'X')
Set_Property(@WINDOW:'.NEW_BUTTON','TEXT',NextNumber)
* QBF buttons
Ctrls = @WINDOW:'.QBF_FIRST_FIX':@RM ; Props = 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_PREV_FIX':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_ABS_FIX':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_NEXT_FIX':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_LAST_FIX':@RM ; Props := 'ENABLED':@RM
Ctrls := @WINDOW:'.QBF_STOP_FIX' ; Props := 'ENABLED'
IF Get_Property(@WINDOW,'QBFLIST') = '' THEN
Vals = 0:@RM:0:@RM:0:@RM:0:@RM:0:@RM:0
END ELSE
Vals = 1:@RM:1:@RM:1:@RM:1:@RM:1:@RM:1
END
Set_Property(Ctrls,Props,Vals)
* All cassette detail background colors
CtrlName = @WINDOW:'.RDS_DETAIL'
RDSArray = Get_Property(CtrlName,'INVALUE')
RdsStatuses = RDSArray<COL$RDS_CURR_STATUS>
FOR I = 1 TO COUNT(RdsStatuses,@VM) + (RdsStatuses NE '')
RdsStatus = RdsStatuses<1,I>
RdsHold = RDSArray<COL$RDS_HOLD,I>
RdsHotLot = RDSArray<COL$RDS_HOT_LOT,I>
IF RdsHold OR RdsHotLot THEN
IF RdsHold THEN LineColor = YELLOW$
IF RdsHotLot THEN LineColor = RED$
END ELSE
BEGIN CASE
CASE RdsStatus[1,3] = 'Rec' ; LineColor = RCV_BLUE$
CASE RdsStatus[1,3] = 'Pre' ; LineColor = PRE_BLUE$
CASE RdsStatus[1,3] = 'In ' ; LineColor = INP_BLUE$
CASE RdsStatus[1,3] = 'Pos' ; LineColor = POS_BLUE$
CASE RdsStatus[1,3] = 'Rea' ; LineColor = GREEN$
CASE RdsStatus[1,3] = 'Shi' ; LineColor = LTGREY$
CASE RdsStatus[1,3] = 'Pro' ; LineColor = RED$
CASE 1 ; LineColor = WHITE$
END CASE
END
stat = Send_Message(CtrlName,'COLOR_BY_POS',0,I,LineColor)
NEXT I
* Turn edit table symbolic column backgrounds to green
ETSymbolics = Get_Property(@WINDOW,'@ET_SYMBOLICS') ;* Loaded during 'Create' in obj_Appwindow
ETCtrls = ETSymbolics<1>
ETCols = ETSymbolics<2>
FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '')
ETCtrl = ETCtrls<1,I>
IF ETCtrl NE @WINDOW:'.RDS_DETAIL' THEN
ETList = Get_Property(ETCtrl,'LIST')
FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '')
IF ETList<Line,1> NE '' THEN
FOR N = 1 TO COUNT(ETCols<1,I>,@SVM) + (ETCols<1,I> NE '')
stat = Send_Message(ETCtrl,'COLOR_BY_POS',ETCols<1,I,N>,Line,GREEN$)
NEXT N
END
NEXT I
END
NEXT I
RETURN
* * * * * * *
Page:
* * * * * * *
obj_Appwindow('Page')
GOSUB Refresh
RETURN
* * * * * * *
Read:
* * * * * * *
ShipNo = Get_Property(@WINDOW:'SHIP_NO','TEXT')
IF NOT(RowExists('COC',ShipNo)) THEN
IF NOT(Security_Check('COC',WRITE$)) THEN
Send_Event(@WINDOW,'CLEAR')
Security_Err_Msg('COC',WRITE$)
RETURN
END
END
EnterBy = Get_Property(@WINDOW:'.ENTER_BY','TEXT')
IF EnterBy = '' THEN
CurrDate = OCONV(Date(),'D4/')
CurrTime = OCONV(Time(),'MTH')
CurrDTM = CurrDate:' ':CurrTime
IF @USER4 = '' OR @USER4 = 'BRYCE_BARB' THEN @USER4 = 'TESTING'
Set_Property(@WINDOW:'.ENTER_BY','TEXT',OCONV(@USER4,'[XLATE_CONV,LSL_USERS*FIRST_LAST]'))
Set_Property(@WINDOW:'.ENTER_DTM','TEXT',CurrDTM)
END
GOSUB Refresh
RETURN
* * * * * * *
Write:
* * * * * * *
IF Get_Property(@WINDOW:'.POST_DTM','TEXT') = '' THEN
Result = 1
END ELSE
ErrMsg('Record is posted and may not be saved.')
Result = 0 ;* Posted -> No write
END
RETURN
* * * * * * *
Delete:
* * * * * * *
IF Security_Check('COC',Delete$) THEN
IF Get_Property(@WINDOW:'.POST_DTM','TEXT') = '' THEN
Result = 1
END ELSE
ErrMsg('Record is posted and may not be deleted.')
Result = 0 ;* Posted -> No write
END
END ELSE
Security_Err_Msg('COC',Delete$)
Result = 0 ;* Stop event chain
END
RETURN
* * * * * * *
ShipInfoGF:
* * * * * * *
CustNo = Get_Property(@WINDOW:'.CUST_NO','TEXT')
ShipperInfo = Get_Property(@WINDOW:'.SHIPPERINFO','TEXT')
IF CustNo NE '' AND ShipperInfo = '' THEN
CustRec = XLATE('COMPANY',CustNo,'','X')
ShipperInfos = CustRec<COMPANY_SHIPPER_INFO$>
IF INDEX(ShipperInfos,@VM,1) THEN
Display = ''
FOR I = 1 TO COUNT(ShipperInfos,@VM) + (ShipperInfos NE '')
Display<1,I> = ShipperInfos<1,I>:@SVM:CustRec<COMPANY_ACCOUNT_NO$,I>
NEXT I
TypeOver = ''
TypeOver<PDISPLAY$> = Display
SelectedItems = Popup(@WINDOW,TypeOver,'ORDER_SHIPPER_INFO')
IF SelectedItems = '' THEN RETURN
ShipperInfo = SelectedItems<1,1>
AcctNo = SelectedItems<1,2>
END ELSE
ShipperInfo = ShipperInfos
AcctNo = CustRec<COMPANY_ACCOUNT_NO$>
END
Set_Property(@WINDOW:'.SHIPPERINFO','TEXT',ShipperInfo)
Set_Property(@WINDOW:'.ACCT_NO','TEXT',AcctNo)
END
RETURN
* * * * * * *
Close:
* * * * * * *
obj_Notes('Inbox',@USER4) ;* Checks for any new messages
obj_Appwindow('CardReturn',@WINDOW)
RETURN
* * * * * * *
ViewCust:
* * * * * * *
CustNo = Get_Property(@WINDOW:'.CUST_NO','TEXT')
IF CustNo NE '' THEN
obj_Appwindow('ViewRelated','COMPANY':@RM:CustNo)
END
RETURN
* * * * * * *
ViewOrder:
* * * * * * *
OrderNo = Get_Property(@WINDOW:'.ORDER_NO','TEXT')
IF OrderNo NE '' THEN
obj_Appwindow('ViewRelated','ORDER2':@RM:OrderNo)
END
RETURN
* * * * * * *
ViewWO:
* * * * * * *
WONo = Get_Property(@WINDOW:'.INVOICE_DETAIL','LIST')<1,4> ;* 4th column in 1st line
IF WONo NE '' THEN
WOStepKeys = XLATE('WO_LOG',WONo,34,'X')
LastStepKey = WOStepKeys[-1,'B':@VM]
obj_Appwindow('ViewRelated','WO_PROD':@RM:LastStepKey)
END
RETURN
* * * * * * *
ViewShipment:
* * * * * * *
ShipNo = Get_Property(@WINDOW:'.SHIP_NO','TEXT')
IF ShipNo NE '' THEN
obj_Appwindow('ViewRelated','SHIPMENT':@RM:ShipNo)
END
RETURN