-$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
-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
-> file are on the same machine Freeside is). I guess the the Add
-> Customer
-> page with some customization could be the work.
-> 2. A Canceling Account Web Form available to user cancel his account
-> at
-> any time he wants.
-> 3. A Password Changing Web Form where the user could change your
-> password by sending your username, old and new password.
-> 4. Additional POP Accounts Creation where the user supply only his
-> main
-> username/password (probably provided from a PPP Account already
-> created)
-> and his POP username/password for this specific account.
-(actually need something more general i guess - probably need some way to say
-which accounts (svc_acct) can log in and make changes per customer (cust_main) )
-
-this is awfully vauge, perhaps email for more info? don't want to alientate
-someone with accounting experience, but i just don't have time right now.
-.
-Hi Ivan,
-.
-Thanks for the information. It took me a little while to figure it out, but I
-+was
-able to create an invoice. As a lamer and an accountant, may I make a few
-suggestions?
-.
-On the Customer view page:
-1) Layout the information in the manner the invoicing process is conducted.
- a) Customer information
- b) Package Ordering
- c) Add a "Create & Edit Invoice" section - this allows auditing of the
-invoice before it is processed.
- d) then put the billing section to actually process the invoice
- e) then put payment history information
-.
-Thanks,
-Mark Roberts <mroberts@iopenenterprises.com>
-
-
-new overdue code might be overzealous. test carefully.
-
-Port Freeside to use the modules that were abstracted from it:
-Net::SSH, Net::SCP, DBIx::DataSource and DBIx::DBSchema, at least.
-
-"first package" and email invoice (?) not sticky on errors in new/edit customer
-screen.
-
-http://www.ipmeter.com/ integration would be useful
-
-http://tangram.sourceforge.net/
-Tie::DBI
-
-mmm, http://pootpoot.com/~dlowe/DBIx-Table/
-
-The cybercash links in htdocs/docs/config.html are b0rken.
-
-Yes. Which is what I've been trying to tell you. (destination user,
-destination domainname) would be represented by the svcnum of a record in
-svc_acct. (In retrospect, using the uid instead of the svcnum was a bad
-choice). (domuser, domain name) would be part of the svc_acct_sm record,
-as domuser and domsvc.
-.
-Upon further consideration, I'll probably eliminate the svc_acct_sm table
-completely, and just add a field for the svcnum of a domain and the svcnum
-of a destination mailbox to svc_acct (or perhaps a one-to-many
-relationship - multiple svcnum(s) for multiple destination mailboxes.
-hmm.)
-
-> > > > Longer-term, I need to do something about the length of the
-> > > > column names -
-> > > > The SQL1992 standard defines 18 character column names,
-> > > > which would be a
-> > > > reasonable goal.
-> > >
-> > > Maybe the thing to do would be to separate these out to separate
-> > > tables.
-> > > then we could simply use something like id, attrib_name,
-> > attrib_value
-> > > to
-> > > store all of the radius values.
-> >
-> > Hmm, no, that's not quite right. You don't want to store the actual
-> > strings in the records for each account. Probably need a table that
-> > corresponds to the RADIUS dictionary file, with a list of
-> > attributes and
-> > attribute id's, then reference the attribute by id and not name.
-> >
-> > The more difficult bit is handling the service definitions
-> > correctly -
-> > part_svc and it's effects.
->
-> Yes that could be a bit tricky. Perhaps just one "radius" field in
-> part_svc that held a list of id's from the radius table that applied
-> that particular service?
-.
-No, that wouldn't let you set defaults or fixed values for each attribute,
-like part_svc currently does.
-
-
-
-hmm - if you delete an account in svc_acct somehow that a mail alias points to,
-svc_acct_sm.export will fail. make sure this can't be done using
-the web interface.
-
-Bug: during the linking process apparantly you can link too many services to
-a package. *sigh*
-
-zip code i18n is not very good :( but at least US, CA, HU, ?
-
-ut_phonen doesn't check data length. several
-orthogonal cleanup projects here. *sigh*
-
-update the cybercash links in config.html and in the homepage. add more explicit support for other payment types. etc.
-
-From "Tim Jung" <tjung@igateway.net>
-.
-Automatic CC Decline Notices via email
-Block Time billing for prepaid internet cards (400 hours or whatever block
-time of hours)
-Trouble Ticket System with simple search function for Knowledge Base feature
-Employee Timecards
-Credit Card System support for Red Hat's CCVS, and other Linux credit card
-programs
-Contact Manager/Lead Tracking
-Pre-Sale Quotes
-Cisco NetFlow Account for IP traffic billing
-VoIP and FoIP billing
-Roaming per minute billing based on Radius Proxy support or number they
-dialed into from Radius logs (800# etc)
-Support for OpenSRS Domain Registration
-Support for TUCOWS signup CDs
-
-
-dbdef-create for postgres
-
-pro-rating, fiddling dates
-
-It looks like svc_acct.import doesn't deal well with comments and
-multi-attribute lines.
-
-ivan@rootwood:~/freeside_current$ rgrep -r domuid * | cut -d: -f1 | sort |
-uniq
-CVS/Base/TODO
-TODO
-bin/fs-setup
-bin/svc_acct_sm.export
-bin/svc_acct_sm.import
-htdocs/docs/man/svc_acct_sm.txt
-htdocs/docs/schema.html
-htdocs/edit/CVS/Base/part_svc.cgi
-htdocs/edit/part_svc.cgi
-htdocs/edit/process/svc_acct_sm.cgi
-htdocs/edit/svc_acct_sm.cgi
-htdocs/search/svc_acct_sm.cgi
-htdocs/view/svc_acct_sm.cgi
-site_perl/svc_acct_sm.pm
-
-rootwood:COMPLETEHOST/TODO
-
-Currently, you set a value in the %FS::UID::callback hash with a coderef
-of the code you want to execute, but this was bad design and will shortly
-be changed to a subroutine to which you pass your coderef to register it.
-
-This is not a bug, it is how the system is currently designed. After
-defining a new package, you need to specifically allow agent types to
-purchase packages. You can do this from the edit screen of the new agent
-type.
-.
-It wouldn't be a bad idea to add a configuration value that makes new
-packages available for all currently existing agent types automatically.
-.
-On Fri, Apr 07, 2000 at 10:50:35AM -0500, David Morton wrote:
-> For some reason, the type_pkgs table didn't get updated when I tried to
-> create a domain service and package... insert into type_pkgs values
-> (4,1); fixed it up so that I could actually order the package.
-
-
-From: Chuck Cochems <zaphod@tdl.com>
-.
-1) automated generating of late notices. So far the only way I know to
-generate one is to re-invoice manually.
-.
-2) smart credit card rejection handling. It should e-mail a note at
-least, explainig that it did't go through, and why.
-.
-3)coment field in the main customer record.
-.
-4) streamlined payment entry feature. the current scheme has it fairly
-buried.
-.
-5) queries to show al customers who owe money,and such stuff as that.
-
-
-credits aren't counted against past invoices? hmm. something needs to be
-done to "apply payment" genericly. and zero out invoices etc.
-
-more email which should make it into a more organized TODO list:
-.
-I would also love to see Freeside support bandwidth billing by reading the
-Cisco NetFlow Accounting data so we and other ISP's could automatically bill
-co-located servers and even potentially other virtually hosted sites like
-MUD, Palace Chat, IRC Chat, etc based on the bandwidth they use or average
-sustained rates or whatever. I'm not much of a programmer so I don't know
-what all this entails but I did download a NetFlow client agent/whatever for
-Linux though.
- .
-It would also be nice to see Freeside be able to read Apache log files and
-bill customers for web traffic that way as an option also. Plus an option to
-bill for excessive disk usage without having to use quotas if you didn't
-want to, would be a nice feature as well. So you could monitor with a script
-or something to see how much disk space a user was using then get some
-average and charge a certain amount for anything above some preset limit for
-that account type. I might be able to hack something like this up, but I'm
-not 100% sure where to start or if there is something out there that could
-be modified or not.
-.
-Do you think that you will ever support the HKS CCVS (Hell's Kitchen
-Software Credit Card Verification Software) since Red Hat bought them out
-and is going to be including that for credit card processing when you buy
-the professional version? What about possibly supporting the OpenCCVS which
-is a GNU/GPL version of a credit card program? I haven't had time to comb
-through the Freeside code to see how hard it would be to add support for
-these as externally called programs.
-.
-Also any thoughts on help desk, and knowledge base stuff? Any thoughts on
-this stuff, and how possible and what kinds of work or time frame would be
-involved?
-.
-Tim Jung
-System Admin
-Internet Gateway Inc.
-tjung@igateway.net
-
-
-
- CVS via SSH (Score:1)
- by platinum (jedgar at fxp dot org) on Thursday September 30, @07:13PM EDT (#4)
- (User Info) http://www.fxp.org/~jedgar
- The links above are your best bet for basic cvs server configuration. Once you have a pserver set up, you
- may consider using cvs via ssh. All you need to do is the following:
-
- 1) Have ssh and sshd set up on the client and server machines
- 2) Set CVSROOT="joe@example.com:/home/ncvs"
- 3) Set CVS_RSH="/usr/local/bin/ssh"
- 4) Use cvs normally
- (Obviously, insert the proper host/paths above)
-
- You can also set up cvs/ssh to not need a password every time (similiar to an initial 'cvs login'):
-
- 1) run ssh-keygen on client machine using no passphrase.
- 2) copy/add ~/.ssh/identity.pub on the client to ~/.ssh/authorized_keys on the server
- (man ssh for more details)
-
- The main reason I mentio
- CVS via SSH (Score:1)
- by platinum (jedgar at fxp dot org) on Thursday September 30, @07:13PM EDT (#4)
- (User Info) http://www.fxp.org/~jedgar
-
-
-There's no way to do this currently, though it would be pretty
-straightforward to modify the source - specifically, the _collect_
-subroutine in FS::cust_main.
->
-On Mon, Dec 13, 1999 at 04:05:32PM -0700, Jeff Garner wrote:
-> Freeside will e-mail my users when they are billed if they are setup as
-> billing.
->
-> When setup by credit card it does not e-mail them. Is there a way to
-> turn on e-mail invoices for those who are billed via credit card? Kind
-> of like a recipt of billing....
-
-
-doc: http://www.softagency.co.jp/mysql/qmail.en.html
-
-sql1992.txt standard is 18 character column names. shoot for that, not just
-32 (postgresql default)
-
-Also note that (AFAIK) Freeside won't display any package that has more
-than one service on the "Add Customer" page. The reason for this is
-because there's no way to dynamically alter the displayed html form
-based on which package is selected. One possible solution would be to
-make an additional page that's used in the signup process that would
-display the form for each package, like a MS-style "Wizard". The first
-page lets you select the package, then the second page has the custom
-form with fields for each service in that package and a save button. Of
-course, that would require a little perl work.
-.
-Later,
-Scott Cruzen <sic@boernenet.com>
-
-
-Your suggested script with back up /usr/local/etc/freeside, but will miss
-any database not named `freeside'. Both of our scripts are specific to
-MySQL. If you're interested in contributing to Freeside, maybe you could
-work on a script which: reads the mapsecrets configuration file and then
-each secrets file to find out what specific database engine(s) (MySQL,
-PostgreSQL, etc.) and database(s) need to be backed up, then does so,
-serializing backups of the same engine, i.e. stop mysql, do all the mysql
-backups, start mysql, stop postgresql, do all the postgresql backups,
-start postgresql, etc.
-> #!/bin/sh
-> apachectl stop
-> mysqldump -t freeside > fs-backup.sql
-> apachectl start
-> tar -Pzcvf fs-backup-`date +%y%m%d%H%M%S`.tgz fs-backup.sql /usr/local/etc/freeside/
-> rm fs-backup.sql
-
-I chose to use counters in the filesystem because there is no standard way
-to get the value of an auto-incrementing keyfield which is common across
-all databases (as seen through DBI/DBD).
-.
-It certainly wouldn't be a bad idea to use the database-specific methods,
-when available.
-
-htdocs/edit/svc_acct.cgi:
-(Does the `*HIDDEN*' show up when you are adding a new account, and
-specify the password, then receive an error and are returned to the form?)
-
-more DOC:
-Thought some of you might be interested in this:
-
-<ftp://ftp.minivend.com/pub> has CyberCash compatibility modules for
-Paymentnet <http://www.paymentnet.com> and Authorizenet
-<http://www.authorizenet.com> which should allow you process transactions
-using those services as well as CyberCash.
-
-The files are named CCLib.pm.paymentnet and CCLib.pm_authorizenet,
-respectively, and are installed by renaming to CCLib.pm and moving to your
-site_perl directory. Otherwise, follow the directions for Cybercash v2 in
-htdocs/docs/config.html
-
-DOC:
-fs_passwd/ is a client-server replacement for the `passwd', `chfn' and
-`chsh' commands that updates the Freeside database. (so for that to be
-useful, you'd have to be exporting that data periodically)
-
-fs_radlog/ is a client-server RADIUS log parser that stuffs the data into
-SQL. It isn't finished, and probably won't be unless someone who I can't
-convince to use one of the RADIUS daemons that logs to SQL directly pays
-me money or something.
-
-fs_signup/ is a client-server signup server. i'm just finishing it up
-now; probably isn't on your machine yet.
-
-
-http://www.sisd.com/freeside/list-archive/msg00812.html
-
-package definitions should be implicit allow wrt agent types, not implicit deny
-(with the old behavior possible via a config file)
-
-> So is there anyway it could be setup to allow you to select a "primary
-> service" from each package? This service would be the one you were prompted
-> for. Could the signup server then be expanded to allow users to go into
-> their package and "turn-on" the remaining non-primary services(using the
-> primary account.)
-
-take the GPL'ed whois proxy stuff at www.geektools.com and turn it into
-intelligence for Net::Whois.
-
-A web version of the fs_passwd stuff would be nifty.
-
-If you have Cistron authenticating directly from MySQL, you can replicate
-in real-time instead of exporting periodically. See
-<http://www.mysql.com/Manual_chapter/manual_Common_problems.html#Replication>.
-
-these go in docs:
-<http://www.sisd.com/freeside/list-archive/msg00541.html> (was 546), and
-
-and http://www.sisd.com/freeside/list-archive/msg00421.html (was 423)
-
-> > 5: Is there anyway to get freeside to send a sysadmin a warning when a
-> > credit card has expired?
-No, but there should be.
-
-Put this in the doc (quoting Mark Wells <mark@pc-intouch.com>):
->Of course, thanks to the sheer coolness of SQL and MyODBC, you can do
->whatever reports you want in basically whatever application you want.
->There's no need for Freeside itself to do any reports at all.
-
-middle names and titles
-
-On Wed, Jul 07, 1999 at 01:11:40PM -0400, Frank Nazario wrote:
-> Playing and entering information to Freeside i encountered the following
-> missing reports:
->
-> View Customers by Agent
->
-> View Pending Invoices
->
-
-grep 'uncomment this to encrypt password immediately' site_perl/svc_acct.pm
-Not to say that it shouldn't be a configurable option.
-
-in site_perl/cust_main_invoice.pm (elsewhere?), error out if mydomain config file is gone
-(at least until the idea of a default domain goes away)
-
-FS::Record::qsearch does an eval every loop iteration (which is itself not
-guaranteed to work across all DBD's and should be fixed). This has got to be
-slow. Fix it. (I think recent Perls might have a way to accept a variable
-there, no eval needed?)
-
-Could you have added /bin/sync, /sbin/shutdown, and /bin/halt to the
-`shells' configuration file before importing, and removed them afterwords?
-(even better if svc_acct.import did that automatically - it could just
-munge and restore @FS::svc_acct::shells... hmm.)
-
-> BTW, Ivan, I am trying to verify in an additional database table that a
-> particular user doesn't exist. This database is used to store email aliases a$
-> additional POP boxes for our customers (kinda like AOL allows). I have toyed
-> with the idea of just writing the aliases to an email only svc_acct that
-> doesn't write to the password file, but that isn't really how I want to do it.
-
-Actually, I think that's a pretty good way to do it. Cerkit contributed
-support a little while back for svc_acct.pm and svc_acct.export for
-multiple export targets. It needs to be cleaned up and documented, which
-I'll try to get to soon. For this to work correctly, the svc_acct_sm
-table should go away, along with the concept of a "default" domain.
-
-default setting for new packages should allow all agents to purchase them...
-with a config file for the old behaviour
-
-fix or replace Term::Query (Quiz::Question doesn't do what i need)
-
-Check config file reading stuff from CPAN
-
-Authorizenet module from CPAN!
-
-<http://www.math.fu-berlin.de/~leitner/mutt/faq.html> has a good y2k complience
-statement!
-
- I'm hoping Freeside can support arbitrailly complex pricing plans
- because of a simple concept: all prices are perl expressions. So if
- you use `19.95' for example, perl evalates that to be `19.95'. But if
- you need to do a complex pricing scheme, you just need to write an
- appropriate perl expression, which will most likely pull data from the
- database to return pricing. Some things will already log to SQL; for
- example most RADIUS servers can or have a patch available. Getting
- Freeside to bill based on any sort of data then becomes a matter of
- importing the data into the database.
-
- There are some issues involved with pro-rating, partial month charges,
- that sort of thing. Expressions will need a standard way to have the
- applicable time/data ranges passed to them. Also the expressions are
- currently running under the Safe perl module, and the opmask might not
- be right in all situations. I'll try to spend some time working on
- this if you are using it.
-
-> 2. can customers view their bills on-line.
-
-Not yet; it needs to be proxied from Freeside to a customer web server in
-a secure way using something not completely unlike the fs_passwd,
-fs_passwdd, fs_passwd_server trio.
-
-
-> Lastly, if someone over pays on an invoice, the credit part does not flow
-> over to other invoices..
-
-The total balance flows over correctly, but individual payments don't.
-The code you're looking for is in FS::cust_pay::insert
-
-The question of what to do with overpayments that don't have another
-invoice to flow into (yet.. or possibly not) is still an open one. The
-legacy system Freeside replaced long ago had a separate place for this
-(payments waiting for an invoice) for each customer, and it gave our
-bookeeper fits.
-
-
-option to relax username uniqueness in favor of username+domain or mail/shell
-vs. radius to ease import for isp's with namespace problems or who buy others.
-
-do i have to store anything for radius realms besides regular radius attributes
-(which are handled fine now)?
-
-warn or complain or something when invoice_from is empty (and we use it)
-
-Right now Freeside uses the `freq' field of a package definition as a
-number of months. The specific section of code you're looking for is in
-FS::cust_main::bill:
-
- #change this bit to use Date::Manip?
- #$sdate=$cust_pkg->bill || time;
- #$sdate=$cust_pkg->bill || $time;
- $sdate = $cust_pkg->bill || $cust_pkg->setup || $time;
- my ($sec,$min,$hour,$mday,$mon,$year) =
- (localtime($sdate) )[0,1,2,3,4,5];
- $mon += $part_pkg->getfield('freq');
- until ( $mon < 12 ) { $mon -= 12; $year++; }
- $cust_pkg->setfield('bill',
- timelocal($sec,$min,$hour,$mday,$mon,$year));
- $cust_pkg_mod_flag = 1;
-
-..and when I went poking for this, looks like it tells us just what needs
-to be done! Hehehe...
-
-Date::Manip can handle cool things like "+ 1 month" (actually the current
-case of /^(\d+)$/ would have to be added as a special case of "+ $1
-month") and "+ 30 days" (what you need) and even "+ 5 business days" !
-
-
-On Wed, Apr 28, 1999 at 08:38:16PM +0000, Kristian Hoffmann wrote:
-> I can't quite seem to figure out how this exporting works. From what I
-> understand, when you run svc_acct.export, it rewrites the /etc/passwd,
-> /etc/shadow, etc. files. Is this only for initial setups with the
-> export hooks being in the pm's?
-
-You can use both, or just one method. The configuration files control
-this. One of the things in the TODO is to take out the last few things
-that aren't customizable wrt this and put them in config files.
-
-http://www.daemonnews.org/199905/user-mgmt.html
-
-Term::Query doesn't install out of the box from CPAN. Fix it (and get it
-submitted upstream!), or remove requirement from bin/svc_acct.import and
-bin/svc_acct_sm.import and take it out of the install instructions.
-
-use this cool link to explain the Freeside API
-ftp://cpan.nas.nasa.gov/pub/perl/CPAN/doc/FMTEYEWTK/easy_objects.html
-
-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.
-
-(workaround for postgres before 6.5) (unlikely to ever be implemented)
-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 (fixed using the return value from $sth->execute
-as a number of rows - something else?).
-
-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