DEFINE ICON oIco RESOURCE "QUICK"
DEFINE WINDOW oWndChildB ;
FROM 0,0 to 39,120 ;
MDICHILD ;
OF oWnd ;
ICON oIco ;
TITLE xTITLE
DEFINE DIALOG oWorkB RESOURCE "QUIKVIEW" of oWndChildB
REDEFINE xBROWSE oLBXB ;
RECORDSET oRsInvDetail ;
COLUMNS "QTY", ;
"INVENTORY ID", ;
"INVENTORY TYPE", ;
"ITEM DESCRIPTION", ;
"PRICE", ;
"LOCATION", ;
"COVERED BY WARRANTY", ;
"SCRAPPED" ;
COLSIZES 45,115,55,300,65,80,50,55 ;
HEADERS "Qty", ;
"Part Number", ;
"Type", ;
"Description", ;
"Price", ;
"Location", ;
"Warranty", ;
"Scrapped" ;
ID 172 of oWorkB ;
AUTOCOLS LINES CELL FASTEDIT
AEval( oLbxB:aCols, { |o| o:nEditType := EDIT_GET } )
// row numbers
ADD oCol to oLbxB AT 1 DATA oLbxB:KeyNo() HEADER 'Ln' size 23 //PICTURE '9999'
oLbxB:aCols[1]:nDataStrAlign := AL_LEFT
oLbxB:aCols[1]:nHeadStrAlign := AL_LEFT
WITH OBJECT oLbxB
:lTabLikeExcel := .t.
END
// row number
oLbxB:aCols[1]:nEditType := EDIT_NONE
// qty
oLbxB:aCols[2]:bOnPostEdit := {|o,v| If(_ChkSerial( v,oRsInvDetail,oLbxB),;
_InvtLook( v, oRsInvDetail, oRsInv, "2", oLbxB, @lTaxable,oTaxable,cLoc,;
oLabor,oParts,oMisc,oTax,oTotal,cTaxSet,oOther,oSubtotal,"",nRepairNumber,nAssignedTo), ) }
// part number
oLbxB:aCols[3]:bOnPreEdit := { || If(oRsInvDetail:Fields("Inventory Id"):Value = " ", , __Keyboard( Chr( VK_HOME ))) }
oLbxB:aCols[3]:bOnPostEdit := {|o,v| _InvtLook( v, oRsInvDetail, oRsInv, "3", oLbxB, @lTaxable, oTaxable, cLoc,;
oLabor,oParts,oMisc,oTax,oTotal,cTaxSet,oOther,oSubtotal,oRsCust,nRepairNumber,nAssignedTo) }
// type
oLbxB:aCols[4]:nEditType := EDIT_LISTBOX
oLbxB:aCols[4]:aEditListTxt := aType
oLbxB:aCols[4]:bOnPostEdit := {|o,v| _GetPullDown( v,oLbxB,oRsInvDetail ) }
// description
oLbxB:aCols[5]:nEditType := EDIT_GET
* oLbxB:aCols[5]:bOnPreEdit := { || If(oRsInvDetail:Fields("Item Description"):Value = " ", ,;
* __Keyboard( Chr( VK_HOME )) )}
oLbxB:aCols[5]:bOnPostEdit := {|o,v| _GetText( v,oLbxB,oRsInvDetail ) }
// labor
ADD oCol to oLbxB AT 6 HEADER 'Labor' size 50 //60
oLbxB:aCols[ 6 ]:nEditType := EDIT_GET_BUTTON
oLbxB:aCols[ 6 ]:bEditBlock := {|row, col, oCol| ;
If(oRsInvDetail:Fields("Inventory Type"):Value = "Labor",;
( nAmount := _LabrBrow( ;
nRepairNumber,;
aEmp,;
aTech,;
oRsInvDetail,;
"","","","","","I","A",oRsInvDetail:Fields("Key"):Value ),;
oRsInvDetail:Fields("Price"):Value := nAmount,;
oRsInvDetail:Update()), MsgInfo( "Type is not Labor")) } // repair
oLbxB:aCols[ 6 ]:addbmpfile( "clockview" )
oLbxB:aCols[ 6 ]:addbmpfile( "clockadd" )
oLbxB:aCols[ 6 ]:bBmpData := { | lValue | If( oRsInvDetail:Fields("IsLabor"):Value = .t., 1, 2 ) }
* oLbxB:aCols[ 6 ]:lBtnTransparent := .t.
// Price
oLbxB:aCols[7]:nEditType := EDIT_GET
oLbxB:aCols[7]:bOnPostEdit := {|o,p| _GetPrice( p,oLbxB,oRsInvDetail,oRsInv,lTaxable,oTaxable,;
oLabor,oParts,oMisc,oTax,oTotal,cTaxSet,oOther,oSubtotal) }
// extention
ADD oCol TO oLbxB AT 8 DATA {|x| x := _CalcExt( oRsInvDetail:Fields("Qty"):Value,;
oRsInvDetail:Fields("Price"):Value,oRsInvDetail )} HEADER 'Ext' size 65
oLbxB:aCols[8]:nEditType := EDIT_NONE
oLbxB:aCols[8]:nDataStrAlign := AL_RIGHT
oLbxB:aCols[8]:nHeadStrAlign := AL_RIGHT
// serial number
ADD oCol to oLbxB AT 9 HEADER 'Serial Num' size 60
oLbxB:aCols[ 9 ]:nEditType := EDIT_GET_BUTTON
oLbxB:aCols[ 9 ]:bEditBlock := {|row, col, oCol| _SerBrow(;
nRepairNumber,;
oRsInvDetail:Fields("Inventory Id"):Value,;
oRsInvDetail:Fields("Qty"):Value,;
oRsInvDetail:Fields("Key"):Value,;
oRsInvDetail,;
oBtn1,oBtn2,oBtn3,oBtn4,oBtn5,"I","A" ) } // repair
oLbxB:aCols[ 9 ]:addbmpfile( "zoom2" )
oLbxB:aCols[ 9 ]:addbmpfile( "adddbf" )
oLbxB:aCols[ 9 ]:bBmpData := { | lValue | If( oRsInvDetail:Fields("IsSerial"):Value = .t., 1, 2 ) }
* oLbxB:aCols[ 9 ]:lBtnTransparent := .t.
// location
oLbxB:aCols[10]:nEditType := EDIT_NONE
// warranty
oLbxB:aCols[11]:nEditType := EDIT_GET
if ! empty(oCol := oLbxB:oCol( "WARRANTY" ))
oCol:SetCheck( { "ON", "OFF" } )
oCol:cSortOrder := nil
endif
// scrapped
oLbxB:aCols[12]:nEditType := EDIT_NONE
if ! empty(oCol := oLbxB:oCol( "SCRAPPED" ))
oCol:SetCheck( { "ON", "OFF" } )
oCol:cSortOrder := nil
endif
// add a new record
oLbxB:bPastEof = {|| _AddNewRow( oRsInvDetail,nRepairNumber,nAssignedTo,cLoc,oLbxB,"N","" ) }
oLbxB:nColsel(2)
// boiler plate text
REDEFINE SAY oSay1 PROMPT "Sales Person" ID 129 OF oWorkB UPDATE
oSay1:SetFont( oFontB )
REDEFINE SAY oSay2 PROMPT "Inventory Location" ID 130 OF oWorkB UPDATE
oSay2:SetFont( oFontB )
REDEFINE SAY oSay3 PROMPT "Invoice Date" ID 132 OF oWorkB UPDATE
oSay3:SetFont( oFontB )
REDEFINE SAY oSay11 ID 146 OF oWorkB UPDATE // tax set
oSay11:SetFont( oFontB )
oSay11:SetColor(nRgb(7,7,224)) // blue
REDEFINE SAY oSay12 ID 133 OF oWorkB UPDATE // non tax
oSay12:SetFont( oFontB )
oSay12:SetColor(nRgb(7,7,224)) // blue
REDEFINE SAY oSay4 PROMPT "Parts" ID 169 OF oWorkB UPDATE
oSay4:SetFont( oFontB )
REDEFINE SAY oSay5 PROMPT "Labor" ID 171 OF oWorkB UPDATE
oSay5:SetFont( oFontB )
REDEFINE SAY oSay6 PROMPT "Misc" ID 174 OF oWorkB UPDATE
oSay6:SetFont( oFontB )
REDEFINE SAY oSay7 PROMPT "SubTot" ID 137 OF oWorkB UPDATE
oSay7:SetFont( oFontB )
REDEFINE SAY oSay8 PROMPT "Other" ID 134 OF oWorkB UPDATE
oSay8:SetFont( oFontB )
REDEFINE SAY oSay9 PROMPT "Tax" ID 176 OF oWorkB UPDATE
oSay9:SetFont( oFontB )
REDEFINE SAY oSay10 PROMPT "Total" ID 179 OF oWorkB UPDATE
oSay10:SetFont( oFontB )
// all gets
REDEFINE COMBOBOX oTech var cTech ID 127 of oWorkB ;
ITEMS aTech UPDATE
oTech:lIncSearch = .T.
REDEFINE COMBOBOX oLoc var cLoc ID 131 of oWorkB ;
ITEMS aLoc UPDATE
REDEFINE DTPICKER oDc VAR dDc ID 128 OF oWorkB PICTURE '@D' UPDATE
REDEFINE CHECKBOX oTaxable var lTaxable ID 167 of oWorkB ;
ON CLICK ( _ReCalcTotals( oRsInvDetail,oRsInv,@lTaxable,oTaxable,"CLICKED",oLbxB,;
oLabor,oParts,oMisc,oTax,oTotal,cTaxSet,oOther,oSubtotal) )
REDEFINE GET oParts var xParts ID 170 of oWorkB PICTURE "99,999,999.99" READONLY
REDEFINE GET oLabor var xLabor ID 173 of oWorkB PICTURE "99,999,999.99" READONLY
REDEFINE GET oMisc var xMisc ID 175 of oWorkB PICTURE "99,999,999.99" READONLY
REDEFINE GET oSubtotal var xSubtotal ID 138 of oWorkB PICTURE "99,999,999.99" READONLY
REDEFINE GET oOther var xOther ID 135 of oWorkB PICTURE "99,999,999.99" READONLY
REDEFINE GET oTax var xTax ID 177 of oWorkB PICTURE "99,999,999.99" READONLY
REDEFINE GET oTotal var xTotal ID 183 of oWorkB PICTURE "99,999,999.99" READONLY
REDEFINE SAY oSay11 ID 185 OF oWorkB UPDATE // ----------------
oSay11:SetFont( oFontB )
// tax set
REDEFINE COMBOBOX oTaxSet var cTaxSet ID 187 of oWorkB ;
ITEMS aTax ;
ON CHANGE _TaxSetUpdt( cTaxSet,oRsInvDetail,oRsInv,@lTaxable,oTaxable,oLbxB,;
oLabor,oParts,oMisc,oTax,oTotal,cTaxSet,oOther,oSubtotal ) UPDATE
REDEFINE BTNBMP oBtn1 ID 147 PROMPT "Lookup"+CRLF+"Parts" ;
RESOURCE "SEARCH","DSEARCH","DSEARCH" TOP ;
of oWorkB 2007 ;
ACTION ( _InvtFind( oWnd,"",oWndChildB,@aLoc,oRsInvDetail,;
oRsInv,@lTaxable,oTaxable,oLbxB,oFontB,oFontBig,nRepairNumber,;
oLabor,oParts,oMisc,oTax,oTotal,nAssignedTo,cLoc,cTaxSet,;
oOther,oSubtotal,lIsTrucker))
REDEFINE BTNBMP oBtn2 ID 158 PROMPT "Next" ;
RESOURCE "NEXT32" ;
of oWorkB 2007 ;
ACTION(_Invview( oWnd,oWndChildA,oWndChildB,oRsInv,;
oRsInvDetail,nRepairNumber,oLbxB,lTaxable,;
oTaxable,oFontB,cTaxSet,cLoc,dDc,cTech,aEmp,hDatas,cTaxDesc,xTitle,oTech))
REDEFINE BTNBMP oBtn3 ID 178 PROMPT "Cancel" ;
RESOURCE "EXIT" ;
of oWorkB 2007 ;
ACTION( hVar["lClosed"] := .f., oWndChildB:End() )
REDEFINE BTNBMP oBtn4 ID 145 PROMPT "Add"+CRLF+"Item" ;
RESOURCE "PLUS","DPLUS","DPLUS" TOP ;
of oWorkB 2007 ;
ACTION ( _AddNewRow( oRsInvDetail,nRepairNumber,nAssignedTo,cLoc,oLbxB,"N","" ) )
REDEFINE BTNBMP oBtn6 ID 140 PROMPT "Return"+CRLF+"Item" ;
RESOURCE "RETURN","DRETURN","DRETURN" TOP ;
of oWorkB 2007 ;
ACTION ( _AddNewRow( oRsInvDetail,nRepairNumber,nAssignedTo,cLoc,oLbxB,"N","RETURN" ) )
REDEFINE BTNBMP oBtn5 ID 186 PROMPT "Cancel"+CRLF+"Unsaved Line" ;
RESOURCE "MINUS32","DMINUS32","DMINUS32" TOP ;
of oWorkB 2007 ;
ACTION( _Manual( 46,oRsInvDetail,oRsInv,cLoc,oLbxB,nRepairNumber,nAssignedTo,;
oLabor,oParts,oMisc,oTax,oTotal,lTaxable,oTaxable,cTaxSet,oOther,oSubtotal))
ACTIVATE DIALOG oWorkB NOMODAL ;
ON INIT _ReCalcTotals(oRsInvDetail,oRsInv,@lTaxable,oTaxable,,oLbxB,;
oLabor,oParts,oMisc,oTax,oTotal,cTaxSet,oOther,oSubtotal ) ;
VALID(!GETKEYSTATE( 27 ))
ACTIVATE WINDOW oWndChildB ;
ON INIT ( oWorkB:Move( 0,0, oWndchildB:nWidth, oWndchildB:nHeight, .T. ), oLbxB:SetFocus(), ;
oWndChildB:bResized := {|| _ReSizeUm( oWorkB,oWndChildB,oLbxB) }, ;
oWorkB:refresh(.t.));
VALID ( IIF( !lOK, ExitPgm(.T.,oWndChildB,oRsInvDetail,oRsEmp,oWndChildA,oLbxb,@lOk,;
oRsInv,cLoc,hDatas ), .F. ))
RETURN( NIL )
//--------------------------------
Static FUNCTION ExitPgm( lOk3,oWndchildB,oRsInvDetail,oRsEmp,;
oWndChildA,oLbx,lOk,oRsInv,cLoc,hDatas )
// olbx is from the repair screen
LOCAL lOK1
local hVar := hDatas["var"]
*Msginfo( "Close tables emp,detail,inv Exitpgm after cancelum Quickview.prg ")
IF lOk3 = .T.
lOK := .T.
lOK1 := lOK
If hVar["lClosed"] = .t.
Else
If _CancelUm( oRsInvDetail,oRsInv,oLbx,oWndChildB,cLoc,oWndChildA )
Else
lOk3 := .f.
Return(.f.)
Endif
Endif
oRsEmp:CLose()
If oRsInvDetail:State() = 1 // open
oRsInvDetail:Close()
Endif
If oRsInv:State() = 1 // open
oRsInv:CLose()
Endif
oLbx:bKeyCount := { || 0 }
oLbx:bKeyNo := { || 0 }
oWndChildB:End()
oWndChildA:End()
ENDIF
RETURN( lOK1 )