add comments field
[freeside.git] / TODO
diff --git a/TODO b/TODO
index 4d0a0ba..f9e6855 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,4 +1,4 @@
-$Id: TODO,v 1.53 2000-12-03 20:25:20 ivan Exp $
+$Id: TODO,v 1.66 2001-07-30 07:13:34 ivan Exp $
 
 If you are interested in helping with any of these, please join the
 *development* mailing list (send a blank message to
@@ -6,7 +6,207 @@ ivan-freeside-devel-subscribe@sisd.com) to avoid duplication of effort.
 
 ---
 
+> Does Freeside currently support notification to the customer that their
+> credit card on file is about to expire?
+> What about notification that their
+> credit card was declined after they sign up, say like in 5 months when it
+> fails?
+
+
+random templating thoughts:
+for starters, read the "Template Syntax" section of Text::Template
+that sums up the starting philosophy pretty well
+> Text::Template is unsuitable because it's backwards, but don't worry about
++that quite yet.  everything in that section applies
+..
+then ttp://forum.swarthmore.edu/epigone/modperl/frahthonbror/19990525144012.8806.qmail@plover.com
+..
+then: given that as background, freside will use a simple template syntax designed
++to interact well with the webmonkey html editors, and will export to Mason
++and Apache::ASP for starters, and eventually any "right-side-out" "eval"
++templating system
+
+
+make svc_acct.import complain if you try to use a local file
+
+make the invoices configurable such that:
+> Also, Can you change FreeSide so that it says "GST" instead of TAX?
+
+"Andrew Wafula" <awafula2000@yahoo.co.uk>:
+> Following my recent questions on money_char, i would like to suggest that
+> money_char be used as well in cust_bill.cgi and cust_main.cgi so that the
+> charges are seen in whatever money_char is used in a particular country
+> instead of the default dollar currecny. This would make it such that the
+> system has one monetary unit in its entirety rather than only for the
+> invoicing part. I guess this would be something others would appreciate as
+> well.
+
+Things that would be nice but probably won't happen: testing with 
+MySQL+Sleepycat, a fix for the long-RADIUS-attributes-with Pg problem,    
+passive session monitoring with RADIUS (tailing a log file or monitoring a
+database, as opposed to using a RADIUS with proper callbacks).
+
+anything doing transactions in the web interface should likely move into *.pm.
+(transactions are here woo!)
+
+write some sample billing expressions with libcflow-perl :)
+
+(future templating)
+.
+(at least) These questions need to be answered for Mason, Apache::ASP and
+eperl.  If eperl becomes too much of a pain, I'm okay with forgetting 
+about it - it's not well-maintained.
+.
+How do you interpolate a value?
+mason: <% $value %>
+apache-asp(don't think there is a "with-escaping-HTML" way?): <%= $value %>
+.
+How do you interpolate a value without escaping HTML?
+mason: <% $value |n %>
+apache-asp??: <%= $value %> 
+.
+How do you interpolate a (possibly non-stand-alone, non-interpolated) 
+control structure?  With an inital % - for example:
+.     
+mason:
+        % foreach $value ( @values ) {
+        <OPTION><% $value %></OPTION>
+        % }
+apache-asp:
+        <% foreach $value ( @values ) { %>
+        <OPTION><%= $value %></OPTION>
+        <% } %>
+.     
+This is one of the things I worry that the webmonkey HTML editors will not
+like about Mason.  That and the <%INIT> and <%PERL> tags.
+
+
+in the context of a state machine (& MySQL and Pg locking) for LDAP export:
+.
+Also note that Pg locks are for the duration of the transaction, so 
+Freeside needs to start using transactions for this to happen.  
+FS::UID::adminsuidsetup should explicitly set AutoCommit false and export
+some functions to begin and end transactions on $FS::UID::dbh.  (Well,
+eventually FS::UID should be an overloaded subclass of a DBI handle, but
+we don't have to worry about that until perl threads + mod_perl + threaded
+Apache 2.0 is stable, i.e. quite some time).
+
+Postfix
+also supports virtual domains in a way that's somewhat similar (but not
+compatible with) the way sendmail does.  In the postfix world, all virtual
+domain info is contained in one file (similar to the virtusertable), but
+is formatted as such:
+bar.com         virtual
+foo@bar.com             some@other.net
+quux@bar.com    localuser1
+...
+and so on.  After the file is generated, it gets compiled into a hash db
+using, "postmap /etc/postfix/virtual".
+
+
+steal all the play-nice-with-cache stuff back from RT
+
+Use this for email checking:
+libemail-valid-perl - Check validity of Internet email addresses
+.                                                                
+This module determines whether an email address is well-formed, and 
+optionally, whether a mail host exists for the domain.
+
+
+wishlist from drenalin@ultimanet.com:
+* delete button for customers
+- 15th of the month billing
+- field for customer referrals (naming who it is) and automatically crediting
++that account
+- ability to edit referrals
+- catch expired credit cards and notify via email when they are expiring
+* show passwords
+- set default shell to /bin/false when adding ppp account
+- import list of POPs from Megapop (see www.ultimanet.com and click on locations
++from text in index page)
+
+
+wishlist wrt projects/consulting from jivko@ijs.com:
+>The other thing, which is the serious part, is the following: We do not
+>offer dial-up services and that part of the system does not have to work,
+>but we have many customer, for which we do both hosting and consulting work.
+.
+>The hosting can be handled by freeside fine, but in the little time I spent 
+>on it I could not see how exactly to solve the consulting problem. What I
+>would love to see there is a way to create 'projects' for each customer and
+>ability to follow up on those (I mean to be able to add new comments,
+>descriptions, progress updates etc.). You already have the feature, which
+>allows multiple people to access the system with different access rights so
+>it should be possible to make it keep track of who and when updated given
+>'project' so we could have the developers access the database and update
+>the projects they are working on.
+.
+Hmm.  Is this accurate:  Each project is related to a single customer, and
+zero or more packages (billing items).  Each project has a name, due date,    
+and zero or more log entries consisting of date, user, and a text field
+(for "new comments, descriptions, progress updates etc." - would you like
+anything more specific?)
+
+In conjunction with that it looks like you need the ability to create
+"one-off" packages on the fly for arbitrary charges.
+
+> Additionally it would be nice to have a page, where all open projects can
+> be listed and not only that but be able list them by date too. (Say I want
+> to find out which projects are due today or two days from today, or which
+> projects are running late)
+.
+Browse/search project by date and customer.
+.
+> Finally it would be real nice if the billing script could add the cost for
+> all completed projects (or work done by the hour) to the monthly bill along   
+> with the hosting information and using the description of the work from the
+> 'project' table. 
+.
+Can you be more specific about your needs here?
+.
+> This is a lot of work, unless you disagree :-), and I would not expect you
+> to do all of it - we can work on it too - but I would hope for you to lead 
+> the effort.
+.
+I'm trying to get a handle on specifically what you need.
+.
+> Oh, and there is one more thing, but that should be simple to do. I would
+> like to be able to give the customers access to selected information from
+> their account. I want them to be able to monitor the progress of their
+> projects and the status of their accounts. 
+.
+Ok.
+.
+> Does all this make sense? It must be close to what you need at your office
+> though or at least I think so.
+.
+Yes, but we're small and have been tracking projects manually.
+.
+.
+>You may have this already .. what I have in mind is the following. Say you
+>have a customer for which you do hosting and some consulting (CGI, JAVA
+>etc) At the end of the month you need to bill the customer for the hosting,
+>35hours of Java programming and 10 hours of HTML authoring. The last two
+>are not because the project is over but because the work was done during
+>that month.
+>
+>So the way I see it, and it could be wrong, is that during the month the
+>people who work on particular project enter their comments and time spent
+>on the project. At the end of the month the billing script generates
+>invoices in which besides the hosting charges there are also charges for
+>work done during the period.
+>
+>Currently we do this in a very stupid way by maintaining a customer file,
+>in which a script saves things to be invoiced. At the end of the month a
+>script goes through these files and generates invoices with all items from
+>the files, which have not been flagged as 'paid'. The convenience of this
+>is that no one needs to worry about the invoices containing the items they
+>need to contain.
+
+
+
 first package select field in edit/cust_main.cgi isn't sticky on errors, yuck
+(also referral isn't sticky either?  yuck)
 
 > 1. A Web Form to the user get his account added automatically . The
 > /etc/raddb/users and /etc/passwd would be updated automatically (these