garment store system

200
1 1. Definition and Analysis 1.1 Definition – Nature of problem 1.1.1 Description of organization This project is designed for solving the problems pertaining to Sales, Inventory and Membership Management System of the “ATTIRE” Garment Store. The “ATTIRE” Garment Store sells Ladies and Gents garments which included Shirts, Trousers, Jeans etc. This Store was like many other such family‐run small stores selling garments. However, the shopping style and preference of customers in Metro cities have undergone a sea change. They now prefer to shop in a Mall or Superstore ambience. They prefer to see all the varieties available and also try them out before deciding what they want to buy. OLD ATTIRE: Earlier the “ATTIRE” Garment Store was like a typical garment Store in India functioned and operated like a family owned small store. It is a Store on the Ground Floor in a building on the Main Road of a prestigious residential and commercial area and is not located in a Shopping Mall. They had a window display in which they displayed the garments on hangers, was not air‐conditioned, did not have a trial room, did not have a store‐room, did not have a mannequin to display the goods and was not computerized. The inside of the store had counters on two sides running the length of the Store. Behind these counters, salesmen stood to attend to the customers and behind the salesmen, the goods were kept inside glass door cupboards. Since the garments were packed in boxes and not kept open, the customers could not see the garments and could only see the garments displayed in the window. The owner of the store, usually sat at one end of the counter near the entrance, where he would collect the payment of the goods from the customers. The owner and proprietor of the Store was Mr. Kishore Chedda. However, since last few years, his son Mr. Amit Chedda took over the responsibility of managing of the store and brought drastic changes in the store. NEW ATTIRE: Mr. Amit Chedda completely renovated the store and changed its décor. Mannequins were placed on the display window as well as inside the store to display the goods. Two trial rooms for Ladies and Gents were made. A new store room was made and goods were stocked in it. The store was centrally air‐conditioned and air‐ curtains were installed at the entrance to prevent the dust from entering the store. The garments were displayed on rotating stands placed through out the store so that the customer could go through the available colors and designs and select the garments that they want, try it out in the trial room and go to the Check‐out/Payment counter and pay for their purchase. Salesmen assisted the customers, when required. Computer has been placed at the check out counter and is currently being used for Account purpose.

Upload: poonam-sugand

Post on 02-Apr-2015

146 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Garment Store System

1

1. Definition and Analysis 1.1 Definition – Nature of problem

1.1.1 Description of organization

Thisproject isdesigned for solving theproblemspertaining toSales, InventoryandMembership Management System of the “ATTIRE” Garment Store. The “ATTIRE”GarmentStoresellsLadiesandGentsgarmentswhichincludedShirts,Trousers,Jeansetc.ThisStorewaslikemanyothersuchfamily‐runsmallstoressellinggarments.

However,theshoppingstyleandpreferenceofcustomersinMetrocitieshaveundergoneaseachange.TheynowprefertoshopinaMallorSuperstoreambience.They prefer to see all the varieties available and also try them out before decidingwhattheywanttobuy.

OLDATTIRE:Earlierthe“ATTIRE”GarmentStorewaslikeatypicalgarmentStoreinIndia functioned and operated like a family owned small store. It is a Store on theGround Floor in a building on the Main Road of a prestigious residential andcommercialareaandisnotlocatedinaShoppingMall.Theyhadawindowdisplayinwhichtheydisplayedthegarmentsonhangers,wasnotair‐conditioned,didnothavea trial room, did not have a store‐room, did not have a mannequin to display thegoodsandwasnotcomputerized.The insideof thestorehadcountersontwosidesrunning the lengthof theStore.Behind these counters, salesmenstood toattend tothe customers and behind the salesmen, the goods were kept inside glass doorcupboards. Since the garments were packed in boxes and not kept open, thecustomerscouldnotseethegarmentsandcouldonlyseethegarmentsdisplayedinthewindow.Theownerof the store,usually sat atoneendof the counternear theentrance,wherehewouldcollectthepaymentofthegoodsfromthecustomers.Theownerandproprietorof theStorewasMr.KishoreChedda.However,since last fewyears,hissonMr.AmitCheddatookovertheresponsibilityofmanagingofthestoreandbroughtdrasticchangesinthestore.

NEWATTIRE:Mr.AmitCheddacompletelyrenovatedthestoreandchangeditsdécor.Mannequinswereplacedonthedisplaywindowaswellasinsidethestoretodisplaythegoods.TwotrialroomsforLadiesandGentsweremade.Anewstoreroomwasmadeandgoodswerestockedin it.Thestorewascentrallyair‐conditionedandair‐curtainswere installedat the entrance toprevent thedust fromentering the store.Thegarmentsweredisplayedonrotatingstandsplacedthroughoutthestoresothatthe customer could go through the available colors and designs and select thegarmentsthattheywant,tryitoutinthetrialroomandgototheCheck‐out/Paymentcounterandpayfortheirpurchase.Salesmenassistedthecustomers,whenrequired.Computerhasbeenplacedat the checkout counter and is currentlybeingused forAccountpurpose.

Page 2: Garment Store System

2

Mr.AmitChedda,sonof theownerof the“ATTIRE”GarmentStore,hereaftercalledthe“User”hadinformedthatsincehehadchangedtheentiredécorandsystemoftheStore,healsowantedtochangethemethodinwhichSalesandInventoryaremanaged.Hewantedanon‐the‐spotrecordofthestockofvariousgoodsthathehadin store at any given time. He was unable to get on‐the‐spot stock in his currentsystem. This project is thus designed keeping this requirement in mind. Mr. AmitChedda, sonof theownerof the “ATTIRE”GarmentStorehasagreed tobe theend‐user of the system and the prototype designed. Attached hereto and marked as“Annexure1”isacopyoftheletterfromtheend‐user:ATTIREGarmentStoredated18/07/2009.(Annexure­1)

1.1.2 Methods currently in use The store currentlymaintains books like the Stock book, Sales Book andMembersBook.TheyalsohaveaBillbook,whichisfilledandthebillisgiventothecustomer.First,whenthegoodsarrive,thestockisenteredintotheStockbookwithProduct received and quantity of stock. When sales are made, the Stock book isupdatedbyreducingthestock.ThenthebillismadeforthecustomerbywritingtheitemsontothebillandcalculatingthetotalamountslikeTotal,VATandGrossTotalusing the calculator. Then the total amount is also entered into the Sales Book forrecording the amount received from salesmade. If the customer is a member, thedetails are searched manually in the Members Book and discount is given to thememberwhilemakingofthebill.

Page 3: Garment Store System

3

ANNEXTURE - 1

Page 4: Garment Store System

4

1.2 Investigation and Analysis

1.2.1 – Plan of Investigation

ThefirststepindevelopinganyProgramisitsstudybyinvestigatingitscauseandfindingitsremedy.Likeadoctorhastodoaproperdiagnosisofapatienttofindoutthecauseoftheillnessandthengivetheremedy,inasimilarway,investigatingoftheproblemisthefirstimportantsteptowardsfindingapropersolutionandinthiscase, developing a useful Program. In this case, the problem faced by the Userrequired tobestudied first.Theproblemtobesolvedhad tobe lookedat fromtheUser’sperspective.Theaimforinvestigation,therefore,wouldbeabletounderstandandanalyzeandthenattempttosolvetheproblemfromtheUser’sperspective.

Thecommonandthemosteffectivemethodsofinvestigationis

(i) observingtheworkingmethodonsite(ii) collectingthedocumentation(iii) notingthetypesofdatainput(iv) methodofdatainput(v) wheredataisstored(vi) notingthetypesofdataoutput(vii) methodofdataoutput(viii) analyzingtheproblemon‐site(ix) exploringmethodstosimplifytheprocess.

Forinvestigationinthiscase,alloftheabovemethodsshallbeused.

(i) ObservationshallbeendoneattheStoretoseeandstudyhowtheSalesare made, right from the entry of the Customer into the Store topaymentandexit–ThiswillgiveafairideaofhowtheStorefunctions,wherethegoodsarekept,wherecomputerentryismadeetc.ThiswillenabletobetterunderstandtherequirementoftheUser.

(ii) DocumentslikecopyofSalesBill,copyofStockBookpage,copyofSalesRegister page, copy of Members Register page etc. shall be collectedfrom the User – This will help in understanding the data used andrequiredbytheUserandtheOrderinwhichthedataistobearranged.

Page 5: Garment Store System

5

(iii) typesofdatainputshallbestudied‐likethenumericdataforratesandquantity,thealphabeticdataforMembersnamesandaddressesandthealpha‐numericdataforProductCodes.Theproductcodesshallalsobeanalyzedanditsconstructionshallbestudiedandunderstoodsoastohavebetterco‐relationinInventorymanagement.

(iv) methodofdatainputshallbestudiedi.e.manual–Thisshallgiveusaninsightof therootcauseofmanyof theproblemsviz.manualerror incalculation,illegibilityofrecords.

(v) Howandwherethedataisstoredshallbenotedeg.Infiles,BillBooks,etc.–Thiswillenable tounderstandthe frequencyofreferenceof thedata.

(vi) typesofdataoutput shallbenotede.g.Numericdata forSales figuresand Alpha numeric data for Product Code – This will help inunderstandingthetypeofoutputdesiredbytheUser.

(vii) methodof data output shall benoted e.g. SalesBills. Thiswill help inunderstandingtheforminwhichtheoutputisdesiredbytheUser.

(viii) analyzingtheproblemon‐site–Thisshallbedonefromourperspectiveandtrytoanalyzetherootcauseoftheproblem.

(ix) exploringmethods to simplify the process – This again shall be donefromtheUser’saswellasourperspectivetoensurethatthedataflowprocessissmoothanduninterrupted.

SincetheProgramistobedevelopedfortheUser,mostoftheinputintermsofdatarequiredtobeinputanddataoutputrequiredshallbeprovidedbytheUser,Mr.AmitChedda.However,someoftheotherinputsintermsoftheAccountimplicationof the Sales and Inventory shall be gathered fromMr. Bhatt, the Accountant of theStore.FurtherinformationofinputforInventorymanagementshallbetakenfromMr.Patil who looks after the Inventory and Stock of goods. The information from theemployee would help in eradicating the teething problems faced in the CurrentSystemaswellasenabletodesignabetterProgram.

1.2.2 – Interviews

For thepurposeofbetterunderstandingof therequirementsof theUser, theUserMr.AmitCheddawas interviewedon20th July,2009athisStore.Theexcerptsfromhisinterviewareasfollows:

Interviewer:Pleaseexplainyourbusinessinbrief.

User:Weareinthebusinessofretailsales.At“ATTIRE”,wesellqualitygarmentswhichwegetmadethroughmanufacturersunderourbrandname“ATTIRE”.Wesellgarmentsfor both Ladies and Gents. For Ladies, we stock garments like Skirts, Tops, Trousers,Jeans,CaprisandevenStockings.ForGentlemen,westockgarmentslikeShirts,T­Shirts,Trousers,Jeans,ShortsandJackets.

Interviewer:PleaseexplainhowthegoodsarePurchased.

Page 6: Garment Store System

6

User :We have supplierswhomanufacture garments under our brand name “ATTIRE”. Theyshowus the fabrics, colorsanddesigns foreach typeofproduct thatwe sellandweplace theorderwiththem.Theymakethegarmentsandstoreitwiththem.Becauseofpaucityofspaceinour Store, we only call for quantity that we require. When we Order, which is usually doneverballyandonthephone.Sincealltheitemsarecoded,wejustaskthemtosendaparticularquantityofaparticularitembycodesothereisnomistake.

Interviewer:PleaseexplainhowthegoodsareStocked.

User :Afterwereceive thegoods,westore thegoods inourstoreroomat theStore.Here,wemakeentry in theStockBook.Wealsoaffix theprice sticker toeachandeverygarmenthere.Then three pieces of each garment in each color, size and design are carried to the rotatingstandsandputonhangerthere.OurMr.PatilwholooksaftertheStockswillexplainitbettertoyou.

Interviewer:PleaseexplainhowthegoodsareSold.

User:WeextensivelyadvertiseourproductsinNewspapers,HoardingsandLeafletsandhaveafair quantity of customers walking in. Since ours is an old establishment, established by myfatherin1972,wealsohaveafairamountofregularcustomers.Earlier,wehadtheoldsystemof sales where the salesman used to show the customers various items for the customers tochoose from. But recently, the trend has changed and the customers prefer to scan throughstandsandhangersandchoosetheproductstheyrequire.Oursalesmenarecloseathandiftheyhave any query or require any assistance. Once they make a choice, the customer picks theclothes from the hanger and takes them for trial. If they like the clothes, they take it to theCheck­outcounter,wheretheclothesareputinourcarry­bagandhandedovertothecustomer.Oursalesmenalsohelpthecustomersinmakingachoiceintermsofcolorordesign,sizeorfit.We also have an out­of­the­store alteration department where we alter the garments tocustomer’srequirementsfree­of­charge.

Interviewer:PleaseexplainaboutyourMembershipprogram.

User : As told you earlier, this store has been established in 1972 by my father Mr. KishoreCheddaandhasbeeninexistencesincethen.Overtheyears,wehavehadmanycustomerswhohavebeenloyaltousandhaveshoppedwithusformanyyears.Inordertogiveanadvantagetothe customers who are loyal to our store, we have recently started a Membership program.Underthisprogram,anycustomerwhopurchasesgarmentsfromourstore,canchoosetoenrollas a member. The Membership is free­of­cost and one can become a member by making apurchaseattheStore.Onbecomingamember,thecustomerisgivenaMembershipCard.OnthebasisofthisMembership,thecustomercangeta10%discountonallpurchasesfromourstore.Also, we shall be organizing special promotions forMembers.We shall also be sending themmailersande­mailsfromtimetotimeinformingthemaboutthelatestfashionsandnewarrivalsatourstore.

Interviewer:WhatdoyouexpectfromtheProgram?

User:Firstandforemost,Iwanttoknowthestockofeachproductatanygiventime.Iknowitisa cumbersome and time taking thing but that ismy foremost requirement. Second importantrequirement ismaintainingof theMembersdata.As theMembersare increasingdrastically, Ifind it time taking to maintain their data. Though Membership Program is a good idea, thepaperworkandtimeinvolvedinitismakingitabother.TogetherwithincreaseinMembership,itisvitalthatMembersenjoythe10%discountthatisgiventothemandatthesametimethediscountisnotmisusedorisgiventoaNon­memberbymistakeasisdoneattimesatourstore.AsyouhaveexplainedtomethatyouwillbeabletoconnecttheSalestoInventoryandgivemestockonreal­timebasis,aswellasdotheMembersdatamanagement,itwillbeidealforme.

Page 7: Garment Store System

7

ForthepurposeofbetterunderstandingoftheInventoryrequirementsoftheUser, the Inventory in‐charge of “ATTIRE”, Mr. Patil was interviewed on 22nd July,2009athisStore.Theexcerptsfromhisinterviewareasfollows:

Interviewer:PleaseexplainindetailabouttheInventorysystem.

Patil :Wegetourgoodsmadebydifferentmanufacturers forus.Theyaremade inourname“ATTIRE”.My job is to keep a track of stocks in the store.Wenormally keep the stock of onesupplierwhichwouldlastusfor7days.Howeveritdependsontheseason.Iftherearefestivalsor many public holidays, then the stock will get over in 4­5 days. But we also have 10­12supplierswho supply various types of products. So everyday, there is some stock or the otherarriving.OurStock­Book isupdateddailybyourAccountantMr.Bhatt.Buttherearesomanyitems,somanydesignsandcolorsandsomanytypesoffabrics,itisdifficulttokeeptrack.Sowehave a coding system.When the stock of a particular garment or color is about to exhaust, Iinformtheboss,whoplacestheOrderandthegoodsarrivethenextday.

Interviewer:WhohastheStockBook?WhyistheStockBookwiththeAccountantandnotwithyouwhenyouhandletheInventory?

Patil:Ihavelotofworktohandleanddonothavetimetodothepaperwork.Also,theStock Book has to have input from the Sales figures everyday. The goods sold aredeductedandthegoodswhicharriveareaddedtothestock. Icheckthereceiptof thegoodsaspertheSuppliersBill,whichmentionstheproductsreceivedwiththeircodes.TheSuppliersBillaccompaniesthegoodsreceived,andIcheckandverifythequantityreceivedalongwithitscodes,andpassittotheAccountantforentries.TheAccountantMr.BhattupdatestheStockBookonthebasisoftheSuppliersBillgivenbyme.

Interviewer:Whydoyounotkeepmorestockinsteadofdailyreceipt?WhatelsedoyoudoinInventory?

Patil:Thereisshortageofplacesowedonotkeepmorestocks.Plustherearesomanyvarieties, it is difficult tomaintain stock of all goods at all times, especiallywhen thecustomers are so unpredictable.When the goods arrive, I check the goods if they areaccording to the Suppliers Bill sent with the goods. After verification, I give it to theAccountant.Iunpackthegoodsandcheckitforanyflaw,dirtordamage.IfeverythingisOK,Iputthepricetaglabel/stickeronitandputitonthehanger.ThenIarrangealltheracksinthestoreaccordingtocolors,patternsandsizes.Itismydutytoseethatthereare3pcsofeachtypeofitem,colorandsizeontheracksatanytime.Irefilltherackstotherightcombinationandquantityatregularintervalsduringtheday.

Interviewer:AreyoufacinganyproblemintheInventory?YourbossMr.Amitsaysthathewantsanup­to­dateinventoryatanytimeofthedayandhedoesnotgetit.

Patil :He is right. It is impossible tokeep trackofevery itemarrivingand leaving thestore at any time of the day. It ismore so on rush days like weekends or during thefestivalorholidayseasonwhentherearetoomanycustomers.Sincethegoodsarriveinthe morning, and the Stock Book is updated only at Night after the store closes, hecannothave theperfect stock till latenight.By the timeheknows the stock,nextdaymorningagainthegoodsarriveandduringthedaytherearesalessoagaintheStock

Page 8: Garment Store System

8

BookisupdatedatNightwherethestockwhichcameinisaddedandstockwhichissoldduringthedayissubtractedtoknowthenetfigure.ItisembarrassingattimeswhenthecustomerasksforaparticularsizeinaproductandtheStockBookshowsitinstockandIhavetosearchtheentirestoreroomonlytofindthatit issoldoutearlierduringtheday.Itisalsotime­takingandfutileexercise.ItissadthatwehavethissituationinspiteofhavingcodingsystemandupdatingStockBookdaily.

Interviewer:Howdoesthecodingsystemwork?

Patil:Wehaveanalpha­numericcodesystemdesignedbyMr.Amitandmyself.Foreg.MTSM004stands foraDesignerT­shirt. Inthis ‘M’stands for ‘Male’, ‘TS’stands for ‘T­shirt’, then ‘M’ stands for size ‘Medium’ and the last three numbers are for productdesignandpattern.

Interviewer:WhatdoyouneedintheProgram?

Patil : That it should not be complicated and should be easy to use, operate andunderstand.Itshouldgivethestockatthetouchofthebutton.

ForthepurposeofbetterunderstandingoftheAccountingsystemoftheUser,theAccountantof“ATTIRE”,Mr.Bhattwasinterviewedon23rdJuly,2009athisStore.Theexcerptsfromhisinterviewareasfollows:

Interviewer:PleaseexplainthevariousAccountsandBooksmaintainedbyyou.

Bhatt :For the goods thatwe Purchase from the supplier aswell as for all our Purchase,wemaintain aPurchaseRegister. For all our Sales,wemaintain a SalesRegister. As per theTaxlaws,wearerequiredtomaintainSalesRegisterandPurchaseRegisteraswellasSalesReturnRegisterandPurchaseReturnRegisterandalsotofileaMonthlyVATReturnforthesame,evenifitisNIL(zero).AllourAccountsaredoneinbackofficeandindifferentsetofbooks.

Interviewer:WhatdoyouwanttoincludeintheProgram.

Bhatt:Sinceourstorehasanoreturnpolicy,wedonotneedSalesReturndetails.However,wedohaveexchangepolicy.Thatis,ifthegoodssoldaredamagedordefectiveorcustomerwantstochangeasizeorcoloretc.wedopermittheexchange.Sincetheexchangeisofthesamevalueand in the same range of garments, Sales Return is not required. Primarily the Boss requiresinventoryonreal­timebasis,sowewantonlythosedetailsoncomputeranddonotwanttolinkanyotherpurchasewithit likepurchaseofcarry­bagsorstationeryoranyotherproduct.TheInventory shouldpurely reflect the stockofgoodsdealtbyus.Also, sincepreparingofmanualSalesBilltakestimeaswellastherearechancesoferrorinwritingofrateormultiplyingoringivingofdiscountorincalculationofVAT,itisdesirableifSalesBillisalsoprovided.

1.2.3 – Direct Observation

Avisittothe“ATTIRE”storeconfirmedwhathasbeeninformedbytheUserandhisStaff. “ATTIRE” retails Ladies and Gents garments over the counter. Normally, acustomerwalksintotheStoreandlooksatthegarmentsdisplayed.Iftheyrequireany

Page 9: Garment Store System

9

informationorassistance,forinstance,availablecolorsofagarmentordifferentsizesavailable,theyarehelpedbysalesmanintheStorewhoanswertotheirqueriesandalsofulfilltheirrequirementsbyprovidingthemwiththepropergarment.Thereareprice tags attached to each garment. If the customer wants, they can try out thegarmentintheTrialRoomslocatedattheendoftheStore.Iftheychoosetopurchase,theytaketheproductandgotothecheck‐outcounterlocatedneartheentranceofthestoreandpayforit.Thepersonmanningthecounterlooksatthepricetagandcodeofthegarment.HemanuallypreparesaSalesBill inapre‐printedBillBook.TheSalesBill isusuallypreparedin3copies,oneisgiventotheCustomer,thesecondcopyistornfromthebookandfiledinthefileattheendofthedayafternotingthesameintheSalesRegisterforAccountspurpose,thethirdcopyremainsintheBillBook.TheSalesBillcontainsdetails like:“BillNo.”, “Date”,&“To”(meaningtowhomis thebillmade to).Below this therearecolumnscontainingdetails like: “S.No”, “Particulars”,“Quantity”, “Rate” and “Amount”. The Counter staff fills in the details in theirrespective columns.TheBillNo is alreadyprinted andDate is filled in. In the “To:”row,thenameofthecustomerisfilledinoritssimplyfilledwiththewords“Cash”asit is a cash sale and the customer name is not required. In the column “S.No.”, theserial number is filled, in the “Particulars” column, the details of the item i.e. shirt,trouseretcanditsproductcodeisfilledin.Inthe“Rate”column,therateisfilledinafterreferringtothepricetagonthegarment.Theamountismanuallycalculatedonthecalculatorandfilledinthe“Amount”column.WhenalltheitemspurchasedbythecustomerarefilledintheSalesBill,theTotalAmountdueisalsocalculatedmanually.ThentheVATapplicableisalsocalculatedmanuallyandfilledin.TheVATamountisthen added to theTotal Amount due.However, if the customer is amember of thestore,thenhe/sheisentitledtoa10%discount.ThisdiscountiscalculatedbeforetheVAT is charged. The VAT amount is then calculated on the discounted figure andadded to the net amount to get the total amount due. The amount of the bill iscollectedincashandthegoodsarehandedovertotheCustomerinaprintedplasticcarry‐bag.

1.2.4 – Document Analysis ForthepurposeofdevelopingtheProgramandtodesigntheformsoftheprogramaswellastoknowwhattypesofdatainputisgoingtobedoneaswellaswhattypeofdataoutputisrequired,documentssuppliedbytheUserplayedaveryimportantrole.TheUserusedtomakeSalesBillintheirpre‐printedSalesBillBook.ThestaffoftheUser thereafter filled the pre‐printed Sales Bill with the necessary information,calculatedtheAmountmanuallyasalsowouldcalculatetheVATcharged.TheywouldputtheTotalattheendoftheBillandcollecttheAmountduefromthecustomer.ThedatapresentintheSalesBillwouldbeBillNo.,Date,Itemspurchased,ItemCode,ItemRate,VATchargedandTotalvalueofSales. In theattachedSalesBillof23.07.2009,the Sales of valueRs. 6,032/‐ can be seen. TheVAT4% is calculatedmanually andfilled in. Attachedhereto andmarked as “Annexure2” is the copyof the SalesBillissuedby“ATTIRE”GarmentStore.(Annexure­2).

Page 10: Garment Store System

10

ANNEXTURE - 2

The User gives a 10% discount to its members. This discount is also manually calculated by the staff making the Sales Bill. This Discount is allowed before calculation of the VAT amount. The data present in the Sales Bill would be Bill No., Date, Customer Name (since he is a Member), Items purchased, Item Code, Item Rate, Discount given, VAT charged and Total value of Sales. In the attached Sales Bill of 23.07.2009, the Sales of value Rs. 6,032/- can be seen. The VAT 4% is calculated manually and filled in. Attached hereto and marked as “Annexure 3” is the copy of the Sales Bill issued by “ATTIRE” Garment Store. (Annexure-3).

Page 11: Garment Store System

11

ANNEXTURE - 3

At the end of the day, the Accountant of the User, writes a daily Sales Summary. The Summary contains the Sales Amount of the Sales made during the day under different Bills. The data present in the Sales Summary is “S.No.”, “Date”, “Bill No.”, “Amount” and “Remarks”. The Daily Sales Summary attached shows the Sales Summary of 23rd July, 2009. It shows that there are 18 bills prepared that day resulting in a total sale of Rs. 34,683.40 Attached hereto and marked as “Annexure 4” is the copy of the Daily Sales Summary of “ATTIRE” Garment Store. (Annexure-4).

Page 12: Garment Store System

12

ANNEXTURE - 4

Page 13: Garment Store System

13

At the end of the day, the Accountant of the User, also updates the Stock Book.

This Stock Book contains the IN and OUT movement of the goods. When the goods arrive at the Store, they are put in the “IN” part of the Stock Book and when the goods are sold, they are entered on the “OUT” part of the Stock Book. It is a voluminous book of about 500 pages with Index in the front to locate the page number of each product. The Index contains columns like “S.No.”, “Item Name in full”, “Product Code” and “Page No. From” and “Page No. To”. Each product is allotted a few pages depending upon their turnover. If a product has more sale, it is given more pages for listing and if a product has less sale, it is allotted lesser pages. A page of the Stock Book is divided in two sections “IN” and “OUT”. On the “IN” section, there are columns like “Date”, “Supplier”, “Ref. No” and “Qty”. In the “Date” column, the date on which the goods are received by the User is filled in. In the “Supplier” column, the Name of the Supplier is filled in. In the “Ref. No.” column, the Supplier Bill No. is filled in. In the “Qty” column, the Quantity is filled in. On the “OUT” section, there are columns like “Date”, “Bill. No.” and “Qty”. In the “Date” column, the date on which the goods are sold by the Store is filled in. In the “Bill No.” column, the Sales Bill No. is filled in. In the “Qty” column, the Quantity is filled in. The Stock Book Sheet attached is that of FEMALE JEANS, LOW WAIST, MEDIUM SIZE and DENIM BLUE COLOR (Code: FJEM01002). In the Stock Book Sheet it can be seen in the “IN” section, the Stock brought forward from the previous page and the goods received on two instances. On the “OUT” section, the quantity of Jeans sold on various dates and under various Sales Bills can be seen. Attached hereto and marked as “Annexure 5” is the copy of the Stock Book Sheet of “ATTIRE” Garment Store. (Annexure-5)

Page 14: Garment Store System

14

ANNEXTURE - 5

Page 15: Garment Store System

15

The Staff at “ATTIRE” also maintain a Membership Register which has the details

of all the Members. The data contained in the Membership Register are “S.No.”, “Membership Card No.”, “Name, Address and E-mail address” and “Tel. No. or Mob. No.”. The Staff writes the serial no in the “S.No.” column, fills in the next membership number in the “Membership Card No.” column, fills in the “Name, Address and E-mail address” of the Customer in its column and the Telephone and/or Mobile Number in its column. Attached hereto and marked as “Annexure 6” is the copy of the sheet from the Members Register of “ATTIRE” Garment Store. (Annexure-6)

ANNEXTURE - 6

Page 16: Garment Store System

16

1.2.5 – Description of Existing System ThebusinesscyclestartswhentheCustomermakesthePurchase.TheCustomerthentakes the garment selected to the Check‐out counter. At the check‐out counter, theCashiermakestheSalesBillmanuallyintheSalesBook.Hereferstotheprice‐tagonthegarmenttoknowitspriceandmakesanoteofitintheRatecolumnoftheSalesBill.One‐by‐one,theCashiermakesnoteofalltheitemspurchasedbythecustomerinthe Sales Bill and fills in their rates. He then totals the amount due and asks theCustomerifheisaMember.IftheCustomerisamember,theCashierwouldaskfortheMembershipCard.IftheCustomerhastheCardandproducesit,theCashierwillgivetheMembershipDiscountof10%ontheBillAmounttotheCustomer.However,iftheCustomerisamemberbuthasnotcarriedtheMembershipCardwithhim,theCashierwouldaskhimthedetailsofhisnameandtheCardNumberifheremembers.TheCashierwouldthenverifythedetailsoftheCustomerwiththatinhisrecordsandifthesamearefoundtrue,wouldgivehimtheMembershipdiscount.TheCashierisresponsibleformakingoftheSalesBill.

