Skip to content

Commit 710134a

Browse files
committed
Added GoodsDelivery and GoodsDeliveryLine objects and specs
1 parent 89b68ba commit 710134a

File tree

5 files changed

+107
-0
lines changed

5 files changed

+107
-0
lines changed

lib/elmas.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@
4545
require "elmas/resources/general_journal_entry"
4646
require "elmas/resources/general_journal_entry_line"
4747
require "elmas/resources/payment_condition"
48+
require "elmas/resources/goods_delivery"
49+
require "elmas/resources/goods_delivery_line"
4850

4951
module Elmas
5052
extend Config

lib/elmas/resources/goods_delivery.rb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
module Elmas
2+
class GoodsDelivery
3+
include Elmas::Resource
4+
include Elmas::SharedSalesAttributes
5+
6+
def base_path
7+
"salesorder/GoodsDeliveries"
8+
end
9+
10+
def mandatory_attributes
11+
[:goods_delivery_lines]
12+
end
13+
14+
def other_attributes
15+
SHARED_SALES_ATTRIBUTES.inject(
16+
[
17+
:delivery_account, :delivery_account_code, :delivery_account_name,
18+
:delivery_address, :delivery_contact, :delivery_contact_person_full_name,
19+
:delivery_date, :delivery_number,
20+
:shipping_method, :shipping_method_code, :shipping_method_description,
21+
:tracking_number, :warehouse, :warehouse_code, :warehouse_description
22+
],
23+
:<<
24+
)
25+
end
26+
end
27+
end
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
module Elmas
2+
class GoodsDeliveryLine
3+
# TODO: Fill out mandatory and other attributes
4+
include Elmas::Resource
5+
include Elmas::SharedSalesAttributes
6+
7+
def base_path
8+
"salesorder/GoodsDeliveryLines"
9+
end
10+
11+
def mandatory_attributes
12+
[:delivery_date, :item, :line_number, :sales_order_number]
13+
end
14+
15+
def other_attributes
16+
SHARED_LINE_ATTRIBUTES.inject(
17+
[
18+
:quantity_delivered, :quantity_ordered,
19+
:sales_order_line_id, :sales_order_line_number,
20+
:serial_numbers, :storage_location,
21+
:tracking_number, :unit_code
22+
],
23+
:<<
24+
)
25+
end
26+
27+
end
28+
end
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
require 'spec_helper'
2+
3+
describe Elmas::GoodsDelivery do
4+
it "can initialize" do
5+
GoodsDelivery = Elmas::GoodsDelivery.new
6+
expect(GoodsDelivery).to be_a(Elmas::GoodsDelivery)
7+
end
8+
9+
it "accepts attribute setter" do
10+
GoodsDelivery = Elmas::GoodsDelivery.new
11+
GoodsDelivery.tracking_number = "9999 9999 9999"
12+
expect(GoodsDelivery.tracking_number).to eq "9999 9999 9999"
13+
end
14+
15+
it "returns value for getters" do
16+
GoodsDelivery = Elmas::GoodsDelivery.new({ tracking_number: "9999 9999 9999" })
17+
expect(GoodsDelivery.tracking_number).to eq "9999 9999 9999"
18+
end
19+
20+
it "crashes and burns when getting an unset attribute" do
21+
GoodsDelivery = Elmas::GoodsDelivery.new({ tracking_number: "9999 9999 9999" })
22+
expect(GoodsDelivery.try(:shipping_method_code)).to eq nil
23+
end
24+
25+
it "does not allow to set an invalid attribute" do
26+
GoodsDelivery = Elmas::GoodsDelivery.new
27+
GoodsDelivery.airplane = "Boeing 777"
28+
expect(GoodsDelivery.airplaine).to eq nil
29+
end
30+
end
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
require 'spec_helper'
2+
3+
describe Elmas::GoodsDeliveryLine do
4+
it "can initialize" do
5+
GoodsDeliveryLine = Elmas::GoodsDeliveryLine.new
6+
expect(GoodsDeliveryLine).to be_a(Elmas::GoodsDeliveryLine)
7+
end
8+
9+
it "accepts attribute setter" do
10+
GoodsDeliveryLine = Elmas::GoodsDeliveryLine.new
11+
GoodsDeliveryLine.tracking_number = "9999 9999 9999"
12+
expect(GoodsDeliveryLine.tracking_number).to eq "9999 9999 9999"
13+
end
14+
15+
it "returns value for getters" do
16+
GoodsDeliveryLine = Elmas::GoodsDeliveryLine.new({ tracking_number: "9999 9999 9999" })
17+
expect(GoodsDeliveryLine.tracking_number).to eq "9999 9999 9999"
18+
end
19+
20+
end

0 commit comments

Comments
 (0)