I ARAVIND KUMAR, hereby declare that the project report entitled "E- Billing & Invoice System" submitted in partial fulfllment of the reuirements for the de!ree of "#A to $i%%im Manipal Uni&ersity, India, is my ori!inal 'or% and not submitted for the a'ard of any other de!ree, Diploma, (ello'ship or any other similar title or pri)es* +lace, Noida $tudent Date: 30.09.2014 ARAVIND )U!AR Roll No. -5+1116902 2 5+1116902 EXAMINERS CERTIFICATION T7% P-*A%$& R%,*-& *5 BBBBBBBBBBBBBBBBBBB P-*A%$& E4&2&"%3 "E-Billing & Invoice System" 2. #,,-*;%3 #43 2. #$$%,�"% 24 6/#"2&< & 5*-1. I4&%-4#" EC#124%- EC&%-4#" EC#124%-. (N#1%, D/#"252$#&2*4 & D%.284#&2*4) (N#1%, D/#"252$#&2*4 ) 3 5+1116902 CERTIFICATE This is to certify that the project report entitled "E-Billing & Invoice System" is a bonafied or! carried o"t by #R#$%ND &'(#R, a st"dent of )CA in a tea* "nder able +"idance and s"per,ision. This is to f"rther certify that this is an ori+inal done and the report thron has not been earlier for the aard of any diplo*a or de+ree to any instit"te of "ni,ersity. S284#&/-% *5 P-*A%$& G/23% D#&%: S284#&/-% *5 C#4323#&% Na*e: ARAVIND )U!AR R%8. N*. 5+1116902 SC C*3%: 0950 S284#&/-% *5 C%4&-% ?%#3 SC C*3%: 0950 SC N#1% : LP, N*23# 4 5+1116902 AC)NO@LEDGE!ENT -.ords often fail to e/press one0s inner feelin+s of +ratit"de and indebtedness to one0s benefactors1 b"t then it is the only readily a,ailable *edi"* thro"+h hich the "ndersi+ned can e/press their sincere than!s to all those ho are associated ith the or! in one ay or the other2 % ac!noled+e *y sincere +ratit"de toards *y 5#$/"&< 8/23%, L%#-4248 P*24&., N*23# (U.P.) for their ,al"able +"idance and s"pport at all ti*e. % o"ld li!e to than! all the respondents itho"t hose cooperation *y st"dy3 project o"ld not ha,e been co*plete.
CONCLUSION AND >UTURE EN?ANCE!ENT 10' BIBLIOGRAP? 10(
A 5+1116902
PROJECT INTRODUCTION
1.1 I4&-*3/$&2*4 1.2 P-*A%$& P-*52"%
9 5+1116902 1.1 INTRODUCTION This project is foc"sed on -e-billin+ and in,oice syste* - . Donloads and "ploads c"sto*er and order infor*ation1 hich affects acco"ntin+1 in,entory and prod"ct data. $ie c"sto*er and prod"ct data as described in *etrics1 trac! orders and deli,eries. The client "ses (8 6/cel1 and *aintains their prod"ct list1 c"sto*er list1 and prints the in,oice1 hoe,er it is not possible the* to share the data fro* *"ltiple syste* in *"lti "ser en,iron*ent1 there is lot of d"plicate or!1 and chance of *ista!e. .hen the prod"ct price are chan+ed they need to "pdate each and e,ery e/cel file. There is no option to find and print pre,io"s sa,ed in,oice. There is no sec"rityE any body can access any report and sensiti,e data1 also no reports to find o"t the sales ,ol"*e1 stoc! list1 and s"**ary report. This e)illin+ and in,oicin+ syste* is "sed to o,erco*e the entire proble* hich they are facin+ c"rrently1 and *a!in+ co*plete ato*iFation of *an"al billin+ and in,oicin+ syste* 10 1.2 P-*A%$& P-*52"% 5roject Title: 6-)%>>%NB #ND %N$;%<6 898T6( 5roject objecti,e: the *ain objecti,e of the syste* is to co*p"teriFed the 6-)illin+ and %n,oice 8yste*. Desi+n and prepare a faster1 acc"rateE 6rror-free and *ore efficient co*p"teriFed -6-billin+ and in,oice 8yste* - .This 6-)illin+ and in,oicin+ syste* is "sed to o,erco*e the 6ntire proble* hich they are facin+ c"rrently1 and *a!in+ co*plete ato*iFation of *an"al billin+ and in,oicin+ syste* . C#RD.#R6 856<%?#T%;N ;? (#<C%N6 '86D
5rocessor: 5enti"* %$ R#(: 412 () CDD: A0 B)
8;?T.#R6 '86D ;peratin+ syste*: .indos G5 5rofessional ?ront-6nd: (8 $is"al )asic =.0 )ac!-6nd: (8 #ccess 5ac!a+e: (8 .ord ;)H6<T%$6 #<C%6$6D: 8"ccessf"lly Cardare38oftare Necessary to r"n the project : aI (ini*"* Cardare : 1.4BCF <5' 2 B) CDD =4 () R#(
12 2.1 User Profiles The folloin+ "ser types are e/pected for the e)illin+ and %n,oicin+ 8yste*: U.%- B-2%5 D%.$-2,&2*4 *5 U.% A$&2*4. 8ales Representati,e Donloads and "ploads c"sto*er and order infor*ation1 hich affects acco"ntin+1 in,entory and prod"ct data. $ie c"sto*er and prod"ct data as described in *etrics1 trac! orders and deli,eries. (ana+er #ll sales representati,e "se actions1 and *ana+e*ent reports1 :"ota establish*ent1 reportin+ and adj"st*ent. #cco"ntant $ie and print stoc!s1 trac! orders. 'pdate prod"ct details li!e price. (%8 6/ec"ti,e Benerate reports1 ,ie and print in,entory reports1 ,ie and print stoc! reports. 13 2.2 'sa+e 8"**ary e)illin+ and %n,oicin+ 8yste* ill address the folloin+ "se cases. The co*plete "sa+e scenarios ill be co*pleted d"rin+ the infor*ation-+atherin+ process. 'se cases ill be created and prioritiFed. 8elected "se cases ill be e/panded into "sa+e scenarios and feat"res that are deri,ed fro* both "se cases and the "sa+e scenarios1 as represented in the folloin+ dia+ra*: 'sa+e s"**ary "se case 14 2.' R%6/2-%1%4&. S/11#-< The folloin+ preli*inary lists are based on initial inter,ies 2.'.1 B/.24%.. R%6/2-%1%4&. The b"siness +oal for the application is to s"pport an increase the prod"cti,ity and co*plete a"to*ation of e/istin+ *an"al bill and in,oice +eneration process. )"siness re:"ire*ents are disc"ssed in the 8cope section1 ith the folloin+ additional detail: 8ales representati,es need a *ethod to store and access sales opport"nity data1 and hen a sale is +enerated1 con,ert so*e or all of the infor*ation into a sales order itho"t re-enterin+ infor*ation. 6ach sales representati,e sho"ld recei,e c"sto*er and sales data pertinent only to the*. The acco"ntant sho"ld be able to enter or "pdate prod"ct infor*ation in one interface only1 ith all necessary prod"ct infor*ation bein+ recei,ed by sales staff. (ana+er *"st recei,e his or her c"sto*er and appoint*ent data pl"s detailed and roll"p infor*ation for each sales representati,e on his or her tea*. The application sho"ld s"pport the capability to "se *"lti "ser en,iron*ent. The (%8 6/ec"ti,e sho"ld able to +enerate all type of reports as and hen re:"ired by the *ana+e*ent. The sales staff ants to i*pro,e their c"rrent ability to analyFe their c"sto*ers. %n partic"lar1 they ant to foc"s on identifyin+ their best c"sto*ers and b"ildin+ lon+-ter* relationships ithin that base. To enable the* to acco*plish this +oal1 they ant to e/tract *eanin+f"l data that easily ansers the folloin+ :"estions: .hat are the early arnin+ si+ns of proble*sJ .ho are *y best c"sto*ers across prod"ct linesJ .ith ho* do % foc"s *y efforts for b"ildin+ a lon+-ter* relationshipJ .hat are *y c"sto*ersK iss"es as +ro"psJ 14 Beo+raphically1 here are *y best c"sto*ersJ .hat prod"cts are *y c"sto*ers b"yin+ and at hat rateJ 2.'.2 U.%- R%6/2-%1%4&. 'ser re:"ire*ents are cate+oriFed by "ser type. 8ales 8taff LRepresentati,es and (ana+ersI $ie the data in ,ario"s ays1 for e/a*ple: o <"sto*ers ho are the top b"yers of specific ite*s o )est c"sto*ers based on criteria to be deter*ined o )est c"sto*ers based on +eo+raphical analysis o Drops in a c"sto*erKs sales 8tore *"ltilin+"al and *"ltire+ional infor*ation in the database rather than relyin+ on the sales staff to translate the infor*ation %dentify hich prod"ct prices ha,e been *odified1 especially on c"rrent orders in pro+ress 'se opport"nity r"les1 hich are state*ents that help the sales representati,e con,ert an opport"nity into a sale #dd third-party data so"rces and financial e,al"ation tools %dentify here pro*otions and pro+ra*s o"ld be the *ost beneficial #pply disco"nts to c"sto*er orders: o 8ales representati,es can offer disco"nts "p to 14 percent1 or "p to 20 percent ith a"thoriFation. o 8ales *ana+ers can offer disco"nts "p to 20 percent 6nable capt"re1 analysis1 and sharin+ of data abo"t a c"sto*er across the co*pany 'se forecasts to establish sales +oals #llo all staff to ,ie all contacts1 b"t allo each contact to be assi+ned to a sales representati,e 1= A$$*/4& 'pdate prod"ct details1 incl"din+ price1 photo1 and description #dd1 delete1 and "pdate prod"ct specifications Benerate stoc! reports and chec! the a,ailability1 order the ite* as and hen needed. !IS EC%$/&2;% Benerate Reports as per re:"ire*ent. 8hare the data1 and con,ert reports to different for*at li!e Te/t1 <8$. 2.'.' O,%-#&2*4#" R%6/2-%1%4&. T7% 5*""*9248 -%6/2-%1%4&. ,-*;23% # 7287-"%;%" ;2%9 *5 7*9 &7% .<.&%1 92"" -/4: 5rocessor "sa+e sho"ld not e/ceed A0 percent d"rin+ conc"rrent "ses. )ac!"ps ill occ"r incre*entally thro"+ho"t the day. # f"ll ee!ly bac!"p is re:"ired to .;R( dri,es. 6ns"re that infor*ation is easy to access either1 and *eanin+f"l for the sales representati,e and the co*pany. (ini*iFe the technical !noled+e that sales and *ar!etin+ staff need to access the data1 +enerate ad hoc :"eries1 trac! pro*otions1 and ,ie c"sto*er se+*entation infor*ation. #ny chan+e to infor*ation *"st be reflected i**ediately1 and the chan+es *"st be propa+ated to the search en+ine so that e*ployees that perfor* searches see this ne infor*ation. The application sho"ld or! ith the e/istin+ co**"nications and netor!in+ infrastr"ct"re. 1@ 2.( S<.&%1 R%6/2-%1%4&. T7%.% #-% #332&2*4#" $*4.&-#24&. 5-*1 # .<.&%1 ,%-.,%$&2;%: 5re,io"s data of c"sto*er1 prod"ct details *"st be i*ported in the ne syste*. The ad*inistrator *"st be able to *onitor e,erythin+ fro* the %T depart*ent. The infor*ation *"st be accessible by e,eryone in the co*pany as per the ri+hts specify. 2.5 S/$$%.. C-2&%-2# To deter*ine the s"ccess of this project1 the folloin+ *etrics can be :"antified and "sed to analyFe s"ccess factors. 2.6 S#"%. A/&*1#&2*4 P-*0"%1 $/.&*1%- 23%4&252$#&2*4. #bility to identify top 10 de,elopin+ proble* c"sto*ers by sales representati,e. I3%4&252$#&2*4 *5 0%.& $/.&*1%-. #$-*.. ,-*3/$& "24%. #43 -%82*4.. #ll c"sto*ers can be sorted by the factors Lto be deter*inedI that ran! the* :"alitati,ely. $ariable sorts and ran!in+s can be chosen by the sales representati,e. I3%4&252$#&2*4 *5 2../%. #$-*.. 8-*/,.. #ll c"sto*ers can be sorted by the iss"es Lto be deter*inedI ithin +ro"p cate+ories that can be "pdated. $ariable sorts and ran!in+s can be chosen by the sales representati,e or other "ser. A4#"<.2. *5 6/#4&2&2%. #43 -#&%. *5 ,-*3/$&.. 5rod"cts can be sorted by the :"antity and dates sold. $ariable sorts and ran!in+s can be chosen by the "ser.
'.1 PER>OR!ANCE '.2 AVAILABILIT '.' RELIABILIT '.( SCALABILIT '.5 SECURIT '.6 INTEROPERABILIT '.+ LOCATION '.E SETUPFINSTALLATION 20 DESIGN GOALS AND CONSTRAINTS '.1 P%-5*-1#4$% No *ore than a 4-percent de+radation in a,era+e :"ery response is alloed hile all conc"rrent "ser are "sin+ the syste*. 5rocessor "tiliFation sho"ld not e/ceed A0 percent d"rin+ all conc"rrent "sers are "sin+ the syste*. '.2 A;#2"#02"2&< )eca"se the syste* is accessed by sales representati,e to boo! the order and print the in,oice1 and their sho"ld not be any sin+le point of fail"re. '.' R%"2#02"2&< )eca"se of the need no sin+le point fail"re1 a"to*atic failo,er ill be re:"ired. %n addition1 e/istin+ disaster reco,ery and bac!"p plans and proced"res *"st be re,ised to incorporate the e)illin+ and %n,oicin+ 8yste*. '.( S$#"#02"2&< e)illin+ and %n,oice 8yste* an a,era+e load of 40 conc"rrent "sers after the syste* is f"lly operational1 and e/pects that to +ro by 4 percent each year for the ne/t fi,e years. '.5 S%$/-2&< ?or the sensiti,e c"sto*er and order data1 all "sers ill need to lo+ on the syste* ith their "ser id and passord. 6,ery reso"rce in the syste* are defined by the role and pri,ile+ed. 8yste* ad*inistrator assi+ned "ser role and pri,ile+ed for their access ri+hts. '.6 L*$#&2*4 The e)illin+ and %n,oice 8yste* are "sed in the co*pany office only. 21
SOLUTION ARC?ITECTURE (.1 IN>RASTRUCTURE (.2 VISUAL DESIGN (.' CONCEPTUAL DESIGN (.( LOGICAL DESIGN (.5 P?SICAL DESIGN 22 SOLUTION ARC?ITECTURE (.1 I45-#.&-/$&/-% Ne ser,ers *"st be d"al processor 1.2= BCF co*p"ters1 ith 1 B) of R#(. The operatin+ syste* softare ill be (icrosoft .indos 2000 ith the latest ser,ice pac!1 altho"+h "se of .indos 8er,er 2003 ill be considered hen it is a,ailable. These ser,ers ill be installed on e/istin+ netor!. To help pro,ide sec"rity of the application1 both an internal and e/ternal fireall ill be installed. . (.2 C*4$%,&/#" D%.284 ?or infor*ation abo"t the concept"al desi+n see the "se case of pre,io"s chapters of the e)illin+ and %n,oice 8yste*1 )"siness R"le <atalo+ of e)illin+ and %n,oice 8yste* BR ID Business Rule Title Description Authority Current Process 1 Timely Product Information Adjustments The product information, price in the system must be current 100% of the time. Adjustments to this information must be made at any time. Mr. Ajay Kumar, Accountant. Interie!. 1. Product is identified by Mana"er #. $urrent information is reie!ed and modifications are identified. %. Accountant notes chan"es to information and obtains approal from Mana"er. &. Accountant ma'es the chan"es to the product information. (. After approal is "ien by all o!ners, Accountant saes the chan"es. 23 2 )eactiatin" *eleted Products A product can be +deleted,+ meanin" that it is no lon"er sold by e,illin" and Inoice -ystem. .o!eer, the product information should be aailable in case the product is reactiated at a future time. 1. Product is identified by Mana"er. #. Accountant is notified that the product should be remoed from the catalo". /otification comes from Mana"er. %. Accountant archies product information and saes the information in te0t and "raphics files on an internal business serer. &. If a product is reactiated, the Accountant receies notification from Mana"er. (. Accountant creates a ne! product record in the database and copies the information from the files on the internal business serer to the database record. 1. Accountant notifies product information +o!ners+ in Mana"er to reie! the ne! product record. 2. After approal is "ien by all o!ners, Accountant ma'es the product record aailable to the catalo". 3 Authori3ation for $atalo" $han"es /o chan"e to product information can be made publicly aailable !ithout the approal from the information +o!ners,+ usually Mana"er. Mr. Ajay Kumar, Accountant. Interie! . *eried from ,)1 4 *eliery of *aily Pricin" 4pdates to -ales The -ales force needs to use the most up5to5date information about product pricin" and related information, such as aailability. 6ther!ise, sales representaties miss receiin" chan"es that do affect them. This results in the sales representaties hain" to redo orders and recalculate pricin". Mr. Ajay Kumar, Accountant. Interie! . 7ery mornin" of eery day8 1. Accountant 4pdate the pricin" from the endor. 5 Authori3ation for Information Access $ertain roles hae access to certain information types and functions. $urrent roles include -ales )epresentatie, -ales Mana"er, Accountant, MI- 70ecutie Mr. 9oy deep *as, IT Mana"er. Interie! . 1. A suitable authority is re:uested for creation of a role. #. The role is created and authori3ed by the authori3ation authority. 24 B/.24%.. O0A%$&. S%-;2$%. A$&*-. (R*"%.) R%.,*4.202"2&2%. C*""#0*-#&2*4 . U.% C#.% R%5%-%4$% 5rod"cts (ana+e 5rod"cts 8ales representati,e 8et filterin+ infor*ation Bet price *odifications 8elect a catalo+ ite* fro* catalo+ ite* 'se <ase : (ana+e 5rod"ct 8ales representati,e 8elect a catalo+ ite* Bet details of catalo+ ite* Bet prod"ct specs None 'se <ase : (ana+e 5rod"ct 8ales representati,e 8et address details Bet address list $alidate address <onfir* deli,ery 8et deli,ery address fro* order 'se <ase : (ana+e 5rod"ct 8ales representati,e 5rint prod"ct specs None 'se <ase : (ana+e 5rod"ct 8ales representati,e $ie prod"ct specs None 'se <ase : (ana+e 5rod"ct <"sto* er 8ales representati,e $ie s"**ary infor*ation None 'se <ase : (ana+e 5rod"ct 8ales representati,e $ie detailed infor*ation None 'se <ase : (ana+e 5rod"ct 6dit 5rod"cts #cco"nt ant #dd ite* to catalo+ )rose catalo+ ite*s 8et ite* details fro* catalo+ ite* 'se <ase : 6dit 5rod"ct #cco"nt ant Bet editable ite*s 8et ite* details $alidate ite* details 8a,e ite* details Bet details of catalo+ ite* fro* catalo+ ite* 'se <ase : 6dit 5rod"ct (.( P7<.2$#" D%.284 24 %B2""248 #43 I4;*2$% S<.&%1 P7<.2$#" O0A%$& !*3%"
2= #dd ne prod"ct to prod"ct *aster se:"ence dia+ra*
2@ EBILLING AND INVOICE SSTE! DATA DICTIONAR 5.1 TABLE : PRODUCTB!ASTER 5.2 TABLE : BILL 5.' TABLE : BILLBDETAILS 5.( TABLE : CO!PANB!ASTER 5.5 TABLE : USERB!ASTER 2A 4.1 Table: prod"ctD*aster O94%-: dbo D%.&24#&2*4 DB 4#1%: ebill N/10%- *5 $*"/14.: 4 N/10%- *5 243%C%.: 2 N/10%- *5 5*-%284 :%<.: 0 EC&%43%3 #&&-20/&%.: O4>2"%G-*/, 5R%(#R9 C"/.&%-%3 P) 9es I43%C%. T<,% C*"/14. P)BP-*3/$&!#.&%-B.4* cl"stered1 "ni:"e1 pri*ary !ey located on 5R%(#R9 sno 4.2 Table : bill O94%-: dbo D%.&24#&2*4 DB 4#1%: ebill N/10%- *5 $*"/14.: 14 N/10%- *5 243%C%.: 3 N/10%- *5 5*-%284 :%<.: 0 EC&%43%3 #&&-20/&%.: O4>2"%G-*/, 5R%(#R9 C"/.&%-%3 P) 9es C*"/14. NULL . A""*9%3 3#&#T<,% .4* Not alloed %ntI 24;*2$%4* Not alloed int $#41% Not alloed n,archarL=0I I4;*2$%B3#&% Not alloed n,archarL=0I "*$#&2*4 Not alloed dateti*e $7#"#4B4* Not alloed n,archerL=0I $/.&*1%-B4#1% Not alloed int10I C/.&*1%-B#33-%..1 Not alloed n,archarL100I C/.&*1%-B#33-%..2 #lloed n,archarL100I T*&#"B#1& Not alloled n,archarL100I 32.$*/4& Notl alloed %nt A1&B9*-3. Not alloed %nt P#23B&<,% Not alloed n,archarL100I C7%6/%B4* #lloed n,archarL=0I E4&-<B3#&% Not alloed N,archarL=0I 29 C*"/14. N/"". A""*9%3 3#&#T&<,% S4* Not alloed %nt P-*3T<,% Not alloed n$archarL=0I P-*3S/0T<,% Not alloed n$archarL=0I R#&% Not alloed %nt 2.#$&2;% Not alloed n,archarL30I I43%C%. T<,% C*"/14. P)BB2""BSNO cl"stered1 "ni:"e1 pri*ary !ey located on 5R%(#R9 sno IGB02""B$4#1% noncl"stered located on 5R%(#R9 cna*e IGB02""B24;*2$%4* noncl"stered1 "ni:"e located on 5R%(#R9 in,oiceno 4.3 Table : billDdetails O94%-: dbo D%.&24#&2*4 DB 4#1%: ebill N/10%- *5 $*"/14.: = N/10%- *5 243%C%.: 3 N/10%- *5 5*-%284 :%<.: 2 EC&%43%3 #&&-20/&%.: O4>2"%G-*/, 5R%(#R9 C"/.&%-%3 P) 9es C*"/14. NULL. A""*9%3 D#&# &<,% .4* Not alloed %nt B2""B.4* Not alloed %nt P-*3B.4* Not alloed N,archarL=0I 6&< Not alloed Dateti*e -#&% Not alloed n,archarL=0I #1& Not alloed int I43%C%. T<,% C*"/14. P)BB2""B3%".BSNO cl"stered1 "ni:"e1 pri*ary !ey located on 5R%(#R9 sno IGB02""B3%".B02""B.4* noncl"stered located on 5R%(#R9 )illDsno IGB02""B3%#&2".B,-*3B.4* noncl"stered1 "ni:"e located on 5R%(#R9 5rodDsno 4.4 Table : <o*panyD*aster O94%-: dbo D%.&24#&2*4 DB 4#1%: ebill N/10%- *5 $*"/14.: @ N/10%- *5 243%C%.: 2 N/10%- *5 5*-%284 :%<.: 0 EC&%43%3 #&&-20/&%.: O4>2"%G-*/, 5R%(#R9 C"/.&%-%3 P) 9es C*"/14. NULL. A""*9%3 D#&# &<,% C*1,#4<B4#1% Not alloed N,archarL=0I 30 A33-%..1 Not alloed N,archarL100I A33-%..2 #lloed N,archarL100I $2&< Not alloed N,archarL=0I ,24 Not alloed %nt &%"%,7*4% Not alloed N,archarL=0I ;#&4* Not alloed n,archarL=0I I43%C%. T<,% C*"/14. P)B$*1#,4<B1#.&%-B$*1,#4<B4#1% cl"stered1 "ni:"e1 pri*ary !ey located on 5R%(#R9 <o*apnayDna*e IGB $*1#,4<B1#.&%-B,24 noncl"stered located on 5R%(#R9 pin 4.4 Table : "serD*aster O94%-: dbo D%.&24#&2*4 DB 4#1%: ebill N/10%- *5 $*"/14.: 3 N/10%- *5 243%C%.: 2 N/10%- *5 5*-%284 :%<.: 0 EC&%43%3 #&&-20/&%.: O4>2"%G-*/, 5R%(#R9 C"/.&%-%3 P) 9es C*"/14. NULL . #""*9%3 D#&# &<,% /.%-B4#1% Not alloed n,archarL=0I U.%-B,#..9*-3 Not alloed n,archarL=0I U.%-B&<,% #lloed N,archarL=0I
I43%C%. T<,% C*"/14. P)B/.%-B1#.&%-B/.%-B4#1% cl"stered1 "ni:"e1 pri*ary !ey located on 5R%(#R9 "serDna*e IGB /.%-B1#.&%-B/.%-B&<,% noncl"stered located on 5R%(#R9 'serDtype 31 STRUCTURED ANALSIS 6.1 I4&-*3/$&2*4 6.2 T**". U.%3 24 S&-/$&/-%3 A4#"<.2. 6.2.1 C*4&%C& D2#8-#1 6.2.2 D#&# S$7%1# ER D2#8-#1 6.2.' D#&# >"*9 D2#8-#1
32 6.1 NTRODUCTION ;ne of the best approach to syste* is the str"ct"red analysis . 8tr"ct"red analysis is a set if techni:"es and +raphical tools that allo "s to de,elop a ne !ind of syste* specification that is easily "nderstandably to the de,eloper . %t is detailed step-by-step in,esti+ation of related proced"re to see hat *"st be b"ild a syste* specification that pro,ides the basis for desi+n and i*ple*entation . T7% V#-2*/. &**". &7#& #-% /.%3 24 S&-/$&/-%3 #4#"<.2. #-% .
1 : <onte/t Dia+ra* 2 : Data ?lo Dia+ra* 3 : 6ntity Relationship Dia+ra* 4 : Data Dictionary 6.2 T**". U.%3 24 S&-/$&/-%3 A4#"<.2. 6.2.1 C*4&%C& D2#8-#1 <onte/t dia+ra* is the startin+ point of str"ct"red analysis .they are constr"cted to sho the hi+hest-le,el *odel of the syste* .they are "sed to represent pictorially the scope or bo"ndary of the syste* . the conte/t dia+ra* of the proposed syste* is +i,en .
>OR! DESIGN AND CODING +.1 >-1S,"#. +.2 >-1L*824 +.' >-1!#24 +.( >-1P-*3/$&. +.5 >-1B2"" +.6 >-1R%,*-&. +.+ >-1P-24&B2" +.E P-*3/$&S/11#-< R%,*- +.9 >-1B2""S/11#-< +.10 >-1EC,*-&D#&# +.11 >-1U&"2&< +.12 >-1C*1,#$&A43R%,#2-D#�#.% +.1' >-1B#$:/,D#�#0% +.1( >-1C*1,#4<I45* +.15 >-1C"2%4&I45* +.16 >-1C7#48%P#..9*-3 +.1+ !*3G%4 +.1E !*3B-*9.% +.19 !*3R.T*@*-3 3= +.1 >-1S,"#.7 L(od"le to sho start"p screenI KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K K(od"le to sho start"p screen KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ;ption 6/plicit Di* r #s %nte+er Di* i #s %nte+er 5ri,ate 8"b ?or*D>oadLI KNNN center the for* (e.>eft O L8creen.Cei+ht - (e.Cei+htI 3 2 (e.Top O L8creen..idth - (e..idthI 3 2 KNNN +et a rando* ,al"e to decide ho *any seconds KNNN start"p screen sho"ld be displayed r O Rnd M 4 P 1 6nd 8"b 5ri,ate 8"b ?or*D'nloadL)y$al <ancel #s %nte+erI KNNN release all the references ?r*8plash O Nothin+ 6nd 8"b 5ri,ate 8"b Ti*er1DTi*erLI KNNN chec! the ellapsed ti*e KNNN if the ellapsed ti*e +reater then rando* ,al"e KNNN stored in for* load1 stop the ti*er KNNN sho *ain fro* and close the start"p screen i O i P 1 %f r NO i Then i O 0 Ti*er1.%nter,al O 0 'nloadL(eI >oadL?r*(ainI ?r*(ain.8hoLI 6nd %f 6nd 8"b 3@ +.2 >-1L*824 L(od"le to #"thenticate 'serI KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K >o+in (od"le K 'sed Table : "serD*aster K(od"le to chec! "ser lo+in and load K"ser ri+hts as per "ser type. KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ;ption 6/plicit Di* Rs #s Ne #D;D).Recordset 5ri,ate 8"b <o**and1D<lic!LI KNNN chec! heather "ser na*e and passord are blan! KNNN if its is blan arn "ser to enter %f T/t'serNa*e.Te/t O QQ ;r T/t5assord.Te/t O QQ Then (s+)o/LQ6nter "ser na*e and passord ...Q1 ,b6/cla*ationI T/t'serNa*e.8et?oc"sLI 6/it 8"b 6nd %f KNNN chec! for entered co*pany KNNN :"ery to database and if no record fo"nd arn "ser to select co*pany fro* the list. %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penLQselect M fro* co*panyD*aster here co*panyDna*eOKQ R <*b<o*panyNa*e.Te/t R QKQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f Rs.Record<o"nt N 0 Then <o*panyNa*e O <*b<o*panyNa*e.Te/t 6lse (s+)o/LQ8elect co*pany na*e fro* the listQ1 ,b6/cla*ationI <*b<o*panyNa*e.8et?oc"sLI 3A 6/it 8"b 6nd %f KNNN chec! for "serna*e and passord KNNN :"ery to "serD*aster ith "serDna*e and passord KNNN if no record fo"nd chec! arn "ser for enter ,alid "ser na*ne and passord KNNN if record fo"nd store "serDn*ae1 "serDtype in +lobal ,ariable for f"t"re "se. %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penLQselect M fro* "serD*aster here '86RDna*e OKQ R T/t'serNa*e.Te/t R QK and "serDpassord OKQ R T/t5assord R QKQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f Rs.Record<o"nt N 0 Then <hec!>o+in O Tr"e 'serNa*e O %%fL%sN"llLRsLQ'86RDna*eQI.$al"eI O Tr"e1 QN#Q1 RsLQ'86RDna*eQI.$al"eI 'serType O %%fL%sN"llLRsLQ"serDtypeQI.$al"eI O Tr"e1 QN#Q1 RsLQ"serDtypeQI.$al"eI 'nloadL(eI 6lse (s+)o/LQ%n,alid 'ser Na*e and 5assord ... Q1 ,b6/cla*ation1 Q>o+in 6rror QI T/t5assord.Te/t O QQ T/t'serNa*e.8et?oc"sLI 6/it 8"b 6nd %f 6nd 8"b 5ri,ate 8"b <o**and2D<lic!LI KNNN close the application 6nd ?r*>o+in O Nothin+ 6nd 8"b 5ri,ate 8"b ?or*D>oadLI KNNN open the +lobal connection %f <n.8tate O 1 Then <n.<loseLI ;pen<onLI KNNN center the for* (e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2 KNNN fill the co*bo bo/ ith all co*panyDna*e fro* co*pany *aster %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penLQselect M fro* co*panyD*aster Q1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI <*b<o*panyNa*e.<learLI %f Rs.Record<o"nt N 0 Then 39 .hile Rs.6;? O ?alse <*b<o*panyNa*e.#dd%te*LRsLQco*panyDna*eQII Rs.(o,eNe/tLI 6nd .hile 6nd %f %f Rs.8tate O ad8tate;pen Then Rs.<loseLI 6nd 8"b 5ri,ate 8"b ?or*D7"ery'nloadL)y$al <ancel #s %nte+er1 )y$al 'nload(ode #s %nte+erI KNNN release all the object ,ariable "sed by for* ?r*>o+in O Nothin+ 6nd 8"b @.3 ?r*(ain LBi,e "ser access to different *od"leI KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K (ain 8creen K 'sed Table : N# K(od"le to sho diffrent options KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ;ption 6/plicit 5ri,ate 8"b (D%?or*D#cti,ateLI KNNN sho the lo+in for* as *od"las for first ti*e KNNN hen *ain for* acti,ate first ti*e %f <hec!>o+in O ?alse Then ?r*>o+in.8hoL1I 6nd %f >bl<o*panyNa*e O <o*panyNa*e 6nd 8"b 5ri,ate 8"b (D%?or*DResiFeLI KNNN reposition the pict"rebo/ as per for* siFe KNNN to display the selected co*pany na*e 5ict"re1.>eft O (e..idth - 5ict"re1..idth - 400 6nd 8"b 5ri,ate 8"b Toolbar1D)"tton<lic!L)y$al )"tton #s (8<o*ctl>ib.)"ttonI KNNN load appropriate for* as per "ser clic! on toolbar b"ttons 40 KNNN in desi+n ti*e e set !ey ,al"e for each toolbar b"tton %f )"tton.&ey O Qe/itQ Then 6nd 6lse%f )"tton.&ey O Qprod"ctD*asterQ Then ?r*5rod"cts.8hoL1I 6lse%f )"tton.&ey O QbillQ Then ?r*)ill.8hoL1I 6lse%f )"tton.&ey O Q"tilityQ Then ?r*'tility.8hoL1I 6lse%f )"tton.&ey O QreportsQ Then ?r*Reports.8hoL1I 6lse%f )"tton.&ey O Qco*panyQ Then ?r*<han+e<o*pany.8hoL1I 6nd %f 6nd 8"b @.4 ?r*5rod"cts L(aintain 5rod"ct *asterI KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K (aintain 5rod"ct (aster K 'sed Table : prod"ctD*aster K K(od"le to allo "ser to select prod"ct Kadd3*odify prod"ct details KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ;ption 6/plicit KNN decalre for* le,el ,alriable Di* Rs #s Ne #D;D).Recordset Di* #dd6dit #s 8trin+ 5ri,ate 8"b <*b5rod"ctTypeD<han+eLI KNNN as per prod"ct type fill the prod"ct list Di* 7r8tr #s 8trin+ %f <*b5rod"ctType.Te/t O Q#>>Q Then 7r8tr O Qselect prodDs"bDtype fro* prod"ctD*aster order by prodDs"bDtypeQ 6lse 41 7r8tr O Qselect prodDs"bDtype fro* prod"ctD*aster here prodDtypeOKQ R <*b5rod"ctType.Te/t R QK order by prodDs"bDtypeQ 6nd %f >st5rod"ct8"bType.<learLI %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penL7r8tr1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI .hile Rs.6;? O ?alse >st5rod"ct8"bType.#dd%te*LRsLQprodDs"bDtypeQII Rs.(o,eNe/tLI 6nd .hile KNNN select the first prod"ct %f >st5rod"ct8"bType.>ist<o"nt N 0 Then >st5rod"ct8"bType.>ist%nde/ O 0 DisplayRecordLI 6nd %f 6nd 8"b 5ri,ate 8"b <*b5rod"ctTypeD<lic!LI KNNN call chan+e e,ent <*b5rod"ctTypeD<han+eLI 6nd 8"b 5ri,ate 8"b <*d<ancelD<lic!LI KNNN cancel "pdate 6DL?alse1 Tr"eI DisplayRecordLI 6nd 8"b 5ri,ate 8"b <*d<loseD<lic!LI KNNN close the fron 'nloadL(eI 6nd 8"b 5ri,ate 8"b <*d6ditD<lic!LI KNNN set fla+ to edit 6DLTr"e1 ?alseI #dd6dit O Q6D%TQ 6nd 8"b 5ri,ate 8"b <*dNeD<lic!LI KNNN set the fla+ to add KNNN claer te/t bo/ >bl8r.<aption O 0 <*bType.Te/t O QQ 42 T/tNa*e.Te/t O QQ T/tRate.Te/t O 0 <h!#cti,e.$al"e O 1 6DLTr"e1 ?alseI #dd6dit O Q#DDQ 6nd 8"b 5ri,ate 8"b <*d8a,eD<lic!LI KNNN ,alidate the entry %f Tri*L<*bType.Te/tI O QQ Then (s+)o/LQ8elect or 6nter prod"ct type.Q1 ,b6/cla*ationI <*bType.8et?oc"sLI 6/it 8"b 6nd %f %f Tri*LT/tNa*e.Te/tI O QQ Then (s+)o/LQ6nter prod"ct na*e.Q1 ,b6/cla*ationI T/tNa*e.8et?oc"sLI 6/it 8"b 6nd %f %f %n8trL11 T/tNa*e.Te/t1 <hrL34II N 0 Then (s+)o/LQDonKt "se do"ble :o"te in prod"ct na*e.Q1 ,b6/cla*ationI T/tNa*e.8et?oc"sLI 6/it 8"b 6nd %f %f %sN"*ericLT/tRate.Te/tI O ?alse Then (s+)o/LQ6nter rate1 n"*eric onlyQ1 ,b6/cla*ationI T/tRate.8et?oc"sLI 6/it 8"b 6nd %f KNNN chec! the fla+ fro* add3edit %f #dd6dit O Q#DDQ Then %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penLQselect *a/LsnoI P1 fro* prod"ctD*aster Q1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI Di* sno #s %nte+er sno O RsL0I %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penLQselect M fro* prod"ctD*aster here 1O2Q1 <n1 ad;penDyna*ic1 ad>oc!;pti*isticI Rs.#ddNeLI RsLQsnoQI O sno RsLQprodDtypeQI O <*bType.Te/t RsLQprodDs"bDtypeQI O T/tNa*e.Te/t RsLQrateQI O $alLT/tRate.Te/tI RsLQisDacti,eQI O $alL<h!#cti,e.$al"eI 43 Rs.'pdateLI Rs.<loseLI 6lse %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penLQselect M fro* prod"ctD*aster here snoOQ R $alL>bl8r.<aptionI1 <n1 ad;penDyna*ic1 ad>oc!;pti*isticI RsLQprodDtypeQI O <*bType.Te/t RsLQprodDs"bDtypeQI O T/tNa*e.Te/t RsLQrateQI O $alLT/tRate.Te/tI RsLQisDacti,eQI O $alL<h!#cti,e.$al"eI Rs.'pdateLI Rs.<loseLI 6nd %f KNNN dispaly and "pdate lists Di* ;ld5Type #s 8trin+ ;ld5Type O <*bType.Te/t Di* ;ld5Na*e #s 8trin+ ;ld5Na*e O T/tNa*e.Te/t <*bType.<learLI <*b5rod"ctType.<learLI <*b5rod"ctType.#dd%te*LQ#>>QI <*b5rod"ctType.Te/t O ;ld5Type %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penLQselect distinct prodDtype fro* prod"ctD*aster order by prodDtypeQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI .hile Rs.6;? O ?alse <*b5rod"ctType.#dd%te*LRsLQprodDtypeQII <*bType.#dd%te*LRsLQprodDtypeQII Rs.(o,eNe/tLI 6nd .hile KNNN fill the prod"ct list a+ain ith "pdated3inserted records Di* 7r8tr #s 8trin+ %f <*b5rod"ctType.Te/t O Q#>>Q Then 7r8tr O Qselect prodDs"bDtype fro* prod"ctD*aster order by prodDs"bDtypeQ 6lse 7r8tr O Qselect prodDs"bDtype fro* prod"ctD*aster here prodDtypeOKQ R <*b5rod"ctType.Te/t R QK order by prodDs"bDtypeQ 6nd %f >st5rod"ct8"bType.<learLI %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penL7r8tr1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI .hile Rs.6;? O ?alse >st5rod"ct8"bType.#dd%te*LRsLQprodDs"bDtypeQII 44 Rs.(o,eNe/tLI 6nd .hile KNNN sho the first record %f >st5rod"ct8"bType.>ist<o"nt N 0 Then >st5rod"ct8"bType.Te/t O ;ld5Na*e DisplayRecordLI 6nd %f KNNN enable3diable b"tton 6DL?alse1 Tr"eI 6nd 8"b 5ri,ate 8"b ?or*D>oadLI KNNN center the for* (e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2 KNNN reset connection ;pen<onLI 6DL?alse1 Tr"eI <*bType.<learLI KNNN fill the prod"ct type <*b5rod"ctType.<learLI <*b5rod"ctType.#dd%te*LQ#>>QI <*b5rod"ctType.Te/t O Q#>>Q %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penLQselect distinct prodDtype fro* prod"ctD*aster order by prodDtypeQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI .hile Rs.6;? O ?alse <*b5rod"ctType.#dd%te*LRsLQprodDtypeQII <*bType.#dd%te*LRsLQprodDtypeQII Rs.(o,eNe/tLI 6nd .hile KNNN fill the prod"ct s"b type Di* 7r8tr #s 8trin+ %f <*b5rod"ctType.Te/t O Q#>>Q Then 7r8tr O Qselect prodDs"bDtype fro* prod"ctD*aster order by prodDs"bDtypeQ 6lse 7r8tr O Qselect prodDs"bDtype fro* prod"ctD*aster here prodDtypeOKQ R <*b5rod"ctType.Te/t R QK order by prodDs"bDtypeQ 6nd %f >st5rod"ct8"bType.<learLI %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penL7r8tr1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI 44 .hile Rs.6;? O ?alse >st5rod"ct8"bType.#dd%te*LRsLQprodDs"bDtypeQII Rs.(o,eNe/tLI 6nd .hile KNNN select the first record %f >st5rod"ct8"bType.>ist<o"nt N 0 Then >st5rod"ct8"bType.>ist%nde/ O 0 DisplayRecordLI 6nd %f 6nd 8"b 5ri,ate 8"b DisplayRecordLI KNNN display record as per selected prod"ct na*e %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penLQselect M fro* prod"ctD*aster here prodDs"bDtypeOQ R <hrL34I R >st5rod"ct8"bType.Te/t R <hrL34I1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f Rs.Record<o"nt N 0 Then >bl8r.<aption O RsLQsnoQI <*bType.Te/t O RsLQprodDtypeQI T/tNa*e.Te/t O RsLQprodDs"bDtypeQI T/tRate.Te/t O RsLQrateQI <h!#cti,e.$al"e O RsLQisDacti,eQI 6lse >bl8r.<aption O QQ <*bType.Te/t O QQ T/tNa*e.Te/t O QQ T/tRate.Te/t O QQ <h!#cti,e.$al"e O 1 6nd %f 6nd 8"b 5ri,ate 8"b 6DL)y$al T1 #s )oolean1 )y$al T2 #s )ooleanI KNNN enable3disable b"tton <*d8a,e.$isible O T1 <*d<ancel.$isible O T1 <*d?ind.$isible O T2 <*dNe.$isible O T2 <*d6dit.$isible O T2 <*d<lose.$isible O T2 <*bType.>oc!ed O T2 T/tNa*e.>oc!ed O T2 T/tRate.>oc!ed O T2 <h!#cti,e.6nabled O T1 6nd 8"b 5ri,ate 8"b >st5rod"ct8"bTypeD<lic!LI 4= DisplayRecordLI 6nd 8"b 5ri,ate 8"b T/tNa*eD&eyDonL)y$al &ey<ode #s %nte+er1 )y$al 8hift #s %nte+erI KNNN 86>6<T ?R;( >%8T %f <*b5rod"ctType.Te/t SN Q#>>Q Then <*b5rod"ctType.Te/t O Q#>>Q 6nd %f %f &ey<ode O ,b&eyDon Then %f >st5rod"ct8"bType.>ist%nde/ S >st5rod"ct8"bType.>ist<o"nt - 1 Then >st5rod"ct8"bType.>ist%nde/ O >st5rod"ct8"bType.>ist%nde/ P 1 6nd %f 6nd %f %f &ey<ode O ,b&ey'p Then %f >st5rod"ct8"bType.>ist%nde/ N 0 The >st5rod"ct8"bType.>ist%nde/ O >st5rod"ct8"bType.>ist%nde/ - 1 6nd %f 6nd %f 6nd 8"b @.4 ?r*bill L<reate and *odify bill and print the sa,ed billI KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K 4@ KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K Ne3(odify )ill (od"le K 'sed Table : )ill K : )ill Details K : 5rod"ct K : <o*pany K(od"le to *a!e ne or *odify bill1 K5rint bill after sa,e the record Kalso e *a!e editable fle/+rid ith Kte/t bo/ and co*bobo/ KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ;ption 6/plicit KNNN declare for* +lobal ,ariable Di* #dd6dit #s 8trin+ Di* Rs #s Ne #D;D).Recordset Di* sno #s %nte+er Di* 8a,e5rint #s 8trin+ 5ri,ate 8"b <*d<loseD<lic!LI KNNN chec! the caption of the b"tton KNNN close the for* or cancel the sa,e %f <*d<lose.<aption O QR<loseQ Then 'nloadL(eI 6lse D6LTr"e1 ?alseI 6nd %f 6nd 8"b 5ri,ate 8"b <*dDeleteD<lic!LI KNNN confir* for deletion of bill KNNN if "ser select 968 delete the record fro* bill and billDdetails KNNN clear the seleted data fro* the screen for deleted bill %f (s+)o/LQRecord ill delete per*antley JQ1 ,b9esNo P ,b<riticalI O ,b9es Then <n.6/ec"teLQdelete fro* billDdetails here billDsno OQ R snoI <n.6/ec"teLQdelete fro* bill here sno OQ R snoI #dd6dit O QQ <*dBet)ill.<aption O QR?indQ 4A <*dDelete.6nabled O ?alse <all <lear?ieldLI %f T/t%n,oiceNo.6nabled O Tr"e Then T/t%n,oiceNo.8et?oc"sLI 6nd %f 6nd %f 6nd 8"b 5ri,ate 8"b <*dBet)illD<lic!LI KNNN find the bill details KNNN find the bill by in,oice no #dd6dit O QQ %f <*dBet)ill.<aption O QRBet )illQ Then T/t%n,oiceNo.6nabled O Tr"e <all <lear?ieldLI T/t%n,oiceNo.)ac!<olor O ,b9ello T/t%n,oiceNo.8et?oc"sLI <*dBet)ill.<aption O QR?indQ 6lse Di* R81 #s Ne #D;D).Recordset R81.;penLQselect M fro* bill here in,oiceDno OQ R $alLT/t%n,oiceNo.Te/tI R Q and cna*eOKQ R <o*panyNa*e R QKQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f R81.Record<o"nt N 0 Then KNNN sho details fro* bill table DtDate.$al"e O R81LQin,oiceDdateQI T/t>ocation.Te/t O R81LQlocationQI T/t<halanNo.Te/t O R81LQchalanDnoQI T/t<o*pany.Te/t O R81LQc"sto*erDna*eQI T/t#ddress1.Te/t O R81LQc"sto*erDaddress1QI T/t#ddress2.Te/t O R81LQc"sto*erDaddress2QI >blTotal#*o"nt O R81LQtotalDa*tQI >blRs.ord.<aption O R81LQa*tDordQI T/t8erial.Te/t O R81LQserialQI KNNN sho data fro* billDdetails Di* Rs2 #s Ne #D;D).Recordset %f Rs2.8tate O ad8tate;pen Then Rs2.<loseLI Di* Rs3 #s Ne #D;D).Recordset Rs2.;penLQselect M fro* billDdetails here billDsnoOQ R R81LQsnoQI R Q order by sno Q1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f Rs2.Record<o"nt N 0 Then Di* i #s %nte+er Rs2.(o,e?irstLI 49 ?or i O 0 To Rs2.Record<o"nt - 1 %f Rs3.8tate O ad8tate;pen Then Rs3.<loseLI Rs3.;penLQselect M fro* prod"ctD*aster here sno OQ R Rs2LQprodDsnoQI1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f Rs3.Record<o"nt N 0 Then (f1.Te/t(atri/Li P 11 1I O Rs3LQprodDs"bDtypeQI 6nd %f %f Rs3.8tate O ad8tate;pen Then Rs3.<loseLI (f1.Te/t(atri/Li P 11 2I O Rs2LQ:tyQI (f1.Te/t(atri/Li P 11 3I O Rs2LQrateQI (f1.Te/t(atri/Li P 11 4I O Rs2LQa*tQI Rs2.(o,eNe/tLI Ne/t 6nd %f %f Rs2.8tate O ad8tate;pen Then Rs2.<loseLI <*dBet)ill.<aption O QRBet )illQ <*dDelete.6nabled O Tr"e c*b,al.$isible O ?alse <*d5rint.6nabled O Tr"e <*d8a,e.6nabled O Tr"e KNNN loca! the b"ttons (f1.6nabled O Tr"e c*b,al.6nabled O Tr"e TGT$#>.6nabled O Tr"e T/t<o*pany.>oc!ed O ?alse T/t#ddress1.>oc!ed O ?alse T/t#ddress2.>oc!ed O ?alse DtDate.6nabled O Tr"e T/t>ocation.>oc!ed O ?alse T/t<halanNo.>oc!ed O ?alse 6lse (s+)o/LQNo 5re,io"s Details fo"nd for in,oice...Q R T/t%n,oiceNo.Te/t1 ,b6/cla*ationI <*dBet)ill.<aption O QR?indQ T/t%n,oiceNo.6nabled O Tr"e T/t%n,oiceNo.8et?oc"sLI <*dDelete.6nabled O ?alse <*d5rint.6nabled O ?alse <*d8a,e.6nabled O ?alse (f1.6nabled O ?alse c*b,al.6nabled O ?alse TGT$#>.6nabled O ?alse T/t<o*pany.>oc!ed O Tr"e 40 T/t#ddress1.>oc!ed O Tr"e T/t#ddress2.>oc!ed O Tr"e DtDate.6nabled O ?alse T/t>ocation.>oc!ed O Tr"e T/t<halanNo.>oc!ed O Tr"e 6nd %f %f R81.8tate O ad8tate;pen Then R81.<loseLI 6nd %f 6nd 8"b 5ri,ate 8"b <*dNeD<lic!LI KNNN claer the screen for enterin+ data for ne bill KNNN enable3disable b"ttons D6L?alse1 Tr"eI #dd6dit O Q#DDQ <all <lear?ieldLI KNNN +et the ne syste* id fro* bill %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penLQselect *a/LsnoI fro* bill Q1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f Rs.Record<o"nt N 0 Then sno O %%fL%sN"llLRsL0II O Tr"e1 01 RsL0II P 1 6nd %f %f Rs.8tate O ad8tate;pen Then Rs.<loseLI T/t<o*pany.8et?oc"sLI 6nd 8"b 5ri,ate 8"b <*d5rintD<lic!LI KN;T6 : it is not the ri+ht sol"tion to call crystal report by te*p "sin+ te*p table Kso*e ti*e it is a +ood practice for co*plecated databse relation table KThis *ay not r"n properly in *"lti "ser en,iron*ent K)etter approch is passin+ ,al"e by 8election?or*"la in crystal report Kb"t anyay it is a or!in+ sol"tion KNNN find the bill sno fro* seleted in,oice no KNNN if record fo"nd KNNN delete te*p bill na dbillDdetails KNNN insert fro* bill1billDdetails to te*pDbill1 tee*pDbillDdetails Di* R81 #s Ne #D;D).Recordset %f R81.8tate O 1 Then R81.<loseLI R81.;penLQselect sno fro* bill here in,oiceDnoOQ R $alLT/t%n,oiceNo.Te/tI R Q and cna*e OKQ R <o*panyNa*e R QKQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f R81.Record<o"nt N 0 Then 41 <n.6/ec"teLQdelete fro* te*pDbillDdetailsQI <n.6/ec"teLQdelete fro* te*pDbillQI <n.6/ec"teLQinsert into te*pDbill select M fro* bill here snoOQ R R81LQsnoQII <n.6/ec"teLQinsert into te*pDbillDdetails select M fro* billDdetails here billDsnoOQ R R81LQsnoQII <all ;pen<onLI KNNN call crystal report <r1..indo8tate O crpt(a/i*iFed <r1.Report?ileNa*e O #pp.5ath R QTreportsTbill.rptQ <r1.Data?ilesL0I O #pp.5ath R QTdata.*dbQ <r1.#ction O 1 6lse (s+)o/LQNo )ill fo"nd select3enter in,oice no for printQ1 ,b6/cla*ationI 6/it 8"b 6nd %f 6nd 8"b 5ri,ate 8"b <*d8a,eD<lic!LI KNNN ,alidation KNNN chec! the re:"ired field %f Tri*LT/t<o*pany.Te/tI O QQ Then (s+)o/LQ6nter <o*pany Na*e...Q1 ,b6/cla*ationI T/t<o*pany.8et?oc"sLI 6/it 8"b 6nd %f %f %sN"*ericLT/t%n,oiceNo.Te/tI O ?alse Then (s+)o/LQ6nter only N"*eric %n,oice No...Q1 ,b6/cla*ationI T/t%n,oiceNo.8et?oc"sLI 6/it 8"b 6nd %f %f Tri*LT/t>ocation.Te/tI O QQ Then (s+)o/LQ6nter >ocation...Q1 ,b6/cla*ationI T/t>ocation.8et?oc"sLI 6/it 8"b 6nd %f %f Tri*LT/t<halanNo.Te/tI O QQ Then (s+)o/LQ6nter <halan No...Q1 ,b6/cla*ationI T/t<halanNo.8et?oc"sLI 6/it 8"b 42 6nd %f %f %sN"*ericLT/t<halanNo.Te/tI O ?alse Then (s+)o/LQ6nter only N"*eric <halan No...Q1 ,b6/cla*ationI T/t<halanNo.8et?oc"sLI 6/it 8"b 6nd %f KNNN reset the transaction <all ;pen<onLI KNNN create transaction for insert bill and bil details <n.)e+inTransLI Di* R81 #s Ne #D;D).Recordset KNNN chec! heather e need to insert or edit the record KNNN if it is edit1 then delete the old bill and insert ne record %f #dd6dit SN Q#DDQ Then %f R81.8tate O ad8tate;pen Then R81.<loseLI R81.;penLQselect M fro* bill here in,oiceDno OQ R $alLT/t%n,oiceNo.Te/tI R Q and cna*eOKQ R <o*panyNa*e R QKQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f R81.Record<o"nt N 0 Then sno O R81LQsnoQI 6nd %f %f R81.8tate O ad8tate;pen Then R81.<loseLI <n.6/ec"teLQdelete fro* billDdetails here billDsno OQ R snoI <n.6/ec"teLQdelete fro* bill here sno OQ R snoI #dd6dit O QQ 6nd %f KNNN chec! for prod"ct *aster KNNN chec! the +rid KNNN heather there is a prod"ct or not KNNN heater they enter any :"antity or not KNNN heatehr there is any price or not KNNN if any thin+ +oes ron+ sho *essa+e Di* cc #s %nte+er Di* i #s %nte+er ?or i O 1 To (f1.Ros - 1 Di* <h #s )oolean <h O ?alse %f Tri*L(f1.Te/t(atri/Li1 1II O QQ Then <h O Tr"e 6nd %f %f R81.8tate O ad8tate;pen Then R81.<loseLI R81.;penLQselect sno fro* prod"ctD*aster here prodDs"bDtype OQ R <hrL34I R (f1.Te/t(atri/Li1 1I R <hrL34I1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI 43 %f R81.Record<o"nt SO 0 Then <h O Tr"e 6nd %f %f R81.8tate O ad8tate;pen Then R81.<loseLI %f $alL(f1.Te/t(atri/Li1 2II O 0 Then <h O Tr"e 6nd %f %f $alL(f1.Te/t(atri/Li1 3II O 0 Then <h O Tr"e 6nd %f %f $alL(f1.Te/t(atri/Li1 4II O 0 Then <h O Tr"e 6nd %f %f <h O ?alse Then cc O cc P 1 6nd %f Ne/t %f cc O 0 Then (s+)o/LQNo )ill details fo"nd for sa,eQ1 ,b6/cla*ationI 6/it 8"b 6nd %f KNNN chec! for d"plicate in,oice no %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penLQselect M fro* bill here in,oiceDnoOQ R $alLT/t%n,oiceNo.Te/tI1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f Rs.Record<o"nt N 0 Then (s+)o/LQ%n,alid %n,oice No cannot sa,e..Q1 ,b6/cla*ationI T/t%n,oiceNo.8et?oc"sLI 6/it 8"b 6nd %f %f Rs.8tate O ad8tate;pen Then Rs.<loseLI KNNN sa,e record in bill table R81.;penLQselect M fro* bill here 1O2Q1 <n1 ad;penDyna*ic1 ad>oc!;pti*isticI R81.#ddNeLI R81LQsnoQI O sno R81LQin,oiceDnoQI O $alLT/t%n,oiceNo.Te/tI R81LQcna*eQI O <o*panyNa*e R81LQin,oiceDdateQI O ?or*atLDtDate.$al"e1 Qdd-***-yyQI R81LQlocationQI O Tri*LT/t>ocation.Te/tI R81LQchalanDnoQI O $alLT/t<halanNo.Te/tI R81LQc"sto*erDna*eQI O Tri*LT/t<o*pany.Te/tI R81LQc"sto*erDaddress1QI O Tri*LT/t#ddress1.Te/tI R81LQc"sto*erDaddress2QI O Tri*LT/t#ddress2.Te/tI 44 R81LQtotalDa*tQI O $alL>blTotal#*o"nt.<aptionI R81LQdisco"ntQI O 0 R81LQa*tDordQI O >blRs.ord R81LQpaidDtypeQI O QN#Q R81LQche:"eDnoQI O QN#Q R81LQentryDdateQI O No R81LQserialQI O T/t8erial.Te/t R81.'pdateLI %f R81.8tate O 1 Then R81.<loseLI KNNN ,aildate each ro before sa,e in details Di* >ast8no #s %nte+er Di* 5rod8no #s %nte+er Di* Rs2 #s Ne #D;D).Recordset %f Rs2.8tate O 1 Then Rs2.<loseLI Rs2.;penLQselect *a/LsnoI fro* billDdetailsQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f Rs2.Record<o"nt N 0 Then >ast8no O %%fL%sN"llLRs2L0II O Tr"e1 01 Rs2L0II P 1 6nd %f ?or i O 1 To (f1.Ros - 1 <h O ?alse %f Tri*L(f1.Te/t(atri/Li1 1II O QQ Then <h O Tr"e 6nd %f %f R81.8tate O ad8tate;pen Then R81.<loseLI R81.;penLQselect sno fro* prod"ctD*aster here prodDs"bDtype OQ R <hrL34I R (f1.Te/t(atri/Li1 1I R <hrL34I1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f R81.Record<o"nt N 0 Then 5rod8no O R81L0I 6lse <h O Tr"e 6nd %f %f R81.8tate O ad8tate;pen Then R81.<loseLI %f $alL(f1.Te/t(atri/Li1 2II O 0 Then <h O Tr"e 6nd %f %f $alL(f1.Te/t(atri/Li1 3II O 0 Then <h O Tr"e 6nd %f %f $alL(f1.Te/t(atri/Li1 4II O 0 Then <h O Tr"e 6nd %f %f <h O ?alse Then 44 KNNN insert in bill details for each ,alidated +rid ro %f Rs2.8tate O 1 Then Rs2.<loseLI Rs2.;penLQselect M fro* billDdetails here 1O2Q1 <n1 ad;penDyna*ic1 ad>oc!;pti*isticI Rs2.#ddNeLI Rs2LQsnoQI O >ast8no Rs2LQbillDsnoQI O sno Rs2LQprodDsnoQI O 5rod8no Rs2LQ:tyQI O $alL(f1.Te/t(atri/Li1 2II Rs2LQrateQI O $alL(f1.Te/t(atri/Li1 3II Rs2LQa*tQI O $alL(f1.Te/t(atri/Li1 4II Rs2.'pdateLI %f Rs2.8tate O 1 Then Rs2.<loseLI >ast8no O >ast8no P 1 6nd %f Ne/t KNNN co**it the transaction <n.<o**itTransLI (s+)o/LQ)ill 8a,edQ1 ,b%nfor*ationI %f <h!5rint.$al"e O 1 Then KNNN call the report for print of the sa,ed bill <*d5rintD<lic!LI 6nd %f KNNN prepare for ne bill entry #dd6dit O QQ <all <lear?ieldLI <all <*dNeD<lic!LI 6nd 8"b 5ri,ate 8"b DtDateD&eyDonL)y$al &ey<ode #s %nte+er1 )y$al 8hift #s %nte+erI KNNN *o,e the c"rsor to ne field %f &ey<ode O 13 Then 8end&eysLQUtabVQI 6nd %f 6nd 8"b 5ri,ate 8"b DtDateD&ey5ressL)y$al &ey#scii #s %nte+erI KNNN *o,e the c"rsor to ne field %f &ey#scii O 13 Then 8end&eysLQUtabVQI 6nd %f 6nd 8"b 4= 5ri,ate 8"b ?or*D>oadLI KNNN cnter the for* (e.>eft O L8creen..idth - (e..idthI 3 2 (e.Top O L8creen.Cei+ht - (e.Cei+htI 3 2 KNNN reset connection <all ;pen<onLI >bl<o*panyNa*e.<aption O <o*panyNa*e DtDate.$al"e O No KNNN clear the for* for ne bill entry <all <lear?ieldLI KNNN enable3diable b"ttons D6LTr"e1 ?alseI KNNN load last stat"s for bill print after sa,ed Di* <h!$ #s %nte+er <h!$ O $alLBet8ettin+LQbillsyste*Q1 QprintQ1 Qchec!printQ1 Q1QII <h!5rint.$al"e O <h!$ KNNN load clent na*e fro* the table Rs.;penLQselect clientDna*e fro* clientD*aster here clientDna*e is not n"ll order by clientDna*eQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI .hile Not Rs.6;? T/t<o*pany.#dd%te*LRsL0II Rs.(o,eNe/tLI 6nd .hile 5ict"re1.$isible O Tr"e 6nd 8"b 5ri,ate 8"b D6L)y$al T1 #s )oolean1 )y$al T2 #s )ooleanI KNNN enable3disable b"ttons <*dBet)ill.6nabled O T1 <*dNe.6nabled O T1 <*d8a,e.6nabled O T2 <*d5rint.6nabled O T2 TGT$#>.6nabled O T2 c*b,al.6nabled O T2 (f1.6nabled O T2 %f T1 O Tr"e Then <*d<lose.<aption O QR<loseQ 6lse 4@ <*d<lose.<aption O QR<ancelQ 6nd %f T/t<o*pany.>oc!ed O T1 T/t#ddress1.>oc!ed O T1 T/t#ddress2.>oc!ed O T1 DtDate.6nabled O T2 T/t>ocation.>oc!ed O T1 T/t<halanNo.>oc!ed O T1 T/t%n,oiceNo.)ac!<olor O ,b.hite <*dDelete.6nabled O ?alse 6nd 8"b 5ri,ate 8"b <lear?ieldLI KNNN clear the fields T/t<o*pany.Te/t O QQ T/t#ddress1.Te/t O QQ T/t#ddress2.Te/t O QQ T/t%n,oiceNo.Te/t O QQ T/t>ocation.Te/t O QQ >blRs.ord.<aption O QQ >blTotal#*o"nt.<aption O QQ T/t<halanNo.Te/t O QQ T/t8erial.Te/t O QQ KNNN for +rid edit <all setDheadin+LI <all *o,eDte/tbo/LI 6nd 8"b 5ri,ate 8"b ?or*D7"ery'nloadL)y$al <ancel #s %nte+er1 )y$al 'nload(ode #s %nte+erI KNNN sa,e last stat"s for bill print after sa,ed in the re+istry %f <h!5rint.$al"e O 1 Then 8a,e8ettin+LQbillsyste*Q1 QprintQ1 Qchec!printQ1 Q1QI 6lse 8a,e8ettin+LQbillsyste*Q1 QprintQ1 Qchec!printQ1 Q0QI 6nd %f 6nd 8"b 5ri,ate 8"b T/t#ddress1D&ey5ressL)y$al &ey#scii #s %nte+erI KNNN *o,e the foc"s to ne/t control %f &ey#scii O 13 Then 8end&eysLQUtabVQI 4A 6nd %f 6nd 8"b 5ri,ate 8"b T/t#ddress2D&ey5ressL)y$al &ey#scii #s %nte+erI KNNN *o,e the foc"s to ne/t control %f &ey#scii O 13 Then 8end&eysLQUtabVQI 6nd %f 6nd 8"b 5ri,ate 8"b T/t<halanNoD&ey5ressL)y$al &ey#scii #s %nte+erI KNNN *o,e the foc"s to ne/t control %f &ey#scii O 13 Then c*b,al.8et?oc"sLI 6nd %f 6nd 8"b 5ri,ate 8"b T/t<o*panyDBot?oc"sLI KNNN *a!e listbo/ as editable te/tbo/ T/t<o*pany.Cei+ht O 1020 5ict"re1.$isible O ?alse 6nd 8"b 5ri,ate 8"b T/t<o*panyD&eyDonL)y$al &ey<ode #s %nte+er1 )y$al 8hift #s %nte+erI KNNN sho the address of the seleted co*pany Di* R81 #s Ne #D;D).Recordset %f R81.8tate O ad8tate;pen Then R81.<loseLI R81.;penLQselect M fro* clientD*aster here clientDna*eOKQ R T/t<o*pany.Te/t R QKQ1 <nI %f R81.Record<o"nt N 0 Then T/t#ddress1.Te/t O %%fL%sN"llLR81LQaddress1QII O Tr"e1 QQ1 R81LQaddress1QII T/t#ddress2.Te/t O %%fL%sN"llLR81LQaddress2QII O Tr"e1 QQ1 R81LQaddress2QII 6lse T/t#ddress1.Te/t O QQ T/t#ddress2.Te/t O QQ 6nd %f %f R81.8tate O ad8tate;pen Then R81.<loseLI 6nd 8"b 5ri,ate 8"b T/t<o*panyD&ey5ressL)y$al &ey#scii #s %nte+erI KNNN *o,e the foc"s to ne/t control %f &ey#scii O 13 Then 8end&eysLQUtabVQI 6nd %f 6nd 8"b 49 5ri,ate 8"b T/t<o*panyD>ost?oc"sLI KNNN *o,e the foc"s to ne/t control T/t<o*pany.Cei+ht O 330 5ict"re1.$isible O Tr"e 6nd 8"b 5ri,ate 8"b T/t%n,oiceNoD&eyDonL)y$al &ey<ode #s %nte+er1 )y$al 8hift #s %nte+erI KNNN call +etbill by enter !ey in in,oice no te/t bo/ %f &ey<ode O 13 #nd <*dBet)ill.<aption O QR?indQ Then <*dBet)illD<lic!LI 6nd %f 6nd 8"b 5ri,ate 8"b T/t>ocationD&ey5ressL)y$al &ey#scii #s %nte+erI KNNN *o,e the foc"s to ne/t control %f &ey#scii O 13 Then 8end&eysLQUtabVQI 6nd %f 6nd 8"b 5ri,ate 8"b T/t8erialD&ey5ressL)y$al &ey#scii #s %nte+erI KNNN *o,e the foc"s to ne/t control %f &ey#scii O 13 Then 8end&eysLQUtabVQI 6nd %f 6nd 8"b 5ri,ate 8"b TGT$#>D&ey5ressL)y$al &ey#scii #s %nte+erI KNNN *a!e fle/ +ird editable *o,e th te/tbo/ in +id cell for enterin+ ,al"e KNNN chec! heathe e press enter !ey KNNN if yes..*o,e the control to ne/t +rod Di* t #s %nte+er %f &ey#scii O 13 #nd (f1.<ol O 2 Then %f %sN"*ericLTGT$#>.Te/tI O ?alse Then &ey#scii O 0 6/it 8"b 6nd %f (f1.Te/t O TGT$#>.Te/t KNNN sho total (f1.Te/t(atri/L(f1.Ro1 (f1.<ol P 2I O $alL(f1.Te/t(atri/L(f1.Ro1 (f1.<ol P 1II M TGT$#>.Te/t Di* / #s %nte+er =0 Di* T1 #s Do"ble ?or / O 1 To (f1.Ros - 1 T1 O T1 P $alL(f1.Te/t(atri/L/1 4II Ne/t >blTotal#*o"nt.<aption O T1 >blRs.ord O Rs.ordL>blTotal#*o"nt.<aptionI %f (f1.<ol SN (f1.<ols - 3 Then (f1.<ol O (f1.<ol P 1 6lse %f (f1.Ro SN (f1.Ros - 2 Then KNNN +o to ne/t ro (f1.Ro O (f1.Ro P 1 6lse KNNN add ne ros (f1.Ros O (f1.Ros P 1 KNNN set the c"rrent ro (f1.Ro O (f1.Ro P 1 KNNN set sr no (f1.Te/t(atri/L(f1.Ro1 0I O $alL(f1.Te/t(atri/L(f1.Ro - 11 0II P 1 6nd %f (f1.<ol O 1 6nd %f *o,eDte/tbo/LI KNNN select the te/t in te/t bo/ TGT$#>.8el8tart O 0 TGT$#>.8el>en+th O >enLTGT$#>.Te/tI 6nd %f 6nd 8"b 5ri,ate 8"b c*b,alD&ey5ressL)y$al &ey#scii #s %nte+erI KNNN *a!e fle/ +ird editable *o,e th co*bobo/ in +id cell for seletin+ ,al"e KNNN chec! heathe e press enter !ey KNNN if yes..*o,e the control to ne/t +rod Di* t #s %nte+er %f &ey#scii O 13 Then KNNN find prod rate Di* R81 #s Ne #D;D).Recordset =1 %f R81.8tate O ad8tate;pen Then R81.<loseLI R81.;penLQselect M fro* prod"ctD*aster here prodDs"bDtypeOQ R <hrL34I R c*b,al.Te/t R <hrL34I1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f R81.Record<o"nt N 0 Then (f1.Te/t(atri/L(f1.Ro1 (f1.<ol P 2I O R81LQrateQI 6lse &ey#scii O 0 6/it 8"b 6nd %f (f1.Te/t O c*b,al.Te/t KNNN sho total (f1.Te/t(atri/L(f1.Ro1 4I O $alL(f1.Te/t(atri/L(f1.Ro1 2II M $alL(f1.Te/t(atri/L(f1.Ro1 3II Di* / #s %nte+er Di* T1 #s Do"ble ?or / O 1 To (f1.Ros - 1 T1 O T1 P $alL(f1.Te/t(atri/L/1 4II Ne/t >blTotal#*o"nt.<aption O T1 >blRs.ord O Rs.ordL>blTotal#*o"nt.<aptionI %f (f1.<ol SN (f1.<ols - 2 Then (f1.<ol O (f1.<ol P 1 6lse %f (f1.Ro SN (f1.Ros - 1 Then (f1.Ro O (f1.Ro P 1 6lse KNNN add ne ros (f1.Ros O (f1.Ros P 1 KNNN set the c"rrent ro (f1.Ro O (f1.Ro P 1 KNNN set sr no (f1.Te/t(atri/L(f1.Ro1 0I O $alL(f1.Te/t(atri/L(f1.Ro - 11 0II P 1 6nd %f (f1.<ol O 1 6nd %f =2 *o,eDte/tbo/LI c*b,al.8el8tart O 0 c*b,al.8el>en+th O >enLc*b,al.Te/tI 6nd %f 6nd 8"b 5"blic 8"b setDheadin+LI KNNN creatin+ for the +rid Di* & #s %nte+er Di* t #s %nte+er (f1.<learLI (f1.RefreshLI (f1.Ros O 30 (f1.<ols O 4 (f1.Ro O 0 (f1.RoCei+htL0I O =00 (f1.<ol O 0 (f1.<ol.idthL0I O 1000 (f1.<ell?ore<olor O ,b)l"e (f1.<ell?ont)old O Tr"e (f1.<ell#li+n*ent O 4 (f1.Te/t O Q8r.Q (f1.<ol O 1 (f1.<ol.idthL1I O 4200 (f1.<ell?ore<olor O ,b)l"e (f1.<ell?ont)old O Tr"e (f1.<ell#li+n*ent O 4 (f1.Te/t O Q5artic"larsQ (f1.<ol O 2 (f1.<ol.idthL2I O 1200 (f1.<ell?ore<olor O ,b)l"e (f1.<ell?ont)old O Tr"e (f1.<ell#li+n*ent O 4 (f1.Te/t O Q7"antityQ (f1.<ol O 3 (f1.<ol.idthL3I O 1200 (f1.<ell?ore<olor O ,b)l"e (f1.<ell?ont)old O Tr"e (f1.<ell#li+n*ent O 4 (f1.Te/t O QRateQ =3 (f1.<ol O 4 (f1.<ol.idthL4I O 1200 (f1.<ell?ore<olor O ,b)l"e (f1.<ell?ont)old O Tr"e (f1.<ell#li+n*ent O 4 (f1.Te/t O Q#*o"ntQ (f1.Te/t(atri/L11 0I O Q1Q (f1.Ro O 0 ?or & O 0 To (f1.<ols - 1 (f1.<ol O & (f1.<ell?ont)old O Tr"e Ne/t (f1.Ro O 1 (f1.<ol O 1 KNNN set serial fro* 1.2... ?or & O 1 To (f1.Ros - 1 (f1.Te/t(atri/L&1 0I O & Ne/t (f1.Ro O 1 6nd 8"b 5ri,ate 8"b (?1D6nter<ellLI KNNN call appropriate control for edit the +rid %f (f1.<ol O 1 Then KNNN ,isble co*bo bo/ for select prod"ct c*b,al.$isible O Tr"e TGT$#>.$isible O ?alse %f c*b,al.$isible O Tr"e Then %f c*b,al.6nabled O Tr"e Then c*b,al.8et?oc"sLI 6nd %f 6nd %f c*b,al.<learLI Di* Rs #s Ne #D;D).Recordset %f Rs.8tate O 1 Then Rs.<loseLI KNNN?ill ite* %f (f1.<ol O 1 Then =4 Rs.;penLQselect prodDs"bDtype fro* prod"ctD*aster order by prodDs"bDtypeQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI .hile Not Rs.6;? c*b,al.#dd%te*LRsL0II Rs.(o,eNe/tLI 6nd .hile 6lse%f (f1.<ol O 3 Then c*b,al.#dd%te*LQQI 6nd %f 6lse KNNN ,isble te/t bo/ for entrin+ :"antity c*b,al.$isible O ?alse TGT$#>.$isible O Tr"e %f TGT$#>.$isible O Tr"e Then %f TGT$#>.6nabled O Tr"e Then TGT$#>.8et?oc"sLI 6nd %f 6nd %f 6nd %f <all *o,eDte/tbo/LI 6nd 8"b 5"blic 8"b *o,eDte/tbo/LI KNNali+n te/tbo/ as per +rid cell and set te/t TGT$#>.>eft O (f1.<ell>eft P (f1.>eft TGT$#>.Top O (f1.<ellTop P (f1.Top TGT$#>..idth O (f1.<ell.idth TGT$#>.Cei+ht O (f1.<ellCei+ht TGT$#>.Te/t O (f1.Te/t KNNali+n co*bo bo/ as per +rid cell and set te/t c*b,al.>eft O (f1.<ell>eft P (f1.>eft c*b,al.Top O (f1.<ellTop P (f1.Top c*b,al..idth O (f1.<ell.idth c*b,al.Te/t O (f1.Te/t 6nd 8"b =4 L5rint o"t of the billI == @.= ?r*Reports L8ho Different Report ;ptionsI KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K 8ho report options K K Kallo "ser to select diffrent report KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ;ption 6/plicit 5ri,ate 8"b <*d)ill8"**aryD<lic!LI KNNN sho bill s"**ary ?r*)ill8"**ary.8hoL1I 6nd 8"b 5ri,ate 8"b <*d<loseD<lic!LI KNNN cloase the for* 'nloadL(eI 6nd 8"b 5ri,ate 8"b <*d6/portD<lic!LI KNNN sho e/port prod"ct for* ?r*6/portData.8hoL1I 6nd 8"b 5ri,ate 8"b <*d5rint)illD<lic!LI =@ KNN sho print bill ?r*5rint)ill.8hoL1I 6nd 8"b 5ri,ate 8"b <*d5rod"ct8"**aryD<lic!LI KNNN sho all prod"ct list report <r1..indo8tate O crpt(a/i*iFed <r1.Report?ileNa*e O #pp.5ath R QTreportsTprod"cts.rptQ <r1.Data?ilesL0I O #pp.5ath R QTdata.*dbQ <r1.#ction O 1 6nd 8"b 5ri,ate 8"b ?or*D>oadLI KNNN center the for* (e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2 6nd 8"b @.@ ?r*5rint)ill L5rint already sa,ed billI KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K 5rint already sa,ed bill K 'sed Table : bill K : billDdetails K(od"le to allo "ser to select the in,oice Kno fro* seleted date ran+e Kand open the bill by its in,oice3bill no KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM =A ;ption 6/plicit Di* Rs #s Ne #D;D).Recordset 5ri,ate 8"b <*d<loseD<lic!LI KNNN close the bill 'nloadL(eI 6nd 8"b 5ri,ate 8"b <*dBet)illD<lic!LI KNNN +et bill no as per selected date ran+e KNNN fill the list bo/ fro* record set >st%n,oiceNo.<learLI %f Rs.8tate O ad8tate;pen Then Rs.<loseLI Rs.;penLQselect in,oiceDno fro* bill here in,oiceDdateNOWQ R ?or*atLDT5ic!er1.$al"e1 Qdd-***-yyQI R QW and in,oiceDdateSOWQ R ?or*atLDT5ic!er2.$al"e1 Qdd-***-yyQI R QW and cna*eOKQ R <o*panyNa*e R QK order by in,oiceDnoQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI .hile Rs.6;? O ?alse >st%n,oiceNo.#dd%te*LRsL0II Rs.(o,eNe/tLI 6nd .hile 6nd 8"b 5ri,ate 8"b <*d8ho)illD<lic!LI KNNN +et teh bill details fro* bill table as per selected bill no %f >st%n,oiceNo.>ist%nde/ S 0 Then 6/it 8"b Di* R81 #s Ne #D;D).Recordset %f R81.8tate O 1 Then R81.<loseLI R81.;penLQselect sno fro* bill here in,oiceDnoOQ R $alL>st%n,oiceNo.Te/tI R Q and cna*e OKQ R <o*panyNa*e R QKQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI %f R81.Record<o"nt N 0 Then KNNN delete old data fro* te*p table and insert fro* bill1 billDdeatils table <n.6/ec"teLQdelete fro* te*pDbillDdetailsQI <n.6/ec"teLQdelete fro* te*pDbillQI <n.6/ec"teLQinsert into te*pDbill select M fro* bill here snoOQ R R81LQsnoQII <n.6/ec"teLQinsert into te*pDbillDdetails select M fro* billDdetails here billDsnoOQ R R81LQsnoQII KNNN reset the connection <all ;pen<onLI KNNN open the crystal report <r1.Data?ilesL0I O #pp.5ath R QTdata.*dbQ <r1..indo8tate O crpt(a/i*iFed <r1.Report?ileNa*e O #pp.5ath R QTreportsTbill.rptQ <r1.#ction O 1 6lse (s+)o/LQNo )ill fo"nd select3enter in,oice no for printQ1 ,b6/cla*ationI =9 6/it 8"b 6nd %f 6nd 8"b 5ri,ate 8"b ?or*D>oadLI KNNN center for* (e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2 >st%n,oiceNo.<learLI KNNN set datepic!er to c"rrent date DT5ic!er1.$al"e O Date DT5ic!er2.$al"e O Date KNNN reset connection <all ;pen<onLI 6nd 8"b @0 @.A 5rod"ct8"**ary Report L8ho 5rod"ct 8"**ary report in crystal reportI @.9 ?r*)ill8"**ary L8ho bill s"**ary for partic"lar date ran+eI KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K 8ho s"**ery of bill K 'sed Table : bill K : billDdetails Ksho bill s"**ary for seleted date Kran+e1 sho report in crystal report K*o,e data into te*p table and sho @1 Kreport fro* te*p table KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ;ption 6/plicit 5ri,ate 8"b <*d<loseD<lic!LI KNNN close the for* 'nloadL(eI 6nd 8"b 5ri,ate 8"b <*dBet)illD<lic!LI KN;T6 : it is not the ri+ht sol"tion to call crystal report by te*p "sin+ te*p table Kso*e ti*e it is a +ood practice for co*plecated databse relation table KThis *ay not r"n properly in *"lti "ser en,iron*ent K)etter approch is passin+ ,al"e by 8election?or*"la in crystal report Kb"t anyay it is a or!in+ sol"tion KNNN find the bill sno fro* seleted in,oice no KNNN if record fo"nd KNNN delete te*p bill na dbillDdetails KNNN insert fro* bill1billDdetails to te*pDbill1 tee*pDbillDdetails <n.6/ec"teLQdelete fro* te*pDbillDdetailsQI <n.6/ec"teLQdelete fro* te*pDbillQI <n.6/ec"teLQinsert into te*pDbill select M fro* bill here in,oiceDdateNOWQ R ?or*atLDT5ic!er1.$al"e1 Qdd-***-yyQI R QW and in,oiceDdateSOWQ R ?or*atLDT5ic!er2.$al"e1 Qdd-***-yyQI R QW and cna*eOKQ R <o*panyNa*e R QK QI <n.6/ec"teLQinsert into te*pDbillDdetails select M fro* billDdetails here billDsno in L select sno fro* bill here in,oiceDdate NOWQ R ?or*atLDT5ic!er1.$al"e1 Qdd-***-yyQI R QW and in,oiceDdateSOWQ R ?or*atLDT5ic!er2.$al"e1 Qdd-***-yyQI R QW and cna*eOKQ R <o*panyNa*e R QKIQI <all ;pen<onLI KNNN open crystal report <r1.Data?ilesL0I O #pp.5ath R QTdata.*dbQ <r1..indo8tate O crpt(a/i*iFed <r1.Report?ileNa*e O #pp.5ath R QTreportsTbills"**ary.rptQ <r1.#ction O 1 6nd 8"b 5ri,ate 8"b ?or*D>oadLI KNNN cnter the for* (e.>eft O L8creen..idth - (e..idthI 3 2 (e.Top O L8creen.Cei+ht - (e.Cei+htI 3 2 KNNN sho the c"rrent date DT5ic!er1.$al"e O Date @2 DT5ic!er2.$al"e O Date 6nd 8"b )ill 8"**ary Report @.10 ?r*6/portData L6/port prod"ct Data in ?le/Brid and (8-6/cel ith for*attin+I KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K 6/port prod"ctD*aster in +rid and *s-e/cel K 'sed Table : prod"ctD*aster Kopen the prod"ctD*aster in +rid Kdisplay record in fle/ +rid ith +rop" by prod"ct type KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM @3 ;ption 6/plicit 5ri,ate 8"b <*d<loseD<lic!LI KNNN close the for* 'nloadL(eI 6nd 8"b 5ri,ate 8"b <*d6/celD<lic!LI KNNNe/port data into *s e/cel fro* +rid ith for*attin+ KNNN chec! the +rid %f (f1.Te/t(atri/L01 0I O QQ Then (s+)o/LQNo Records #,ailable for 6/portin+ ... Q1 ,b6/cla*ationI 6/it 8"b 6nd %f >abel1.<aption O Q.#%T ... Benerate 6/cel Q >abel1.RefreshLI KNNN creatin+ e/cel object ,ariable Di* e/ #s Ne 6/cel.#pplication Di* b #s Ne .or!boo! Di* 6s #s Ne .or!sheet b O e/..or!boo!s.#dd 6s O b..or!sheetsL1I Di* i #s %nte+er Di* j #s %nte+er KNNN set e/cel col"*ns idth as per fle/ +rid col"*ns idth ?or i O 0 To (f1.<ols - 1 (f1.Ro O 1 (f1.<ol O i 6s.<ol"*nsLRet"rn#lphabetLi P 1I R Q:Q R Ret"rn#lphabetLi P 1II.<ol"*n.idth O (f1.<ell.idth 3 110 Ne/t KNNN set data fro* +rid to e/cel ro1 col"*n ise Di* & #s %nte+er ?or i O 0 To (f1.Ros - 1 ?or j O 0 To (f1.<ols - 1 e/.<ellsLi P 11 j P 1I O (f1.Te/t(atri/Li1 jI Ne/t Ne/t Di* R1 #s 8trin+ Di* R2 #s 8trin+ R2 O Ret"rn#lphabetL(f1.<olsI R Q1Q KNNN for*attin+ e/cel Di* / #s Ran+e @4 KNNNhead / O 6s.Ran+eLQ#1:Q R R2I /.?ont.)old O Tr"e /.?ont.<olor%nde/ O 40 /.%nterior.<olor%nde/ O 9 /.%nterior.5attern O /l8olid /.CoriFontal#li+n*ent O /l<enter /.$ertical#li+n*ent O /l)otto* KNNNborder R2 O Ret"rn#lphabetL(f1.<olsI R (f1.Ros - 1 / O 6s.Ran+eLQ#1:Q R R2I .ith /.)ordersL/l6d+e>eftI .>ine8tyle O /l<ontin"o"s ..ei+ht O /lThin .<olor%nde/ O /l#"to*atic 6nd .ith .ith /.)ordersL/l6d+eTopI .>ine8tyle O /l<ontin"o"s ..ei+ht O /lThin .<olor%nde/ O /l#"to*atic 6nd .ith .ith /.)ordersL/l6d+e)otto*I .>ine8tyle O /l<ontin"o"s ..ei+ht O /lThin .<olor%nde/ O /l#"to*atic 6nd .ith .ith /.)ordersL/l6d+eRi+htI .>ine8tyle O /l<ontin"o"s ..ei+ht O /lThin .<olor%nde/ O /l#"to*atic 6nd .ith .ith /.)ordersL/l%nside$erticalI .>ine8tyle O /l<ontin"o"s ..ei+ht O /lThin .<olor%nde/ O /l#"to*atic 6nd .ith .ith /.)ordersL/l%nsideCoriFontalI .>ine8tyle O /l<ontin"o"s ..ei+ht O /lThin .<olor%nde/ O /l#"to*atic 6nd .ith KNNN ?%>> D6T#%>8 / O 6s.Ran+eLQ#2:Q R R2I /.%nterior.<olor%nde/ O 40 @4 KNNT;T#> R2 O Ret"rn#lphabetL(f1.<olsI R (f1.Ros / O 6s.Ran+eLQ#Q R (f1.Ros R Q:Q R R2I /.?ont.)old O Tr"e /.?ont.<olor%nde/ O 9 K 6s.Na*e O QReportQ e/.$isible O Tr"e e/.7"itLI b O Nothin+ 6s O Nothin+ e/ O Nothin+ KNNN process co*plete >abel1.<aption O QReadyQ >abel1.RefreshLI 6nd 8"b 5ri,ate 8"b <*d5rod"ct(asterD<lic!LI KNNN reset the +rid (f1.Ros O 2 (f1.<ols O 3 (f1.<learLI (f1.RefreshLI (f1.Ro O 0 (f1.<ol O 0 (f1.<ol.idthL0I O A00 (f1.Te/t O Q8rQ (f1.<ell#li+n*ent O 4 (f1.<ell?ontNa*e O Q#rialQ (f1.?ont.8iFe O 10 (f1.?ont.)old O Tr"e (f1.<ell?ore<olor O ,b)l"e (f1.<ell)ac!<olor O ,b<yan @= (f1.<ol O 1 (f1.<ol.idthL1I O 2400 (f1.Te/t O Q5rod"ct TypeQ (f1.<ell#li+n*ent O 4 (f1.<ell?ontNa*e O Q#rialQ (f1.?ont.8iFe O 10 (f1.?ont.)old O Tr"e (f1.<ell?ore<olor O ,b)l"e (f1.<ell)ac!<olor O ,b<yan (f1.<ol O 2 (f1.<ol.idthL2I O 4000 (f1.Te/t O Q5rod"ctQ (f1.<ell#li+n*ent O 4 (f1.<ell?ontNa*e O Q#rialQ (f1.?ont.8iFe O 10 (f1.?ont.)old O Tr"e (f1.<ell?ore<olor O ,b)l"e (f1.<ell)ac!<olor O ,b<yan KNNN find distinct prod"ct type fro* prod"ct *aster KNNN loop all prod"ct type Di* R81 #s Ne #D;D).Recordset Di* Rs2 #s Ne #D;D).Recordset R81.;penLQselect distinct prodDtype fro* prod"ctD*asterQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI Di* i #s %nte+er Di* j #s %nte+er ?or i O 0 To R81.Record<o"nt - 1 (e.<aption O i P 1 (f1.Ro O (f1.Ros - 1 (f1.<ol O 0 (f1.Te/t O i P 1 (f1.<ol O 1 (f1.Te/t O R81LQprodDtypeQI KNNN :"ery prod"ct *aster for each prod type fro* o"ter loop %f Rs2.8tate O ad8tate;pen Then Rs2.<loseLI Rs2.;penLQselect prodDs"bDtype fro* prod"ctD*aster here prodDtype OKQ R R81LQprodDtypeQI R QK order by prodDs"bDtypeQ1 <n1 ad;pen8tatic1 ad>oc!Read;nlyI ?or j O 0 To Rs2.Record<o"nt - 1 (f1.Ro O (f1.Ros - 1 (f1.<ol O 2 (f1.Te/t O Rs2L0I @@ (f1.Ros O (f1.Ros P 1 Rs2.(o,eNe/tLI Ne/t R81.(o,eNe/tLI Ne/t 6nd 8"b 5ri,ate 8"b ?or*D>oadLI KNNN cnter the for* (e.>eft O L8creen..idth - (e..idthI (e.Top O L8creen.Cei+ht - (e.Cei+htI 6nd 8"b 6/port prod"ct Data (8-6/cel ith for*attin+ @A @.11 ?r*'tlity LTo #ccess different "tility pro+ra* li!e co*pact1 bac!"p1 chan+e passord etc.I KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K 8ho options for "tilities K K Kallo "ser to select diffrent options KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ;ption 6/plicit 5ri,ate 8"b <*d#dd(odify<lientD<lic!LI ?r*<lient%nfo.8hoL1I 6nd 8"b 5ri,ate 8"b <*d#dd(odify<o*panyD<lic!LI ?r*<o*pany%nfo.8hoL1I 6nd 8"b 5ri,ate 8"b <*d)ac!'pD<lic!LI ?r*)ac!"pDatabase.8hoL1I @9 6nd 8"b 5ri,ate 8"b <*d<han+e5assordD<lic!LI ?r*<han+e5assord.8hoL1I 6nd 8"b 5ri,ate 8"b <*d<loseD<lic!LI 'nloadL(eI 6nd 8"b 5ri,ate 8"b <*dRepairD<lic!LI ?r*<o*pact#ndRepairDatabase.8hoL1I 6nd 8"b 5ri,ate 8"b <o**and1D<lic!LI 6nd 8"b 5ri,ate 8"b <o**and2D<lic!LI 6nd 8"b 5ri,ate 8"b <o**and4D<lic!LI 'nloadL(eI 6nd 8"b 5ri,ate 8"b <*dRestoreD<lic!LI (s+)o/LQ<opy last bac!"p file1 rena*e it to data.*db and then paste it in application folder.Q R ,b<r>f R ,b<r>f R Q<ontact pro+ra* ,endor..it *ay ca"se lost of data1 if bac!"p is not c"rrentQ1 ,b<riticalI 6nd 8"b 5ri,ate 8"b ?or*D>oadLI KNNN center the for* (e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2 KNNN chec! "ser type and sho diffrent options as per "ser ri+hts %f ><aseL'serTypeI SN Qad*inQ Then <*dRepair.6nabled O ?alse <*d)ac!'p.6nabled O ?alse <*d#dd(odify<o*pany.6nabled O ?alse <*dRestore.6nabled O ?alse 6nd %f 6nd 8"b A0 @.12 ?r*<o*pact#ndRepairDatabase LTo shrin! and co*pact *ain database data.*db.I KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K co*apct3shrin! the access database K 'sed Table : N# Kchec! the repairdb.*db file in application path Kif it is already their delete the file K"se D)6NB%N6 <o*pactDatabase f"nction to co*apct the access database Kcreate ne co*pacted te*pdb.*db fro* data.*db. Kdelete old data.*db and rena*e te*pdb.*db to data.*db KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ;ption 6/plicit Di* db6 #s Ne D#;.D)6n+ine 5ri,ate 8"b <o**and1D<lic!LI 'nloadL(eI 6nd 8"b 5ri,ate 8"b <o**and2D<lic!LI KNNN if any connection open close all the connection %f <n.8tate O 1 Then <n.<loseLI Di* / #s 8trin+ KNNN chec! allready file is there or not / O DirL#pp.5ath R QTrepairedD).*dbQI KNNN if file present delete the file %f / SN QQ Then &illL#pp.5ath R QTrepairedD).*dbQI Ti*er1.6nabled O Tr"e A1 KNNN co*pact teh database db6.<o*pactDatabaseL#pp.5ath R QTdata.*dbQ1 #pp.5ath R QTRepairedD)QI KNNN delete old database &illL#pp.5ath R QTdata.*dbQI KNNN rena*e the ne database to old database Na*e #pp.5ath R QTrepairedD).*dbQ #s #pp.5ath R QTdata.*dbQ KNNN open connection <all ;pen<onLI 6nd 8"b 5ri,ate 8"b ?or*D>oadLI KNNN center the for* (e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2 KNNN set the pro+ress bar initial ,al"e 5ro+ress)ar1.(in O 0 5ro+ress)ar1.(a/ O 100 6nd 8"b 5ri,ate 8"b Ti*er1DTi*erLI KNN sho the pro+ress of co*pact process %f 5ro+ress)ar1.$al"e S 100 Then 5ro+ress)ar1.$al"e O 5ro+ress)ar1.$al"e P 10 6lse (s+)o/LQ5rocess <o*plete 8"ccessf"lly ..Q1 ,b%nfor*ationI 5ro+ress)ar1.$al"e O 0 KReset the *in ,al"e Ti*er1.6nabled O ?alse KDisable the Ti*er 6nd %f 6nd 8"b A2 @.13 ?r*)ac!"pDatabase LTo ta!e bac!"p of *ain database data.*db.I KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K )ac!"p the Database Ldata.*dbI K 'sed Table : N# K(od"le to ta!e a copy of data.*db in Kdiffrent location ith ti*estra*p KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ;ption 6/plicit KNNN Declare ?ile 8yste* ,ariable Di* ?s #s Ne ?ile8yste*;bject Di* Ne?ile #s 8trin+ 5ri,ate 8"b <o**and1D<lic!LI KNNN open folder broser dialo+ KNNN select the folder path KNNN store the path in te/t bo/ te/t1 Di* 8 #s 8trin+ 8 O )rose?oldersLh.nd1 Q8elect ?older for <reatin+ )ac!"p file ... Q1 )rose?or6,erythin+1 <8%D>DD68&T;5I %f 8 O QQ Then (s+)o/LQ8elect $alid ?older for <reatin+ D"*p ?ile.Q1 ,b%nfor*ation1 Q<reatin+ D"*pQI <o**and1.8et?oc"sLI 6/it 8"b 6lse %f ?s.?older6/istsL8I O ?alse Then (s+)o/LQ%n,alid ?older18elect $alid ?older. Q1 ,b%nfor*ation1 Q<reatin+ D"*pQI <o**and1.8et?oc"sLI 6/it 8"b A3 6nd %f Te/t1.Te/t O 8 6nd %f 6nd 8"b 5ri,ate 8"b <o**and2D<lic!LI ;n 6rror BoTo *yer1 KNNN chec! the selected folder heather KNNN it is e/ist or not %f ?s.?older6/istsLTe/t1I O ?alse Then (s+)o/LQ%n,alid ?older18elect $alid ?older. Q1 ,b%nfor*ation1 Q<reatin+ D"*pQI <o**and1.8et?oc"sLI 6/it 8"b 6nd %f KNNN sa,e the settin+s in re+istry 8a,e8ettin+LQ)%>>%NBD8;?T.#R6Q1 Q)#<&'5DD#T#)#86Q1 Q)#<&'5D5#TCQ1 Te/t1I KNNN copy the database file in selected folder for bac!"p ?s.<opy?ileL#pp.5ath R QTdata.*dbQ1 Te/t1.Te/t R QTQ R Ne?ile1 ?alseI (s+)o/LQ)ac!"p 5rocess <o*plete.Q1 ,b%nfor*ationI 6/it 8"b *yer1: KNN chec! the folder if the file alreday e/ist arn for o,errite %f 6rr.N"*ber O 4A Then %f (s+)o/LQ?ile #llready e/ist in sa*e na*e 1 do yo" ant to o,errite the e/istin+ file ..Q1 ,b6/cla*ation P ,b9esNo P ,bDefa"lt)"tton1I O ,b9es Then ?s.<opy?ileL#pp.5ath R QTdata.*dbQ1 Te/t1.Te/t R QTQ R Ne?ile1 Tr"eI (s+)o/LQ)ac!"p 5rocess <o*pleteQ1 ,b%nfor*ationI 6nd %f 6lse (s+)o/LQ<an not co*plete bac!"p folloin+ error occ"red : Q R 6rr.Description1 ,b<riticalI 6nd %f 6nd 8"b 5ri,ate 8"b <o**and3D<lic!LI 'nloadL(eI 6nd 8"b 5ri,ate 8"b ?or*D>oadLI KNNN center the for* A4 (e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2 KNNN ne bac!"p file na*e li!e dataD04010AD1@44.*db Ne?ile O QDataDQ R ?or*atLNo1 QddnnyyDhhnnQI R Q.*dbQ >abel2.<aption O Q)ac!"p Database Na*e : Q R Ne?ile KNNN load the last sa,ed settin+s fro* re+istry Te/t1.Te/t O Bet8ettin+LQ)%>>%NBD8;?T.#R6Q1 Q)#<&'5DD#T#)#86Q1 Q)#<&'5D5#TCQ1 QQI 6nd 8"b A4 @.14 ?r*<o*pany%nfo L#dd3(odify <o*pany %nfoI KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K add3edit3delete co*pany details K 'sed Table : co*panyD*aster Kopen the co*panyD*aster Kdisplay first record in for* load Kadd edit sa,e delete and na,i+ation KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ;ption 6/plicit Di* R81 #s Ne #D;D).Recordset Di* #dd6dit #s 8trin+ 5ri,ate 8"b <o**and1D<lic!LI KNNN close the for* 'nloadL(eI 6nd 8"b 5ri,ate 8"b <o**and11D<lic!LI KNNN delete the record %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b ;n 6rror BoTo *yer1 KNNN confir* before delete %f (s+)o/LQDelete the Record J Q1 ,b<ritical P ,b9esNoI O ,b9es Then A= R81.DeleteLI <all <learTe/tLI <o**and4D<lic!LI 6nd %f 6/it 8"b *yer1: (s+)o/LQ6rror ;cc"red : Q R 6rr.Description1 ,b<riticalI 6nd 8"b 5ri,ate 8"b <o**and2D<lic!LI KNNN *o,e record ponter to first record KNNN display first record ;n 6rror Res"*e Ne/t %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b R81.(o,e?irstLI <all DisplayRecordLI 6nd 8"b 5ri,ate 8"b <o**and3D<lic!LI KNNN *o,e bac! the record pointer and display c"rrent record ;n 6rror Res"*e Ne/t %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b %f R81.#bsol"te5osition N 1 Then R81.(o,e5re,io"sLI 6lse (s+)o/LQ?irst Record ..Q1 ,b%nfor*ationI R81.(o,e?irstLI 6nd %f <all DisplayRecordLI 6nd 8"b 5ri,ate 8"b <o**and4D<lic!LI KNNN *o,e ne/t the record pointer and display c"rrent record ;n 6rror Res"*e Ne/t %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b %f R81.#bsol"te5osition S R81.Record<o"nt Then R81.(o,eNe/tLI 6lse (s+)o/LQ>ast Record ..Q1 ,b%nfor*ationI R81.(o,e>astLI A@ 6nd %f <all DisplayRecordLI 6nd 8"b 5ri,ate 8"b <o**and4D<lic!LI KNNN *o,e last the record pointer and display c"rrent record ;n 6rror Res"*e Ne/t %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b R81.(o,e>astLI <all DisplayRecordLI 6nd 8"b 5ri,ate 8"b <o**and=D<lic!LI KNNN prepare for add record1 clear all te/t bo/1 set fla+ to #DD %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b #dd6dit O Q#DDQ <all <learTe/tLI D6L?alse1 Tr"eI T/t<o*panyNa*e.8et?oc"sLI 6nd 8"b 5ri,ate 8"b <o**and@D<lic!LI KNNN prepare for edit record1 set fla+ to 6D%T %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b #dd6dit O Q6D%TQ D6L?alse1 Tr"eI T/t<o*panyNa*e.8et?oc"sLI 6nd 8"b 5ri,ate 8"b <o**andAD<lic!LI KNNN sa,e the record KNNN chec! for ,alidation KNNN chec! the fla+ for #DD36dit %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b ;n 6rror BoTo *yer1 %f Tri*LT/t<o*panyNa*e.Te/tI O QQ Then (s+)o/LQ6nter <o*pany Na*e Q1 ,b<riticalI T/t<o*panyNa*e.8et?oc"sLI AA 6/it 8"b 6nd %f %f #dd6dit O Q#DDQ Then R81.#ddNeLI R81LQco*panyDna*eQI O T/t<o*panyNa*e.Te/t R81LQ#ddress1QI O T/t#ddress1.Te/t R81LQ#ddress2QI O T/t#ddress2.Te/t R81LQcityQI O T/t<ity.Te/t R81LQpinQI O T/t5in.Te/t R81LQtelephoneQI O T/tTelephone.Te/t R81LQ,atnoQI O T/t$atNo.Te/t R81.'pdateLI R81.(o,e>astLI <all DisplayRecordLI 6lse R81LQ#ddress1QI O T/t#ddress1.Te/t R81LQ#ddress2QI O T/t#ddress2.Te/t R81LQcityQI O T/t<ity.Te/t R81LQpinQI O T/t5in.Te/t R81LQtelephoneQI O T/tTelephone.Te/t R81LQ,atnoQI O T/t$atNo.Te/t R81.'pdateLI KNNN if it is edit after re:"ery sho the edited record Di* p #s %nte+er p O R81.#bsol"te5osition R81.Re:"eryLI R81.(o,e?irstLI R81.(o,eLp - 1I <all DisplayRecordLI 6nd %f D6LTr"e1 ?alseI 6/it 8"b *yer1: (s+)o/LQ6rror ;cc"red : Q R 6rr.Description1 ,b<riticalI 6nd 8"b 5ri,ate 8"b <o**and9D<lic!LI KNNN cancel sa,e D6LTr"e1 ?alseI 6nd 8"b 5ri,ate 8"b ?or*D>oadLI KNNN center the for* A9 (e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2 KNNN reset connection KNNN clear all te/t <learTe/tLI ;pen<onLI KNNN load alreday sa,ed clent data KNNN and sho the first record %f R81.8tate O ad8tate;pen Then R81.<loseLI R81.;penLQselect M fro* co*panyD*aster order by co*panyDna*e Q1 <n1 ad;penDyna*ic1 ad>oc!;pti*isticI %f R81.Record<o"nt N 0 Then R81.(o,e?irstLI <all DisplayRecordLI 6nd %f D6LTr"e1 ?alseI 6nd 8"b 5ri,ate 8"b <learTe/tLI KNNN clear all te/t bo/ in the for* Di* <tl #s <ontrol ?or 6ach <tl %n (e.<ontrols %f Type;f <tl %s Te/t)o/ Then <tl.Te/t O QQ 6nd %f Ne/t 6nd 8"b 5ri,ate 8"b DisplayRecordLI KNNN display c"rrent record ;n 6rror Res"*e Ne/t <all <learTe/tLI T/t<o*panyNa*e.Te/t O %%fL%sN"llLR81LQco*panyDna*eQII O Tr"e1 QQ1 R81LQco*panyDna*eQII T/t#ddress1.Te/t O %%fL%sN"llLR81LQ#ddress1QII O Tr"e1 QQ1 R81LQ#ddress1QII T/t#ddress2.Te/t O %%fL%sN"llLR81LQ#ddress2QII O Tr"e1 QQ1 R81LQ#ddress2QII T/t<ity.Te/t O %%fL%sN"llLR81LQcityQII O Tr"e1 QQ1 R81LQcityQII T/t5in.Te/t O %%fL%sN"llLR81LQpinQII O Tr"e1 QQ1 R81LQpinQII T/tTelephone.Te/t O %%fL%sN"llLR81LQtelephoneQII O Tr"e1 QQ1 R81LQtelephoneQII T/t$atNo.Te/t O %%fL%sN"llLR81LQ,atnoQII O Tr"e1 QQ1 R81LQ,atnoQII >abel1@.<aption O R81.#bsol"te5osition R Q3Q R R81.Record<o"nt 6nd 8"b 5ri,ate 8"b D6L)y$al T1 #s )oolean1 )y$al T2 #s )ooleanI 90 KNNN enable disable b"ttons <o**and2.6nabled O T1 <o**and3.6nabled O T1 <o**and4.6nabled O T1 <o**and4.6nabled O T1 <o**and=.6nabled O T1 <o**and@.6nabled O T1 <o**and11.6nabled O T1 <o**andA.6nabled O T2 <o**and9.6nabled O T2 6nd 8"b 91 @.14 ?r*<lient%nfo L#dd3(odify <lient %nfoI KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K e)illin+ 8yste* K KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM K add3edit3delete client details K 'sed Table : clientD*aster Kopen the clientD*aster Kdisplay first record in for* load Kadd edit sa,e delete and na,i+ation KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ;ption 6/plicit Di* R81 #s Ne #D;D).Recordset Di* #dd6dit #s 8trin+ 5ri,ate 8"b <o**and1D<lic!LI KNNN close the for* 'nloadL(eI 6nd 8"b 5ri,ate 8"b <o**and11D<lic!LI KNNN delete the record %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b ;n 6rror BoTo *yer1 KNNN confir* before delete %f (s+)o/LQDelete the Record J Q1 ,b<ritical P ,b9esNoI O ,b9es Then R81.DeleteLI <all <learTe/tLI 92 <o**and4D<lic!LI 6nd %f 6/it 8"b *yer1: (s+)o/LQ6rror ;cc"red : Q R 6rr.Description1 ,b<riticalI 6nd 8"b 5ri,ate 8"b <o**and2D<lic!LI KNNN *o,e record ponter to first record KNNN display first record ;n 6rror Res"*e Ne/t %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b R81.(o,e?irstLI <all DisplayRecordLI 6nd 8"b 5ri,ate 8"b <o**and3D<lic!LI KNNN *o,e bac! the record pointer and display c"rrent record ;n 6rror Res"*e Ne/t %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b %f R81.#bsol"te5osition N 1 Then R81.(o,e5re,io"sLI 6lse (s+)o/LQ?irst Record ..Q1 ,b%nfor*ationI R81.(o,e?irstLI 6nd %f <all DisplayRecordLI 6nd 8"b 5ri,ate 8"b <o**and4D<lic!LI KNNN *o,e ne/t the record pointer and display c"rrent record ;n 6rror Res"*e Ne/t %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b %f R81.#bsol"te5osition S R81.Record<o"nt Then R81.(o,eNe/tLI 6lse (s+)o/LQ>ast Record ..Q1 ,b%nfor*ationI R81.(o,e>astLI 6nd %f <all DisplayRecordLI 93 6nd 8"b 5ri,ate 8"b <o**and4D<lic!LI KNNN *o,e last the record pointer and display c"rrent record ;n 6rror Res"*e Ne/t %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b R81.(o,e>astLI <all DisplayRecordLI 6nd 8"b 5ri,ate 8"b <o**and=D<lic!LI KNNN prepare for add record1 clear all te/t bo/1 set fla+ to #DD %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b #dd6dit O Q#DDQ <all <learTe/tLI D6L?alse1 Tr"eI T/t<o*panyNa*e.8et?oc"sLI 6nd 8"b 5ri,ate 8"b <o**and@D<lic!LI KNNN prepare for edit record1 set fla+ to 6D%T %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b #dd6dit O Q6D%TQ D6L?alse1 Tr"eI T/t<o*panyNa*e.8et?oc"sLI 6nd 8"b 5ri,ate 8"b <o**andAD<lic!LI KNNN sa,e the record KNNN chec! for ,alidation KNNN chec! the fla+ for #DD36dit %f R81.8tate O ad8tate<losed Then 6/it 8"b %f R81.Record<o"nt SO 0 Then 6/it 8"b ;n 6rror BoTo *yer1 %f Tri*LT/t<o*panyNa*e.Te/tI O QQ Then (s+)o/LQ6nter <o*pany Na*e Q1 ,b<riticalI T/t<o*panyNa*e.8et?oc"sLI 6/it 8"b 94 6nd %f %f #dd6dit O Q#DDQ Then R81.#ddNeLI R81LQclientDna*eQI O T/t<o*panyNa*e.Te/t R81LQ#ddress1QI O T/t#ddress1.Te/t R81LQ#ddress2QI O T/t#ddress2.Te/t R81.'pdateLI R81.(o,e>astLI <all DisplayRecordLI 6lse R81LQ#ddress1QI O T/t#ddress1.Te/t R81LQ#ddress2QI O T/t#ddress2.Te/t R81.'pdateLI KNNN if it is edit after re:"ery sho the edited record Di* p #s %nte+er p O R81.#bsol"te5osition R81.Re:"eryLI R81.(o,e?irstLI R81.(o,eLp - 1I <all DisplayRecordLI 6nd %f D6LTr"e1 ?alseI 6/it 8"b *yer1: (s+)o/LQ6rror ;cc"red : Q R 6rr.Description1 ,b<riticalI 6nd 8"b 5ri,ate 8"b <o**and9D<lic!LI KNNN cancel sa,e D6LTr"e1 ?alseI 6nd 8"b 5ri,ate 8"b ?or*D>oadLI KNNN center the for* (e.(o,e L8creen..idth - .idthI 3 21 L8creen.Cei+ht - Cei+htI 3 2 <learTe/tLI KNNN reset connection ;pen<onLI KNNN load alreday sa,ed clent data KNNN and sho the first record %f R81.8tate O ad8tate;pen Then R81.<loseLI 94 R81.;penLQselect M fro* clientD*aster order by clientDna*e Q1 <n1 ad;penDyna*ic1 ad>oc!;pti*isticI %f R81.Record<o"nt N 0 Then R81.(o,e?irstLI <all DisplayRecordLI 6nd %f D6LTr"e1 ?alseI 6nd 8"b 5ri,ate 8"b <learTe/tLI KNNN clear all te/t bo/ in the for* Di* <tl #s <ontrol ?or 6ach <tl %n (e.<ontrols %f Type;f <tl %s Te/t)o/ Then <tl.Te/t O QQ 6nd %f Ne/t 6nd 8"b 5ri,ate 8"b DisplayRecordLI KNNN display c"rrent record <all <learTe/tLI T/t<o*panyNa*e.Te/t O %%fL%sN"llLR81LQclientDna*eQII O Tr"e1 QQ1 R81LQclientDna*eQII T/t#ddress1.Te/t O %%fL%sN"llLR81LQ#ddress1QII O Tr"e1 QQ1 R81LQ#ddress1QII T/t#ddress2.Te/t O %%fL%sN"llLR81LQ#ddress2QII O Tr"e1 QQ1 R81LQ#ddress2QII 9= >abel1@.<aption O R81.#bsol"te5osition R Q3Q R R81.Record<o"nt 6nd 8"b 5ri,ate 8"b D6L)y$al T1 #s )oolean1 )y$al T2 #s )ooleanI KNNN enable disable b"ttons <o**and2.6nabled O T1 <o**and3.6nabled O T1 <o**and4.6nabled O T1 <o**and4.6nabled O T1 <o**and=.6nabled O T1 <o**and@.6nabled O T1 <o**and11.6nabled O T1 <o**andA.6nabled O T2 <o**and9.6nabled O T2 6nd 8"b 9@ EBILLING AND INVOICE SSTE! TEST PLANE A.1 %NTR;D'<T%;N A.2 Test 8cope A.3 Test 8trate+y A.4 5reconditions A.4 Test 5riorities A.= Test Techni:"es A.@ R;>68 #ND R685;N8%)%>%T%68 A.A <;N<>'8%;N #ND ?'T'R6 6NC#N<6(6NT
9A %B2""248 #43 I4;*2$% S<.&%1 T%.& P"#4 E.1 I4&-*3/$&2*4 This doc"*ent describes the "ser acceptance test plan for the 6)illin+ and %n,oice 8yste*. The co*plete test strate+y for the 6)illin+ and %n,oice 8yste* is to perfor* the folloin+ !inds of tests1 in se:"ence: 1. C*1,*4%4& &%.&248 of each co*ponent that *a!es "p the 6)illin+ and %n,oice 8yste* 2. I4&%8-#&2*4 &%.&248 of the 6)illin+ and %n,oice 8yste*1 to ens"re the correct interor!in+ of its co*ponents 3. V#"23#&2*4 &%.&248 of the 6)illin+ and %n,oice 8yste*1 to ens"re that it or!s correctly in a pse"do-li,e en,iron*ent 4. U.%- #$$%,$% &%.&248 of the 6)illin+ and %n,oice 8yste*1 to ens"re that its f"nction is acceptable to its "sers #cceptance testin+ is the last set of tests to be perfor*ed before the application +oes officially li,e. E.2 T%.& S$*,% The scope of the "ser acceptance testin+ co,ers: $ersion 1 of the 6)illin+ and %n,oice 8yste* 'ser-facin+ f"nctionality defined by a set of "se cases #d*inistrator-facin+ f"nctionality defined by a set of "se cases The ai* of the testin+ is to deter*ine ho ell the application *eets its f"nctional re:"ire*ents fro* the perspecti,e of the "ser1 and to identify any iss"es so they can be resol,ed. #lso1 the testin+ ser,es to co*pile a set of test data and res"lts that can be "sed d"rin+ s"bse:"ent test cycles1 to test for non-re+ression of the softare in later releases or after the application is in *aintenance. .or!in+ practices *i+ht ,ary fro* "ser to "ser and are considered o"tside the scope of the testin+. 99 E.' T%.& S&-#&%8< The basis of "ser acceptance testin+ is that other tests ere co*pleted s"ccessf"lly1 so the application and its re:"ired infrastr"ct"re are considered to be stable and reliable. #cceptance testin+ concentrates on the application fro* the "ser0s perspecti,e1 that is1 ho the application is "sed and hether it *eets the necessary :"ality criteria. <han+e re:"ests ill be sent to the de,elop*ent tea* as the actionable doc"*entation. <han+e criteria ill be deter*ined by the Test tea* and the De,elop*ent tea* prior to the be+innin+ of testin+. ?or instance1 criteria *ay incl"de i*pact to desired f"nctionality1 a*o"nt of code i*pacted by proposed chan+e1 and desi+n re:"ired by proposed chan+e. The tester ill e,al"ate the criteria. The test lead ill deter*ine <han+e Re:"ired or not. ;nce a b"+ has been deter*ined as <han+e Re:"ired1 the b"+ report ill be translated into a <han+e Re:"est and passed on to de,elop*ent. The c"sto*er of the acceptance testin+ is the 8yste* 'sers1 8"per,isor and #d*instrator for 6)illin+ and %n,oice 8yste*. The pro+ress of the acceptance testin+ ill be reported to the c"sto*er1 to+ether ith any iss"es that are disco,ered and their planned resol"tions. 8i+n-off of the tests1 and therefore the acceptance of the application1 ill be perfor*ed by the c"sto*er or a selected representati,e. E.( P-%$*432&2*4. The folloin+ ite*s are re:"ired before testin+ can ta!e place: # co*plete and coherent f"nctional specification of the 6)illin+ and %n,oice 8yste* e/pressed as "se cases and "sa+e scenarios # co*plete and ,alidation-tested release of 6)illin+ and %n,oice 8yste*1 deli,ered accordin+ to the deli,ery plan #n a+reed-"pon proced"re for dealin+ ith any ano*alies that are disco,ered d"rin+ the testin+ process 100 # set of test specifications describin+ ho each f"nctional area of the 6)illin+ and %n,oice 8yste* is to be acceptance tested #n i*ple*ented test en,iron*ent for the testin+ 8"fficient1 s"itable reso"rces to carry o"t the testin+ #,ailable standards for the acceptance testin+ E.5 T%.& P-2*-2&2%. D"rin+ testin+ of the 6)illin+ and %n,oice 8yste*1 the folloin+ :"alities ill be tested in order of priority: ?"nctionalityXhether the re:"ired f"nctions are a,ailable and or!in+ as e/pected 'sabilityXho "ser-friendly and int"iti,e the 6)illin+ and %n,oice 8yste* is 8ec"rityXho ell-protected and +"aranteed corporate and "ser data is 5erfor*anceXhether the response ti*es are ithin acceptable li*its <"sto*iFationXho strai+htforard it is to "se the application in ne1 "npredicted ays E.6 T%.& T%$7426/%. The folloin+ techni:"es ill be applied: 8cripted testsXse:"ences of "ser interactions Lbased on the "se case and "sa+e scenariosI "sin+ predefined data sets a+ainst predicted res"lts 'nscripted testsXbased on scripted tests1 the tester tries to *odify the scenarios to e/plore hat-if possibilities 5enetration testsXscripted tests to atte*pt "na"thoriFed entry into the syste* 'sability chec!listsXtests to deter*ine the co*ple/ity of interactions 5erfor*ance statisticsX+eneration of perfor*ance infor*ation to chec! a+ainst desired perfor*ance criteria 101 E.+ R*"%. #43 R%.,*4.202"2&2%. The folloin+ roles are defined: 7# lead3test *ana+erXresponsible for plannin+ and ens"rin+ the s*ooth r"nnin+ of the test process TesterXcarries o"t the tests accordin+ to the test plan1 and then reports the res"lts 5rod"ct *ana+erXens"res that the tests are carried o"t s"ccessf"lly fro* a "ser perspecti,e 5roject sponsor3clientXacts as *ain sta!eholder1 and ens"res that the needs of the c"sto*er co**"nity as a hole are considered Test s"pportXpro,ides technical assistance1 s"ch as test en,iron*ent confi+"ration1 and non- technical assistance1 s"ch as *ethodolo+ical s"pport .ee!ly tea* *eetin+s ill be held in,ol,in+ the test *ana+er1 testers1 and prod"ct *ana+ers. #t these *eetin+s1 the pro+ress of the testin+ process ill be reported1 any iss"es ill be disc"ssed1 and actions ill be a+reed "pon.
102 CONCLUSION & >UTURE EN?ANCE!ENT This project as de,eloped to f"lfill "ser and b"siness re:"ire*entE hoe,er there are lots of scope to i*pro,e the perfor*ance of the e)illin+ and %n,oice 8yste* in the area of "ser interface1 database perfor*ance1 and :"ery processin+ ti*e. 6tc. 8o there are *any thin+s for f"t"re enhance*ent of this project. The f"t"re enhance*ents that are possible in the project are as follos. >in!in+ and inte+ration of any le+acy syste* for acco"ntin+. %nte+ration ith tra,el a+ent thro"+h .eb 8er,ices <onnection to third-party ;>#5 applications 6lectronic Data %nterchan+e L6D%I syste* beteen ban!s1 other credit ,erification a+ency and their ,endors %n the area of data sec"rity and syste* sec"rity. 5ro,ide *ore online tips and help. 103 BIBLIOGRAPHY V2./#" B#.2$ 6 - B"#$: B**: 0< S&%;%4 ?*"H4%- !#.&%-248 V2./#" B#.2$ S*5&9#-% E4824%%-248 0< R*8%- P-%..1#4 999.8**8"%.$*1 104