Attheendoftheday,theAccountantpreparesaDailySalesSummary.TheSummarycontainstheSalesAmountoftheSalesmadeduringthedayunderdifferentBills.Thedata present in the Sales Summary is “S.No.”, “Date”, “Bill No.”, “Amount” and“Remarks”.TheAccountantfills inthecolumnswiththeirrelevantdetailsandtotalsthedayssales.ThustheresponsibilityofpreparingoftheDailySalesReportisthatoftheAccontant.

Once thegoodsare soldduring theday, thequantityof the stockheldby theStorereducesbythequantityofgoodssold.Inordertoarriveatthecorrectfigureofstockheld,theAccountantupdatestheStockBookdailyaftertheclosureoftheStore.ThisStockBookcontainstheINandOUTmovementofthegoods.TheAccountantfills intheappropriatedetailsintheappropriatefields.WhenthegoodsarriveattheStore,theyareputinthe“IN”partoftheStockBookandwhenthegoodsaresold,theyareenteredonthe“OUT”partof theStockBook.Apageof theStockBook isdivided intwo sections “IN” and “OUT”. On the “IN” section, there are columns like “Date”,“Supplier”,“Ref.No”and“Qty”.Inthe“Date”column,thedateonwhichthegoodsarereceivedbytheUserisfilledin.Inthe“Supplier”column,theNameoftheSupplierisfilledin.Inthe“Ref.No.”column,theSupplierBillNo.isfilledin.Inthe“Qty”column,theQuantityisfilledin.Onthe“OUT”section,therearecolumnslike“Date”,“Bill.No.”and“Qty”.Inthe“Date”column,thedateonwhichthegoodsaresoldbytheStoreisfilledin.Inthe“BillNo.”column,theSalesBillNo.isfilledin.Inthe“Qty”column,theQuantity is filled in. At the end of the day, the Accountant does the addition andsubtractionof thequantitiesof“IN”sectionand“OUT”sectiontoarriveat thestockquantity.

Any Staff at “ATTIRE” but mostly the Cashier maintains the Membership Registerwhich has the details of all the Members. The data contained in the MembershipRegisterare“S.No.”,“MembershipCardNo.”,“Name,AddressandE‐mailaddress”and“Tel.No.orMob.No.”.TheCashierwritestheserialno inthe“S.No.”column, fills inthe next membership number in the “Membership Card No.” column, fills in the“Name,AddressandE‐mailaddress”oftheCustomerinitscolumnandtheTelephoneand/orMobileNumberinitscolumn.AtthetimeofpreparationoftheSalesBill,iftheCustomerisamemberbuthasnotcarriedtheMembershipCardwithhim,theCashier

Page 17: Garment Store System

17

would ask him the details of his name and the CardNumber if he remembers. TheCashierwouldthenverifythedetailsoftheCustomerwiththat inhisrecordsandifthesamearefoundtrue,wouldgivehimtheMembershipdiscount.

1.2.6 – Critical Evaluation of the Existing System Thiscurrentsystemhadmanyflaws:

(a) The firstproblemcamewith themanualwritingof theserecords.Due to themanualcalculationoffigures,therearechancesoferrorinwritingtheproperrate,calculationoftheamountdue,calculationofthetotaldue,calculationofVAT, calculation of discount etc. Thus calculation error by staff is a highprobability of occurrence especiallywhen the store is crowded orwhen theCashierhasalongqueueofCustomerstoattendto.

(b) IftheCustomerchangeshismindwhilemakingpaymentandcancelsanitemorchangesanitem,inshort,makesanychangesinthePurchase,theSalesBillwillhavetobecancelledandafreshbillwouldhavetobepreparedwhichwillbeacumbersometaskfortheCashiertodomanually.IftherearecancellationsandcorrectionsintheSalesBill,apartfromnotlookingneat,wouldalsocauseerrorsinthecalculationsoftheamountoftheSalesBill.

(c) Asthesearehandwrittenrecordsonpaper,thepaperis liabletogetstainedoveraperiodoftimeandtheinformationwrittenmaygetscribbledonorgetstained.

(d) Sincetherecordisonpaper,thepaperislikelytogettornandunboundfromtheBook,whichmayresultinloosingoftheinformationwritten.

(e) Toomany Books required to bemaintained. Sales Bill Book, Sales SummaryBook,forStockBooketc.

(f) TheSalesReportshastobemademanuallyattheendofeachday.

Ithadhappenedmanytimesthatacustomeraskedforaparticulargarmentandthesalesman, after searching for considerable timeamongst other items, informed thattheparticulargarmentwasoutofstock.ThiswastedalotoftimeoftheStoreandthatof the customer and also caused embarrassment on account of the delay. Since thestockbookwasmanuallymanagedandupdateddaily,thereareprobabilitiesofoneorseveralitemsgoingoutofstockduringthesameday.Thiswasmorelikelyinfestivalseason or during weekends. Also, since the Sales Register maintaining the SalesSummarywas alsomanuallymaintained and daily updated, theUserwould have aproblemifhewantedtoseethesummaryatanypointoftimeduringtheday.Sothecombination and co‐relation of Sales and Inventory was the biggest flaw in theExistingsystem.Itwasdifficulttogetproperinformationatthepropertime.Theonlymerit of this System i.e. manual writing of the records, could be the flexibility ofwritingandeditinganydataatanytime,butretrievalofdataorgettingtheoutputofthatdatawouldbedifficult.

1.2.7 – Alternative & Proposed Solution

TherearevariousothersolutionstotheproblemfacedbytheUser.

Page 18: Garment Store System

18

(a) Theproducts tousebar‐codedstickers.Sinceall thestockcoming inandthestock going outwould be read by bar‐code scanner, the Inventorywould beupdatedimmediatelyandtheStockcanbeknowninreal‐tiem.However,bar‐codingoftheproductswouldrequireotherhardwaresbesidestheCPUandisnotcost‐effective.AlsothevolumeofSalesdoesnotjustifytheinvestment.

(b) TheStorecanestablishaninternalmemoformovementofgoodswherebyallgoodscomingoutofthestore‐roomisaccompaniedbyinternaltransfermemo.However, this willmean duplication of records and creation of unnecessarypaperwork.

Butthesolutionsuggestedisthemosteconomical,quickandeasytoadopt.Tosolveallthemanualentryrelatedproblemslikeillegibility,errorincalculation,duplicationofbooksandrecordsetc, theUser issuggestedtogo forComputerization.TheUserhasreadilyagreedtothesuggestion.

1.2.8 – Requirements Specifications

1.2.8.1 – Functional Requirements The objective of the new system would be to overcome the problems with the Current system. The User required the New system to be easy to use in terms of understanding and data entry. The primary goal of Inventory in real-time is to be fulfilled. Back-up of data is important in any business and hence this facility will be provided in the new system. The User requires real-time data of inventory on the Screen which will be provided by the New system. The User prefers GUI interface which is easy to understand and adopt.

1.2.8.2 – Input/Output Requirements It had been observed that the Inputs of the User with the Current System are as follows :

(i) Member’s Name, Address, E-mail address and Telephone Number. (ii) Membership Card Number. (iii) Inventory entry. (iv) Supplier details like Name, Address, Telephone Number, TIN No. (v) Product details: Code, Name, Price, Stock.

It had been observed that the Output of the User with the Current System are as follows :

(i) Sales Bill and Sales Summary. (ii) Membership data. (iii) Summary of Stocks.

However, with the New system in place the User Inputs would be as follows :

(i) Member’s Name, Address, E-mail address and Telephone Number. (ii) Supplier details like Name, Address, Telephone Number, TIN No. (iii) Product database: Code, Name, Price, Stock. (iv) Inventory : Stock and Quantity

Page 19: Garment Store System

19

And with the New system in place, the desired outputs would be as follows :

(i) Members data Search by Card Number. (ii) Sales Bill. (iii) Inventory Log. (iv) Sales Log. (v) Members List. (vi) Real-time Inventory.

1.2.8.3 - Hardware Requirements

Minimum Hardware requirements are :

Any Intel/AMD Processor – 1.0 GHz 256 MB RAM 10 MB Free Hard disk space

2. Design

2.1 Nature of Solution

2.1.1 Design Specification The software to be made is for the Garment Store. Thus, the interface should becomprehensiveandatthesametime,easytouse.Allthefieldsandbuttonsshouldbewelllaidoutandplacedappropriatelytoprovideeaseinuseandreference.Toomanyfieldsandbuttonsalsoshouldbeavoidedtomaketheprogramuser‐friendly,at thesametimefulfillingalltherequirementsoftheend‐user.

TherewouldbemultipleusersintheGarmentStorei.eAdministrator(StoreOwner)and various staff members having access to the System. Thus, a login screen isessentialforassigningdifferentfeaturestotheAdministratorandtotheStaff.

LOGIN SCREEN TheLOGINScreenisthefirstscreendisplayedwhentheprogramstarts.ItisthroughthisScreenthat theUserorAdministratorcanstartusing theprogramorcanenterinto the program. The LOGIN screen will have only two Fields: Username andPassword. TheUsername is the login name assigned to each staffmember and thePassword is the password assigned to the User for accessing the account. TheUsernameandPasswordwouldbeassignedbytheAdministratortotheUsers.Therewouldbetwobuttonsinthisscreen:LOGINandEXIT.TheLOGINButtonwillvalidatethelogindetailsandloadthemainscreenandtheEXITButtonwillexittheprogram.

Page 20: Garment Store System

20

ADMIN PANEL SCREEN Theprogramwillhaveapre‐definedAdministratoraccountwhichwillallowtheStoreOwner to manage the system. The ADMIN PANEL will have the following options:REPORTS, MANAGE PRODUCTS MANAGE USERS, SUPPLIERS, BACKUP DATABASE,RESTOREDATABASE,andLOGOUT.

Page 21: Garment Store System

21

TheREPORTbuttonwillopenanotherwindowwhichwillgiveoptionsofthetypesofReportsthatareavailabletobeviewed.ThiswillallowtheStoreOwnertoviewthevariousReportsgenerated.

TheAdministratorwill also have the option tomanage the Products. TheMANAGEPRODUCTS feature will display a drop down menu in the Category section, fromwhich theAdministratorhas tochoose theCategoryofProduct tobemanaged.Thevarious things he could change would be the Item Code, Item Name, Price of theproduct and Stock of the Product. The Administrator will be able to Add newproducts,Deleteexistingproductsandmakechangestotheproductsinthedatabase.Thus,theAdministratorwillbeabletochangetheCode,Name,PriceandStockoftheproduct.

TheAdministratorwillbeabletomanageUserAccountsofthesystembyclickingontheMANAGEUSERSbutton.ThiswilldisplaytheStaffname,UsernameandPasswordfields.TheAdministratorwill be able tonavigate through theusers andAddUsers,DeleteUsersorModifydetailsofUsers.ThisfeaturewillbeusefulifnewstaffjoinstheStoreorifastaffmemberresigns.Also,onlytheAdministratorcancreateandmanagethe Users and this facility is not available to any User. The Username and thePasswordisalsoallottedbytheAdministratortotheUsers.

Page 22: Garment Store System

22

TheAdministratorwill alsobemanaging the Suppliers.Only theAdministratorwillhavetheauthoritytoAdd,ModifyorDeletetheSupplierdata.

Asdata ismostvital, theAdministratorwillhavetheoptiontobackupthedatabasewhich will include the Member details, User accounts, Product details, Inventory,Supplier details, Sales log, Members Log and Inventory Log. When the BACKUPDATABASEbutton is pressed, the databasewill be copied to theBACKUPdirectoryinside the program directory. Also, if some data is accidentally deleted, theAdministrator can use the RESTORE DATABASE option to restore the completedatabase from the previous backup. This will copy the database from the BACKUPdirectoryandreplaceitwiththedatabaseinthemaindirectoryoftheapplication.

REPORTS SCREEN The Report Screen will give an option of three types of Reports : Sales,InventoryandMembers.

Page 23: Garment Store System

23

SALES REPORT SCREEN TheSALESREPORTwill havebasicdetails such asDate,BillNumber and theTotalAmount of the Bill. Thiswill allow the Store Owner to view the Summary of Salesmade.ThisreportwillbegeneratedusingCrystalreportsinVisualBasicsoitcanbeprintedandexportedtovariousfileformats.

INVENTORY REPORT SCREEN The INVENTORYREPORTwill give all the details required by the Store Owner viz.Date of Purchase, Name of the Supplier, Supplier’s Reference Number (Bill No. orDelivery Note No.), the Product received under such Bill and the Quantity of theproductreceived.ThiswillallowtheStoreOwnertoviewtheSummaryofPurchasemade.ThisreportwillbegeneratedusingCrystalreportsinVisualBasicsoitcanbeprintedandexportedtovariousfileformats.

Page 24: Garment Store System

24

MEMBER REPORT SCREEN TheMEMBERREPORTwillgiveallthedetailsoftheMembersrequiredbytheStoreOwner viz.Membership CardNumber,Nameof theMember, TelephoneNumber oftheMember,E‐mailof theMemberandAddressof theMember.Thiswill allow theStoreOwnertoviewtheListofMembersofthestorewhohaveitsMembership.ThisreportwillbegeneratedusingCrystalreportsinVisualBasicsoitcanbeprintedandexportedtovariousfileformats.

Page 25: Garment Store System

25

MANAGE PRODUCTS SCREEN TheMANAGEPRODUCTSScreenhasadrop‐downMenuwhichwill listtheCategoryof the Products to bemanaged. Once the Category is selected, a Table will appearbelow.TheTablehascolumnsofProductCode,ProductName,Priceof theProductandStockoftheProduct.SincetherearemanyProductsundereachcategory,aTableviewwouldbesuitableasallofthemcouldbeseenataglance.TheAdministratorcanAdd a new product,Modify a product or Delete a product using the buttons at thebottomof thescreen.This featurewillbeprovidedonlyto theAdministratoras theAdministrator is normally required to Change the Product Name, Code, Price andStockasalsotoAdd,ModifyorDeleteaproduct fromtherangeofproductsofferedfromtimetotime.

Page 26: Garment Store System

26

MANAGE USERS SCREEN TheAdministratorwillbeabletomanagetheUserAccountsofthesystembyclickingon the MANAGE USERS button. This will display the Staff name, Username andPassword fields. The Administrator will be able to navigate through the Users byclickingonthearrows.UserscanbeaddedbyclickingontheADDbuttonandsavedby using the SAVE button. The Administrator will also be able to modify the Userdetailsbynavigating to theUser, changing thenecessarydetailsandclickingon theMODIFY button. This will save the changes made in the User details. TheAdministratorwillalsobeabletodeleteaUserbynavigatingtotheUserandclickingontheDELETEbutton.ThustheAdministratorwillhavetotalcontroloverthesystem.TheUsernameandPasswordarealsoallottedbytheAdministrator.

Page 27: Garment Store System

27

SUPPLIERS SCREEN TheAdministratorwillbeabletomanagetheSuppliersoftheStoreintheSystembyclicking on the SUPPLIERS button. This will display the Suppliers Code, SuppliersName,Supplier’sAddress,Supplier’sTelephoneNumberandSupplier’sTINNumber.TheSuppliersdetailsaredisplayedintheTableform.TheAdministratorwillbeabletoADDaNewSupplierbyclickingontheADDbuttonandsavetheNewSupplierbyusingtheSAVEbutton.TheAdministratorwillalsobeabletomodifythedetailsoftheSupplierbyclickingon theRow inwhich theSupplier is listedandcarryingout thechangesandclickingon theMODIFYbutton.Thiswill save thechangesmade in theSupplier’sdetails.TheAdministratorwillalsobeabletodeleteaSupplierbyclickingon the desired Row of the Supplier and clicking on the DELETE button. Thus theAdministratorwillhavetotalcontrolovertheSupplierdetailsintheSystem.

Page 28: Garment Store System

28

BACKUP DATABASE Asdata ismostvital, theAdministratorwillhavetheoptiontoBackupthedatabasewhich will include the Member details, User accounts, Inventory, Product details,Supplier details, Sales Log, Members Log and Inventory Log. When the BACKUPDATABASEbutton is pressed, the databasewill be copied to theBACKUPdirectoryinside the program directory. After the backup is done, a message box will bedisplayedwiththemessage“BACKUPSUCCESSFUL”.

Page 29: Garment Store System

29

RESTORE DATABASE If some data is accidentally deleted, the Administrator can use the RESTOREDATABASEoptiontoRestorethecompletedatabasefromthepreviousBackup.ThiswillcopythedatabasefromtheBACKUPdirectoryandreplaceitwiththedatabaseinthemaindirectoryoftheapplication.Whentherestoreisdone,amessageboxwillbedisplayedwiththemessage“RESTORESUCCESSFUL”.

Page 30: Garment Store System

30

LOG OUT

When the “LOG OUT” Button is pressed from the ADMIN PANEL Screen, theAdministratorisloggedoutandtheLOGINScreenwillbedisplayed.

Page 31: Garment Store System

31

MAIN SCREEN When the User will log‐in with the Account details (Username and Password)provided by the Administrator, then the MAIN SCREEN will open which will bedisplayedtoall theUsers.ThisScreenwillhaveall featuresrequiredby theUser intheGarmentStorefortheirday‐to‐daySalesandInventoryrequirements.

There will be five buttons on the MAIN SCREEN: VIEW PRODUCTS, NEW SALE,MEMBERSDATABASE,INVENTORYandLOGOUT.

VIEW PRODUCTwill display anotherWindow. ThisWindow has two sections. TheLeft section hasMALECategory of Products and theRight section has the FEMALECategory of Products. There are six categories of garments listed in each. InMALESection, the Categories are Shirts, T‐Shirts, Jeans, Shorts, Trousers and Jackets. InFEMALE Section, the Categories are Tops, Capris, Jeans, Skirts, Trousers andStockings.ThereisalsoaBACKButtonontheScreen,which,whenpressedwillreturntotheMAINSCREEN.

NEWSALEButtonwillbeusedwhenaSalehastoberecorded.

MEMBERSDATABASEButtoncanbeusedbytheUsertoviewtheMembersDatabaseandmakeanychangesinthedatabase.TheUserisauthorizedtomakechangesinthisdatabaseasthestaffwouldbeenlistingnewmembers.ItwillalsoenabletheUsertoverifyaparticularMember.

When theLOGOUTButton ispressed, theUser is loggedoutof thisScreenand theLOGINScreenwillbedisplayed.

Page 32: Garment Store System

32

PRODUCTS SCREEN VIEW PRODUCTwill display anotherWindow. ThisWindow (PRODUCTSWindow)hasTwoSectionsofProducts.TheLeftsectionhasMALECategoryofProductsandtheRight section has the FEMALE Category of Products. There are six categories ofgarments listed in each. InMALE Section, the Categories are Shirts, T‐Shirts, Jeans,Shorts, Trousers and Jackets. In FEMALE Section, the Categories are Tops, Capris,Jeans, Skirts, Trousers and Stockings. There is also a BACK Button on the Screen,which,whenpressedwillreturntotheMAINSCREEN.

Page 33: Garment Store System

33

WhenanyoftheCategoryofProductButtonispressed,itwillopenanotherWindow.InthisWindow,thenameoftheProductCategorywillbedisplayedonTopandbelowthattherewillbeatable.TheColumnsoftheTablewouldlistProductCode,ProductName,PriceoftheProductandStockoftheProductcurrently intheStore.This isaveryimportantpartoftheProgramasitgivesthereal‐timestockoftheProduct.TheUserwillonlybeabletoviewtheProduct,Code,PriceandStockbutwillnotbeabletoaddand/oreditand/ordeleteanythinginthiswindow.Foreg.IftheSHIRTSCategoryButtonispressed,theTabledisplayedwillshowvarioustypesofShirtsavailablewithitsCode,Name,PriceandStock.ThusthefirstentryiswithCode:MSHL006whichisforProductName:PlainShirtatPrice:600andtheStock:101.TheProductvalueslikeCode, Name, Price and Stock have been filled by the Administrator through theMANAGEPRODUCToptionintheADMINPANEL.

Page 34: Garment Store System

34

NEW SALE SCREEN This is a very important Screen asmany forms of data are put to use here.When theUserwillpress theNEWSALEButton, theNEWSALEWindowwillopen.Thefirstfieldwillbeadropdownmenulistingtheproductsthatcanbesold.Thislistofproductswillbe setby theAdministrator in theMANAGEPRODUCTSSCREEN intheADMINPANEL.FromthisMenu,theUserhastoselecttheproducttobesold.Afterselectingtheproductfromthedrop‐downmenu,thequantitywillhavetobeenteredin the Quantity field and the ADD button will have to be pressed. When the ADDbutton is pressed, the Product along with the Product Code, Quantity, Rate andAmountforthat itemwillbedisplayedintheTablebelow.MultipleproductscanbeaddedtotheTablebyselectingtheProductsfromthedrop‐downmenu,fillinginthequantityandpressingtheADDButtonaftereachselection.ThiswillgoonaddingtheproductsintheTable.ProductscanalsoberemovedfromtheTablebyselectingtheproduct from the Table and clicking on the REMOVE Button. This will remove theProductalongwithitsQuantity,RateandAmountfromtheTable.

As the User goes on adding the products to the Cart as also to the Table, the Rowbelow the Table namedTOTALwill display the Total of the Amount column of theTable.Belowthat theRowof“DISCOUNT(10%)”hasanotherButton“ENTERCARDNO.”. This Row will only be activated if a valid Card Number is put in. Below theDISCOUNTRow,istheVAT(4%)Rowwhichdisplaysthefigureof4%VATontheSaleAmount. This figure is also automatically updated like theTOTAL figure.Below theVAT (4%) Row is the row of TOTAL AMOUNT. This Row displays the sum of theTOTALrowandtheVATrow.This figure isalsoautomaticallyupdatedandchangeswiththechangesmadeintheTablecontents.

Page 35: Garment Store System

35

If the “ENTER CARD NO.” Button is pressed, it will open a Window asking theMembership CardNumber. TheUser has to fill in a valid CardNumber. If theUserentersavalidCardNumber,aPop‐upwindowwillappearwithmessage“ValidCardNo.” and the DISCOUNT row will display the 10% discount figure. As soon as thediscountiscalculatedandfigureisdisplayed,theVATfigurewillgetupdatedandwillcalculateVAT4%ontheNetSalesFigure i.e.Total lessDiscount.TheTotalAmountfigurewill also get updated as itwill be a sumof theNet Sales Figure andVAT i.e.Total lessDiscount plus VAT.However, if in the Pop‐upwindow, theUser enters aCardNumberwhichisnotvalidi.e.memberisnotcreatedonthatnumber,thentherewillbeaPop‐upwindowwiththemessage“InvalidCardNo.”andan“OK”buttontothatpop‐upwindow,whichwhenpressed,willreturntotheNEWSALESCREEN.

At thisstage, theUserwillhaveanoption topress theCONFIRMButton toConfirmtheSaleortopresstheCANCELButtonandCanceltheSale.IftheUserwillpresstheCONFIRMButton,theSalewillbeconfirmedandthenextScreenofSALESBILLwillopen.However,iftheUserpressestheCANCELButton,theMAINSCREENwillopen.

Page 36: Garment Store System

36

SALES BILL SCREEN AftertheSaleisconfirmed,aSalesBillwillbegeneratedwithautomaticBillNumber,Date, Customer Name (Members Name will be displayed if discount is taken onMembership Card) and Card No. (if discount is taken on Membership Card). TheSALESBILLSCREENwillalsoshowtheTablewithdetailslikeItemspurchasedalongwith Rate, Quantity and Amount. The box below the Table will display the Total,Discount,VATandTotalAmountpayable.TherewillbeaDONEButtonatthebottomoftheSalesBill.OnpressingofthisDONEButton,thedetailsoftheSalesBillwillbeloggedintheSaleslogandtheMAINSCREENwillbedisplayedreadytotakeanotherOrder.

Page 37: Garment Store System

37

MEMBER DATABASE SCREEN ThisScreenwilldisplaytheMEMBERDATABASE.AtthetoppartoftheScreen,thereisaSEARCHBox.IntheSEARCHBoxthereisafieldwhereCardNo.istobefilledin.After filling the Card Number, the User has to press the SEARCH Button givenalongside.OnpressingtheSEARCHButton,iftheinputnumberisavalidnumberandif there is amember listed under that number, a pop‐upwindowwill openwith amessage “Member Found” and there would be an OK Button in the Pop‐up. OnpressingtheOKButton,thefieldsintheINFOBoxwouldbeautomaticallyfilledwiththedataoftheMember.IftheCardNumberinputbytheUserisnotavalidnumberorifthereisnomemberlistedunderthatnumber,thenapop‐upwindowwillopenwithamessage“MembernotFound”andtherewouldbeanOKButtoninthePop‐up.Onpressing the OK button, the pop‐up window will close leaving the MEMBERS

Page 38: Garment Store System

38

DATABASEScreenopen.However,iftheUserentersalphabetsorillogicaldataintheCardNumberfieldandpressestheSEARCHButton,thenapop‐upwindowwillopenwith amessage “Please enter a valid card number”. This pop‐up windowwill alsohaveanOKbutton.OnpressingtheOKbutton,thepop‐upwindowwillcloseleavingtheMEMBERSDATABASEScreenopen.

The User will have the authority to ADD or MODIFY any Member in theMEMBERDATABASE.That is, theUser canAdd a newmemberwith its details likeName,E‐mailAddress,TelephoneNumberandPostalAddress.However,theUserandeventheAdministratorcannotdeletetheMemberoncemade.Also,theMembershipNumberisupdatedonceamemberiscreatedinthatnumber.So,iftheUserwantstocreateaNewMember,hehastopresstheADDbutton.OnpressingtheADDbutton,all the fieldsexcept theCardNumber fieldwillbeactivated.TheCardNumber fieldwill not be activated but will have the updated number which is available to beallottedtotheMember.TheMEMBERDATABASEwillhavefourbuttonsatthebottomofthewindow:ADD,SAVE,MODIFY&CLOSE.IftheUserwantstoModifythedetailsof a Member, he has to press the MODIFY button to activate the fields and makechanges.Aftermakingthenecessarychanges,theUserhastopresstheSAVEbuttonto save those changes. To Close thisWindow and return to MAIN SCREEN, CLOSEbuttontobeused.

Page 39: Garment Store System

39

INVENTORY SCREEN The INVENTORY SCREEN is to be used by the User to input the data of the goodsreceivedfromtheSupplier.TheUsercanonlyinputthedataandcannoteditoralterany data already put in. The first field in this screenwill be the Supplier field. TheSupplierhastobeselectedfromthedrop‐downmenu.TheSupplierManagementcanonly be done by the Administrator form the SUPPLIERS Button in ADMIN PANEL.Once the Supplier is selected from the drop down panel, the TIN Number will beautomaticallyfilledandwillbeanon‐activefield.ThenextfieldwillbeSUPREFNOor“Suppliers Reference Number”. In this field, the Suppliers Bill Number or DeliveryNoteNumberunderwhichthegoodshavebeenreceivedhastobefilledin.Belowthisfield, therewillbe thePRODUCT field.Thisagainwouldbeadrop‐downmenuandUserhastoselectthePRODUCTfromthefieldandhastofillinthequantityreceivedin the fieldbelow.After checking theactual receiptof goods, theUserhas toeitherpressCANCELorCONFIRM.IftheUserpressesCANCEL,theINVENTORYSCREENwillclose andMAIN SCREENwill be displayed without carrying out any change in theInventory. However, if the User presses the CONFIRM button, the INVENTORY

Page 40: Garment Store System

40

SCREEN will still close and MAIN SCREEN will be displayed but necessary stockadditionswillhavebeenmadeintheInventory.

LOG OUT Whenthe“LOGOUT”ButtonispressedfromtheMAINSCREEN,theUserisloggedoutandtheLOGINScreenwillbedisplayed.

2.1.2 Process Description LOGIN Form Inputs: Username and Password

Check if username is “admin” and password is “attire”

Open Admin Panel

Else Read from Database

If record exists in database, then valid login – Open Main screen

If record does not exist, then display Invalid login alert

Page 41: Garment Store System

41

ADMIN PANEL Form SALES REPORT

Read database table: Sales

Display Crystal report of table with columns: Date, Order Number and Amount

INVENTORY REPORT

Read database table: Inventory

Display Crystal report of table with columns: Date, Supplier, Ref No., Products and Quantity.

MEMBER REPORT

Read database table: Members

Display Crystal report of table with columns: Card No, Name, Telephone, E-mail address and Address.

MANAGE PRODUCTS

Read database table: Products

When admin selects Product category from dropdown menu, open that table from database and display data in table with columns: Product Code, Product Name, Price and Stock.

ADD: Add a new record to the database

SAVE: Save the details entered in the new record

MODIFY: Update the changes made to the database

DELETE: Remove the selected record from the database

BACK: Return to the Admin Panel

MANAGE USERS

Read database table: Users

Display data from table to the fields: Staff Name, Username and Password

Page 42: Garment Store System

42

ADD: Add a new record to the database

SAVE: Save the details entered in the fields

MODIFY: Update the changes made to the database

DELETE: Remove the selected record from the database

BACK: Return to the Admin Panel

SUPPLIERS

Read database table: Suppliers

Open the suppliers table from database and display data in table with columns: Code, Name, Address, Telephone and TIN Number.

ADD: Add a new record to the database

SAVE: Save the details entered in the new record

MODIFY: Update the changes made to the database

DELETE: Remove the selected record from the database

BACK: Return to the Admin Panel

BACKUP DATABASE

