Hi Chris,
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 maintenanceetc)
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 QuarterHour (Bool)
* Available by Half Hour (Bool)
* Available by Hour (Bool)* Available by Half Day(Bool)
* Available by Day(Bool)
* Available byWeek(Bool)
* Available byWeekend(Bool)
* Available byMonth(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 couldbe 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 againstone 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.
scould be
On 26/02/14 06:11, Erik Huelsmann wrote:
Hi Chris,
On Tue, Feb 25, 2014 at 11:47 AM, Chris Travers
<chris.trav...@gmail.com <mailto:chris.trav...@gmail.com>> wrote:
Hi everyone,
I am beginning work on an add-on for 1.4 regarding tracking rental
equipment, etc. I wanted to toss my ideas in here for feedback.
MODELLING
I think the best way to model this would be to track rentals
against fixed assets. I.e. you rent out a fixed asset, and this
should allow you to do more fine-grained profit/loss reporting on
individual rentals than otherwise possible.
So my thinking is that you would have:
Fixed assets -> multiple "rental slots" (i.e. "units" available
for rental). For example, a building might be available to be
rented for x events, but a piece of construction equipment might
be available to be rented only once at a time.
I'm inclined to go with John here: decouple fixed assets and "rental
means". Then, investments in fixed assets can be added to the list of
rental means upon investment, if one needs to. However, there may be
cases where a rental object doesn't become available through
purchase/investment.
Rental slot -> Service. Each rental slot would be associated any
number of services. This could be changed over time to include
more services, but for now I only expect to support a 1:1 mapping
in the front-end
Rental slot -> Usage Contract. Each rental slot can be associated
with any number of usage contracts, but only one at a time.
One of the first things that came to mind - and is also noted by John
- is a "regeneration period" where an asset is unavailable after a
rented period. This seems like a nice addition to the model.
John also mentions a need to improve down payments handling - and
probably associated returns. My idea would be that down payments would
be handled by a different module. One that can be attached to orders,
projects and rentals. This would be perfect to do administration of
retainer-based project work, webshops which require payment to fullfil
orders (and clear resulting invoices against the payment-to-order).
And of course, it would also work wonders for the hotel description
John is talking about.
Usage contract - Service. The contract would contain all the
information needed to fill out a line in the invoice and ar
tables. A contract would be assumed to match to one line in
orderitems or invoices.
Ok. Let me follow your example of the hotel room which is being
rented. Lets say I rent a hotel room for a week and additionally, rent
a bike for three days within the total rental period of the hotel
room. Basically, the bike can be considered a "temporary add-on" to
the room. Would those be two usage contracts? And would those two
usage contracts lead to one invoice? Or two?
I have another example - I'm not sure if this is in scope or not, but
let me just bring it out here - what if I want to buy an option onto
the room; like: an extra bed. The hotel has enough of those, so
doesn't use rental slots to rent them out, but rather supplies this as
an option to the room. Would this lead to a second line on the
invoice? or two invoices? (still: do we want to support the case?)
WORKFLOW
1. Adding Rental Slots:
a. Rentals/Manage Slots
b. Enter asset tag, continue
c. Add slots as needed (number, label, services) and save
d. Slots can be retired here as well (basically an end date
would be added).
2. Renting Unit.
a. Rentals/Rent
b. Search for customer, enter asset tag, start and end dates
c. Select available slot
d. Enter information and save
I liked John's question on the multi-exclusive rooms here :-) While I
think that question would be a bit hard to tackle, I'm thinking a
rental can be bought with an option, however, there's a limited number
of total options to be sold. I'm thinking of a car rental where I'd
like to rent a baby seat. Now, the baby seat can be rented with any
car, but even though there are 200 cars up for rental, there are only
30 baby seats in total. Do we want to take that into scope? Or maybe
baby seats are the wrong example (they can still have an asset tag);
what if you're renting VMs, like Istvan says; if the physical server
has 100GB of storage, then each GB can't have an asset tag, but still,
you can't rent out more than 100GB in total.
3. Return of rental
a. Rentals/Search
b. Enter asset tag, date, and/or customer information. Search
c. Enter date of return, check "Returned" and save.
d. If desired you can also click "bill," "generate order" or
"renew" (in which case a new usage contract will be created).
The basic workflow sounds about right. Trying to search for the
boundaries here, looking for what we can reasonably implement without
going too much into one specific industry or customer.
INTERFACES
SQL and Perl Interfaces:
1. Wrapped in Asset/Rental.pm class:
asset__list_rental_slots(in_id)
asset__list_rental_slots_by_tag(in_tag)
2. Wrapped in Asset/Rental/Slot.pm
rental_slot__list_services(in_id)
rental_slot__add(...)
rental_slot__search(...)
rental_slot__retire(...)
3. Wrapped in Asset/Rental/Contract.pm
rental_contract__add(...)
rental_contract__renew(...)
rental_contract__generate_order(...)
rental_contract__bill(...)
DEPENDENCIES
PostgreSQL 9.2 (needed for range types and exclude constraints)
PGObject::Simple::Role 1.1 (not out yet, will probably be out
tomorrow)
PGObject::Simple 1.6
PGObject::Util::DBMethod 1.0
The dependencies sound fine to me.
--
Bye,
Erik.
http://efficito.com <http://efficito.com/> -- Hosted accounting and ERP.
Robust and Flexible. No vendor lock-in.
------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
Ledger-smb-devel mailing list
Ledger-smb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ledger-smb-devel
------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
Ledger-smb-devel mailing list
Ledger-smb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ledger-smb-devel