Class: Kiba::Extend::Transforms::Cspace::Movementreferencenumber
- Inherits:
-
Object
- Object
- Kiba::Extend::Transforms::Cspace::Movementreferencenumber
- Defined in:
- lib/kiba/extend/transforms/cspace/movementreferencenumber.rb
Overview
Generates typical pattern of movementReferenceNumbers based on year in location date, where available. For each year, the procedure data is sorted by the full date value, and the reference number value is incremented.
The typical number pattern used is the location record pattern from the number autogenerator in Location/Movement/Inventory (LMI) the UI. The pattern is:
- LOC (customizable via the
prefixparameter) - 4-digit year (for rows with no date, the value given for
nodatevalwill be inserted here) - .1 (this is one of those meaningless id number segments that never
gets incremented, but clients like to have it there to match the
default autogenerator, so here we are⦠customize this if desired
via the
preincrementsegmentparam) - .
- autoincrementing digit
ASSUMPTIONS OF THIS TRANSFORM
- You will have already reduced the output to one row per LMI to be created in CollectionSpace
- You will have used DateValue::ForceDayPrecision or some other
method to create a field containing only blank values and valid
ISO 8601 dates to be mapped to the unstructured date
locationdatefield in CollectionSpace
SORTING, or, how the end digit gets incremented within a year
See IdGenerator::YearBasedIncrementing for sorting details.
Instance Method Summary collapse
-
#close ⇒ Object
-
#initialize(datefield:, prefix: "LOC", nodateval: "0000", preincrementsegment: ".1.", target: :movementreferencenumber, sorter: nil) ⇒ Movementreferencenumber
constructor
A new instance of Movementreferencenumber.
-
#process(row) ⇒ Object
Constructor Details
#initialize(datefield:, prefix: "LOC", nodateval: "0000", preincrementsegment: ".1.", target: :movementreferencenumber, sorter: nil) ⇒ Movementreferencenumber
Returns a new instance of Movementreferencenumber.
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/kiba/extend/transforms/cspace/movementreferencenumber.rb', line 129 def initialize(datefield:, prefix: "LOC", nodateval: "0000", preincrementsegment: ".1.", target: :movementreferencenumber, sorter: nil) @generator = IdGenerator::YearBasedIncrementing.new( datefield: datefield, prefix: prefix, nodateval: nodateval, preincrementsegment: preincrementsegment, target: target, sorter: sorter ) end |
Instance Method Details
#close ⇒ Object
149 150 151 152 |
# File 'lib/kiba/extend/transforms/cspace/movementreferencenumber.rb', line 149 def close generator.finalized_rows .each { |row| yield row } end |
#process(row) ⇒ Object
145 146 147 |
# File 'lib/kiba/extend/transforms/cspace/movementreferencenumber.rb', line 145 def process(row) generator.process(row) end |