Copy Products and Database files from main directory to the BACKUP directory inside the main directory. Display pop-up box with message BACKUP SUCCESSFUL

RESTORE DATABASE

Replace the Products and Database files in the main directory with the ones in the BACKUP directory inside the main directory. Display pop-up box with message RESTORE SUCCESSFUL

LOGOUT: Close the Admin Panel screen and return to the LOGIN Screen

Page 43: Garment Store System

43

MAIN SCREEN

VIEW PRODUCTS

Display list of categories as buttons. When a button is pressed, open a new window with all products in that category, including Code, Name, Price and Stock. This will be in read-only mode.

NEW SALE

Display screen with dropdown menus for Category, Product and Quantity. When the appropriate Category and Product is selected and the Quantity is entered, add the item to the cart. This can be done multiple times to add items to the cart. Items can also be removed be selecting the item from the cart and pressing the Remove button. The amounts will be calculated automatically.

Members can press the “ENTER CARD NO” button and enter a valid card number to obtain a discount.

CANCEL: Will return to Main Screen

CONFIRM: Will display Sales Bill with details like Bill Number, Date, Name and Card Number (If member), and list of all items bought.

BILL

DONE: Log the Date, Bill number and Total Amount in the Sales table in database. Read the OrderNo.txt file and get the value of the Order number in file. Increment the Order number and save it in the file.

Return to Main Screen.

MEMBER DATABASE

Read database table: Members

SEARCH: Enter Card number to perform search and update member details.

ADD: Add a new member to the database.

SAVE: Save the details new member details or modified details.

MODIFY: Allow user to make changes to a member’s information.

BACK: Return to the Main Screen

Page 44: Garment Store System

44

INVENTORY

Select Supplier from dropdown menu. TIN number will appear. Enter Supplier Reference No. (From Supplier’s bill) and then select the Category, Product and Quantity received.

CANCEL: Return to Main Screen

CONFIRM: Find the selected product in the database and add the mentioned quantity to the stock of the product. This will also enter all details including Date, Supplier Name, Reference number, Product received and Quantity in the Inventory log.

LOGOUT: Close the Main screen and return to the LOGIN Screen

2.1.3 Data Structure ThedataisstoredintwoMicrosoftAccessdatabasefiles.OneisProducts.mdbandoneisDatabase.mdb.

TheProductsfilecontainscategoriesofdifferentproductsintheformoftableswiththeProductCode,Name,PriceandStockofeachproduct.

TheDatabasefilecontainsallotherinformationlikeSupplierlist,Saleslog,Inventorylog,MembershipdetailsandUserlogincredentials.

Therearetwoadditionaltextfiles.OneisCardNo.txt,whichisusedtoauto‐generatetheMembershipcardnumberfornewmembers.AndtheotherisOrderNo.txtwhichisusedtoauto‐generateBillnumbersforeachnewbillgenerated.ThesenumbersarethenstoredintothedatabasewithMemberdetailsandSaleslog.

2.2 Intended benefits The user will be able to have some benefit form the software developed.

• The user will be able to view the stock of each product which one click and will not have to count the stock everyday and write it in a book.

• When a sale will be made, the stock will be automatically updated, so there is no counting involved.

• The user can also make new Sales with the software and the sale will be logged onto the computer, so the Sales Book is no longer required to be maintained manually and updated after each sale.

• The Members Database is connected to sales, so there is no need to lookup for Membership Card Number manually in the book, the Card will be automatically validated and discount will be given if number is valid.

Page 45: Garment Store System

45

• Member Database can also be maintained more conveniently using the software to search for members and update their details.

• The Administrator can also see Reports of Sales and Inventory log with one click and print it.

2.3 Limits of the scope of the solution 2.3.1 System limitations Thoughthesoftwaretakescareofmostvitalareas,therearelimitationstothesystemandsomethingswouldhavetobedonemanually.Thesystemwillnotbeabletohandleaccountingandotheraspectsofthestore.

2.3.2 File size estimation

FILE:Database.mdb

Table:Inventory

Total number of bytes in 1 record = 140 10% Slack = 14 Estimated number of records per month = 5 Total number of bytes for 5 records = 140 + 14 X 5 = 770 Table:Members

Total number of bytes in 1 record = 270 10% Slack = 27 Estimated number of records per month = 10 Total number of bytes for 10 records = 270 + 27 X 10 = 2970 Table:Sales

Total number of bytes in 1 record = 25 10% Slack = 2.5 Estimated number of records per month = 500 Total number of bytes for 500 records = 25 + 2.5 X 500 = 13750

Table:Users

Total number of bytes in 1 record = 80 10% Slack = 8 Approximate fixed number of records = 5 Total number of bytes for 5 records = 80 + 8 X 5 = 440

Page 46: Garment Store System

46

Table:Suppliers

Total number of bytes in 1 record = 250 10% Slack = 25 Approximate fixed number of records = 10 Total number of bytes for 10 records = 250 + 25 X 10 = 2750

TotalSizeofDatabase.mdb=20680bytes(20.19kb)

FILE:Products.mdb

ProductTable

Total number of bytes in 1 record = 70 10% Slack = 7 Approximate fixed number of records = 15 Total number of bytes for 15 records = 70 + 7 X 15 = 1155 Thereare12ProductTablesofsamesize:1155X12=13860

TotalSizeofProducts.mdb=13860bytes(13.53kb)

FILE:CardNo.txt–Fixedsizeof1kb

FILE:OrderNo.txt–Fixedsizeof1kb

TOTALofallfiles(inkb)=20.19+13.53+1+1=35.72kb

Page 47: Garment Store System

47

3. Software Development, Testing and Implementation 3.1 Development and Testing PROGRAM NAME: GARMENT STORE SYSTEM AUTHOR: Jash Sayani (1332) SCHOOL: Podar International School (IN-420) LANGUAGE: Microsoft Visual Basic 6.0 DATA STORAGE: Microsoft Access Database and Text file

Libraries Used MicrosoftADODataControl6.0(OLEDB)–ForConnectingtoAccessDatabaseMicrosoftDataGridControl6.0(OLEDB)–ForDisplayingDatabasecontentintableMicrosoftFlexGridControl6.0–ForworkingwithtableswhiletakingOrder

3.1.1 Program Listing

1 '******************************************************** 2 ' FORM NAME: frmLogin 3 ' PURPOSE: Login screen for the program 4 '******************************************************** 5 6 'Event when the LOGIN Form loads 7 8 Private Sub Form_Load() 9 10 'ADODC Component name: UsersDB 11 12 'Setting Connection String of UsersDB Adodc component 13 UsersDB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=Database.mdb;Persist Security Info=False" 14 15 'Setting Record source (Table name) for UsersDB 16 UsersDB.RecordSource = "Users" 17 18 19 End Sub 20 21 22 'cmdLogin click event

Page 48: Garment Store System

48

23 'Triggers when the "LOGIN" Button is pressed 24 'Function: Validates the user and loads the main program 25 26 Private Sub cmdLogin_Click() 27 28 'If user is admin (pre-defined account), then AdminPanel is opened 29 If (Username.Text = "admin" And Password.Text = "attire") Then 30 31 'Opens the ADMIN PANEL Form 32 frmAdminPanel.Show 33 'Closes the LOGIN Form 34 Unload Me 35 36 Else 37 38 'If user is not admin, then login information is checked from the database 39 40 'Moving to the first record of the database 41 UsersDB.Recordset.MoveFirst 42 43 'All records are checked untill the end of the database is reached 44 Do Until UsersDB.Recordset.EOF 45 'Checking if the username entered, 46 ‘exists in the database and the password matches 47 If (UsersDB.Recordset(1) = Username.Text And 48 UsersDB.Recordset(2) = Password.Text) Then 49 'If login information is correct, the MAIN Form is opened 50 frmMain.Show 51 'Closes the LOGIN Form 52 Unload Me 53 Exit Sub 54 55 Else 56 'If login information is not correct, the next record in 57 database is checked 58 UsersDB.Recordset.MoveNext 59 End If 60 Loop 61 62 'When all login records are checked and none of them match, a message

box with message "INVALID LOGIN" is shown 63 MsgBox ("INVALID LOGIN") 64 65 End If 66 67 End Sub 68 69 'cmdExit click event

Page 49: Garment Store System

49

70 'Triggers when the "EXIT" Button is pressed 71 'Function: Exits the program 72 73 Private Sub cmdExit_Click() 74 75 'Exits the program 76 Unload Me 77 78 End Sub 79

ADMIN PANEL FORM

80 '******************************************************** 81 ' FORM NAME: frmAdminPanel 82 ' PURPOSE: Allow owner to administer the system 83 '******************************************************** 84 85 'Event when the ADMIN PANEL Form loads 86 87 Private Sub Form_Load() 88 89 'Storing the Date in the DisplayDate variable 90 DisplayDate = DateValue(Now) 91 92 'Formating and displaying the date as DD / MM / YYYY 93 DateLabel.Caption = Format(DisplayDate, "DD / MM / YYYY") 94 95 End Sub 96 97 'TimeRefresh Timer 98 'Function: Refreshes the Time displayed on the AdminPanel form

Page 50: Garment Store System

50

99 100 Private Sub TimeRefresh_Timer() 101 102 'Setting the DisplayTime variable with the current system time 103 DisplayTime = TimeValue(Now) 104 105 'Setting the caption of the TimeLabel as DisplayTime (Variable in

which the time is stored) 106 TimeLabel.Caption = DisplayTime 107 108 End Sub 109 110 'cmdBackupDB click event 111 'Triggers when the "BACKUP DATABASE" Button is pressed 112 'Function: Calls Backup Database Function 113 114 Private Sub cmdBackupDB_Click() 115 116 Call BackupDB 117 118 End Sub 119 120 'cmdHelp click event 121 'Triggers when the "HELP" Button is pressed 122 'Function: Displays Help screen 123 124 Private Sub cmdHelp_Click() 125 frmAdminHelp.Show 126 127 End Sub 128 129 'cmdLogout click event 130 'Triggers when the "LOG OUT" Button is pressed 131 'Function: Returns to Login screen 132 133 Private Sub cmdLogout_Click() 134 frmLogin.Show 135 Unload Me 136 137 End Sub 138 139 'cmdManageProd click event 140 'Triggers when the "MANAGE PRODUCTS" Button is pressed 141 'Function: Opens the Manage Products form 142 143 Private Sub cmdManageProd_Click() 144 ‘Opening the Manage Products form 145 frmManageProd.Show

Page 51: Garment Store System

51

146 ‘Closing Admin Panel 147 Unload Me 148 149 End Sub 150 151 'cmdManageUsers click event 152 'Triggers when the "MANAGE USERS" Button is pressed 153 'Function: Opens the Manage Users form 154 155 Private Sub cmdManageUsers_Click() 156 ‘Opening Manage Users form 157 frmUsers.Show 158 ‘Closing Admin Panel 159 Unload Me 160 161 End Sub 162 'cmdReports click event 163 'Triggers when the "REPORTS" Button is pressed 164 'Function: Opens SELECT REPORT Window 165 166 Private Sub cmdReports_Click() 167 ‘Opening Show Reports window 168 frmReports.Show 169 170 End Sub 171 172 'cmdRestoreDB click event 173 'Triggers when the "RESTORE DATABASE" Button is pressed 174 'Function: Calls the RestoreDB Function 175 176 Private Sub cmdRestoreDB_Click() 177 178 Call RestoreDB 179 180 End Sub 181 182 'cmdSuppliers click event 183 'Triggers when the "SUPPLIERS" Button is pressed 184 'Function: Shows the Suppliers Form 185 186 Private Sub cmdSuppliers_Click() 187 ‘Opening the Suppliers form 188 frmSuppliers.Show 189 ‘Closing the Admin Panel 190 Unload Me 191 192 End Sub 193

Page 52: Garment Store System

52

REPORTS FORM

194 195 '******************************************************** 196 ' FORM NAME: frmReports 197 ' PURPOSE: Opens Reports window with Report Options 198 '******************************************************** 199 200 201 'cmdInventory click event 202 'Triggers when the "INVENTORY" Button is pressed 203 'Function: Opens Inventory Report and closes the Select 204 'Report window 205 206 Private Sub cmdInventory_Click() 207 ‘Opens the Inventory Report 208 InventoryReport.Show 209 ‘Closes the Select Report window 210 Unload Me 211 212 End Sub 213 214 'cmdMember click event 215 'Triggers when the "MEMBERS" Button is pressed 216 'Function: Opens Members List and closes the Select 217 'Report window 218 219 Private Sub cmdMember_Click() 220 ‘Opens the Inventory Report 221 MemberReport.Show 222 ‘Closes the Select Report window 223 Unload Me 224 225 End Sub 226 227 'cmdSales click event 228 'Triggers when the "SALES" Button is pressed 229 'Function: Opens Sales Report and closes the Select 230 'Report window 231 232 Private Sub cmdSales_Click()

Page 53: Garment Store System

53

233 ‘Opens the Inventory Report 234 SalesReport.Show 235 ‘Closes the Select Report window 236 Unload Me 237 238 End Sub

MANAGE PRODUCTS FORM

239 240 '******************************************************** 241 ' FORM NAME: frmManageProd 242 ' PURPOSE: Allows Administrator to manage products 243 '******************************************************** 244 245 'Event when the MANAGE PRODUCTS Form loads 246 Private Sub Form_Load() 247 248 ‘Setting Grid to Invisible, initially 249 ProdGrid.Visible = False 250 251 ‘Filling Categories in DropDown menu 252 ProdCat.AddItem "MALE - SHIRTS" 253 ProdCat.AddItem "MALE - T-SHIRTS" 254 ProdCat.AddItem "MALE - JEANS" 255 ProdCat.AddItem "MALE - SHORTS" 256 ProdCat.AddItem "MALE - TROUSERS" 257 ProdCat.AddItem "MALE - JACKETS" 258 ProdCat.AddItem "FEMALE - TOPS" 259 ProdCat.AddItem "FEMALE - CAPRIS" 260 ProdCat.AddItem "FEMALE - JEANS" 261 ProdCat.AddItem "FEMALE - SKIRTS" 262 ProdCat.AddItem "FEMALE - TROUSERS" 263 ProdCat.AddItem "FEMALE - STOCKINGS" 264 265 ‘Disabling buttons while grid is invisible 266 cmdAdd.Enabled = False 267 cmdModify.Enabled = False 268 cmdDelete.Enabled = False 269 270 End Sub 271

Page 54: Garment Store System

54

272 'ProdCat click event 273 'Triggers when an option from Product category is selected 274 'Function: Fills the product dropdown menu with selected 275 'category 276 277 Private Sub ProdCat_Click() 278 279 ‘When option is selected, Grid will be visible 280 ProdGrid.Visible = True 281 282 ‘Filling the Product dropdown menu with products selected category 283 284 Select Case ProdCat.List(ProdCat.ListIndex) 285 286 Case "MALE - SHIRTS" 287 Set ProdGrid.DataSource = M_Shirts 288 289 ProdGrid.Columns(0).Width = 1250 290 ProdGrid.Columns(1).Width = 2150 291 ProdGrid.Columns(2).Width = 1130 292 ProdGrid.Columns(3).Width = 950 293 294 Case "MALE - T-SHIRTS" 295 Set ProdGrid.DataSource = M_Tshirts 296 297 ProdGrid.Columns(0).Width = 1250 298 ProdGrid.Columns(1).Width = 2150 299 ProdGrid.Columns(2).Width = 1130 300 ProdGrid.Columns(3).Width = 950 301 302 Case "MALE - JEANS" 303 Set ProdGrid.DataSource = M_Jeans 304 305 ProdGrid.Columns(0).Width = 1250 306 ProdGrid.Columns(1).Width = 2150 307 ProdGrid.Columns(2).Width = 1130 308 ProdGrid.Columns(3).Width = 950 309 310 Case "MALE - SHORTS" 311 Set ProdGrid.DataSource = M_Shorts 312 313 ProdGrid.Columns(0).Width = 1250 314 ProdGrid.Columns(1).Width = 2150 315 ProdGrid.Columns(2).Width = 1130 316 ProdGrid.Columns(3).Width = 950 317 318 Case "MALE - TROUSERS" 319 Set ProdGrid.DataSource = M_Trousers

Page 55: Garment Store System

55

320 321 ProdGrid.Columns(0).Width = 1250 322 ProdGrid.Columns(1).Width = 2150 323 ProdGrid.Columns(2).Width = 1130 324 ProdGrid.Columns(3).Width = 950 325 326 Case "MALE - JACKETS" 327 Set ProdGrid.DataSource = M_Jackets 328 329 ProdGrid.Columns(0).Width = 1250 330 ProdGrid.Columns(1).Width = 2150 331 ProdGrid.Columns(2).Width = 1130 332 ProdGrid.Columns(3).Width = 950 333 334 Case "FEMALE - TOPS" 335 Set ProdGrid.DataSource = F_Tops 336 337 ProdGrid.Columns(0).Width = 1250 338 ProdGrid.Columns(1).Width = 2150 339 ProdGrid.Columns(2).Width = 1130 340 ProdGrid.Columns(3).Width = 950 341 342 Case "FEMALE - CAPRIS" 343 Set ProdGrid.DataSource = F_Capris 344 345 ProdGrid.Columns(0).Width = 1250 346 ProdGrid.Columns(1).Width = 2150 347 ProdGrid.Columns(2).Width = 1130 348 ProdGrid.Columns(3).Width = 950 349 350 Case "FEMALE - JEANS" 351 Set ProdGrid.DataSource = F_Jeans 352 353 ProdGrid.Columns(0).Width = 1250 354 ProdGrid.Columns(1).Width = 2150 355 ProdGrid.Columns(2).Width = 1130 356 ProdGrid.Columns(3).Width = 950 357 358 Case "FEMALE - SKIRTS" 359 Set ProdGrid.DataSource = F_Skirts 360 361 ProdGrid.Columns(0).Width = 1250 362 ProdGrid.Columns(1).Width = 2150 363 ProdGrid.Columns(2).Width = 1130 364 ProdGrid.Columns(3).Width = 950 365 366 Case "FEMALE - TROUSERS" 367 Set ProdGrid.DataSource = F_Trousers

Page 56: Garment Store System

56

368 369 ProdGrid.Columns(0).Width = 1250 370 ProdGrid.Columns(1).Width = 2150 371 ProdGrid.Columns(2).Width = 1130 372 ProdGrid.Columns(3).Width = 950 373 374 Case "FEMALE - STOCKINGS" 375 Set ProdGrid.DataSource = F_Stockings 376 377 ProdGrid.Columns(0).Width = 1250 378 ProdGrid.Columns(1).Width = 2150 379 ProdGrid.Columns(2).Width = 1130 380 ProdGrid.Columns(3).Width = 950 381 382 End Select 383 384 ‘Enabling the buttons once grid is filled 385 cmdAdd.Enabled = True 386 cmdModify.Enabled = True 387 cmdDelete.Enabled = True 388 389 End Sub 390 391 'cmdAdd click event 392 'Triggers when the "ADD" Button is pressed 393 'Function: Add products to database 394 395 Private Sub cmdAdd_Click() 396 397 ‘Adding record to selected category 398 If (ProdCat.Text = "MALE - SHIRTS") Then 399 M_Shirts.Recordset.AddNew 400 401 ElseIf (ProdCat.Text = "MALE - T-SHIRTS") Then 402 M_Tshirts.Recordset.AddNew 403 404 ElseIf (ProdCat.Text = "MALE - JEANS") Then 405 M_Jeans.Recordset.AddNew 406 407 ElseIf (ProdCat.Text = "MALE - SHORTS") Then 408 M_Shorts.Recordset.AddNew 409 410 ElseIf (ProdCat.Text = "MALE - TROUSERS") Then 411 M_Trousers.Recordset.AddNew 412 413 ElseIf (ProdCat.Text = "MALE - JACKETS") Then 414 M_Jackets.Recordset.AddNew 415

Page 57: Garment Store System

57

416 ElseIf (ProdCat.Text = "FEMALE - TOPS") Then 417 F_Tops.Recordset.AddNew 418 419 ElseIf (ProdCat.Text = "FEMALE - CAPRIS") Then 420 F_Capris.Recordset.AddNew 421 422 ElseIf (ProdCat.Text = "FEMALE - JEANS") Then 423 F_Jeans.Recordset.AddNew 424 425 ElseIf (ProdCat.Text = "FEMALE - SKIRTS") Then 426 F_Skirts.Recordset.AddNew 427 428 ElseIf (ProdCat.Text = "FEMALE - TROUSERS") Then 429 F_Trousers.Recordset.AddNew 430 431 ElseIf (ProdCat.Text = "FEMALE - STOCKINGS") Then 432 F_Stockings.Recordset.AddNew 433 434 End If 435 436 ‘Enabling Save button and disabling Add button 437 cmdSave.Enabled = True 438 cmdAdd.Enabled = False 439 440 End Sub 441 442 'cmdBack click event 443 'Triggers when the "BACK" Button is pressed 444 'Function: Closes the MANAGE PRODUCTS screen and 445 'returns to the ADMIN PANEL 446 447 Private Sub cmdBack_Click() 448 ‘Opening Admin Panel 449 frmAdminPanel.Show 450 ‘Closing Manage Products Form 451 Unload Me 452 453 End Sub 454 455 'cmdDelete click event 456 'Triggers when the "DELETE" Button is pressed 457 'Function: Deletes selected record from database

458 Private Sub cmdDelete_Click() 459 460 ‘Deleting record for selected table and showing confirmation dialog

Page 58: Garment Store System

58

461 If (ProdCat.Text = "MALE - SHIRTS") Then 462 463 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = 464 vbYes Then 465 466 'When the admin selects "Yes" 467 468 'Deleting the selected user from the database 469 M_Shirts.Recordset.Delete 470 471 'Displaying a message box with message "User Deleted" 472 MsgBox ("Product Deleted") 473 474 'Moving the cursor to the previous record after deleting the 475 ‘selected record 476 M_Shirts.Recordset.MovePrevious 477 478 End If 479 480 ElseIf (ProdCat.Text = "MALE - T-SHIRTS") Then 481 482 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = 483 vbYes Then 484 485 'When the admin selects "Yes" 486 487 'Deleting the selected user from the database 488 M_Tshirts.Recordset.Delete 489 490 'Displaying a message box with message "User Deleted" 491 MsgBox ("Product Deleted") 492 493 'Moving the cursor to the previous record after deleting the

selected record 494 M_Tshirts.Recordset.MovePrevious 495 496 End If 497 498 ElseIf (ProdCat.Text = "MALE - JEANS") Then 499

500 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = 501 vbYes Then 502 503 'When the admin selects "Yes" 504

Page 59: Garment Store System

59

505 'Deleting the selected user from the database 506 M_Jeans.Recordset.Delete 507 508 'Displaying a message box with message "User Deleted" 509 MsgBox ("Product Deleted") 510 511 'Moving the cursor to the previous record after deleting the

selected record 512 M_Jeans.Recordset.MovePrevious 513 514 End If 515 516 ElseIf (ProdCat.Text = "MALE - SHORTS") Then 517 518 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = 519 vbYes Then 520 521 'When the admin selects "Yes" 522 523 'Deleting the selected user from the database 524 M_Shorts.Recordset.Delete 525 526 'Displaying a message box with message "User Deleted" 527 MsgBox ("Product Deleted") 528 529 'Moving the cursor to the previous record after deleting the

selected record 530 M_Shorts.Recordset.MovePrevious 531 532 End If 533 534 ElseIf (ProdCat.Text = "MALE - TROUSERS") Then 535 536 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = 537 vbYes Then 538 539 'When the admin selects "Yes" 540 541 'Deleting the selected user from the database 542 M_Trousers.Recordset.Delete 543 544 'Displaying a message box with message "User Deleted" 545 MsgBox ("Product Deleted") 546 547 'Moving the cursor to the previous record after deleting the

selected record 548 M_Trousers.Recordset.MovePrevious 549

Page 60: Garment Store System

60

550 End If 551 552 ElseIf (ProdCat.Text = "MALE - JACKETS") Then 553 554 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = 555 vbYes Then 556 557 'When the admin selects "Yes" 558 559 'Deleting the selected user from the database 560 M_Jackets.Recordset.Delete 561 562 'Displaying a message box with message "User Deleted" 563 MsgBox ("Product Deleted") 564 565 'Moving the cursor to the previous record after deleting the

selected record 566 M_Jackets.Recordset.MovePrevious 567 568 End If 569 570 ElseIf (ProdCat.Text = "FEMALE - TOPS") Then 571 572 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = 573 vbYes Then 574 575 'When the admin selects "Yes" 576 577 'Deleting the selected user from the database 578 F_Tops.Recordset.Delete 579 580 'Displaying a message box with message "User Deleted" 581 MsgBox ("Product Deleted") 582 583 'Moving the cursor to the previous record after deleting the

selected record 584 F_Tops.Recordset.MovePrevious 585 586 End If 587 588 ElseIf (ProdCat.Text = "FEMALE - CAPRIS") Then 589 590 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = 591 vbYes Then 592 593 'When the admin selects "Yes" 594 595 'Deleting the selected user from the database

Page 61: Garment Store System

61

596 F_Capris.Recordset.Delete 597 598 'Displaying a message box with message "User Deleted" 599 MsgBox ("Product Deleted") 600 601 'Moving the cursor to the previous record after deleting the

selected record 602 F_Capris.Recordset.MovePrevious 603 604 End If 605 606 ElseIf (ProdCat.Text = "FEMALE - JEANS") Then 607 608 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = 609 vbYes Then 610 611 'When the admin selects "Yes" 612 613 'Deleting the selected user from the database 614 F_Jeans.Recordset.Delete 615 616 'Displaying a message box with message "User Deleted" 617 MsgBox ("Product Deleted") 618 619 'Moving the cursor to the previous record after deleting the

selected record 620 F_Jeans.Recordset.MovePrevious 621 622 End If 623 624 ElseIf (ProdCat.Text = "FEMALE - SKIRTS") Then 625 626 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = 627 vbYes Then 628 629 'When the admin selects "Yes" 630 631 'Deleting the selected user from the database 632 F_Skirts.Recordset.Delete 633 634 'Displaying a message box with message "User Deleted" 635 MsgBox ("Product Deleted") 636 637 'Moving the cursor to the previous record after deleting the

selected record 638 F_Skirts.Recordset.MovePrevious 639 640 End If

Page 62: Garment Store System

62

641 642 ElseIf (ProdCat.Text = "FEMALE - TROUSERS") Then 643 644 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = 645 vbYes Then 646 647 'When the admin selects "Yes" 648 649 'Deleting the selected user from the database 650 F_Trousers.Recordset.Delete 651 652 'Displaying a message box with message "User Deleted" 653 MsgBox ("Product Deleted") 654 655 'Moving the cursor to the previous record after deleting the

selected record 656 F_Trousers.Recordset.MovePrevious 657 658 End If 659 660 ElseIf (ProdCat.Text = "FEMALE - STOCKINGS") Then 661 662 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = 663 vbYes Then 664 665 'When the admin selects "Yes" 666 667 'Deleting the selected user from the database 668 F_Stockings.Recordset.Delete 669 670 'Displaying a message box with message "User Deleted" 671 MsgBox ("Product Deleted") 672 673 'Moving the cursor to the previous record after deleting the

selected record 674 F_Stockings.Recordset.MovePrevious 675 676 End If 677 678 End If 679 680 681 End Sub 682 683 'cmdModify click event 684 'Triggers when the "MODIFY" Button is pressed 685 'Function: Updates the entries of selected table 686

Page 63: Garment Store System

63

687 Private Sub cmdModify_Click() 688 689 cmdModify.Enabled = False 690 cmdSave.Enabled = True 691 692 End Sub 693 694 Private Sub cmdSave_Click() 695 696 If (ProdCat.Text = "MALE - SHIRTS") Then 697 M_Shirts.Recordset.Update 698 M_Shirts.Recordset.Requery 699 700 ElseIf (ProdCat.Text = "MALE - T-SHIRTS") Then 701 M_Tshirts.Recordset.Update 702 M_Tshirts.Recordset.Requery 703 704 ElseIf (ProdCat.Text = "MALE - JEANS") Then 705 M_Jeans.Recordset.Update 706 M_Jeans.Recordset.Requery 707 708 ElseIf (ProdCat.Text = "MALE - SHORTS") Then 709 M_Shorts.Recordset.Update 710 M_Shorts.Recordset.Requery 711 712 ElseIf (ProdCat.Text = "MALE - TROUSERS") Then 713 M_Trousers.Recordset.Update 714 M_Trousers.Recordset.Requery 715 716 ElseIf (ProdCat.Text = "MALE - JACKETS") Then 717 M_Jackets.Recordset.Update 718 M_Jackets.Recordset.Requery 719 720 ElseIf (ProdCat.Text = "FEMALE - TOPS") Then 721 F_Tops.Recordset.Update 722 F_Tops.Recordset.Requery 723 724 ElseIf (ProdCat.Text = "FEMALE - CAPRIS") Then 725 F_Capris.Recordset.Update 726 F_Capris.Recordset.Requery 727 728 ElseIf (ProdCat.Text = "FEMALE - JEANS") Then 729 F_Jeans.Recordset.Update 730 F_Jeans.Recordset.Requery 731 732 ElseIf (ProdCat.Text = "FEMALE - SKIRTS") Then 733 F_Skirts.Recordset.Update 734 F_Skirts.Recordset.Requery

Page 64: Garment Store System

64

