this._createPOFromLineitems = function(fields, selected) {
if (selected.length == 0) return;
+ var self = this;
- this.show("acq-lit-progress-numbers");
var po = new fieldmapper.acqpo();
po.provider(this.createPoProviderSelector.attr("value"));
po.ordering_agency(this.createPoAgencySelector.attr("value"));
po.prepayment_required(fields.prepayment_required[0] ? true : false);
+ // if we're creating assets, delay the asset creation
+ // until after the PO is created. This will allow us to
+ // use showAssetCreator() directly.
+
fieldmapper.standardRequest(
["open-ils.acq", "open-ils.acq.purchase_order.create"],
{ async: true,
params: [
openils.User.authtoken,
- po, {
- lineitems : selected,
- create_assets : fields.create_assets[0],
- }
+ po, {lineitems : selected}
],
-
onresponse : function(r) {
var resp = openils.Util.readResponse(r);
- self._updateProgressNumbers(resp);
if (resp.complete) {
- location.href = oilsBasePath + "/acq/po/view/" +
- resp.purchase_order.id();
+ // self.isPO is needed for showAssetCreator();
+ self.isPO = resp.purchase_order.id();
+ var redir = oilsBasePath + "/acq/po/view/" + self.isPO;
+ if (fields.create_assets[0]) {
+ self.showAssetCreator(
+ function() {location.href = redir}
+ );
+ } else {
+ location.href = redir;
+ }
}
}
}