# begins and commit transactions as it goes
sub create_lineitem_list_assets {
- my($mgr, $li_ids) = @_;
+ my($mgr, $li_ids, $vandelay) = @_;
return undef if check_import_li_marc_perms($mgr, $li_ids);
+ $li_ids = import_lineitems_via_vandelay($mgr, $li_ids, $vandelay);
+
# create the bibs/volumes/copies and ingest the records
for my $li_id (@$li_ids) {
$mgr->editor->xact_begin;
my $data = create_lineitem_assets($mgr, $li_id) or return undef;
$mgr->editor->xact_commit;
- # XXX ingest is in-db now
- #$mgr->push_ingest_queue($data->{li}->eg_bib_id) if $data->{new_bib};
$mgr->respond;
}
$mgr->process_ingest_records;
return 1;
}
+
+sub import_lineitems_via_vandelay {
+ my ($mgr, $li_ids, $vandelay) = @_;
+}
+
# returns event on error, undef on success
sub check_import_li_marc_perms {
my($mgr, $li_ids) = @_;
my $create_po = $args->{create_po};
my $activate_po = $args->{activate_po};
my $ordering_agency = $args->{ordering_agency};
- my $create_assets = $args->{create_assets};
+ my $vandelay = $args->{vandelay};
my $po;
my $evt;
unlink($filename);
$cache->delete_cache('vandelay_import_spool_' . $key);
- if ($create_assets) {
- create_lineitem_list_assets($mgr, \@li_list) or return $e->die_event;
+ if ($vandelay) {
+ create_lineitem_list_assets($mgr, \@li_list, $vandelay) or return $e->die_event;
}
return $mgr->respond_complete;
--- /dev/null
+<tr>
+ <td>[% l('Record Match Set') %]</td>
+ <td><div id='acq_vl:match_set'></div></td>
+</tr>
+<tr>
+ <td>[% l('Merge Profile') %]</td>
+ <td><div id='acq_vl:merge_profile'></div></td>
+</tr>
+<tr>
+ <td>[% l('Import Non-Matching Records') %]</td>
+ <td><input dojoType='dijit.form.CheckBox' id='acq_vl:import_no_match'></input></td>
+</tr>
+<tr>
+ <td>[% l('Select a Record Source') %]</td>
+ <td><div id='acq_vl:bib_source'></div></td>
+</tr>
+<tr>
+ <td>[% l('Merge On Exact Match (901c)') %]</td>
+ <td><input dojoType='dijit.form.CheckBox' id='acq_vl:auto_overlay_exact'></input></td>
+</tr>
+<tr>
+ <td>[% l('Merge On Single Match') %]</td>
+ <td><input dojoType='dijit.form.CheckBox' id='acq_vl:auto_overlay_1match'></input></td>
+</tr>
+<tr>
+ <td>[% l('Merge On Best Match') %]</td>
+ <td><input dojoType='dijit.form.CheckBox' id='acq_vl:auto_overlay_best_match'></input></td>
+</tr>
+<tr>
+ <td>[% l('Best/Single Match Minimum Quality Ratio') %]</td>
+ <td colspan='4'>
+ <input style='width:3em' value='0.0' id='acq_vl:match_quality_ratio' dojoType='dijit.form.TextBox'/>
+ <span style='padding-left: 10px; font-size:90%'>[% l('New Record Quality / Quality of Best Match') %]</span>
+ </td>
+</tr>
+<tr>
+ <td>[% l('Insufficient Quality Fall-Through Profile') %]</td>
+ <td><div id='acq_vl:fall_through_merge_profile'></div></td>
+</tr>
+
--- /dev/null
+dojo.require('openils.widget.AutoFieldWidget');
+
+function VLAgent(args) {
+ args = args || {};
+ for (var key in args) {
+ this[key] = args[key];
+ }
+
+ this.widgets = [
+ {key : 'import_no_match'},
+ {key : 'auto_overlay_exact'},
+ {key : 'auto_overlay_1match'},
+ {key : 'auto_overlay_best_match'},
+ {key : 'match_quality_ratio'},
+ {key : 'match_set', cls : 'vms'},
+ {key : 'bib_source', cls : 'cbs'},
+ {key : 'merge_profile', cls : 'vmp'},
+ {key : 'fall_through_merge_profile', cls : 'vmp'}
+ ];
+
+ this.init = function() {
+ var self = this;
+
+ dojo.forEach(this.widgets,
+ function(widg) {
+
+ if (widg.cls) { // selectors
+ new openils.widget.AutoFieldWidget({
+ fmClass : widg.cls,
+ selfReference : true,
+ orgLimitPerms : [self.limitPerm || 'CREATE_PURCHASE_ORDER'],
+ parentNode : dojo.byId('acq_vl:' + widg.key)
+ }).build(function(w) { widg.dijit = w });
+
+ } else { // bools
+ widg.dijit = dijit.byId('acq_vl:' + widg.key);
+ }
+ }
+ );
+ }
+
+ this.values = function() {
+ var values = {};
+ dojo.forEach(this.widgets,
+ function(widg) {
+ values[widg.key] = widg.dijit.attr('value');
+ }
+ );
+ return values;
+ }
+}