735 736 ElseIf (ProdCat.Text = "FEMALE - TROUSERS") Then 737 F_Trousers.Recordset.Update 738 F_Trousers.Recordset.Requery 739 740 ElseIf (ProdCat.Text = "FEMALE - STOCKINGS") Then 741 F_Stockings.Recordset.Update 742 F_Stockings.Recordset.Requery 743 744 End If 745 746 ‘Displaying Success message 747 MsgBox ("Saved!") 748 749 If (cmdModify.Enabled = False) Then 750 cmdModify.Enabled = True 751 End If 752 753 cmdAdd.Enabled = True 754 cmdSave.Enabled = False 755 756 End Sub

MANAGE USERS FORM

757 '******************************************************** 758 ' FORM NAME: frmUsers 759 ' PURPOSE: Allows the Administrator to manage users 760 '******************************************************** 761 762 ‘Variable used to track whether record is added or modified 763 Public Modify As Boolean 764 765 'Event when the MANAGE USERS Form loads 766 767 Private Sub Form_Load() 768 769 770 'ADODC Component name: UsersDB 771 772 'Setting Connection String of UsersDB Adodc component 773 UsersDB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;

Page 65: Garment Store System

65

774 Data Source=Database.mdb;Persist Security Info=False" 775 776 'Setting Record source (Table name) for UsersDB 777 UsersDB.RecordSource = "Users" 778 779 End Sub 780 781 'cmdAdd click event 782 'Triggers when the "ADD" Button is pressed 783 'Function: A new record is added to the Users database 784 785 Private Sub cmdAdd_Click() 786 787 ‘Enabling fields for entry when new record is being added 788 StaffName.Enabled = True 789 Username.Enabled = True 790 Password.Enabled = True 791 792 cmdSave.Enabled = True 793 cmdAdd.Enabled = False 794 795 'Refreshing the MembersDB control 796 UsersDB.Refresh 797 798 'Adding a new record to MembersDB 799 UsersDB.Recordset.AddNew 800 801 End Sub 802 803 'cmdBack click event 804 'Triggers when the "BACK" Button is pressed 805 'Function: The MANAGE USERS Form is closed and 806 'ADMIN PANEL Form is opened 807 808 Private Sub cmdBack_Click() 809 810 'Opening the ADMIN PANEL Form 811 frmAdminPanel.Show 812 813 'Closing the MANAGE USERS Form 814 Unload Me 815 816 End Sub 817 818 'cmdModify click event 819 'Triggers when the "MODIFY" Button is pressed 820 'Function: Modifies the user details to the database 821

Page 66: Garment Store System

66

822 Private Sub cmdModify_Click() 823 824 ‘Enabling fields for entry for modification 825 StaffName.Enabled = True 826 Username.Enabled = True 827 Password.Enabled = True 828 829 Modify = True 830 831 cmdSave.Enabled = True 832 833 cmdModify.Enabled = False 834 835 836 837 End Sub 838 839 'cmdSave click event 840 'Triggers when the "SAVE" Button is pressed 841 'Function: The user details are saved in the Users database 842 843 Private Sub cmdSave_Click() 844 845 With UsersDB.Recordset 846 847 'Adding the Staff Name 848 UsersDB.Recordset.Fields("Staff Name") = StaffName.Text 849 850 'Adding the Username 851 UsersDB.Recordset.Fields("Username") = Username.Text 852 853 'Adding the Password 854 UsersDB.Recordset.Fields("Password") = Password.Text 855 856 'Updating the Members database 857 UsersDB.Recordset.Update 858 UsersDB.Recordset.Requery 859 860 End With 861 862 cmdSave.Enabled = False 863 cmdAdd.Enabled = True 864 865 ‘If Modify Boolean is true, then Update message will be displayed 866 ‘Or else, new member creation message will be displayed 867 If (Modify = True) Then 868 MsgBox ("User Updated Successfully.") 869 Modify = False

Page 67: Garment Store System

67

870 Else 871 MsgBox ("User Created Successfully.") 872 End If 873 874 StaffName.Enabled = False 875 Username.Enabled = False 876 Password.Enabled = False 877 878 cmdModify.Enabled = True 879 880 End Sub 881 882 883 'cmdDelete click event 884 'Triggers when the "DELETE" Button is pressed 885 'Function: The select user is deleted from the User database 886 887 Private Sub cmdDelete_Click() 888 889 'Displaying a confirmation dialog with message "Are you sure?" 890 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = vbYes

Then 891 892 'When the user selects "Yes" 893 894 'Deleting the selected user from the database 895 UsersDB.Recordset.Delete 896 897 'Displaying a message box with message "User Deleted" 898 MsgBox ("User Deleted") 899 900 'Moving the cursor to the previous record after deleting the

selected record 901 UsersDB.Recordset.MovePrevious 902 903 End If 904 905 End Sub 906

SUPPLIERS FORM

Page 68: Garment Store System

68

907 '******************************************************** 908 ' FORM NAME: frmSuppliers 909 ' PURPOSE: Allows the Administrator to manage suppliers 910 '******************************************************** 911 912 'Event when the SUPPLIERS Form loads 913 914 Private Sub Form_Load() 915 916 'ADODC Component name: SuppliersDB 917 918 'Setting Connection String of SuppliersDB Adodc component 919 SuppliersDB.ConnectionString = "Provider=Microsoft.Jet. 920 OLEDB.4.0;Data Source=Database.mdb; 921 Persist Security Info=False" 922 923 'Setting Record source (Table name) for SuppliersDB 924 SuppliersDB.RecordSource = "Suppliers" 925 926 End Sub 927 928 'cmdAdd click event 929 'Triggers when the "ADD" Button is pressed 930 'Function: Allows the Administrator to ADD Suppliers to 931 'database 932 933 Private Sub cmdAdd_Click() 934 935 'Adding a new record to the record database 936 SuppliersDB.Recordset.AddNew 937 938 'Enabling the SAVE Button 939 cmdSave.Enabled = True 940 941 End Sub 942 943 'cmdBack click event 944 'Triggers when the "BACK" Button is pressed 945 'Function: The MANAGE SUPPLIERS Form closes and the 946 ADMIN PANEL Form is opened 947 948 Private Sub cmdBack_Click() 949 950 'Opening the ADMIN PANEL Form 951 frmAdminPanel.Show 952 953 'Closing the MANAGE SUPPLIERS Form 954 Unload Me

Page 69: Garment Store System

69

955 956 End Sub 957 958 'cmdDelete click event 959 'Triggers when the "DELETE" Button is pressed 960 'Function: The selected Supplier is deleted from the database 961 962 Private Sub cmdDelete_Click() 963 964 'Displaying a confirmation dialog with message "Are you sure?" 965 If MsgBox("Are you sure?", vbYesNo, "CONFIRMATION") = vbYes

Then 966 967 'When the user selects "Yes" 968 969 'Deleting the selected Supplier from the database 970 SuppliersDB.Recordset.Delete 971 972 'Displaying a message box with message "Supplier Deleted" 973 MsgBox ("Supplier Deleted") 974 975 'Moving the cursor to the previous record after deleting the

selected record 976 SuppliersDB.Recordset.MovePrevious 977 978 End If 979 980 End Sub 981 982 'cmdModify click event 983 'Triggers when the "MODIFY" Button is pressed 984 'Function: The modification to a Supplier's information is 985 'updated to the database 986 987 Private Sub cmdModify_Click() 988 989 'The modification to the Supplier's information is updated to the

database 990 SuppliersDB.Recordset.Update 991 992 'Displaying a message box with message "Supplier Information

Updated" 993 MsgBox ("Supplier Information Updated") 994 995 End Sub 996 997 'cmdSave click event 998 'Triggers when the "SAVE" Button is pressed

Page 70: Garment Store System

70

999 'Function: The Supplier is saved to the database 1000 1001 Private Sub cmdSave_Click() 1002 1003 'Saving the Supplier to the database 1004 SuppliersDB.Recordset.Save 1005 1006 'Displaying a message box with the message "Supplier Saved" 1007 MsgBox ("Supplier Saved") 1008 1009 cmdSave.Enabled = False 1010 1011 End Sub

MAIN FORM

1012 '******************************************************** 1013 ' FORM NAME: frmMain 1014 ' PURPOSE: Allows user to operate the system 1015 '******************************************************** 1016 1017 'Event when the MAIN Form loads 1018 1019 Private Sub Form_Load() 1020 1021 'Storing the Date in the DisplayDate variable 1022 DisplayDate = DateValue(Now) 1023 1024 'Formating and displaying the date as DD / MM / YYYY 1025 DateLabel.Caption = Format(DisplayDate, "DD / MM / YYYY") 1026 1027 End Sub 1028 1029 'TimeRefresh Timer 1030 'Function: Refreshes the Time displayed in the AdminPanel 1031 1032 Private Sub TimeRefresh_Timer() 1033 1034 'Setting the DisplayTime variable with the current system time 1035 DisplayTime = TimeValue(Now) 1036

Page 71: Garment Store System

71

1037 'Setting the caption of the TimeLabel as DisplayTime (Variable in which the time is stored)

1038 TimeLabel.Caption = DisplayTime 1039 1040 End Sub 1041 1042 'cmdHelp click event 1043 'Triggers when the "HELP" Button is pressed 1044 'Function: Displays help window 1045 1046 Private Sub cmdHelp_Click() 1047 ‘Opening Help window 1048 frmMainHelp.Show 1049 1050 End Sub 1051 1052 'cmdProducts click event 1053 'Triggers when the "PRODUCTS" Button is pressed 1054 'Function: Opens Product form with categories 1055 1056 Private Sub cmdProducts_Click() 1057 frmProducts.Show 1058 Unload Me 1059 1060 End Sub 1061 1062 'cmdInventory click event 1063 'Triggers when the "INVENTORY" Button is pressed 1064 'Function: Opens the Inventory form to enter stock 1065 1066 Private Sub cmdInventory_Click() 1067 frmInventory.Show 1068 Unload Me 1069 1070 End Sub 1071 1072 'cmdMembers click event 1073 'Triggers when the "MEMBER DATABASE" Button is pressed 1074 'Function: Opens Member Database to Add and 1075 'Update Members 1076 1077 Private Sub cmdMembers_Click() 1078 frmMembers.Show 1079 Unload Me 1080 1081 End Sub 1082 'cmdSale click event 1083 'Triggers when the "NEW SALE" Button is pressed

Page 72: Garment Store System

72

1084 'Function: Open NEW SALE form to make a sale 1085 1086 Private Sub cmdSale_Click() 1087 frmNewSale.Show 1088 Unload Me 1089 1090 End Sub 1091 1092 'cmdLogout click event 1093 'Triggers when the "LOG OUT" Button is pressed 1094 'Function: Return to the LOGIN Screen 1095 1096 Private Sub cmdLogout_Click() 1097 frmLogin.Show 1098 Unload Me 1099 1100 End Sub 1101

PRODUCTS FORM

1102 '******************************************************** 1103 ' FORM NAME: frmProducts 1104 ' PURPOSE: Displays product in categories for viewing 1105 '******************************************************** 1106 1107 ‘String will contain category name of selected category 1108 Public Product As String 1109 1110 'cmdBack click event 1111 'Triggers when the "BACK" Button is pressed 1112 'Function: Closes PRODUCTS Form and returns to MAIN Form 1113 1114 Private Sub cmdBack_Click() 1115 frmMain.Show 1116 Unload Me 1117 1118 End Sub

Page 73: Garment Store System

73

1119 ‘All categories are listed and any button clicked, will open 1120 frmInfo and pass the “Product” string to the form so that it can 1121 display products in selected category. 1122 1123 Private Sub F_Capris_Click() 1124 1125 Product = "F_Capris" 1126 frmInfo.Show 1127 1128 End Sub 1129 1130 Private Sub F_Jeans_Click() 1131 1132 Product = "F_Jeans" 1133 frmInfo.Show 1134 1135 End Sub 1136 1137 Private Sub F_Skirts_Click() 1138 1139 Product = "F_Skirts" 1140 frmInfo.Show 1141 1142 End Sub 1143 1144 Private Sub F_Stockings_Click() 1145 1146 Product = "F_Stockings" 1147 frmInfo.Show 1148 1149 End Sub 1150 1151 Private Sub F_Tops_Click() 1152 1153 Product = "F_Tops" 1154 frmInfo.Show 1155 1156 End Sub 1157 1158 Private Sub F_Trousers_Click() 1159 1160 Product = "F_Trousers" 1161 frmInfo.Show 1162 1163 End Sub 1164 1165 Private Sub Form_Load() 1166

Page 74: Garment Store System

74

1167 End Sub 1168 1169 Private Sub M_Jackets_Click() 1170 1171 Product = "M_Jackets" 1172 frmInfo.Show 1173 1174 End Sub 1175 1176 Private Sub M_Jeans_Click() 1177 1178 Product = "M_Jeans" 1179 frmInfo.Show 1180 1181 End Sub 1182 1183 Private Sub M_Shirts_Click() 1184 1185 Product = "M_Shirts" 1186 frmInfo.Show 1187 1188 End Sub 1189 1190 Private Sub M_Shorts_Click() 1191 1192 Product = "M_Shorts" 1193 frmInfo.Show 1194 1195 End Sub 1196 1197 Private Sub M_Trousers_Click() 1198 1199 Product = "M_Trousers" 1200 frmInfo.Show 1201 1202 End Sub 1203 1204 Private Sub M_Tshirts_Click() 1205 1206 Product = "M_Tshirts" 1207 frmInfo.Show 1208 1209 End Sub 1210

Page 75: Garment Store System

75

INFO FORM

1211 '******************************************************** 1212 ' FORM NAME: frmInfo 1213 ' PURPOSE: Displays list of products in grid of 1214 ' selected category in frmProducts 1215 '******************************************************** 1216 Private Sub Form_Load() 1217 1218 'Switch case with Product string passed from previous 1219 (frmProducts) form. Grid will display products of selected 1220 category in the grid. 1221 1222 Select Case frmProducts.Product 1223 1224 Case "M_Shirts" 1225 frmInfo.Caption = "MALE SHIRTS - GARMENT STORE SYSTEM" 1226 Title.Caption = "MALE SHIRTS" 1227 Set DataGrid1.DataSource = M_Shirts 1228 1229 DataGrid1.Columns(0).Width = 1250 1230 DataGrid1.Columns(1).Width = 2150 1231 DataGrid1.Columns(2).Width = 1130 1232 DataGrid1.Columns(3).Width = 950 1233 1234 1235 Case "M_Tshirts" 1236 frmInfo.Caption = "MALE T-SHIRTS - GARMENT STORE SYSTEM" 1237 Title.Caption = "MALE T-SHIRTS" 1238 Set DataGrid1.DataSource = M_Tshirts 1239 1240 DataGrid1.Columns(0).Width = 1250 1241 DataGrid1.Columns(1).Width = 2150 1242 DataGrid1.Columns(2).Width = 1130 1243 DataGrid1.Columns(3).Width = 950 1244 1245 1246 Case "M_Jeans" 1247 frmInfo.Caption = "MALE JEANS - GARMENT STORE SYSTEM" 1248 Title.Caption = "MALE JEANS" 1249 Set DataGrid1.DataSource = M_Jeans 1250 1251 DataGrid1.Columns(0).Width = 1250 1252 DataGrid1.Columns(1).Width = 2150 1253 DataGrid1.Columns(2).Width = 1130

Page 76: Garment Store System

76

1254 DataGrid1.Columns(3).Width = 950 1255 1256 1257 Case "M_Shorts" 1258 frmInfo.Caption = "MALE SHORTS - GARMENT STORE SYSTEM" 1259 Title.Caption = "MALE SHORTS" 1260 Set DataGrid1.DataSource = M_Shorts 1261 1262 DataGrid1.Columns(0).Width = 1250 1263 DataGrid1.Columns(1).Width = 2150 1264 DataGrid1.Columns(2).Width = 1130 1265 DataGrid1.Columns(3).Width = 950 1266 1267 1268 Case "M_Trousers" 1269 frmInfo.Caption = "MALE TROUSERS - GARMENT STORE

SYSTEM" 1270 Title.Caption = "MALE TROUSERS" 1271 Set DataGrid1.DataSource = M_Trousers 1272 1273 DataGrid1.Columns(0).Width = 1250 1274 DataGrid1.Columns(1).Width = 2150 1275 DataGrid1.Columns(2).Width = 1130 1276 DataGrid1.Columns(3).Width = 950 1277 1278 1279 Case "M_Jackets" 1280 frmInfo.Caption = "MALE JACKETS - GARMENT STORE SYSTEM" 1281 Title.Caption = "MALE JACKETS" 1282 Set DataGrid1.DataSource = M_Jackets 1283 1284 DataGrid1.Columns(0).Width = 1250 1285 DataGrid1.Columns(1).Width = 2150 1286 DataGrid1.Columns(2).Width = 1130 1287 DataGrid1.Columns(3).Width = 950 1288 1289 1290 Case "M_Jeans" 1291 frmInfo.Caption = "MALE JEANS - GARMENT STORE SYSTEM" 1292 Title.Caption = "MALE JEANS" 1293 Set DataGrid1.DataSource = M_Jeans 1294 1295 DataGrid1.Columns(0).Width = 1250 1296 DataGrid1.Columns(1).Width = 2150 1297 DataGrid1.Columns(2).Width = 1130 1298 DataGrid1.Columns(3).Width = 950 1299 1300

Page 77: Garment Store System

77

1301 Case "F_Skirts" 1302 frmInfo.Caption = "FEMALE SKIRTS - GARMENT STORE SYSTEM" 1303 Title.Caption = "FEMALE SKIRTS" 1304 Set DataGrid1.DataSource = F_Skirts 1305 1306 DataGrid1.Columns(0).Width = 1250 1307 DataGrid1.Columns(1).Width = 2150 1308 DataGrid1.Columns(2).Width = 1130 1309 DataGrid1.Columns(3).Width = 950 1310 1311 1312 Case "F_Tops" 1313 frmInfo.Caption = "FEMALE TOPS - GARMENT STORE SYSTEM" 1314 Title.Caption = "FEMALE TOPS" 1315 Set DataGrid1.DataSource = F_Tops 1316 1317 DataGrid1.Columns(0).Width = 1250 1318 DataGrid1.Columns(1).Width = 2150 1319 DataGrid1.Columns(2).Width = 1130 1320 DataGrid1.Columns(3).Width = 950 1321 1322 1323 Case "F_Jeans" 1324 frmInfo.Caption = "FEMALE JEANS - GARMENT STORE SYSTEM" 1325 Title.Caption = "FEMALE JEANS" 1326 Set DataGrid1.DataSource = F_Jeans 1327 1328 DataGrid1.Columns(0).Width = 1250 1329 DataGrid1.Columns(1).Width = 2150 1330 DataGrid1.Columns(2).Width = 1130 1331 DataGrid1.Columns(3).Width = 950 1332 1333 1334 Case "F_Capris" 1335 frmInfo.Caption = "FEMALE CAPRIS - GARMENT STORE SYSTEM" 1336 Title.Caption = "FEMALE CAPRIS" 1337 Set DataGrid1.DataSource = F_Capris 1338 1339 DataGrid1.Columns(0).Width = 1250 1340 DataGrid1.Columns(1).Width = 2150 1341 DataGrid1.Columns(2).Width = 1130 1342 DataGrid1.Columns(3).Width = 950 1343 1344 1345 Case "F_Trousers" 1346 frmInfo.Caption = "FEMALE TROUSERS - GARMENT STORE

SYSTEM" 1347 Title.Caption = "FEMALE TROUSERS"

Page 78: Garment Store System

78

1348 Set DataGrid1.DataSource = F_Trousers 1349 1350 DataGrid1.Columns(0).Width = 1250 1351 DataGrid1.Columns(1).Width = 2150 1352 DataGrid1.Columns(2).Width = 1130 1353 DataGrid1.Columns(3).Width = 950 1354 1355 1356 Case "F_Stockings" 1357 frmInfo.Caption = "FEMALE STOCKINGS - GARMENT STORE

SYSTEM" 1358 Title.Caption = "FEMALE STOCKINGS" 1359 Set DataGrid1.DataSource = F_Stockings 1360 1361 DataGrid1.Columns(0).Width = 1250 1362 DataGrid1.Columns(1).Width = 2150 1363 DataGrid1.Columns(2).Width = 1130 1364 DataGrid1.Columns(3).Width = 950 1365 1366 1367 End Select 1368 1369 End Sub

NEW SALE FORM

1370 '******************************************************** 1371 ' FORM NAME: frmNewSale 1372 ' PURPOSE: Lets the user perform a new sale 1373 '******************************************************** 1374 1375 'Key is used to track the row of the cart and Discount will be 1376 true when a card number of member is found in database. 1377 1378 Public Key As Integer 1379 Public Discount As Boolean 1380 1381 'Event when the NEW SALE Form loads 1382 1383 Private Sub Form_Load() 1384 1385 ‘Filling Category dropdown menu with categories

Page 79: Garment Store System

79

1386 1387 ProdCat.AddItem "MALE - SHIRTS" 1388 ProdCat.AddItem "MALE - T-SHIRTS" 1389 ProdCat.AddItem "MALE - JEANS" 1390 ProdCat.AddItem "MALE - SHORTS" 1391 ProdCat.AddItem "MALE - TROUSERS" 1392 ProdCat.AddItem "MALE - JACKETS" 1393 ProdCat.AddItem "FEMALE - TOPS" 1394 ProdCat.AddItem "FEMALE - CAPRIS" 1395 ProdCat.AddItem "FEMALE - JEANS" 1396 ProdCat.AddItem "FEMALE - SKIRTS" 1397 ProdCat.AddItem "FEMALE - TROUSERS" 1398 ProdCat.AddItem "FEMALE - STOCKINGS" 1399 1400 ‘Setting Maximum length of Quantity as 4 characters 1401 Quantity.MaxLength = 4 1402 1403 'Initialiing Key as 0 1404 Key = 0 1405 1406 1407 'Naming the Columns of Cart 1408 Cart.TextMatrix(0, 0) = "PRODUCT" 1409 Cart.TextMatrix(0, 1) = "RATE" 1410 Cart.TextMatrix(0, 2) = "QTY" 1411 Cart.TextMatrix(0, 3) = "AMOUNT" 1412 1413 'Setting the width of the columns of Cart 1414 Cart.ColWidth(0) = 2320 1415 Cart.ColWidth(1) = 700 1416 Cart.ColWidth(2) = 500 1417 Cart.ColWidth(3) = 920 1418 1419 End Sub 1420 1421 'cmdAdd click event 1422 'Triggers when the "ADD" Button is pressed 1423 'Function: Adds selected product to the cart 1424 1425 Private Sub cmdAdd_Click() 1426 1427 Dim Stock As Integer 1428 1429 Key = (Key + 1) 1430 1431 If (ProdCat.ListIndex = 0) Then 1432 1433 M_Shirts.Recordset.MoveFirst

Page 80: Garment Store System

80

1434 1435 'Checking till end of database is reached 1436 1437 Do Until M_Shirts.Recordset.EOF 1438 1439 'Checking if product selected is the product in database 1440 1441 If (M_Shirts.Recordset.Fields.Item(1) = ProdList.Text) Then 1442 1443 Cart.TextMatrix(Key, 0) = 1444 (M_Shirts.Recordset.Fields.Item(0) & " / " & ProdList.Text) 1445 1446 'Adding the Price of product to Cart 1447 Cart.TextMatrix(Key, 1) = 1448 M_Shirts.Recordset.Fields.Item(2).Value 1449 1450 'Adding the Quantity to the Cart 1451 Cart.TextMatrix(Key, 2) = Quantity.Text 1452 1453 'Updating Stock 1454 Stock = Val(M_Shirts.Recordset.Fields.Item(3)) – 1455 Val(Quantity.Text) 1456 1457 M_Shirts.Recordset.Fields.Item(3) = Val(Stock) 1458 1459 'Adding the Amount (Price x Quantity) to the Cart 1460 Cart.TextMatrix(Key, 3) = 1461 (Val(M_Shirts.Recordset.Fields.Item(2).Value) * 1462 Val(Quantity.Text)) 1463 1464 'Adding a row to the Cart for the next item 1465 Cart.AddItem "" 1466 1467 'Clearing the Product combo box and the Quantity field 1468 ProdList.Clear 1469 ProdCat.Text = "" 1470 Quantity.Text = "" 1471 1472 Call Calculate 1473 1474 1475 Exit Sub 1476 1477 Else 1478 1479 'If product is not the current record, then moves to next record 1480 M_Shirts.Recordset.MoveNext 1481

Page 81: Garment Store System

81

1482 End If 1483 Loop 1484 1485 1486 ElseIf (ProdCat.ListIndex = 1) Then 1487 1488 M_Tshirts.Recordset.MoveFirst 1489 1490 'Checking till end of database is reached 1491 1492 Do Until M_Tshirts.Recordset.EOF 1493 1494 'Checking if product selected is the product in database 1495 1496 If (M_Tshirts.Recordset.Fields.Item(1) = ProdList.Text) Then 1497 1498 Cart.TextMatrix(Key, 0) =

(M_Tshirts.Recordset.Fields.Item(0) & " / " & ProdList.Text) 1499 1500 'Adding the Price of product to Cart 1501 Cart.TextMatrix(Key, 1) =

M_Tshirts.Recordset.Fields.Item(2).Value 1502 1503 'Adding the Quantity to the Cart 1504 Cart.TextMatrix(Key, 2) = Quantity.Text 1505 1506 'Updating Stock 1507 Stock = Val(M_Tshirts.Recordset.Fields.Item(3)) -

Val(Quantity.Text) 1508 M_Tshirts.Recordset.Fields.Item(3) = Val(Stock) 1509 1510 'Adding the Amount (Price x Quantity) to the Cart 1511 Cart.TextMatrix(Key, 3) =

(Val(M_Tshirts.Recordset.Fields.Item(2).Value) * Val(Quantity.Text)) 1512 1513 'Adding a row to the Cart for the next item 1514 Cart.AddItem "" 1515 1516 'Clearing the Product combo box and the Quantity field 1517 ProdList.Clear 1518 ProdCat.Text = "" 1519 Quantity.Text = "" 1520 1521 Call Calculate 1522 1523 Exit Sub 1524 1525 Else

Page 82: Garment Store System

82

1526 1527 'If product is not the current record, then moves to next record 1528 M_Tshirts.Recordset.MoveNext 1529 1530 End If 1531 Loop 1532 1533 1534 ElseIf (ProdCat.ListIndex = 2) Then 1535 1536 M_Jeans.Recordset.MoveFirst 1537 1538 'Checking till end of database is reached 1539 1540 Do Until M_Jeans.Recordset.EOF 1541 1542 'Checking if product selected is the product in database 1543 1544 If (M_Jeans.Recordset.Fields.Item(1) = ProdList.Text) Then 1545 1546 Cart.TextMatrix(Key, 0) =

(M_Jeans.Recordset.Fields.Item(0) & " / " & ProdList.Text) 1547 1548 'Adding the Price of product to Cart 1549 Cart.TextMatrix(Key, 1) =

M_Jeans.Recordset.Fields.Item(2).Value 1550 1551 'Adding the Quantity to the Cart 1552 Cart.TextMatrix(Key, 2) = Quantity.Text 1553 1554 'Updating Stock 1555 Stock = Val(M_Jeans.Recordset.Fields.Item(3)) -

Val(Quantity.Text) 1556 M_Jeans.Recordset.Fields.Item(3) = Val(Stock) 1557 1558 'Adding the Amount (Price x Quantity) to the Cart 1559 Cart.TextMatrix(Key, 3) =

(Val(M_Jeans.Recordset.Fields.Item(2).Value) * Val(Quantity.Text)) 1560 1561 'Adding a row to the Cart for the next item 1562 Cart.AddItem "" 1563 1564 'Clearing the Product combo box and the Quantity field 1565 ProdList.Clear 1566 ProdCat.Text = "" 1567 Quantity.Text = "" 1568 1569 Call Calculate

Page 83: Garment Store System

83

1570 1571 Exit Sub 1572 1573 Else 1574 1575 'If product is not the current record, then moves to next record 1576 M_Jeans.Recordset.MoveNext 1577 1578 End If 1579 Loop 1580 1581 1582 1583 ElseIf (ProdCat.ListIndex = 3) Then 1584 1585 M_Shorts.Recordset.MoveFirst 1586 1587 'Checking till end of database is reached 1588 1589 Do Until M_Shorts.Recordset.EOF 1590 1591 'Checking if product selected is the product in database 1592 1593 If (M_Shorts.Recordset.Fields.Item(1) = ProdList.Text) Then 1594 1595 Cart.TextMatrix(Key, 0) =

(M_Shorts.Recordset.Fields.Item(0) & " / " & ProdList.Text) 1596 1597 'Adding the Price of product to Cart 1598 Cart.TextMatrix(Key, 1) =

M_Shorts.Recordset.Fields.Item(2).Value 1599 1600 'Adding the Quantity to the Cart 1601 Cart.TextMatrix(Key, 2) = Quantity.Text 1602 1603 'Updating Stock 1604 Stock = Val(M_Shorts.Recordset.Fields.Item(3)) -

Val(Quantity.Text) 1605 M_Shorts.Recordset.Fields.Item(3) = Val(Stock) 1606 1607 'Adding the Amount (Price x Quantity) to the Cart 1608 Cart.TextMatrix(Key, 3) =

