Class: Unidom::ArticleNumber::Marking
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Unidom::ArticleNumber::Marking
- Includes:
- Common::Concerns::ModelExtension
- Defined in:
- app/models/unidom/article_number/marking.rb
Overview
Marking 是条码和物品的标记关系。
Class Method Summary collapse
Class Method Details
.mark!(barcode: nil, marked: nil, marker: nil, opened_at: Time.now) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/models/unidom/article_number/marking.rb', line 17 def self.mark!(barcode: nil, marked: nil, marker: nil, opened_at: Time.now) raise ArgumentError.new('The barcode argument is required.' ) if .blank? raise ArgumentError.new('The marked argument is required.' ) if marked.blank? raise ArgumentError.new('The opened_at argument is required.') if opened_at.blank? query = ().marked_is(marked).valid_at.alive creation = { opened_at: opened_at } if marker.present? && marker.respond_to?(:id) creation[:marker] = marker else creation[:marker_id] = Unidom::Common::NULL_UUID creation[:marker_type] = '' end query.first_or_create! creation end |