mercator_mesonic 0.0.1 → 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6df98b825f7cfa0dd7ece80b1116b59edb6ad910
4
- data.tar.gz: 5ea6100addb70e06651e4df420c72d02fe4ab846
3
+ metadata.gz: fd3987f478155f5658a70670dbd33188e998e953
4
+ data.tar.gz: a3a1ce7517edc6bf5dccb97a17670328e2a495e9
5
5
  SHA512:
6
- metadata.gz: 6858ec522022b39da94dddc4b724c03de5ffd447bd211c5e46aa7f9d53cf3a227786f933abc683b88cb4d9ea066e26a642bd3a32af415808937433506b9f0731
7
- data.tar.gz: 760cc778e913aa5dc22cebe7606f4414c1b4fe8d25d841c3a472cecc0145aeb1b45b27101c4ff45c434c037c2f5c0ec8aeb985b0cc5bd22369d824cd3f0d4ced
6
+ metadata.gz: a6d1446e3e5494b47d6efd1149fcfce3f456f348bd26a239ee97c250ff95ca0132d3523fc715e08166d70ba26d7bcafd3f39f43b4ba12200857d7f497a676e18
7
+ data.tar.gz: b58e76b67fbba828985e50e053ee1b3564983b13b76ac6c1491d1c5b2889743fcd6b1d1970bcd8afdaa752e08deb5d0f6b6a153c904c7d190f24c03a5b205077
data/README.rdoc CHANGED
@@ -1,16 +1,26 @@
1
- = MercatorMesonic
1
+ # MercatorMesonic
2
2
 
3
3
  Mercator_Mesonic provides Mesonic ERP integration for the Mercator Guided Selling Application.
4
4
 
5
5
  This project uses the GPL V3 license. See file LICENSE in the same directory for details about the GPL V3.
6
6
 
7
- # Installation instructions
7
+ ## Installation instructions
8
8
 
9
9
  1. Put in your Gemfile
10
10
  '''ruby
11
11
  gem "mercator_mesonic"
12
12
  '''