(Val(M_Shorts.Recordset.Fields.Item(2).Value) * Val(Quantity.Text)) 1609 1610 'Adding a row to the Cart for the next item 1611 Cart.AddItem "" 1612 1613 'Clearing the Product combo box and the Quantity field

Page 84: Garment Store System

84

1614 ProdList.Clear 1615 ProdCat.Text = "" 1616 Quantity.Text = "" 1617 1618 Call Calculate 1619 1620 Exit Sub 1621 1622 Else 1623 1624 'If product is not the current record, then moves to next record 1625 M_Shorts.Recordset.MoveNext 1626 1627 End If 1628 Loop 1629 1630 1631 ElseIf (ProdCat.ListIndex = 4) Then 1632 1633 M_Trousers.Recordset.MoveFirst 1634 1635 'Checking till end of database is reached 1636 1637 Do Until M_Trousers.Recordset.EOF 1638 1639 'Checking if product selected is the product in database 1640 1641 If (M_Trousers.Recordset.Fields.Item(1) = ProdList.Text)

Then 1642 1643 Cart.TextMatrix(Key, 0) =

(M_Trousers.Recordset.Fields.Item(0) & " / " & ProdList.Text) 1644 1645 'Adding the Price of product to Cart 1646 Cart.TextMatrix(Key, 1) =

M_Trousers.Recordset.Fields.Item(2).Value 1647 1648 'Adding the Quantity to the Cart 1649 Cart.TextMatrix(Key, 2) = Quantity.Text 1650 1651 'Updating Stock 1652 Stock = Val(M_Trousers.Recordset.Fields.Item(3)) -

Val(Quantity.Text) 1653 M_Trousers.Recordset.Fields.Item(3) = Val(Stock) 1654 1655 'Adding the Amount (Price x Quantity) to the Cart 1656 Cart.TextMatrix(Key, 3) =

(Val(M_Trousers.Recordset.Fields.Item(2).Value) * Val(Quantity.Text))

Page 85: Garment Store System

85

1657 1658 'Adding a row to the Cart for the next item 1659 Cart.AddItem "" 1660 1661 'Clearing the Product combo box and the Quantity field 1662 ProdList.Clear 1663 ProdCat.Text = "" 1664 Quantity.Text = "" 1665 1666 Call Calculate 1667 1668 Exit Sub 1669 1670 Else 1671 1672 'If product is not the current record, then moves to next record 1673 M_Trousers.Recordset.MoveNext 1674 1675 End If 1676 Loop 1677 1678 1679 ElseIf (ProdCat.ListIndex = 5) Then 1680 1681 M_Jackets.Recordset.MoveFirst 1682 1683 'Checking till end of database is reached 1684 1685 Do Until M_Jackets.Recordset.EOF 1686 1687 'Checking if product selected is the product in database 1688 1689 If (M_Jackets.Recordset.Fields.Item(1) = ProdList.Text) Then 1690 1691 Cart.TextMatrix(Key, 0) =

(M_Jackets.Recordset.Fields.Item(0) & " / " & ProdList.Text) 1692 1693 'Adding the Price of product to Cart 1694 Cart.TextMatrix(Key, 1) =

M_Jackets.Recordset.Fields.Item(2).Value 1695 1696 'Adding the Quantity to the Cart 1697 Cart.TextMatrix(Key, 2) = Quantity.Text 1698 1699 'Updating Stock 1700 Stock = Val(M_Jackets.Recordset.Fields.Item(3)) -

Val(Quantity.Text) 1701 M_Jackets.Recordset.Fields.Item(3) = Val(Stock)

Page 86: Garment Store System

86

1702 1703 'Adding the Amount (Price x Quantity) to the Cart 1704 Cart.TextMatrix(Key, 3) =

(Val(M_Jackets.Recordset.Fields.Item(2).Value) * Val(Quantity.Text)) 1705 1706 'Adding a row to the Cart for the next item 1707 Cart.AddItem "" 1708 1709 'Clearing the Product combo box and the Quantity field 1710 ProdList.Clear 1711 ProdCat.Text = "" 1712 Quantity.Text = "" 1713 1714 Call Calculate 1715 1716 Exit Sub 1717 1718 Else 1719 1720 'If product is not the current record, then moves to next record 1721 M_Jackets.Recordset.MoveNext 1722 1723 End If 1724 Loop 1725 1726 ElseIf (ProdCat.ListIndex = 6) Then 1727 1728 F_Tops.Recordset.MoveFirst 1729 1730 'Checking till end of database is reached 1731 1732 Do Until F_Tops.Recordset.EOF 1733 1734 'Checking if product selected is the product in database 1735 1736 If (F_Tops.Recordset.Fields.Item(1) = ProdList.Text) Then 1737 1738 Cart.TextMatrix(Key, 0) =

(F_Tops.Recordset.Fields.Item(0) & " / " & ProdList.Text) 1739 1740 'Adding the Price of product to Cart 1741 Cart.TextMatrix(Key, 1) =

F_Tops.Recordset.Fields.Item(2).Value 1742 1743 'Adding the Quantity to the Cart 1744 Cart.TextMatrix(Key, 2) = Quantity.Text 1745 1746 'Updating Stock

Page 87: Garment Store System

87

1747 Stock = Val(F_Tops.Recordset.Fields.Item(3)) - Val(Quantity.Text)

1748 F_Tops.Recordset.Fields.Item(3) = Val(Stock) 1749 1750 'Adding the Amount (Price x Quantity) to the Cart 1751 Cart.TextMatrix(Key, 3) =

(Val(F_Tops.Recordset.Fields.Item(2).Value) * Val(Quantity.Text)) 1752 1753 'Adding a row to the Cart for the next item 1754 Cart.AddItem "" 1755 1756 'Clearing the Product combo box and the Quantity field 1757 ProdList.Clear 1758 ProdCat.Text = "" 1759 Quantity.Text = "" 1760 1761 Call Calculate 1762 1763 Exit Sub 1764 1765 Else 1766 1767 'If product is not the current record, then moves to next record 1768 F_Tops.Recordset.MoveNext 1769 1770 End If 1771 Loop 1772 1773 1774 ElseIf (ProdCat.ListIndex = 7) Then 1775 1776 F_Capris.Recordset.MoveFirst 1777 1778 'Checking till end of database is reached 1779 1780 Do Until F_Capris.Recordset.EOF 1781 1782 'Checking if product selected is the product in database 1783 1784 If (F_Capris.Recordset.Fields.Item(1) = ProdList.Text) Then 1785 1786 Cart.TextMatrix(Key, 0) =

(F_Capris.Recordset.Fields.Item(0) & " / " & ProdList.Text) 1787 1788 'Adding the Price of product to Cart 1789 Cart.TextMatrix(Key, 1) =

F_Capris.Recordset.Fields.Item(2).Value 1790

Page 88: Garment Store System

88

1791 'Adding the Quantity to the Cart 1792 Cart.TextMatrix(Key, 2) = Quantity.Text 1793 1794 'Updating Stock 1795 Stock = Val(F_Capris.Recordset.Fields.Item(3)) -

Val(Quantity.Text) 1796 F_Capris.Recordset.Fields.Item(3) = Val(Stock) 1797 1798 'Adding the Amount (Price x Quantity) to the Cart 1799 Cart.TextMatrix(Key, 3) =

(Val(F_Capris.Recordset.Fields.Item(2).Value) * Val(Quantity.Text)) 1800 1801 'Adding a row to the Cart for the next item 1802 Cart.AddItem "" 1803 1804 'Clearing the Product combo box and the Quantity field 1805 ProdList.Clear 1806 ProdCat.Text = "" 1807 Quantity.Text = "" 1808 1809 Call Calculate 1810 1811 Exit Sub 1812 1813 Else 1814 1815 'If product is not the current record, then moves to next record 1816 F_Capris.Recordset.MoveNext 1817 1818 End If 1819 Loop 1820 1821 1822 ElseIf (ProdCat.ListIndex = 8) Then 1823 1824 F_Jeans.Recordset.MoveFirst 1825 1826 'Checking till end of database is reached 1827 1828 Do Until F_Jeans.Recordset.EOF 1829 1830 'Checking if product selected is the product in database 1831 1832 If (F_Jeans.Recordset.Fields.Item(1) = ProdList.Text) Then 1833 1834 Cart.TextMatrix(Key, 0) =

(F_Jeans.Recordset.Fields.Item(0) & " / " & ProdList.Text) 1835

Page 89: Garment Store System

89

1836 'Adding the Price of product to Cart 1837 Cart.TextMatrix(Key, 1) =

F_Jeans.Recordset.Fields.Item(2).Value 1838 1839 'Adding the Quantity to the Cart 1840 Cart.TextMatrix(Key, 2) = Quantity.Text 1841 1842 'Updating Stock 1843 Stock = Val(F_Jeans.Recordset.Fields.Item(3)) -

Val(Quantity.Text) 1844 F_Jeans.Recordset.Fields.Item(3) = Val(Stock) 1845 1846 'Adding the Amount (Price x Quantity) to the Cart 1847 Cart.TextMatrix(Key, 3) =

(Val(F_Jeans.Recordset.Fields.Item(2).Value) * Val(Quantity.Text)) 1848 1849 'Adding a row to the Cart for the next item 1850 Cart.AddItem "" 1851 1852 'Clearing the Product combo box and the Quantity field 1853 ProdList.Clear 1854 ProdCat.Text = "" 1855 Quantity.Text = "" 1856 1857 Call Calculate 1858 1859 Exit Sub 1860 1861 Else 1862 1863 'If product is not the current record, then moves to next record 1864 F_Jeans.Recordset.MoveNext 1865 1866 End If 1867 Loop 1868 1869 1870 ElseIf (ProdCat.ListIndex = 9) Then 1871 1872 F_Skirts.Recordset.MoveFirst 1873 1874 'Checking till end of database is reached 1875 1876 Do Until F_Skirts.Recordset.EOF 1877 1878 'Checking if product selected is the product in database 1879 1880 If (F_Skirts.Recordset.Fields.Item(1) = ProdList.Text) Then

Page 90: Garment Store System

90

1881 1882 Cart.TextMatrix(Key, 0) =

(F_Skirts.Recordset.Fields.Item(0) & " / " & ProdList.Text) 1883 1884 'Adding the Price of product to Cart 1885 Cart.TextMatrix(Key, 1) =

F_Skirts.Recordset.Fields.Item(2).Value 1886 1887 'Adding the Quantity to the Cart 1888 Cart.TextMatrix(Key, 2) = Quantity.Text 1889 1890 'Updating Stock 1891 Stock = Val(F_Skirts.Recordset.Fields.Item(3)) -

Val(Quantity.Text) 1892 F_Skirts.Recordset.Fields.Item(3) = Val(Stock) 1893 1894 'Adding the Amount (Price x Quantity) to the Cart 1895 Cart.TextMatrix(Key, 3) =

(Val(F_Skirts.Recordset.Fields.Item(2).Value) * Val(Quantity.Text)) 1896 1897 'Adding a row to the Cart for the next item 1898 Cart.AddItem "" 1899 1900 'Clearing the Product combo box and the Quantity field 1901 ProdList.Clear 1902 ProdCat.Text = "" 1903 Quantity.Text = "" 1904 1905 Call Calculate 1906 1907 Exit Sub 1908 1909 Else 1910 1911 'If product is not the current record, then moves to next record 1912 F_Skirts.Recordset.MoveNext 1913 1914 End If 1915 Loop 1916 1917 1918 ElseIf (ProdCat.ListIndex = 10) Then 1919 1920 F_Trousers.Recordset.MoveFirst 1921 1922 'Checking till end of database is reached 1923 1924 Do Until F_Trousers.Recordset.EOF

Page 91: Garment Store System

91

1925 1926 'Checking if product selected is the product in database 1927 1928 If (F_Trousers.Recordset.Fields.Item(1) = ProdList.Text)

Then 1929 1930 Cart.TextMatrix(Key, 0) =

(F_Trousers.Recordset.Fields.Item(0) & " / " & ProdList.Text) 1931 1932 'Adding the Price of product to Cart 1933 Cart.TextMatrix(Key, 1) =

F_Trousers.Recordset.Fields.Item(2).Value 1934 1935 'Adding the Quantity to the Cart 1936 Cart.TextMatrix(Key, 2) = Quantity.Text 1937 1938 'Updating Stock 1939 Stock = Val(F_Trousers.Recordset.Fields.Item(3)) -

Val(Quantity.Text) 1940 F_Trousers.Recordset.Fields.Item(3) = Val(Stock) 1941 1942 'Adding the Amount (Price x Quantity) to the Cart 1943 Cart.TextMatrix(Key, 3) =

(Val(F_Trousers.Recordset.Fields.Item(2).Value) * Val(Quantity.Text)) 1944 1945 'Adding a row to the Cart for the next item 1946 Cart.AddItem "" 1947 1948 'Clearing the Product combo box and the Quantity field 1949 ProdList.Clear 1950 ProdCat.Text = "" 1951 Quantity.Text = "" 1952 1953 Call Calculate 1954 1955 Exit Sub 1956 1957 Else 1958 1959 'If product is not the current record, then moves to next record 1960 F_Trousers.Recordset.MoveNext 1961 1962 End If 1963 Loop 1964 1965 1966 ElseIf (ProdCat.ListIndex = 11) Then 1967

Page 92: Garment Store System

92

1968 F_Stockings.Recordset.MoveFirst 1969 1970 'Checking till end of database is reached 1971 1972 Do Until F_Stockings.Recordset.EOF 1973 1974 'Checking if product selected is the product in database 1975 1976 If (F_Stockings.Recordset.Fields.Item(1) = ProdList.Text) Then 1977 1978 Cart.TextMatrix(Key, 0) =

(F_Stockings.Recordset.Fields.Item(0) & " / " & ProdList.Text) 1979 1980 'Adding the Price of product to Cart 1981 Cart.TextMatrix(Key, 1) =

F_Stockings.Recordset.Fields.Item(2).Value 1982 1983 'Adding the Quantity to the Cart 1984 Cart.TextMatrix(Key, 2) = Quantity.Text 1985 1986 'Updating Stock 1987 Stock = Val(F_Stockings.Recordset.Fields.Item(3)) -

Val(Quantity.Text) 1988 F_Stockings.Recordset.Fields.Item(3) = Val(Stock) 1989 1990 'Adding the Amount (Price x Quantity) to the Cart 1991 Cart.TextMatrix(Key, 3) =

(Val(F_Stockings.Recordset.Fields.Item(2).Value) * Val(Quantity.Text)) 1992 1993 'Adding a row to the Cart for the next item 1994 Cart.AddItem "" 1995 1996 'Clearing the Product combo box and the Quantity field 1997 ProdList.Clear 1998 ProdCat.Text = "" 1999 Quantity.Text = "" 2000 2001 Call Calculate 2002 2003 Exit Sub 2004 2005 Else 2006 2007 'If product is not the current record, then moves to next record 2008 F_Stockings.Recordset.MoveNext 2009 2010 End If 2011 Loop

Page 93: Garment Store System

93

2012 2013 2014 End If 2015 2016 End Sub 2017 2018 2019 2020 'cmdCancel click event 2021 'Triggers when the "CANCEL" Button is pressed 2022 'Function: Closes the NEW SALE form and returns to MAIN 2023 'SCREEN form 2024 2025 Private Sub cmdCancel_Click() 2026 Discount = False 2027 2028 frmMain.Show 2029 Unload Me 2030 2031 End Sub 2032 2033 'cmdCardNo click event 2034 'Triggers when the "ENTER CARD NO" Button is pressed 2035 'Function: Asks for Card No for Sale Discount 2036 2037 Private Sub cmdCardNo_Click() 2038 2039 ‘CardNo is for storing User input and searching 2040 Dim CardNo As Integer 2041 ‘CardNoDisp and MemNameDisp is for Display of Card No and 2042 ‘ Member Name on the Bill 2043 Dim CardNoDisp As String 2044 Dim MemNameDisp As String 2045 2046 ‘User Asked for Card No 2047 CardNo = InputBox("Enter Membership Card Number:", "NEW

SALE") 2048 2049 ‘Searching for Card No in database 2050 MembersDB.Refresh 2051 MembersDB.Recordset.MoveFirst 2052 2053 With MembersDB.Recordset 2054 While (Not MembersDB.Recordset.EOF) 2055 2056 If (MembersDB.Recordset.Fields.Item(1) = CardNo) Then 2057 MsgBox ("Vaild Card No") 2058 CardNoDisp = CardNo

Page 94: Garment Store System

94

2059 MemNameDisp = MembersDB.Recordset.Fields.Item(0) 2060 Discount = True 2061 cmdCardNo.Visible = False 2062 2063 Call Calculate 2064 2065 Exit Sub 2066 2067 Else 2068 MembersDB.Recordset.MoveNext 2069 2070 End If 2071 2072 Wend 2073 End With 2074 2075 ‘If Member is not found, error is displayed 2076 MsgBox ("Invalid Card No.") 2077 ‘Setting Card No as N/A 2078 CardNoDisp = "N/A" 2079 ‘Setting Member Name as CASH 2080 MemNameDisp = "CASH" 2081 2082 End Sub 2083 2084 Private Sub cmdConfirm_Click() 2085 2086 'Storing code and quantity in variable to update the stock. 2087 Dim Code As String 2088 Dim Qty As Integer 2089 2090 ‘Whichever category will be found via code on scanning the Cart, 2091 the tabes will be updated to decrease the stock 2092 2093 Dim RowCount As Integer 2094 2095 For RowCount = 1 To (Cart.Rows - 2) 2096 2097 If ((Left$(Cart.TextMatrix(RowCount, 0), 3)) = "MSH") Then 2098 M_Shirts.Recordset.Update 2099 2100 ElseIf ((Left$(Cart.TextMatrix(RowCount, 0), 3)) = "MTS") Then 2101 M_Tshirts.Recordset.Update 2102 2103 ElseIf ((Left$(Cart.TextMatrix(RowCount, 0), 3)) = "MJE") Then 2104 M_Jeans.Recordset.Update 2105 2106 ElseIf ((Left$(Cart.TextMatrix(RowCount, 0), 3)) = "MSR") Then

Page 95: Garment Store System

95

2107 M_Shorts.Recordset.Update 2108 2109 ElseIf ((Left$(Cart.TextMatrix(RowCount, 0), 3)) = "MTR") Then 2110 M_Trousers.Recordset.Update 2111 2112 ElseIf ((Left$(Cart.TextMatrix(RowCount, 0), 3)) = "MJA") Then 2113 M_Jackets.Recordset.Update 2114 2115 ElseIf ((Left$(Cart.TextMatrix(RowCount, 0), 3)) = "FTO") Then 2116 F_Tops.Recordset.Update 2117 2118 ElseIf ((Left$(Cart.TextMatrix(RowCount, 0), 3)) = "FCA") Then 2119 F_Capris.Recordset.Update 2120 2121 ElseIf ((Left$(Cart.TextMatrix(RowCount, 0), 3)) = "FJE") Then 2122 F_Jeans.Recordset.Update 2123 2124 ElseIf ((Left$(Cart.TextMatrix(RowCount, 0), 3)) = "FSK") Then 2125 F_Skirts.Recordset.Update 2126 2127 ElseIf ((Left$(Cart.TextMatrix(RowCount, 0), 3)) = "FTR") Then 2128 F_Trousers.Recordset.Update 2129 2130 ElseIf ((Left$(Cart.TextMatrix(RowCount, 0), 3)) = "FST") Then 2131 F_Stockings.Recordset.Update 2132 2133 End If 2134 2135 Next 2136 2137 2138 'If no item is selected, Order is not confirmed and message box is

displayed with message "Please Place Order" 2139 If (Cart.TextMatrix(1, 1) = "") Then 2140 MsgBox ("Please Place Order") 2141 2142 Else 2143 2144 'Loop variable "i" is used for display using all Order items from

Order table to the Bill 2145 Dim i As Integer 2146 2147 For i = 1 To Key 2148 2149 'If it is the first field of the table, the item is displayed in the first row 2150 If (frmBill.Items.Caption = "") Then 2151 2152 frmBill.Items.Caption =

Page 96: Garment Store System

96

2153 frmBill.Items.Caption & Cart.TextMatrix(i, 0) 2154 frmBill.Price.Caption = 2155 frmBill.Price.Caption & Cart.TextMatrix(i, 1) 2156 frmBill.Quantity.Caption = 2157 frmBill.Quantity.Caption & Cart.TextMatrix(i, 2) 2158 frmBill.Total.Caption = 2159 frmBill.Total.Caption & Cart.TextMatrix(i, 3)

'If it is not the first field of the table, each item is displayed on a new line

2160 2161 Else 2162 2163 frmBill.Items.Caption = 2164 frmBill.Items.Caption & vbNewLine & Cart.TextMatrix(i, 0) 2165 2166 frmBill.Price.Caption = 2167 frmBill.Price.Caption & vbNewLine & Cart.TextMatrix(i, 1) 2168 2169 frmBill.Quantity.Caption = 2170 frmBill.Quantity.Caption & vbNewLine & Cart.TextMatrix(i, 2) 2171 2172 frmBill.Total.Caption = 2173 frmBill.Total.Caption & vbNewLine & Cart.TextMatrix(i, 3) 2174 2175 End If 2176 2177 Next i 2178 2179 frmBill.MemNameLabel.Caption = MemNameDisp 2180 frmBill.CardNoLabel.Caption = CardNoDisp 2181 2182 'Displaying the Special Instructions, Amount, Tax and Total 2183 ‘Amount on the receipt 2184 frmBill.Amount.Caption = Total.Caption 2185 frmBill.Discount.Caption = DiscAmt.Caption 2186 frmBill.Tax.Caption = Tax.Caption 2187 frmBill.TotalAmount.Caption = GrossAmount.Caption 2188 2189 Discount = False 2190 2191 'Opening the Order receipt 2192 frmBill.Show 2193 2194 'Closing the NEW ORDER Form 2195 Unload Me 2196 2197 End If

Page 97: Garment Store System

97

2198 2199 End Sub 2200 2201 Private Sub cmdRemove_Click() 2202 2203 'If there is no item in the Order list 2204 If (Cart.TextMatrix(1, 1) = "") Then 2205 'Message box is displayed with message "Nothing to Remove" 2206 MsgBox ("Nothing to Remove") 2207 Else 2208 2209 'Removing the selected row from the Cart 2210 Cart.SelectionMode = flexSelectionByRow 2211 Cart.RemoveItem (Cart.Row) 2212 Key = (Key - 1) 2213 2214 Call Calculate 2215 2216 End If 2217 2218 End Sub 2219 2220 'ProdCat Dropdown click event 2221 'Triggers when an item from "ProdCat" dropdown is selected 2222 'Function: To populate the products dropdown menu for sales 2223 2224 Private Sub ProdCat_Click() 2225 2226 2227 Dim ProductLoop, ProductCount As Integer 2228 2229 Dim ProductList() As String 2230 2231 2232 Select Case ProdCat.List(ProdCat.ListIndex) 2233 2234 Case "MALE - SHIRTS" 2235 2236 ProdList.Clear 2237 M_Shirts.Refresh 2238 ProductCount = M_Shirts.Recordset.RecordCount 2239 ReDim ProductList(ProductCount) As String 2240 2241 With M_Shirts.Recordset 2242 While (Not M_Shirts.Recordset.EOF) 2243 ProductList(ProductLoop) =

(M_Shirts.Recordset.Fields.Item(1)) 2244 M_Shirts.Recordset.MoveNext

Page 98: Garment Store System

98

2245 ProductLoop = (ProductLoop + 1) 2246 Wend 2247 End With 2248 2249 ProductLoop = 0 2250 2251 For ProductLoop = 0 To (ProductCount - 1) 2252 ProdList.AddItem ProductList(ProductLoop) 2253 Next 2254 2255 2256 Case "MALE - T-SHIRTS" 2257 2258 ProdList.Clear 2259 M_Tshirts.Refresh 2260 ProductCount = M_Tshirts.Recordset.RecordCount 2261 ReDim ProductList(ProductCount) As String 2262 2263 With M_Tshirts.Recordset 2264 While (Not M_Tshirts.Recordset.EOF) 2265 ProductList(ProductLoop) =

(M_Tshirts.Recordset.Fields.Item(1)) 2266 M_Tshirts.Recordset.MoveNext 2267 ProductLoop = (ProductLoop + 1) 2268 Wend 2269 End With 2270 2271 ProductLoop = 0 2272 2273 For ProductLoop = 0 To (ProductCount - 1) 2274 ProdList.AddItem ProductList(ProductLoop) 2275 Next 2276 2277 2278 Case "MALE - JEANS" 2279 2280 ProdList.Clear 2281 M_Jeans.Refresh 2282 ProductCount = M_Jeans.Recordset.RecordCount 2283 ReDim ProductList(ProductCount) As String 2284 2285 With M_Jeans.Recordset 2286 While (Not M_Jeans.Recordset.EOF) 2287 ProductList(ProductLoop) =

(M_Jeans.Recordset.Fields.Item(1)) 2288 M_Jeans.Recordset.MoveNext 2289 ProductLoop = (ProductLoop + 1) 2290 Wend

Page 99: Garment Store System

99

2291 End With 2292 2293 ProductLoop = 0 2294 2295 For ProductLoop = 0 To (ProductCount - 1) 2296 ProdList.AddItem ProductList(ProductLoop) 2297 Next 2298 2299 2300 Case "MALE - SHORTS" 2301 2302 ProdList.Clear 2303 M_Shorts.Refresh 2304 ProductCount = M_Shorts.Recordset.RecordCount 2305 ReDim ProductList(ProductCount) As String 2306 2307 With M_Shorts.Recordset 2308 While (Not M_Shorts.Recordset.EOF) 2309 ProductList(ProductLoop) =

(M_Shorts.Recordset.Fields.Item(1)) 2310 M_Shorts.Recordset.MoveNext 2311 ProductLoop = (ProductLoop + 1) 2312 Wend 2313 End With 2314 2315 ProductLoop = 0 2316 2317 For ProductLoop = 0 To (ProductCount - 1) 2318 ProdList.AddItem ProductList(ProductLoop) 2319 Next 2320 2321 Case "MALE - TROUSERS" 2322 2323 ProdList.Clear 2324 M_Trousers.Refresh 2325 ProductCount = M_Trousers.Recordset.RecordCount 2326 ReDim ProductList(ProductCount) As String 2327 2328 With M_Trousers.Recordset 2329 While (Not M_Trousers.Recordset.EOF) 2330 ProductList(ProductLoop) =

(M_Trousers.Recordset.Fields.Item(1)) 2331 M_Trousers.Recordset.MoveNext 2332 ProductLoop = (ProductLoop + 1) 2333 Wend 2334 End With 2335 2336 ProductLoop = 0

Page 100: Garment Store System

100

2337 2338 For ProductLoop = 0 To (ProductCount - 1) 2339 ProdList.AddItem ProductList(ProductLoop) 2340 Next 2341 2342 2343 Case "MALE - JACKETS" 2344 2345 ProdList.Clear 2346 M_Jackets.Refresh 2347 ProductCount = M_Jackets.Recordset.RecordCount 2348 ReDim ProductList(ProductCount) As String 2349 2350 With M_Jackets.Recordset 2351 While (Not M_Jackets.Recordset.EOF) 2352 ProductList(ProductLoop) =

(M_Jackets.Recordset.Fields.Item(1)) 2353 M_Jackets.Recordset.MoveNext 2354 ProductLoop = (ProductLoop + 1) 2355 Wend 2356 End With 2357 2358 ProductLoop = 0 2359 2360 For ProductLoop = 0 To (ProductCount - 1) 2361 ProdList.AddItem ProductList(ProductLoop) 2362 Next 2363 2364 2365 Case "FEMALE - TOPS" 2366 2367 ProdList.Clear 2368 F_Tops.Refresh 2369 ProductCount = F_Tops.Recordset.RecordCount 2370 ReDim ProductList(ProductCount) As String 2371 2372 With F_Tops.Recordset 2373 While (Not F_Tops.Recordset.EOF) 2374 ProductList(ProductLoop) =

(F_Tops.Recordset.Fields.Item(1)) 2375 F_Tops.Recordset.MoveNext 2376 ProductLoop = (ProductLoop + 1) 2377 Wend 2378 End With 2379 2380 ProductLoop = 0 2381 2382 For ProductLoop = 0 To (ProductCount - 1)

Page 101: Garment Store System

101

2383 ProdList.AddItem ProductList(ProductLoop) 2384 Next 2385 2386 Case "FEMALE - CAPRIS" 2387 2388 ProdList.Clear 2389 F_Capris.Refresh 2390 ProductCount = F_Capris.Recordset.RecordCount 2391 ReDim ProductList(ProductCount) As String 2392 2393 With F_Capris.Recordset 2394 While (Not F_Capris.Recordset.EOF) 2395 ProductList(ProductLoop) =

(F_Capris.Recordset.Fields.Item(1)) 2396 F_Capris.Recordset.MoveNext 2397 ProductLoop = (ProductLoop + 1) 2398 Wend 2399 End With 2400 2401 ProductLoop = 0 2402 2403 For ProductLoop = 0 To (ProductCount - 1) 2404 ProdList.AddItem ProductList(ProductLoop) 2405 Next 2406 2407 Case "FEMALE - JEANS" 2408 2409 ProdList.Clear 2410 F_Jeans.Refresh 2411 ProductCount = F_Jeans.Recordset.RecordCount 2412 ReDim ProductList(ProductCount) As String 2413 2414 With F_Jeans.Recordset 2415 While (Not F_Jeans.Recordset.EOF) 2416 ProductList(ProductLoop) =

