SET DATE BRITISH SET EXCLUSIVE OFF SET DELETED ON SET talk OFF SET SAFETY off mhome="C:\FRANCHISE\SAVEDATTACHMENTS\" *SET PROCEDURE TO utillib CLOSE DATABASES ALL IF !USED("FRANCHISE") USE franchise IN 0 ENDIF IF !USED("ENQUIRIES") USE enquiries IN 0 ENDIF IF !USED("NEXITID") USE nextid IN 0 ENDIF IF !USED("sourceofenquiry") USE sourceofenquiry IN 0 ENDIF SELECT 0 *IF FILE("enquiriesincoming.dbf!) *CREATE TABLE enquiriesincoming.dbf FREE (date d(10),time c(10),csurname c(25),cfirstname c(25),caddress1 c(35),caddress2 c(35),caddress3 c(35),caddress4 c(35),cpostcode c(10)) *ENDIF #DEFINE olFolderInBox 6 Local lcFilename,lcPath lcPath='c:\franchise\savedattachments\' If !Directory('c:\franchise\savedAttachments') Md 'c:\franchise\savedAttachments' && Create the directory if it doesn't exist. Endif oOutLookObject = Createobject('Outlook.Application') olNameSpace = oOutLookObject.GetNameSpace('MAPI') myAtts=olNameSpace.GetDefaultFolder(olFolderInbox).Items mdir=curdir() DO FORM forms\progress NAME FRMPROGRESS LINKED WITH "Looking for new enquiries in Microsoft Outlook..." SET DEFAULT TO &mdir PUBLIC ofrmprogress ofrmprogress=frmprogress mno=0 USE jobtypes2 IN 0 For Each loItem In myAtts mno=mno+1 oFrmProgress.opb.ctlvalue=mno/myatts.count*100 ofrmprogress.opb.refresh() IF LEFT(loitem.subject,19)<>"New Enquiry" OR loItem.attachments.Count=0 && Make sure there is an actual attachment. loop ENDIF For i = 1 To loItem.attachments.Count lcFilename='' lcFilename = loItem.attachments.Item(i).filename IF lcfilename<>"info.txt" && the file is not relevant so ignore it! LOOP ENDIF lcFilename2 = Alltrim(lcPath)+SYS(3)+".txt" && lcFilename loItem.attachments.Item(i).SaveAsFile(lcFilename2) loItem.attachments(i).delete() EXIT next NEXT * Now go though each attachment in turn ********************************************************* mno=0 ofrmprogress.caption="Processing emails..." mf=mhome+SYS(2000,mhome+"*.txt") DO WHILE !UPPER(mf)==mhome AND LEN(ALLTRIM(mf))<>0 io=FOPEN(mf,0) STORE FSEEK(io, 0, 2) TO gnEnd && Move pointer to EOF STORE FSEEK(io, 0) TO gnTop && Move pointer to BOF * Read 1st line to make sure its one of our files ml=FGETS(io,255) IF LEFT(ml,11)<>"Version:1.0" && not the correct format? =FCLOSE(io) DELETE FILE (mf) mf=mhome+SYS(2000,mhome+"*.txt",1) loop ENDIF ml=FGETS(io,255) IF LEN(TRIM(ml))=0 && nothing here to process? =FCLOSE(io) DELETE FILE (mf) mf=mhome+SYS(2000,mhome+"*.txt") loop ENDIF mtitle=pip(1,ml) mdate=CTOD(pip(2,ml)) msurname=pip(3,ml) mfirstname=pip(4,ml) mpostcode=pip(5,ml) mstreet=pip(6,ml) madd1=pip(7,ml) madd2=pip(8,ml) madd3=pip(9,ml) madd4=pip(10,ml) mtel=pip(12,ml) mdaytel=pip(11,ml) mmobno=pip(13,ml) mtakenby=pip(14,ml) msource=pip(15,ml) mleaflet=pip(16,ml) mhoenqno=PADL(ALLTRIM(pip(17,ml)),8,"0") memailaddress=pip(18,ml) mcomments=pip(19,ml) * Is it already in the enquiries file? IF !SEEK(mhoenqno,"enquiries","ihoenqno") menqno=bsnextno("ENQUIRY") insert INTO enquiries (ctitle,cfirstname,clastname,cstreet,caddress1,caddress2,caddress3,caddress4,cpostcode,ctelno,daytel,cmobno,ctakenby,csource,leafletref,ihoenqno,cemail,ienquiryno,lspecialprice,auto,cdirections,ddate) VALUES ; (mtitle,mfirstname,msurname,mstreet,madd1,madd2,madd3,madd4,mpostcode,mtel,mdaytel,mmobno,mtakenby,msource,mleaflet,mhoenqno,memailaddress,menqno,!franchise.lautoprice,.t.,mcomments,mdate) * Record the creation of the enquiry in the customer log INSERT INTO customerlog (ddate,ctime,cdescript,CFRANCHISENO,IENQUIRYNO) VALUES (enquiries.dDATE, ,"Enquiry Created",ENQUIRIES.CFRANCHISENO,ENQUIRIES.IENQUIRYNO) * Make sure the source exists INSERT INTO LAWNSURVEY (IENQUIRYNO,CFRANCHISENO) VALUES (ENQUIRIES.IENQUIRYNO,FRANCHISE.CFRANCHISENO) SELECT sourceofenquiry LOCATE FOR desc=msource IF .not. FOUND() INSERT INTO sourceofenquiry (desc,auto) VALUES (msource,.t.) endif SELECT jobtypes2 mtotalprice=0 SCAN INSERT INTO enquiryprices (ienquiryno,cjobtype,treatmentcode,nmultiply,lbronze,lselected,nprice) values (enquiries.ienquiryno,jobtypes2.cjobtype,jobtypes2.code,; jobtypes2.imultiply,jobtypes2.lbronze,jobtypes2.lbronze,ROUND(enquiries.nprice*jobtypes2.imultiply,2)) IF jobtypes2.lbronze mtotalprice=mtotalprice+round(enquiries.nprice*jobtypes2.imultiply,2) endif endscan mno=mno+1 ENDIF =fclose(io) DELETE FILE (mf) mf=mhome+SYS(2000,mhome+"*.txt",1) ENDDO IF mno>0 =MESSAGEBOX(ALLTRIM(STR(mno))+" enquiries added from Outlook emails",64,"Enquiries received") ENDIF ofrmprogress.RELEASE OFRMPROGRESS=.NULL. USE IN enquiries USE IN nextid IF USED("lawnsurvey") USE IN lawnsurvey ENDIF IF USED("sourceofenquiry") USE IN sourceofenquiry endif IF USED("jobtypes2") USE IN jobtypes2 ENDIF IF USED("enquiryprices") USE IN enquiryprices ENDIF PROCEDURE pip PARAMETERS zfield,ztxt IF zfield=1 zstart=0 ELSE zstart=ATC(CHR(124),ztxt,zfield-1) ENDIF zend=ATC(CHR(124),ztxt,zfield) mtxt=SUBSTR(ztxt,zstart+1,zend-zstart-1) RETURN mtxt>Hi