Commit a05fc5956ec9889a3fe0d3a569092d22aebf034b
1 parent
205a1ade
Exists in
master
and in
29 other branches
[purchase-order] Basics of shopping-cart order register
Co-authored-by: Aurélio A. Heckert <aurelio@colivre.coop.br> (ActionItem2062)
Showing
5 changed files
with
65 additions
and
0 deletions
Show diff stats
plugins/shopping_cart/db/migrate/20110825173657_create_purchase_order.rb
0 → 100644
@@ -0,0 +1,15 @@ | @@ -0,0 +1,15 @@ | ||
1 | +class CreatePurchaseOrder < ActiveRecord::Migration | ||
2 | + def self.up | ||
3 | + create_table :shopping_cart_plugin_purchase_orders do |t| | ||
4 | + t.references :customer | ||
5 | + t.references :seller | ||
6 | + t.text :data | ||
7 | + t.integer :status | ||
8 | + t.timestamps | ||
9 | + end | ||
10 | + end | ||
11 | + | ||
12 | + def self.down | ||
13 | + drop_table :shopping_cart_plugin_purchase_order | ||
14 | + end | ||
15 | +end |
plugins/shopping_cart/lib/shopping_cart_plugin.rb
plugins/shopping_cart/lib/shopping_cart_plugin/purchase_order.rb
0 → 100644
@@ -0,0 +1,37 @@ | @@ -0,0 +1,37 @@ | ||
1 | +class ShoppingCartPlugin::PurchaseOrder < Noosfero::Plugin::ActiveRecord | ||
2 | + | ||
3 | + belongs_to :customer, :class_name => "Profile" | ||
4 | + belongs_to :seller, :class_name => "Profile" | ||
5 | + | ||
6 | + validates_presence_of :status, :seller | ||
7 | + | ||
8 | + acts_as_having_settings :field => :data | ||
9 | + | ||
10 | + settings_items :products_list, :type => Array, :default => {} | ||
11 | + settings_items :customer_name, :type => String | ||
12 | + settings_items :customer_email, :type => String | ||
13 | + settings_items :customer_contact_phone, :type => String | ||
14 | + settings_items :customer_address, :type => String | ||
15 | + settings_items :customer_city, :type => String | ||
16 | + settings_items :customer_zip_code, :type => String | ||
17 | + | ||
18 | + before_create do |order| | ||
19 | + order.created_at = Time.now.utc | ||
20 | + order.updated_at = Time.now.utc | ||
21 | + end | ||
22 | + | ||
23 | + before_update do |order| | ||
24 | + order.updated_at = Time.now.utc | ||
25 | + end | ||
26 | + | ||
27 | + module Status | ||
28 | + OPENED = 0 | ||
29 | + CANCELED = 1 | ||
30 | + CONFIRMED = 2 | ||
31 | + SHIPPED = 3 | ||
32 | + | ||
33 | + def self.name | ||
34 | + [_('Opened'), _('Canceled'), _('Confirmed'), _('Shipped')] | ||
35 | + end | ||
36 | + end | ||
37 | +end |