summaryrefslogtreecommitdiff
path: root/FS/FS/Record.pm
diff options
context:
space:
mode:
authorJonathan Prykop <jonathan@freeside.biz>2015-02-28 00:04:43 -0600
committerJonathan Prykop <jonathan@freeside.biz>2015-02-28 00:04:43 -0600
commit1ac4a177bd93ad7a97a45aacb66aa0bc9c23726b (patch)
treeeb1e8eb6f80e84ebfc3349cf714d76c82cfba24c /FS/FS/Record.pm
parentaec7743508bd9565dd076ec019dbb3d5b7cedd9c (diff)
RT#30825: Modernize Bulk payment importing
Diffstat (limited to 'FS/FS/Record.pm')
-rw-r--r--FS/FS/Record.pm14
1 files changed, 13 insertions, 1 deletions
diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm
index 35ed6f7..0f3685b 100644
--- a/FS/FS/Record.pm
+++ b/FS/FS/Record.pm
@@ -1803,6 +1803,7 @@ sub process_batch_import {
format_xml_formats => $opt->{format_xml_formats},
format_asn_formats => $opt->{format_asn_formats},
format_row_callbacks => $opt->{format_row_callbacks},
+ format_hash_callbacks => $opt->{format_hash_callbacks},
#per-import
job => $job,
file => $file,
@@ -1811,6 +1812,7 @@ sub process_batch_import {
params => { map { $_ => $param->{$_} } @pass_params },
#?
default_csv => $opt->{default_csv},
+ preinsert_callback => $opt->{preinsert_callback},
postinsert_callback => $opt->{postinsert_callback},
insert_args_callback => $opt->{insert_args_callback},
);
@@ -1849,6 +1851,8 @@ Class method for batch imports. Available params:
=item format_row_callbacks
+=item format_hash_callbacks - After parsing, before object creation
+
=item fields - Alternate way to specify import, specifying import fields directly as a listref
=item preinsert_callback
@@ -1891,7 +1895,7 @@ sub batch_import {
my( $type, $header, $sep_char,
$fixedlength_format, $xml_format, $asn_format,
- $parser_opt, $row_callback, @fields );
+ $parser_opt, $row_callback, $hash_callback, @fields );
my $postinsert_callback = '';
$postinsert_callback = $param->{'postinsert_callback'}
@@ -1947,6 +1951,11 @@ sub batch_import {
? $param->{'format_row_callbacks'}{ $param->{'format'} }
: '';
+ $hash_callback =
+ $param->{'format_hash_callbacks'}
+ ? $param->{'format_hash_callbacks'}{ $param->{'format'} }
+ : '';
+
@fields = @{ $formats->{ $format } };
} elsif ( $param->{'fields'} ) {
@@ -1956,6 +1965,7 @@ sub batch_import {
$sep_char = ',';
$fixedlength_format = '';
$row_callback = '';
+ $hash_callback = '';
@fields = @{ $param->{'fields'} };
} else {
@@ -2181,6 +2191,8 @@ sub batch_import {
$hash{custnum} = $2;
}
+ %hash = &{$hash_callback}(%hash) if $hash_callback;
+
#my $table = $param->{table};
my $class = "FS::$table";