|
- require 'rubygems'
- require 'dm-core'
- require 'dm-validations'
- require 'dm-timestamps'
- require 'dm-aggregates'
-
- SITE_URL = 'http://armchairauditor.heroku.com/'
-
- class Payment
- include DataMapper::Resource
-
- property :id, Serial
- property :trans_no, Integer, :required => false # "TransNo" in RBWM CSV files
- property :directorate_id, Integer, :required => true
- property :service_id, Integer, :required => true
- property :supplier_id, Integer, :required => true
- property :cost_centre, String, :required => false
- property :amount, BigDecimal, :precision => 10, :scale => 2, :required => true # ex VAT
- property :d, Date, :required => true # "Updated" in RBWM CSV files
- property :tyype, String, :required => true # Capital or Revenue
-
- belongs_to :directorate
- belongs_to :service
- belongs_to :supplier
-
- def url
- SITE_URL + "payments/" + @id.to_s
- end
- end
-
-
- class Directorate
- include DataMapper::Resource
-
- property :id, Serial
- property :name, String, :length => 255, :required => true
- property :slug, String, :length => 255
-
- has n, :payments, :order => ['d']
-
- def self.slugify(name)
- name.gsub(/[^\w\s-]/, '').gsub(/\s+/, '-').downcase
- end
-
- end
-
- class Service
- include DataMapper::Resource
-
- property :id, Serial
- property :name, String, :length => 255, :required => true
- property :slug, String, :length => 255
-
- has n, :payments, :order => ['d']
-
- def self.slugify(name)
- name.gsub(/[^\w\s-]/, '').gsub(/\s+/, '-').downcase
- end
-
- end
-
- class Supplier
- include DataMapper::Resource
-
- property :id, Serial
- property :name, String, :length => 255, :required => true
- property :slug, String, :length => 255
-
- has n, :payments, :order => ['d']
-
- def self.slugify(name)
- name.gsub(/[^\w\s-]/, '').gsub(/\s+/, '-').downcase
- end
- end
-
- DataMapper.setup(:default, ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/db.sqlite3")
- DataMapper.auto_upgrade!
|