ParkManager Caravan Mark management software v 0.1.0
Index of this documentRules And Conventions
WhoDoesWhat
ToDo
Variables
Transactions DataGrid
Tables A list of tables and fields used in the database ..\Data\dbData
Forms A list of forms and their controls
QuestionsThatNeedAnswers
WhenYouGetAFreshBundleOfFiles
When you get sent a fresh bundle of files
- we will have talked about what we are going to do so we need to stick to the plan
- search the entire project for ‘ bbtodo
- in a form or module where there is a ‘ bbtodo there is no need to add a bbchange but if you change anything in a ckmod module let me know with a bbchange comment
- write as much of your code in a new module as you can ….this way there will be less chance of us stepping on each others toes (tho keep to the convention of writing form specific code in the form
Questions that need answers
Q. Should we store our setup data (eg GST % ) in .ini, .txt, .mdb or in the registry? A. Registry
Q. in the electricity meter reading section we need to do the maths
(this reading – last reading) * unit cost
it might be possible to have a field listing the last reading …updated when you change the current reading or something …. Bill?
A.from bill .should be fine
'bill is there some way to add lines that will be removed when you compile _
but can set a value while you are debugging ....like Temp.ForceValue x=1 _
so i can not have to write the code yet but still set a value for something _
i know you dont know but you might know more about what to search for in help
Rules and conventions
In this document – if you do an assigned task please grey it out with the highlighter pen (found in the formatting toolbar)
Please help me keep this document up to date by keeping a list of changes that need to be made and the headings that they need to be under and sending them back with your work
If you change something in a form or it’s code that you are not assigned to please add ‘ bbchange so that when you send your work back I can do a search for the changes and add any documentation to this file.
If you change anything in a module that isn’t yours please add ‘ bbchange at the changes so I know what you have done and can update this document if needed
Eg. under tables add the following field to occupants blah ,blah and blah
> Make sure you ALWAYS add your “bbchange” lines as you code !! <
“Blind Alleys” is how I will refer to calls to dll’s that don’t yet exist but are checked for in the Bin subfolder in case we add them in the future (as per our discussion)
Use these by default as long as they do what you need them to. This list is open to changes but I just thought we should start out on the same track
Microsoft ADO Data Control 6.0 (sp6)
In the ADO properties I use “connection string”
and Jet 4.0 OLE DB Provider
Microsoft Common Dialog Control 6.0 (sp6)
Microsoft DataGrid Control 6.0 (sp6)
Microsoft DataList Controls 6.0 (sp3)
Names
- txtFirstName for a textbox
- grdTransactions for a datagrid
- etc
I think we will be better off using names like “grdTransactions” rather than “grdTrns” or something …. I find calling things English names saves commenting and makes everything easier. Things like “rs” for recordset are cool but in general longer and more tedious is better
Do as much non-form specific coding in your own modules so that we are not fighting each other.
Name those modules
bbmodSomething if bill writes them
ckmodSomething if craig does
Perhaps we should have a “don’t change other people’s modules rule” if you really need to let the other person know
A typical project should appear along these lines
ParkManager.vbp (project file)
frmMain.frm(main display)
frmSetup(options and setup form)
ckmodResizeControls.bas(module that resizes all controls on form resize)
bbmodSQL.bas(SQL stuff)
ckmodCopyProtection.bas (Registration checks)
Who Does What?
The named assignments are intended as only a guide to stop us both working on the same thing
If either of us can/wants to do a particular thing (or not) that isn’t (or is) listed under their name they should just tell the other that they are doing it
Bill’s stuff will be indicated thus
Craig’s thus
and everything unassigned will be in standard text
if you take up a task that is unassigned you will have to let Craig know as soon as possible
Craig will maintain the to-do list
the to-do list will remain a record of who’s done what so that the same person can be assigned to edit that section in the future
Variables
GSTPercent
‘gets the GST value from a registry setting or we could hardcode it and force customers to ‘contact us in the future if they change the GST amount ….we could set up a blind alley and ‘send the customer a patch when required to just stick GST.dll into the bin folder … even if ‘we didn’t charge for the patch this would enable us to keep in contact with them
ElectricityUnitPrice
‘Supplied by the setup form’s reg or .ini setting or even a table called setup. make a decision about which way to go with this
Tables
- tblOccupant
- occupantID
- FirstName
- LastName
- Identification
- Location
- State
- Postcode
- Country
- Notes
- tblOzPost
- ID
- Pcode
- Localitycity or suburb
- State
- Comments things like “PO Box Only” used to alert user that they
haven’t been given a street address by the occupant
- tblSiteTransactions
- siteTransactionsID
- siteTransactionDate
- siteOutstanding
- siteDays
- siteSubTotal
- siteGSTAmount
- siteTotal
- tblElecTransactions
- elecTransactionsID
- elecTransactionDate
- elecMeterReading
- elecUnits
- elecSubTotal
- elecGSTAmount
- elecTotal
- elecPaid
- tblSiteType
- SiteTypeID primary keyautonumberlong integer
- SiteIdentity a site number or whatever the user wants
- SiteTypeeg van, tent, cabin etc
- PoweredStatusBOOLEAN if true then you need a meter reading
- Price
To-Do
Forms
Sub procedures
- Search for comments throughout the project with headings
- cktodoprobably for craig to do
- bbtodoprobably for bill to do
- anytodounassigned as yet make sure you tell me if you do one of these
Top half of main form (Master Section)
- create
- text boxes
- txtFirstName
- txtLastName
- txtIdentification
- txtAddress
- txtLocality(autoFilled*)
- txtPostcode Lookup to tblOzPost
- txtState (AutoFilled *)
- txtCountry default australia
- txtParkEntryDate (dbl click for current date)
- Notes
- txtResidentsGSTLevel (none or the value of GSTPercent depending on their residential status)
- txtComments (auto filled *)
- GSTPercent (BOOLEAN GST is/Isn’t charged depending on the person being or not being on holidays or living at the park permanently find out about this)
- SubTotalOutstandingAsOfToday
- TotalGSTOutstandingAsOfToday
- TotalOutStandingAsOfToday
- combo boxes
- lookup from tblOzPost
- txtLocation (auto filled*) (this is what suburb or city is now called by oz post)
- txtState(auto filled*)
- PostCode (*lookup to tblOzPost.PostCode then auto fill txtLocation and txtStatebased on the postcode selected)
- txtCountry
- lookup from tbl Sites
- txtSiteType
- txtSiteID
- txtSitePrice
- command buttons
- cmdNewTransaction
- cmdSearch (make visible only when a field has been dbl clicked thus putting the user into search mode (cmdsearch.visible = true))
- cmdPaidInFull (adds payment amounts to the site and elec grids as required otherwise the user has to add the amounts manually if there is less than the total offered)
- Dbl clicking on any of the resident’s info fields that the user might want to search should
- empty the recordset
- blank the fields
- allow the user to enter search criteria (I think only one field will be searched for at a time so I don’t think there is any need to make a complex filter )
- hitting ENTER should initiate the search rather than clicking a button tho the button should be there …. Perhaps have a button called “Search” that appears after the dbl click that gets the focus so enter performs the search… on enter the button should be “cmdSearch.visible = false”
- Display the recordset of the returned result(s) (there may be more than one “Smith” staying at the park
- Allow the user to select the correct record
- Set the focus to the “New Transaction” button
bottom half of the form (detail section)
- create
- grdSiteTransactions
- from tblSiteTransactions
Display these fields in thesiteTransactions Grid
Field / DescriptionsiteTransactionDate / This should be set to the current date when the cmdNew SiteTransaction button is pressed and if possible when dbl clicked (optional) must also be able to be set as a date other than today’s
siteStillOutstanding / Any amount still owing from last transaction
siteDays / The number of days the resident would like to pay for
siteSubTotal / Equals siteOutstanding + (siteDays* txtSitePrice.text(or).value) I think .value allows the read without setting the focus to the textbox but that might only be in VBA
siteGSTAmount / siteSubTotal*GSTPercent
siteTotal / SiteSubTotal + GSTAmount©
sitePayment / Amount tendered by the resident (dbl click to enter total owing)
siteOutstandingAsOfToday
- create
- grdElecTransactions
- from tblElecTransactions
Display these fields in the elec Transactions Grid
Field / DescriptionelecTransactionDate / This should be set to the current date when the cmdNew ElecTransaction button is pressed and if possible when dbl clicked (optional) must also be able to be set as a date other than today’s
elecStillOutstanding / Any amount still owing from last transaction
elecMeterReading / Current meter reading
elecUnits / elecMeterRreading – last reading = elecUnits
elecSubTotal / elecUnits * ElectricityUnitPrice
elecGSTAmount / elecSubTotal*GSTPercent
elecTotal / elecSubTotal©
elecPayment / Amount tendered by the resident (dbl click to enter total owing)
elecOutstandingAsOfToday
© gst needs to be separate on the receipt by law so we need these numbers and cant just do the maths
- allow the user to lock a residents information once entered (name, address etc)
- and unlock if need be to allow edits
- create resizer code to resize controls when the form is resized
- ckmodCopyProtectionHDDSerial.CheckRegForHDDSerial(IsGood as Boolean)
- make a “user registration” form that accepts a username, password, and visa number or whatever, and gets their hdd number (call it installation ID)
- have the program email the username, password, payment details and the hdd serial to us (append a software id tag to the serial eg ParkManager85762837) so we can identify which program we are being paid for
- allow user to input the code that we send them (their hdd serial * 5 with some junk letters mixed in)
- have the program strip out junk (letters) and divide by 5)
- write the hdd serial number to the registry under the section named after the software title (in case they have more than one of our products installed)
- write the “system,system,system” value to the registry
- in the main program Check hdd serial number against same in registry and check for the “system” entry before allowing the program to run each time