(F_Jeans.Recordset.Fields.Item(1)) 2417 F_Jeans.Recordset.MoveNext 2418 ProductLoop = (ProductLoop + 1) 2419 Wend 2420 End With 2421 2422 ProductLoop = 0 2423 2424 For ProductLoop = 0 To (ProductCount - 1) 2425 ProdList.AddItem ProductList(ProductLoop) 2426 Next 2427 2428 Case "FEMALE - SKIRTS"

Page 102: Garment Store System

102

2429 2430 ProdList.Clear 2431 F_Skirts.Refresh 2432 ProductCount = F_Skirts.Recordset.RecordCount 2433 ReDim ProductList(ProductCount) As String 2434 2435 With F_Skirts.Recordset 2436 While (Not F_Skirts.Recordset.EOF) 2437 ProductList(ProductLoop) =

(F_Skirts.Recordset.Fields.Item(1)) 2438 F_Skirts.Recordset.MoveNext 2439 ProductLoop = (ProductLoop + 1) 2440 Wend 2441 End With 2442 2443 ProductLoop = 0 2444 2445 For ProductLoop = 0 To (ProductCount - 1) 2446 ProdList.AddItem ProductList(ProductLoop) 2447 Next 2448 2449 2450 Case "FEMALE - TROUSERS" 2451 2452 ProdList.Clear 2453 F_Trousers.Refresh 2454 ProductCount = F_Trousers.Recordset.RecordCount 2455 ReDim ProductList(ProductCount) As String 2456 2457 With F_Trousers.Recordset 2458 While (Not F_Trousers.Recordset.EOF) 2459 ProductList(ProductLoop) =

(F_Trousers.Recordset.Fields.Item(1)) 2460 F_Trousers.Recordset.MoveNext 2461 ProductLoop = (ProductLoop + 1) 2462 Wend 2463 End With 2464 2465 ProductLoop = 0 2466 2467 For ProductLoop = 0 To (ProductCount - 1) 2468 ProdList.AddItem ProductList(ProductLoop) 2469 Next 2470 2471 Case "FEMALE - STOCKINGS" 2472 2473 ProdList.Clear 2474 F_Stockings.Refresh

Page 103: Garment Store System

103

2475 ProductCount = F_Stockings.Recordset.RecordCount 2476 ReDim ProductList(ProductCount) As String 2477 2478 With F_Stockings.Recordset 2479 While (Not F_Stockings.Recordset.EOF) 2480 ProductList(ProductLoop) =

(F_Stockings.Recordset.Fields.Item(1)) 2481 F_Stockings.Recordset.MoveNext 2482 ProductLoop = (ProductLoop + 1) 2483 Wend 2484 End With 2485 2486 ProductLoop = 0 2487 2488 For ProductLoop = 0 To (ProductCount - 1) 2489 ProdList.AddItem ProductList(ProductLoop) 2490 Next 2491 2492 End Select 2493 2494 2495 End Sub

BILL FORM

2496 '******************************************************** 2497 ' FORM NAME: frmBill 2498 ' PURPOSE: Displays Bill after New Sale and log sales 2499 '******************************************************** 2500 2501 'Event when the BILL Form loads 2502 2503 Private Sub Form_Load() 2504

Page 104: Garment Store System

104

2505 ‘GetOrderNo function is called to display BillNo 2506 Call GetOrderNo 2507 2508 'Storing the Date in the DisplayDate variable 2509 DisplayDate = DateValue(Now) 2510 2511 'Formating and displaying the date as DD / MM / YYYY 2512 DateLabel.Caption = Format(DisplayDate, "DD / MM / YYYY") 2513 2514 End Sub 2515 2516 'cmdDone click event 2517 'Triggers when the "DONE" Button is pressed 2518 'Function: Bill is closed and Main Screen is opened. Sales is 2519 'also logged into the database. 2520 2521 2522 Private Sub cmdDone_Click() 2523 2524 'Refreshing the SalesLog control 2525 SalesLog.Refresh 2526 2527 With SalesLog.Recordset 2528 2529 'Adding a new record in the Sales log 2530 SalesLog.Recordset.AddNew 2531 2532 'Adding the Date 2533 SalesLog.Recordset.Fields("Date") = DateLabel.Caption 2534 2535 'Adding the Order number 2536 SalesLog.Recordset.Fields("Bill No") = BillNoLabel.Caption 2537 2538 ‘Adding the Total Amount of order 2539 SalesLog.Recordset.Fields("Amount") = TotalAmount.Caption 2540 2541 'Updating the Sales log 2542 SalesLog.Recordset.Update 2543 SalesLog.Recordset.Requery 2544 2545 End With 2546 2547 'Function UpdateOrderNo is called that updates the Order number 2548 ‘for the next bill 2549 Call UpdateOrderNo 2550 2551 'Opening the MAIN Form 2552 frmMain.Show

Page 105: Garment Store System

105

2553 2554 'Closing the BILL 2555 Unload Me 2556 2557 End Sub

MEMBERS FORM

2558 '******************************************************** 2559 ' FORM NAME: frmMembers 2560 ' PURPOSE: Allows the user to Add and Update Members 2561 '******************************************************** 2562 2563 ‘Boolean is true if member is updates and false for new member 2564 Public Modify As Boolean 2565 2566 'Event when the MEMBERS DATABASE Form loads 2567 2568 Private Sub Form_Load() 2569 2570 ‘Making all fields blank 2571 CardNo.Text = "" 2572 MemName.Text = "" 2573 MemEmail.Text = "" 2574 MemTelephone.Text = "" 2575 MemAddress.Text = "" 2576 2577 ‘Disabling all fields to prevent editing,until ADD/MODIFY is selected 2578 CardNo.Enabled = False 2579 MemName.Enabled = False 2580 MemEmail.Enabled = False 2581 MemTelephone.Enabled = False 2582 MemAddress.Enabled = False 2583 2584 2585 End Sub 2586 2587 'cmdAdd click event 2588 'Triggers when the "ADD" Button is pressed

Page 106: Garment Store System

106

2589 'Function: Adds new member and unlocks fields for input 2590 2591 Private Sub cmdAdd_Click() 2592 2593 MemName.Enabled = True 2594 MemEmail.Enabled = True 2595 MemTelephone.Enabled = True 2596 MemAddress.Enabled = True 2597 2598 cmdSave.Enabled = True 2599 cmdAdd.Enabled = False 2600 2601 'Refreshing the MembersDB control 2602 MembersDB.Refresh 2603 2604 'Adding a new record to MembersDB 2605 MembersDB.Recordset.AddNew 2606 2607 ‘Function is called to get auto-generated card number 2608 Call GetCardNo 2609 2610 End Sub 2611 2612 'cmdClose click event 2613 'Triggers when the "CLOSE" Button is pressed 2614 'Function: Closes Member Database and opens Main Screen 2615 2616 Private Sub cmdClose_Click() 2617 2618 frmMain.Show 2619 Unload Me 2620 2621 End Sub 2622 2623 'cmdModify click event 2624 'Triggers when the "MODIFY" Button is pressed 2625 'Function: Allows Updating of Member info. and unlocks fields 2626 'for input 2627 2628 Private Sub cmdModify_Click() 2629 2630 Modify = True 2631 2632 ‘Enabling fields for user input 2633 MemName.Enabled = True 2634 MemEmail.Enabled = True 2635 MemTelephone.Enabled = True 2636 MemAddress.Enabled = True

Page 107: Garment Store System

107

2637 2638 cmdSave.Enabled = True 2639 2640 cmdModify.Enabled = False 2641 2642 End Sub 2643

2644 'cmdSave click event 2645 'Triggers when the "SAVE" Button is pressed 2646 'Function: Saves the new member/update into database 2647 2648 Private Sub cmdSave_Click() 2649 2650 With MembersDB.Recordset 2651 2652 'Adding the Member Name 2653 MembersDB.Recordset.Fields("Member Name") = MemName.Text 2654 2655 'Adding the Card Number 2656 MembersDB.Recordset.Fields("Card Number") = CardNo.Text 2657 2658 'Adding the Phone Number 2659 MembersDB.Recordset.Fields("Phone Number") =

MemTelephone.Text 2660 2661 'Adding the E-Mail Address 2662 MembersDB.Recordset.Fields("E-Mail Address") = MemEmail.Text 2663 2664 'Adding the Postal Address 2665 MembersDB.Recordset.Fields("Postal Address") = 2666 MemAddress.Text 2667 2668 'Updating the Members database 2669 MembersDB.Recordset.Update 2670 MembersDB.Recordset.Requery 2671 2672 End With 2673 2674 ‘Locking all fields 2675 MemName.Enabled = False 2676 MemEmail.Enabled = False 2677 MemTelephone.Enabled = False 2678 MemAddress.Enabled = False 2679 2680 cmdSave.Enabled = False

Page 108: Garment Store System

108

2681 cmdAdd.Enabled = True 2682 2683 If (Modify = True) Then 2684 MsgBox ("Member Updated Successfully.") 2685 cmdModify.Enabled = True 2686 Modify = False 2687 Else 2688 MsgBox ("Member Created Successfully.") 2689 Call UpdateCardNo 2690 End If 2691 2692 CardNo.Text = "" 2693 MemName.Text = "" 2694 MemEmail.Text = "" 2695 MemTelephone.Text = "" 2696 MemAddress.Text = "" 2697 2698 End Sub 2699 2700 'cmdSearch click event 2701 'Triggers when the "SEARCH" Button is pressed 2702 'Function: Allows user to search for Member info. using Card 2703 'No for editing user data. 2704 2705 Private Sub cmdSearch_Click() 2706 2707 ‘Validation 2708 If (IsNumeric(CardSearch.Text) = False) Then 2709 MsgBox ("Please enter a valid Card number") 2710 2711 Else 2712 ‘Moving to first record and searching for Card No 2713 MembersDB.Recordset.MoveFirst 2714 2715 Do Until MembersDB.Recordset.EOF 2716 If (MembersDB.Recordset(1) = CardSearch.Text) Then 2717 MsgBox ("Member found.") 2718 cmdModify.Enabled = True 2719 Exit Sub 2720 2721 Else 2722 MembersDB.Recordset.MoveNext 2723 End If 2724 Loop 2725 2726 MsgBox ("Member not found.") 2727 2728 End If

Page 109: Garment Store System

109

2729 2730 2731 End Sub 2732

INVENTORY FORM

2733 '******************************************************** 2734 ' FORM NAME: frmInventory 2735 ' PURPOSE: Allows user to add goods to Inventory 2736 '******************************************************** 2737 2738 'Event when the INVENTORY Form loads 2739 2740 Private Sub Form_Load() 2741 2742 ‘Variables for counting Records and Loading supplier list 2743 Dim RecCount, LoopVar As Integer 2744 Dim SupplierList() As String 2745 2746 SuppliersDB.Refresh 2747 2748 RecCount = SuppliersDB.Recordset.RecordCount 2749 ReDim SupplierList(RecCount) As String 2750 2751 With SuppliersDB.Recordset 2752 While (Not SuppliersDB.Recordset.EOF) 2753 SupplierList(LoopVar) = 2754 (SuppliersDB.Recordset.Fields.Item(1)) 2755 SuppliersDB.Recordset.MoveNext 2756 LoopVar = (LoopVar + 1) 2757 Wend 2758 End With 2759 2760 LoopVar = 0 2761 2762 For LoopVar = 0 To (RecCount - 1) 2763 SupList.AddItem SupplierList(LoopVar) 2764 Next 2765 2766 ‘Adding Product Categories to dropdown menu

Page 110: Garment Store System

110

2767 ProdCat.AddItem "MALE - SHIRTS" 2768 ProdCat.AddItem "MALE - T-SHIRTS" 2769 ProdCat.AddItem "MALE - JEANS" 2770 ProdCat.AddItem "MALE - SHORTS" 2771 ProdCat.AddItem "MALE - TROUSERS" 2772 ProdCat.AddItem "MALE - JACKETS" 2773 ProdCat.AddItem "FEMALE - TOPS" 2774 ProdCat.AddItem "FEMALE - CAPRIS" 2775 ProdCat.AddItem "FEMALE - JEANS" 2776 ProdCat.AddItem "FEMALE - SKIRTS" 2777 ProdCat.AddItem "FEMALE - TROUSERS" 2778 ProdCat.AddItem "FEMALE - STOCKINGS" 2779 2780 ‘Setting maximum length for quantity to 6 2781 Quantity.MaxLength = 6 2782 2783 End Sub 2784 2785 'SupList click event 2786 'Triggers when item from SupList dropdown menu is selected 2787 'Function: Exits the program 2788 2789 Private Sub SupList_Click() 2790 2791 ‘For Storing TIN (Tax no.) 2792 Dim TINcount As Integer 2793 2794 TINcount = SupList.ListIndex 2795 2796 ‘Displaying TIN number for Supplier when supplier is selected 2797 SuppliersDB.Recordset.MoveFirst 2798 SuppliersDB.Recordset.Move (TINcount) 2799 2800 TINNo.Text = SuppliersDB.Recordset.Fields.Item(4) 2801 2802 2803 End Sub 2804 2805 'ProdCat click event 2806 'Triggers when an item from ProdCat is selected 2807 'Function: Fills products in ProdList dropdown menu from 2808 'table selected in ProdCat 2809 2810 Private Sub ProdCat_Click() 2811 2812 2813 Dim ProductLoop, ProductCount As Integer 2814

Page 111: Garment Store System

111

2815 Dim ProductList() As String 2816 2817 2818 Select Case ProdCat.List(ProdCat.ListIndex) 2819 2820 Case "MALE - SHIRTS" 2821 2822 ProdList.Clear 2823 M_Shirts.Refresh 2824 ProductCount = M_Shirts.Recordset.RecordCount 2825 ReDim ProductList(ProductCount) As String 2826 2827 With M_Shirts.Recordset 2828 While (Not M_Shirts.Recordset.EOF) 2829 ProductList(ProductLoop) =

(M_Shirts.Recordset.Fields.Item(1)) 2830 M_Shirts.Recordset.MoveNext 2831 ProductLoop = (ProductLoop + 1) 2832 Wend 2833 End With 2834 2835 ProductLoop = 0 2836 2837 For ProductLoop = 0 To (ProductCount - 1) 2838 ProdList.AddItem ProductList(ProductLoop) 2839 Next 2840 2841 2842 Case "MALE - T-SHIRTS" 2843 2844 ProdList.Clear 2845 M_Tshirts.Refresh 2846 ProductCount = M_Tshirts.Recordset.RecordCount 2847 ReDim ProductList(ProductCount) As String 2848 2849 With M_Tshirts.Recordset 2850 While (Not M_Tshirts.Recordset.EOF) 2851 ProductList(ProductLoop) =

(M_Tshirts.Recordset.Fields.Item(1)) 2852 M_Tshirts.Recordset.MoveNext 2853 ProductLoop = (ProductLoop + 1) 2854 Wend 2855 End With 2856 2857 ProductLoop = 0 2858 2859 For ProductLoop = 0 To (ProductCount - 1) 2860 ProdList.AddItem ProductList(ProductLoop)

Page 112: Garment Store System

112

2861 Next 2862 2863 2864 Case "MALE - JEANS" 2865 2866 ProdList.Clear 2867 M_Jeans.Refresh 2868 ProductCount = M_Jeans.Recordset.RecordCount 2869 ReDim ProductList(ProductCount) As String 2870 2871 With M_Jeans.Recordset 2872 While (Not M_Jeans.Recordset.EOF) 2873 ProductList(ProductLoop) =

(M_Jeans.Recordset.Fields.Item(1)) 2874 M_Jeans.Recordset.MoveNext 2875 ProductLoop = (ProductLoop + 1) 2876 Wend 2877 End With 2878 2879 ProductLoop = 0 2880 2881 For ProductLoop = 0 To (ProductCount - 1) 2882 ProdList.AddItem ProductList(ProductLoop) 2883 Next 2884 2885 2886 Case "MALE - SHORTS" 2887 2888 ProdList.Clear 2889 M_Shorts.Refresh 2890 ProductCount = M_Shorts.Recordset.RecordCount 2891 ReDim ProductList(ProductCount) As String 2892 2893 With M_Shorts.Recordset 2894 While (Not M_Shorts.Recordset.EOF) 2895 ProductList(ProductLoop) =

(M_Shorts.Recordset.Fields.Item(1)) 2896 M_Shorts.Recordset.MoveNext 2897 ProductLoop = (ProductLoop + 1) 2898 Wend 2899 End With 2900 2901 ProductLoop = 0 2902 2903 For ProductLoop = 0 To (ProductCount - 1) 2904 ProdList.AddItem ProductList(ProductLoop) 2905 Next 2906

Page 113: Garment Store System

113

2907 Case "MALE - TROUSERS" 2908 2909 ProdList.Clear 2910 M_Trousers.Refresh 2911 ProductCount = M_Trousers.Recordset.RecordCount 2912 ReDim ProductList(ProductCount) As String 2913 2914 With M_Trousers.Recordset 2915 While (Not M_Trousers.Recordset.EOF) 2916 ProductList(ProductLoop) =

(M_Trousers.Recordset.Fields.Item(1)) 2917 M_Trousers.Recordset.MoveNext 2918 ProductLoop = (ProductLoop + 1) 2919 Wend 2920 End With 2921 2922 ProductLoop = 0 2923 2924 For ProductLoop = 0 To (ProductCount - 1) 2925 ProdList.AddItem ProductList(ProductLoop) 2926 Next 2927 2928 2929 Case "MALE - JACKETS" 2930 2931 ProdList.Clear 2932 M_Jackets.Refresh 2933 ProductCount = M_Jackets.Recordset.RecordCount 2934 ReDim ProductList(ProductCount) As String 2935 2936 With M_Jackets.Recordset 2937 While (Not M_Jackets.Recordset.EOF) 2938 ProductList(ProductLoop) =

(M_Jackets.Recordset.Fields.Item(1)) 2939 M_Jackets.Recordset.MoveNext 2940 ProductLoop = (ProductLoop + 1) 2941 Wend 2942 End With 2943 2944 ProductLoop = 0 2945 2946 For ProductLoop = 0 To (ProductCount - 1) 2947 ProdList.AddItem ProductList(ProductLoop) 2948 Next 2949 2950 2951 Case "FEMALE - TOPS" 2952

Page 114: Garment Store System

114

2953 ProdList.Clear 2954 F_Tops.Refresh 2955 ProductCount = F_Tops.Recordset.RecordCount 2956 ReDim ProductList(ProductCount) As String 2957 2958 With F_Tops.Recordset 2959 While (Not F_Tops.Recordset.EOF) 2960 ProductList(ProductLoop) =

(F_Tops.Recordset.Fields.Item(1)) 2961 F_Tops.Recordset.MoveNext 2962 ProductLoop = (ProductLoop + 1) 2963 Wend 2964 End With 2965 2966 ProductLoop = 0 2967 2968 For ProductLoop = 0 To (ProductCount - 1) 2969 ProdList.AddItem ProductList(ProductLoop) 2970 Next 2971 2972 Case "FEMALE - CAPRIS" 2973 2974 ProdList.Clear 2975 F_Capris.Refresh 2976 ProductCount = F_Capris.Recordset.RecordCount 2977 ReDim ProductList(ProductCount) As String 2978 2979 With F_Capris.Recordset 2980 While (Not F_Capris.Recordset.EOF) 2981 ProductList(ProductLoop) =

(F_Capris.Recordset.Fields.Item(1)) 2982 F_Capris.Recordset.MoveNext 2983 ProductLoop = (ProductLoop + 1) 2984 Wend 2985 End With 2986 2987 ProductLoop = 0 2988 2989 For ProductLoop = 0 To (ProductCount - 1) 2990 ProdList.AddItem ProductList(ProductLoop) 2991 Next 2992 2993 Case "FEMALE - JEANS" 2994 2995 ProdList.Clear 2996 F_Jeans.Refresh 2997 ProductCount = F_Jeans.Recordset.RecordCount 2998 ReDim ProductList(ProductCount) As String

Page 115: Garment Store System

115

2999 3000 With F_Jeans.Recordset 3001 While (Not F_Jeans.Recordset.EOF) 3002 ProductList(ProductLoop) =

(F_Jeans.Recordset.Fields.Item(1)) 3003 F_Jeans.Recordset.MoveNext 3004 ProductLoop = (ProductLoop + 1) 3005 Wend 3006 End With 3007 3008 ProductLoop = 0 3009 3010 For ProductLoop = 0 To (ProductCount - 1) 3011 ProdList.AddItem ProductList(ProductLoop) 3012 Next 3013 3014 Case "FEMALE - SKIRTS" 3015 3016 ProdList.Clear 3017 F_Skirts.Refresh 3018 ProductCount = F_Skirts.Recordset.RecordCount 3019 ReDim ProductList(ProductCount) As String 3020 3021 With F_Skirts.Recordset 3022 While (Not F_Skirts.Recordset.EOF) 3023 ProductList(ProductLoop) =

(F_Skirts.Recordset.Fields.Item(1)) 3024 F_Skirts.Recordset.MoveNext 3025 ProductLoop = (ProductLoop + 1) 3026 Wend 3027 End With 3028 3029 ProductLoop = 0 3030 3031 For ProductLoop = 0 To (ProductCount - 1) 3032 ProdList.AddItem ProductList(ProductLoop) 3033 Next 3034 3035 3036 Case "FEMALE - TROUSERS" 3037 3038 ProdList.Clear 3039 F_Trousers.Refresh 3040 ProductCount = F_Trousers.Recordset.RecordCount 3041 ReDim ProductList(ProductCount) As String 3042 3043 With F_Trousers.Recordset 3044 While (Not F_Trousers.Recordset.EOF)

Page 116: Garment Store System

116

3045 ProductList(ProductLoop) = (F_Trousers.Recordset.Fields.Item(1))

3046 F_Trousers.Recordset.MoveNext 3047 ProductLoop = (ProductLoop + 1) 3048 Wend 3049 End With 3050 3051 ProductLoop = 0 3052 3053 For ProductLoop = 0 To (ProductCount - 1) 3054 ProdList.AddItem ProductList(ProductLoop) 3055 Next 3056 3057 Case "FEMALE - STOCKINGS" 3058 3059 ProdList.Clear 3060 F_Stockings.Refresh 3061 ProductCount = F_Stockings.Recordset.RecordCount 3062 ReDim ProductList(ProductCount) As String 3063 3064 With F_Stockings.Recordset 3065 While (Not F_Stockings.Recordset.EOF) 3066 ProductList(ProductLoop) =

(F_Stockings.Recordset.Fields.Item(1)) 3067 F_Stockings.Recordset.MoveNext 3068 ProductLoop = (ProductLoop + 1) 3069 Wend 3070 End With 3071 3072 ProductLoop = 0 3073 3074 For ProductLoop = 0 To (ProductCount - 1) 3075 ProdList.AddItem ProductList(ProductLoop) 3076 Next 3077 3078 End Select 3079 3080 3081 End Sub 3082 3083 'cmdCancel click event 3084 'Triggers when the "CANCEL" Button is pressed 3085 'Function: Closes Inventory and open Main Screen 3086 3087 Private Sub cmdCancel_Click() 3088 frmMain.Show 3089 Unload Me 3090

Page 117: Garment Store System

117

3091 End Sub 3092 3093 'cmdConfirm click event 3094 'Triggers when the "CONFIRM" Button is pressed 3095 'Function: Adds goods to inventory 3096 3097 Private Sub cmdConfirm_Click() 3098 3099 ‘Storing Product code to write in Inventory log 3100 Dim ProdCode As String 3101 3102 'UPDATING THE STOCK DATABASE 3103 3104 If (ProdCat.Text = "MALE - SHIRTS") Then 3105 3106 M_Shirts.Recordset.MoveFirst 3107 3108 'Checking till end of database is reached 3109 3110 Do Until M_Shirts.Recordset.EOF 3111 3112 'Checking if product selected is the product in database 3113 3114 If (M_Shirts.Recordset.Fields.Item(1) = ProdList.Text) Then 3115 3116 'Get ProdCode for Inventory entry 3117 ProdCode = M_Shirts.Recordset.Fields.Item(0) & " / " &

M_Shirts.Recordset.Fields.Item(1) 3118 3119 'Updating Stock 3120 Stock = Val(M_Shirts.Recordset.Fields.Item(3)) +

Val(Quantity.Text) 3121 M_Shirts.Recordset.Fields.Item(3) = Val(Stock) 3122 M_Shirts.Recordset.Update 3123 3124 Exit Do 3125 3126 Else 3127 3128 'If product is not the current record, then moves to next record 3129 M_Shirts.Recordset.MoveNext 3130 3131 End If 3132 Loop 3133 3134 3135 ElseIf (ProdCat.Text = "MALE - T-SHIRTS") Then 3136

Page 118: Garment Store System

118

3137 M_Tshirts.Recordset.MoveFirst 3138 3139 'Checking till end of database is reached 3140 3141 Do Until M_Tshirts.Recordset.EOF 3142 3143 'Checking if product selected is the product in database 3144 3145 If (M_Tshirts.Recordset.Fields.Item(1) = ProdList.Text) Then 3146 3147 'Get ProdCode for Inventory entry 3148 ProdCode = M_Tshirts.Recordset.Fields.Item(0) & " / " &

M_Tshirts.Recordset.Fields.Item(1) 3149 3150 'Updating Stock 3151 Stock = Val(M_Tshirts.Recordset.Fields.Item(3)) +

Val(Quantity.Text) 3152 M_Tshirts.Recordset.Fields.Item(3) = Val(Stock) 3153 M_Tshirts.Recordset.Update 3154 3155 Exit Do 3156 3157 Else 3158 3159 'If product is not the current record, then moves to next record 3160 M_Tshirts.Recordset.MoveNext 3161 3162 End If 3163 Loop 3164 3165 3166 ElseIf (ProdCat.Text = "MALE - JEANS") Then 3167 3168 M_Jeans.Recordset.MoveFirst 3169 3170 'Checking till end of database is reached 3171 3172 Do Until M_Jeans.Recordset.EOF 3173 3174 'Checking if product selected is the product in database 3175 3176 If (M_Jeans.Recordset.Fields.Item(1) = ProdList.Text) Then 3177 3178 'Get ProdCode for Inventory entry 3179 ProdCode = M_Jeans.Recordset.Fields.Item(0) & " / " &

M_Jeans.Recordset.Fields.Item(1) 3180 3181 'Updating Stock

Page 119: Garment Store System

119

3182 Stock = Val(M_Jeans.Recordset.Fields.Item(3)) + Val(Quantity.Text)

3183 M_Jeans.Recordset.Fields.Item(3) = Val(Stock) 3184 M_Jeans.Recordset.Update 3185 3186 Exit Do 3187 3188 Else 3189 3190 'If product is not the current record, then moves to next record 3191 M_Jeans.Recordset.MoveNext 3192 3193 End If 3194 Loop 3195 3196 3197 ElseIf (ProdCat.Text = "MALE - SHORTS") Then 3198 3199 M_Shorts.Recordset.MoveFirst 3200 3201 'Checking till end of database is reached 3202 3203 Do Until M_Shorts.Recordset.EOF 3204 3205 'Checking if product selected is the product in database 3206 3207 If (M_Shorts.Recordset.Fields.Item(1) = ProdList.Text) Then 3208 3209 'Get ProdCode for Inventory entry 3210 ProdCode = M_Shorts.Recordset.Fields.Item(0) & " / " &

M_Shorts.Recordset.Fields.Item(1) 3211 3212 'Updating Stock 3213 Stock = Val(M_Shorts.Recordset.Fields.Item(3)) +

Val(Quantity.Text) 3214 M_Shorts.Recordset.Fields.Item(3) = Val(Stock) 3215 M_Shorts.Recordset.Update 3216 3217 Exit Do 3218 3219 Else 3220 3221 'If product is not the current record, then moves to next record 3222 M_Shorts.Recordset.MoveNext 3223 3224 End If 3225 Loop 3226

Page 120: Garment Store System

120

3227 3228 ElseIf (ProdCat.Text = "MALE - TROUSERS") Then 3229 3230 M_Trousers.Recordset.MoveFirst 3231 3232 'Checking till end of database is reached 3233 3234 Do Until M_Trousers.Recordset.EOF 3235 3236 'Checking if product selected is the product in database 3237 3238 If (M_Trousers.Recordset.Fields.Item(1) = ProdList.Text) Then 3239 3240 'Get ProdCode for Inventory entry 3241 ProdCode = M_Trousers.Recordset.Fields.Item(0) & " / " &

M_Trousers.Recordset.Fields.Item(1) 3242 3243 'Updating Stock 3244 Stock = Val(M_Trousers.Recordset.Fields.Item(3)) +

Val(Quantity.Text) 3245 M_Trousers.Recordset.Fields.Item(3) = Val(Stock) 3246 M_Trousers.Recordset.Update 3247 3248 Exit Do 3249 3250 Else 3251 3252 'If product is not the current record, then moves to next record 3253 M_Trousers.Recordset.MoveNext 3254 3255 End If 3256 Loop 3257 3258 3259 ElseIf (ProdCat.Text = "MALE - JACKETS") Then 3260 3261 M_Jackets.Recordset.MoveFirst 3262 3263 'Checking till end of database is reached 3264 3265 Do Until M_Jackets.Recordset.EOF 3266 3267 'Checking if product selected is the product in database 3268 3269 If (M_Jackets.Recordset.Fields.Item(1) = ProdList.Text) Then 3270 3271 'Get ProdCode for Inventory entry

