<field reporter:label="Peer Record Maps" name="peer_record_maps" oils_persist:virtual="true" reporter:datatype="link"/>
<field reporter:label="Peer Records" name="peer_records" oils_persist:virtual="true" reporter:datatype="link"/>
<field reporter:label="Last Captured Hold" name="last_captured_hold" oils_persist:virtual="true" reporter:datatype="link"/>
- <field reporter:label="Latest Inventory" name="last_copy_inventory" oils_persist:virtual="true" reporter:datatype="link"/>
+ <field reporter:label="Latest Inventory" name="latest_inventory" oils_persist:virtual="true" reporter:datatype="link"/>
<field reporter:label="Has Holds" name="holds_count" oils_persist:virtual="true" reporter:datatype="link"/>
<field reporter:label="Copy Tags" name="tags" oils_persist:virtual="true" reporter:datatype="link"/>
<field reporter:label="Copy Alerts" name="copy_alerts" oils_persist:virtual="true" reporter:datatype="link"/>
<link field="peer_record_maps" reltype="has_many" key="target_copy" map="" class="bpbcm"/>
<link field="peer_records" reltype="has_many" key="target_copy" map="peer_record" class="bpbcm"/>
<link field="last_captured_hold" reltype="has_a" key="current_copy" map="" class="alhr"/>
- <link field="last_copy_inventory" reltype="might_have" key="copy" map="" class="alci"/>
+ <link field="latest_inventory" reltype="might_have" key="copy" map="" class="alci"/>
<link field="floating" reltype="has_a" key="id" map="" class="cfg"/>
<link field="holds_count" reltype="might_have" key="id" map="" class="hasholdscount"/>
<link field="tags" reltype="has_many" key="copy" map="" class="acptcm"/>
</permacrud>
</class>
- <class id="alci" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="asset::last_copy_inventory" oils_persist:tablename="asset.last_copy_inventory" reporter:core="true" reporter:label="Latest Inventory">
- <fields oils_persist:primary="id" oils_persist:sequence="asset.last_copy_inventory_id_seq">
- <field reporter:label="Last Inventory ID" name="id" reporter:datatype="id"/>
- <field reporter:label="Last Inventory Date" name="inventory_date" reporter:datatype="timestamp"/>
- <field reporter:label="Last Inventory Workstation" name="inventory_workstation" reporter:datatype="link"/>
+ <class id="alci" controller="open-ils.cstore open-ils.pcrud" oils_obj:fieldmapper="asset::latest_inventory" oils_persist:tablename="asset.latest_inventory" reporter:core="true" reporter:label="Latest Inventory">
+ <fields oils_persist:primary="id" oils_persist:sequence="asset.latest_inventory_id_seq">
+ <field reporter:label="Latest Inventory ID" name="id" reporter:datatype="id"/>
+ <field reporter:label="Latest Inventory Date" name="inventory_date" reporter:datatype="timestamp"/>
+ <field reporter:label="Latest Inventory Workstation" name="inventory_workstation" reporter:datatype="link"/>
<field reporter:label="Copy" name="copy" reporter:datatype="link"/>
</fields>
<links>
}
__PACKAGE__->register_method(
- method => "update_last_copy_inventory",
- api_name => "open-ils.circ.circulation.update_last_copy_inventory");
+ method => "update_latest_inventory",
+ api_name => "open-ils.circ.circulation.update_latest_inventory");
-sub update_last_copy_inventory {
+sub update_latest_inventory {
my( $self, $conn, $auth, $args ) = @_;
my $e = new_editor(authtoken=>$auth, xact=>1);
return $e->die_event unless $e->checkauth;
my $copies = $$args{copy_list};
foreach my $copyid (@$copies) {
my $copy = $e->retrieve_asset_copy($copyid);
- my $alci = $e->search_asset_last_copy_inventory({copy => $copyid})->[0];
+ my $alci = $e->search_asset_latest_inventory({copy => $copyid})->[0];
if($alci) {
$alci->inventory_date('now');
$alci->inventory_workstation($e->requestor->wsid);
- $e->update_asset_last_copy_inventory($alci) or return $e->die_event;
+ $e->update_asset_latest_inventory($alci) or return $e->die_event;
} else {
- my $alci = Fieldmapper::asset::last_copy_inventory->new;
+ my $alci = Fieldmapper::asset::latest_inventory->new;
$alci->inventory_date('now');
$alci->inventory_workstation($e->requestor->wsid);
$alci->copy($copy->id);
- $e->create_asset_last_copy_inventory($alci) or return $e->die_event;
+ $e->create_asset_latest_inventory($alci) or return $e->die_event;
}
- $copy->last_copy_inventory($alci);
+ $copy->latest_inventory($alci);
}
$e->commit;
return 1;
backdate
reservation
do_inventory_update
- last_copy_inventory
+ latest_inventory
copy
copy_id
copy_barcode
$self->dont_change_lost_zero($dont_change_lost_zero);
}
- my $last_copy_inventory = Fieldmapper::asset::last_copy_inventory->new;
+ my $latest_inventory = Fieldmapper::asset::latest_inventory->new;
if ($self->do_inventory_update) {
- $last_copy_inventory->inventory_date('now');
- $last_copy_inventory->inventory_workstation($self->editor->requestor->wsid);
- $last_copy_inventory->copy($self->copy->id());
+ $latest_inventory->inventory_date('now');
+ $latest_inventory->inventory_workstation($self->editor->requestor->wsid);
+ $latest_inventory->copy($self->copy->id());
} else {
- my $alci = $self->editor->search_asset_last_copy_inventory(
+ my $alci = $self->editor->search_asset_latest_inventory(
{copy => $self->copy->id}
);
- $last_copy_inventory = $alci->[0]
+ $latest_inventory = $alci->[0]
}
- $self->last_copy_inventory($last_copy_inventory);
+ $self->latest_inventory($latest_inventory);
if( $self->checkin_check_holds_shelf() ) {
$self->bail_on_events(OpenILS::Event->new('NO_CHANGE'));
);
}
- if ($self->last_copy_inventory) {
+ if ($self->latest_inventory) {
# flesh some workstation fields before returning
- $self->last_copy_inventory->inventory_workstation(
- $self->editor->retrieve_actor_workstation([$self->last_copy_inventory->inventory_workstation])
+ $self->latest_inventory->inventory_workstation(
+ $self->editor->retrieve_actor_workstation([$self->latest_inventory->inventory_workstation])
);
}
- if($self->last_copy_inventory && !$self->last_copy_inventory->id) {
- my $alci = $self->editor->search_asset_last_copy_inventory(
- {copy => $self->last_copy_inventory->copy}
+ if($self->latest_inventory && !$self->latest_inventory->id) {
+ my $alci = $self->editor->search_asset_latest_inventory(
+ {copy => $self->latest_inventory->copy}
);
if($alci->[0]) {
- $self->last_copy_inventory->id($alci->[0]->id);
+ $self->latest_inventory->id($alci->[0]->id);
}
}
- $self->copy->last_copy_inventory($self->last_copy_inventory);
+ $self->copy->latest_inventory($self->latest_inventory);
for my $evt (@{$self->events}) {
$payload->{patron} = $self->patron;
$payload->{reservation} = $self->reservation
unless (not $self->reservation or $self->reservation->cancel_time);
- $payload->{last_copy_inventory} = $self->last_copy_inventory;
+ $payload->{latest_inventory} = $self->latest_inventory;
if ($self->do_inventory_update) { $payload->{do_inventory_update} = 1; }
$evt->{payload} = $payload;
);
CREATE UNIQUE INDEX copy_part_map_cp_part_idx ON asset.copy_part_map (target_copy, part);
-CREATE TABLE asset.last_copy_inventory (
+CREATE TABLE asset.latest_inventory (
id SERIAL PRIMARY KEY,
inventory_workstation INTEGER REFERENCES actor.workstation (id) DEFERRABLE INITIALLY DEFERRED,
inventory_date TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
copy BIGINT NOT NULL
);
-CREATE INDEX last_copy_inventory_copy_idx ON asset.last_copy_inventory (copy);
+CREATE INDEX latest_inventory_copy_idx ON asset.latest_inventory (copy);
CREATE TABLE asset.opac_visible_copies (
id BIGSERIAL primary key,
END;
$f$ LANGUAGE PLPGSQL VOLATILE COST 50;
-CREATE OR REPLACE FUNCTION evergreen.asset_last_copy_inventory_copy_inh_fkey() RETURNS TRIGGER AS $f$
+CREATE OR REPLACE FUNCTION evergreen.asset_latest_inventory_copy_inh_fkey() RETURNS TRIGGER AS $f$
BEGIN
PERFORM 1 FROM asset.copy WHERE id = NEW.copy;
IF NOT FOUND THEN
AFTER UPDATE OR INSERT ON asset.copy_tag_copy_map
DEFERRABLE FOR EACH ROW EXECUTE PROCEDURE evergreen.asset_copy_tag_copy_map_copy_inh_fkey();
-CREATE CONSTRAINT TRIGGER inherit_asset_last_copy_inventory_copy_fkey
- AFTER UPDATE OR INSERT ON asset.last_copy_inventory
- DEFERRABLE FOR EACH ROW EXECUTE PROCEDURE evergreen.asset_last_copy_inventory_copy_inh_fkey();
+CREATE CONSTRAINT TRIGGER inherit_asset_latest_inventory_copy_fkey
+ AFTER UPDATE OR INSERT ON asset.latest_inventory
+ DEFERRABLE FOR EACH ROW EXECUTE PROCEDURE evergreen.asset_latest_inventory_copy_inh_fkey();
ALTER TABLE asset.copy_note ADD CONSTRAINT asset_copy_note_creator_fkey FOREIGN KEY (creator) REFERENCES actor.usr (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED;
SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
-CREATE TABLE asset.last_copy_inventory (
+CREATE TABLE asset.latest_inventory (
id SERIAL PRIMARY KEY,
inventory_workstation INTEGER REFERENCES actor.workstation (id) DEFERRABLE INITIALLY DEFERRED,
inventory_date TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
copy BIGINT NOT NULL
);
-CREATE INDEX last_copy_inventory_copy_idx ON asset.last_copy_inventory (copy);
+CREATE INDEX latest_inventory_copy_idx ON asset.latest_inventory (copy);
-CREATE OR REPLACE FUNCTION evergreen.asset_last_copy_inventory_copy_inh_fkey() RETURNS TRIGGER AS $f$
+CREATE OR REPLACE FUNCTION evergreen.asset_latest_inventory_copy_inh_fkey() RETURNS TRIGGER AS $f$
BEGIN
PERFORM 1 FROM asset.copy WHERE id = NEW.copy;
IF NOT FOUND THEN
END;
$f$ LANGUAGE PLPGSQL VOLATILE COST 50;
-CREATE CONSTRAINT TRIGGER inherit_asset_last_copy_inventory_copy_fkey
- AFTER UPDATE OR INSERT ON asset.last_copy_inventory
- DEFERRABLE FOR EACH ROW EXECUTE PROCEDURE evergreen.asset_last_copy_inventory_copy_inh_fkey();
+CREATE CONSTRAINT TRIGGER inherit_asset_latest_inventory_copy_fkey
+ AFTER UPDATE OR INSERT ON asset.latest_inventory
+ DEFERRABLE FOR EACH ROW EXECUTE PROCEDURE evergreen.asset_latest_inventory_copy_inh_fkey();
INSERT into config.workstation_setting_type (name, grp, datatype, label)
VALUES (
{{item['call_number.record.simple_record.title']}}
</a>
</eg-grid-field>
- <eg-grid-field path="last_copy_inventory.inventory_date" datatype="timestamp" label="[% l('Inventory Date') %]"></eg-grid-field>
- <eg-grid-field path="last_copy_inventory.inventory_workstation.name" label="[% l('Inventory Workstation') %]"></eg-grid-field>
+ <eg-grid-field path="latest_inventory.inventory_date" datatype="timestamp" label="[% l('Inventory Date') %]"></eg-grid-field>
+ <eg-grid-field path="latest_inventory.inventory_workstation.name" label="[% l('Inventory Workstation') %]"></eg-grid-field>
</eg-grid>
{{item['call_number.record.simple_record.title']}}
</a>
</eg-grid-field>
- <eg-grid-field path="last_copy_inventory.inventory_date" datatype="timestamp" label="[% l('Inventory Date') %]"></eg-grid-field>
- <eg-grid-field path="last_copy_inventory.inventory_workstation.name" label="[% l('Inventory Workstation') %]"></eg-grid-field>
+ <eg-grid-field path="latest_inventory.inventory_date" datatype="timestamp" label="[% l('Inventory Date') %]"></eg-grid-field>
+ <eg-grid-field path="latest_inventory.inventory_workstation.name" label="[% l('Inventory Workstation') %]"></eg-grid-field>
</eg-grid>
{{item['copy_alert_count']}}
<button ng-disabled="item['copy_alert_count'] <= 0" class="btn btn-sm btn-default" ng-click="col.handlers.copyAlertsEdit(item['id'])">[% l('Manage') %]</button>
</eg-grid-field>
- <eg-grid-field label="[% l('Inventory Date') %]" datatype="timestamp" path="last_copy_inventory.inventory_date"></eg-grid-field>
- <eg-grid-field label="[% l('Inventory Workstation') %]" path="last_copy_inventory.inventory_workstation.name"></eg-grid-field>
+ <eg-grid-field label="[% l('Inventory Date') %]" datatype="timestamp" path="latest_inventory.inventory_date"></eg-grid-field>
+ <eg-grid-field label="[% l('Inventory Workstation') %]" path="latest_inventory.inventory_workstation.name"></eg-grid-field>
</eg-grid>
</div>
{{item['copy_alert_count']}}
<button ng-disabled="item['copy_alert_count'] <= 0" class="btn btn-sm btn-default" ng-click="col.handlers.copyAlertsEdit(item['id'])">[% l('Manage') %]</button>
</eg-grid-field>
- <eg-grid-field label="[% l('Inventory Date') %]" path="last_copy_inventory.inventory_date" datatype="timestamp"></eg-grid-field>
- <eg-grid-field label="[% l('Inventory Workstation') %]" path="last_copy_inventory.inventory_workstation.name"></eg-grid-field>
+ <eg-grid-field label="[% l('Inventory Date') %]" path="latest_inventory.inventory_date" datatype="timestamp"></eg-grid-field>
+ <eg-grid-field label="[% l('Inventory Workstation') %]" path="latest_inventory.inventory_workstation.name"></eg-grid-field>
</eg-grid>
<div class="flex-row">
<div class="flex-cell">[% l('Inventory Date') %]</div>
- <div class="flex-cell well">{{copy.last_copy_inventory().inventory_date() | date:egDateAndTimeFormat}}</div>
+ <div class="flex-cell well">{{copy.latest_inventory().inventory_date() | date:egDateAndTimeFormat}}</div>
<div class="flex-cell">[% l('Inventory Workstation') %]</div>
- <div class="flex-cell well">{{copy.last_copy_inventory().inventory_workstation().name()}}</div>
+ <div class="flex-cell well">{{copy.latest_inventory().inventory_workstation().name()}}</div>
<div class="flex-cell"></div>
<div class="flex-cell"></div>
<eg-grid-field path="au.*" parent-idl-class="au" hidden></eg-grid-field>
<eg-grid-field path="transit.*" parent-idl-class="atc" hidden></eg-grid-field>
<eg-grid-field path="hold.*" parent-idl-class="ahr" hidden></eg-grid-field>
- <eg-grid-field path="acp.last_copy_inventory.inventory_date" label="[% l('Inventory Date') %]" datatype="timestamp" hidden></eg-grid-field>
- <eg-grid-field path="acp.last_copy_inventory.inventory_workstation.name" label="[% l('Inventory Workstation')%]" hidden></eg-grid-field>
+ <eg-grid-field path="acp.latest_inventory.inventory_date" label="[% l('Inventory Date') %]" datatype="timestamp" hidden></eg-grid-field>
+ <eg-grid-field path="acp.latest_inventory.inventory_workstation.name" label="[% l('Inventory Workstation')%]" hidden></eg-grid-field>
</eg-grid>
// regardless of whether it matches the current item.
if (!barcode && itemSvc.copy && itemSvc.copy.id() == copyId) {
$scope.copy = itemSvc.copy;
- if (itemSvc.last_copy_inventory && itemSvc.last_copy_inventory.copy() == copyId) {
- $scope.last_copy_inventory = itemSvc.last_copy_inventory;
+ if (itemSvc.latest_inventory && itemSvc.latest_inventory.copy() == copyId) {
+ $scope.latest_inventory = itemSvc.latest_inventory;
}
$scope.copy_alert_count = itemSvc.copy.copy_alerts().filter(function(aca) {
return !aca.ack_time();
var copy = res.copy;
itemSvc.copy = copy;
- if (res.last_copy_inventory) itemSvc.last_copy_inventory = res.last_copy_inventory;
+ if (res.latest_inventory) itemSvc.latest_inventory = res.latest_inventory;
$scope.copy = copy;
- $scope.last_copy_inventory = res.last_copy_inventory;
+ $scope.latest_inventory = res.latest_inventory;
$scope.copy_alert_count = copy.copy_alerts().filter(function(aca) {
return !aca.ack_time();
}).length;
service.prototype.flesh = {
flesh : 3,
flesh_fields : {
- acp : ['status','location','circ_lib','parts','age_protect','copy_alerts', 'last_copy_inventory'],
+ acp : ['status','location','circ_lib','parts','age_protect','copy_alerts', 'latest_inventory'],
acn : ['prefix','suffix','copies'],
alci : ['inventory_workstation']
}
row_item['copy_barcode'] = row_item.acp.barcode();
- if (row_item.acp.last_copy_inventory() && row_item.acp.last_copy_inventory().inventory_date() == "now")
- row_item.acp.last_copy_inventory().inventory_date(Date.now());
+ if (row_item.acp.latest_inventory() && row_item.acp.latest_inventory().inventory_date() == "now")
+ row_item.acp.latest_inventory().inventory_date(Date.now());
if (row_item.mbts) {
var amt = Number(row_item.mbts.balance_owed());
data.record = payload.record;
data.acp = payload.copy;
data.acn = payload.volume ? payload.volume : payload.copy ? payload.copy.call_number() : null;
- data.alci = egCore.idl.toHash(payload.last_copy_inventory, true);
+ data.alci = egCore.idl.toHash(payload.latest_inventory, true);
data.au = payload.patron;
data.transit = payload.transit;
data.status = payload.status;
if (payload.circ) data.duration = payload.circ.duration();
if (payload.circ) data.circ_lib = payload.circ.circ_lib();
if (payload.do_inventory_update) {
- if (payload.last_copy_inventory.id()) {
- egCore.pcrud.update(payload.last_copy_inventory);
+ if (payload.latest_inventory.id()) {
+ egCore.pcrud.update(payload.latest_inventory);
} else {
- egCore.pcrud.create(payload.last_copy_inventory);
+ egCore.pcrud.create(payload.latest_inventory);
}
}
var final_resp = {evt : evt, params : params, options : options};
- var copy, hold, transit, last_copy_inventory;
+ var copy, hold, transit, latest_inventory;
if (evt[0].payload) {
copy = evt[0].payload.copy;
hold = evt[0].payload.hold;
transit = evt[0].payload.transit;
- last_copy_inventory = evt[0].payload.last_copy_inventory;
+ latest_inventory = evt[0].payload.latest_inventory;
}
// track the barcode regardless of whether it's valid
flesh : 4,
flesh_fields : {
acp : ['call_number','location','status','location','floating','circ_modifier',
- 'age_protect','circ_lib','copy_alerts', 'editor', 'circ_as_type', 'last_copy_inventory'],
+ 'age_protect','circ_lib','copy_alerts', 'editor', 'circ_as_type', 'latest_inventory'],
acn : ['record','prefix','suffix','label_class'],
bre : ['simple_record','creator','editor'],
alci : ['inventory_workstation']
if (copy_list.length == 0) return;
return egCore.net.request(
'open-ils.circ',
- 'open-ils.circ.circulation.update_last_copy_inventory',
+ 'open-ils.circ.circulation.update_latest_inventory',
egCore.auth.token(), {copy_list: copy_list}
).then(function(res) {
if (res) {
{alci: ['inventory_workstation']}
}).then(function(alci) {
//update existing grid rows
- item["last_copy_inventory.inventory_date"] = alci.inventory_date();
- item["last_copy_inventory.inventory_workstation.name"] =
+ item["latest_inventory.inventory_date"] = alci.inventory_date();
+ item["latest_inventory.inventory_workstation.name"] =
alci.inventory_workstation().name();
});
}