13
- 2 Get all migrations into your app by running in your ipp directory
13
+ 2. Instell gem by running
14
+ '''ruby
15
+ bundle install
16
+ '''
17
+ 3.2 Get all migrations into your app by running in your ipp directory
14
18
  '''ruby
15
19
  rake mercator_mesonic:install:migrations
16
- '''
20
+ '''
21
+ 4. Run Migrations added
22
+ '''ruby
23
+ rake db:migrate
24
+ '''
25
+ 5. Mount the Engine in your routes.rb
26
+ mount MercatorMesonic::Engine => "/mercator_mesonic"
@@ -0,0 +1,14 @@
1
+ module UsersControllerExtensions
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ index_action :invoices_shipments_payments do
6
+ @invoices = MercatorMesonic::Artikelstamm.invoices_by_account_number(account_number: current_user.mesonic_account_number)
7
+ .group_by { |line| line.Rechnungsnummer }
8
+ @open_shipments = MercatorMesonic::Artikelstamm.open_shipments_by_account_number(account_number: current_user.mesonic_account_number)
9
+ .group_by { |line| line.Lieferscheinnummer }
10
+ @open_payments = MercatorMesonic::Artikelstamm.open_payments_by_account_number(account_number: current_user.mesonic_account_number)
11
+ .group_by { |line| line.Rechnungsnummer }
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,23 @@
1
+ module InventoryExtensions
2
+
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ has_many :mesonic_prices, :class_name => "MercatorMesonic::Price",
7
+ :foreign_key => "c000", :primary_key => "number"
8
+ end
9
+
10
+ # --- Instance Methods --- #
11
+
12
+ def mesonic_price(customer_id: nil )
13
+ customer = User.find(customer_id)
14
+ return nil unless customer && customer.erp_account_nr
15
+
16
+ customer_prices = self.mesonic_prices.by_customer(customer.erp_account_nr)
17
+ return customer_prices.first.price if customer_prices.any?
18
+
19
+ # HAS 20140407 Was not active in Opensteam!
20
+ # group_prices = self.mesonic_prices.by_group_through_customer(customer.erp_account_nr)
21
+ # return group_prices.first.price if customer_prices.any?
22
+ end
23
+ end
@@ -0,0 +1,82 @@
1
+ module MercatorMesonic
2
+ class Artikelstamm < Base
3
+
4
+ self.table_name = "t024"
5
+ self.primary_key = "mesoprim"
6
+
7
+ # --- Class Methods --- #
8
+ def self.invoices_by_account_number(account_number: nil)
9
+ find_by_sql(
10
+ "SELECT t025.C030 AS Konto,
11
+ t025.C032 AS Rechnungsdatum,
12
+ t025.C055 AS Rechnungsnummer,
13
+ t025.C063 AS Bestelltext,
14
+ t026.C003 AS ArtNr,
15
+ t026.C004 AS Bezeichnung,
16
+ t026.C006 AS Menge,
17
+ t026.C007 AS Einzelpreis,
18
+ t026.C031 AS Gesamtpreis
19
+ FROM t024 INNER JOIN (t025 INNER JOIN t026 ON (t025.C021 = t026.C044) AND (t025.C022 = t026.C045))
20
+ ON (t024.C002 = t026.C003) AND (t025.mesoyear = t024.mesoyear) AND (t024.mesocomp = t025.mesocomp)
21
+ WHERE (((t025.C030)='#{account_number}') AND ((t025.C032) Is Not Null) AND ( (t025.C055) Is Not Null) AND ((t025.C026)='D' Or (t025.C026)='*')
22
+ AND ((t025.C137)=2) AND ((t025.mesocomp)='2004') AND ((t026.mesocomp)='2004')
23
+ AND ((Year(t025.C032))>(Year(GetDate())-10)) AND ((t024.C002)=t024.C011))
24
+ ORDER BY t025.C032 DESC, t025.C055;"
25
+ )
26
+ end
27
+
28
+ def self.open_shipments_by_account_number(account_number: nil)
29
+ find_by_sql(
30
+ "SELECT dbo.t025.c030 AS Konto,
31
+ dbo.t025.c029 AS Lieferscheindatum,
32
+ dbo.t025.c045 AS Lieferscheinnummer,
33
+ dbo.t025.c029 AS Rechnungsdatum,
34
+ dbo.t025.c045 AS Rechnungsnummer,
35
+ dbo.t025.c063 AS Bestelltext,
36
+ dbo.t026.c003 AS ArtNr,
37
+ dbo.t026.c004 AS Bezeichnung,
38
+ dbo.t026.c006 AS Menge,
39
+ dbo.t026.c007 AS Einzelpreis,
40
+ dbo.t026.c031 AS Gesamtpreis,
41
+ dbo.t024.c002,
42
+ dbo.t024.c003
43
+ FROM dbo.t024 INNER JOIN (dbo.t025 INNER JOIN dbo.t026 ON (dbo.t025.c022 = dbo.t026.c045) AND (dbo.t025.c021 = dbo.t026.c044))
44
+ ON (dbo.t026.c003 = dbo.t024.c002) AND (dbo.t025.mesoyear = dbo.t024.mesoyear) AND (dbo.t024.mesocomp = dbo.t025.mesocomp)
45
+
46
+ WHERE (((dbo.t025.c030)='#{account_number}') AND ((dbo.t025.c025)='D' Or (dbo.t025.c025)='*')
47
+ AND ((dbo.t025.c029) Is Not Null) AND ((dbo.t025.c045) Is Not Null) AND ((dbo.t025.c137)=2) AND ((dbo.t025.mesocomp)='2004')
48
+ AND ((dbo.t026.mesocomp)='2004') AND ((Year(dbo.T025.c029))>(Year(GetDate())-3)) AND ((dbo.t025.c055) Is Null)
49
+ AND ((dbo.t024.c002)=dbo.T024.c011))
50
+
51
+ ORDER BY dbo.t025.c029 DESC, dbo.t025.c045;"
52
+ )
53
+ end
54
+
55
+ def self.open_payments_by_account_number(account_number: nil)
56
+ find_by_sql(
57
+ "SELECT dbo.t025.c030 AS Konto,
58
+ dbo.t025.c028 AS Auftragsdatum,
59
+ dbo.t025.c044 AS Auftragsnummer,
60
+ dbo.t025.c028 AS Rechnungsdatum,
61
+ dbo.t025.c044 AS Rechnungsnummer,
62
+ dbo.t025.c063 AS Bestelltext,
63
+ dbo.t026.c003 AS ArtNr,
64
+ dbo.t026.c004 AS Bezeichnung,
65
+ dbo.t026.c006 AS Menge,
66
+ dbo.t026.c007 AS Einzelpreis,
67
+ dbo.t026.c031 AS Gesamtpreis
68
+ FROM dbo.t025 INNER JOIN dbo.t026 ON (dbo.t025.c022 = dbo.t026.c045) AND (dbo.t025.c021 = dbo.t026.c044)
69
+ WHERE (((dbo.t025.c030)='#{account_number}') AND ((dbo.t025.c024)='D' Or (dbo.t025.c024)='*') AND ((dbo.t025.c028) Is Not Null)
70
+ AND ((dbo.t025.c044) Is Not Null) AND ((dbo.t025.c137)=2) AND ((dbo.t025.mesocomp)='2004') AND ((dbo.t026.mesocomp)='2004')
71
+ AND ((Year(dbo.T025.c028))>(Year(GetDate())-3)) AND ((dbo.t025.c055) Is Null) AND ((dbo.t025.c045) Is Null))
72
+ ORDER BY dbo.t025.c028 DESC, dbo.t025.c044;"
73
+ )
74
+ end
75
+
76
+ # --- Instance Methods --- #
77
+
78
+ def readonly? # prevents unintentional changes
79
+ true
80
+ end
81
+ end
82
+ end
@@ -5,7 +5,7 @@ module MercatorMesonic
5
5
  self.primary_key = "mesoprim"
6
6
 
7
7
  attr_accessible :c039, :id, :c000, :c025, :c033, :c035, :c040, :c042, :c043, :c054,
8
- :c059, :c060, :C061, :mesocomp, :mesoyear, :mesoprim
8
+ :c059, :c060, :C061, :C069, :mesocomp, :mesoyear, :mesoprim
9
9
 
10
10
  scope :mesoyear, -> { where(mesoyear: AktMandant.mesoyear) }
11
11
  scope :mesocomp, -> { where(mesocomp: AktMandant.mesocomp) }
@@ -27,6 +27,9 @@ module MercatorMesonic
27
27
  delegate :telephone, :fax, :uid_number, to: :kontenstamm_adresse
28
28
 
29
29
  # --- Class Methods --- #
30
+ def self.default_order
31
+ :mesoprim
32
+ end
30
33
 
31
34
  def self.next_kontaktenummer
32
35
  last_kontaktenummer = self.select(:c000).order(c000: :desc).limit(1).first.c000.to_i
@@ -47,6 +50,7 @@ module MercatorMesonic
47
50
  c000: kontaktenummer,
48
51
  c025: user.email_address.to_s,
49
52
  C061: kontaktenummer,
53
+ C069: 4,
50
54
  mesocomp: AktMandant.mesocomp,
51
55
  mesoyear: AktMandant.mesoyear,
52
56
  mesoprim: kontaktenummer.to_s + "-" + AktMandant.mesocomp + "-" + AktMandant.mesoyear.to_s)
@@ -54,7 +58,11 @@ module MercatorMesonic
54
58
 
55
59
  # --- Instance Methods --- #
56
60
  def full_name
57
- self.c001 + "-" + self.c002
61
+ (self.c001 or "---") + " - " + (self.c002 or "---")
62
+ end
63
+
64
+ def to_s
65
+ self.kontonummer + self.full_name
58
66
  end
59
67
  end
60
68
  end
@@ -21,6 +21,9 @@ module MercatorMesonic
21
21
  has_one :kontenstamm_adresse, :class_name => "KontenstammAdresse", :foreign_key => "C001", :primary_key => "c002"
22
22
 
23
23
  # --- Class Methods --- #
24
+ def self.default_order
25
+ :mesoprim
26
+ end
24
27
 
25
28
  def self.next_kontonummer
26
29
  last_kontonummer = self.interessenten.first.c002.split("I").last.to_i
@@ -44,7 +47,7 @@ module MercatorMesonic
44
47
  c102: kontonummer,
45
48
  c103: kontonummer,
46
49
  c127: "050-",
47
- c069: 2, ## KZ Änderungen durchgeführt ????
50
+ c069: 2,
48
51
  mesocomp: AktMandant.mesocomp,
49
52
  mesoyear: AktMandant.mesoyear,
50
53
  mesoprim: kontonummer.to_s + "-" + AktMandant.mesocomp + "-" + AktMandant.mesoyear.to_s)
@@ -59,5 +62,9 @@ module MercatorMesonic
59
62
  def interessent?
60
63
  !self.kunde?
61
64
  end
65
+
66
+ def to_s
67
+ self.name
68
+ end
62
69
  end
63
70
  end
@@ -4,7 +4,7 @@ module MercatorMesonic
4
4
  self.table_name = "T051"
5
5
  self.primary_key = "mesoprim"
6
6
 
7
- attr_accessible :firstname, :lastname, :c001, :c116, :c157, :c180, :c181, :c182, :C241, :c050,
7
+ attr_accessible :firstname, :lastname, :c001, :c053, :c116, :c157, :c180, :c181, :c182, :C241, :c050,
8
8
  :c051, :c052, :c123, :mesocomp, :mesoyear, :mesoprim
9
9
 
10
10
  scope :mesoyear, -> { where(mesoyear: AktMandant.mesoyear) }
@@ -25,9 +25,7 @@ module MercatorMesonic
25
25
  alias_attribute :email, :c116
26
26
  alias_attribute :web , :c128
27
27
 
28
- attr_accessor :name
29
-
30
- validates_presence_of :name, :on => :create
28
+ validates_presence_of :lastname, :on => :create
31
29
  validates_presence_of :street
32
30
  validates_presence_of :city
33
31
  validates_presence_of :postal
@@ -46,13 +44,22 @@ module MercatorMesonic
46
44
  [ self.tel_land, self.tel_city, self.fax ].join(" ")
47
45
  end
48
46
 
47
+ def to_s
48
+ (self.postal or "") + (self.city or "") + "," + (self.street or "")
49
+ end
50
+
49
51
  #--- Class Methods --- #
50
52
 
53
+ def self.default_order
54
+ :mesoprim
55
+ end
56
+
51
57
  def self.initialize_mesonic(billing_address: nil, kontonummer: nil)
52
58
  self.new(c157: 0, c182: 0, C241: 0,
53
59
  c050: billing_address.street,
54
60
  c051: billing_address.postalcode,
55
61
  c052: billing_address.city,
62
+ c053: billing_address.c_o,
56
63
  c123: billing_address.country,
57
64
  c180: billing_address.name.split(/\s/).first,
58
65
  c181: billing_address.name.split(/\s/).last,
@@ -60,7 +67,7 @@ module MercatorMesonic
60
67
  c116: billing_address.email_address.to_s,
61
68
  mesocomp: AktMandant.mesocomp,
62
69
  mesoyear: AktMandant.mesoyear,
63
- mesoprim: kontonummer.to_s + "-" + AktMandant.mesocomp + "-" + AktMandant.mesoyear.to_s)
70
+ mesoprim: [kontonummer.to_s, AktMandant.mesocomp, AktMandant.mesoyear.to_s].join("-") )
64
71
  end
65
72
  end
66
73
  end
@@ -17,19 +17,30 @@ module MercatorMesonic
17
17
  has_many :zahlungsarten, :class_name => "Zahlungsart", :foreign_key => "c000", :primary_key => "c077"
18
18
 
19
19
  # --- Class Methods --- #
20
+ def self.default_order
21
+ :mesoprim
22
+ end
20
23
 
21
- def self.initialize_mesonic(kontonummer: nil)
24
+ def self.initialize_mesonic(kontonummer: nil, email: nil)
22
25
  self.new(c060: 0, c062: 0, c068: 0, c070: 0, c071: 0, c072: 0, c108: 0, c109: 0, c110: 0, c111: 0,
23
- c113: 0, c120: "0", c132: 0, c133: 0, c134: 0, c148: 0, c149: 0, c150: 0, c171: 0, c183: 0,
24
- C184: 0,
26
+ c113: 0, c120: "0", c132: 0, c133: 0, c134: 0, c148: 0, c149: 0, c150: 0, c171: 0, C184: 0,
25
27
  c065: 99,
26
28
  c066: 3,
27
29
  c077: "21",
28
30
  c107: "017",
29
31
  c112: kontonummer,
32
+ c121: 1,
33
+ c183: 3, # E-Mail Fakkturen
34
+ C187: email,
30
35
  mesocomp: AktMandant.mesocomp,
31
36
  mesoyear: AktMandant.mesoyear,
32
- mesoprim: kontonummer.to_s + "-" + AktMandant.mesocomp + "-" + AktMandant.mesoyear.to_s)
37
+ mesoprim: [kontonummer.to_s, AktMandant.mesocomp, AktMandant.mesoyear.to_s].join("-"))
38
+ end
39
+
40
+ # --- Instance Methods --- #
41
+
42
+ def to_s
43
+ self.c112
33
44
  end
34
45
  end
35
46
  end
@@ -6,7 +6,7 @@ module MercatorMesonic
6
6
 
7
7
  attr_accessible :c005, :c012, :c007, :c008, :c100, :c104, :c009, :c163, :c174, :C185, :c153, :c164, :c175,
8
8
  :c176, :C186, :c067, :C189, :c058, :c124, :c135, :C190, :c057, :c059, :c114, :c136, :c115,
9
- :c137, :c006, :c061, :c063, :c151, :c173, :c177, :mesocomp, :mesoyear, :mesoprim
9
+ :c117, :c137, :c006, :c061, :c063, :c151, :c173, :mesocomp, :mesoyear, :mesoprim
10
10
 
11
11
  scope :mesoyear, -> { where(mesoyear: AktMandant.mesoyear) }
12
12
  scope :mesocomp, -> { where(mesocomp: AktMandant.mesocomp) }
@@ -18,6 +18,10 @@ module MercatorMesonic
18
18
  alias_attribute :kontonummer, :c104
19
19
 
20
20
  # --- Class Methods --- #
21
+ def self.default_order
22
+ :mesoprim
23
+ end
24
+
21
25
 
22
26
  def self.initialize_mesonic(kontonummer: nil)
23
27
  self.new(c005: 0, c006: 0, c009: 0, c012: 0, c057: 0, c058: 0, c059: 0, c061: 0, c063: 0, c067: 0,
@@ -27,11 +31,16 @@ module MercatorMesonic
27
31
  c008: "1300",
28
32
  c100: "017",
29
33
  c104: kontonummer,
30
- c177: kontonummer,
34
+ c117: kontonummer,
31
35
  c163: -1,
32
36
  mesocomp: AktMandant.mesocomp,
33
37
  mesoyear: AktMandant.mesoyear,
34
- mesoprim: kontonummer.to_s + "-" + AktMandant.mesocomp + "-" + AktMandant.mesoyear.to_s)
38
+ mesoprim: [kontonummer.to_s, AktMandant.mesocomp, AktMandant.mesoyear.to_s].join("-") )
39
+ end
40
+
41
+ # --- Instance Methods --- #
42
+ def to_s
43
+ self.kontonummer
35
44
  end
36
45
  end
37
46
  end
@@ -1,9 +1,18 @@
1
1
  module MercatorMesonic
2
2
  class Order < Base
3
3
 
4
- self.table_name = "t025"
4
+ self.table_name = "T025"
5
5
  self.primary_key = "C000"
6
6
 
7
+ attr_accessible :c000, :c004, :c005, :c006, :c007, :c008, :c010, :c011, :c012, :c013, :c014, :c017, :c019,
8
+ :c020, :c021, :c022, :c023, :c024, :c025, :c026, :c027, :c030, :c034, :c035, :c036, :c037,
9
+ :c038, :c039, :c040, :c041, :c047, :c049, :c050, :c051, :c053, :c054, :c056, :c057, :c059,
10
+ :c074, :c075, :c076, :c077, :c078, :c080, :c081, :c082, :c086, :c088, :c089, :c090, :c091,
11
+ :c092, :c093, :c094, :c095, :c096, :c097, :c098, :c099, :c100, :c102, :c103, :c104, :c105,
12
+ :c106, :c109, :c111, :c113, :c114, :c115, :c116, :c117, :c118, :c120, :c121, :c123, :c126,
13
+ :c127, :c137, :c139, :c140, :c141, :c142, :c143, :C151, :C152, :C153, :C154, :C155, :C156,
14
+ :C157, :C158, :C159, :C160, :mesocomp, :mesoyear, :mesoprim
15
+
7
16
  scope :mesoyear, -> { where(mesoyear: AktMandant.mesoyear) }
8
17
  scope :mesocomp, -> { where(mesocomp: AktMandant.mesocomp) }
9
18
  default_scope { mesocomp.mesoyear }
@@ -12,28 +21,30 @@ module MercatorMesonic
12
21
 
13
22
  def self.initialize_mesonic(order: nil, custom_order_number: nil)
14
23
 
15
- customer = order.customer
24
+ customer = order.user
16
25
  timestamp = Time.now
17
26
  mesonic_kontenstamm_fakt = customer.mesonic_kontenstamm_fakt
18
- custom_order_number |= timestamp.strftime('%y%m%d%H%M%S') + timestamp.usec # timestamp, if custom order number not provided
19
- kontonummer = @customer.mesonic_kontenstamm.try(:kunde?) ? @customer.mesonic_kontenstamm.kontonummer : "09WEB"
27
+ custom_order_number ||= timestamp.strftime('%y%m%d%H%M%S') + timestamp.usec.to_s # timestamp, if custom order number not provided
28
+ kontonummer = customer.mesonic_kontenstamm.try(:kunde?) ? customer.mesonic_kontenstamm.kontonummer : "09WEB"
20
29
  usernummer = customer.erp_contact_nr ? customer.erp_contact_nr : customer.id
21
- billing_method = order.billing_method.to_i == 1004 ?
22
- mesonic_kontenstamm_fakt.c107 : IvellioVellin::Order.payment_methods2[ :"#{order.billing_method}" ].try(:to_i) #HAS 20140325 FIXME
30
+ billing_method = order.mesonic_payment_id == 1004 ? mesonic_kontenstamm_fakt.c107 : order.mesonic_payment_id2 #HAS 20140325 FIXME
31
+
32
+ billing_state_code = Country.where{(name_de == order.billing_country) | (name_en == order.billing_country)}.first.code
33
+ shipping_state_code = Country.where{(name_de == order.shipping_country) | (name_en == order.shipping_country)}.first.code
23
34
 
24
35
  self.new(c000: kontonummer + "-" + custom_order_number,
25
36
  c004: order.billing_name,
26
- c005: order.billing_detail,
37
+ c005: order.billing_c_o,
27
38
  c006: order.billing_street,
28
39
  c007: order.billing_postalcode,
29
40
  c008: order.billing_city,
30
41
  c010: order.shipping_name,
31
- c011: order.shipping_detail,
42
+ c011: order.shipping_c_o,
32
43
  c012: order.shipping_street,
33
- c013: order.shipping_postal,
34
- c014: order.shipping_postalcode,
35
- c017: order.billing_state_code,
36
- c019: order.shipping_state_code,
44
+ c013: order.shipping_postalcode,
45
+ c014: order.shipping_city,
46
+ c017: billing_state_code,
47
+ c019: shipping_state_code,
37
48
  c020: usernummer,
38
49
  c021: kontonummer,
39
50
  c022: custom_order_number,
@@ -42,8 +53,8 @@ module MercatorMesonic
42
53
  c025: "N", # durckstatus lieferschein
43
54
  c026: "N", # druckstatus faktura
44
55
  c027: timestamp, # datum angebot
45
- c030: customer.erp_account_nr, #### konto-lieferadresse
46
- c034: mesonic_kontenstamm_fakt.belegart.c014, # #### belegart
56
+ c030: customer.mesonic_account_number, #### konto-lieferadresse
57
+ c034: mesonic_kontenstamm_fakt.belegart.c014, # belegart
47
58
  c035: mesonic_kontenstamm_fakt.c077, # belegart
48
59
  c036: mesonic_kontenstamm_fakt.c065, # vertreternummer
49
60
  c037: 0, # nettotage
@@ -54,7 +65,7 @@ module MercatorMesonic
54
65
  c047: mesonic_kontenstamm_fakt.c066, # preisliste
55
66
  c049: 0, # fw einheit
56
67
  c050: 0, # fw-faktor
57
- c051: billing_method
68
+ c051: billing_method, # ...derived above
58
69
  c053: mesonic_kontenstamm_fakt.c122, # kostentraeger
59
70
  c054: 400, # kostenstelle
60
71
  c056: 0, # skonto%2
@@ -66,11 +77,11 @@ module MercatorMesonic
66
77
  c077: 0, # FW-Notierungsflag
67
78
  c078: 0, # xml-erweiterung
68
79
  c080: 0, # filler
69
- c081: nil, #HAS 20140325 FIXME: order.billing_name2 Adresse erweitern
70
- c082: nil, #HAS 20140325 FIXME: order.shipping_name2 Adresse erweitern
80
+ c081: order.billing_detail,
81
+ c082: order.shipping_detail,
71
82
  c086: 0, # teilliefersperre
72
83
  c088: 0, # priorität
73
- c089: order.shipping_method.to_i #HAS 20140325 FIXME
84
+ c089: order.mesonic_shipping_id,
74
85
  c090: 0, # freier text 2
75
86
  c091: 0, # freier text 3
76
87
  c092: 0, # freier text 4
@@ -78,7 +89,7 @@ module MercatorMesonic
78
89
  c094: 0, # methode
79
90
  c095: 0, # ausprägung 1
80
91
  c096: 0, # ausprägung 2
81
- c097: order.billing_method.to_i #HAS 20140325 FIXME
92
+ c097: order.mesonic_payment_id, # Zahlungsart
82
93
  c098: 101, # freigabekontrolle angebot
83
94
  c099: order.sum_incl_vat, # kumulierter zahlungsbetrag
84
95
  c100: order.sum_incl_vat, # endbetrag
@@ -89,7 +100,7 @@ module MercatorMesonic
89
100
  c106: 0, # fremdwährungskurs
90
101
  c109: -1, # kontrakttyp
91
102
  c111: 2, # exim durchgeführte änderungen
92
- c113: c021, # c113: "09WEB" # konto rechnungsadresse
103
+ c113: kontonummer, # konto rechnungsadresse
93
104
  c114: 0, # anzahlungsbetrag
94
105
  c115: 101, # freigabekontrolle auftrag
95
106
  c116: 101, # freigabekontrolle lieferschein
@@ -118,14 +129,7 @@ module MercatorMesonic
118
129
  C160: 0,
119
130
  mesocomp: AktMandant.mesocomp,
120
131
  mesoyear: AktMandant.mesoyear,
121
- mesoprim: c000 + "-" + AktMandant.mesocomp + "-" + AktMandant.mesoyear )
122
- end
123
- end
124
-
125
- # --- Instance Methods --- #
126
-
127
- def readonly? # prevents unintentional changes
128
- true
132
+ mesoprim: [kontonummer, custom_order_number, AktMandant.mesocomp, AktMandant.mesoyear].join("-") )
129
133
  end
130
134
  end
131
135
  end