Difference between revisions of "Customer:OnPac"

From Freeside
Jump to: navigation, search
(Usage import)
(Usage import)
Line 19: Line 19:
 
* Trigger billing for that customer package (Billing)
 
* Trigger billing for that customer package (Billing)
 
** Usage charges via new rate plan below
 
** Usage charges via new rate plan below
** TDSP as a one-time charge
+
** TDSP as a one-time charge ( cust_main->charge($amount, 'TDSP') )
  
 
== Usage charges ==
 
== Usage charges ==

Revision as of 09:32, 2 November 2006

Schema changes

  • Add usage_elec table and class (see Schema Changes)
    • id serial primary_key
    • _date @date_type
    • kwatts int
    • tdsp @money_type
    • svcnum int NULL (svc_external.id contains ESIID)

Usage import

  • Import usage charges into usage_elec table (Usage charges)
    • Add import subroutine to usage_elec.pm
    • Add page to web UI to accept upload
      • Needs to accept file first, add job to job queue for import/billing loop
      • Landing page that shows job progress via the JS progress popup (like service definition add/edit)
    • Add menu entry and ACL for new page Tools->Importing->Import electricity usage from CSV file
  • Associate usage charges with specific customer/package (Static mapping)
  • Trigger billing for that customer package (Billing)
    • Usage charges via new rate plan below
    • TDSP as a one-time charge ( cust_main->charge($amount, 'TDSP') )

Usage charges

  • KW -> usage_elec.kwatts
  • Invoice date -> usage_elec._date
  • TDSP - PASS THRU CHARGE -> usage_elec.tdsp

Static mapping

  • ESIID -> svc_external.id (associates with package and customer)
  • CUSTOMER NAME -> informational only, or sanity check w/ Freeside data
  • CUSTOMER ACCOUNT -> cust_main.agent_custid (sanity check with customer via ESIID)

Billing

  • Add a rate plan to bill on demand, triggered by the import (FS::part_pkg::usage_elec.pm) (see Price plans)
  • Calculate Kw difference from previous usage_elec record for this meter/ESIID & multiply by a rate (rate stored in as package definition option in part_pkg_option)
  • Set dates via usage_elec record rather than via frequency
    • Add an optional FS::part_pkg::XXX method that indicates internal date increment calculation by the price plan
    • Have cust_main::bill method use the package method to control date incrementing, if it exists
  • Pass through the desired details as cust_bill_pkg_detail

Add'l field handling

Handle these additional fields:

  • Handle Due Date
    • Add new cust_bill column to store per-invoice due dates
    • Have import associate this with the bills it triggers
  • Invoice number -> need to store/use somehow instead of autogenerated invoice number?
    • Add new cust_bill column if necessary (cust_bill.agent_invoiceid)
    • Use this field when displaying instead of the internal invoice # (option to turn on)
    • Search this field exclusively when searching for invoice numbers (option to turn on)
  • Cross reference -> what is this for?