X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=TODO;h=9641831c1ad11a04d020c0415fc3361be968c186;hb=fe1fe9e3c076c7e4f45a810d6cd07c9008cb2e5b;hp=363c42adbf4702f0d9397215921a9fcf9dfb8fd4;hpb=6e5eed5d49163fdb06f16c735ab43486c047011d;p=freeside.git diff --git a/TODO b/TODO index 363c42adb..9641831c1 100644 --- a/TODO +++ b/TODO @@ -1,31 +1,193 @@ -$Id: TODO,v 1.20 1999-01-25 12:09:48 ivan Exp $ +$Id: TODO,v 1.32 1999-07-08 01:02:24 ivan Exp $ If you are interested in helping with any of these, please join the mailing list (send a blank message to ivan-freeside-subscribe@sisd.com) to avoid duplication of effort. --- before 1.2b1 -- +--- + +Multiple tax rates by geographic region (county, state, and county) are +supported; just choose View/Edit tax rates from the main menu. + +Multiple tax rates by package are not (yet) supported. + +On Wed, Jul 07, 1999 at 12:13:36PM -0400, Shaun Batterton wrote: +> How would you handle something like multiple tax rates and multiple +> states? For example in Connecticut, they just changed computer and/or +> data processing services to 3% (whatever that is), and everything else +> is 6%. + + +> Second, when trying to add a new user I get two types of errors; first one +> is when I place an e-mail address and select the "submit," Freeside +> complains with "Error: Unknown local account (specified literally)" +. +You probably put a (local) email address in for email invoices. Freeside +stores these as references to the database records, so (for example) they +follow username changes. +. +I'm guessing you put in the email address that you were creating, and got +that error because it didn't exist yet. Sounds like a buglet to me. I'll +try to fix that soon; in the meantime you can add the invoicing email +address afterwords. + +Postgres `money' time sucks rocks anyway. I'll probably just require 6.5 +and use the numeric types, which *finally* work right. +On Sat, Apr 24, 1999 at 12:52:00PM -0700, Mr. Poet wrote: +> Software error: +> Error creating cust_bill record: ERROR: parser: +> attribute 'charged' is of type 'money' but expression +> is of type 'float8' You will need to rewrite or cast +> the expression ! Check updated but unbilled packages +> for customer1 +. +Postgres `money' time sucks rocks anyway. I'll probably just require 6.5 +and use the numeric types, which *finally* work right (well, according to +the web site, anyway). +. +In the mean-time, this could probably be fixed with the reverse of +the kludge in FS::Record::new. This removes `$' and `,' from money fields +coming out of the database. Something which fixed up the data so Postgres +was happy with it could go in FS::Record::_quote, for data going into the +database. + +our data display problem might be a Freeside problem wrt not using +Oracle-compatible DBI syntax (uses the return value from $sth->execute as +a number of rows). Fixing this is on the TODO. + +hooks for arbitrary commands out of configuration files +svc_acct.pm svc_acct_sm.pm etc. + +Add this to a FAQ, along with doing it for middle names: + + +> What I'm finding difficult is how to easily +> customize fields. For example, I am trying to add a "middle name" field +> to the Customer Edit, view, etc. If I'm going about it right, it appears +> I have to edit the cust_main.cgi under edit and edit/process and the +> site_perl/cust_main.pm, as well as other things. Perhaps you could shed +> some light on the best way of doing this. + +You have the basic idea. To implement that completely, I would: +- Add the new field to bin/fs-setup for new users +- Document the field in htdocs/docs/schema.html +- Document the change in a new file, htdocs/docs/upgrade4.html +* Run bin/dbdef-create +* Add the new field to edit/cust_main.cgi and edit/process/cust_main.cgi + +For bonus points, I'd grep around for the various bits which use "$first +$last" or "$last, $first" and replace them with a method call in cust_main.pm, + , like search/cust_main.cgi + +document security model: +Don't forget about Apache usernames - since, via the mapsecrets file, each +user can login to the SQL database with a different username and +password, you can utitilize the security model of the SQL database as +well. Also, each username here can point to a different configuration +directory where you could store user-specific configuration info. Then +you could link each username to one-to-many agents. +(The web demo works using a trivial version of this.) + +Yes, queue processing or the equivalent via checkpoint fields on various +talbes (which you pick up via a pretty simple SELECT) would be really +nice too. + +default (and ordering) state/county/country config file +expand the +cust_main_county table to provide a preferred ordering, so the most common +entries would be at the top of the selection box. automatically, based on +recent selections? + +hmm... maybe svc_acct__shell should check off the legal shells list if +applicable? yeah... cool. + +payinfo field should me much larger than 16 + + +[Mon Apr 12 20:31:21 1999] [error] [Mon Apr 12 20:31:21 1999] null: Error closing true: Broken pipe at /usr/local/lib/site_perl/FS/cust_main.pm line 615. + +javascript (yuck!) "are you sure?" confirmation on cancelations, etc. +(view/cust_pkg and view/svc_*) + +get rid of time2str("%D") which formats dates in a non-y2k-safe looking fashion +(all the actual date handling uses UNIX timestamps and is fine) + +uncomment expire in view/cust_pkg.cgi and find the expire cron from fsold -Can't use [e]idiot with mod_perl. +(Test this) +one-time/per-customer/? changes in rates and descriptions ('remembered +invoices'): implement by creating a new package on the fly... but it isn't +associated with any agent types so it won't show up for other customers to buy. +(but also... make sure they go away when the customer does! - need this? : + one-off package edits! : need a cust_pkgs or cust_part_pkgs or something table, + with custnum and partpkg (like type_pkgs) +(what happens if you hit "custom pricing" but the pricing is already custom?) + +Lay out any remaining ugly forms better. + +remove "records identical" warning? gets in the way of more important stuff. +or fix logic which tries to update identical records?? +1.2 should be quiet enough that the error log is useful, hopefully. + +Postgres has a maximum column length of 31 characters (but see NAMEDATALEN in +postgres_ext.h). part_svc has columns like: svc_acct__radius_Attribute_flag +(22 characters!) It seems that stuff over the limit is silently ignored, +so we get 4 characters back. So, Radius_Attributes are max 13 characters with +stock Postgres. see rfc2138 for what's affected +What's a good fix? (besides recompiling postgres with NAMEDATALEN 64) +(mysql has a 64 character max column length. others?) + +[Mon Mar 29 06:57:56 1999] -e: Use of uninitialized value at /usr/lib/perl5/Date/Format.pm line 333. +(when sending mail in cust_main.pm::bill or svc_domain.pm) + +look at DBIx::Recordset! (and Tie::DBI, and...) + +undefined conf/lpr gives this uninfomative error: +[Fri Feb 26 16:42:36 1999] bill.cgi: Can't do bidirectional pipe at +/usr/lib/per +l5/site_perl/FS/cust_main.pm line 629. +[Fri Feb 26 16:42:38 1999] bill.cgi: Error closing : Broken pipe at +/usr/lib/per +l5/site_perl/FS/cust_main.pm line 631. +So give a meaningful error! + +password and slipip stuff in svc_acct.pm store need to be split into two fields or something, so the silliness in svc_acct.pm and svc_acct.export with looking at the data to decide what to do with it can be fixed + +i10n: Apache::Language + +Apache::Session? Other useful Apache::* ? + +email invoices are only sent for the BILL payby. If setup, should statements +(since they're not invoices) be sent for COMP and CARD as well? -Lay out the forms a bit better. +$cgi->keywords is causing the (hard to trace) error: + Use of uninitialized value at (eval 5) line 5 -libwww regression test - since it will create sample data, can also use this -for the web demo -make fs-setup option to add sample data so you can click on "New Customer" right away? so people understand what this stuff is? +edit/cust_main.cgi gives an uninformative error message: +> Can't call method "agentnum" without a package or object reference at +> /usr/local/apache-ssl/htdocs/freeside/edit/cust_main.cgi line 116. +if there are no agents. + +(is this missing on any web screens? (easy with $cust_svc->label) +Add the ability for services to filter information up to the package level +for web screens, so you can select a particlar package based +on username or domain name, etc. Allow a cancelled/suspended/active status from packages to bubble up to the customer lists. Put active, then suspended, then cancelled accounts. Similar ordering on the package listing inside a single customer. -Add the ability for services to filter information up to the package level -for invoices and web screens, so you can select a particlar package based -on username or domain name, etc. +false laziness: edit/cust_main.cgi got some parts copied from edit/svc_acct.cgi +the web interface in general needs to be redone in a more abstract way. -You can't delete the stuff under administration yet. Add this, -_including_ making sure the thing you are deleting is not in use! +false laziness: some of search/svc_acct_sm.cgi was copied to search/svc_domain.cgi. but web interface in general needs to be rewritten in a mucho cleaner way. + +Portability: in FS::Record, $sth->execute does not return a number of rows for all DBD's. see man DBI + +subroutine the where clause (eventually all SQL) as OO perhaps (has anyone done this?) + +add a select method to FS::Record? -(Test this) one-time/per-customer/? changes in rates and descriptions ('remembered invoices'): implement by creating a new package on the fly... but it isn't associated with any agent types so it won't show up for other customers to buy. @@ -34,11 +196,10 @@ associated with any agent types so it won't show up for other customers to buy. with custnum and partpkg (like type_pkgs) (what happens if you hit "custom pricing" but the pricing is already custom?) -update site_perl/table_template* (pry out of date) - -update web demo +You can't delete the stuff under administration yet. Add this, +_including_ making sure the thing you are deleting is not in use! --- before or after --- +add links on view/cust_main.cgi to setup services, like view/cust_pkg.cgi FS::cust_pkg _require_'s FS::$svc, but this won't work with %FS::UID::callback loading of configuration. (pry need same idea, but will run immediately if @@ -60,12 +221,13 @@ whois accordingly. .us domains and others! site_perl/svc_domain.cgi (hmm... or maybe should have a button? or maybe svc_domain.pm should handle this) should set $whois_hack for non-internic domains, so you can add them... +turn on the depriciation warnings for [e]idiot in FS::CGI. Stop using [e]idiot +the last places it is (htdocs/search/ htdocs/misc/ htdocs/misc/process) + (test cust_main.pm with cybercash v2 and v3, especially with the callback stuff AND with mod_perl w/cybercash v2 kludge in package main) (callback stuff should be eliminated by now) --- after -- - bah, table/itable/*table in FS::CGI is silly. doc Apache::AuthDBI as well @@ -367,8 +529,6 @@ configuration/setup should get web interface ... (probably as part of some automated installation process?) -password and slipip stuff in svc_acct.pm store need to be split into two fields or something, so the silliness in svc_acct.pm and svc_acct.export with looking at the data to decide what to do with it can be fixed (1.2) - This requires some serious magic in FS::Record: ok, if date_type in fs-setup is to be something besides int, now we need to create wrappers