clarify interface difference between calc_setup and calc_recur: calc_setup takes...
[freeside.git] / FS / FS / part_pkg.pm
index fb05706..bf60784 100644 (file)
@@ -693,6 +693,25 @@ sub replace {
   '';
 }
 
   '';
 }
 
+sub validate_number {
+  my ($option, $valref) = @_;
+
+  $$valref = 0 unless $$valref;
+  return "Invalid $option"
+    unless ($$valref) = ($$valref =~ /^\s*(\d+)\s*$/);
+  return '';
+}
+
+sub validate_number_blank {
+  my ($option, $valref) = @_;
+
+  if ($$valref) {
+    return "Invalid $option"
+      unless ($$valref) = ($$valref =~ /^\s*(\d+)\s*$/);
+  }
+  return '';
+}
+
 =item check
 
 Checks all fields to make sure this is a valid package definition.  If
 =item check
 
 Checks all fields to make sure this is a valid package definition.  If
@@ -1861,7 +1880,7 @@ sub _rebless {
 
 =item calc_setup CUST_PKG START_DATE DETAILS_ARRAYREF OPTIONS_HASHREF
 
 
 =item calc_setup CUST_PKG START_DATE DETAILS_ARRAYREF OPTIONS_HASHREF
 
-=item calc_recur CUST_PKG START_DATE DETAILS_ARRAYREF OPTIONS_HASHREF
+=item calc_recur CUST_PKG START_DATE_SCALARREF DETAILS_ARRAYREF OPTIONS_HASHREF
 
 Calculates and returns the setup or recurring fees, respectively, for this
 package.  Implementation is in the FS::part_pkg:* module specific to this price
 
 Calculates and returns the setup or recurring fees, respectively, for this
 package.  Implementation is in the FS::part_pkg:* module specific to this price
@@ -1881,11 +1900,11 @@ Frequency override (for calc_recur)
 
 This option is filled in by the method rather than controlling its operation.
 It is an arrayref.  Applicable discounts will be added to the arrayref, as
 
 This option is filled in by the method rather than controlling its operation.
 It is an arrayref.  Applicable discounts will be added to the arrayref, as
-L<FS::cust_bill_pkg_discount|FS::cust_bill_pkg_discount records>.
+L<FS::cust_bill_pkg_discount> records.
 
 =item real_pkgpart
 
 
 =item real_pkgpart
 
-For package add-ons, is the base L<FS::part_pkg|package definition>, otherwise
+For package add-ons, is the base L<FS::part_pkg> package definition, otherwise
 no different than pkgpart.
 
 =item precommit_hooks
 no different than pkgpart.
 
 =item precommit_hooks
@@ -1909,7 +1928,7 @@ plan option prorate_defer_bill).
 =back
 
 Note: Don't calculate prices when not actually billing the package.  For that,
 =back
 
 Note: Don't calculate prices when not actually billing the package.  For that,
-see the L</base_setup|base_setup> and L</base_recur|base_recur> methods.
+see the L<FS::cust_pkg/base_setup> and L<FS::cust_pkg/base_recur> methods.
 
 =cut
 
 
 =cut