Page 121: Garment Store System

121

3272 ProdCode = M_Jackets.Recordset.Fields.Item(0) & " / " & M_Jackets.Recordset.Fields.Item(1)

3273 3274 'Updating Stock 3275 Stock = Val(M_Jackets.Recordset.Fields.Item(3)) +

Val(Quantity.Text) 3276 M_Jackets.Recordset.Fields.Item(3) = Val(Stock) 3277 M_Jackets.Recordset.Update 3278 3279 Exit Do 3280 3281 Else 3282 3283 'If product is not the current record, then moves to next record 3284 M_Jackets.Recordset.MoveNext 3285 3286 End If 3287 Loop 3288 3289 3290 ElseIf (ProdCat.Text = "FEMALE - TOPS") Then 3291 3292 F_Tops.Recordset.MoveFirst 3293 3294 'Checking till end of database is reached 3295 3296 Do Until F_Tops.Recordset.EOF 3297 3298 'Checking if product selected is the product in database 3299 3300 If (F_Tops.Recordset.Fields.Item(1) = ProdList.Text) Then 3301 3302 'Get ProdCode for Inventory entry 3303 ProdCode = F_Tops.Recordset.Fields.Item(0) & " / " &

F_Tops.Recordset.Fields.Item(1) 3304 3305 'Updating Stock 3306 Stock = Val(F_Tops.Recordset.Fields.Item(3)) +

Val(Quantity.Text) 3307 F_Tops.Recordset.Fields.Item(3) = Val(Stock) 3308 F_Tops.Recordset.Update 3309 3310 Exit Do 3311 3312 Else 3313 3314 'If product is not the current record, then moves to next record 3315 F_Tops.Recordset.MoveNext

Page 122: Garment Store System

122

3316 3317 End If 3318 Loop 3319 3320 3321 ElseIf (ProdCat.Text = "FEMALE - CAPRIS") Then 3322 3323 F_Capris.Recordset.MoveFirst 3324 3325 'Checking till end of database is reached 3326 3327 Do Until F_Capris.Recordset.EOF 3328 3329 'Checking if product selected is the product in database 3330 3331 If (F_Capris.Recordset.Fields.Item(1) = ProdList.Text) Then 3332 3333 'Get ProdCode for Inventory entry 3334 ProdCode = F_Capris.Recordset.Fields.Item(0) & " / " &

F_Capris.Recordset.Fields.Item(1) 3335 3336 'Updating Stock 3337 Stock = Val(F_Capris.Recordset.Fields.Item(3)) +

Val(Quantity.Text) 3338 F_Capris.Recordset.Fields.Item(3) = Val(Stock) 3339 F_Capris.Recordset.Update 3340 3341 Exit Do 3342 3343 Else 3344 3345 'If product is not the current record, then moves to next record 3346 F_Capris.Recordset.MoveNext 3347 3348 End If 3349 Loop 3350 3351 ElseIf (ProdCat.Text = "FEMALE - JEANS") Then 3352 3353 F_Jeans.Recordset.MoveFirst 3354 3355 'Checking till end of database is reached 3356 3357 Do Until F_Jeans.Recordset.EOF 3358 3359 'Checking if product selected is the product in database 3360 3361 If (F_Jeans.Recordset.Fields.Item(1) = ProdList.Text) Then

Page 123: Garment Store System

123

3362 3363 'Get ProdCode for Inventory entry 3364 ProdCode = F_Jeans.Recordset.Fields.Item(0) & " / " &

F_Jeans.Recordset.Fields.Item(1) 3365 3366 'Updating Stock 3367 Stock = Val(F_Jeans.Recordset.Fields.Item(3)) +

Val(Quantity.Text) 3368 F_Jeans.Recordset.Fields.Item(3) = Val(Stock) 3369 F_Jeans.Recordset.Update 3370 3371 Exit Do 3372 3373 Else 3374 3375 'If product is not the current record, then moves to next record 3376 F_Jeans.Recordset.MoveNext 3377 3378 End If 3379 Loop 3380 3381 ElseIf (ProdCat.Text = "FEMALE - SKIRTS") Then 3382 3383 F_Skirts.Recordset.MoveFirst 3384 3385 'Checking till end of database is reached 3386 3387 Do Until F_Skirts.Recordset.EOF 3388 3389 'Checking if product selected is the product in database 3390 3391 If (F_Skirts.Recordset.Fields.Item(1) = ProdList.Text) Then 3392 3393 'Get ProdCode for Inventory entry 3394 ProdCode = F_Skirts.Recordset.Fields.Item(0) & " / " &

F_Skirts.Recordset.Fields.Item(1) 3395 3396 'Updating Stock 3397 Stock = Val(F_Skirts.Recordset.Fields.Item(3)) +

Val(Quantity.Text) 3398 F_Skirts.Recordset.Fields.Item(3) = Val(Stock) 3399 F_Skirts.Recordset.Update 3400 3401 Exit Do 3402 3403 Else 3404 3405 'If product is not the current record, then moves to next record

Page 124: Garment Store System

124

3406 F_Skirts.Recordset.MoveNext 3407 3408 End If 3409 Loop 3410 3411 ElseIf (ProdCat.Text = "FEMALE - TROUSERS") Then 3412 3413 F_Trousers.Recordset.MoveFirst 3414 3415 'Checking till end of database is reached 3416 3417 Do Until F_Trousers.Recordset.EOF 3418 3419 'Checking if product selected is the product in database 3420 3421 If (F_Trousers.Recordset.Fields.Item(1) = ProdList.Text)

Then 3422 3423 'Get ProdCode for Inventory entry 3424 ProdCode = F_Trousers.Recordset.Fields.Item(0) & " / " &

F_Trousers.Recordset.Fields.Item(1) 3425 3426 'Updating Stock 3427 Stock = Val(F_Trousers.Recordset.Fields.Item(3)) +

Val(Quantity.Text) 3428 F_Trousers.Recordset.Fields.Item(3) = Val(Stock) 3429 F_Trousers.Recordset.Update 3430 3431 Exit Do 3432 3433 Else 3434 3435 'If product is not the current record, then moves to next record 3436 F_Trousers.Recordset.MoveNext 3437 3438 End If 3439 Loop 3440 3441 ElseIf (ProdCat.Text = "FEMALE - STOCKINGS") Then 3442 3443 F_Stockings.Recordset.MoveFirst 3444 3445 'Checking till end of database is reached 3446 3447 Do Until F_Stockings.Recordset.EOF 3448 3449 'Checking if product selected is the product in database 3450

Page 125: Garment Store System

125

3451 If (F_Stockings.Recordset.Fields.Item(1) = ProdList.Text) Then

3452 3453 'Get ProdCode for Inventory entry 3454 ProdCode = F_Stockings.Recordset.Fields.Item(0) & " / " &

F_Stockings.Recordset.Fields.Item(1) 3455 3456 'Updating Stock 3457 Stock = Val(F_Stockings.Recordset.Fields.Item(3)) +

Val(Quantity.Text) 3458 F_Stockings.Recordset.Fields.Item(3) = Val(Stock) 3459 F_Stockings.Recordset.Update 3460 3461 Exit Do 3462 3463 Else 3464 3465 'If product is not the current record, then moves to next record 3466 F_Stockings.Recordset.MoveNext 3467 3468 End If 3469 Loop 3470 3471 End If 3472 3473 3474 Dim LogDate As String 3475 3476 'Storing the Date in the DisplayDate variable 3477 DisplayDate = DateValue(Now) 3478 3479 'Formating and displaying the date as DD / MM / YYYY 3480 LogDate = Format(DisplayDate, "DD / MM / YYYY") 3481 3482 'WRITING THE INVENTORY LOG 3483 3484 'Refreshing the InventorySales control 3485 InventoryLog.Refresh 3486 3487 With InventoryLog.Recordset 3488 'Adding a new record in the Inventory log 3489 InventoryLog.Recordset.AddNew 3490 3491 'Adding the Date 3492 InventoryLog.Recordset.Fields("Date") = LogDate 3493 3494 'Adding the Supplier Name 3495 InventoryLog.Recordset.Fields("Supplier") = SupList.Text

Page 126: Garment Store System

126

3496 3497 'Adding the Reference number 3498 InventoryLog.Recordset.Fields("Ref No") = SRefNo.Text 3499 3500 'Adding the Product name 3501 InventoryLog.Recordset.Fields("Product") = ProdCode 3502 3503 'Adding the Quantity received 3504 InventoryLog.Recordset.Fields("Quantity") = Quantity.Text 3505 3506 'Updating the Inventory log 3507 InventoryLog.Recordset.Update 3508 InventoryLog.Recordset.Requery 3509 3510 End With 3511 3512 'Displaying Successful Dialog message 3513 MsgBox ("Inventory Successfully Updated") 3514 3515 'Opening Main Form 3516 frmMain.Show 3517 'Closing Inventory Form 3518 Unload Me 3519 3520 End Sub

MODULES

NAME: BACKUP

3521 '******************************************************** 3522 ' MODULE: Backup 3523 ' PURPOSE: For Backup and Restore of Databases 3524 '******************************************************** 3525 3526 Public Function BackupDB() 3527 3528 Dim ProdDB, MainDB, BackupProdDB, BackupMainDB As String 3529 3530 'Path of the main database file 3531 MainDB = App.Path & "\Database.mdb" 3532

Page 127: Garment Store System

127

3533 'Path of the product database file 3534 ProdDB = App.Path & "\Products.mdb" 3535 3536 'Path of the BACKUP database file 3537 BackupMainDB = App.Path & "\BACKUP\Database.mdb" 3538 3539 'Path of the BACKUP products database file 3540 BackupProdDB = App.Path & "\BACKUP\Products.mdb" 3541 3542 'Copying the database from the main directory to the BACKUP

directory using FileCopy function of VB 3543 FileCopy MainDB, BackupMainDB 3544 FileCopy ProdDB, BackupProdDB 3545 3546 'Displaying message box with message 3547 ‘"BACKUP SUCCESSFUL !" 3548 MsgBox ("BACKUP SUCCESSFUL !") 3549 3550 End Function 3551 3552 Public Function RestoreDB() 3553 3554 Dim ProdDB, MainDB, BackupProdDB, BackupMainDB As String 3555 3556 'Path of the main database file 3557 MainDB = App.Path & "\Database.mdb" 3558 3559 'Path of the product database file 3560 ProdDB = App.Path & "\Products.mdb" 3561 3562 'Path of the BACKUP database file 3563 BackupMainDB = App.Path & "\BACKUP\Database.mdb" 3564 3565 'Path of the BACKUP products database file 3566 BackupProdDB = App.Path & "\BACKUP\Products.mdb" 3567 3568 'Copying the database from the main directory to the BACKUP 3569 ‘directory using FileCopy function of VB 3570 FileCopy BackupMainDB, MainDB 3571 FileCopy BackupProdDB, ProdDB 3572 3573 'Displaying message box with message 3574 ‘"BACKUP SUCCESSFUL !" 3575 MsgBox ("RESTORE SUCCESSFUL !") 3576 3577 End Function

Page 128: Garment Store System

128

3578 '******************************************************** 3579 ' MODULE: CardNo 3580 ' PURPOSE: Generate Card Numbers for Members 3581 '******************************************************** 3582 3583 Public Function GetCardNo() 3584 3585 Dim CardNumber As String 3586 Dim CardFile As Integer 3587 3588 CardFile = FreeFile 3589 3590 'Open the file for reading 3591 Open App.Path & "\CardNo.txt" For Input As #CardFile 3592 3593 'Read the file until we reach the end 3594 Do While Not EOF(CardFile) 3595 Input #CardFile, CardNumber 3596 frmMembers.CardNo.Text = CardNumber 3597 Loop 3598 3599 'Closing the file 3600 Close #CardFile 3601 3602 End Function 3603 3604 Public Function UpdateCardNo() 3605 3606 Dim CardNumber As String 3607 Dim CardFile As Integer 3608 Dim CardUpdate As Integer 3609 3610 CardFile = FreeFile 3611 3612 'Open the file for reading the current CardNo 3613 Open App.Path & "\CardNo.txt" For Input As #CardFile 3614 3615 'Reading CardNo for current Card No 3616 Line Input #CardFile, CardNumber 3617 CardUpdate = ((Val(CardNumber)) + 1) 3618 3619 'Closing the file 3620 Close #CardFile 3621

Page 129: Garment Store System

129

3622 3623 'Open file for updating Card No 3624 Open App.Path & "\CardNo.txt" For Output As #CardFile 3625 3626 'Updating new Card No to file 3627 Print #CardFile, CardUpdate 3628 3629 3630 'Closing the file 3631 Close #CardFile 3632 3633 End Function

3634 '******************************************************** 3635 ' MODULE: OrderNo 3636 ' PURPOSE: Generate Order Numbers for Orders 3637 '******************************************************** 3638 3639 Public Function GetOrderNo() 3640 3641 Dim OrderNumber As String 3642 Dim OrderFile As Integer 3643 3644 OrderFile = FreeFile 3645 3646 'Open the file for reading 3647 Open App.Path & "\OrderNo.txt" For Input As #OrderFile 3648 3649 'Read the file until we reach the end 3650 Do While Not EOF(OrderFile) 3651 Input #OrderFile, OrderNumber 3652 frmBill.BillNoLabel.Caption = OrderNumber 3653 Loop 3654 3655 'Closing the file 3656 Close #OrderFile 3657 3658 End Function 3659 3660 Public Function UpdateOrderNo() 3661 3662 Dim OrderNumber As String 3663 Dim OrderFile As Integer 3664 Dim OrderUpdate As Integer

Page 130: Garment Store System

130

3665 3666 OrderFile = FreeFile 3667 3668 'Open the file for reading the current Order No 3669 Open App.Path & "\OrderNo.txt" For Input As #OrderFile 3670 3671 'Reading CardNo for current Order No 3672 Line Input #OrderFile, OrderNumber 3673 OrderUpdate = ((Val(OrderNumber)) + 1) 3674 3675 'Closing the file 3676 Close #OrderFile 3677 3678 3679 'Open file for updating Order No 3680 Open App.Path & "\OrderNo.txt" For Output As #OrderFile 3681 3682 'Updating new Order No to file 3683 Print #OrderFile, OrderUpdate 3684 3685 3686 'Closing the file 3687 Close #OrderFile 3688 3689 End Function 3690

3691 '******************************************************** 3692 ' MODULE: NewSale 3693 ' PURPOSE: Calculate total amount when product is 3694 ' added/removed/updated to the Cart 3695 '******************************************************** 3696 3697 Public Function Calculate() 3698 3699 'Declaring variables 3700 'TotalAmt is for storing the total sale amount 3701 'TaxAmt is for storing the Tax (4% of TotalAmt) 3702 Dim TotalAmt, TaxAmt, DiscountAmt As Double 3703 'RowCount is for navigating through the Order table 3704 Dim RowCount As Integer 3705 3706 'Calculating the Total amount from each row till end of table is

reached 3707 For RowCount = 1 To (frmNewSale.Cart.Rows - 1)

Page 131: Garment Store System

131

3708 TotalAmt = TotalAmt + Val(frmNewSale.Cart.TextMatrix(RowCount, 3))

3709 Next 3710 3711 'Displaying the Total, Tax and Total Amount in the labels 3712 frmNewSale.Total.Caption = TotalAmt 3713 3714 If (frmNewSale.Discount = True) Then 3715 DiscountAmt = TotalAmt * 0.1 3716 TaxAmt = ((TotalAmt - DiscountAmt) * 0.04) 3717 frmNewSale.GrossAmount.Caption = 3718 ((TotalAmt - DiscountAmt) + TaxAmt) 3719 Else 3720 TaxAmt = (TotalAmt * 0.04) 3721 frmNewSale.GrossAmount.Caption = (TotalAmt + TaxAmt) 3722 End If 3723 3724 frmNewSale.DiscAmt.Caption = DiscountAmt 3725 frmNewSale.Tax.Caption = TaxAmt 3726 3727 End Function 3728

3.1.2 Test Plan 1. LOGINSCREEN

(a) BlankLogin(b) WrongLogin(c) UserLogin(d) AdminLogin

2. ADMINPANEL(a) REPORTS(a)(i)SALESREPORT(a)(ii)INVENTORYREPORT(a)(iii)MEMBERSREPORT

(b) (i)MANAGEPRODUCTS(ii)DropDown(iii)DropDownSelect

(iv)AddProduct

Page 132: Garment Store System

132

(v)Add+Save(vi)Modify(vii)Modify+Save(viii)Delete

(c) MANAGEUSERS(i) AddUser(ii) SaveUser(iii) ModifyUser(iv) ModifySaved(v) DeleteUser(vi) Deleted

(d) SUPPLIERS

(i) AddSupplier(ii) SaveSupplier(iii) ModifySupplier(iv) DeleteSupplier(v) Deleted

(e) BACKUPDATABASE(f) RESTOREDATABASE(g) HELP(h) LOGOUT

3. MAINSCREEN

(a) VIEWPRODUCTS(i) Catagories

(b) NEWSALE‐

(i) CategoryDropDown(ii) ProductDropDown(iii) AddtoCart(iv) AddmoreProduct(v) MembershipCard(vi) ValidMembershipCard

(vii) DiscountApplied(viii) Bill–Member(ix) Bill‐Cash(x) EmptyCart(xi) RemovefromEmptyCart(xii) InvalidCardNumber(xiii) AlphabeticalQuantity(xiv)BlankQuantity

Page 133: Garment Store System

133

(c) MEMBERSDATABASE

(i) Found(ii)NotFound(iii)InvalidSearch(iv)BlankSearch(v)AddNewMember(vi)NewMemberCreated

(d) INVENTORY

(i) DropDown(ii)Datafilled(iii)Updated(iv)SuppliersReferenceBlank(v)QuantityBlank

(e) HELP

3.1.3 Test Run

1. LOGIN SCREEN When theUser runs theprogram, theFirstScreen thatappearswillbe the “LOGIN”Screen. In this “LOGIN” Screen, the User has to enter the username in the“USERNAME” field and the selected password in the “PASSWORD” field. The LoginScreen has an option to Login after filling the Username and Password into theirrespectivefieldsorhasanoptiontoExittheprogrambypressingthe“EXIT”Button.Itwillappearasbelow:

Page 134: Garment Store System

134

1 (a) BLANK LOGIN

IftheUserdoesnotenteranytextorvalueinthe“USERNAME”andleavesitblank,ordoesnotenteranyvalueinthe“PASSWORD”fieldandleavesitblank,thenapop‐upwindowwill appearwith themessage “INVALIDLOGIN”. The option in this Pop‐upwillbean “OK”button.Onpressing this “OK”button, thePop‐upwindowwill closeand the User will have to enter the Username and Password into the fields of theLoginwindow.Itwillappearasbelow:

1 (b) WRONG LOGIN

IftheUserentersawrongusernameinthe“USERNAME”orentersawrongpasswordin the “PASSWORD” field, then a pop‐up window will appear with the message“INVALIDLOGIN”.TheoptioninthisPop‐upwillbean“OK”button.Onpressingthis“OK” button, the Pop‐up window will close and the User will have to enter theUsernameandPasswordintothefieldsoftheLoginwindow.Itwillappearasbelow:

Page 135: Garment Store System

135

1 (c) USER LOGIN

ThestaffmemberhastoenteravalidUsernameinthe“USERNAME”field,thecorrectPassword in the “PASSWORD” field. These are assigned by the Administrator in“MANAGEUSERS”intheAdminPanel.Oncethelogincredentialsareentered,theUserhas to press the “LOGIN” button to get access to the system. Pressing the “EXIT”buttonwillclosetheapplication.Itwillappearasbelow:

Page 136: Garment Store System

136

1 (d) ADMIN LOGIN

The Program has a predefined Administrator Account with a default Username of“admin” and a default password as “attire”. The Administrator Username andPassword are pre‐defined and by default. This Account enables the User (Storeowner)tohaveanoverallcontrolofthesystem.Itwillappearasbelow:

2. ADMIN PANEL

WhentheAdministratorenters thepre‐definedanddefaultUsernameof “admin” inthe “USERNAME” field and the pre‐defined and default password “fiesta” in the“PASSWORD” field, the following “ADMIN PANEL” will be displayed. This “ADMINPANEL”willshowtheSystemDateandTimeandhas7(seven)optionsintheformof7(seven)buttonsandaHELPbutton.TheSevenOptionsare:“REPORTS”,“MANAGEPRODUCTS”, “MANAGE USERS”, “SUPPLIERS”, “BACKUP DATABASE”, “RESTOREDATABASE”,“LOGOUT”and“HELP”.Itwillappearasbelow:

Page 137: Garment Store System

137

2 (a) REPORTS

SincetheAdministratorneedstoviewthevariousreportsregularly,thefirstoptionisReports.Onpressing the “REPORTS”Button,aWindowwillopenwhichwillhave3(three) buttons for three type of Report options viz: SALES, INVENTORY andMEMBER.

Page 138: Garment Store System

138

2 (a) (i) SALES REPORT

OnchoosingthefirstoptionandpressingtheSALESbutton,theSalesReportwillbedisplayed.ThisReporthasbasicdetailsanddatalikeDateoftheBill,BillNo.andBillAmount.Itwillappearasbelow:

Page 139: Garment Store System

139

2 (a) (ii) INVENTORY REPORT

The INVENTORY REPORT displays the data like Date of supply, SuppliersName,SupplierReferenceNo.(SupplierBillNo.underwhichthegoodsaresupplied),ProductsreceivedandQuantityofProductsreceived.Thiswillappearasbelow:

Page 140: Garment Store System

140

2 (a) (iii) MEMBER REPORT

TheMEMBERREPORTwillgiveallthedetailsoftheMembersrequiredbytheStoreOwnerviz.MembershipCardNumber,NameoftheMember,TelephoneNumberoftheMember,E‐mailoftheMemberandAddressoftheMember.ThiswillallowtheStoreOwnertoviewtheListofMembersofthestorewhohaveitsMembership.Thiswillappearasbelow:

Page 141: Garment Store System

141

2 (b) (i) MANAGE PRODUCTS

Since theAdministratorwillmanage theproducts, it is only theAdministratorwhohastheaccessandtheauthoritytoaddorchangetheproductsandsetitsprices.TheSecondButtonisthe“MANAGEPRODUCTS”Button.WhentheAdministratorpressesthe “MANAGE PRODUCTS” Button, the following Screen will be displayed. TheMANAGEPRODUCTSScreenwillhaveadrop‐downMenuwhichwilllisttheCategoryoftheProductstobemanaged.

Page 142: Garment Store System

142

2 (b) (ii) MANAGE PRODUCTS – DROP DOWN

OncetheAdministratorclicksontheDropDownMenu,alistofCategoriesofproductswill be displayed. The Administrator has to select a Category from the list ofCategories in thedropdownmenu.When theAdministrator selects aCategory, theproductsfallingunderthatcategorywillbedisplayedintheTablesbelow.

Page 143: Garment Store System

143

2 (b) (iii) MANAGE PRODUCTS – DROP DOWN SELECT

TheTablehascolumnsofProductCode,ProductName,PriceoftheProductandStockof the Product. Since there are many Products under each category, a Table viewwouldbesuitableasallofthemcouldbeseenataglance.TheAdministratorwillbeabletoAddanewproduct,ModifyaproductorDeleteaproductusingthebuttonsatthebottomof thescreen.This featurewillbeprovidedonlyto theAdministratorastheAdministratorisnormallyrequiredtoChangetheProductName,Code,PriceandStockasalsotoAdd,ModifyorDeleteaproduct fromtherangeofproductsofferedfromtimetotime.

Page 144: Garment Store System

144

2 (b) (iv) MANAGE PRODUCTS - ADD

When the Administrator wants to Add a product in the Product List, theAdministratorhas topress the “ADD”Button.Onpressing the “ADD”Button, anewrowwillbeaddedattheendofthetableandthearrowcursorwillbepositionedonthisrow.The“SAVE”buttonwhichwasdisabledearlier(itwasgrey)willnowbecomeenabled(itwillturnblack).TheAdministratorhastofillthedetailslike:theCodeofProducttobeadded,inthe“CODE”column,theNameoftheProducttobeadded,inthe“PRODUCTNAME”column,RateoftheProducttobeadded,inthe“PRICE”columnandStockoftheProducttobeadded,inthe“STOCK”column.ItcanbeseenthattheADDbuttonhasbeenpressedandisgrey.

Page 145: Garment Store System

145

2 (b) (v) MANAGE PRODUCTS – ADD+SAVE

After fillingthedetails like: theCodeofProducttobeadded, inthe“CODE”column,theNameoftheProducttobeadded,inthe“PRODUCTNAME”column,theRateoftheProducttobeadded,inthe“PRICE”column,andtheStockoftheProducttobeadded,inthe“STOCK”column,theAdministratorhastopressthe“SAVE”Button.Onpressingthe“SAVE”Button,apop‐upwindowwillbedisplayedwiththemessage“Saved”andtheProductwillbeaddedtotheProductdatabaseanddisplayedintheTable.AgainitcanbeseenthattheADDbuttonispressedandisgrey.

Page 146: Garment Store System

146

2 (b) (vi) MANAGE PRODUCTS - MODIFY

If theAdministratorwants tomake changes like Code,Name, Price or Stock of anyexisting product in the list, then the Administrator has to select the product to bemodifiedfromthe list.TheAdministratorwillhavetoselect therowintheTable inwhichthechangesaretobemadeandthenmakethechangestotheexistingproductlikeCode,Name,PriceorStock.Hecanalsomakechangesinallthefieldsofthetable.ItcanbeseenthattheMODIFYbuttonispressedhereandthusisgrey.

Page 147: Garment Store System

147

2 (b) (vii) MANAGE PRODUCTS – MODIFY+SAVE

Whenthechangesaremade,theAdministratorhastoclickonthe“MODIFY”button.When the “MODIFY” Button is pressed, a pop‐up window will appear with themessage “Saved”and thechangeswillbesaved in theProductdatabaseandwillbedisplayedintheTable.ItcanbeseenherethattheMODIFYbuttonispressedandistherefore,greyincolor.

Page 148: Garment Store System

148

2 (b) (viii) MANAGE PRODUCTS - DELETE

TodeleteaproductfromtheexistinglistofProductsintheTable,theAdministratorhastoselecttherowoftheproducttobedeleted.ThentheAdministratorhastoclickon the “DELETE”Button.On clicking the “DELETE”Button, a Confirmationwindowwillbedisplayedwiththemessage“Areyousure?”andtwooptionbuttons“Yes”and“No”. If the “Yes” button is clicked, the product will be deleted from the ProductdatabaseandwillnotbeshowninthelistofProductsintheTable.Ifthe“No”buttonis clicked, the Confirmation window will close and no changes will made to theProductdatabase.Itcanbeseenintheimagebelow:

Page 149: Garment Store System

149

WhentheAdministratorwantstodeleteaproductfromtheexistinglistofproductsintheTable,theAdministratorhastochoosearowoftheproducttobedeletedandclickonthe“DELETE”Button.Aconfirmationdialogboxwillappearwiththemessage“Areyousure?” If the “Yes”option is selected, thenapop‐upwindowwillopenwith themessage“ProductDeleted”andtheProductwillbedeletedfromtheProductdatabaseandwillberemovedfromthelistofproductsintheTable.

Page 150: Garment Store System

150

2 (c) MANAGE USERS

Since theAdministratorwillmanage theUserswhowouldbeauthorized touse thesystem, it isonly theAdministratorwhohas theaccessand theauthority toaddorchangetheUsersandset theirpasswords.ThenextButton is the“MANAGEUSERS”Button.WhentheAdministratorpressesthe“MANAGEUSERS”Button,thefollowingScreenwillbedisplayed.ThisMANAGEUSERSScreenhasaNavigationBarattheTop,underwhichtherearethreefields:“STAFFNAME”Fieldinwhichthenameofthestaffmember has to be filled by the Administrator, “USER NAME” Field in which theusername has to be assigned to the Staff member and is to be filled by theAdministratorandthe“PASSWORD”Fieldinwhichthepasswordhastobeassignedto the username and is to be filled by the Administrator. The Navigation Bar willenable theAdministrator to navigate through theUserdatabase records. The Innerarrows of the Navigation Bar will go through the User database one after anotherwhereastheOuterarrowsoftheNavigationBarwillgotothefirstandlastrecordoftheUserdatabase.Therearealso5(five)optionsintheformof5(five)buttons.Theyare:“ADD”,“SAVE”,“MODIFY”,“DELETE”and“BACK”.

Page 151: Garment Store System

151

2 (c)(i) ADD USER

WhentheAdministratorwishestoAddaUser,theAdministratorwillpressthe“ADD”button.When the “ADD”Button ispressed, all the fieldswill becomeblankand theAdministratorwillhavetoentertheNewStaffNameinthe“StaffName”field,theNewUsernameinthe“Username”fieldandtheNewPasswordinthe“Password”fieldandclickonthe“SAVE”button.The“SAVE”Buttonwhichisnormallydisabledwillonlybeenabledwhenthe“ADD”buttonispressed.

Page 152: Garment Store System

152

2 (c)(ii) USER CREATED - SAVED

