Class: XmlConv::Conversion::ProPharmaBdd

Inherits:
Object
  • Object
show all
Defined in:
lib/conversion/propharma_bdd.rb

Class Method Summary collapse

Class Method Details

._bdd_add_delivery(bdd, ast) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/conversion/propharma_bdd.rb', line 47

def _bdd_add_delivery(bdd, ast)
  delivery = Model::Delivery.new
  bsr = Model::Bsr.new
  delivery.add_id('Customer', _named_data(:reference, ast))
  _delivery_add_seller(delivery)
  delivery.bsr = bsr
  ast.items.each { |item|
    _delivery_add_item(delivery, item)
  }
  bdd.add_delivery(delivery)
  delivery
end

._bsr_add_customer_id(bsr, id) ⇒ Object



59
60
61
62
63
64
65
66
# File 'lib/conversion/propharma_bdd.rb', line 59

def _bsr_add_customer_id(bsr, id)
  customer = Model::Party.new
  customer.role = 'Customer'
  ## Propharma sends the Supplier-side Customer-ID, not the public EAN13 as it 
  #  is the case in Propharma -> Globopharm
  customer.add_id('supplier', id)
  bsr.add_party(customer)
end

._delivery_add_customer(delivery, ast) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/conversion/propharma_bdd.rb', line 67

def _delivery_add_customer(delivery, ast)
  _bsr_add_customer_id(delivery.bsr, _named_data(:cid, ast))
  customer = Model::Party.new
  customer.role = "Customer"
  ## Propharma sends the Supplier-side Customer-ID, not the public EAN13 as it 
  #  is the case in Propharma -> Globopharm
  customer.add_id('customer', _named_data(:cid, ast))
  name = Model::Name.new
  name.text = _named_data(:cname, ast)
  customer.name = name
  delivery.add_party(customer)
  customer
end

._delivery_add_item(delivery, ast) ⇒ Object



80
81
82
83
84
85
86
87
# File 'lib/conversion/propharma_bdd.rb', line 80

def _delivery_add_item(delivery, ast)
  item = Model::DeliveryItem.new
  item.line_no = delivery.items.size.next.to_s
  item.add_id('Pharmacode', _named_data(:pcode, ast))
  item.qty = _named_data(:quantity, ast)
  item.unit = 'PCE'
  delivery.add_item(item)
end

._delivery_add_seller(delivery) ⇒ Object



88
89
90
91
92
93
# File 'lib/conversion/propharma_bdd.rb', line 88

def _delivery_add_seller(delivery)
  party = Model::Party.new
  party.role = 'Seller'
  party.add_id("ACC", "7601001000681")
  delivery.add_party(party)
end

._named_data(key, ast) ⇒ Object



94
95
96
# File 'lib/conversion/propharma_bdd.rb', line 94

def _named_data(key, ast)
  ast.send(key).data.value
end

.convert(ast) ⇒ Object



38
39
40
41
42
43
# File 'lib/conversion/propharma_bdd.rb', line 38

def convert(ast)
  bdd = Model::Bdd.new
  delivery = _bdd_add_delivery(bdd, ast.order)
  _delivery_add_customer(delivery, ast.customer)
  bdd
end

.parse(src) ⇒ Object



44
45
46
# File 'lib/conversion/propharma_bdd.rb', line 44

def parse(src)
  @parser.parse(src) 
end