The comments made by John and Erik ring true for me.
I spent quite a few years supporting a Resort while in Shark Bay,
and previously have worked with a small equipment hire company (gensets, ladders, plate compactors)
The resort was using an absolutely awful system called Motellier,
while the Equipment Hire used a whiteboard for bookings and individual note books for each piece of equipment (to track maintenance etc)
I think rental assets can, of themselves be handled as goods (or services),
with a simple additional flag field indicating that they are rentable.
I think this is the correct approach, as the equipment is "purchased" as stock, may have an inventory count,
then often once its rental life expires it is sold as "damaged" stock at an appropriate discount.
In many cases it may even be sold as a new or near new item.
The serial number field that already exists for inventory can be used to identify individual rental items within the system, but as indicated below there should be an "Asset ID" field with an "Asset ID" to "Serial Number" relationship.
The "Asset ID" field is what should be used within the UI.
Another advantage of using the existing inventory system is the potential of using assemblies instead of multiple Rental Agreements.
eg: When we hire a function room we commonly also hire either 20 tables and 100 chairs, or 200 chairs with no tables
The "Rental" flag can be used as a primary filter when displaying stock lists within the rental system.
A new rental asset table would contain all of the required additional information
* Asset ID (Text >=50 char)
* Date of Acquisition
* Date of Disposal
* Date Last Rented
* Date Last Returned
* Date Last Serviced (eg: Cleaned for a room, Oil change for a generator)
* Date of Lifetime Expiry (eg: a Generator can be expected to last in the rental environment for 2 years before replacement)
* Available Now (Bool)
* Available by Quarter Hour (Bool)
* Available by Half Hour (Bool)
* Available by Hour (Bool) * Available by Half Day (Bool)
* Available by Day (Bool)
* Available by Week (Bool)
* Available by Weekend (Bool)
* Available by Month (Bool)
* Available by Year (Bool)
* Service Notes (entered as dated, read only blobs)
* Service Photos (both images in DB, and URL's in DB)
* Current Hours (either auto generated hours hired, or Operator entered hours [eg: engine hours])
* Current Kilometers (Operator entered)
* all of the other fields that have been mentioned by Chris, John, Eric
* many things we have not yet thought of
The "available by" fields could be individual Boolean's or backend storage for a multiselect dropdown (checkbox) list
If the Item will not be available for a period of time, a simple interface to take it out of service should, in the background create a booking against one of a list of special customers (Equipment Service, Equipment Internal Use, Equipment Damage) for the expected duration.
This Out Of Service booking should auto renew for the same period if not closed manually.
Each Rental would probably need a record in a table that at a minimum requires these fields.
* Asset ID
* Agreement ID
* Booking Date
* Start Date
* End Date
* Return Date
* Last Invoiced Date (to allow tracking of what has been invoiced for long term rentals. The details will of course be in each invoice issued)
* Hourly Rate
* Auto Renew
* Customer ID
* Location (where is the equipment being used? this may be essential for recovery etc)
* Proof of Identity (may be several fields, or just a text blob)
* Proof of Identity Images (Drivers License, Passport, customer photo)
* Hours at start of Hire
* Hours at end of Hire
* Kilometers at start of Hire
* Kilometers at end of Hire
* Condition at start of Hire (Score 1=excellent 5=poor 6=Unserviceable 7..20=user defined)
* Condition at end of Hire (Score 1=excellent 5=poor 6=Unserviceable 7..20=user defined)
* Insurance Rate ID (Think vehicle hire)
All bookings should be able to be flagged to auto-renew for the same period as the original booking.
If a booking is not closed by return of the goods within 1 day of it's end, it should enable auto-renew, including the 1 day wait.
There are many more issues to deal with, but a lot of them would be best handled by the booking interface which is a whole other story.
s could be
On 26/02/14 06:11, Erik Huelsmann wrote: