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 |