Introduced invoices and deliveries. Integration (especially of deliveries) isn't finished yet.
This commit is contained in:
parent
1894f27fe0
commit
30f3d199d3
65 changed files with 1193 additions and 209 deletions
|
@ -127,5 +127,5 @@ class ApplicationController < ActionController::Base
|
|||
def send_email_messages
|
||||
Message.send_emails if Message.pending?
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
|
94
app/controllers/deliveries_controller.rb
Normal file
94
app/controllers/deliveries_controller.rb
Normal file
|
@ -0,0 +1,94 @@
|
|||
class DeliveriesController < ApplicationController
|
||||
|
||||
before_filter :find_supplier
|
||||
|
||||
# GET /deliveries
|
||||
# GET /deliveries.xml
|
||||
def index
|
||||
@deliveries = @supplier.deliveries.find(:all)
|
||||
|
||||
respond_to do |format|
|
||||
format.html # index.html.erb
|
||||
format.xml { render :xml => @deliveries }
|
||||
end
|
||||
end
|
||||
|
||||
# GET /deliveries/1
|
||||
# GET /deliveries/1.xml
|
||||
def show
|
||||
@delivery = Delivery.find(params[:id])
|
||||
|
||||
respond_to do |format|
|
||||
format.html # show.html.erb
|
||||
format.xml { render :xml => @delivery }
|
||||
end
|
||||
end
|
||||
|
||||
# GET /deliveries/new
|
||||
# GET /deliveries/new.xml
|
||||
def new
|
||||
@delivery = @supplier.deliveries.build
|
||||
|
||||
respond_to do |format|
|
||||
format.html # new.html.erb
|
||||
format.xml { render :xml => @delivery }
|
||||
end
|
||||
end
|
||||
|
||||
# GET /deliveries/1/edit
|
||||
def edit
|
||||
@delivery = Delivery.find(params[:id])
|
||||
end
|
||||
|
||||
# POST /deliveries
|
||||
# POST /deliveries.xml
|
||||
def create
|
||||
@delivery = Delivery.new(params[:delivery])
|
||||
|
||||
respond_to do |format|
|
||||
if @delivery.save
|
||||
flash[:notice] = 'Delivery was successfully created.'
|
||||
format.html { redirect_to([@supplier,@delivery]) }
|
||||
format.xml { render :xml => @delivery, :status => :created, :location => @delivery }
|
||||
else
|
||||
format.html { render :action => "new" }
|
||||
format.xml { render :xml => @delivery.errors, :status => :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# PUT /deliveries/1
|
||||
# PUT /deliveries/1.xml
|
||||
def update
|
||||
@delivery = Delivery.find(params[:id])
|
||||
|
||||
respond_to do |format|
|
||||
if @delivery.update_attributes(params[:delivery])
|
||||
flash[:notice] = 'Delivery was successfully updated.'
|
||||
format.html { redirect_to([@supplier,@delivery]) }
|
||||
format.xml { head :ok }
|
||||
else
|
||||
format.html { render :action => "edit" }
|
||||
format.xml { render :xml => @delivery.errors, :status => :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# DELETE /deliveries/1
|
||||
# DELETE /deliveries/1.xml
|
||||
def destroy
|
||||
@delivery = Delivery.find(params[:id])
|
||||
@delivery.destroy
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to(supplier_deliveries_url(@supplier)) }
|
||||
format.xml { head :ok }
|
||||
end
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def find_supplier
|
||||
@supplier = Supplier.find(params[:supplier_id]) if params[:supplier_id]
|
||||
end
|
||||
end
|
79
app/controllers/invoices_controller.rb
Normal file
79
app/controllers/invoices_controller.rb
Normal file
|
@ -0,0 +1,79 @@
|
|||
class InvoicesController < ApplicationController
|
||||
|
||||
def index
|
||||
@invoices = Invoice.find(:all, :order => "date DESC")
|
||||
|
||||
respond_to do |format|
|
||||
format.html # index.html.erb
|
||||
format.xml { render :xml => @invoices }
|
||||
end
|
||||
end
|
||||
|
||||
def show
|
||||
@invoice = Invoice.find(params[:id])
|
||||
|
||||
respond_to do |format|
|
||||
format.html # show.html.erb
|
||||
format.xml { render :xml => @invoice }
|
||||
end
|
||||
end
|
||||
|
||||
def new
|
||||
@invoice = Invoice.new
|
||||
|
||||
respond_to do |format|
|
||||
format.html # new.html.erb
|
||||
format.xml { render :xml => @invoice }
|
||||
end
|
||||
end
|
||||
|
||||
def edit
|
||||
@invoice = Invoice.find(params[:id])
|
||||
end
|
||||
|
||||
# POST /invoices
|
||||
# POST /invoices.xml
|
||||
def create
|
||||
@invoice = Invoice.new(params[:invoice])
|
||||
|
||||
respond_to do |format|
|
||||
if @invoice.save
|
||||
flash[:notice] = 'Invoice was successfully created.'
|
||||
format.html { redirect_to(@invoice) }
|
||||
format.xml { render :xml => @invoice, :status => :created, :location => @invoice }
|
||||
else
|
||||
format.html { render :action => "new" }
|
||||
format.xml { render :xml => @invoice.errors, :status => :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# PUT /invoices/1
|
||||
# PUT /invoices/1.xml
|
||||
def update
|
||||
@invoice = Invoice.find(params[:id])
|
||||
|
||||
respond_to do |format|
|
||||
if @invoice.update_attributes(params[:invoice])
|
||||
flash[:notice] = 'Invoice was successfully updated.'
|
||||
format.html { redirect_to(@invoice) }
|
||||
format.xml { head :ok }
|
||||
else
|
||||
format.html { render :action => "edit" }
|
||||
format.xml { render :xml => @invoice.errors, :status => :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# DELETE /invoices/1
|
||||
# DELETE /invoices/1.xml
|
||||
def destroy
|
||||
@invoice = Invoice.find(params[:id])
|
||||
@invoice.destroy
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to(invoices_path) }
|
||||
format.xml { head :ok }
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,19 +1,12 @@
|
|||
class SuppliersController < ApplicationController
|
||||
before_filter :authenticate_suppliers, :except => [:index, :list]
|
||||
|
||||
verify :method => :post, :only => [ :destroy, :create, :update ], :redirect_to => { :action => :list }
|
||||
|
||||
# messages
|
||||
MSG_SUPPLIER_DESTOYED = "Lieferant wurde gelöscht"
|
||||
MSG_SUPPLIER_UPDATED = 'Lieferant wurde aktualisiert'
|
||||
MSG_SUPPLIER_CREATED = "Lieferant wurde erstellt"
|
||||
|
||||
def index
|
||||
list
|
||||
render :action => 'list'
|
||||
end
|
||||
|
||||
def list
|
||||
@supplier_column_names = ["Name", "Telefon", "Email", "Kundennummer"]
|
||||
@supplier_columns = ["name", "phone", "email", "customer_number"]
|
||||
@suppliers = Supplier.find :all
|
||||
|
@ -40,7 +33,7 @@ class SuppliersController < ApplicationController
|
|||
@supplier = Supplier.new(params[:supplier])
|
||||
if @supplier.save
|
||||
flash[:notice] = MSG_SUPPLIER_CREATED
|
||||
redirect_to :action => 'list'
|
||||
redirect_to suppliers_path
|
||||
else
|
||||
render :action => 'new'
|
||||
end
|
||||
|
@ -54,19 +47,20 @@ class SuppliersController < ApplicationController
|
|||
@supplier = Supplier.find(params[:id])
|
||||
if @supplier.update_attributes(params[:supplier])
|
||||
flash[:notice] = MSG_SUPPLIER_UPDATED
|
||||
redirect_to :action => 'show', :id => @supplier
|
||||
redirect_to @supplier
|
||||
else
|
||||
render :action => 'edit'
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
Supplier.find(params[:id]).destroy
|
||||
@supplier = Supplier.find(params[:id])
|
||||
@supplier.destroy
|
||||
flash[:notice] = MSG_SUPPLIER_DESTOYED
|
||||
redirect_to :action => 'list'
|
||||
redirect_to suppliers_path
|
||||
rescue => e
|
||||
flash[:error] = _("An error has occurred: ") + e.message
|
||||
redirect_to :action => 'show', :id => params[:id]
|
||||
redirect_to @supplier
|
||||
end
|
||||
|
||||
# gives a list with all available shared_suppliers
|
||||
|
|
|
@ -84,5 +84,8 @@ module ApplicationHelper
|
|||
def title(page_title)
|
||||
content_for(:title) { page_title }
|
||||
end
|
||||
|
||||
|
||||
def tab_is_active?(tab)
|
||||
tab[:active].detect {|c| c == controller.controller_name }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,20 +1,26 @@
|
|||
# articles are the internal products which can ordered by ordergroups
|
||||
#
|
||||
# articles have the following attributes:
|
||||
# * name
|
||||
# * supplier_id
|
||||
# * article_category_id
|
||||
# * unit (string, e.g. 500gr, 1liter)
|
||||
# * note
|
||||
# * availability (boolean)
|
||||
# * net_price, decimal (net price, which will be edited by the user)
|
||||
# * gross_price, decimal (gross price (or long price), incl. tax, deposit, price markup ... see environment.rb)
|
||||
# * tax, float (the VAT, value added tax. default is 7.00 which means 7.00%)
|
||||
# * deposit, decimal (deposit, e.g. for bottles)
|
||||
# * unit_quantity, int (the internal(FC) size of trading unit)
|
||||
# * order_number, varchar (for the supplier)
|
||||
# * created_at, timestamp
|
||||
# * updated_at, timestamp
|
||||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: articles
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# name :string(255) default(""), not null
|
||||
# supplier_id :integer(4) default(0), not null
|
||||
# article_category_id :integer(4) default(0), not null
|
||||
# unit :string(255) default(""), not null
|
||||
# note :string(255)
|
||||
# availability :boolean(1) default(TRUE), not null
|
||||
# manufacturer :string(255)
|
||||
# origin :string(255)
|
||||
# shared_updated_on :datetime
|
||||
# net_price :decimal(8, 2)
|
||||
# gross_price :decimal(8, 2) default(0.0), not null
|
||||
# tax :float
|
||||
# deposit :decimal(8, 2) default(0.0)
|
||||
# unit_quantity :integer(4) default(1), not null
|
||||
# order_number :string(255)
|
||||
# created_at :datetime
|
||||
# updated_at :datetime
|
||||
#
|
||||
class Article < ActiveRecord::Base
|
||||
belongs_to :supplier
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: article_categories
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# name :string(255) default(""), not null
|
||||
# description :string(255)
|
||||
#
|
||||
|
||||
class ArticleCategory < ActiveRecord::Base
|
||||
has_many :articles
|
||||
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: assignments
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# user_id :integer(4) default(0), not null
|
||||
# task_id :integer(4) default(0), not null
|
||||
# accepted :boolean(1)
|
||||
#
|
||||
|
||||
class Assignment < ActiveRecord::Base
|
||||
|
||||
belongs_to :user
|
||||
|
|
17
app/models/delivery.rb
Normal file
17
app/models/delivery.rb
Normal file
|
@ -0,0 +1,17 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: deliveries
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# supplier_id :integer(4)
|
||||
# delivered_on :date
|
||||
# created_at :datetime
|
||||
#
|
||||
|
||||
class Delivery < ActiveRecord::Base
|
||||
|
||||
belongs_to :supplier
|
||||
|
||||
validates_presence_of :supplier_id
|
||||
end
|
|
@ -1,11 +1,18 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: financial_transactions
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# order_group_id :integer(4) default(0), not null
|
||||
# amount :decimal(8, 2) default(0.0), not null
|
||||
# note :text default(""), not null
|
||||
# user_id :integer(4) default(0), not null
|
||||
# created_on :datetime not null
|
||||
#
|
||||
|
||||
# financial transactions are the foodcoop internal financial transactions
|
||||
# only order_groups have an account balance and are happy to transfer money
|
||||
#
|
||||
# financial transaction have the following attributes:
|
||||
# * order_group_id (int)
|
||||
# * amount (decimal)
|
||||
# * note (text)
|
||||
# * created_on (datetime)
|
||||
class FinancialTransaction < ActiveRecord::Base
|
||||
belongs_to :order_group
|
||||
belongs_to :user
|
||||
|
|
|
@ -1,13 +1,29 @@
|
|||
# Groups organize the User.
|
||||
#
|
||||
# Group have the following attributes
|
||||
# * name
|
||||
# * description
|
||||
# * type (to specify, if it is a OrderGroup)
|
||||
# * role_admin, role_suppliers, role_article_eta, role_finance, role_orders
|
||||
# * weekly_task (if the group should do a job ervery week)
|
||||
# * weekday (on which weekday should the job be done? 1 means monday and so on)
|
||||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: groups
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# type :string(255) default(""), not null
|
||||
# name :string(255) default(""), not null
|
||||
# description :string(255)
|
||||
# actual_size :integer(4)
|
||||
# account_balance :decimal(8, 2) default(0.0), not null
|
||||
# account_updated :datetime
|
||||
# created_on :datetime not null
|
||||
# role_admin :boolean(1) not null
|
||||
# role_suppliers :boolean(1) not null
|
||||
# role_article_meta :boolean(1) not null
|
||||
# role_finance :boolean(1) not null
|
||||
# role_orders :boolean(1) not null
|
||||
# weekly_task :boolean(1)
|
||||
# weekday :integer(4)
|
||||
# task_name :string(255)
|
||||
# task_description :string(255)
|
||||
# task_required_users :integer(4) default(1)
|
||||
#
|
||||
|
||||
# Groups organize the User.
|
||||
# A Member gets the roles from the Group
|
||||
class Group < ActiveRecord::Base
|
||||
has_many :memberships, :dependent => :destroy
|
||||
|
|
|
@ -1,14 +1,18 @@
|
|||
# A GroupOrder represents an Order placed by an OrderGroup.
|
||||
#
|
||||
# Properties:
|
||||
# * order_id (int): association to the Order
|
||||
# * order_group_id (int): association to the OrderGroup
|
||||
# * group_order_articles: collection of associated GroupOrderArticles
|
||||
# * order_articles: collection of associated OrderArticles (through GroupOrderArticles)
|
||||
# * price (decimal): the price of this GroupOrder (either maximum price if current order or the actual price if finished order)
|
||||
# * lock_version (int): ActiveRecord optimistic locking column
|
||||
# * updated_by (User): the user who last updated this order
|
||||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: group_orders
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# order_group_id :integer(4) default(0), not null
|
||||
# order_id :integer(4) default(0), not null
|
||||
# price :decimal(8, 2) default(0.0), not null
|
||||
# lock_version :integer(4) default(0), not null
|
||||
# updated_on :datetime not null
|
||||
# updated_by_user_id :integer(4) default(0), not null
|
||||
#
|
||||
|
||||
# A GroupOrder represents an Order placed by an OrderGroup.
|
||||
class GroupOrder < ActiveRecord::Base
|
||||
|
||||
belongs_to :order
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: group_order_articles
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# group_order_id :integer(4) default(0), not null
|
||||
# order_article_id :integer(4) default(0), not null
|
||||
# quantity :integer(4) default(0), not null
|
||||
# tolerance :integer(4) default(0), not null
|
||||
# updated_on :datetime not null
|
||||
#
|
||||
|
||||
# A GroupOrderArticle stores the sum of how many items of an OrderArticle are ordered as part of a GroupOrder.
|
||||
# The chronologically order of the OrderGroup - activity are stored in GroupOrderArticleQuantity
|
||||
#
|
||||
# Properties:
|
||||
# * group_order_id (int): association to the GroupOrder
|
||||
# * order_article_id (int): association to the OrderArticle
|
||||
# * quantity (int): number of items ordered
|
||||
# * tolerance (int): number of items ordered as tolerance
|
||||
# * updated_on (timestamp): updated automatically by ActiveRecord
|
||||
#
|
||||
class GroupOrderArticle < ActiveRecord::Base
|
||||
|
||||
|
|
|
@ -1,11 +1,17 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: group_order_article_quantities
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# group_order_article_id :integer(4) default(0), not null
|
||||
# quantity :integer(4) default(0)
|
||||
# tolerance :integer(4) default(0)
|
||||
# created_on :datetime not null
|
||||
#
|
||||
|
||||
# stores the quantity, tolerance and timestamp of an GroupOrderArticle
|
||||
# Considers every update of an article-order, so may rows for one group_order_article ar possible.
|
||||
#
|
||||
# properties:
|
||||
# * group_order_article_id (int)
|
||||
# * quantity (int)
|
||||
# * tolerance (in)
|
||||
# * created_on (timestamp)
|
||||
|
||||
class GroupOrderArticleQuantity < ActiveRecord::Base
|
||||
|
||||
|
|
|
@ -1,11 +1,18 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: group_order_article_results
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# order_article_result_id :integer(4) default(0), not null
|
||||
# group_order_result_id :integer(4) default(0), not null
|
||||
# quantity :decimal(6, 3) default(0.0)
|
||||
# tolerance :integer(4)
|
||||
#
|
||||
|
||||
# An GroupOrderArticleResult represents a group-order for a single Article and its quantities,
|
||||
# according to the order quantity/tolerance.
|
||||
# The GroupOrderArticleResult is part of a finished Order, see OrderArticleResult.
|
||||
#
|
||||
# Properties:
|
||||
# * order_article_result_id (int)
|
||||
# * group_order_result_id (int): associated with OrderGroup through GroupOrderResult.group_name
|
||||
# * quantity (int)
|
||||
#
|
||||
class GroupOrderArticleResult < ActiveRecord::Base
|
||||
|
||||
|
|
|
@ -1,10 +1,15 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: group_order_results
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# order_id :integer(4) default(0), not null
|
||||
# group_name :string(255) default(""), not null
|
||||
# price :decimal(8, 2) default(0.0), not null
|
||||
#
|
||||
|
||||
# OrderGroups, which participate on a specific order will have a line
|
||||
# Properties:
|
||||
# * order_id, int
|
||||
# * group_name, the name of the group
|
||||
# * price, decimal
|
||||
# * group_order_article_results: collection of associated GroupOrderArticleResults
|
||||
#
|
||||
class GroupOrderResult < ActiveRecord::Base
|
||||
|
||||
belongs_to :order
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: invites
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# token :string(255) default(""), not null
|
||||
# expires_at :datetime not null
|
||||
# group_id :integer(4) default(0), not null
|
||||
# user_id :integer(4) default(0), not null
|
||||
# email :string(255) default(""), not null
|
||||
#
|
||||
|
||||
require 'digest/sha1'
|
||||
|
||||
# Invites are created by foodcoop users to invite a new user into the foodcoop and their order group.
|
||||
#
|
||||
# Attributes:
|
||||
# * token - the authentication token for this invite
|
||||
# * group - the group the new user is to be made a member of
|
||||
# * user - the inviting user
|
||||
# * expires_at - the time this invite expires
|
||||
# * email - the recipient's email address
|
||||
class Invite < ActiveRecord::Base
|
||||
belongs_to :user
|
||||
belongs_to :group
|
||||
|
|
28
app/models/invoice.rb
Normal file
28
app/models/invoice.rb
Normal file
|
@ -0,0 +1,28 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: invoices
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# supplier_id :integer(4)
|
||||
# delivery_id :integer(4)
|
||||
# number :string(255)
|
||||
# date :date
|
||||
# paid_on :date
|
||||
# amount :decimal(8, 2) default(0.0), not null
|
||||
# created_at :datetime
|
||||
# updated_at :datetime
|
||||
#
|
||||
|
||||
class Invoice < ActiveRecord::Base
|
||||
|
||||
belongs_to :supplier
|
||||
|
||||
validates_presence_of :supplier_id
|
||||
validates_uniqueness_of :date, :scope => [:supplier_id]
|
||||
|
||||
# Custom attribute setter that accepts decimal numbers using localized decimal separator.
|
||||
def amount=(amount)
|
||||
self[:amount] = String.delocalized_decimal(amount)
|
||||
end
|
||||
end
|
|
@ -1,3 +1,13 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: memberships
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# group_id :integer(4) default(0), not null
|
||||
# user_id :integer(4) default(0), not null
|
||||
#
|
||||
|
||||
class Membership < ActiveRecord::Base
|
||||
|
||||
belongs_to :user
|
||||
|
|
|
@ -1,13 +1,19 @@
|
|||
# A message within the foodsoft.
|
||||
#
|
||||
# * sender (User) - the sending User (might be nil if it is a system message)
|
||||
# * recipient (User) - the receiving User
|
||||
# * recipients (String) - list of all recipients of this message as User.nick/Group.name
|
||||
# * subject (string) - message subject
|
||||
# * body (string) - message body
|
||||
# * read? (boolean) - message read status
|
||||
# * email_state (integer) - email state, one of EMAIL_STATE.values
|
||||
# * created_on (timestamp) - creation timestamp
|
||||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: messages
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# sender_id :integer(4)
|
||||
# recipient_id :integer(4) default(0), not null
|
||||
# recipients :string(255) default(""), not null
|
||||
# subject :string(255) default(""), not null
|
||||
# body :text default(""), not null
|
||||
# read :boolean(1) not null
|
||||
# email_state :integer(4) default(0), not null
|
||||
# created_on :datetime not null
|
||||
#
|
||||
|
||||
class Message < ActiveRecord::Base
|
||||
belongs_to :sender, :class_name => "User", :foreign_key => "sender_id"
|
||||
belongs_to :recipient, :class_name => "User", :foreign_key => "recipient_id"
|
||||
|
|
|
@ -1,3 +1,25 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: orders
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# name :string(255) default(""), not null
|
||||
# supplier_id :integer(4) default(0), not null
|
||||
# starts :datetime not null
|
||||
# ends :datetime
|
||||
# note :string(255)
|
||||
# finished :boolean(1) not null
|
||||
# booked :boolean(1) not null
|
||||
# lock_version :integer(4) default(0), not null
|
||||
# updated_by_user_id :integer(4)
|
||||
# invoice_amount :decimal(8, 2) default(0.0), not null
|
||||
# deposit :decimal(8, 2) default(0.0)
|
||||
# deposit_credit :decimal(8, 2) default(0.0)
|
||||
# invoice_number :string(255)
|
||||
# invoice_date :string(255)
|
||||
#
|
||||
|
||||
class Order < ActiveRecord::Base
|
||||
has_many :order_articles, :dependent => :destroy
|
||||
has_many :articles, :through => :order_articles
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
# An OrderArticle represents a single Article that is part of an Order.
|
||||
#
|
||||
# Properties:
|
||||
# * order_id (int): association to the Order
|
||||
# * article_id (int): association to the Article
|
||||
# * quantity (int): number of items ordered by all OrderGroups for this order
|
||||
# * tolerance (int): number of items ordered as tolerance by all OrderGroups for this order
|
||||
# * units_to_order (int): number of packaging units to be ordered according to the order quantity/tolerance
|
||||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: order_articles
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# order_id :integer(4) default(0), not null
|
||||
# article_id :integer(4) default(0), not null
|
||||
# quantity :integer(4) default(0), not null
|
||||
# tolerance :integer(4) default(0), not null
|
||||
# units_to_order :integer(4) default(0), not null
|
||||
# lock_version :integer(4) default(0), not null
|
||||
#
|
||||
|
||||
# An OrderArticle represents a single Article that is part of an Order.
|
||||
class OrderArticle < ActiveRecord::Base
|
||||
|
||||
belongs_to :order
|
||||
|
|
|
@ -1,19 +1,24 @@
|
|||
# An OrderArticleResult represents a single Article that is part of a *finished* Order.
|
||||
#
|
||||
# Properties:
|
||||
# * order_id (int): association to the Order
|
||||
# * name (string): article name
|
||||
# * unit (string)
|
||||
# * note (string): for post-editing the ordered article. informations like "new tax is ..."
|
||||
# * net_price (decimal): the net price
|
||||
# * gross_price (decimal): incl tax, deposit, fc-markup
|
||||
# * tax (int)
|
||||
# * deposit (decimal)
|
||||
# * fc_markup (float)
|
||||
# * order_number (string)
|
||||
# * unit_quantity (int): the internal(FC) size of trading unit
|
||||
# * units_to_order (int): number of packaging units to be ordered according to the order quantity/tolerance
|
||||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: order_article_results
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# order_id :integer(4) default(0), not null
|
||||
# name :string(255) default(""), not null
|
||||
# unit :string(255) default(""), not null
|
||||
# note :string(255)
|
||||
# net_price :decimal(8, 2) default(0.0)
|
||||
# gross_price :decimal(8, 2) default(0.0), not null
|
||||
# tax :float default(0.0), not null
|
||||
# deposit :decimal(8, 2) default(0.0)
|
||||
# fc_markup :float default(0.0), not null
|
||||
# order_number :string(255)
|
||||
# unit_quantity :integer(4) default(0), not null
|
||||
# units_to_order :decimal(6, 3) default(0.0), not null
|
||||
#
|
||||
|
||||
# An OrderArticleResult represents a single Article that is part of a *finished* Order.
|
||||
class OrderArticleResult < ActiveRecord::Base
|
||||
belongs_to :order
|
||||
has_many :group_order_article_results, :dependent => :destroy
|
||||
|
|
|
@ -1,3 +1,28 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: groups
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# type :string(255) default(""), not null
|
||||
# name :string(255) default(""), not null
|
||||
# description :string(255)
|
||||
# actual_size :integer(4)
|
||||
# account_balance :decimal(8, 2) default(0.0), not null
|
||||
# account_updated :datetime
|
||||
# created_on :datetime not null
|
||||
# role_admin :boolean(1) not null
|
||||
# role_suppliers :boolean(1) not null
|
||||
# role_article_meta :boolean(1) not null
|
||||
# role_finance :boolean(1) not null
|
||||
# role_orders :boolean(1) not null
|
||||
# weekly_task :boolean(1)
|
||||
# weekday :integer(4)
|
||||
# task_name :string(255)
|
||||
# task_description :string(255)
|
||||
# task_required_users :integer(4) default(1)
|
||||
#
|
||||
|
||||
# OrderGroups can order, they are "children" of the class Group
|
||||
#
|
||||
# OrderGroup have the following attributes, in addition to Group
|
||||
|
|
|
@ -1,3 +1,27 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: articles
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# name :string(255) not null
|
||||
# supplier_id :integer(4) not null
|
||||
# number :string(255)
|
||||
# note :string(255)
|
||||
# manufacturer :string(255)
|
||||
# origin :string(255)
|
||||
# unit :string(255)
|
||||
# price :decimal(8, 2) default(0.0), not null
|
||||
# tax :decimal(3, 1) default(7.0), not null
|
||||
# deposit :decimal(8, 2) default(0.0), not null
|
||||
# unit_quantity :decimal(4, 1) default(1.0), not null
|
||||
# scale_quantity :decimal(4, 2)
|
||||
# scale_price :decimal(8, 2)
|
||||
# created_on :datetime
|
||||
# updated_on :datetime
|
||||
# list :string(255)
|
||||
#
|
||||
|
||||
class SharedArticle < ActiveRecord::Base
|
||||
|
||||
# connect to database from sharedLists-Application
|
||||
|
|
|
@ -1,3 +1,23 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: suppliers
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# name :string(255) not null
|
||||
# address :string(255) not null
|
||||
# phone :string(255) not null
|
||||
# phone2 :string(255)
|
||||
# fax :string(255)
|
||||
# email :string(255)
|
||||
# url :string(255)
|
||||
# delivery_days :string(255)
|
||||
# note :string(255)
|
||||
# created_on :datetime
|
||||
# updated_on :datetime
|
||||
# lists :string(255)
|
||||
#
|
||||
|
||||
class SharedSupplier < ActiveRecord::Base
|
||||
|
||||
# connect to database from sharedLists-Application
|
||||
|
|
|
@ -1,6 +1,31 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: suppliers
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# name :string(255) default(""), not null
|
||||
# address :string(255) default(""), not null
|
||||
# phone :string(255) default(""), not null
|
||||
# phone2 :string(255)
|
||||
# fax :string(255)
|
||||
# email :string(255)
|
||||
# url :string(255)
|
||||
# contact_person :string(255)
|
||||
# customer_number :string(255)
|
||||
# delivery_days :string(255)
|
||||
# order_howto :string(255)
|
||||
# note :string(255)
|
||||
# shared_supplier_id :integer(4)
|
||||
# min_order_quantity :string(255)
|
||||
#
|
||||
|
||||
class Supplier < ActiveRecord::Base
|
||||
has_many :articles, :dependent => :destroy
|
||||
has_many :orders
|
||||
has_many :deliveries
|
||||
has_many :invoices
|
||||
|
||||
attr_accessible :name, :address, :phone, :phone2, :fax, :email, :url, :contact_person, :customer_number, :delivery_days, :order_howto, :note, :shared_supplier_id, :min_order_quantity
|
||||
|
||||
validates_length_of :name, :in => 4..30
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: tasks
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# name :string(255) default(""), not null
|
||||
# description :string(255)
|
||||
# due_date :date
|
||||
# done :boolean(1)
|
||||
# group_id :integer(4)
|
||||
# assigned :boolean(1)
|
||||
# created_on :datetime not null
|
||||
# updated_on :datetime not null
|
||||
# required_users :integer(4) default(1)
|
||||
#
|
||||
|
||||
class Task < ActiveRecord::Base
|
||||
has_many :assignments, :dependent => :destroy
|
||||
has_many :users, :through => :assignments
|
||||
|
|
|
@ -1,13 +1,24 @@
|
|||
require 'digest/sha1'
|
||||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: users
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# nick :string(255) default(""), not null
|
||||
# password_hash :string(255) default(""), not null
|
||||
# password_salt :string(255) default(""), not null
|
||||
# first_name :string(255) default(""), not null
|
||||
# last_name :string(255) default(""), not null
|
||||
# email :string(255) default(""), not null
|
||||
# phone :string(255)
|
||||
# address :string(255)
|
||||
# created_on :datetime not null
|
||||
# reset_password_token :string(255)
|
||||
# reset_password_expires :datetime
|
||||
# last_login :datetime
|
||||
#
|
||||
|
||||
# A foodsoft user.
|
||||
#
|
||||
# * memberships
|
||||
# * groups
|
||||
# * first_name, last_name, email, phone, address
|
||||
# * nick
|
||||
# * password (stored as a hash)
|
||||
# * settings (user properties via acts_as_configurable plugin)
|
||||
require 'digest/sha1'
|
||||
# specific user rights through memberships (see Group)
|
||||
class User < ActiveRecord::Base
|
||||
has_many :memberships, :dependent => :destroy
|
||||
|
@ -173,4 +184,4 @@ class User < ActiveRecord::Base
|
|||
self.groups.find(:all, :conditions => {:type => ""})
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
|
17
app/views/deliveries/edit.html.erb
Normal file
17
app/views/deliveries/edit.html.erb
Normal file
|
@ -0,0 +1,17 @@
|
|||
<h1>Editing delivery</h1>
|
||||
|
||||
<% form_for([@supplier,@delivery]) do |f| %>
|
||||
<%= f.error_messages %>
|
||||
<%= f.hidden_field :supplier_id %>
|
||||
|
||||
<p>
|
||||
<%= f.label :delivered_on %><br />
|
||||
<%= f.date_select :delivered_on %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.submit "Update" %>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
<%= link_to 'Show', [@supplier,@delivery] %> |
|
||||
<%= link_to 'Back', supplier_deliveries_path(@supplier) %>
|
22
app/views/deliveries/index.html.erb
Normal file
22
app/views/deliveries/index.html.erb
Normal file
|
@ -0,0 +1,22 @@
|
|||
<% title "#{@supplier.name}/deliveries" %>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Delivered on</th>
|
||||
<th>Invoice</th>
|
||||
</tr>
|
||||
|
||||
<% for delivery in @deliveries %>
|
||||
<tr>
|
||||
<td><%=h delivery.delivered_on %></td>
|
||||
<td><%=h "invoice ..." %></td>
|
||||
<td><%= link_to 'Show', [@supplier, delivery] %></td>
|
||||
<td><%= link_to 'Edit', edit_supplier_delivery_path(@supplier,delivery) %></td>
|
||||
<td><%= link_to 'Destroy', [@supplier,delivery], :confirm => 'Are you sure?', :method => :delete %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</table>
|
||||
|
||||
<br />
|
||||
|
||||
<%= link_to 'New delivery', new_supplier_delivery_path(@supplier) %>
|
16
app/views/deliveries/new.html.erb
Normal file
16
app/views/deliveries/new.html.erb
Normal file
|
@ -0,0 +1,16 @@
|
|||
<h1>New delivery</h1>
|
||||
|
||||
<% form_for([@supplier,@delivery]) do |f| %>
|
||||
<%= f.error_messages %>
|
||||
<%= f.hidden_field :supplier_id %>
|
||||
|
||||
<p>
|
||||
<%= f.label :delivered_on %><br />
|
||||
<%= f.date_select :delivered_on %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.submit "Create" %>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
<%= link_to 'Back', supplier_deliveries_path(@supplier) %>
|
13
app/views/deliveries/show.html.erb
Normal file
13
app/views/deliveries/show.html.erb
Normal file
|
@ -0,0 +1,13 @@
|
|||
<p>
|
||||
<b>Supplier:</b>
|
||||
<%=h @delivery.supplier_id %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Delivered on:</b>
|
||||
<%=h @delivery.delivered_on %>
|
||||
</p>
|
||||
|
||||
|
||||
<%= link_to 'Edit', edit_supplier_delivery_path(@supplier,@delivery) %> |
|
||||
<%= link_to 'Back', supplier_deliveries_path(@supplier) %>
|
36
app/views/invoices/edit.html.erb
Normal file
36
app/views/invoices/edit.html.erb
Normal file
|
@ -0,0 +1,36 @@
|
|||
<h1>Editing invoice</h1>
|
||||
|
||||
<% form_for(@invoice) do |f| %>
|
||||
<%= f.error_messages %>
|
||||
|
||||
<p>
|
||||
<%= f.label :supplier_id %><br />
|
||||
<%= f.select :supplier_id, Supplier.all.collect { |s| [s.name, s.id] } %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :number %><br />
|
||||
<%= f.text_field :number %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :date %><br />
|
||||
<%= f.date_select :date %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :paid_on %><br />
|
||||
<%= f.date_select :paid_on, :include_blank => true %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :amount %><br />
|
||||
<%= f.text_field :amount %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :note %><br />
|
||||
<%= f.text_area :note %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.submit "Update" %>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
<%= link_to 'Show', @invoice %> |
|
||||
<%= link_to 'Back', invoices_path %>
|
32
app/views/invoices/index.html.erb
Normal file
32
app/views/invoices/index.html.erb
Normal file
|
@ -0,0 +1,32 @@
|
|||
<% title "Invoices" %>
|
||||
|
||||
<table class="list" style="width:70em">
|
||||
<tr>
|
||||
<th>Supplier</th>
|
||||
<th>Number</th>
|
||||
<th>Date</th>
|
||||
<th>Paid on</th>
|
||||
<th>Amount</th>
|
||||
<th>Delivery</th>
|
||||
<th>Note</th>
|
||||
</tr>
|
||||
|
||||
<% for invoice in @invoices %>
|
||||
<tr>
|
||||
<td><%=h invoice.supplier.name %></td>
|
||||
<td><%=h invoice.number %></td>
|
||||
<td><%= invoice.date %></td>
|
||||
<td><%= invoice.paid_on %></td>
|
||||
<td><%= invoice.amount %></td>
|
||||
<td><%=h invoice.delivery_id %></td>
|
||||
<td><%=h truncate(invoice.note) %></td>
|
||||
<td><%= link_to 'Show', invoice %></td>
|
||||
<td><%= link_to 'Edit', edit_invoice_path(invoice) %></td>
|
||||
<td><%= link_to 'Destroy', invoice, :confirm => 'Are you sure?', :method => :delete %></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</table>
|
||||
|
||||
<br />
|
||||
|
||||
<%= link_to 'New invoice', new_invoice_path %>
|
35
app/views/invoices/new.html.erb
Normal file
35
app/views/invoices/new.html.erb
Normal file
|
@ -0,0 +1,35 @@
|
|||
<h1>New invoice</h1>
|
||||
|
||||
<% form_for(@invoice) do |f| %>
|
||||
<%= f.error_messages %>
|
||||
|
||||
<p>
|
||||
<%= f.label :supplier_id %><br />
|
||||
<%= f.select :supplier_id, Supplier.all.collect { |s| [s.name, s.id] } %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :number %><br />
|
||||
<%= f.text_field :number %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :date %><br />
|
||||
<%= f.date_select :date %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :paid_on %><br />
|
||||
<%= f.date_select :paid_on, :include_blank => true %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :amount %><br />
|
||||
<%= f.text_field :amount %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.label :note %><br />
|
||||
<%= f.text_area :note %>
|
||||
</p>
|
||||
<p>
|
||||
<%= f.submit "Create" %>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
<%= link_to 'Back', invoices_path %>
|
40
app/views/invoices/show.html.erb
Normal file
40
app/views/invoices/show.html.erb
Normal file
|
@ -0,0 +1,40 @@
|
|||
<% title "Show invoice #{@invoice.number}" %>
|
||||
|
||||
<p>
|
||||
<b>Supplier:</b>
|
||||
<%=h @invoice.supplier.name %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Delivery:</b>
|
||||
<%=h @invoice.delivery_id %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Number:</b>
|
||||
<%=h @invoice.number %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Date:</b>
|
||||
<%=h @invoice.date %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Paid on:</b>
|
||||
<%=h @invoice.paid_on %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Amount:</b>
|
||||
<%=h @invoice.amount %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Note:</b>
|
||||
<%=h @invoice.note %>
|
||||
</p>
|
||||
|
||||
|
||||
<%= link_to 'Edit', edit_invoice_path(@invoice) %> |
|
||||
<%= link_to 'Back', invoices_path %>
|
61
app/views/layouts/_main_tabnav.html.erb
Normal file
61
app/views/layouts/_main_tabnav.html.erb
Normal file
|
@ -0,0 +1,61 @@
|
|||
<%
|
||||
u = @current_user
|
||||
tabs = [
|
||||
{ :name => "Start", :url => root_path, :active => ["index", "messages", "tasks"],
|
||||
:subnav => [
|
||||
{ :name => "Members", :url => "/index/foodcoop_members"},
|
||||
{ :name => "Workgroups", :url => "/index/workgroups"},
|
||||
{ :name => "Tasks", :url => "/tasks"},
|
||||
{ :name => "Messages", :url => "/messages/inbox"},
|
||||
{ :name => "My Ordergroup", :url => my_order_group_path},
|
||||
{ :name => "My Ordergroup", :url => my_profile_path}
|
||||
]
|
||||
},
|
||||
{ :name => "Orders", :url => "/ordering", :active => ["orders", "ordering"],
|
||||
:subnav => [
|
||||
{ :name => "Order", :url => "/ordering" },
|
||||
{ :name => "My orders", :url => "/ordering/myOrders" },
|
||||
{ :name => "Manage orders", :url => "/orders", :access? => (u.role_orders?) }
|
||||
]
|
||||
},
|
||||
{ :name => "Articles", :url => "/articles", :active => ["articles", "suppliers"],
|
||||
:access? => (u.role_article_meta? || u.role_suppliers?),
|
||||
:subnav => [
|
||||
{ :name => "Show articles", :url => "/articles/list" },
|
||||
{ :name => "Categories", :url => "/articles" },
|
||||
{ :name => "Suppliers", :url => suppliers_path, :access? => (u.role_suppliers?) }
|
||||
]
|
||||
},
|
||||
{ :name => "Finance", :url => "/finance", :active => ["finance", "invoices"],
|
||||
:access? => (u.role_finance?),
|
||||
:subnav => [
|
||||
{ :name => "Ordergroups", :url => "/finance/listOrdergroups" },
|
||||
{ :name => "Balance orders", :url => "/finance/listOrders" },
|
||||
{ :name => "Invoices", :url => invoices_path }
|
||||
]
|
||||
},
|
||||
{ :name => "Administration", :url => "/admin", :active => ["admin"],
|
||||
:access? => (u.role_admin?),
|
||||
:subnav => [
|
||||
{ :name => "Users", :url => "/admin/listUsers" },
|
||||
{ :name => "Groups", :url => "/admin/listGroups" }
|
||||
]
|
||||
}
|
||||
]
|
||||
-%>
|
||||
<ul>
|
||||
<% for tab in tabs -%>
|
||||
<% unless tab[:access?] and tab[:access?] == false %>
|
||||
<li class="<%= 'current' if tab_is_active?(tab) %>">
|
||||
<%= link_to tab[:name], tab[:url] %>
|
||||
<ul>
|
||||
<% for subtab in tab[:subnav] -%>
|
||||
<% unless subtab[:access?] and subtab[:access?] == false %>
|
||||
<li><%= link_to subtab[:name], subtab[:url] %></li>
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
</ul>
|
||||
</li>
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
</ul>
|
|
@ -18,7 +18,7 @@
|
|||
%a{:href => "/"}
|
||||
<span>food</span>soft
|
||||
%span{:style => "color:white; font-size:45%; letter-spacing: -1px;"}= APP_CONFIG[:name]
|
||||
#nav= render :partial => 'shared/nav'
|
||||
#nav= render :partial => 'layouts/main_tabnav'
|
||||
|
||||
#main
|
||||
#content
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
%ul
|
||||
// Startarea
|
||||
%li{:class => ("current" if controller.controller_name == 'index' || controller.controller_name == 'messages' || controller.controller_name == 'tasks')}
|
||||
= link_to _('Startpage'), {:controller => 'index', :action => 'index'}, {:title => _('The Startpage. A good Startpoint.')}
|
||||
%ul
|
||||
%li= link_to _("Members"), {:controller => "index", :action => "foodcoop_members"}, {:title => _('Here you find a List with all Foodcoop members.')}
|
||||
%li= link_to _("Workgroups"), {:controller => "index", :action => "workgroups"}, {:title => _('Here you find all Workgroups. For Example the sortinggroup with all their members.')}
|
||||
%li= link_to _("Tasks"), {:controller => "tasks"}, {:title => _('Here you see the tasks. Please do something for the foodcoop!')}
|
||||
- unread = Message.find_all_by_recipient_id_and_read(@current_user.id, false)
|
||||
%li= link_to _("Messages") + "#{unread.nil? || unread.empty? ? '' : "(#{unread.size})"}", {:controller => 'messages', :action => 'inbox'}, {:title => _('Here you can read/write Messages from/to other foodcoop members')}
|
||||
- if @current_user.find_ordergroup
|
||||
%li= link_to _("My ordergroup"), {:controller => 'index', :action => 'myOrdergroup'}, {:title => _('Here are informations about your ordergroup. You can also see your accounts current')}
|
||||
%li= link_to _("My Profile"), my_profile_path, {:title => _('Here are your personal Settings')}
|
||||
|
||||
// Orders
|
||||
- hasOrderGroup = !@current_user.find_ordergroup.nil?
|
||||
- hasOrdersRole = @current_user.role_orders?
|
||||
|
||||
- if hasOrderGroup || hasOrdersRole
|
||||
%li{:class => ("current" if controller.controller_name == 'orders' || controller.controller_name == 'ordering')}
|
||||
= hasOrderGroup ? link_to( _("Orders"), :controller => 'ordering') : link_to('Bestellungen', :controller => 'orders')
|
||||
%ul
|
||||
- if hasOrderGroup
|
||||
%li= link_to _("Order"), :controller => "ordering"
|
||||
%li= link_to _("My orders"), :controller => 'ordering', :action => "myOrders"
|
||||
- if hasOrdersRole
|
||||
%li= link_to _("Manage orders"), :controller => 'orders'
|
||||
|
||||
// Articles, Suppliers
|
||||
- if @current_user.role_article_meta? || @current_user.role_suppliers?
|
||||
%li{:class => ("current" if controller.controller_name == 'articles' || controller.controller_name == 'suppliers')}
|
||||
= link_to _("Articles"), :controller => 'articles', :action => 'index'
|
||||
%ul
|
||||
%li= link_to _("Show articles"), :controller => 'articles', :action => 'list'
|
||||
%li= link_to _("Categories"), :controller => 'articles', :action => 'index'
|
||||
%li= link_to _("Suppliers"), :controller => 'suppliers', :action => 'list'
|
||||
|
||||
// Finance
|
||||
- if @current_user.role_finance?
|
||||
%li{:class => ("current" if controller.controller_name == 'finance')}
|
||||
= link_to _("Finance"), :controller => 'finance'
|
||||
%ul
|
||||
%li= link_to _("Ordergroups"), :controller => 'finance', :action => 'listOrdergroups'
|
||||
%li= link_to _("Balance orders"), :controller => 'finance', :action => 'listOrders'
|
||||
|
||||
// Administration
|
||||
- if @current_user.role_admin?
|
||||
%li{:class => ("current" if controller.controller_name == 'admin')}
|
||||
= link_to _("Administration"), :controller => 'admin'
|
||||
%ul
|
||||
%li= link_to _("User"), :controller => 'admin', :action => 'listUsers'
|
||||
%li= link_to _("Groups"), :controller => 'admin', :action => 'listGroups'
|
|
@ -1,6 +1,5 @@
|
|||
= error_messages_for 'supplier'
|
||||
|
||||
<!--[form:supplier]-->
|
||||
- if @supplier.shared_supplier
|
||||
%p Lieferantin wird mit externer Datenbank verknüpft.
|
||||
.edit_form{:style=>"width:30em"}
|
||||
|
@ -58,5 +57,4 @@
|
|||
%label{:for => "supplier_min_order_quantity"} Mindestbestellmenge
|
||||
%td= @f.text_field :min_order_quantity
|
||||
= @f.hidden_field :shared_supplier_id
|
||||
<!--[eoform:supplier]-->
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
%h1 Lieferantin bearbeiten
|
||||
- form_for :supplier, @supplier, :url => {:action => 'update', :id => @supplier} do |@f|
|
||||
- form_for @supplier do |@f|
|
||||
= render :partial => 'form'
|
||||
= submit_tag 'Speichern'
|
||||
|
|
||||
= link_to 'Abbrechen', :action => 'list'
|
||||
= link_to 'Abbrechen', suppliers_path
|
|
@ -1,11 +1,12 @@
|
|||
%h1 Lieferantinnen
|
||||
- title "LieferantInnen"
|
||||
|
||||
- if @current_user.role_suppliers?
|
||||
%p
|
||||
%i
|
||||
Erstelle eine
|
||||
= link_to 'neue Lieferantin', :action => 'new'
|
||||
= link_to 'neue Lieferantin', new_supplier_path
|
||||
oder
|
||||
= link_to 'importiere', :action => 'shared_suppliers'
|
||||
= link_to 'importiere', shared_suppliers_suppliers_path
|
||||
aus der externen ArtikelDatenbank.
|
||||
|
||||
.left_column{:style => "width:100%"}
|
||||
|
@ -22,7 +23,7 @@
|
|||
- for column in @supplier_columns
|
||||
%td
|
||||
- if column == 'name'
|
||||
= link_to supplier[column], :action => 'show', :id => supplier
|
||||
= link_to supplier[column], supplier
|
||||
- else
|
||||
=h supplier[column]
|
||||
%td= link_to 'Artikel anzeigen', :controller => 'articles', :action => 'list', :id => supplier
|
|
@ -1,7 +1,7 @@
|
|||
%h1 Neue Lieferantinn
|
||||
- form_for :supplier, @supplier, :url => {:action => 'create'} do |@f|
|
||||
- form_for @supplier do |@f|
|
||||
= render :partial => 'form'
|
||||
= submit_tag "Speichern"
|
||||
|
|
||||
= link_to 'Abbrechen', :action => 'list'
|
||||
= link_to 'Abbrechen', suppliers_path
|
||||
|
|
@ -24,4 +24,4 @@
|
|||
%td=h shared_supplier.note
|
||||
%td=h shared_supplier.delivery_days
|
||||
%td= image_tag("icon_message.gif", :size => "16x16", :border => "0",:alt => "abonniert!") if shared_supplier.supplier
|
||||
%td= link_to "abonnieren", :action => "new", :shared_supplier_id => shared_supplier unless shared_supplier.supplier
|
||||
%td= link_to "abonnieren", new_supplier_path(:shared_supplier_id => shared_supplier) unless shared_supplier.supplier
|
|
@ -47,8 +47,8 @@
|
|||
%td{:style => "font-weight:bold"}=h @supplier.min_order_quantity
|
||||
%br/
|
||||
- if @current_user.role_suppliers?
|
||||
= link_to 'Bearbeiten', :action => 'edit', :id => @supplier
|
||||
= link_to 'Bearbeiten', edit_supplier_path(@supplier)
|
||||
|
|
||||
= link_to 'Löschen', { :action => 'destroy', :id => @supplier }, :confirm => 'Bist Du sicher?', :method => "post"
|
||||
= link_to 'Löschen', @supplier, :confirm => 'Bist Du sicher?', :method => :delete
|
||||
|
|
||||
= link_to 'zurück', :action => 'list'
|
||||
= link_to 'zurück', suppliers_path
|
|
@ -1,6 +1,12 @@
|
|||
ActionController::Routing::Routes.draw do |map|
|
||||
|
||||
map.resources :invoices
|
||||
map.resources :suppliers,
|
||||
:has_many => [:deliveries],
|
||||
:collection => { :shared_suppliers => :get }
|
||||
|
||||
map.my_profile 'my_profile', :controller => 'index', :action => 'myProfile'
|
||||
map.my_order_group 'my_order_group', :controller => 'index', :action => 'myOrdergroup'
|
||||
|
||||
map.root :controller => 'index'
|
||||
|
||||
|
|
19
db/migrate/20090102155714_create_invoices.rb
Normal file
19
db/migrate/20090102155714_create_invoices.rb
Normal file
|
@ -0,0 +1,19 @@
|
|||
class CreateInvoices < ActiveRecord::Migration
|
||||
def self.up
|
||||
create_table :invoices do |t|
|
||||
t.integer :supplier_id
|
||||
t.integer :delivery_id
|
||||
t.string :number
|
||||
t.date :date
|
||||
t.date :paid_on
|
||||
t.text :note
|
||||
t.decimal :amount, :null => false, :precision => 8, :scale => 2, :default => 0.0
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
|
||||
def self.down
|
||||
drop_table :invoices
|
||||
end
|
||||
end
|
13
db/migrate/20090102171850_create_deliveries.rb
Normal file
13
db/migrate/20090102171850_create_deliveries.rb
Normal file
|
@ -0,0 +1,13 @@
|
|||
class CreateDeliveries < ActiveRecord::Migration
|
||||
def self.up
|
||||
create_table :deliveries do |t|
|
||||
t.integer :supplier_id
|
||||
t.date :delivered_on
|
||||
t.datetime :created_at
|
||||
end
|
||||
end
|
||||
|
||||
def self.down
|
||||
drop_table :deliveries
|
||||
end
|
||||
end
|
26
db/schema.rb
26
db/schema.rb
|
@ -1,5 +1,5 @@
|
|||
# This file is auto-generated from the current state of the database. Instead of editing this file,
|
||||
# please use the migrations feature of ActiveRecord to incrementally modify your database, and
|
||||
# please use the migrations feature of Active Record to incrementally modify your database, and
|
||||
# then regenerate this schema definition.
|
||||
#
|
||||
# Note that this schema.rb definition is the authoritative source for your database schema. If you need
|
||||
|
@ -9,7 +9,7 @@
|
|||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 25) do
|
||||
ActiveRecord::Schema.define(:version => 20090102155714) do
|
||||
|
||||
create_table "article_categories", :force => true do |t|
|
||||
t.string "name", :default => "", :null => false
|
||||
|
@ -93,8 +93,8 @@ ActiveRecord::Schema.define(:version => 25) do
|
|||
t.integer "tolerance"
|
||||
end
|
||||
|
||||
add_index "group_order_article_results", ["order_article_result_id"], :name => "index_group_order_article_results_on_order_article_result_id"
|
||||
add_index "group_order_article_results", ["group_order_result_id"], :name => "index_group_order_article_results_on_group_order_result_id"
|
||||
add_index "group_order_article_results", ["order_article_result_id"], :name => "index_group_order_article_results_on_order_article_result_id"
|
||||
|
||||
create_table "group_order_articles", :force => true do |t|
|
||||
t.integer "group_order_id", :default => 0, :null => false
|
||||
|
@ -157,6 +157,18 @@ ActiveRecord::Schema.define(:version => 25) do
|
|||
|
||||
add_index "invites", ["token"], :name => "index_invites_on_token"
|
||||
|
||||
create_table "invoices", :force => true do |t|
|
||||
t.integer "supplier_id"
|
||||
t.integer "delivery_id"
|
||||
t.string "number"
|
||||
t.date "date"
|
||||
t.date "paid_on"
|
||||
t.text "note"
|
||||
t.decimal "amount", :precision => 8, :scale => 2, :default => 0.0, :null => false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
end
|
||||
|
||||
create_table "memberships", :force => true do |t|
|
||||
t.integer "group_id", :default => 0, :null => false
|
||||
t.integer "user_id", :default => 0, :null => false
|
||||
|
@ -175,8 +187,8 @@ ActiveRecord::Schema.define(:version => 25) do
|
|||
t.datetime "created_on", :null => false
|
||||
end
|
||||
|
||||
add_index "messages", ["sender_id"], :name => "index_messages_on_sender_id"
|
||||
add_index "messages", ["recipient_id"], :name => "index_messages_on_recipient_id"
|
||||
add_index "messages", ["sender_id"], :name => "index_messages_on_sender_id"
|
||||
|
||||
create_table "order_article_results", :force => true do |t|
|
||||
t.integer "order_id", :default => 0, :null => false
|
||||
|
@ -223,9 +235,9 @@ ActiveRecord::Schema.define(:version => 25) do
|
|||
t.string "invoice_date"
|
||||
end
|
||||
|
||||
add_index "orders", ["starts"], :name => "index_orders_on_starts"
|
||||
add_index "orders", ["ends"], :name => "index_orders_on_ends"
|
||||
add_index "orders", ["finished"], :name => "index_orders_on_finished"
|
||||
add_index "orders", ["starts"], :name => "index_orders_on_starts"
|
||||
|
||||
create_table "suppliers", :force => true do |t|
|
||||
t.string "name", :default => "", :null => false
|
||||
|
@ -258,8 +270,8 @@ ActiveRecord::Schema.define(:version => 25) do
|
|||
t.integer "required_users", :default => 1
|
||||
end
|
||||
|
||||
add_index "tasks", ["name"], :name => "index_tasks_on_name"
|
||||
add_index "tasks", ["due_date"], :name => "index_tasks_on_due_date"
|
||||
add_index "tasks", ["name"], :name => "index_tasks_on_name"
|
||||
|
||||
create_table "users", :force => true do |t|
|
||||
t.string "nick", :default => "", :null => false
|
||||
|
@ -276,7 +288,7 @@ ActiveRecord::Schema.define(:version => 25) do
|
|||
t.datetime "last_login"
|
||||
end
|
||||
|
||||
add_index "users", ["nick"], :name => "index_users_on_nick", :unique => true
|
||||
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
|
||||
add_index "users", ["nick"], :name => "index_users_on_nick", :unique => true
|
||||
|
||||
end
|
||||
|
|
10
test/fixtures/article_categories.yml
vendored
10
test/fixtures/article_categories.yml
vendored
|
@ -1,3 +1,13 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: article_categories
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# name :string(255) default(""), not null
|
||||
# description :string(255)
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
fruits:
|
||||
id: 1
|
||||
|
|
24
test/fixtures/articles.yml
vendored
24
test/fixtures/articles.yml
vendored
|
@ -1,3 +1,27 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: articles
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# name :string(255) not null
|
||||
# supplier_id :integer(4) not null
|
||||
# number :string(255)
|
||||
# note :string(255)
|
||||
# manufacturer :string(255)
|
||||
# origin :string(255)
|
||||
# unit :string(255)
|
||||
# price :decimal(8, 2) default(0.0), not null
|
||||
# tax :decimal(3, 1) default(7.0), not null
|
||||
# deposit :decimal(8, 2) default(0.0), not null
|
||||
# unit_quantity :decimal(4, 1) default(1.0), not null
|
||||
# scale_quantity :decimal(4, 2)
|
||||
# scale_price :decimal(8, 2)
|
||||
# created_on :datetime
|
||||
# updated_on :datetime
|
||||
# list :string(255)
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
banana:
|
||||
id: 1
|
||||
|
|
11
test/fixtures/assignments.yml
vendored
11
test/fixtures/assignments.yml
vendored
|
@ -1,3 +1,14 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: assignments
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# user_id :integer(4) default(0), not null
|
||||
# task_id :integer(4) default(0), not null
|
||||
# accepted :boolean(1)
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
one:
|
||||
id: 1
|
||||
|
|
13
test/fixtures/financial_transactions.yml
vendored
13
test/fixtures/financial_transactions.yml
vendored
|
@ -1,3 +1,16 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: financial_transactions
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# order_group_id :integer(4) default(0), not null
|
||||
# amount :decimal(8, 2) default(0.0), not null
|
||||
# note :text default(""), not null
|
||||
# user_id :integer(4) default(0), not null
|
||||
# created_on :datetime not null
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
first:
|
||||
id: 1
|
||||
|
|
12
test/fixtures/group_order_article_quantities.yml
vendored
12
test/fixtures/group_order_article_quantities.yml
vendored
|
@ -1,3 +1,15 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: group_order_article_quantities
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# group_order_article_id :integer(4) default(0), not null
|
||||
# quantity :integer(4) default(0)
|
||||
# tolerance :integer(4) default(0)
|
||||
# created_on :datetime not null
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
first:
|
||||
id: 1
|
||||
|
|
12
test/fixtures/group_order_article_results.yml
vendored
12
test/fixtures/group_order_article_results.yml
vendored
|
@ -1,3 +1,15 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: group_order_article_results
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# order_article_result_id :integer(4) default(0), not null
|
||||
# group_order_result_id :integer(4) default(0), not null
|
||||
# quantity :decimal(6, 3) default(0.0)
|
||||
# tolerance :integer(4)
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
first:
|
||||
id: 1
|
||||
|
|
13
test/fixtures/group_order_results.yml
vendored
13
test/fixtures/group_order_results.yml
vendored
|
@ -1,3 +1,14 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: group_order_results
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# order_id :integer(4) default(0), not null
|
||||
# group_name :string(255) default(""), not null
|
||||
# price :decimal(8, 2) default(0.0), not null
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
one:
|
||||
id: 1
|
||||
|
@ -9,4 +20,4 @@ two:
|
|||
order_id: 1
|
||||
group_name: Order Group 2
|
||||
price: 99.95
|
||||
|
||||
|
||||
|
|
27
test/fixtures/groups.yml
vendored
27
test/fixtures/groups.yml
vendored
|
@ -1,3 +1,28 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: groups
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# type :string(255) default(""), not null
|
||||
# name :string(255) default(""), not null
|
||||
# description :string(255)
|
||||
# actual_size :integer(4)
|
||||
# account_balance :decimal(8, 2) default(0.0), not null
|
||||
# account_updated :datetime
|
||||
# created_on :datetime not null
|
||||
# role_admin :boolean(1) not null
|
||||
# role_suppliers :boolean(1) not null
|
||||
# role_article_meta :boolean(1) not null
|
||||
# role_finance :boolean(1) not null
|
||||
# role_orders :boolean(1) not null
|
||||
# weekly_task :boolean(1)
|
||||
# weekday :integer(4)
|
||||
# task_name :string(255)
|
||||
# task_description :string(255)
|
||||
# task_required_users :integer(4) default(1)
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
first:
|
||||
id: 1
|
||||
|
@ -10,4 +35,4 @@ another:
|
|||
admins:
|
||||
id: 3
|
||||
name: Administrators
|
||||
role_admin: true
|
||||
role_admin: true
|
||||
|
|
12
test/fixtures/memberships.yml
vendored
12
test/fixtures/memberships.yml
vendored
|
@ -1,3 +1,13 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: memberships
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# group_id :integer(4) default(0), not null
|
||||
# user_id :integer(4) default(0), not null
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
first:
|
||||
id: 1
|
||||
|
@ -7,4 +17,4 @@ another:
|
|||
id: 2
|
||||
group_id: 1
|
||||
user_id: 2
|
||||
|
||||
|
||||
|
|
16
test/fixtures/messages.yml
vendored
16
test/fixtures/messages.yml
vendored
|
@ -1,3 +1,19 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: messages
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# sender_id :integer(4)
|
||||
# recipient_id :integer(4) default(0), not null
|
||||
# recipients :string(255) default(""), not null
|
||||
# subject :string(255) default(""), not null
|
||||
# body :text default(""), not null
|
||||
# read :boolean(1) not null
|
||||
# email_state :integer(4) default(0), not null
|
||||
# created_on :datetime not null
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
one:
|
||||
id: 1
|
||||
|
|
20
test/fixtures/order_article_results.yml
vendored
20
test/fixtures/order_article_results.yml
vendored
|
@ -1,3 +1,23 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: order_article_results
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# order_id :integer(4) default(0), not null
|
||||
# name :string(255) default(""), not null
|
||||
# unit :string(255) default(""), not null
|
||||
# note :string(255)
|
||||
# net_price :decimal(8, 2) default(0.0)
|
||||
# gross_price :decimal(8, 2) default(0.0), not null
|
||||
# tax :float default(0.0), not null
|
||||
# deposit :decimal(8, 2) default(0.0)
|
||||
# fc_markup :float default(0.0), not null
|
||||
# order_number :string(255)
|
||||
# unit_quantity :integer(4) default(0), not null
|
||||
# units_to_order :decimal(6, 3) default(0.0), not null
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
first:
|
||||
id: 1
|
||||
|
|
22
test/fixtures/orders.yml
vendored
22
test/fixtures/orders.yml
vendored
|
@ -1,3 +1,25 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: orders
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# name :string(255) default(""), not null
|
||||
# supplier_id :integer(4) default(0), not null
|
||||
# starts :datetime not null
|
||||
# ends :datetime
|
||||
# note :string(255)
|
||||
# finished :boolean(1) not null
|
||||
# booked :boolean(1) not null
|
||||
# lock_version :integer(4) default(0), not null
|
||||
# updated_by_user_id :integer(4)
|
||||
# invoice_amount :decimal(8, 2) default(0.0), not null
|
||||
# deposit :decimal(8, 2) default(0.0)
|
||||
# deposit_credit :decimal(8, 2) default(0.0)
|
||||
# invoice_number :string(255)
|
||||
# invoice_date :string(255)
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
first:
|
||||
id: 1
|
||||
|
|
24
test/fixtures/suppliers.yml
vendored
24
test/fixtures/suppliers.yml
vendored
|
@ -1,3 +1,25 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: suppliers
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# name :string(255) default(""), not null
|
||||
# address :string(255) default(""), not null
|
||||
# phone :string(255) default(""), not null
|
||||
# phone2 :string(255)
|
||||
# fax :string(255)
|
||||
# email :string(255)
|
||||
# url :string(255)
|
||||
# contact_person :string(255)
|
||||
# customer_number :string(255)
|
||||
# delivery_days :string(255)
|
||||
# order_howto :string(255)
|
||||
# note :string(255)
|
||||
# shared_supplier_id :integer(4)
|
||||
# min_order_quantity :string(255)
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
first:
|
||||
id: 1
|
||||
|
@ -12,4 +34,4 @@ first:
|
|||
phone2: 01234-7878787
|
||||
address: berlin bio
|
||||
customer_number: 123478
|
||||
email: terra@terra.com
|
||||
email: terra@terra.com
|
||||
|
|
17
test/fixtures/tasks.yml
vendored
17
test/fixtures/tasks.yml
vendored
|
@ -1,3 +1,20 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: tasks
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# name :string(255) default(""), not null
|
||||
# description :string(255)
|
||||
# due_date :date
|
||||
# done :boolean(1)
|
||||
# group_id :integer(4)
|
||||
# assigned :boolean(1)
|
||||
# created_on :datetime not null
|
||||
# updated_on :datetime not null
|
||||
# required_users :integer(4) default(1)
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
one:
|
||||
id: 1
|
||||
|
|
22
test/fixtures/users.yml
vendored
22
test/fixtures/users.yml
vendored
|
@ -1,3 +1,23 @@
|
|||
# == Schema Information
|
||||
# Schema version: 20090102171850
|
||||
#
|
||||
# Table name: users
|
||||
#
|
||||
# id :integer(4) not null, primary key
|
||||
# nick :string(255) default(""), not null
|
||||
# password_hash :string(255) default(""), not null
|
||||
# password_salt :string(255) default(""), not null
|
||||
# first_name :string(255) default(""), not null
|
||||
# last_name :string(255) default(""), not null
|
||||
# email :string(255) default(""), not null
|
||||
# phone :string(255)
|
||||
# address :string(255)
|
||||
# created_on :datetime not null
|
||||
# reset_password_token :string(255)
|
||||
# reset_password_expires :datetime
|
||||
# last_login :datetime
|
||||
#
|
||||
|
||||
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
|
||||
admin:
|
||||
id: 1
|
||||
|
@ -13,4 +33,4 @@ test:
|
|||
nick: test
|
||||
first_name: Tim
|
||||
last_name: Tester
|
||||
email: test@foo.test
|
||||
email: test@foo.test
|
||||
|
|
Loading…
Reference in a new issue