*need a mav edit to check for mav > fmv, mav > prev_mav and mav = 0 close all set dele on set safety off set excl off *!* clear *!* @10,20 say 'this is a test' *!* read *!* return setup() yn = ' ' Do While .t. clear @ 4,20 say 'ESC = Quit' @ 6,20 say 'Run All Edits(A)' @ 8,20 say 'Select Edits (S)' @10,20 say 'MAV Edits (M) or' @12,20 say 'Class/Strat Locator(C)?' get yn @14,20 say '**************************************************************' @16,20 say 'Please Note!!!' @18,20 say 'Running "All Edits" and "MAV Edits" require that all users be out of WinGAP' @20,20 say '"Select Edits" options with a ** also require that all users be out of WinGAP' read If LastKey() = 27 close all clear return EndIf If lower(yn) <> 'a' and lower(yn) <> 's' and lower(yn) <> 'c' and lower(yn) <> 'm' loop Else clear exit EndIf EndDo If lower(yn) = 'c' CS_Locate() EndIf If lower(yn) = 'm' mav_edits() EndIf If lower(yn) = 'a' childless("owner",yn) childless("realprop",yn) childless("reprop",yn) childless("commimp",yn) childless("personal",yn) curr_val_check(yn) orphans("realprop",yn) orphans("personal",yn) orphans("xmobilep",yn) orphans("reprop",yn) orphans("commimp",yn) orphans("acessory",yn) orphans("xexfeat",yn) orphans("xmhadd",yn) orphans("xmobilen",yn) orphans("invn",yn) orphans("cost",yn) orphans("aircraft",yn) orphans("other",yn) orphans("boat",yn) orphans("wgsketch",yn) zerovalue("real",yn) zerovalue("personal",yn) zerovalue("mobile",yn) min_max("real",yn) min_max("personal",yn) min_max("mobile",yn) homesteads_wo_imps(yn) frozen_hs(yn) removed_hs(yn) sthomestd(yn) Missing_Digest_Codes(yn) Cuv_edits(yn) Pref_edits(yn) Flpa_edits(yn) Freeport_edits(yn) Mh_edits(yn) Asmt_rsn(yn) Land_Edits(yn) Acc_edits(yn) Pt50_7500(yn) * Sync_PhSk(yn) Tax_dist(yn) Sketch_Labels(yn) Prop_comp('commimp',yn) EndIf If lower(yn) = 's' ce = ' ' cv = ' ' orp = ' ' zv = ' ' mv2 = ' ' he = ' ' dc = ' ' cve = ' ' pe = ' ' fe = ' ' me = ' ' ar = ' ' ln = ' ' ae = ' ' sp = ' ' pt5 = ' ' tdt = ' ' slb = ' ' pc = ' ' flp = ' ' clear @ 1,20 say '** = All users must be out of WinGAP before running edit!!' @ 2,20 say 'ESC = Quit' @ 4, 5 say 'Childless Edits (Y/N) ' @ 4,34 get ce @ 6, 5 say 'Current Value Checks (Y/N)**' @ 6,34 get cv @ 8, 5 say 'Orphan Record Edits (Y/N)** ' @ 8,34 get orp @10, 5 say 'Zero Value Checks (Y/N) ' @10,34 get zv @12, 5 say 'Min-Max Values Edit (Y/N) ' @12,34 get mv2 @14, 5 say 'Homestead Edits (Y/N) ' @14,34 get he @16, 5 say 'Missing Digest Codes (Y/N) ' @16,34 get dc @18, 5 say 'CUV Edits (Y/N) ' @18,34 get cve @20, 5 say 'Pref Edits (Y/N) ' @20,34 get pe @22, 5 say 'FLPA Edits (Y/N) ' @22,34 get flp @ 4,43 say 'Freeport Edits (Y/N) ' @ 4,71 get fe @ 6,43 say 'Mobile Home Edits (Y/N) ' @ 6,71 get me @ 8,43 say 'Missing COA Reasons (Y/N) ' @ 8,71 get ar @10,43 say 'Land Edits (Y/N) ' @10,71 get ln @12,43 say 'Accessory Edits (Y/N) ' @12,71 get ae @14,43 say 'Personal No PT50 Edit (Y/N)' @14,71 get pt5 * @34,20 say 'Sketch/Photo Check (Y/N)**' get sp @16,43 say 'Tax District Check (Y/N) ' @16,71 get tdt @18,43 say 'Sketch Labels (Y/N) ' @18,71 get slb @20,43 say 'Property Components (Y/N) ' @20,71 get pc read If LastKey() = 27 close all return EndIf If lower(ce) = 'y' childless("owner",yn) childless("realprop",yn) childless("reprop",yn) childless("commimp",yn) childless("personal",yn) EndIf If lower(cv) = 'y' curr_val_check(yn) EndIf If lower(orp) = 'y' orphans("realprop",yn) orphans("personal",yn) orphans("xmobilep",yn) orphans("reprop",yn) orphans("commimp",yn) orphans("acessory",yn) orphans("xexfeat",yn) orphans("xmhadd",yn) orphans("xmobilen",yn) orphans("invn",yn) orphans("cost",yn) orphans("aircraft",yn) orphans("other",yn) orphans("boat",yn) orphans("wgsketch",yn) EndIf If lower(zv) = 'y' zerovalue("real",yn) zerovalue("personal",yn) zerovalue("mobile",yn) EndIf If lower(mv2) = 'y' min_max("real",yn) min_max("personal",yn) min_max("mobile",yn) EndIf If lower(he) = 'y' homesteads_wo_imps(yn) frozen_hs(yn) removed_hs(yn) sthomestd(yn) EndIf If lower(dc) = 'y' Missing_Digest_Codes(yn) EndIf If lower(cve) = 'y' Cuv_edits(yn) EndIf If lower(pe) = 'y' Pref_edits(yn) EndIf If lower(fe) = 'y' Freeport_edits(yn) EndIf If lower(me) = 'y' Mh_edits(yn) EndIf If lower(ar) = 'y' Asmt_rsn(yn) EndIf If lower(ln) = 'y' Land_Edits(yn) EndIf If lower(ae) = 'y' Acc_Edits(yn) EndIf *!* If lower(sp) = 'y' *!* Sync_PhSk(yn) *!* EndIf If lower(pt5) = 'y' pt50_7500(yn) EndIf If lower(tdt) = 'y' tax_dist(yn) EndIf If lower(slb) = 'y' sketch_labels(yn) EndIf If lower(pc) = 'y' prop_comp('commimp',yn) EndIf If lower(flp) = 'y' flpa_edits(yn) EndIf on error EndIf clear close all return *----------------------------------------------------------- FUNCTION Setup If !file('data_edits.dbf') use realprop copy struc extend to temp use temp excl dele for recno() > 2 pack go top replace field_name with 'pkey',field_len with 10,field_type with 'n' skip replace field_name with 'pkey_name',field_len with 10,field_type with 'c' appen blank replace field_name with 'fkey',field_len with 10,field_type with 'n' appen blank replace field_name with 'fkey_name',field_len with 10,field_type with 'c' appen blank replace field_name with 'parcel_no',field_len with 20,field_type with 'c' appen blank replace field_name with 'definition',field_len with 50,field_type with 'c' create temp2 from temp copy to data_edits fox2x EndIf use data_edits excl zap return *---------------------------------------------------------- FUNCTION Childless(fn,se) close databases clear @ 8,20 say 'Looking for childless records in ' + fn sele e use data_edits Do Case Case fn = 'owner' sele b use realprop set order to ownkey sele c use personal set order to ownkey sele d use mobile set order to ownkey sele a use owner set order to name go top Do While !eof() @10,20 say lastname + ' ' + firstname + ' ' + middle nc = .F. If ownkey > 0 sele realprop seek owner.ownkey If found() nc = .T. EndIf sele personal seek owner.ownkey If found() nc = .T. EndIf sele mobile seek owner.ownkey If found() nc = .T. EndIf EndIf If !nc or owner.ownkey = 0 sele data_edits appen blank replace pkey with owner.ownkey,; definition with 'Owners w/o child records',; pkey_name with 'ownkey' EndIf sele owner skip EndDo Case fn = "realprop" sele a use reprop set order to realkey sele c use commimp set order to realkey sele d use acessory set order to realkey sele b use realprop set order to parcel_no go top Do While !eof() @10,20 say recno() nc = .F. If realkey > 0 If ovrideval + a_value + p_value > 0 or digstrat = '1' or digclass + digstrat = 'U2' nc = .t. EndIf sele reprop seek realprop.realkey If found() nc = .T. EndIf sele commimp seek realprop.realkey If found() nc = .T. EndIf sele acessory seek realprop.realkey If found() nc = .T. EndIf EndIf If !nc or realprop.realkey = 0 sele data_edits appen blank replace pkey with realprop.realkey,; definition with 'Parcels w/o child records',; parcel_no with realprop.parcel_no,; pkey_name with 'realkey' EndIf sele realprop skip EndDo Case fn = 'reprop' sele a use reprop set order to realkey sele c use mobile set order to repropkey sele b use realprop set order to parcel_no go top Do While !eof() @10,20 say recno() nc = .F. If realkey > 0 sele reprop seek realprop.realkey If !found() sele realprop skip If !eof() loop Else exit EndIf Else Do While !eof() .and. realkey = realprop.realkey If occupancy = 4 sele mobile seek reprop.repropkey If !found() sele data_edits appen blank replace fkey with realprop.realkey,; fkey_name with 'realkey',; definition with 'Res Imps (MH) w/o mobile records',; parcel_no with realprop.parcel_no,; pkey with reprop.repropkey,; pkey_name with 'repropkey' EndIf sele reprop skip If eof() exit EndIf EndIf sele reprop skip EndDo EndIf EndIf sele realprop skip EndDo Case fn = 'commimp' sele a use commimp set order to realkey sele c use acessory set order to commkey sele b use realprop set order to parcel_no go top Do While !eof() @10,20 say recno() nc = .F. If realkey > 0 sele commimp seek realprop.realkey If !found() sele realprop skip If !eof() loop Else exit EndIf Else Do While !eof() .and. realkey = realprop.realkey If exfeat_val > 0 sele acessory seek commimp.commkey If !found() sele data_edits appen blank replace fkey with realprop.realkey,; fkey_name with 'realkey',; definition with 'Comm Imps w/ Ex Feature Value but no Extra Feature',; parcel_no with realprop.parcel_no,; pkey with commimp.commkey,; pkey_name with 'commkey' EndIf EndIf sele commimp skip EndDo EndIf EndIf sele realprop skip EndDo Case fn = "personal" sele a use cost set order to perskey sele c use boat set order to perskey sele d use aircraft set order to perskey sele f use other set order to perskey sele g use invn set order to perskey sele b use personal set order to perskey go top Do While !eof() @10,20 say recno() nc = .F. If perskey > 0 sele cost seek personal.perskey If found() nc = .T. EndIf sele invn seek personal.perskey If found() nc = .T. EndIf sele boat seek personal.perskey If found() nc = .T. EndIf sele other seek personal.perskey If found() nc = .T. EndIf sele aircraft seek personal.perskey If found() nc = .T. EndIf EndIf If !nc or personal.perskey = 0 sele data_edits appen blank replace pkey with personal.perskey,; pkey_name with 'personal',; definition with 'Personal Accts w/o child records',; fkey with personal.ownkey,; fkey_name with 'ownkey' EndIf sele personal skip EndDo EndCase close databases clear return *------------------------------------------------- FUNCTION Curr_Val_Check(yn) close databases If !file('fixcurr.dbf') use realprop copy struc extended to temp use temp excl dele for field_name <> 'REALKEY' .and. field_name <>'PARCEL_NO' .and. ; field_name <> 'CURR_VAL' ; .and. field_name <> 'PREV_VAL' .and. field_name <> 'RETURN_VAL' pack create temp2 from temp use temp2 copy to fixcurr fox2x EndIf clear sele e use fixcurr excl zap sele h use inc_detail set order to realkey sele b use reprop set order to realkey sele c use commimp set order to realkey sele d use acessory set order to realkey sele f use acc_ctrl set order to acc_ctrl sele g use data_edits sele a use realprop set order to parcel_no go top clear gt = 0 @ 8,20 say 'Checking Current Value for Real Property...' Do While !eof() @10, 20 say parcel_no If income sele inc_detail seek realprop.realkey If inc_value <> realprop.curr_val sele data_edits appen blank replace pkey with realprop.realkey,; pkey_name with 'realkey',; parcel_no with realprop.parcel_no,; definition with 'Current Value <> Sum of Components - Fixed Real' sele fixcurr appen blank replace realkey with realprop.realkey,parcel_no with realprop.parcel_no,curr_val with ; inc_detail.inc_value,prev_val with realprop.prev_val,return_val with tv sele realprop If rlock() replace curr_val with inc_detail.inc_value EndIf EndIf sele realprop skip If !eof() loop Else exit EndIf EndIf nc = 0 oc = 0 tv = 0 sele reprop seek realprop.realkey Do While realkey = realprop.realkey .and. !eof() If ovr_val > 0 tv = tv + ovr_val gt = gt + ovr_val Else tv = tv + timp_val gt = gt + timp_val EndIf skip EndDo sele c seek realprop.realkey Do While realkey = realprop.realkey .and. !eof() If comimpovr > 0 tv = tv + comimpovr gt = gt + comimpovr Else tv = tv + bldg_val gt = gt + bldg_val EndIf skip EndDo sele d seek realprop.realkey Do While realkey = realprop.realkey .and. !eof() If acc_type # 'A' skip If eof() .or. realkey # realprop.realkey exit Else loop EndIf EndIf sele acc_ctrl seek 'A'+acessory.comp_no If price_code = '3' sele acessory skip If eof() .or. realkey # realprop.realkey exit Else loop EndIf Else sele acessory EndIf If ovr_val > 0 .and. acc_type = 'A' tv = tv + ovr_val gt = gt + ovr_val EndIf If ovr_val = 0 .and. acc_type = 'A' tv = tv + imp_val gt = gt + imp_val EndIf skip EndDo sele realprop If ovrideval > 0 tv = tv + ovrideval gt = gt + ovrideval Else tv = tv + a_value + p_value gt = gt + a_value + p_value EndIf If tv <> curr_val sele data_edits appen blank replace pkey with realprop.realkey,; pkey_name with 'realkey',; parcel_no with realprop.parcel_no,; definition with 'Current Value <> Sum of Components - Fixed' sele fixcurr appen blank replace realkey with realprop.realkey,parcel_no with realprop.parcel_no,curr_val with ; realprop.curr_val,prev_val with realprop.prev_val,return_val with tv sele realprop oc = curr_val nc = tv If rlock() replace curr_val with tv EndIf EndIf skip EndDo *** close databases If !file('fix_pp_curr.dbf') use personal copy struc exten to temp use temp excl dele for field_name <> 'PERSKEY' .and. field_name <> 'CURR_VAL' .and. ; field_name <> 'PREV_VAL' ; .and. field_name <> 'RETURN_VAL' pack create temp2 from temp use temp2 copy to fix_pp_curr fox2x EndIf clear sele e use fix_pp_curr excl zap sele h use data_edits sele b use cost set order to perskey sele c use boat set order to perskey sele d use invn set order to perskey sele f use aircraft set order to perskey sele g use other set order to perskey sele a use personal set order to perskey go top clear @ 8,20 say 'Checking Current Value for Personal Property...' gt = 0 Do While !eof() @10, 20 say perskey nc = 0 oc = 0 tv = 0 bv = 0 mv = 0 iv = 0 ov = 0 av = 0 fv = 0 sele cost seek personal.perskey Do While perskey = personal.perskey .and. !eof() If valmethod = 'C' mv = mv + costval tv = tv + costval Else mv = mv + marketval tv = tv + marketval EndIf skip EndDo sele boat seek personal.perskey Do While perskey = personal.perskey .and. !eof() bv = bv + btmtvalue tv = tv + btmtvalue skip EndDo sele invn seek personal.perskey Do While perskey = personal.perskey .and. !eof() iv = iv + (total_invn - total_net) fv = fv + total_net tv = tv + total_invn skip EndDo sele aircraft seek personal.perskey Do While perskey = personal.perskey .and. !eof() av = av + value tv = tv + value skip EndDo sele other seek personal.perskey Do While perskey = personal.perskey .and. !eof() ov = ov + value tv = tv + value skip EndDo sele personal If curr_val <> tv sele data_edits appen blank replace pkey with personal.perskey,; pkey_name with 'perskey',; definition with 'Current Value <> Sum of Components - Fixed' sele fix_pp_curr appen blank replace perskey with personal.perskey,curr_val with ; personal.curr_val,prev_val with personal.prev_val,return_val with tv sele personal replace curr_val with tv,boat_val with bv,meff_val with mv,plane_val with av,other_val with ; ov,invn_val with iv,frport_val with fv EndIf skip EndDo close databases return *---------------------------------------------------------- FUNCTION Orphans(fn,se) close databases sele e use data_edits clear @ 8,20 say 'Checking ' + fn + ' records for parents..' Do Case Case fn = 'realprop' sele a use owner set order to ownkey sele b use realprop set order to parcel_no go top Do While !eof() @10,20 say recno() sele owner seek realprop.ownkey If !found() sele data_edits appen blank replace pkey with realprop.realkey,; pkey_name with 'realkey',; fkey with realprop.ownkey,; fkey_name with 'ownkey',; parcel_no with realprop.parcel_no,; definition with 'Orphaned ' + fn + ' record' EndIf sele realprop skip EndDo Case fn = 'personal' sele a use owner set order to ownkey sele b use personal set order to perskey go top Do While !eof() @10,20 say recno() sele owner seek personal.ownkey If !found() sele data_edits appen blank replace pkey with personal.perskey,; pkey_name with 'perskey',; fkey with personal.ownkey,; fkey_name with 'ownkey',; definition with 'Orphaned ' + fn + ' record' EndIf sele personal skip EndDo Case fn = 'xmobilep' sele a use owner set order to ownkey sele b use mobile set order to mobilekey go top Do While !eof() @10,20 say recno() If mobtype <> 3 skip If !eof() loop Else exit EndIf EndIf sele owner seek mobile.ownkey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with mobile.mobilekey,; pkey_name with 'mobile',; fkey with mobile.ownkey,; fkey_name with 'ownkey',; definition with 'Orphaned Prebilled Mobile record - Fixed' EndIf sele mobile If !lfind delete EndIf skip EndDo Case fn = 'reprop' sele a use realprop set order to realkey sele b use reprop set order to repropkey go top Do While !eof() @10,20 say recno() sele realprop seek reprop.realkey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with reprop.repropkey,; pkey_name with 'repropkey',; fkey with reprop.realkey,; fkey_name with 'realkey',; definition with 'Orphaned ' + fn + ' record - Fixed' EndIf sele reprop If !lfind delete EndIf skip EndDo Case fn = 'commimp' sele a use realprop set order to realkey sele b use commimp set order to commkey go top Do While !eof() @10,20 say recno() sele realprop seek commimp.realkey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with commimp.commkey,; pkey_name with 'commkey',; fkey with commimp.realkey,; fkey_name with 'realkey',; definition with 'Orphaned ' + fn + ' record - Fixed' EndIf sele commimp If !lfind delete EndIf skip EndDo Case fn = 'acessory' sele a use realprop set order to realkey sele b use acessory set order to acckey go top Do While !eof() @10,20 say recno() If acc_type <> 'A' skip If !eof() loop Else exit EndIf EndIf sele realprop seek acessory.realkey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with acessory.acckey,; pkey_name with 'acckey',; fkey with acessory.realkey,; fkey_name with 'realkey',; definition with 'Orphaned ' + fn + ' record - Fixed' EndIf sele acessory If !lfind delete EndIf skip EndDo Case fn = 'xexfeat' sele a use commimp set order to commkey sele b use acessory set order to acckey go top Do While !eof() @10,20 say recno() If acc_type <> 'C' skip If !eof() loop Else exit EndIf EndIf sele commimp seek acessory.commkey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with acessory.acckey,; pkey_name with 'acckey',; fkey with acessory.commkey,; fkey_name with 'commkey',; definition with 'Orphaned Extra Feature record - Fixed' EndIf sele acessory If !lfind delete EndIf skip EndDo Case fn = 'xmhadd' sele a use mobile set order to mobilekey sele b use acessory set order to acckey go top Do While !eof() @10,20 say recno() If acc_type <> 'M' skip If !eof() loop Else exit EndIf EndIf sele mobile seek acessory.mobilekey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with acessory.acckey,; pkey_name with 'acckey',; fkey with acessory.mobilekey,; fkey_name with 'mobilekey',; definition with iif(mobile.mobtype = 3,'Orphaned Preb MH Addon record - Fixed',; 'Orphaned Non-Preb MH Addon record - Fixed') EndIf sele acessory If !lfind delete EndIf skip EndDo Case fn = 'xmobilen' sele a use reprop set order to repropkey sele b use mobile set order to mobilekey go top Do While !eof() @10,20 say recno() If mobtype <> 2 and mobtype <> 1 skip If !eof() loop Else exit EndIf EndIf sele reprop seek mobile.repropkey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with mobile.mobilekey,; pkey_name with 'mobilekey',; fkey with mobile.repropkey,; fkey_name with 'repropkey',; definition with 'Orphaned Non-Prebilled Mobile record - Fixed' EndIf sele mobile If !lfind delete EndIf skip EndDo Case fn = 'invn' sele a use personal set order to perskey sele b use invn set order to invnkey go top Do While !eof() @10,20 say recno() sele personal seek invn.perskey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with invn.invnkey,; pkey_name with 'invnkey',; fkey with invn.perskey,; fkey_name with 'perskey',; definition with 'Orphaned ' + fn + ' record - Fixed' EndIf sele invn If !lfind delete EndIf skip EndDo Case fn = 'cost' sele a use personal set order to perskey sele b use cost set order to costkey go top Do While !eof() @10,20 say recno() sele personal seek cost.perskey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with cost.costkey,; pkey_name with 'costkey',; fkey with cost.perskey,; fkey_name with 'perskey',; definition with 'Orphaned ' + fn + ' record - Fixed' EndIf sele cost If !lfind delete EndIf skip EndDo Case fn = 'aircraft' sele a use personal set order to perskey sele b use aircraft set order to airkey go top Do While !eof() @10,20 say recno() sele personal seek aircraft.perskey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with aircraft.airkey,; pkey_name with 'airkey',; fkey with aircraft.perskey,; fkey_name with 'perskey',; definition with 'Orphaned ' + fn + ' record' EndIf sele aircraft If !lfind delete EndIf skip EndDo Case fn = 'other' sele a use personal set order to perskey sele b use other set order to otherkey go top Do While !eof() @10,20 say recno() sele personal seek other.perskey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with other.otherkey,; pkey_name with 'otherkey',; fkey with other.perskey,; fkey_name with 'perskey',; definition with 'Orphaned ' + fn + ' record' EndIf sele other If !lfind delete EndIf skip EndDo Case fn = 'boat' sele a use personal set order to perskey sele b use boat set order to boatkey go top Do While !eof() @10,20 say recno() sele personal seek boat.perskey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with boat.boatkey,; pkey_name with 'boatkey',; fkey with boat.perskey,; fkey_name with 'perskey',; definition with 'Orphaned ' + fn + ' record' EndIf sele boat If !lfind delete EndIf skip EndDo Case fn = 'wgsketch' sele a use reprop set order to repropkey sele c use commimp set order to commkey sele b use wgsketch go top Do While !eof() lfind = .t. @10,20 say recno() If repropkey > 0 sele reprop seek wgsketch.repropkey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with wgsketch.repropkey,; pkey_name with 'repropkey',; fkey with wgsketch.realkey,; fkey_name with 'realkey',; definition with 'Orphaned ' + fn + ' record - Fixed' EndIf sele wgsketch EndIf If commkey > 0 sele commimp seek wgsketch.commkey lfind = .t. If !found() lfind = .f. sele data_edits appen blank replace pkey with wgsketch.commkey,; pkey_name with 'commkey',; fkey with wgsketch.realkey,; fkey_name with 'realkey',; definition with 'Orphaned ' + fn + ' record - Fixed' EndIf EndIf sele wgsketch If !lfind delete EndIf skip EndDo EndCase close databases return *-------------------------------------------------- FUNCTION ZeroValue(fn,se) On Error lerr = errhand(error() , message() , message(1) , program() , lineno()) clear close databases sele e use data_edits Do Case Case fn = 'real' clear @ 8,20 say 'Checking Parcel Components for Zero Values...' sele b use reprop set order to realkey sele c use commimp set order to realkey sele d use acessory set order to realkey sele h use mobile set order to repropkey sele i use acc_ctrl set order to acc_ctrl sele a use realprop set order to parcel_no go top Do While !eof() @10,20 say parcel_no If realkey = 0 skip If !eof() loop Else exit EndIf EndIf If digstrat <> '1' .and. a_value + p_value + ovrideval = 0 fk = 0 fm = ' ' fx = alias() append_data_edits('Zero Land Value',realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele reprop seek realprop.realkey Do While realkey = realprop.realkey .and. !eof() If timp_val + ovr_val = 0 and at('no value',lower(comment)) = 0 fk = realkey fm = 'realkey' fx = alias() append_data_edits('Zero Res Imp Value',reprop.repropkey,'repropkey',realprop.parcel_no,; fk,fm,fx) EndIf If occupancy = 4 sele mobile seek reprop.repropkey If found() If (guide .and. guidevalue = 0) .or. (!guide .and. ovrvalue + value = 0) ; and at('no value',lower(comment)) = 0 fk = repropkey fm = 'repropkey' fx = alias() append_data_edits('Zero Non-Preb MH Value',mobile.mobilekey,'mobilekey',; realprop.parcel_no,fk,fm,fx) EndIf sele acessory set order to mobilekey seek mobile.mobilekey Do While mobilekey = mobile.mobilekey .and. !eof() If imp_val + ovr_val = 0 and acc_type = 'M' and at('no value',lower(comments)) = 0 fk = mobile.mobilekey fm = 'mobilekey' fx = alias() append_data_edits('Zero Non-Preb MH Addon Value',acessory.acckey,'acckey',; realprop.parcel_no,fk,fm,fx) EndIf skip EndDo EndIf EndIf sele reprop skip EndDo sele commimp seek realprop.realkey Do While realkey = realprop.realkey .and. !eof() If struc_val + comimpovr = 0 and at('no value',lower(comment1)) = 0 fk = realkey fm = 'realkey' fx = alias() append_data_edits('Zero Comm Imp Value',commimp.commkey,'commkey',realprop.parcel_no,; fk,fm,fx) EndIf sele acessory set order to commkey seek commimp.commkey Do While commkey = commimp.commkey .and. !eof() If imp_val + ovr_val = 0 and at('no value',lower(comments)) = 0 fk = commimp.commkey fm = 'commkey' fx = alias() append_data_edits('Zero Extra Feature Value',acessory.acckey,'acckey',; realprop.parcel_no,fk,fm,fx) EndIf skip EndDo sele commimp skip EndDo sele acessory set order to realkey seek realprop.realkey Do While realkey = realprop.realkey .and. !eof() If imp_val + ovr_val = 0 and at('no value',lower(comments)) = 0 sele acc_ctrl seek 'A' + acessory.comp_no If price_code <> '3' sele acessory fk = realkey fm = 'realkey' fx = alias() append_data_edits('Zero Acc Imp Value',acessory.acckey,'acckey',realprop.parcel_no,; fk,fm,fx) EndIf EndIf sele acessory skip EndDo sele realprop skip EndDo Case fn = 'personal' sele b use cost set order to perskey sele c use invn set order to perskey sele d use boat set order to perskey sele f use other set order to perskey sele g use aircraft set order to perskey sele a use personal set order to perskey go top clear @ 8,20 say 'Checking for Zero Value Personal Property Items' Do While !eof() @10,20 say recno() If curr_val = 0 and at('no value',lower(records)) = 0 fk = 0 fm = ' ' fx = alias() append_data_edits('Zero Personal Acct Value',personal.perskey,'perskey',; personal.co_id_num,fk,fm,fx) EndIf sele cost seek personal.perskey Do While !eof() and perskey = personal.perskey Do Case Case valmethod = 'C' .and. costval = 0 and cost - disposals <> 0 and ; at('no value',lower(comments)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero MEFF Cost Value',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) Case valmethod = 'M' .and. marketval = 0 and at('no value',lower(comments)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero MEFF Market Value',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) Case marketval + costval = 0 and cost - disposals <> 0 and cost > 0 and ; at('no value',lower(comments)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero MEFF Market Value',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) EndCase skip EndDo sele invn seek personal.perskey Do While !eof() and perskey = personal.perskey If total_invn = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Invn Value',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) EndIf If gross_raw + gross_mfg + gross_out > 0 .and. (total_net = 0 .or. personal.frport_val = 0) fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Freeport Value',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) EndIf skip EndDo sele boat seek personal.perskey Do While !eof() and perskey = personal.perskey If abos_bt and abos_boat = 0 and at('no value',lower(btcomment)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Boat Value',boat.boatkey,'boatkey',; personal.co_id_num,fk,fm,fx) EndIf If !abos_bt and boat_value = 0 and len(trim(mfg_name)) + len(trim(model_name)) + feet > 0 ; and at('no value',lower(btcomment)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Boat Value',boat.boatkey,'boatkey',; personal.co_id_num,fk,fm,fx) EndIf If abos_mt and abos_motor = 0 and at('no value',lower(btcomment)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Motor Value',boat.boatkey,'boatkey',; personal.co_id_num,fk,fm,fx) EndIf If !abos_mt and motor_val = 0 and len(trim(motor_mfg)) + len(trim(motor_modl)) + ; val(horsepower) > 0 and at('no value',lower(btcomment)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Motor Value',boat.boatkey,'boatkey',; personal.co_id_num,fk,fm,fx) EndIf skip EndDo sele aircraft seek personal.perskey Do While !eof() and perskey = personal.perskey If value = 0 and at('no value',lower(comments)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Aircraft Value',aircraft.airkey,'airkey',; personal.co_id_num,fk,fm,fx) EndIf skip EndDo sele other seek personal.perskey Do While !eof() and perskey = personal.perskey If value = 0 and at('no value',lower(comments)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Other Value',other.otherkey,'otherkey',; personal.co_id_num,fk,fm,fx) EndIf skip EndDo sele personal skip EndDo Case fn = 'mobile' sele a use mobile set order to mobilekey sele b use acessory set order to mobilekey sele a clear @ 8,20 say 'Checking for Zero Valued Prebilled Records' Do While !eof() @10,20 say recno() If mobtype <> 3 skip If !eof() loop Else exit EndIf EndIf Do Case Case ovrvalue = 0 and guide and guidevalue = 0 and at('no value',lower(comment)) = 0 fk = ownkey fm = 'ownkey' fx = alias() append_data_edits('Zero Prebill MH NADA Value',mobile.mobilekey,'mobilekey',; mobile.prebmapid,fk,fm,fx) Case ovrvalue = 0 and !guide and value = 0 and at('no value',lower(comment)) = 0 fk = ownkey fm = 'ownkey' fx = alias() append_data_edits('Zero Prebill MH Cost Value',mobile.mobilekey,'mobilekey',; mobile.prebmapid,fk,fm,fx) EndCase sele acessory seek mobile.mobilekey Do While mobilekey = mobile.mobilekey .and. !eof() If imp_val + ovr_val = 0 .and. acc_type = 'M' and at('no value',lower(comments)) = 0 fk = mobile.mobilekey fm = 'mobilekey' fx = alias() append_data_edits('Zero Prebill MH Addon Value',acessory.acckey,'acckey',; mobile.prebmapid,fk,fm,fx) EndIf skip EndDo sele mobile skip EndDo EndCase clear close databases return *--------------------------------------------- FUNCTION Min_Max(fn,se) local fk,fm,fx,lvn,lvm,rvn,rvm,cvn,cvm,avn,avm,ivn,ivm,mvn,mvm,bvn,bvm,fn,se local pvn,pvm,ovn,ovm close databases If !file('data_min_max.dbf') If file('temp.dbf') erase temp.dbf EndIf If file('temp.fpt') erase temp.fpt EndIf create table temp (land_min n(12), land_max n(12), resimp_min n(12), resimp_max n(12),; comimp_min n(12), comimp_max n(12),accimp_min n(12), accimp_max n(12),; income_min n(12), income_max n(12), acct_min n(12), acct_max n(12),; meff_min n(12), meff_max n(12), invn_min n(12), invn_max n(12),; boat_min n(12), boat_max n(12), plane_min n(12), plane_max n(12),; other_min n(12), other_max n(12), mh_min n(12), mh_max n(12)) appen blank copy to data_min_max fox2x use erase temp.dbf EndIf Do Case Case fn = 'real' clear use data_min_max lvn = land_min lvm = land_max rvn = resimp_min rvm = resimp_max cvn = comimp_min cvm = comimp_max avn = accimp_min avm = accimp_max ivn = income_min ivm = income_max Do While .t. clear @4,20 say 'ESC = Cancel Edit' @ 6,20 say 'Min Land Value :' @ 6,44 get lvn pict '@K 999,999,999,999' valid(lvn > 0) @ 8,20 say 'Max Land Value :' @ 8,44 get lvm pict '@K 999,999,999,999' valid(lvm > lvn) @12,20 say 'Min Res Imp Value :' @12,44 get rvn pict '@K 999,999,999,999' valid(rvn > 0) @14,20 say 'Max Res Imp Value :' @14,44 get rvm pict '@K 999,999,999,999' valid(rvm > rvn) @18,20 say 'Min Comm Imp Value:' @18,44 get cvn pict '@K 999,999,999,999' valid(cvn > 0) @20,20 say 'Max Comm Imp Value:' @20,44 get cvm pict '@K 999,999,999,999' valid(cvm > cvn) read If LastKey() = 27 return EndIf clear @4,20 say 'ESC = Cancel Edit; PgUp = Review Previous Screen' @ 6,20 say 'Min Acc Imp Value :' @ 6,44 get avn pict '@K 999,999,999,999' valid(avn > 0) @ 8,20 say 'Max Acc Imp Value :' @ 8,44 get avm pict '@K 999,999,999,999' valid(avm > avn) @12,20 say 'Min Income Value :' @12,44 get ivn pict '@K 999,999,999,999' valid(ivn > 0) @14,20 say 'Max Income Value :' @14,44 get ivm pict '@K 999,999,999,999' valid(ivm > ivn) read If LastKey() = 27 return EndIf replace land_min with lvn,; land_max with lvm,; resimp_min with rvn,; resimp_max with rvm,; comimp_min with cvn,; comimp_max with cvm,; accimp_min with avn,; accimp_max with avm,; income_min with ivn,; income_max with ivm If Lastkey() = 18 loop EndIf exit EndDo sele e use data_edits sele b use reprop set order to realkey sele c use commimp set order to realkey sele d use acessory set order to realkey *!* sele f *!* use inc_detail *!* set order to realkey sele a use realprop set order to parcel_no go top clear @ 8,20 say 'Checking Parcels for Min & Max Values' Do While !eof() @10,20 say parcel_no If digstrat = '1' .or. digclass = 'E' skip If !eof() loop Else exit EndIf EndIf *!* If income *!* sele inc_detail *!* seek realprop.realkey *!* *!* If inc_value < ivn *!* fk = 0 *!* fm = ' ' *!* fx = alias() *!* *!* append_data_edits('Income Value below Min - ' + ; *!* str(realprop.ovrideval,10,0),realprop.realkey,; *!* 'realkey',realprop.parcel_no,fk,fm,fx) *!* EndIf *!* *!* If inc_value > ivm *!* fk = 0 *!* fm = ' ' *!* fx = alias() *!* *!* append_data_edits('Income Value above Max - ' + str(realprop.ovrideval,10,0),; *!* realprop.realkey,; *!* 'realkey',realprop.parcel_no,fk,fm,fx) *!* *!* EndIf *!* *!* sele realprop *!* *!* EndIf If ovrideval > 0 .and. ovrideval < lvn fk = 0 fm = ' ' fx = alias() append_data_edits('Land Value below Min - ' + str(realprop.ovrideval,10,0),realprop.realkey,; 'realkey',realprop.parcel_no,fk,fm,fx) EndIf If ovrideval = 0 .and. a_value + p_value > 0 .and. a_value + p_value < lvn fk = 0 fm = ' ' fx = alias() append_data_edits('Land Value below Min - ' + str(a_value+p_value,10,0),realprop.realkey,; 'realkey',realprop.parcel_no,fk,fm,fx) EndIf If ovrideval > 0 .and. ovrideval > lvm fk = 0 fm = ' ' fx = alias() append_data_edits('Land Value above Max - ' + str(ovrideval,10,0),realprop.realkey,; 'realkey',realprop.parcel_no,fk,fm,fx) EndIf If ovrideval = 0 .and. a_value + p_value > 0 .and. a_value + p_value > lvm fk = 0 fm = ' ' fx = alias() append_data_edits('Land Value above Max - ' + str(a_value+p_value,10,0),realprop.realkey,; 'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele reprop seek realprop.realkey Do While !eof() .and. realkey = realprop.realkey If digclass = 'E' skip If !eof() loop Else exit EndIf EndIf If ovr_val > 0 and ovr_val < rvn fk = realprop.realkey fm = 'realkey ' fx = alias() append_data_edits('Res Imp Value below Min - ' + str(ovr_val,10,0),reprop.repropkey,; 'repropkey',realprop.parcel_no,fk,fm,fx) EndIf If ovr_val = 0 .and. timp_val > 0 .and. timp_val < rvn fk = realprop.realkey fm = 'realkey ' fx = alias() append_data_edits('Res Imp Value below Min - ' + str(timp_val,10,0),reprop.repropkey,; 'repropkey',realprop.parcel_no,fk,fm,fx) EndIf If ovr_val > 0 .and. ovr_val > rvm fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Res Imp Value above Max - ' + str(ovr_val,10,0),reprop.repropkey,; 'repropkey',realprop.parcel_no,fk,fm,fx) EndIf If ovr_val = 0 .and. timp_val > 0 .and. timp_val > rvm fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Res Imp Value above Max - ' + str(timp_val,10,0),reprop.repropkey,; 'repropkey',realprop.parcel_no,fk,fm,fx) EndIf skip EndDo sele commimp seek realprop.realkey Do While !eof() .and. realkey = realprop.realkey If digclass = 'E' skip If !eof() loop Else exit EndIf EndIf If comimpovr > 0 and comimpovr < cvn fk = realprop.realkey fm = 'realkey ' fx = alias() append_data_edits('Comm Imp Value below Min - ' + str(comimpovr,10,0),commimp.commkey,; 'commkey',realprop.parcel_no,fk,fm,fx) EndIf If comimpovr = 0 .and. bldg_val > 0 .and. bldg_val < cvn fk = realprop.realkey fm = 'realkey ' fx = alias() append_data_edits('Comm Imp Value below Min - ' + str(bldg_val,10,0),commimp.commkey,; 'commkey',realprop.parcel_no,fk,fm,fx) EndIf If comimpovr > 0 .and. comimpovr > cvm fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Comm Imp Value above Max - ' + str(comimpovr,10,0),commimp.commkey,; 'commkey',realprop.parcel_no,fk,fm,fx) EndIf If comimpovr = 0 .and. bldg_val > 0 .and. bldg_val > cvm fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Comm Imp Value above Max - ' + str(bldg_val,10,0),commimp.commkey,; 'commkey',realprop.parcel_no,fk,fm,fx) EndIf sele commimp skip EndDo sele acessory seek realprop.realkey Do While !eof() .and. realkey = realprop.realkey If digclass = 'E' .or. acc_type <> 'A' skip If !eof() loop Else exit EndIf EndIf If ovr_val > 0 and ovr_val < avn fk = realprop.realkey fm = 'realkey ' fx = alias() append_data_edits('Acc Imp Value below Min - ' + str(ovr_val,10,0),acessory.acckey,; 'acckey',realprop.parcel_no,fk,fm,fx) EndIf If ovr_val = 0 .and. imp_val > 0 .and. imp_val < avn fk = realprop.realkey fm = 'realkey ' fx = alias() append_data_edits('Acc Imp Value below Min - ' + str(imp_val,10,0),acessory.acckey,; 'acckey',realprop.parcel_no,fk,fm,fx) EndIf If ovr_val > 0 .and. ovr_val > avm fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Acc Imp Value above Max - ' + str(ovr_val,10,0),acessory.acckey,; 'acckey',realprop.parcel_no,fk,fm,fx) EndIf If ovr_val = 0 .and. imp_val > 0 .and. imp_val > avm fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Acc Imp Value above Max - ' + str(imp_val,10,0),acessory.acckey,; 'acckey',realprop.parcel_no,fk,fm,fx) EndIf skip EndDo sele realprop skip EndDo ** Case fn = 'personal' clear use data_min_max avn = acct_min avm = acct_max mvn = meff_min mvm = meff_max ivn = invn_min ivm = invn_max bvn = boat_min bvm = boat_max pvn = plane_min pvm = plane_max ovn = other_min ovm = other_max Do While .t. clear @ 2,20 say 'If Min Value = 0, Min Edit will NOT be performed' @ 4,20 say 'ESC = Cancel Edit' @ 6,20 say 'Min Account Value :' @ 6,44 get avn pict '@K 999,999,999,999' @ 8,20 say 'Max Account Value :' @ 8,44 get avm pict '@K 999,999,999,999' valid(avm > avn) @12,20 say 'Min MEFF Value :' @12,44 get mvn pict '@K 999,999,999,999' @14,20 say 'Max MEFF Value :' @14,44 get mvm pict '@K 999,999,999,999' valid(mvm > mvn) @18,20 say 'Min Invn Value:' @18,44 get ivn pict '@K 999,999,999,999' @20,20 say 'Max Invn Value:' @20,44 get ivm pict '@K 999,999,999,999' valid(ivm > ivn) read If LastKey() = 27 return EndIf clear @ 2,20 say 'If Min Value = 0, Min Edit will NOT be performed' @ 4,20 say 'ESC = Cancel Edit; PgUp to Review Previous Screen' @ 6,20 say 'Min Boat Value :' @ 6,44 get bvn pict '@K 999,999,999,999' @ 8,20 say 'Max Boat Value :' @ 8,44 get bvm pict '@K 999,999,999,999' valid(bvm > bvn) @12,20 say 'Min Aircraft Value :' @12,44 get pvn pict '@K 999,999,999,999' @14,20 say 'Max Aircraft Value :' @14,44 get pvm pict '@K 999,999,999,999' valid(pvm > pvn) @18,20 say 'Min Other Value :' @18,44 get ovn pict '@K 999,999,999,999' @20,20 say 'Max Other Value :' @20,44 get ovm pict '@K 999,999,999,999' valid(ovm > ovn) read If LastKey() = 27 return EndIf replace acct_min with avn,; acct_max with avm,; meff_min with mvn,; meff_max with mvm,; invn_min with ivn,; invn_max with ivm,; boat_min with bvn,; boat_max with bvm,; plane_min with pvn,; plane_max with pvm,; other_min with ovn,; other_max with ovm If LastKey() = 18 loop EndIf exit EndDo sele e use data_edits sele b use cost set order to perskey sele c use invn set order to perskey sele d use boat set order to perskey sele f use aircraft set order to perskey sele g use other set order to perskey sele a use personal set order to perskey go top clear @ 8,20 say 'Checking Personal Accounts for Min & Max Values' Do While !eof() @10,20 say perskey If avn > 0 .and. curr_val < avn .and. curr_val > 0 fk = 0 fm = ' ' fx = alias() append_data_edits('Acct Value below Min - ' + str(curr_val,10,0),personal.perskey,; 'perskey',personal.co_id_num,fk,fm,fx) EndIf If avm > 0 .and. curr_val > avm fk = 0 fm = ' ' fx = alias() append_data_edits('Acct Value above Max - ' + str(curr_val,10,0),personal.perskey,; 'perskey',personal.co_id_num,fk,fm,fx) EndIf sele cost seek perskey Do While !eof() and perskey = personal.perskey If mvn > 0 .and. ((valmethod = 'C' .and. costval < mvn .and. costval > 0) .or. ; (valmethod = 'M' .and. marketval < mvn .and. marketval > 0)) fk = personal.perskey fm = 'perskey ' fx = alias() append_data_edits('MEFF Value below Min - ' + ; iif(valmethod='C',str(costval,10,0),str(marketval,10,0)),; cost.costkey,'costkey',personal.co_id_num,fk,fm,fx) EndIf If mvm > 0 .and. ((valmethod = 'C' .and. costval > mvm) .or. ; (valmethod = 'M' .and. marketval > mvm)) fk = personal.perskey fm = 'perskey ' fx = alias() append_data_edits('MEFF Value above Max - ' + ; iif(valmethod='C',str(costval,10,0),str(marketval,10,0)),; cost.costkey,'costkey',personal.co_id_num,fk,fm,fx) EndIf skip EndDo * sele invn seek perskey Do While !eof() and perskey = personal.perskey If ivn > 0 .and. total_invn > 0 and total_invn < ivn fk = personal.perskey fm = 'perskey ' fx = alias() append_data_edits('Invn Value below Min - ' + str(total_invn,10,0),; invn.invnkey,'invnkey',personal.co_id_num,fk,fm,fx) EndIf If ivm > 0 .and. total_invn > ivm fk = personal.perskey fm = 'perskey ' fx = alias() append_data_edits('Invn Value above Max - ' + str(total_invn,10,0),; invn.invnkey,'invnkey',personal.co_id_num,fk,fm,fx) EndIf skip EndDo * sele boat seek perskey Do While !eof() and perskey = personal.perskey If bvn > 0 .and. btmtvalue > 0 and btmtvalue < bvn fk = personal.perskey fm = 'perskey ' fx = alias() append_data_edits('Boat-Motor Value below Min - ' + str(btmtvalue,10,0),; boat.boatkey,'boatkey',personal.co_id_num,fk,fm,fx) EndIf If bvm > 0 .and. btmtvalue > bvm fk = personal.perskey fm = 'perskey ' fx = alias() append_data_edits('Boat-Motor Value above Max - ' + str(btmtvalue,10,0),; boat.boatkey,'boatkey',personal.co_id_num,fk,fm,fx) EndIf skip EndDo * sele aircraft seek perskey Do While !eof() and perskey = personal.perskey If pvn > 0 .and. value > 0 and value < pvn fk = personal.perskey fm = 'perskey ' fx = alias() append_data_edits('Aircraft Value below Min - ' + str(value,10,0),; aircraft.airkey,'airkey',personal.co_id_num,fk,fm,fx) EndIf If pvm > 0 .and. value > pvm fk = personal.perskey fm = 'perskey ' fx = alias() append_data_edits('Aircraft Value above Max - ' + str(value,10,0),; aircraft.airkey,'airkey',personal.co_id_num,fk,fm,fx) EndIf skip EndDo * sele other seek perskey Do While !eof() and perskey = personal.perskey If ovn > 0 .and. value > 0 and value < ovn fk = personal.perskey fm = 'perskey ' fx = alias() append_data_edits('Other Value below Min - ' + str(value,10,0),; other.otherkey,'otherkey',personal.co_id_num,fk,fm,fx) EndIf If ovm > 0 .and. value > ovm fk = personal.perskey fm = 'perskey ' fx = alias() append_data_edits('Other Value above Max - ' + str(value,10,0),; other.otherkey,'otherkey',personal.co_id_num,fk,fm,fx) EndIf skip EndDo sele personal skip EndDo Case fn = 'mobile' clear use data_min_max mvn = mh_min mvm = mh_max Do While .t. @ 2,20 say 'If Min Value = 0, Min Edit will NOT be performed' @ 4,20 say 'ESC = Cancel Edit' @ 6,20 say 'Min Mfg Home Value :' @ 6,44 get mvn pict '@K 999,999,999,999' @ 8,20 say 'Max Mfg Home Value :' @ 8,44 get mvm pict '@K 999,999,999,999' valid(mvm > mvn) read If LastKey() = 27 return EndIf replace mh_min with mvn,mh_max with mvm exit EndDo sele e use data_edits sele a use mobile set order to mobilekey go top clear @ 8,20 say 'Checking Prebills for Min & Max Values' Do While !eof() @10,20 say mobilekey If mobtype < 3 .or. exempt skip If !eof() loop Else exit EndIf EndIf If mvn > 0 .and. guide .and. guidevalue < mvn .and. guidevalue > 0 fk = mobile.ownkey fm = 'ownkey ' fx = alias() append_data_edits('Prebilled MH Value below Min - ' + str(guidevalue,10,0),; mobile.mobilekey,'mobilekey',mobile.prebmapid,fk,fm,fx) EndIf If mvn > 0 .and. !guide .and. value < mvn .and. value > 0 fk = mobile.ownkey fm = 'ownkey ' fx = alias() append_data_edits('Prebilled MH Value below Min - ' + str(value,10,0),; mobile.mobilekey,'mobilekey',mobile.prebmapid,fk,fm,fx) EndIf If mvm > 0 .and. guide .and. guidevalue > mvm fk = mobile.ownkey fm = 'ownkey ' fx = alias() append_data_edits('Prebilled MH Value above Max - ' + str(guidevalue,10,0),; mobile.mobilekey,'mobilekey',mobile.prebmapid,fk,fm,fx) EndIf If mvm > 0 .and. !guide .and. value > mvm fk = mobile.ownkey fm = 'ownkey ' fx = alias() append_data_edits('Prebilled MH Value above Max - ' + str(value,10,0),; mobile.mobilekey,'mobilekey',mobile.prebmapid,fk,fm,fx) EndIf skip EndDo EndCase close databases return *--------------------------------------- FUNCTION homesteads_wo_imps(yn) close databases sele e use data_edits sele b use reprop set order to realkey sele a use realprop set order to parcel_no go top clear @10,20 say 'Checking for Homesteads without Res Imps...' Do While !eof() @12,20 say parcel_no If homeexempt = 'S0' .or. len(trim(homeexempt)) = 0 skip If !eof() loop Else exit EndIf EndIf sele reprop seek realprop.realkey If !found() fk = 0 fm = ' ' fx = alias() append_data_edits('Homesteaded Parcels w/o Res Imp - HE Code: ' + realprop.homeexempt,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele realprop skip EndDo close databases return *--------------------------------------- FUNCTION frozen_hs(yn) close databases sele e use data_edits sele a use realprop set order to parcel_no go top clear @10,20 say 'Checking for no Homestead but Frozen HS Values...' Do While !eof() @12,20 say parcel_no If homeexempt <> 'S0' and len(alltrim(homeexempt)) > 0 skip If !eof() loop Else exit EndIf EndIf If orighomval + currhomval > 0 fk = 0 fm = ' ' fx = alias() append_data_edits('Floating HS Values w/ S0 HS Code: ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele realprop skip EndDo close databases return *--------------------------------------- FUNCTION removed_hs(yn) close databases use defaults dy = str(digyr - 1,4,0) If !file('..\&dy\owner.dbf') return EndIf sele e use data_edits sele a use realprop set order to parcel_no sele b use owner set order to ownkey sele c use ..\&dy\owner alias ownerdy If file('..\&dy\owner.cdx') set order to ownkey Else index on ownkey to xx EndIf sele d use ..\&dy\realprop alias realdy If file('..\&dy\realprop') set order to realkey Else index on realkey to xy EndIf sele realprop go top clear @10,20 say 'Checking for Homestead Removal...' Do While !eof() @12,20 say parcel_no If homeexempt <> 'S0' and len(alltrim(homeexempt)) > 0 skip If !eof() loop Else exit EndIf EndIf sele realdy seek realprop.realkey If found() and homeexempt = 'S0' or len(alltrim(homeexempt)) = 0 sele realprop skip If !eof() loop Else exit EndIf EndIf lchg = .t. If ownkey = realprop.ownkey sele ownerdy seek realdy.ownkey sele owner seek realprop.ownkey If lastname + firstname + middle = ownerdy.lastname + ownerdy.firstname + ownerdy.middle lchg = .f. EndIf EndIf If !lchg fk = 0 fm = ' ' fx = alias() append_data_edits('HS Removed w/ no Owner Change',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If lchg and (realprop.homeexempt = 'S0' or len(alltrim(realprop.homeexempt)) = 0) fk = 0 fm = ' ' fx = alias() append_data_edits('HS Removed...Prev Code: ' + realdy.homeexempt,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele realprop skip EndDo close databases return *--------------------------------------- FUNCTION Missing_Digest_Codes(yn) close databases sele e use data_edits sele b use reprop set order to realkey sele c use commimp set order to realkey sele d use acessory set order to realkey sele a use realprop set order to parcel_no go top clear @ 8,20 say 'Checking Real Property for Invalid Digest Codes...' Do While !eof() @10,20 say parcel_no *!* If digclass <> 'R' .and. digclass <> 'A' .and. digclass <> 'C' .and. digclass <> 'I' .and. ; *!* digclass <> 'V' .and. digclass <> 'P' .and. digclass <> 'E' .and. digclass <> 'T' .and. ; *!* digclass <> 'U' .and. digclass <> 'H' *!* *!* fk = 0 *!* fm = ' ' *!* fx = alias() *!* *!* append_data_edits('Invalid Land Dig Cls - Code: ' + ; *!* iif(digclass = ' ','Missing',realprop.digclass+realprop.digstrat),; *!* realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) *!* *!* EndIf If (digclass <> 'E' .and. digclass <> 'U' .and. digstrat <> '1' .and. digstrat <> '3' .and. ; digstrat <> '4' .and. digstrat <> '5' .and. digstrat <> '9') .or. (digclass = 'E' .and. ; (digstrat < '0' .or. digstrat > '9')) .or. (digclass = 'U' .and. digstrat <> '1' .and. ; digstrat <> '2' .and. digstrat <> '3' .and. digstrat <> '4' .and. digstrat <> '5' .and. ; digstrat <> '9') fk = 0 fm = ' ' fx = alias() append_data_edits('Invalid Land Dig Strat - Code: ' + ; iif(digstrat = ' ','Missing',realprop.digclass+realprop.digstrat),; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele reprop seek realprop.realkey Do While !eof() and realkey = realprop.realkey If digclass <> 'R' .and. digclass <> 'A' .and. digclass <> 'C' .and. digclass <> 'I' .and. ; digclass <> 'E' .and. digclass <> 'T' .and. digclass <> 'U' .and. digclass <> 'H' fk = realprop.realkey fm = 'realkey ' fx = alias() append_data_edits('Invalid Res Imp Dig Cls Code: ' + ; iif(digclass = ' ','Missing',reprop.digclass+reprop.digstrat),; reprop.repropkey,'repropkey',realprop.parcel_no,fk,fm,fx) EndIf If (digclass <> 'E' .and. digclass <> 'U' .and. digstrat <> '1' .and. digstrat <> '9') .or. ; (digclass = 'E' .and. (digstrat < '0' .or. digstrat > '9')) .or. ; (digclass = 'U' .and. digstrat <> '1' .and. digstrat <> '2') fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Invalid Res Imp Dig Strat Code: ' + ; iif(digstrat = ' ','Missing',reprop.digclass+reprop.digstrat),; reprop.repropkey,'repropkey',realprop.parcel_no,fk,fm,fx) EndIf skip EndDo sele realprop skip EndDo *------------------------------- FUNCTION Append_Data_Edits(de,pk,pm,pn,fk,fm,fz) sele data_edits appen blank replace pkey with pk,; pkey_name with pm,; parcel_no with pn,; definition with de,; fkey with fk,; fkey_name with fm sele &fz return *----------------------------------------------- FUNCTION Cuv_edits(yn) close databases clear sele a use realprop sele b use conmai index on realkey to xx sele c use defaults sele d use data_edits sele realprop n = 0 clear @10,20 say 'Searching for CU Covenants without a Current Year CU Value...' Do While !eof() @12,20 say recno() @14,20 say alias() If val(realprop.ccy) = 0 skip If !eof() loop Else exit EndIf EndIf n = round(defaults.digyr - val(realprop.ccy),0) If n > 9 or n < 0 fk = 0 fm = ' ' fx = alias() append_data_edits('Expired CU Cov ' + realprop.ccy,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) sele realprop skip If !eof() loop Else exit EndIf EndIf *** m = str(n,1,0) sele conmai seek realprop.realkey If found() If val&m = 0 fk = 0 fm = ' ' fx = alias() append_data_edits('No Value Cu Cov ' + realprop.ccy,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) sele realprop skip If !eof() loop Else exit EndIf Else x = str(n-1,1) If n > 0 e = val&m - val&x f = abs(e) / val&x If f > .03 fk = 0 fm = ' ' fx = alias() append_data_edits('3% Limit Exceeded ' + realprop.ccy,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) sele realprop skip If !eof() loop Else exit EndIf Else sele realprop skip If !eof() loop Else exit EndIf EndIf EndIf If n > 0 and (abs(val&m-origconval))/iif(origconval>0,origconval,1) > .3439 fk = 0 fm = ' ' fx = alias() append_data_edits('34.39% Limit Exceeded ' + realprop.ccy,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) sele realprop skip If !eof() loop Else exit EndIf EndIf EndIf EndIf If !found() fk = 0 fm = ' ' fx = alias() append_data_edits('CCY but no Conmai Record ' + realprop.ccy,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) sele realprop skip If !eof() loop Else exit EndIf EndIf sele realprop skip EndDo close all clear @10,20 say 'Searching for conmai records without realprop parent...' sele a use conmai sele b use realprop index on realkey to xx sele c use data_edits sele conmai clear Do while !eof() @12,20 say recno() If curr_cuv = 0 sele realprop seek conmai.realkey sele conmai fk = realkey fm = 'realkey' fx = alias() append_data_edits('No Current CU Value ' + str(conmai.origcondat,4,0),; conmai.conmaikey,'conmaikey',realprop.parcel_no,fk,fm,fx) EndIf sele realprop seek conmai.realkey If !found() or val(ccy) = 0 fk = realkey fm = 'realkey' fx = alias() append_data_edits('Conmai Record but No CU on Parcel ' + str(conmai.origcondat,4,0),; conmai.conmaikey,'conmaikey',realprop.parcel_no,fk,fm,fx) EndIf sele conmai skip EndDo *** close all clear @10,20 say 'Searching for parcels with CCY but incorrect digest class...' sele b use realprop set order to parcel_no sele c use data_edits sele realprop go top clear Do while !eof() @12,20 say recno() If val(ccy) > 0 and (digclass <> 'V' and digclass <> 'W' and digclass <> 'T') fk = 0 fm = ' ' fx = alias() append_data_edits('CCY but Invalid Digest Class - ' + realprop.digclass,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele realprop skip EndDo ***acreage edit close all clear @10,20 say 'Searching for parcels where CUV acres does not match FMV Acres...' sele b use realprop set order to parcel_no sele d use conmai set order to realkey sele f use landsubs set order to realkey sele c use data_edits sele realprop go top clear Do while !eof() @12,20 say recno() If digclass <> 'V' skip If eof() exit Else loop EndIf EndIf sele conmai seek realprop.realkey If found() If tconacres <> realprop.totalacres fk = 0 fm = ' ' fx = alias() append_data_edits('CU Hist Acres <> FMV Acres',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf EndIf sele landsubs seek realprop.realkey If found() nacres = 0 Do While !eof() and realkey = realprop.realkey If sub_type = 'CUV' nacres = nacres + acres EndIf skip EndDo If nacres <> realprop.totalacres fk = 0 fm = ' ' fx = alias() append_data_edits('CU Landsub Acres <> FMV Acres',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf EndIf sele realprop skip EndDo *** accessory check close all clear @10,20 say 'Searching for CUV Accessories w/o CUV Parcel...' sele b use realprop set order to parcel_no sele d use acessory set order to realkey sele c use data_edits sele realprop go top clear Do while !eof() @12,20 say recno() sele acessory seek realprop.realkey Do while !eof() and realkey = realprop.realkey If digclass = 'V' and realprop.digclass <> 'V' fk = realkey fm = 'realkey' fx = alias() append_data_edits('CUV Acc on non-CUV Parcel',; acessory.acckey,'acckey',realprop.parcel_no,fk,fm,fx) sele acessory EndIf skip EndDo sele realprop skip EndDo *** close all clear @10,20 say 'Searching for parcels where CU value is greater than FMV...' sele a use conmai sele b use realprop index on realkey to xx sele c use data_edits sele d use acessory index on realkey to xy sele conmai clear Do while !eof() @12,20 say recno() n = 9 m = str(n,1,0) c = 0 Do While n > -1 If val&m > 0 c = val&m exit EndIf n = n - 1 m = str(n,1,0) EndDo sele realprop seek conmai.realkey If found() If ovrideval = 0 f = a_value Else f = ovrideval EndIf sele acessory seek realprop.realkey Do While realkey = realprop.realkey and !eof() If digclass = 'V' f = iif(ovr_val > 0, f + ovr_val,f + imp_val) EndIf skip EndDo If f <= c fk = 0 fm = ' ' fx = alias() append_data_edits('CU Value > FMV ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf EndIf sele conmai skip EndDo close all ********New Edit clear @10,20 say 'Searching for parcels where CU land & acc total does not match Unadj CUV Value...' sele a use conmai sele b use realprop index on realkey to xx sele c use data_edits sele d use acessory index on realkey to xy sele e use landsubs index on realkey to xz sele conmai clear Do while !eof() @12,20 say recno() *!* n = 9 *!* m = str(n,1,0) *!* c = 0 *!* *!* Do While n > -1 *!* If val&m > 0 *!* c = val&m *!* exit *!* EndIf *!* n = n - 1 *!* m = str(n,1,0) *!* EndDo c = unadj_cuv sv = 0 sele realprop seek conmai.realkey If found() sele acessory seek realprop.realkey If found() Do while realkey = realprop.realkey If digclass = 'V' If ovr_val > 0 sv = sv + ovr_val Else sv = sv + imp_val EndIf EndIf skip EndDo EndIf sele landsubs seek conmai.realkey Do While realkey = conmai.realkey and !eof() If sub_type = 'CUV' sv = sv + rurvalue EndIf skip EndDo If sv <> c fk = 0 fm = ' ' fx = alias() append_data_edits('CU acc + subrec value <> CU Unadj Val',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf EndIf sele conmai skip EndDo close all clear Do While .t. py = space(20) use defaults py = str(digyr - 1,4,0) + space(16) @ 8,20 say 'Press ESC to skip Previous Year Comparison' @10,20 say "If incorrect, enter Previous Year's Digest folder (no spaces in folder name):" get py read If LastKey() = 27 py = '***' clear exit EndIf If len(alltrim(py)) = 0 loop EndIf If at(' ',alltrim(py)) > 0 @12,20 say 'Spaces are present in folder name...' @14,20 say 'Press any key to continue and re-enter folder.' Inkey(0) @12,20 clear to 14,100 loop EndIf py = alltrim(py) pp = '..\' + py +'\' pf = '..\' + py + '\conmai.dbf' If !file(pf) @12,20 say 'Invalid Previous Year's Folder' @14,20 say 'Press Any Key to Try Again' InKey(0) @12,20 clear to 14,100 loop EndIf exit EndDo If py <> '***' clear @12,20 say 'Searching for CUV parcels with Ownership Change..' sele a use data_edits sele b use realprop set order to realkey sele d pf = pp + 'owner' use &pf alias lyowner index on ownkey to ly sele e use owner set order to ownkey sele c use conmai Do While !eof() and LastKey() <> 27 @14,20 say realkey sele realprop seek conmai.realkey If !found() sele conmai skip If !eof() loop Else exit EndIf EndIf sele owner seek realprop.ownkey If !found() sele conmai skip If !eof() loop Else exit EndIf EndIf sele lyowner seek owner.ownkey If !found() .or. lastname + firstname + middle <> owner.lastname + owner.firstname + owner.middle fk = 0 fm = ' ' fx = alias() append_data_edits('CU Ownership Change ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele conmai skip EndDo close databases ** @12,20 say 'Searching for CUV parcels with Acreage Change..' sele a use data_edits sele b use realprop set order to realkey sele d pf = pp + 'realprop' use &pf alias lyreal index on realkey to ly sele c use conmai Do While !eof() and LastKey() <> 27 @14,20 say realkey sele realprop seek conmai.realkey If !found() sele conmai skip If !eof() loop Else exit EndIf EndIf sele lyreal seek realprop.realkey If !found() sele conmai skip If !eof() loop Else exit EndIf EndIf If totalacres <> realprop.totalacres fk = 0 fm = ' ' fx = alias() append_data_edits('Acreage Diff from Prev Yr',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele conmai skip EndDo close databases EndIf clear close all return *----------------------------------------------------------------- FUNCTION Pref_edits(yn) close databases clear sele a use realprop sele b use acessory set order to realkey sele e use reprop set order to realkey sele f use commimp set order to realkey sele c use defaults sele d use data_edits sele realprop n = 0 clear @10,20 say 'Performing Preferential Covenant Edits...' Do While !eof() @12,20 say recno() @14,20 say alias() If val(realprop.pcy) = 0 and p_value = 0 and digclass <> 'P' sele acessory seek realprop.realkey Do while !eof() and realkey = realprop.realkey If digclass = 'P' fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Pref Acc but no Pref Covenant ',; acessory.acckey,'acckey',realprop.parcel_no,fk,fm,fx) EndIf skip EndDo sele reprop seek realprop.realkey Do while !eof() and realkey = realprop.realkey If digclass = 'P' fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Pref Res Imp but no Pref Covenant ',; reprop.repropkey,'repropkey',realprop.parcel_no,fk,fm,fx) EndIf skip EndDo sele commimp seek realprop.realkey Do while !eof() and realkey = realprop.realkey If digclass = 'P' fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Pref Comm Imp but no Pref Covenant ',; commimp.commkey,'commkey',realprop.parcel_no,fk,fm,fx) EndIf skip EndDo sele realprop skip If !eof() loop Else exit EndIf EndIf sele reprop seek realprop.realkey Do while !eof() and realkey = realprop.realkey If digclass = 'P' fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Pref Res Imp with a Pref Covenant ',; reprop.repropkey,'repropkey',realprop.parcel_no,fk,fm,fx) EndIf skip EndDo sele commimp seek realprop.realkey Do while !eof() and realkey = realprop.realkey If digclass = 'P' fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Pref Comm Imp with a Pref Covenant ',; commimp.commkey,'commkey',realprop.parcel_no,fk,fm,fx) EndIf skip EndDo sele realprop n = round(defaults.digyr - val(realprop.pcy),0) If n > 9 and val(realprop.pcy) > 0 fk = 0 fm = ' ' fx = alias() append_data_edits('Expired Pref Cov ' + realprop.pcy,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If (digclass = 'P' or val(realprop.pcy) > 0) and p_value = 0 fk = 0 fm = ' ' fx = alias() append_data_edits('Pref Cov but no Pref Land Value ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If val(realprop.pcy) = 0 and p_value > 0 fk = 0 fm = ' ' fx = alias() append_data_edits('Pref Value but no Pref Cov Yr ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele acessory seek realprop.realkey pv = 0 Do While !eof() and realkey = realprop.realkey If digclass = 'P' If ovr_val > 0 pv = pv + ovr_val Else pv = pv + imp_val EndIf EndIf skip EndDo If pv > 100000 fk = 0 fm = ' ' fx = alias() append_data_edits('Pref Acc Value Exceeds 100,000 ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If pv > 0 and realprop.p_value = 0 fk = 0 fm = ' ' fx = alias() append_data_edits('Pref Acc but no Pref Land Value ',; acessory.acckey,'acckey',realprop.parcel_no,fk,fm,fx) EndIf sele realprop skip If !eof() loop Else exit EndIf EndDo ***new edits 3/14/07 close all clear Do While .t. py = space(20) use defaults py = str(digyr - 1,4,0) + space(16) @ 8,20 say 'Press ESC to skip Previous Year Comparison' @10,20 say "If incorrect, enter Previous Year's Digest folder (no spaces in folder name):" get py read If LastKey() = 27 py = '***' clear exit EndIf If len(alltrim(py)) = 0 loop EndIf If at(' ',alltrim(py)) > 0 @12,20 say 'Spaces are present in folder name...' @14,20 say 'Press any key to continue and re-enter folder.' Inkey(0) @12,20 clear to 14,100 loop EndIf py = alltrim(py) pp = '..\' + py +'\' pf = '..\' + py + '\conmai.dbf' If !file(pf) @12,20 say 'Invalid Previous Year's Folder' @14,20 say 'Press Any Key to Try Again' InKey(0) @12,20 clear to 14,100 loop EndIf exit EndDo If py <> '***' clear @12,20 say 'Searching for Pref parcels with Ownership Change..' sele a use data_edits sele b use realprop sele d pf = pp + 'owner' use &pf alias lyowner index on ownkey to ly sele e use owner set order to ownkey sele realprop Do While !eof() and LastKey() <> 27 @14,20 say realkey If val(pcy) = 0 skip If !eof() loop Else exit EndIf EndIf sele owner seek realprop.ownkey If !found() sele realprop skip If !eof() loop Else exit EndIf EndIf sele lyowner seek owner.ownkey If !found() .or. lastname + firstname + middle <> owner.lastname + owner.firstname + owner.middle fk = 0 fm = ' ' fx = alias() append_data_edits('Pref Ownership Change ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele realprop skip EndDo EndIf close databases return *------------------------------------------------------------ FUNCTION Freeport_edits(yn) close databases clear sele a use invn set order to perskey sele b use personal sele c use defaults sele d use data_edits sele personal n = 0 clear @10,20 say 'Performing Freeport Edits...' Do While !eof() @12,20 say recno() @14,20 say alias() sele invn seek personal.perskey If found() If total_net = 0 and gross_raw + gross_mfg + gross_out + total_grs > 0 fk = invn.invnkey fm = 'invnkey' fx = alias() append_data_edits('Invn has Gross Freeport but 0 Net Freeport ',; personal.perskey,'perskey',' ',fk,fm,fx) EndIf If total_net + gross_raw + gross_mfg + gross_out + total_grs > 0 and ; year(frportdate) <> year(defaults.retndate) fk = invn.invnkey fm = 'invnkey' fx = alias() append_data_edits('Freeport Return Yr <> Digest Return Yr ',; personal.perskey,'perskey',' ',fk,fm,fx) EndIf EndIf If personal.frport_val > 0 and total_net = 0 fk = invn.invnkey fm = 'invnkey' fx = alias() append_data_edits('Inventory Record has no Freeport Value ',; personal.perskey,'perskey',' ',fk,fm,fx) EndIf sele personal skip EndDo return *------------------------------------------------------------ (9/27/05) FUNCTION Mh_edits(yn) close databases clear sele a use mobile sele b use mobmfgta set order to mfgmodel sele c use reprop set order to repropkey sele e use realprop set order to realkey sele f use nada_mfg set order to mfg sele g use nada_model set order to model sele h use nada_white set order to nada_white sele d use data_edits sele mobile n = 0 clear @10,20 say 'Performing Mobile Home Edits...' Do While !eof() @12,20 say recno() @14,20 say alias() If mobtype < 2 skip If !eof() loop Else exit EndIf EndIf If mobclass <> 'EX' and mobclass <> 'VG' and mobclass <> 'GD' and mobclass <> 'AV' and ; mobclass <> 'FR' and mobclass <> 'LC' If mobtype = 2 sele reprop seek mobile.repropkey sele realprop seek reprop.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Invalid MH Class ' + mobile.mobclass,; reprop.repropkey,'repropkey',realprop.parcel_no,fk,fm,fx) Else fk = 0 fm = ' ' fx = alias() append_data_edits('Invalid MH Class ' + mobile.mobclass,; mobile.mobilekey,'mobilekey',mobile.prebmapid,fk,fm,fx) EndIf EndIf sele mobmfgta seek upper(mobile.mfg + mobile.model) If found() If mobclass <> mobile.mobclass If mobile.mobtype = 2 sele reprop seek mobile.repropkey sele realprop seek reprop.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Class assigned to MH does not match schedule',; reprop.repropkey,'repropkey',realprop.parcel_no,fk,fm,fx) Else fk = 0 fm = ' ' fx = alias() append_data_edits('Class assigned to MH does not match schedule',; mobile.mobilekey,'mobilekey',mobile.prebmapid,fk,fm,fx) EndIf EndIf EndIf If mobile.guide and mobile.nada_width = 0 nmfg = 0 nmod = 0 sele nada_mfg seek mobile.mfg nmfg = mfgid sele nada_model seek mobile.model nmod = modelid sele nada_white seek str(nmfg,5,0) + str(nmod,6,0) lwidth = .f. Do While !eof() and str(mfgid,5,0) + str(modelid,6,0) = str(nmfg,5,0) + str(nmod,6,0) If width = mobile.width lwidth = .t. exit EndIf If width = 0 lwidth = .t. EndIf skip EndDo If !lwidth If mobile.mobtype = 2 sele reprop seek mobile.repropkey sele realprop seek reprop.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('MH does not have a valid NADA Width',; reprop.repropkey,'repropkey',realprop.parcel_no,fk,fm,fx) Else fk = 0 fm = ' ' fx = alias() append_data_edits('MH does not have a valid NADA Width',; mobile.mobilekey,'mobilekey',mobile.prebmapid,fk,fm,fx) EndIf EndIf EndIf sele mobile skip EndDo close databases sele a use data_edits sele b use mobmfgta set order to mfgmodel go top n = 0 clear @10,20 say 'Performing Mobile Home Schedule Edits...' Do While !eof() @12,20 say recno() @14,20 say alias() If (mobclass = 'EX' and moblife <> 40) or ; (mobclass = 'VG' and moblife <> 35) or ; (mobclass = 'GD' and moblife <> 30) or ; (mobclass = 'AV' and moblife <> 25) or ; (mobclass = 'FR' and moblife <> 20) or ; (mobclass = 'LC' and moblife <> 15) fk = recno() fm = 'recno()' fx = alias() append_data_edits(left(alltrim(mobmfg),24) + '/' + left(alltrim(mobmodel),24),; 0,'mobmfgta','Life Exp <> Cls Life',fk,fm,fx) EndIf sele mobmfgta skip EndDo return ** add edit in mobmfgta checking for valid life expectancies for mobclass *------------------------------------------------------------ FUNCTION Asmt_rsn(yn) close databases clear sele a use asmtrsn set order to perskey sele b use personal sele d use data_edits sele personal n = 0 clear @10,20 say 'Performing Personal Prop COA Reason Edits...' Do While !eof() @12,20 say recno() @14,20 say alias() If propclass = 'E' or propclass = 'U' skip If !eof() loop Else exit EndIf EndIf sele asmtrsn seek personal.perskey If found() nnflg = .f. Do while !eof() and perskey = personal.perskey If lower(reasoncode) = 'nn' nnflg = .t. exit EndIf skip EndDo If !personal.notice and !nnflg fk = 0 fm = ' ' fx = alias() append_data_edits('Pers Prop COA Rsn but No Notice Flag ',; personal.perskey,'perskey',' ',fk,fm,fx) EndIf Else If personal.notice fk = 0 fm = ' ' fx = alias() append_data_edits('Pers Prop Notice Flag but No COA Rsn ',; personal.perskey,'perskey',' ',fk,fm,fx) EndIf EndIf sele personal skip EndDo close databases sele a use asmtrsn set order to realkey sele b use realprop sele d use data_edits sele realprop set order to parcel_no go top n = 0 clear @10,20 say 'Performing Real Prop COA Reason Edits...' Do While !eof() @12,20 say recno() @14,20 say alias() If digclass = 'E' or digclass = 'U' skip If !eof() loop Else exit EndIf EndIf sele asmtrsn seek realprop.realkey If found() nnflg = .f. Do While !eof() and realkey = realprop.realkey If lower(reasoncode) = 'nn' nnflg = .t. exit EndIf skip EndDo If !realprop.val_chg and !nnflg fk = 0 fm = ' ' fx = alias() append_data_edits('Real Prop COA Rsn but No Notice Flag ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf Else If realprop.val_chg fk = 0 fm = ' ' fx = alias() append_data_edits('Real Prop Notice Flag but No COA Rsn ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf EndIf sele realprop skip EndDo return *------------------------------------------------------------ (9/27/05) FUNCTION land_edits(yn) close databases clear sele a use landsubs sele b use subdivis set order to subdivcode sele c use rurland set order to landtype sele e use realprop set order to realkey sele d use data_edits sele landsubs n = 0 clear @10,20 say 'Performing Land Edits...' Do While !eof() @12,20 say recno() @14,20 say alias() If sub_type = 'CUV' skip If !eof() loop Else exit EndIf EndIf Do Case Case sub_type = 'RUR' and (ltype = 0 or lclass = 0 or acres = 0) If landsubs.ltype = 0 sele realprop seek landsubs.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Land Type = 0 ' ,; landsubs.landkey,'landkey',realprop.parcel_no,fk,fm,fx) EndIf If landsubs.lclass = 0 sele realprop seek landsubs.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Land Class = 0 ' ,; landsubs.landkey,'landkey',realprop.parcel_no,fk,fm,fx) EndIf If landsubs.acres = 0 sele realprop seek landsubs.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Subrec Acres = 0 ' ,; landsubs.landkey,'landkey',realprop.parcel_no,fk,fm,fx) EndIf Case sub_type = 'RUR' and ltype > 0 and lclass > 0 sele rurland seek landsubs.ltype If !found() sele realprop seek landsubs.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Invalid Land Type - ' + 'str(landsubs.ltype,2,0) ,; landsubs.landkey,'landkey',realprop.parcel_no,fk,fm,fx) Else If len(alltrim(desc)) = 0 sele realprop seek landsubs.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('No Land Type Desc' ,; landsubs.landkey,'landkey',realprop.parcel_no,fk,fm,fx) EndIf lcls = 'class' + str(landsubs.lclass,1,0) If &lcls = 0 and landsubs.suboveride = 0 sele realprop seek landsubs.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Zero Schedule Value' ,; landsubs.landkey,'landkey',realprop.parcel_no,fk,fm,fx) EndIf EndIf Case sub_type = 'RES' sele subdivis seek landsubs.subdivcode If !found() sele realprop seek landsubs.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Invalid Subdivision Code - ' + str(landsubs.subdivcode,5,0) ,; landsubs.landkey,'landkey',realprop.parcel_no,fk,fm,fx) Else If calcmethod <> landsubs.landmethod sele realprop seek landsubs.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Land Pricing Method <> Schedule Pricing Method' ,; landsubs.landkey,'landkey',realprop.parcel_no,fk,fm,fx) Else Case calcmethod = 1 and (landsubs.frontfeet + landsubs.eff_front = 0) or ; totaldepth = 0 sele realprop seek landsubs.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('FF Pricing but No Frontage or Depth' ,; landsubs.landkey,'landkey',realprop.parcel_no,fk,fm,fx) Case calcmethod = 2 and landsubs.acres = 0 sele realprop seek landsubs.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Acre Pricing but No Acreage' ,; landsubs.landkey,'landkey',realprop.parcel_no,fk,fm,fx) Case calcmethod = 3 and landsubs.squarefeet = 0 sele realprop seek landsubs.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Sq Ft Pricing but No Sq Feet' ,; landsubs.landkey,'landkey',realprop.parcel_no,fk,fm,fx) Case calcmethod = 4 and landsubs.lots = 0 sele realprop seek landsubs.realkey fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('Lot Pricing but No Lots' ,; landsubs.landkey,'landkey',realprop.parcel_no,fk,fm,fx) EndIf EndIf EndCase sele landsubs skip EndDo sele realprop set order to parcel_no go top Do while !eof() @12,20 say recno() @14,20 say alias() If land_type <> 3 skip If eof() exit Else loop EndIf EndIf Do Case Case acc = 0 and desire <> 'A' fk = 0 fm = ' ' fx = alias() append_data_edits('Invalid Desirability Code ' + str(realprop.acc,1,0) + realprop.desire ,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) Case desire < 'A' or desire > 'E' fk = 0 fm = ' ' fx = alias() append_data_edits('Invalid Desireability Code ' + str(realprop.acc,1,0) + realprop.desire ,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndCase sele realprop skip EndDo return *------------------------------ Function Acc_Edits(yn) close databases clear sele a use acessory sele b use acc_ctrl set order to acc_ctrl sele c use realprop set order to realkey sele d use data_edits sele acessory n = 0 clear @10,20 say 'Performing Accessory Edits...' Do While !eof() @12,20 say recno() @14,20 say alias() cSeek = acc_type + comp_no sele acc_ctrl seek cSeek If found() sele acessory skip If !eof() loop Else exit EndIf EndIf Do Case Case acessory.acc_type = 'A' fk = acessory.realkey fm = 'realkey ' fx = alias() append_data_edits('Invalid Acc Comp No ' + acessory.comp_no ,; acessory.acckey,'acckey',realprop.parcel_no,fk,fm,fx) EndCase EndDo close database return *------------------------------ Function CS_Locate close databases clear Do While .t. clear cls = space(4) @ 6,20 say 'Digest Class/Strat Locator' @ 8,20 say 'ESC = Quit' @10,20 say 'Enter Class/Strat: ' get cls valid(len(alltrim(cls)) > 0 and right(cls,2) = space(2)) read If LastKey() = 27 close databases exit EndIf sele b use data_edits sele c use reprop set order to realkey sele d use commimp set order to realkey sele e use acessory set order to realkey sele f use personal set order to perskey go top sele a use realprop set order to parcel_no go top clear @10,20 say 'Locating C/S in Real' Do while !eof() @12,10 clear to 12,60 @12,20 say parcel_no lcs = .f. Do Case Case digclass + digstrat = left(cls,2) lcs = .t. Case ovrideval = 0 and a_value > 0 and p_value > 0 If upper(cls) = 'A' and subs(cls,2,1) = digstrat lcs = .t. EndIf EndCase If lcs sele data_edits fk = 0 fm = ' ' fx = alias() append_data_edits('Land Cls/Strat Located: ' + cls ,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele reprop seek realprop.realkey Do while !eof() and realkey = realprop.realkey If digclass + digstrat = left(cls,2) sele data_edits fk = realprop.realkey fm = 'realprop ' fx = alias() append_data_edits('Res Imp Cls/Strat Located: ' + cls ,; reprop.repropkey,'repropkey',realprop.parcel_no,fk,fm,fx) sele reprop EndIf skip EndDo sele commimp seek realprop.realkey Do while !eof() and realkey = realprop.realkey If digclass + digstrat = left(cls,2) sele data_edits fk = realprop.realkey fm = 'realprop ' fx = alias() append_data_edits('Comm Imp Cls/Strat Located: ' + cls ,; commimp.commkey,'commkey',realprop.parcel_no,fk,fm,fx) sele commimp EndIf skip EndDo sele acessory seek realprop.realkey Do while !eof() and realkey = a.realkey If digclass + digstrat = left(cls,2) sele data_edits fk = realprop.realkey fm = 'realprop ' fx = alias() append_data_edits('Acc Imp Cls/Strat Located: ' + cls ,; acessory.acckey,'acckey',realprop.parcel_no,fk,fm,fx) sele acessory EndIf skip EndDo sele realprop skip EndDo clear @10,20 say 'Searching Personal for Cls/Strat' sele personal Do while !eof() @12,10 clear to 12,40 @12,20 say perskey If cls <> 'E' and propclass = left(cls,1) and subs(cls,2,1) = 'F' and meff_val > 0 sele data_edits fk = 0 fm = ' ' fx = alias() append_data_edits('Personal Cls/Strat Located: ' + cls ,; personal.perskey,'perskey',personal.parcel_no,fk,fm,fx) skip sele personal EndIf If cls <> 'E' and propclass = left(cls,1) and subs(cls,2,1) = 'I' and invn_val > 0 sele data_edits fk = 0 fm = ' ' fx = alias() append_data_edits('Personal Cls/Strat Located: ' + cls ,; personal.perskey,'perskey',personal.parcel_no,fk,fm,fx) skip sele personal EndIf If cls <> 'E' and propclass = left(cls,1) and subs(cls,2,1) = 'B' and boat_val > 0 sele data_edits fk = 0 fm = ' ' fx = alias() append_data_edits('Personal Cls/Strat Located: ' + cls ,; personal.perskey,'perskey',personal.parcel_no,fk,fm,fx) skip sele personal EndIf If cls <> 'E' and propclass = left(cls,1) and subs(cls,2,1) = 'A' and plane_val > 0 sele data_edits fk = 0 fm = ' ' fx = alias() append_data_edits('Personal Cls/Strat Located: ' + cls ,; personal.perskey,'perskey',personal.parcel_no,fk,fm,fx) skip sele personal EndIf If cls <> 'E' and propclass = left(cls,1) and subs(cls,2,1) = 'Z' and other_val > 0 sele data_edits fk = 0 fm = ' ' fx = alias() append_data_edits('Personal Cls/Strat Located: ' + cls ,; personal.perskey,'perskey',personal.parcel_no,fk,fm,fx) sele personal EndIf If cls <> 'E' and propclass = left(cls,1) and subs(cls,2,1) = 'P' and frport_val > 0 sele data_edits fk = 0 fm = ' ' fx = alias() append_data_edits('Personal Cls/Strat Located: ' + cls ,; personal.perskey,'perskey',personal.parcel_no,fk,fm,fx) sele personal EndIf If cls = 'E' and propclass = 'E' and strata = subs(cls,2,1) sele data_edits fk = 0 fm = ' ' fx = alias() append_data_edits('Personal Cls/Strat Located: ' + cls ,; personal.perskey,'perskey',personal.parcel_no,fk,fm,fx) sele personal EndIf skip EndDo EndDo close databases return *-------------------------------------------------------------- FUNCTION Sync_PhSk(yn) clear Do while .T. If file('pictlist.dbf') use pictlist copy struc extended to temp use temp loca for lower(field_name) = 'neighbhood' If !found() erase pictlist.dbf loop Else exit EndIf Else create table pictlist (pictid c(20),; parcel_no c(20),; realkey n(10),; repropkey n(10),; commkey n(10),; acckey n(10),; mobilekey n(10),; neighbhood c(6)) exit EndIf EndDo clear @ 10,20 say 'Checking for Res Imp Photos...' use pictlist excl zap np = 0 cdir = ' ' cPath = CURDIR() If at('future',lower(cpath)) = 0 lcdir = '..\..\pictures\r*.jpg' Else lcdir = '..\..\..\pictures\r*.jpg' EndIf lcfile = sys(2000,lcdir) append blank replace pictid with lcfile,; repropkey with val(subs(pictid,2)) Do while !empty(lcfile) lcfile = sys(2000,lcdir,1) If len(alltrim(lcfile)) > 0 appen blank replace pictid with lcfile,; repropkey with val(subs(pictid,2)) EndIf EndDo sele a use reprop index on repropkey to xx sele b use pictlist Do while !eof() If repropkey = 0 skip If !eof() loop Else exit EndIf EndIf sele reprop seek pictlist.repropkey If found() replace photo with .t. EndIf sele pictlist skip EndDo close databases @ 9,0 clear to 30,100 @ 10,20 say 'Checking for Res Imp Sketches...' sele a use wgsketch index on repropkey to xx sele b use reprop go top Do While !eof() If repropkey = 0 skip If !eof() loop Else exit EndIf EndIf sele wgsketch seek reprop.repropkey poly = .f. Do While !eof() and repropkey = reprop.repropkey If area > 0 and len(alltrim(vertices)) > 0 and len(alltrim(labels)) > 0 and ; len(alltrim(implabel)) > 0 poly = .t. exit EndIf skip EndDo sele reprop If poly replace sketch with .t. EndIf skip EndDo close databases ****accessories @ 9,0 clear to 30,100 @ 10,20 say 'Checking for Accessory Photos...' use pictlist excl zap np = 0 cdir = ' ' cPath = CURDIR() If at('future',lower(cpath)) = 0 lcdir = '..\..\pictures\a*.jpg' Else lcdir = '..\..\..\pictures\a*.jpg' EndIf lcfile = sys(2000,lcdir) append blank replace pictid with lcfile,; acckey with val(subs(pictid,2)) Do while !empty(lcfile) lcfile = sys(2000,lcdir,1) If len(alltrim(lcfile)) > 0 appen blank replace pictid with lcfile,; acckey with val(subs(pictid,2)) EndIf EndDo sele a use acessory index on acckey to xx sele b use pictlist Do while !eof() If acckey = 0 skip If !eof() loop Else exit EndIf EndIf sele acessory seek pictlist.acckey If found() replace photo with .t. EndIf sele pictlist skip EndDo close databases @ 9,0 clear to 30,100 @ 10,20 say 'Checking for Acc Imp Sketches...' sele a use wgsketch index on acckey to xx sele b use acessory go top Do While !eof() If acckey = 0 skip If !eof() loop Else exit EndIf EndIf sele wgsketch seek acessory.acckey poly = .f. Do While !eof() and acckey = acessory.acckey If area > 0 and len(alltrim(vertices)) > 0 and len(alltrim(labels)) > 0 and ; len(alltrim(implabel)) > 0 poly = .t. exit EndIf skip EndDo sele acessory If poly replace sketch with .t. EndIf skip EndDo close databases *****commimps @ 9,0 clear to 30,100 @ 10,20 say 'Checking for Comm Imp Photos...' use pictlist excl zap np = 0 cdir = ' ' cPath = CURDIR() If at('future',lower(cpath)) = 0 lcdir = '..\..\pictures\c*.jpg' Else lcdir = '..\..\..\pictures\c*.jpg' EndIf lcfile = sys(2000,lcdir) append blank replace pictid with lcfile,; commkey with val(subs(pictid,2)) Do while !empty(lcfile) lcfile = sys(2000,lcdir,1) If len(alltrim(lcfile)) > 0 appen blank replace pictid with lcfile,; commkey with val(subs(pictid,2)) EndIf EndDo sele a use commimp index on commkey to xx sele b use pictlist Do while !eof() If commkey = 0 skip If !eof() loop Else exit EndIf EndIf sele commimp seek pictlist.commkey If found() replace photo with .t. EndIf sele pictlist skip EndDo close databases @ 9,0 clear to 30,100 @ 10,20 say 'Checking for Comm Imp Sketches...' sele a use wgsketch index on commkey to xx sele b use commimp go top Do While !eof() If commkey = 0 skip If !eof() loop Else exit EndIf EndIf sele wgsketch seek commimp.commkey poly = .f. Do While !eof() and commkey = commimp.commkey If area > 0 and len(alltrim(vertices)) > 0 and len(alltrim(labels)) > 0 and ; len(alltrim(implabel)) > 0 poly = .t. exit EndIf skip EndDo sele commimp If poly replace sketch with .t. EndIf skip EndDo close databases **Mfg Housing @ 9,0 clear to 30,100 @ 10,20 say 'Checking for Mfg Housing Photos...' use pictlist excl zap np = 0 cdir = ' ' cPath = CURDIR() If at('future',lower(cpath)) = 0 lcdir = '..\..\pictures\m*.jpg' Else lcdir = '..\..\..\pictures\m*.jpg' EndIf lcfile = sys(2000,lcdir) append blank replace pictid with lcfile,; mobilekey with val(subs(pictid,2)) Do while !empty(lcfile) lcfile = sys(2000,lcdir,1) If len(alltrim(lcfile)) > 0 appen blank replace pictid with lcfile,; mobilekey with val(subs(pictid,2)) EndIf EndDo sele a use mobile index on mobilekey to xx sele b use pictlist Do while !eof() If mobilekey = 0 skip If !eof() loop Else exit EndIf EndIf sele mobile seek pictlist.mobilekey If found() replace photo with .t. EndIf sele pictlist skip EndDo close databases @ 9,0 clear to 30,100 @ 10,20 say 'Checking for Mfg Housing Sketches...' sele a use wgsketch index on mobilekey to xx sele b use mobile go top Do While !eof() If mobilekey = 0 skip If !eof() loop Else exit EndIf EndIf sele wgsketch seek mobile.mobilekey poly = .f. Do While !eof() and mobilekey = mobile.mobilekey If area > 0 and len(alltrim(vertices)) > 0 and len(alltrim(labels)) > 0 and ; len(alltrim(implabel)) > 0 poly = .t. exit EndIf skip EndDo sele mobile If poly replace sketch with .t. EndIf skip EndDo close databases *------------------------------------ FUNCTION pt50_7500(yn) close database clear sele a use personal set order to ownkey sele d use data_edits sele personal clear @10,20 say 'Performing Personal 7500 Edits...' Do While !eof() @12,20 say recno() ok = ownkey cv = 0 pt = .f. Do while !eof() and ownkey = ok cv = cv + curr_val If no_pt50 pt = .t. EndIf skip EndDo If cv > 7500 and pt seek ok Do While !eof() and ownkey = ok If no_pt50 fk = personal.ownkey fm = 'ownkey ' fx = alias() append_data_edits('No PT50 Flag, Owner Value over 7500 ',; personal.perskey,'perskey',' ',fk,fm,fx) EndIf sele personal skip EndDo EndIf EndDo close databases return *-------------------------------------------------- FUNCTION sthomestd(yn) close databases lhb = .f. use defaults If mavexmpt lhb = .t. EndIf sele e use data_edits sele b use homestd set order to homestd sele c use reprop set order to realkey sele d use commimp set order to realkey sele f use acessory set order to realkey sele g use landsubs set order to realkey sele h use conmai set order to realkey sele j use flpamain set order to realkey sele a use realprop set order to parcel_no go top clear @10,20 say 'Checking State Homestead...' Do While !eof() @12,20 say parcel_no If homeexempt = 'S0' and len(alltrim(homeexempt)) > 0 skip If !eof() loop Else exit EndIf EndIf sele homestd If len(taxdistric) = 3 seek realprop.taxdistric + ' ' + realprop.homeexempt Else seek realprop.taxdistric + realprop.homeexempt EndIf If !found() fk = 0 fm = ' ' fx = alias() append_data_edits('Invalid Tax Dist + HS Code. TD: ' + realprop.taxdistric +' HS: ' + realprop.homeexempt,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) sele realprop skip If !eof() loop Else exit EndIf EndIf If !statehsflg sele realprop If statehsval > 0 fk = 0 fm = ' ' fx = alias() append_data_edits('State HS Value w/ non-State HS Code: ' + realprop.homeexempt,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele reprop seek realprop.realkey Do While !eof() and realkey = realprop.realkey If statehsflg fk = realprop.realkey fm = 'realkey ' fx = alias() append_data_edits('St HS Flag on Res Imp w/ non-St HS Code: ' + realprop.homeexempt,; reprop.repropkey,'repropkey',realprop.parcel_no,fk,fm,fx) EndIf skip EndDo sele commimp seek commimp.realkey Do While !eof() and realkey = realprop.realkey If statehsflg fk = realprop.realkey fm = 'realkey ' fx = alias() append_data_edits('St HS Flag on Comm Imp w/ non-St HS Code: ' + realprop.homeexempt,; commimp.commkey,'commkey',realprop.parcel_no,fk,fm,fx) EndIf skip EndDo sele acessory seek realprop.realkey Do While !eof() and realkey = realprop.realkey If statehsflg fk = realprop.realkey fm = 'realkey ' fx = alias() append_data_edits('St HS Flag on Acc Imp w/ non-St HS Code: ' + realprop.homeexempt,; acessory.acckey,'acckey',realprop.parcel_no,fk,fm,fx) EndIf skip EndDo Else && homestd.statehsflg = True sele realprop If statehsval = 0 fk = 0 fm = ' ' fx = alias() append_data_edits('No State HS Value w/ State HS Code: ' + realprop.homeexempt,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele reprop seek realprop.realkey stflg = .f. stval = 0 Do While !eof() and realkey = realprop.realkey If statehsflg stflg = .t. If lhb stval = stval + iif(ovr_val > 0, ovr_val , timp_val) Else stval = stval + mav EndIf EndIf skip EndDo sele commimp seek commimp.realkey Do While !eof() and realkey = realprop.realkey If statehsflg stflg = .t. If lhb stval = stval + iif(comimpovr > 0, comimpovr , bldg_val) Else stval = stval + mavbldg EndIf EndIf skip EndDo sele acessory seek realprop.realkey Do While !eof() and realkey = realprop.realkey If statehsflg stflg = .t. If lhb stval = stval + iif(ovr_val > 0, ovr_val , imp_val) Else stval = stval + mav EndIf EndIf skip EndDo tac = realprop.totalacres scu = 0 fper = 0 Do Case Case realprop.digclass = 'V' sele landsubs seek realprop.realkey Do While !eof() and realkey = realprop.realkey If sub_type = 'CUV' scu = scu + rurvalue EndIf skip EndDo sele conmai seek realprop.realkey fper = Round( scu / unadj_cuv , 4 ) scu = Round( fper * curr_cuv , 0) If tac <= 10 stval = stval + scu Else stval = stval + round(((scu/tac) * 10),0) EndIf Case realprop.digclass = 'J' sele landsubs seek realprop.realkey Do While !eof() and realkey = realprop.realkey If sub_type = 'FLP' scu = scu + rurvalue EndIf skip EndDo sele flpamain seek realprop.realkey fper = Round( scu / unadjval , 4 ) scu = Round( fper * currcovval , 0) If tac <= 10 stval = stval + scu Else stval = stval + round(((scu/tac) * 10),0) EndIf Case realprop.ovrideval > 0 and tac >= 0 and tac <= 10 If lhb stval = stval + realprop.ovrideval Else stval = stval + realprop.mavag + realprop.mavpref EndIf Case realprop.ovrideval = 0 and tac >= 0 and tac <= 10 If lhb stval = stval + realprop.a_value + realprop.p_value Else stval = stval + realprop.mavag + realprop.mavpref EndIf Case realprop.ovrideval > 0 and tac > 10 * stval = stval + (round(realprop.ovrideval/tac,0) * 10) If lhb stval = stval + round(((realprop.ovrideval/tac) * 10),0) Else stval = stval + round((((realprop.mavag + realprop.mavpref)/tac) * 10),0) EndIf Case realprop.ovrideval = 0 and tac > 10 * stval = stval + (round((realprop.a_value + realprop.p_value)/tac,0) * 10) If lhb stval = stval + round((((realprop.a_value + realprop.p_value)/tac) * 10),0) Else stval = stval + round((((realprop.mavag + realprop.mavpref)/tac) * 10),0) EndIf EndCase If stval = 0 fk = 0 fm = ' ' fx = alias() append_data_edits('State HS Exemption but no State HS Value: ' + realprop.homeexempt,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If !stflg fk = 0 fm = ' ' fx = alias() append_data_edits('St HS Exemption but no Imp Flags for St HS: ' + realprop.homeexempt,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If stval <> realprop.statehsval and stflg fk = 0 fm = ' ' fx = alias() append_data_edits('Accum St HS Value does not Match Stored St HS Value',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf EndIf && homestd.statehsflg = True sele realprop skip EndDo close databases return *------------------------------------ FUNCTION tax_dist(yn) close database clear sele a use personal sele b use taxdist set order to taxdistric sele d use data_edits sele personal go top clear @10,20 say 'Performing Personal Tax District Edits...' Do While !eof() @12,20 say recno() sele taxdist seek personal.taxdistric If !found() fk = 0 fm = ' ' fx = alias() append_data_edits('Invalid Tax Dist Code ' + personal.taxdistric,; personal.perskey,'perskey',' ',fk,fm,fx) EndIf sele personal skip EndDo close database clear sele a use realprop sele b use taxdist set order to taxdistric sele d use data_edits sele realprop go top clear @10,20 say 'Performing Real Tax District Edits...' Do While !eof() @12,20 say recno() sele taxdist seek realprop.taxdistric If !found() fk = 0 fm = ' ' fx = alias() append_data_edits('Invalid Tax Dist Code ' + realprop.taxdistric,; realprop.realkey,'realkey',' ',fk,fm,fx) EndIf sele realprop skip EndDo close database clear sele a use mobile sele b use taxdist set order to taxdistric sele d use data_edits sele mobile go top clear @10,20 say 'Performing Mobile Tax District Edits...' Do While !eof() @12,20 say recno() If mobtype <> 3 skip If eof() loop Else exit EndIf EndIf sele taxdist seek alltrim(mobile.taxdist) If !found() fk = 0 fm = ' ' fx = alias() append_data_edits('Invalid Tax Dist Code ' + mobile.taxdist,; mobile.mobilekey,'mobilekey',' ',fk,fm,fx) EndIf sele mobile skip EndDo close databases return *------------------------------------------------ FUNCTION sketch_labels(yn) close database clear sele a use wgsketch sele b use implabel set order to bldgtype sele c use reprop set order to repropkey sele e use commimp set order to commkey sele f use realprop set order to realkey sele g use mobile set order to mobilekey sele d use data_edits sele wgsketch go top clear @10,20 say 'Performing Sketch Label Edit...' Do While !eof() @12,20 say recno() If len(alltrim(impkey)) = 0 skip If !eof() loop Else exit EndIf EndIf cseek = ' ' ctype = ' ' ikey = 0 cpn = ' ' lsame = .t. If at(alltrim(impkey),implabel) = 0 and recnum > 0 lsame = .f. clab = subs(implabel,at(',',implabel,2)+1,(at(',',implabel,3) - at(',',implabel,2))-1) EndIf Do Case Case repropkey > 0 cseek = 'Residential' + impkey ctype = 'Res Imp' ikey = repropkey ckey = 'repropkey' cfkey = 'realkey' sele reprop seek wgsketch.repropkey sele realprop seek reprop.realkey fkey = realkey cpn = parcel_no Case commkey > 0 cseek = 'Commercial ' + impkey ctype = 'Comm Imp' ikey = commkey ckey = 'commkey' cfkey = 'realkey' sele commimp seek wgsketch.commkey sele realprop seek commimp.realkey fkey = realkey cpn = parcel_no Case mobilekey > 0 cseek = 'Mobile ' + impkey ctype = 'NPB MH' ikey = mobilekey ckey = 'mobilekey' cfkey = 'ownkey' sele mobile seek wgsketch.mobilekey fkey = ownkey cpn = prebmapid If mobtype <> 3 sele reprop seek mobile.repropkey sele realprop seek reprop.realkey ctype = 'PB MH' fkey = realkey cfkey = 'realkey' cpn = parcel_no EndIf Otherwise cseek = 'Invalid Record' EndCase If cseek <> 'Invalid' sele implabel seek cseek If !found() fk = fkey fm = cfkey fx = alias() append_data_edits('Invalid ' + ctype + ' Sketch Label - ' + wgsketch.impkey,; ikey,ckey,cpn,fk,fm,fx) EndIf Else fk = 0 fm = ' ' fx = alias() append_data_edits('Invalid Sketch Record. Rec # ' + alltrim(str(recno(),10,0)),; 0,' ',' ',fk,fm,fx) EndIf If !lsame fk = fkey fm = cfkey fx = alias() append_data_edits('Mismatch btw Impkey & Implabel - ' + wgsketch.impkey + ' vs ' + clab ,; ikey,ckey,cpn,fk,fm,fx) EndIf sele wgsketch skip EndDo close database clear *---------------------------------------- FUNCTION prop_comp(fn,yn) close databases sele e use data_edits Do Case Case fn = 'commimp' clear @ 8,20 say 'Checking ' + fn + ' records for invalid data..' sele a use commimp set order to improv_no sele c use commbase set order to used_code sele b use realprop set order to parcel_no go top Do While !eof() sele commimp seek str(realprop.realkey,10,0) If !found() sele realprop skip If !eof() loop Else exit Endif EndIf Do While !eof() and realkey = realprop.realkey lua = .t. lba = .t. lle = .f. llm = .t. xle = 0 sele commbase seek commimp.usedas_cod If !found() lua = .f. EndIf seek commimp.biltas_cod If !found() lba = .f. Else If commimp.const_type > 0 and commimp.const_type < 6 e = str(commimp.const_type,1,0) If life&e <> commimp.life_exp llm = .f. xle = life&e EndIf EndIf EndIf sele commimp nle = 5 Do While nle < 75 If life_exp = nle lle = .t. exit EndIf nle = nle + 5 EndDo If !lua fk = commimp.realkey fm = 'realkey' fx = alias() append_data_edits('Used As Code Invalid: ' + commimp.usedas_cod,; commimp.commkey,'commkey',realprop.parcel_no,fk,fm,fx) EndIf If !lba fk = commimp.realkey fm = 'realkey' fx = alias() append_data_edits('Built As Code Invalid: ' + commimp.usedas_cod,; commimp.commkey,'commkey',realprop.parcel_no,fk,fm,fx) EndIf If commimp.wall_hght = 0 fk = commimp.realkey fm = 'realkey' fx = alias() append_data_edits('Wall Height is zero',; commimp.commkey,'commkey',realprop.parcel_no,fk,fm,fx) EndIf If commimp.const_type < 1 or commimp.const_type > 5 fk = commimp.realkey fm = 'realkey' fx = alias() append_data_edits('Const Type Invalid: ' + str(commimp.const_type,1,0),; commimp.commkey,'commkey',realprop.parcel_no,fk,fm,fx) EndIf If !lle fk = commimp.realkey fm = 'realkey' fx = alias() append_data_edits('Life Expectancy Invalid: ' + str(commimp.life_exp,2,0),; commimp.commkey,'commkey',realprop.parcel_no,fk,fm,fx) EndIf If !llm fk = commimp.realkey fm = 'realkey' fx = alias() append_data_edits('Schd Life Exp <> Imp Life Exp: ' + ; str(xle,2,0) + ' / ' + str(commimp.life_exp,2,0),; commimp.commkey,'commkey',realprop.parcel_no,fk,fm,fx) EndIf If val(commimp.yr_bilt) + val(commimp.efyr_bilt) < 1000 fk = commimp.realkey fm = 'realkey' fx = alias() append_data_edits('Yr/Eff Yr Built Invalid: ' + commimp.yr_bilt + '/' + commimp.efyr_bilt,; commimp.commkey,'commkey',realprop.parcel_no,fk,fm,fx) EndIf sele commimp skip EndDo sele realprop skip EndDo EndCase return *----------------------------------------------------------------- 04/26/09 FUNCTION Flpa_edits(yn) close databases clear sele a use realprop sele b use flpamain set order to realkey sele c use defaults sele d use data_edits sele realprop n = 0 clear @10,20 say 'Performing FLPA Covenant Edits...' Do While !eof() @12,20 say recno() @14,20 say alias() n = round(defaults.digyr - val(realprop.flcy),0) If (n > 14 or n < 0) and val(realprop.flcy) > 0 fk = 0 fm = ' ' fx = alias() append_data_edits('Expired or Expiring FLPA Cov ' + realprop.flcy,; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If digclass = 'J' and val(flcy) = 0 fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('Digest Cls = J but No FLPA Cov Yr ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If digclass <> 'J' and val(flcy) > 0 fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('Digest Cls not J but FLPA Cov Yr is assigned ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If digclass = 'J' and val(flcy) > 0 and flbaseval = 0 fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('FLPA Cov with No 08 Base Value ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If digclass = 'J' and val(flcy) > 0 and val(flappnum) = 0 fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('FLPA Cov with No Application # ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If digclass = 'J' and val(flcy) > 0 and flbaseval > 0 and ; abs(flbaseval - (totalacres * fl08perac)) > 1000 fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('FLPA Base Value <> Parcel Acres * 08 per Acre ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If val(flcy) > 0 or digclass = 'J' sele flpamain seek realprop.realkey lhist = .t. If !found() fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('FLPA Cov without a covenant history record ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) lhist = .f. EndIf If lhist If covacres <> realprop.totalacres fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('FLPA Cov Acres do not match Parcel Acres ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If totcovac < 200.01 fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('Total FLPA Covenant Acres less than 200.01 Acres ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If currcovval = 0 fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('FLPA Cov with No Current Cov Value ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If unadjval = 0 fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('FLPA Cov with No Unadjusted Cov Value ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If dat1 <> val(realprop.flcy) fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('Beginning Cov History Date does not match Cov Year ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If origdate <> val(realprop.flcy) fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('Original Cov History Date does not match Cov Year ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf n = 1 Do while n < 16 e = 0 f = 0 m = alltrim(str(n,2,0)) If dat&m = 0 fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('History Year is zero ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If val&m = 0 fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('History Value is zero ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If n > 1 e = val&m - val&x f = abs(e) / val&x If f > .03 fk = realprop.ownkey fm = 'ownkey' fx = alias() append_data_edits('3% Value Chg Limit Exceeded ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf EndIf If dat&m = defaults.digyr exit EndIf x = alltrim(str(n,2,0)) f = alltrim(str(e,2,0)) n = n + 1 EndDo EndIf && lhist is true EndIf && val(flcy) > 0 or digclass = 'J' sele realprop skip If !eof() loop Else exit EndIf EndDo close all clear @10,20 say 'Checking for FLPA History Records with no Parent Parcel..' sele a use flpamain sele b use realprop set order to realkey sele c use data_edits sele flpamain Do While !eof() sele realprop seek flpamain.realkey If !found() fk = realprop.realkey fm = 'realkey' fx = alias() append_data_edits('FLPA History record but no Parent Parcel record ',; flpamain.flpakey,'flpakey',' ',fk,fm,fx) EndIf sele flpamain skip EndDo return clear ** below are edits for previous year stuff Do While .t. py = space(20) use defaults py = str(digyr - 1,4,0) + space(16) @ 8,20 say 'Press ESC to skip Previous Year Comparison' @10,20 say "If incorrect, enter Previous Year's Digest folder (no spaces in folder name):" get py read If LastKey() = 27 py = '***' clear exit EndIf If len(alltrim(py)) = 0 loop EndIf If at(' ',alltrim(py)) > 0 @12,20 say 'Spaces are present in folder name...' @14,20 say 'Press any key to continue and re-enter folder.' Inkey(0) @12,20 clear to 14,100 loop EndIf py = alltrim(py) pp = '..\' + py +'\' pf = '..\' + py + '\conmai.dbf' If !file(pf) @12,20 say 'Invalid Previous Year's Folder' @14,20 say 'Press Any Key to Try Again' InKey(0) @12,20 clear to 14,100 loop EndIf exit EndDo If py <> '***' clear @12,20 say 'Searching for Pref parcels with Ownership Change..' sele a use data_edits sele b use realprop sele d pf = pp + 'owner' use &pf alias lyowner index on ownkey to ly sele e use owner set order to ownkey sele realprop Do While !eof() and LastKey() <> 27 @14,20 say realkey If val(pcy) = 0 skip If !eof() loop Else exit EndIf EndIf sele owner seek realprop.ownkey If !found() sele realprop skip If !eof() loop Else exit EndIf EndIf sele lyowner seek owner.ownkey If !found() .or. lastname + firstname + middle <> owner.lastname + owner.firstname + owner.middle fk = 0 fm = ' ' fx = alias() append_data_edits('Pref Ownership Change ',; realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele realprop skip EndDo EndIf close databases return *------------------------------------------------------------ FUNCTION Freeport_edits(yn) close databases clear sele a use invn set order to perskey sele b use personal sele c use defaults sele d use data_edits sele personal n = 0 clear @10,20 say 'Performing Freeport Edits...' Do While !eof() @12,20 say recno() @14,20 say alias() sele invn seek personal.perskey If found() If total_net = 0 and gross_raw + gross_mfg + gross_out + total_grs > 0 fk = invn.invnkey fm = 'invnkey' fx = alias() append_data_edits('Invn has Gross Freeport but 0 Net Freeport ',; personal.perskey,'perskey',' ',fk,fm,fx) EndIf If total_net + gross_raw + gross_mfg + gross_out + total_grs > 0 and ; year(frportdate) <> year(defaults.retndate) fk = invn.invnkey fm = 'invnkey' fx = alias() append_data_edits('Freeport Return Yr <> Digest Return Yr ',; personal.perskey,'perskey',' ',fk,fm,fx) EndIf EndIf If personal.frport_val > 0 and total_net = 0 fk = invn.invnkey fm = 'invnkey' fx = alias() append_data_edits('Inventory Record has no Freeport Value ',; personal.perskey,'perskey',' ',fk,fm,fx) EndIf If personal.hde_exempt > personal.mavcurr fk = personal.ownkey fm = 'ownkey' fx = alias() append_data_edits('HDE Exemption > Acct MAV ',; personal.perskey,'perskey',' ',fk,fm,fx) EndIf sele personal skip EndDo return *--------------------------- function errhand (merror , mess, mess1, mprog, mlineno) If merror = 1707 return .f. *!* @10,20 say 'Someone is in WinGAP' *!* wait EndIf @ 2, 0 clear to 16,100 @ 2,20 say 'Error number: ' + LTRIM(STR(merror)) @ 4,20 say 'Error message: ' + mess @ 6,20 say 'Line of code with error: ' + mess1 @ 8,20 say 'Line number of error: ' + LTRIM(STR(mlineno)) @10,20 say 'Program with error: ' + mprog wait return .t. *--------------------------------------- FUNCTION mav_edits close databases use defaults If mavexmpt clear @10,20 say 'You are HB233 Exempt. MAV edits are not needed.' @12,20 say 'Press any key to return to the previous screen...' InKey(0) return EndIf mav_curr() mav_values() *-------------------------------------------------- FUNCTION mav_curr close databases If !file('fixmav.dbf') use realprop copy struc extended to temp use temp excl dele for field_name <> 'REALKEY' .and. field_name <>'PARCEL_NO' .and. ; field_name <> 'MAVCURR' ; .and. field_name <> 'MAVPREV' .and. field_name <> 'RETURN_VAL' pack create temp2 from temp use temp2 copy to fixmav fox2x EndIf clear sele e use fixmav excl zap sele h use inc_detail set order to realkey sele b use reprop set order to realkey sele c use commimp set order to realkey sele d use acessory set order to realkey sele f use acc_ctrl set order to acc_ctrl sele g use data_edits sele a use realprop set order to parcel_no go top clear gt = 0 @ 8,20 say 'Checking MAV for Real Property...' Do While !eof() @10, 20 say parcel_no If income sele inc_detail seek realprop.realkey If inc_value <> realprop.mavcurr sele data_edits appen blank replace pkey with realprop.realkey,; pkey_name with 'realkey',; parcel_no with realprop.parcel_no,; definition with 'Current MAV <> Sum of Components - Fixed Real' sele fixmav appen blank replace realkey with realprop.realkey,parcel_no with realprop.parcel_no,mavcurr with ; inc_detail.inc_value,mavprev with realprop.mavprev,return_val with tv sele realprop If rlock() replace mavcurr with inc_detail.inc_value EndIf EndIf sele realprop skip If !eof() loop Else exit EndIf EndIf nc = 0 oc = 0 tv = 0 sele reprop seek realprop.realkey Do While realkey = realprop.realkey .and. !eof() tv = tv + mav gt = gt + mav skip EndDo sele c seek realprop.realkey Do While realkey = realprop.realkey .and. !eof() tv = tv + mavbldg gt = gt + mavbldg skip EndDo sele d seek realprop.realkey Do While realkey = realprop.realkey .and. !eof() If acc_type # 'A' skip If eof() .or. realkey # realprop.realkey exit Else loop EndIf EndIf sele acc_ctrl seek 'A'+acessory.comp_no If price_code = '3' sele acessory skip If eof() .or. realkey # realprop.realkey exit Else loop EndIf Else sele acessory EndIf If acc_type = 'A' tv = tv + mav gt = gt + mav EndIf skip EndDo sele realprop tv = tv + mavag + mavpref gt = gt + mavag + mavpref If tv <> mavcurr sele data_edits appen blank replace pkey with realprop.realkey,; pkey_name with 'realkey',; parcel_no with realprop.parcel_no,; definition with 'Current MAV <> Sum of Components - Fixed' sele fixmav appen blank replace realkey with realprop.realkey,parcel_no with realprop.parcel_no,mavcurr with ; realprop.mavcurr,mavprev with realprop.mavprev,return_val with tv sele realprop oc = mavcurr nc = tv If rlock() replace mavcurr with tv EndIf EndIf skip EndDo *** close databases If !file('fix_pp_mav.dbf') use personal copy struc exten to temp use temp excl dele for field_name <> 'PERSKEY' .and. field_name <> 'MAVCURR' .and. ; field_name <> 'MAVPREV' ; .and. field_name <> 'RETURN_VAL' pack create temp2 from temp use temp2 copy to fix_pp_mav fox2x EndIf clear sele e use fix_pp_mav excl zap sele h use data_edits sele b use cost set order to perskey sele c use boat set order to perskey sele d use invn set order to perskey sele f use aircraft set order to perskey sele g use other set order to perskey sele a use personal set order to perskey go top clear @ 8,20 say 'Checking Current Value for Personal Property...' gt = 0 Do While !eof() @10, 20 say perskey nc = 0 oc = 0 tv = 0 bv = 0 mv = 0 iv = 0 ov = 0 av = 0 fv = 0 sele cost seek personal.perskey Do While perskey = personal.perskey .and. !eof() mv = mv + mav tv = tv + mav skip EndDo sele boat seek personal.perskey Do While perskey = personal.perskey .and. !eof() bv = bv + mav tv = tv + mav skip EndDo sele invn seek personal.perskey Do While perskey = personal.perskey .and. !eof() iv = iv + (mav - mavnet) fv = fv + mavnet tv = tv + mav skip EndDo sele aircraft seek personal.perskey Do While perskey = personal.perskey .and. !eof() av = av + value tv = tv + value skip EndDo sele other seek personal.perskey Do While perskey = personal.perskey .and. !eof() ov = ov + mav tv = tv + mav skip EndDo sele personal If mavcurr <> tv or (bv + mv + av + ov + iv + fv <> mavboat + mavmeff + mavplane + mavother + mavinvn + ; mavfrport) sele data_edits appen blank replace pkey with personal.perskey,; pkey_name with 'perskey',; definition with 'Current MAV <> Sum of Components - Fixed' sele fix_pp_mav appen blank replace perskey with personal.perskey,mavcurr with ; personal.mavcurr,mavprev with personal.mavprev,return_val with tv sele personal replace mavcurr with tv,mavboat with bv,mavmeff with mv,mavplane with av,mavother with ; ov,mavinvn with iv,mavfrport with fv EndIf skip EndDo **prebill close databases If !file('fix_mh_mav.dbf') use mobile copy struc exten to temp use temp excl dele for field_name <> 'MOBILEKEY' .and. field_name <> 'MAVCURR' .and. ; field_name <> 'MAVPREV' and field_name <> 'MAV' pack create temp2 from temp use temp2 copy to fix_mh_mav fox2x EndIf sele a use fix_mh_mav excl zap sele b use data_edits sele c use acessory set order to mobilekey sele d use mobile clear @10,20 say 'Checking Prebills for Current MAV' Do While !eof() @12,20 say mobilekey If mobtype <> 3 skip If !eof() loop Else exit EndIf EndIf av = 0 sele acessory seek mobile.mobilekey Do While !eof() and mobilekey = mobile.mobilekey av = av + mav skip EndDo sele mobile If av + mav <> mavcurr sele data_edits appen blank replace pkey with mobile.mobilekey,; pkey_name with 'mobilekey',; fkey with mobile.ownkey,; fkey_name with 'ownkey',; definition with 'Current MAV <> Sum of MH Components - Fixed' sele fix_mh_mav appen blank replace mobilekey with mobile.mobilekey,mavcurr with ; mobile.mavcurr,mavprev with mobile.mavprev,mavadd with mobile.mavadd,; mav with mobile.mav,mavorig with mobile.mav + av sele mobile replace mavcurr with av + mav,mavadd with av EndIf sele mobile skip EndDo ** end prebill close databases return *-------------------------------------------------- FUNCTION mav_values On Error lerr = errhand(error() , message() , message(1) , program() , lineno()) clear close databases nps = 1 sele e use data_edits Do while nps < 4 Do Case Case nps = 1 fn = 'real' Case nps = 2 fn = 'personal' Case nps = 3 fn = 'mobile' Case nps > 3 exit EndCase Do Case Case fn = 'real' clear @ 8,20 say 'Checking Parcel Components for MAV Issues...' sele b use reprop set order to realkey sele c use commimp set order to realkey sele d use acessory set order to realkey sele h use mobile set order to repropkey sele i use acc_ctrl set order to acc_ctrl sele a use realprop set order to parcel_no go top Do While !eof() @10,20 say parcel_no If realkey = 0 skip If !eof() loop Else exit EndIf EndIf If digstrat <> '1' .and. mavag + mavpref = 0 fk = 0 fm = ' ' fx = alias() append_data_edits('Zero Land MAV',realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf If digstrat <> '1' .and. mavag + mavpref > iif(ovrideval>0, ovrideval, a_value+p_value) fk = 0 fm = ' ' fx = alias() append_data_edits('MAV > FMV, Land',realprop.realkey,'realkey',realprop.parcel_no,fk,fm,fx) EndIf sele reprop seek realprop.realkey Do While realkey = realprop.realkey .and. !eof() If mav = 0 and at('no value',lower(comment)) = 0 fk = realkey fm = 'realkey' fx = alias() append_data_edits('Zero Res Imp MAV',reprop.repropkey,'repropkey',realprop.parcel_no,; fk,fm,fx) EndIf If mav > iif(ovr_val>0,ovr_val,timp_val) fk = realkey fm = 'realkey' fx = alias() append_data_edits('MAV > FMV, Res Imp',reprop.repropkey,'repropkey',realprop.parcel_no,; fk,fm,fx) EndIf If occupancy = 4 sele mobile seek reprop.repropkey If found() If mav = 0 ; and at('no value',lower(comment)) = 0 fk = repropkey fm = 'repropkey' fx = alias() append_data_edits('Zero Non-Preb MH MAV',mobile.mobilekey,'mobilekey',; realprop.parcel_no,fk,fm,fx) EndIf If mav > iif(ovrvalue > 0, ovrvalue, iif(guide, guidevalue, value)) fk = repropkey fm = 'repropkey' fx = alias() append_data_edits('MAV > FMV, Non-Preb MH',mobile.mobilekey,'mobilekey',; realprop.parcel_no,fk,fm,fx) EndIf sele acessory set order to mobilekey seek mobile.mobilekey Do While mobilekey = mobile.mobilekey .and. !eof() If mav = 0 and acc_type = 'M' and at('no value',lower(comments)) = 0 fk = mobile.mobilekey fm = 'mobilekey' fx = alias() append_data_edits('Zero Non-Preb MH Addon MAV',acessory.acckey,'acckey',; realprop.parcel_no,fk,fm,fx) EndIf If mav > iif(ovr_val>0, ovr_val, imp_val) and acc_type = 'M' fk = mobile.mobilekey fm = 'mobilekey' fx = alias() append_data_edits('MAV > FMV, Non-Preb MH Addon',acessory.acckey,'acckey',; realprop.parcel_no,fk,fm,fx) EndIf skip EndDo EndIf EndIf sele reprop skip EndDo sele commimp seek realprop.realkey Do While realkey = realprop.realkey .and. !eof() If mavbldg = 0 and at('no value',lower(comment1)) = 0 fk = realkey fm = 'realkey' fx = alias() append_data_edits('Zero Comm Imp MAV',commimp.commkey,'commkey',realprop.parcel_no,; fk,fm,fx) EndIf If mavbldg > iif(comimpovr > 0, comimpovr, bldg_val) fk = realkey fm = 'realkey' fx = alias() append_data_edits('MAV > FMV, Comm Imp',commimp.commkey,'commkey',realprop.parcel_no,; fk,fm,fx) EndIf sele acessory set order to commkey seek commimp.commkey Do While commkey = commimp.commkey .and. !eof() If mav = 0 and at('no value',lower(comments)) = 0 fk = commimp.commkey fm = 'commkey' fx = alias() append_data_edits('Zero Extra Feature MAV',acessory.acckey,'acckey',; realprop.parcel_no,fk,fm,fx) EndIf If mav > iif(ovr_val > 0, ovr_val, imp_val) fk = commimp.commkey fm = 'commkey' fx = alias() append_data_edits('MAV > FMV, Comm Ex Feat',acessory.acckey,'acckey',; realprop.parcel_no,fk,fm,fx) EndIf skip EndDo sele commimp skip EndDo sele acessory set order to realkey seek realprop.realkey Do While realkey = realprop.realkey .and. !eof() If mav = 0 and at('no value',lower(comments)) = 0 sele acc_ctrl seek 'A' + acessory.comp_no If price_code <> '3' sele acessory fk = realkey fm = 'realkey' fx = alias() append_data_edits('Zero Acc Imp MAV',acessory.acckey,'acckey',realprop.parcel_no,; fk,fm,fx) Else sele acessory EndIf EndIf If mav > iif(ovr_val > 0, ovr_val, imp_val) sele acc_ctrl seek 'A' + acessory.comp_no If price_code <> '3' sele acessory fk = realkey fm = 'realkey' fx = alias() append_data_edits('MAV > FMV, Acc Imp',acessory.acckey,'acckey',realprop.parcel_no,; fk,fm,fx) EndIf EndIf sele acessory skip EndDo sele realprop skip EndDo Case fn = 'personal' close databases sele e use data_edits sele b use cost set order to perskey sele c use invn set order to perskey sele d use boat set order to perskey sele f use other set order to perskey sele g use aircraft set order to perskey sele a use personal set order to perskey go top clear @ 8,20 say 'Checking for MAV Issues with Pers Prop Items' Do While !eof() @10,20 say recno() If mavcurr = 0 and at('no value',lower(records)) = 0 fk = 0 fm = ' ' fx = alias() append_data_edits('Zero Personal Acct MAV',personal.perskey,'perskey',; personal.co_id_num,fk,fm,fx) EndIf sele cost seek personal.perskey Do While !eof() and perskey = personal.perskey Do Case Case valmethod = 'C' .and. mav = 0 and cost - disposals <> 0 and ; at('no value',lower(comments)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero MEFF Cost MAV',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) Case valmethod = 'M' .and. mav = 0 and at('no value',lower(comments)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero MEFF Market MAV',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) Case mav = 0 and cost - disposals <> 0 and cost > 0 and ; at('no value',lower(comments)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero MEFF Market MAV',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) EndCase Do Case Case valmethod = 'C' .and. mav > costval fk = perskey fm = 'perskey' fx = alias() append_data_edits('MAV > FMV, Cost Valued Item',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) Case (valmethod = 'M' or valmethod = ' ') .and. mav > marketval fk = perskey fm = 'perskey' fx = alias() append_data_edits('MAV > FMV, Mkt Valued Item',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) EndCase skip EndDo sele invn seek personal.perskey Do While !eof() and perskey = personal.perskey If mav = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Invn MAV',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) EndIf If mav > total_invn fk = perskey fm = 'perskey' fx = alias() append_data_edits('MAV > FMV, Inventory',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) EndIf If gross_raw + gross_mfg + gross_out > 0 .and. (mavnet = 0 .or. personal.mavfrport = 0) fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Freeport MAV',cost.costkey,'costkey',; personal.co_id_num,fk,fm,fx) EndIf skip EndDo sele boat seek personal.perskey Do While !eof() and perskey = personal.perskey If mav = 0 and at('no value',lower(btcomment)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Boat MAV',boat.boatkey,'boatkey',; personal.co_id_num,fk,fm,fx) EndIf If mav > btmtvalue fk = perskey fm = 'perskey' fx = alias() append_data_edits('MAV > FMV, Boat/Motor',boat.boatkey,'boatkey',; personal.co_id_num,fk,fm,fx) EndIf skip EndDo sele aircraft seek personal.perskey Do While !eof() and perskey = personal.perskey If mav = 0 and at('no value',lower(comments)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Aircraft MAV',aircraft.airkey,'airkey',; personal.co_id_num,fk,fm,fx) EndIf If mav > value fk = perskey fm = 'perskey' fx = alias() append_data_edits('MAV > FMV, Aircraft',aircraft.airkey,'airkey',; personal.co_id_num,fk,fm,fx) EndIf skip EndDo sele other seek personal.perskey Do While !eof() and perskey = personal.perskey If mav = 0 and at('no value',lower(comments)) = 0 fk = perskey fm = 'perskey' fx = alias() append_data_edits('Zero Other MAV',other.otherkey,'otherkey',; personal.co_id_num,fk,fm,fx) EndIf If mav > value fk = perskey fm = 'perskey' fx = alias() append_data_edits('MAV > FMV, Other',other.otherkey,'otherkey',; personal.co_id_num,fk,fm,fx) EndIf skip EndDo sele personal skip EndDo Case fn = 'mobile' close databases sele e use data_edits sele a use mobile set order to mobilekey sele b use acessory set order to mobilekey sele mobile go top clear @ 8,20 say 'Checking for MAV Issues with Prebilled Records' Do While !eof() @10,20 say recno() If mobtype <> 3 skip If !eof() loop Else exit EndIf EndIf If mav = 0 and at('no value',lower(comment)) = 0 fk = ownkey fm = 'ownkey' fx = alias() append_data_edits('Zero Prebill MH MAV',mobile.mobilekey,'mobilekey',; mobile.prebmapid,fk,fm,fx) EndIf If mav > iif(ovrvalue>0, ovrvalue, iif(guide, guidevalue, value)) fk = ownkey fm = 'ownkey' fx = alias() append_data_edits('MAV > FMV, Prebill MH',mobile.mobilekey,'mobilekey',; mobile.prebmapid,fk,fm,fx) EndIf sele acessory seek mobile.mobilekey Do While mobilekey = mobile.mobilekey .and. !eof() If mav = 0 .and. acc_type = 'M' and at('no value',lower(comments)) = 0 fk = mobile.mobilekey fm = 'mobilekey' fx = alias() append_data_edits('Zero Prebill MH Addon MAV',acessory.acckey,'acckey',; mobile.prebmapid,fk,fm,fx) EndIf If mav > iif(ovr_val > 0, ovr_val, imp_val) fk = mobile.mobilekey fm = 'mobilekey' fx = alias() append_data_edits('MAV > FMV, Prebill Addon',acessory.acckey,'acckey',; mobile.prebmapid,fk,fm,fx) EndIf skip EndDo sele mobile skip EndDo EndCase nps = nps + 1 EndDo clear close databases return