When the Administrator fills the three fields with the Staff name, Username andPasswordandpressesthe“SAVE”Button,aPop‐upwindowwillbedisplayedwiththemessage “User Created Successfully” and the record will be added to the Usersdatabase.ThisPop‐upwindowwillhaveaButton“OK”init.Whenthis“OK”buttonispressed,thePop‐upwindowwillcloseandtheUserfieldswilldisplaythefirstrecordintheUserdatabase.

Page 153: Garment Store System

153

2 (c)(iii) MODIFY USER

If theAdministratorwantstomakeanychangestoaUseraccount likechangingtheUsername or Password, the Administrator will have to navigate to that UsernameusingtheInnerarrowsoftheNavigationBarandthenmakethechangesinthefieldsasrequired.TheAdministratorcanthenclickonthe“MODIFY”Button.ItcanbeseenbelowthattheMODIFYbuttonispressedandthereforeisgrey.

2 (c)(iv) MODIFY USER - SAVED

When the “MODIFY”button ispressed,aPop‐upwindowwillbedisplayedwith themessage “User Updated Successfully” and the changes will take place in the Usersdatabase.InthePop‐upwindowthereisan“OK”Button.Onpressingthis“OK”ButtonthePop‐upwindowwillcloseandthemodifiedfieldswillbedisplayed.

Page 154: Garment Store System

154

2 (c)(v) DELETE USER

If theAdministratorwants todelete aUserAccount, theAdministratorwill have tonavigate to theUserAccount intended tobedeleted, using the InnerArrowsof theNavigationBarandpressthe“DELETE”button.Whenthe“DELETE”buttonispressed,aConfirmationboxwillbedisplayedwiththemessage“Areyousure?”andtwooptionbuttons of “Yes” and “No”. If the “No” button is pressed, then no changeswill takeplaceintheUserAccountortheUserdatabase.

Page 155: Garment Store System

155

2 (c)(vi) USER DELETED

Afterselectingauserandpressingthe“DELETE”button,aConfirmationboxwillopenwiththemessage“Areyousure?”.Ifthe“Yes”buttonispressed,thentheUserAccountwithallitsdataofStaffName,UserNameandPassword,willbedeletedfromtheUserdatabase.

Page 156: Garment Store System

156

2 (d) SUPPLIERS

TheNextButtonon theADMINPANEL is thatof SUPPLIER.Only theAdministratorwill be able tomanage the Suppliers of the Store in the System by clicking on theSUPPLIERSbutton. Thiswill display the Suppliers Code, SuppliersName, Supplier’sAddress, Supplier’s Telephone Number and Supplier’s TIN Number. The SuppliersdetailsaredisplayedintheTableform.

2 (d)(i) SUPPLIERS – ADD

TheAdministratorwillbeabletoADDaNewSupplierbyclickingontheADDbutton.ThiswilladdanewrowtotheTable.TheAdministratorcannowfillinthedetailsoftheNewSupplierintheirrespectivecolumns.

Page 157: Garment Store System

157

2 (d)(ii) SUPPLIERS – SAVE

After filling the details, the Administrator has to click the SAVE button to save theaddition of the New Supplier and update the records. A pop‐upwindowwill showwiththemessage“SupplierSaved”withanOKbutton.OnpressingofthisOKbutton,thepop‐upscreenwill close.Thisadditionwillnowreflect in theSupplierTableaswellasinSupplierDatabase.

Page 158: Garment Store System

158

2 (d)(iii) SUPPLIERS – MODIFY

TheAdministratorwillalsobeabletomodifythedetailsoftheSupplierbyclickingontheRowinwhichtheSupplierislistedandcarryingoutthechangesinthefieldsthathewantedchanged.Aftercarryingoutthechanges,theAdministratorcanclickontheMODIFYbutton.Apop‐upwindowwill showwith amessage “Supplier InformationUpdated”.ThereisalsoanOKbuttononthispop‐up.OnpressingthisOKbutton,thepop‐upwindowwillclose.NowthechangescarriedoutintheSuppliersdataissavedand it will reflect in the Table of Suppliers as also in the Suppliers database. Thefollowingimageshowsthat.

Page 159: Garment Store System

159

2 (d)(iv) SUPPLIERS – DELETE

TheAdministratorwillalsobeabletodeleteaSupplierbyclickingonthedesiredRowoftheSupplierandclickingontheDELETEbutton.OnclickingtheDELETEbutton,aconfirmationwindowwillpop‐upwiththemessage“Areyousure?”andwithoptions“Yes”and“No”.Thefollowingimagedisplaysthis.

Page 160: Garment Store System

160

2 (d)(v) SUPPLIERS – DELETED

If the Administrator clicks “Yes”, a pop‐up window will open with the message“Supplier Deleted”. If the Administrator clicks “No”, then the pop‐up windowwillclose.Ondeletionofthesupplier,thedetailsoftheSupplierwillbedeletedfromtheTable as also from the Supplier database. Thus the Administrator will have totalcontrolovertheSupplierdetailsintheSystem

Page 161: Garment Store System

161

2 (e) BACKUP DATABASE

TheNextButtononthe“ADMINPANEL”isthatof“BACKUPDATABASE”.Inordertosafeguardthedatabase,theAdministratormaytakeBackupofthedatabasefromtimeto time.Since thedatabase isvital, theaccessandauthority to takeaBackupof thedatabase is only available with the Administrator. The Administrator can take theBackup of the database by clicking on the “BACKUPDATABASE” Button.When theAdministratorclicksonthisButton,aBackupoftheDatabaseiscreatedintheBackupfolder in theMain Directory of the Software. A Pop‐upwindowwill openwith themessage “BACKUP SUCCESSFUL!” The Pop‐up window also has an “OK” Button onpressingwhich,thePop‐upwindowwillclose.

Page 162: Garment Store System

162

2 (f) RESTORE DATABASE

TheNextButtononthe“ADMINPANEL” isthatof“RESTOREDATABASE”.Sincethedatabase is vital, the access and authority toRestore the database is only availablewith the Administrator. TheAdministrator canRestore the database by clicking onthe“RESTOREDATABASE”Button.WhentheAdministratorclicksonthisButton,thedatabase saved in the Backup folder in the Main Directory of the Software, isRestored.APop‐upwindowwillopenwiththemessage“RESTORESUCCESSFUL!”ThePop‐upwindowalsohasan“OK”Buttononpressingwhich,thePop‐upwindowwillclose.

Page 163: Garment Store System

163

2 (g) ADMIN HELP

Whenthe“HELP”buttonispressedbytheAdministratorintheADMINPANEL,itwillopenthe ‘ADMINPANELHELP”Screen.InthisScreenthereisabriefexplanationoftheusesofeachoftheButtonsontheAdminPanel.

Page 164: Garment Store System

164

2 (h) LOG OUT

When the Administrator presses the “LOG OUT” Button on the ADMIN PANEL, theADMINPANELwillcloseandtheLOGINscreenwillbedisplayed.

Page 165: Garment Store System

165

3. MAIN SCREEN

When the User enters a valid Username in the “USERNAME” field, the correctPasswordinthe“PASSWORD”fieldandpressesthe“LOGIN”button,thenthe“MAINSCREEN”willappear.ThisScreenhasallfeaturesrequiredbytheUserintheGarmentStorefortheirday‐to‐daySalesandInventoryrequirements.

TherearefivebuttonsontheMAINSCREEN:VIEWPRODUCTS,NEWSALE,MEMBERSDATABASE,INVENTORYandLOGOUT.

VIEWPRODUCTwilldisplayanotherWindow.InthisWindowtherearetwosections.The Left section has MALE Category of Products and the Right section has theFEMALE Category of Products. There is also a BACK Button on the Screen, which,whenpressedwillreturntotheMAINSCREEN.

NEWSALEButtonwillbeusedwhenaSalehastoberecorded.

MEMBERSDATABASEButtoncanbeusedbytheUsertoviewtheMembersDatabaseandmakeanychangesinthedatabase.TheUserisauthorizedtomakechangesinthisdatabaseasthestaffwouldbeenlistingnewmembers.ItwillalsoenabletheUsertoverifyaparticularMember.

When theLOGOUTButton ispressed, theUser is loggedoutof thisScreenand theLOGINScreenwillbedisplayed.

Page 166: Garment Store System

166

3 (a) VIEW PRODUCTS

VIEWPRODUCTwilldisplayanotherWindow.ThisWindowhastwosections.

The Left section has MALE Category of Products and the Right section has theFEMALECategoryofProducts.Therearesixcategoriesofgarmentslistedineach.

In MALE Section, the Categories are Shirts, T‐Shirts, Jeans, Shorts, Trousers andJackets.Onclickingonanyof thebuttonsofProductcategory,anotherwindowwillopenwhichwilldisplaytheproductsandotherdetails.

In FEMALE Section, the Categories are Tops, Capris, Jeans, Skirts, Trousers andStockings.OnclickingonanyofthebuttonsofProductcategory,anotherwindowwillopenwhichwilldisplaytheproductsandotherdetails.

There is also aBACKButtonon the Screen,which,whenpressedwill return to theMAINSCREEN.

Page 167: Garment Store System

167

3 (a)(i) VIEW PRODUCTS - CATEGORY

WhenanyoftheCategoryofProductButtonispressed,itwillopenanotherWindow.InthisWindow,thenameoftheProductCategorywillbedisplayedonTopandbelowthattherewillbeatable.TheColumnsoftheTablewouldlistProductCode,ProductName,PriceoftheProductandStockoftheProductcurrently intheStore.This isaveryimportantpartoftheProgramasitgivesthereal‐timestockoftheProduct.TheUserwillonlybeabletoviewtheProduct,Code,PriceandStockbutwillnotbeabletoaddand/oreditand/ordeleteanythinginthiswindow.This isaread‐onlywindow.For eg. If in the FEMALE Section, SKIRTS Category Button is pressed, the Tabledisplayedwill showvarious typesofSkirtsavailablewith itsCode,Name,PriceandStock.ThusthefirstentryiswithCode:FSKL001whichisforProductName:BallerinaSkirtatPrice:700andtheStock:165.TheProductvalueslikeCode,Name,PriceandStockhavebeenfilledbytheAdministratorthroughtheMANAGEPRODUCToptionintheADMINPANEL.ToclosetheProductCategorywindow,theUserhastoclickonthecross on right hand corner of thewindow.On closing of thewindow, theUserwillretaintothePRODUCTSCREEN.TheUsercanthenselectanyotherCategorytoviewthedetails of the products in that category.On clicking on theBACKbutton on thePRODUCTSCREEN,theUserwillreturntotheMAINSCREEN.

Page 168: Garment Store System

168

3 (b) NEW SALE

This is a very important Screen asmany forms of data are put to use here.WhentheUserwillpresstheNEWSALEButton,theNEWSALEWindowwillopen.ItisherethattheUserwillhavetoinputallthedata.Itisalsofromthiswindow,allthecrucialdatalikeSaleandInventorywillbeupdated.TheimagebelowshowstheNEWSALEwindow.

Page 169: Garment Store System

169

3 (b)(i) NEW SALE – CATEGORY DROP DOWN

Thefirstfieldhasbeenmodifiedandwasnotearlierplanned.Butsincethedropdownmenu for Productswas too long, a further heading of Categorywas created in theProduct,wherebytheProductsarefurtherclassifiedandthedataisthusmanageable,understandableandeasytoretrieveoraccess.ThefirstfieldisthedropdownmenulistingthevariousProductCategories.Thelistofthedropdownmenuisthesameasthatof thewindowbuttons inVIEWPRODUCTSSCREEN.ThisCategoryofProductshas also been set by the Administrator in theMANAGE PRODUCTS SCREEN in theADMINPANEL.FromthisMenu,theUserhastoselecttheproducttobesold.

Page 170: Garment Store System

170

3 (b)(ii) NEW SALE – PRODUCT DROP DOWN

Afterselectingthecategoryofthegoodssold,theUserhastoselecttheProductsoldbyreferringtothepricetagonthegarmentandbyselectingtherightProductfromtheProductdrop‐downlist.SincetheProductdropdowndisplaysthecodeaswellastheproduct,itiseasierfortheUsertoselectfromthedropdownmenuoftheProductand the list also becomes shorter. Thus the splitting of products into Categories,makesthingssimplerfortheUsertounderstandandtomanage.ThisManagementofProductshasalsobeensetbytheAdministratorintheMANAGEPRODUCTSSCREENintheADMINPANEL.FromthisMenu,theUserhastoselecttheproductwhichhasbeenselectedtobepurchasedbythecustomer.

Page 171: Garment Store System

171

3 (b)(iii) NEW SALE – ADD TO CART

AfterselectingtheCategoryandtheProductfromthedropdownmenu,theQuantitysoldhastobeinputintheQuantityfield.Afterthat,theButtonADDisclicked,sothatthe Item is added in the Cart. Itmay be noted here that as soon as the product isenteredintheCart,theRateandQuantityaremultipliedandtheresultisshownintheAmountcolumnofthecart.AlsoTotalRowatthebottomoftheSalesBillalsodoesthecalculation and displays the total. Further the VAT amount is also automaticallycalculated and is displayed at its appropriate place. The Total Amount is alsocalculatedbyaddingtheTotalandVATanddisplayedatthebottomoftheScreen.Theimagebelowdisplaysthis.

Page 172: Garment Store System

172

3(b)(iv) NEW SALE – ADD MORE PRODUCTS

TheUsercanaddfurtherproductstotheCartbypressingtheADDbutton.ThustheUsercanagainselectaProductCategoryandtheProductfromthedropdownmenuandinputtheQuantitysoldintheQuantityfield.Afterthat,theButtonADDisclicked,so that the Itemisadded in theCart.Againassoonas theproduct isentered in theCart, the Rate and Quantity are multiplied and the result is shown in the Amountcolumnofthecart.AlsoTotalRowatthebottomoftheSalesBillalsoaddstheSalesAmount and displays the total. Further the VAT amount is also automaticallycalculated and is displayed at its appropriate place. The Total Amount is alsocalculatedbyaddingtheTotalandVATanddisplayedatthebottomoftheScreen.Theimagebelowdisplaysthis.

Page 173: Garment Store System

173

3(b)(v) NEW SALE – MEMBERSHIP CARD

After selecting the product from the drop‐downmenu, the quantitywill have to beentered in theQuantity fieldandtheADDbuttonwillhavetobepressed.WhentheADDbuttonispressed,theProductalongwiththeProductCode,Quantity,RateandAmountforthat itemwillbedisplayedintheTablebelow.MultipleproductscanbeaddedtotheTablebyselectingtheProductsfromthedrop‐downmenu,fillinginthequantityandpressingtheADDButtonaftereachselection.ThiswillgoonaddingtheproductsintheTable.AstheUsergoesonaddingtheproductstotheCartasalsotothe Table, the Row below the Table named TOTAL will display the Total of theAmount column of the Table. Below the Row of TOTALS, there is another row of“DISCOUNT(10%)”whichistheMembershipDiscount.ForavailingthisMembershipDiscount,theUserhastopresstheButton“ENTERCARDNO.”whichisalongsidetheDISCOUNTrow.Whenthe“ENTERCARDNO.”buttonispressed,Ifthe“ENTERCARDNO.”Buttonispressed,itwillopenaWindowaskingtheMembershipCardNumber.

Page 174: Garment Store System

174

3 (b)(vi) NEW SALE – VALID MEMBERSHIP CARD

TheUserhastofillinavalidCardNumber.IftheUserentersavalidCardNumber,aPop‐upwindowwillappearwithmessage“ValidCardNo.”

Page 175: Garment Store System

175

3 (b)(vii) NEW SALE – DISCOUNT APPLIED

If the Valid Card Number is given, then the DISCOUNT row will display the 10%discountfigure.Assoonasthediscountiscalculatedandfigureisdisplayed,theVATfigurewillgetupdatedandwillcalculateVAT4%ontheNetSalesFigurei.e.TotallessDiscount.TheTotalAmountfigurewillalsogetupdatedasitwillbeasumoftheNetSalesFigureandVATi.e.TotallessDiscountplusVAT.TheDISCOUNTRowwillonlybeactivatedifavalidCardNumberisputin.

Page 176: Garment Store System

176

3 (b)(viii) NEW SALE – SALES BILL - MEMBER

At thisstage, theUserwillhaveanoption topress theCONFIRMButton toConfirmtheSaleortopresstheCANCELButtonandCanceltheSale.IftheUserwillpresstheCONFIRMButton,theSalewillbeconfirmedandthenextScreenofSALESBILLwillopen.

Page 177: Garment Store System

177

3 (b)(ix) NEW SALE – SALES BILL - CASH

IfthecustomerisnotaMemberandisaregularcustomer,thentheCardnumberisnotput inandtheDiscount isnotavailedand in thiscase,whentheUserclicks theCONFIRMbuttontocompletethetransaction,theSalewillbeconfirmedandthenextScreenofSALESBILLwillopen.

Page 178: Garment Store System

178

3 (b)(x) NEW SALE – EMPTY CART

Testswerecarriedoutontheprogramtocheckifitisworkingproperly.Likeifthe Category and/or Product is not selected and/orQuantity is kept blank and theCONFIRMbuttonisselected,apop‐upwindowwiththemessage“PleaseplaceOrder”.

Page 179: Garment Store System

179

3 (b)(xi) NEW SALE – REMOVE FROM EMPTY CART

ProductscanalsoberemovedfromtheTablebyselectingtheproductfromtheTableandclickingontheREMOVEButton.ThiswillremovetheProductalongwithitsQuantity,RateandAmountfromtheTable.

IftheCategoryand/orProductisnotselectedand/orQuantityiskeptblankandtheREMOVEbuttonisselected,apop‐upwindowwiththemessage“NothingtoRemove”.

Page 180: Garment Store System

180

3 (b)(xii) NEW SALE – INVALID CARD NUMBER

However,ifinthePop‐upwindow,theUserentersaCardNumberwhichisnotvalidi.e.memberisnotcreatedonthatnumber,thentherewillbeaPop‐upwindowwiththemessage “Invalid Card No.” and an “OK” button to that pop‐upwindow, whichwhenpressed,willreturntotheNEWSALESCREEN.ItmaybenotedherethatifanInvalidCardNumber isput it, theDiscountRowwillnotbeactivatedandDiscountwillnotbecalculatedorallowed.

Page 181: Garment Store System

181

3 (b)(xiii) NEW SALE – ALPHABETICAL QUANTITY

AfterselectingtheCategoryfromthedropdownmenuandalsoselectingtheProductfrom thedropdownmenu, if theUser, by error, fills alphabet in the quantity feild,thenapop‐upwindowwillappearwith themessage“Please fillall fieldscorrectly”.There is also anOKbutton in the pop‐upwindowandonpressing that button, thepop‐upwindowwillclose.

Page 182: Garment Store System

182

3 (b)(xix) NEW SALE – BLANK QUANTITY

AfterselectingtheCategoryfromthedropdownmenuandalsoselectingtheProductfromthedropdownmenu,iftheUser,byerror,leavesthequantityfieldblank,thenapop‐upwindowwillappearwiththemessage“Pleasefillallfieldscorrectly”.Thereisalso an OK button in the pop‐up window and on pressing that button, the pop‐upwindowwillclose.

Page 183: Garment Store System

183

3 (c) MEMBER DATABASE

ThisScreendisplaystheMEMBERDATABASE.ThisScreengivesallthedetailsoftheMemberlikeMembershipCardNumber,Name,TelephoneNumber,PostalAddress,E‐mailaddressetc.TheUserhastheaccessandauthoritytoeditthefieldsinthisScreen.However,theMembershipCardNumberisautomaticallyupdated.AtthetoppartoftheScreen,thereisaSEARCHBox.IntheSEARCHBoxthereisafieldwhereCardNo.is to be filled in. After filling the Card Number, the User has to press the SEARCHButtongivenalongside.

Page 184: Garment Store System

184

3 (c) (i) MEMBER DATABASE - FOUND

OnpressingtheSEARCHButton,iftheinputnumberisavalidnumberandifthereisamember listed under that number, a pop‐up window will open with a message“MemberFound”andtherewouldbeanOKButtoninthePop‐up.OnpressingtheOKButton, the fields intheINFOBoxwouldbeautomatically filledwiththedataof theMember.

Page 185: Garment Store System

185

3 (c) (ii) MEMBER DATABASE – NOT FOUND

IftheCardNumberinputbytheUserisnotavalidnumberorifthereisnomemberlistedunderthatnumber,thenapop‐upwindowwillopenwithamessage“Membernot Found” and there would be an OK Button in the Pop‐up. On pressing the OKbutton,thepop‐up

windowwillcloseleavingtheMEMBERSDATABASEScreenopen.

Page 186: Garment Store System

186

3 (c) (iii) MEMBER DATABASE – INVALID SEARCH

IftheUserentersalphabetsorillogicaldataintheCardNumberfieldandpressestheSEARCHButton,thenapop‐upwindowwillopenwithamessage“Pleaseenteravalidcardnumber”.Thispop‐upwindowwillalsohaveanOKbutton.OnpressingtheOKbutton,thepop‐upwindowwillcloseleavingtheMEMBERSDATABASEScreenopen.

Page 187: Garment Store System

187

3 (c) (iv) MEMBER DATABASE – BLANK SEARCH

IftheUserleavestheCARDNUMBERfieldBlankandtriestosearchfortheMemberdata, a pop‐up window will show with the message “Please enter a Valid CardNumber”.Thepop‐upalsohasanOKbuttononpressingofthis,thewindowwillclose.

Page 188: Garment Store System

188

3 (c) (v) MEMBER DATABASE – ADD NEW MEMBER

The User will have the authority to ADD orMODIFY anyMember in theMEMBERDATABASE.Thatis,theUsercanAddanewmemberwithitsdetailslikeName,E‐mailAddress, Telephone Number and Postal Address. However, the User and even theAdministratorcannotdeletetheMemberoncemade.Also,theMembershipNumberisupdatedonceamember iscreated in thatnumber.So, if theUserwants tocreateaNewMember, hehas topress theADDbutton.Onpressing theADDbutton, all thefieldsexcepttheCardNumberfieldwillbeactivated.TheCardNumberfieldwillnotbeactivatedbutwillhavetheupdatednumberwhichisavailabletobeallottedtotheMember.

Page 189: Garment Store System

189

3 (c) (vi) MEMBER DATABASE – NEW MEMBER CREATED

TheMEMBERDATABASEhasfourbuttonsatthebottomofthewindow:ADD,SAVE,MODIFY&CLOSE.AftertheUserhasfilledallthedetailsoftheNewMemberintheirrelativefields,theUserhastoclickontheSAVEButton.WhentheUserclicksontheSAVE button, a pop‐up window will open with the message “Member createdsuccessfully”.AfterSaving,theMEMBERdatabasewillbeupdatedandtheadditionoftheNewMemberwillreflectintheMembershipList.IftheUserwantstoModifythedetails of aMember, he has to press theMODIFY button to activate the fields andmake changes.Aftermaking thenecessary changes, theUserhas topress theSAVEbutton to save those changes. To Close thisWindow and return to MAIN SCREEN,CLOSEbuttontobeused.

Page 190: Garment Store System

190

3 (d) INVENTORY

The INVENTORY SCREEN is to be used by the User to input the data of the goodsreceivedfromtheSupplier.TheUsercanonlyinputthedataandcannoteditoralteranydataalreadyputin.

Page 191: Garment Store System

191

3 (d)(i) INVENTORY – DROP DOWN

ThefirstfieldinthisscreenwillbetheSupplierfield.TheSupplierhastobeselectedfrom the drop‐down menu. The Supplier Management can only be done by theAdministrator form the SUPPLIERS Button in ADMIN PANEL. Once the Supplier isselectedfromthedropdownpanel, theTINNumberwillbeautomaticallyfilledandwillbeanon‐activefield.

Page 192: Garment Store System

192

3 (d)(ii) INVENTORY – DATA FILLED

ThenextfieldwillbeSUPREFNOor“SuppliersReferenceNumber”.Inthisfield,theSuppliers Bill Number or DeliveryNoteNumber underwhich the goods have beenreceived has to be filled in. Below this field, therewill be the PRODUCT field. Thisagainwouldbeadrop‐downmenuandUserhastoselectthePRODUCTfromthefieldandhastofillinthequantityreceivedinthefieldbelow.

Page 193: Garment Store System

193

3 (d)(iii) INVENTORY – UPDATED

After checking the actual receipt of goods, the User has to either press CANCEL orCONFIRM.IftheUserpressesCANCEL,theINVENTORYSCREENwillcloseandMAINSCREENwillbedisplayedwithoutcarryingoutanychangeintheInventory.However,iftheUserpressestheCONFIRMbutton,apop‐upwindowwillopenwiththemessage“Inventory Successfully updated”. The pop‐up window will have an OK button. Onpressing thisOKbutton, the INVENTORYSCREENwill still closeandMAINSCREENwillbedisplayedbutnecessarystockadditionswillhavebeenmadeintheInventory.

Page 194: Garment Store System

194

3 (d)(iv) INVENTORY – SUPPLIER REFERENCE BLANK

If the Suppliers ReferenceNo. is left blank, the datawill not get updatedwhen theUser presses CONFIRM. But instead, a pop‐upwindowwill openwith themessage“Please fill all fields correctly”. The pop‐upwindow also has an OK button and onpressingtheOKbutton,thepopupwindowwillclose.

Page 195: Garment Store System

195

3 (d)(v) INVENTORY – QUANTITY BLANK

IftheQuantityfieldisleftblank,thedatawillnotgetupdatedwhentheUserpressesCONFIRM.But instead, apop‐upwindowwill openwith themessage “Please fill allfieldscorrectly”.Thepop‐upwindowalsohasanOKbuttonandonpressingtheOKbutton,thepopupwindowwillclose.

Page 196: Garment Store System

196

3 (d)(v) INVENTORY – ALPHABETICAL QUANTITY

IfbyerroroftheUser,alphabetsareputinsteadofnumbersintheQuantityfield,thedata will not get updated when the User presses CONFIRM. But instead, a pop‐upwindow will open with the message “Please fill all fields correctly”. The pop‐upwindowalsohasanOKbuttonandonpressingtheOKbutton,thepopupwindowwillclose.

Page 197: Garment Store System

197

3 (e) MAIN HELP

When the User presses the HELP button on theMAIN SCREEN, the following HelpScreenwillbedisplayed.ItwillgiveabriefdescriptionoftheusesofeachButtonontheMAINSCREEN.

Page 198: Garment Store System

198

3.2 Implementation 3.2.1 Implementation Plan The end user suggested a direct changeover to the new system as the store is small. First, all products were added to the system along with prices and initial stock, by the administrator. Then members were added to the database followed by suppliers. Finally, the administrator created user accounts for all staff members. In this way, all information was moved to the new software.

3.2.2 User Testing and Acceptance The users were first told what aspects of functionality would the software be

used for .i.e. Sales, Inventory, Viewing Stock and Membership Management. Then all the users were explained how to use the software. After which, I called every user one by one and told them to carry out all tasks like Viewing Stock, Adding Members, making a new Sale, entering stock to the inventory, etc. This made sure that everyone understood how the new system would work. All staff were also given a copy of the User Documentation for reference.

Page 199: Garment Store System

199

User Training and Acceptance letter attached (Annexure – 7).

3.3 Appropriateness of structure and exploitation of available facilities

3.3.1 Use of Available resources The software was developed using the following configuration:

Hardware:

COMPAQ Presario M2000, Intel Centrino 1.6 GHz Processor, 512MB RAM Memory, 60 GB Hard Disk.

Software:

Microsoft Windows XP Home Edition Microsoft Office 2003 Professional Microsoft Visual Studio 6.0 Professional

The hardware and software were adequate and I was able to take advantage of it to develop the software.

3.3.2 Problem Log August 10th 2009: The Manage Users screen had all fields enabled and when the details were edited and the record was changed, the information automatically updated to the database without clicking on the Save button. Then I thought of disabling and locking all the fields. So, only when the Modify button is pressed, the fields would be enabled and they would be disabled on clicking the Save button.

August 21st 2009: There was only “Product” drop-down menu in the New Sale screen and the list was very populated, so it was difficult to find the product. So I added the Category drop-down menu to reduce the clutter and make the execution of tasks faster. The end-user liked the idea.

August 29th 2009: The program used to crash when the Remove button was pressed while the cart was empty in the New Sale screen. So I added validation in as many places as possible to prevent such events.

4. Documentation (Attached)

Page 200: Garment Store System

200

5. Evaluation 5.1 Degree of success

The program has received degree of success. It fulfills all of the end user’s requirements.

(i) Instant Stock in Inventory – Test Run on page 168 Staff can see the stock of each product with just a single click.

(ii) Sales – Test Run on page 169

Products can be sold using the software using the New Sales form and bill will be generated on-screen.

(iii) Membership Database – Test Run on page 173

A Member’s database can be maintained and discount can be given to them while placing order.

(iv) Reports for Administrator – Test Run on page 138

The Administrator can see Sales reports, Inventory reports and list of Members.

5.2 User’s response to the system A letter by user is attached at end of the project labeled Anexure – 7.

5.3 Desirable extensions Though the software takes care of many of the needs of the end user. But there are

some extensions that could be made in the future to improve the software. • Currently the user has to see the stock available manually, but an automatic

stock notification system could be added that alerts the user when the stock is low.

• Also the program could have additional discount schemes that could be turned on and off during seasonal occasions.

• And a more detailed Sales and Inventory report could be made for the administrator that could show reports in the form of charts and graphs, apart from the current plain numerical reports.

• Bar code scanner compatibility could also be added to the program at a later stage for faster checkouts.