FS::cust_main::NationalID
FS::cust_main::Billing FS::cust_main::Billing_Realtime
FS::cust_main::Billing_Discount
+ FS::cust_main::Billing_ThirdParty
FS::cust_main::Location
FS::otaker_Mixin FS::payinfo_Mixin FS::cust_main_Mixin
- FS::geocode_Mixin FS::Quotable_Mixin
+ FS::geocode_Mixin FS::Quotable_Mixin FS::Sales_Mixin
FS::o2m_Common
FS::Record
);
|| $self->ut_foreign_key('bill_locationnum', 'cust_location','locationnum')
|| $self->ut_foreign_key('ship_locationnum', 'cust_location','locationnum')
|| $self->ut_foreign_keyn('classnum', 'cust_class', 'classnum')
+ || $self->ut_foreign_keyn('salesnum', 'sales', 'salesnum')
|| $self->ut_textn('custbatch')
|| $self->ut_name('last')
|| $self->ut_name('first')
FS::reason_type for the new reason.
An I<addlinfo> option may be passed to set the credit's I<addlinfo> field.
+Likewise for I<eventnum>, I<commission_agentnum>, I<commission_salesnum> and
+I<commission_pkgnum>.
Any other options are passed to FS::cust_credit::insert.
$cust_credit->set('reason', $reason)
}
- for (qw( addlinfo eventnum )) {
- $cust_credit->$_( delete $options{$_} )
- if exists($options{$_});
- }
+ $cust_credit->$_( delete $options{$_} )
+ foreach grep exists($options{$_}),
+ qw( addlinfo eventnum ),
+ map "commission_$_", qw( agentnum salesnum pkgnum );
$cust_credit->insert(%options);
$cust_main->bill_and_collect( %$param );
}
-=item process_censustract_update CUSTNUM
-
-Queueable function to update the census tract to the current year (as set in
-the 'census_year' configuration variable) and retrieve the new tract code.
-
-=cut
-
-sub process_censustract_update {
- eval "use FS::Misc::Geo qw(get_censustract)";
- die $@ if $@;
- my $custnum = shift;
- my $cust_main = qsearchs( 'cust_main', { custnum => $custnum })
- or die "custnum '$custnum' not found!\n";
-
- my $new_year = $conf->config('census_year') or return;
- my $new_tract = get_censustract({ $cust_main->location_hash }, $new_year);
- if ( $new_tract =~ /^\d/ ) {
- # then it's a tract code
- $cust_main->set('censustract', $new_tract);
- $cust_main->set('censusyear', $new_year);
-
- local($ignore_expired_card) = 1;
- local($ignore_illegal_zip) = 1;
- local($ignore_banned_card) = 1;
- local($skip_fuzzyfiles) = 1;
- local($import) = 1; #prevent automatic geocoding (need its own variable?)
- my $error = $cust_main->replace;
- die $error if $error;
- }
- else {
- # it's an error message
- die $new_tract;
- }
- return;
-}
-
#starting to take quite a while for big dbs
# (JRNL: journaled so it only happens once per database)
# - seq scan of h_cust_main (yuck), but not going to index paycvv, so