home *** CD-ROM | disk | FTP | other *** search
- procedure INVSAY
- * I N V S A Y
- parameters GETEM
- @ 2,0 clear to 24,79
- * TEXT outlines
- set color to (COLNORM)
-
- @ 02,61 say "Invoice no:"
- @ 03,00 say "┌─ Owner ──────────────────────────────┐ ┌─ Invoice Totals ────────────────────┐"
- @ 04,00 say "│"+space(38)+"│ │ Ins Co. Owner │"
- @ 05,00 say "│ Name:"+space(32)+"│ ├─────────────────────────────────────┤"
- @ 06,00 say "│ Addr:"+space(32)+"│ │ Total Labour │"
- @ 07,00 say "│"+space(38)+"│ │ Total Parts │"
- @ 08,00 say "│"+space(38)+"│ │ Specialist Mat's │"
- @ 09,00 say "│ Home: Work: │ ├─────────────────────────────────────┤"
- @ 10,00 say "│"+space(38)+"│ │ Total excl VAT │"
- @ 11,00 say "│ Owner VAT registered? (Y/N) │ │ Parts discnt % │"
- @ 12,00 say "│ Insurance Co. to pay? (Y/N) │ │ Sub-total │"
- @ 13,00 say "└──────────────────────────────────────┘ │ VAT at % │"
- @ 14,00 say "┌─ Parts ──────────────────────────────┐ ├─────────────────────────────────────┤"
- @ 15,00 say "│"+space(38)+"│ │ Sub-total │"
- @ 16,00 say "│"+space(38)+"│ │"+space(37)+"│"
- @ 17,00 say "│"+space(38)+"│ │ Owner XS"+space(28)+"│"
- @ 18,00 say "│"+space(38)+"│ │ Contrib"+space(29)+"│"
- @ 19,00 say "│"+space(38)+"│ │"+space(37)+"│"
- @ 20,00 say "│"+space(38)+"│ │ Due from Ins. Co │"
- @ 21,00 say "│"+space(38)+"│ │ Due from Owner │"
- @ 22,00 say "│"+space(38)+"│ ╞═════════════════════════════════════╡"
- @ 23,00 say "│"+space(38)+"│ │"+space(37)+"│"
- @ 24,00 say "└──────────────────────────────────────┘ └─────────────────────────────────────┘"
- set color to (COLHEAD)
- @ 23,46 say "Invoice Total"
-
- do INVGET with GETEM
-
- return
-
- ******************************************************************
-
- procedure INVGET
- parameters GETEM
- set color to (COLNORM)
-
- SINVNO()
- do while .t.
- @ 05,08 get MOWNINIT
- @ 05,15 get MOWNNAME
- @ 06,08 get MOWNADD1
- @ 07,08 get MOWNADD2
- @ 08,08 get MOWNADD3
- @ 09,08 get MOWNTELH
- @ 09,27 get MOWNTELB
- if GETEM
- @ 11,24 get MOWNVAT picture "Y" && Clipper bug!
- @ 12,24 get MINSTOPAY picture "Y"
- else
- set color to (COLBRIGHT)
- @ 11,24 say MOWNVAT picture "Y"
- @ 12,24 say MINSTOPAY picture "Y"
- set color to (COLNORM)
- endif
- @ 11,56 get MPARTDISC picture "99"
- @ 13,53 get MVATRATE picture "99.99"
-
- if GETEM
- do QBREAD with "Fill in Owner details"
- if GETOUT && Can't use OR
- exit
- elseif QBYESNO("Owner details OK?")="Y"
- exit
- endif
- else
- clear gets
- exit
- endif
- enddo
- set color to (COLNORM)
- if "AVIS"$upper(MOWNNAME) .and. empty(MCUSTTYP)
- MCUSTTYP = "AVIS"
- endif
- return
-
- ******************************************************************
-
- procedure INVTOT
- private SUMPART && , SUMSPEC
-
- do INVTOTAL with .t.
- * Various other Total fields
-
- set color to (COLBRIGHT)
-
- @ 06,62 say PRPOS(MINSLAB, "9999.99")
- @ 07,62 say PRPOS(MINSPART, "9999.99")
- @ 08,62 say PRPOS(MINSSPEC, "9999.99")
- @ 10,62 say PRPOS(MINSAMT, "9999.99")
- @ 11,62 say PRPOS(IPDSCNT, "9999.99")
- @ 12,62 say PRPOS(ISUBTOT, "9999.99")
- @ 13,62 say PRPOS(IVATAMT, "9999.99")
- @ 15,62 say PRPOS(INSSUB, "9999.99")
- @ 17,71 say PRPOS(MEXCESS, "9999.99")
- @ 17,53 say PRPOS(MEXCESS, "9999.99")
- @ 18,71 say PRPOS(MCONTRIB, "9999.99")
- @ 18,53 say PRPOS(MCONTRIB, "9999.99")
- @ 20,62 say PRPOS(MINSDUE, "9999.99")
-
- @ 06,71 say PRPOS(MOWNLAB, "9999.99")
- @ 07,71 say PRPOS(MOWNPART, "9999.99")
- @ 08,71 say PRPOS(MOWNSPEC, "9999.99")
- @ 10,71 say PRPOS(MOWNAMT, "9999.99")
- @ 11,71 say PRPOS(OPDSCNT, "9999.99")
- @ 12,71 say PRPOS(OSUBTOT, "9999.99")
- @ 13,71 say PRPOS(OVATAMT,"9999.99")
- @ 15,71 say PRPOS(OWNSUB, "9999.99")
- @ 21,71 say PRPOS(MOWNDUE, "9999.99")
-
- MINVTOTAL = MOWNDUE + MINSDUE
- @ 23,71 say PRPOS(MINVTOTAL, "9999.99")
-
- set color to (COLNORM)
- return
-
- ******************************************************************
-
- procedure invveh
- * I N V V E H
- * get or say vehicle particulars
- parameters GETEM
-
- private OLDSCR, STAT
- STAT = "N"
- set color to (COLNORM)
- OLDSCR = savescreen(0,0,24,40)
- @ 0,0 clear to 24,40
- @ 07,01,23,39 BOX "┌─┐│┘─└│ "
- @ 07,03 say " Vehicle "
- @ 11,01 say "├"
- @ 11,39 say "┤"
- @ 13,01 say "├"
- @ 13,39 say "┤"
- @ 15,01 say "├"
- @ 15,39 say "┤"
- @ 17,01 say "├"
- @ 17,39 say "┤"
- @ 19,01 say "├"
- @ 19,39 say "┤"
- @ 21,01 say "├"
- @ 21,39 say "┤"
- @ 09,03 say "Date In Out Invoice"
- @ 11,02 say "─────────────────────────────────────"
- @ 12,03 say "Make:"
- @ 13,02 say "─────────────────────────────────────"
- @ 14,03 say "Speedo: Fuel: (0-4 Qtrs)"
- @ 15,02 say "─────────────────────────────────────"
- @ 16,03 say "Reg no: Year:"
- @ 17,02 say "─────────────────────────────────────"
- @ 18,03 say "Paint: Trim:"
- @ 19,02 say "─────────────────────────────────────"
- @ 20,04 say "Engine:"
- @ 21,02 say "─────────────────────────────────────"
- @ 22,03 say "Chassis:"
-
- do while STAT="N"
- MDATEIN = iif(empty(MDATEIN),date(),MDATEIN)
- @ 10, 8 get MDATEIN picture "@K" valid V2DATES(MDATEOUT,1)
- MDATEOUT = iif(MEDITING .and. empty(MDATEOUT),date(),MDATEOUT)
- @ 10,19 get MDATEOUT picture "@K" valid V2DATES(MDATEIN,2)
- MDATEINV = iif(MEDITING .and. empty(MDATEINV),date(),MDATEINV)
- @ 10,31 get MDATEINV picture "@K" valid V2DATES(MDATEOUT,2)
- @ 12, 9 get MMAKEMODEL
- @ 14,11 get MSPEEDO picture "999999"
- @ 14,27 get MFUEL picture "9" range 0,4
- @ 16,11 get MREGNO picture "!!!!!!!!"
- @ 16,27 get MYEAR
- @ 18,10 get MPAINT picture "@S10"
- @ 18,27 get MTRIM picture "@S10"
- @ 20,12 get MENGNO picture "@S24"
- @ 22,12 get MCHASNO picture "@S24"
-
- if GETEM
- DO qbread WITH "Fill in Vehicle details"
- if GETOUT
- exit
- endif
- STAT = QBYESNO("Vehicle details OK?")
- else
- clear gets
- STAT = " "
- do QBMESS
- endif
- enddo
- set color to (COLNORM)
- restscreen(0,0,24,40,OLDSCR)
- return
-
- ******************************************************************
-
- procedure INVPAY
-
- * I N V P A Y
- * Payment details
- parameters GETEM
-
- set color to (COLNORM)
- private OLDSCR, STAT
- STAT = "N"
- OLDSCR = savescreen(7,0,23,39)
-
- @ 14,00,24,39 BOX "┌─┐│┘─└│ "
- @ 14,02 say " Payment Details "
- @ 16,08 say "Cash or Account (C/A)"
- @ 18,07 say "Retail, Int, Wty (R/I/W)"
- @ 20,03 say "Customer group for Reports"
-
- do while STAT="N"
- @ 16,24 get MACTYPE picture "!" valid MACTYPE$"CA"
- @ 18,24 get MWORKTYPE picture "!" valid MWORKTYPE$"RIW"
- @ 20,18 get MCUSTTYP picture "!!!!" valid VCUSTTYP(20,18,.f.)
- if MINSTOPAY
- @ 17,53 get MEXCESS picture "9999.99"
- @ 18,53 get MCONTRIB picture "9999.99"
- endif
-
- if GETEM
- DO qbread WITH "Fill in Payment details"
- STAT = QBYESNO("Payment details OK?")
- if GETOUT
- exit
- endif
- else
- clear gets
- STAT = " "
- do QBMESS
- endif
- enddo
- set color to (COLNORM)
- restscreen(7,0,23,39,OLDSCR)
- return
-
- ******************************************************************
-
- procedure INVINSLB
- parameters GETEM
-
- private OLDSCR, STAT
- OLDSCR = savescreen(0,40,24,79)
- @ 3,40 clear to 24,79
- STAT = "N"
- set color to (COLNORM)
-
- @ 02,61 say "Invoice no:"
- @ 03,41 say "┌─ Insurance Company ─────────────────┐"
- @ 04,41 say "│"+space(37)+"│"
- @ 05,41 say "│Name:"+space(32)+"│"
- @ 06,41 say "│Addr:"+space(32)+"│"
- @ 07,41 say "│"+space(37)+"│"
- @ 08,41 say "├─────────────────────────────────────┤"
- @ 09,41 say "│ Eng:"+space(32)+"│"
- @ 10,41 say "│ Tel:"+space(32)+"│"
- @ 11,41 say "├─────────────────────────────────────┤"
- @ 12,41 say "│ Estimate:"+space(27)+"│"
- @ 13,41 say "│ Claim:"+space(27)+"│"
- @ 14,41 say "│"+space(37)+"│"
- @ 15,41 say "╞══ Labour ═══════════════════════════╡"
- @ 16,41 say "│"+space(37)+"│"
- @ 17,41 say "│ Estimate no: │"
- @ 18,41 say "├─────────────────────────────────────┤"
- @ 19,41 say "│2:"+space(35)+"│"
- @ 20,41 say "│3:"+space(35)+"│"
- @ 21,41 say "│4:"+space(35)+"│"
- @ 22,41 say "├─────────────────────────────────────┤"
- @ 23,41 say "│ Total Labour charge │"
- @ 24,41 say "└─────────────────────────────────────┘"
-
-
- do while STAT="N"
- if MINSTOPAY
- @ 05,48 get MINSCO
- @ 06,48 get MINSADD1
- @ 07,48 get MINSADD2
- @ 09,48 get MINSENG
- @ 10,48 get MINSTEL
- endif
- @ 12,53 get MESTNO valid COPYEST()
- @ 13,53 get MCLAIMNO
-
- @ 17,56 get MLABESTNO
- @ 17,71 get MLABOUR1 picture "9999.99"
- @ 19,44 get ML2TEXT picture "@S24"
- @ 19,71 get MLABOUR2 picture "9999.99"
- @ 20,44 get ML3TEXT picture "@S24"
- @ 20,71 get MLABOUR3 picture "9999.99"
- @ 21,44 get ML4TEXT picture "@S24"
- @ 21,71 get MLABOUR4 picture "9999.99"
-
- if GETEM
- do QBREAD with iif(MINSTOPAY,"Fill in Insurance Co and Labour details","Fill in Labour details")
- MLABOURT = MLABOUR1 + MLABOUR2 + MLABOUR3 + MLABOUR4
- set color to (COLHEAD)
- @ 23,71 say MLABOURT picture "9999.99"
- STAT = QBYESNO("Insurance/Labour details OK?")
- if GETOUT
- exit
- endif
- else
- clear gets
- stat = " "
- set color to (COLHEAD)
- @ 23,71 say MLABOURT picture "9999.99"
- STAT = QBYESNO("Insurance/Labour details OK?")
- set color to (COLNORM)
- do QBMESS
- endif
- enddo
-
- restscreen(0,40,24,79,OLDSCR)
- set color to (COLNORM)
- return
-
- ******************************************************************
-
- function SINVNO
-
- set color to (COLBRIGHT)
- @ 02,73 say MINVNO picture "99999"
- set color to (COLNORM)
-
- return (.t.)
-
- ******************************************************************
-
- function GINVNO
- parameters OKNEW
- private SEEKVAR, OKMATCH, IINDEX
-
- SINVNO()
-
- select INVOICE
- IINDEX = QBPROMPT("Owner name|Invoice number|Quit|","Select method of searching",2)
- if IINDEX=1 && Find by name
- set index to INVNAME
- @ 5,15 get MOWNNAME
- do QBREAD with "Input Owner name (or part)",""
- SEEKVAR = upper(trim(MOWNNAME))
- elseif IINDEX=2 && Find by number
- set index to INVNUM
- @ 02,73 GET MINVNO picture "99999"
- do QBREAD with "Input Invoice number",""
- SEEKVAR = str(MINVNO,5)
- else
- GETOUT = .t.
- return (0)
- endif
-
- do case
- case GETOUT && Just hit escape
- return (0)
- case .not. empty(SEEKVAR)
- set softseek off
- seek SEEKVAR
- case empty(SEEKVAR) && Did we get it?
- if QBYESNO("Would you like to search for it?")="Y"
- MINVNO = INVOWNGT(SEEKVAR)
- SEEKVAR = iif(IINDEX=1,MOWNNAME,MINVNO)
- return (MINVNO)
- else
- return (0)
- endif
- endcase
-
- do case && Result of that
- case GETOUT && Just hit escape in INVOWNGT()
- return (0)
- case eof()
- QBPROMPT(iif(OKNEW,"Create new|","")+"Search|Quit|","Action for this non-existent Invoice",2)
- do case
- * case QBRESP="C"
- * Do nothing....
- case QBRESP="S"
- MINVNO = INVOWNGT(SEEKVAR)
- otherwise
- return (0)
- endcase
- otherwise
- OKMATCH = iif(IINDEX=2,MINVNO=INVOICE->INVNO,SEEKVAR==upper(trim(INVOICE->OWNNAME)))
- MINVNO = INVOICE->INVNO && In case answer=1
- if .not. OKMATCH
- if QBYESNO("Not an exact match - Would you like to search for it?")="Y"
- MINVNO = INVOWNGT(SEEKVAR)
- endif
- elseif IINDEX=1
- skip
- if upper(trim(SEEKVAR))=upper(INVOICE->OWNNAME)
- if QBYESNO("More matches - Would you like to search for it?")="Y"
- MINVNO = INVOWNGT(SEEKVAR)
- else
- skip -1
- endif
- else
- skip -1
- endif
- endif
- endcase
-
- return (MINVNO)
-
- ******************************************************************
-
- function COPYEST
- private RETVAL, MEM, VARNAME
-
- VARNAME = readvar()
- MEM = &VARNAME
- if empty(MLABESTNO)
- MLABESTNO = MEM
- endif
-
- return .t.
-
- ******************************************************************
-