Permalink
Browse files

Produto com constantes e carregados de yml

  • Loading branch information...
1 parent 6ed5e67 commit 82ecb2c17f82bf023165b0f5c670d578ed8e5a54 Gilson Ferraz committed Mar 30, 2012
Showing with 58 additions and 52 deletions.
  1. +32 −34 app/models/produto.rb
  2. +9 −9 app/views/downloads/index.html.slim
  3. +9 −9 app/views/precos/index.html.slim
  4. +8 −0 db/produtos.yml
View
66 app/models/produto.rb
@@ -4,6 +4,7 @@ class Produto
attr_reader :cliente, :id, :familia, :versao, :preco, :release
+
def nome_cliente
@nome_cliente ||= {pessoal: 'Para você', empresa: 'Para sua empresa'}[@cliente]
end
@@ -36,19 +37,19 @@ def descricao
@descricao
end
- def initialize(params)
- @id = params[:id]
- @familia = params[:familia]
- @versao = params[:versao]
- @rede = params[:rede]
- @preco = params[:preco]
- @cliente = params[:cliente]
- @descricao = params[:descricao]
- @release = params[:release]
+ def initialize(id, data)
+ @id = id
+ @cliente = data[:cliente]
+ @descricao = data[:descricao]
+ @familia = data[:familia]
+ @versao = data[:versao]
+ @rede = data[:rede]
+ @preco = data[:preco]
+ @release = data[:release]
end
def versao_rede
- Produto.find("#{id}r".to_sym)
+ Produto.find("#{id}_rede".to_sym)
end
def self.all
@@ -60,35 +61,32 @@ def self.familias
end
def self.produtos
- @@produtos ||= [
- # jFinanças
- new(id: :jfn_z, release: '5.0.4.3863', familia: :jfinancas, versao: :zero, rede: false, preco: 0, cliente: :pessoal, descricao: 'Pessoas que desejam controlar e planejar suas finanças. Limitado a 120 lançamentos por trimestre e 3 contas'),
- new(id: :jfn_p, release: '5.0.4.3863', familia: :jfinancas, versao: :pessoal, rede: false, preco: 98, cliente: :pessoal, descricao: 'Pessoas que desejam controlar e planejar suas finanças. Sem limites'),
- new(id: :jfn_e, release: '5.0.4.3863', familia: :jfinancas, versao: :empresa, rede: false, preco: 348, cliente: :empresa, descricao: 'Para quem que deseja controlar e planejar as finanças da empresa'),
- new(id: :jfn_m, release: '5.0.4.3863', familia: :jfinancas, versao: :multi, rede: false, preco: 548, cliente: :empresa, descricao: 'Para quem deseja controlar e planejar as finanças de diversas empresas'),
- new(id: :jfn_c, release: '5.0.4.3863', familia: :jfinancas, versao: :corporativo, rede: false, preco: 678, cliente: :empresa, descricao: 'Para quem emite boletos. Inclui todas as funções do multiempresa'),
-
- new(id: :jfn_er, release: '5.0.4.3863', familia: :jfinancas, versao: :empresa, rede: true, preco: 766, cliente: :empresa, descricao: 'Para quem que deseja controlar e planejar as finanças da empresa'),
- new(id: :jfn_mr, release: '5.0.4.3863', familia: :jfinancas, versao: :multi, rede: true, preco: 1196, cliente: :empresa, descricao: 'Para quem deseja controlar e planejar as finanças de diversas empresas'),
- new(id: :jfn_cr, release: '5.0.4.3863', familia: :jfinancas, versao: :corporativo, rede: true, preco: 1396, cliente: :empresa, descricao: 'Para quem emite *boletos. Inclui todas as funções do multiempresa'),
-
- # jFiscal
- new(id: :jfs, release: '1.3.12.1107', familia: :jfiscal, versao: nil, rede: false, preco: 298, cliente: :empresa, descricao: 'Para empresas que precisam de agilidade. Licença por CNPJ. Sem limite de emissão ou valor'),
-
- # Loje
- new(id: :loj_e, release: '4.0.20.3805', familia: :loje, versao: :empresa, rede: false, preco: 498, cliente: :empresa, descricao: 'Para quem precisa de um comercial, financeiro e estoque integrados'),
- new(id: :loj_m, release: '4.0.20.3805', familia: :loje, versao: :multi, rede: false, preco: 648, cliente: :empresa, descricao: 'Para quem gerencia mais que uma empresa'),
- new(id: :loj_c, release: '4.0.20.3805', familia: :loje, versao: :corporativo, rede: false, preco: 748, cliente: :empresa, descricao: 'Para quem emite boletos. Inclui todas as funções do Multiempresa'),
-
- new(id: :loj_er, release: '4.0.20.3805', familia: :loje, versao: :empresa, rede: true, preco: 996, cliente: :empresa, descricao: 'Para quem precisa de um comercial, financeiro e estoque integrados'),
- new(id: :loj_mr, release: '4.0.20.3805', familia: :loje, versao: :multi, rede: true, preco: 1296, cliente: :empresa, descricao: 'Para quem gerencia mais que uma empresa'),
- new(id: :loj_cr, release: '4.0.20.3805', familia: :loje, versao: :corporativo, rede: true, preco: 1496, cliente: :empresa, descricao: 'Para quem emite boletos. Inclui todas as funções do Multiempresa')
- ]
+ @@produtos = []
+ product_data = YAML::load(File.open("#{Rails.root}/db/produtos.yml"))
+ product_data.symbolize_keys!
+ product_data.each do |id, data|
+ puts data.inspect
+ @@produtos << new(id, data)
+ end
+ @@produtos
end
def self.find(id)
produtos.detect {|p| p.id == id}
end
+ JFINANCAS_ZERO = find(:jfinancas_zero)
+ JFINANCAS_PESSOAL = find(:jfinancas_pessoal)
+
+ JFINANCAS_EMPRESA = find(:jfinancas_empresa)
+ JFINANCAS_MULTIEMPRESA = find(:jfinancas_multiempresa)
+ JFINANCAS_CORPORATIVO = find(:jfinancas_corporativo)
+
+ JFISCAL = find(:jfiscal)
+
+ LOJE_EMPRESA = find(:loje_empresa)
+ LOJE_MULTIEMPRESA = find(:loje_multiempresa)
+ LOJE_CORPORATIVO = find(:loje_corporativo)
+
end
View
18 app/views/downloads/index.html.slim
@@ -5,14 +5,14 @@ header
- content_for :jfinancas_pessoal do
h2 Para você
- - p = Produto.find(:jfn_z)
+ - p = Produto::JFINANCAS_ZERO
.box.mid.inline.left
= image_tag "free.png", class: "free"
= image_tag "jfz-full-logo.jpg", class: "jFinanças Zero"
p= p.descricao
= link_to "Baixar", download_path(produto: p.id), title: "Baixe agora, o #{p.nome}", class: "button action download"
- - p = Produto.find(:jfn_p)
+ - p = Produto::JFINANCAS_PESSOAL
.box.mid.inline
= image_tag "jfp-full-logo.jpg", class: "jFinanças Pessoal"
p= p.descricao
@@ -25,19 +25,19 @@ header
h3.subtitle-icon.jfe jFinanças - Gerenciador Financeiro
ul#jfinancas
- - p = Produto.find(:jfn_e)
+ - p = Produto::JFINANCAS_EMPRESA
li.box.min.inline
= image_tag "jfe-full-logo.jpg", class: "jFinanças Empresa"
p= p.descricao
= link_to "Baixar", download_path(produto: p.id), title: "Baixe agora, o #{p.nome}", class: "button action download"
- - p = Produto.find(:jfn_m)
+ - p = Produto::JFINANCAS_MULTIEMPRESA
li.box.min.inline.center
= image_tag "jfem-full-logo.jpg", class: "jFinanças Multiempresa"
p= p.descricao
= link_to "Baixar", download_path(produto: p.id), title: "Baixe agora, o #{p.nome}", class: "button action download"
- - p = Produto.find(:jfn_c)
+ - p = Produto::JFINANCAS_CORPORATIVO
li.box.min.inline
= image_tag "jfec-full-logo.jpg", class: "jFinanças Corporativo"
p= p.descricao
@@ -47,19 +47,19 @@ header
h3.subtitle-icon.lje Loje - Gerenciador Comercial
ul#loje
- - p = Produto.find(:loj_e)
+ - p = Produto::LOJE_EMPRESA
li.box.min.inline
= image_tag "lje-full-logo.jpg", class: "Loje Empresa"
p= p.descricao
= link_to "Baixar", download_path(produto: p.id), title: "Baixe agora, o #{p.nome}", class: "button action download"
- - p = Produto.find(:loj_m)
+ - p = Produto::LOJE_MULTIEMPRESA
li.box.min.inline.center
= image_tag "ljm-full-logo.jpg", class: "Loje Multiempresa"
p= p.descricao
= link_to "Baixar", download_path(produto: p.id), title: "Baixe agora, o #{p.nome}", class: "button action download"
- - p = Produto.find(:loj_c)
+ - p = Produto::LOJE_CORPORATIVO
li.box.min.inline
= image_tag "ljc-full-logo.jpg", class: "Loje Corporativo"
p= p.descricao
@@ -69,7 +69,7 @@ header
h3.subtitle-icon.jfs jFiscal - Emissor de Notas Fiscais Eletrônicas
ul#jfiscal
- - p = Produto.find(:jfs)
+ - p = Produto::JFISCAL
li.box.min.inline
= image_tag "jfs-full-logo.jpg", class: "jFiscal NFe"
p= p.descricao
View
18 app/views/precos/index.html.slim
@@ -7,7 +7,7 @@
- content_for :jfinancas_pessoal do
h2 Para você
- - p = Produto.find(:jfn_z)
+ - p = Produto::JFINANCAS_ZERO
.box.mid.inline.left
= image_tag "free.png", class: "free"
= image_tag "jfz-full-logo.jpg", class: "jFinanças Zero"
@@ -17,7 +17,7 @@
strong.red Gratuito
= link_to "comprar", download_path(produto: p.id), title: "Comprar!", class: "button action buy"
- - p = Produto.find(:jfn_p)
+ - p = Produto::JFINANCAS_PESSOAL
.box.mid.inline
= image_tag "jfp-full-logo.jpg", class: "jFinanças Pessoal"
p= p.descricao
@@ -33,7 +33,7 @@
h3.subtitle-icon.jfe jFinanças - Gerenciador Financeiro
ul#jfinancas
- - p = Produto.find(:jfn_e)
+ - p = Produto::JFINANCAS_EMPRESA
li.box.min.inline
= image_tag "jfe-full-logo.jpg", class: "jFinanças Empresa"
p= p.descricao
@@ -46,7 +46,7 @@
strong= number_to_reais(p.versao_rede.preco)
= link_to "comprar", download_path(produto: p.id), title: "Comprar!", class: "button action buy"
- - p = Produto.find(:jfn_m)
+ - p = Produto::JFINANCAS_MULTIEMPRESA
li.box.min.inline.center
= image_tag "jfem-full-logo.jpg", class: "jFinanças Multiempresa"
p= p.descricao
@@ -59,7 +59,7 @@
strong= number_to_reais(p.versao_rede.preco)
= link_to "comprar", download_path(produto: p.id), title: "Comprar!", class: "button action buy"
- - p = Produto.find(:jfn_c)
+ - p = Produto::JFINANCAS_CORPORATIVO
li.box.min.inline
= image_tag "jfec-full-logo.jpg", class: "jFinanças Corporativo"
p= p.descricao
@@ -75,7 +75,7 @@
- content_for :loje do
h3.subtitle-icon.lje Loje - Gerenciador Comercial
ul#loje
- - p = Produto.find(:loj_e)
+ - p = Produto::LOJE_EMPRESA
li.box.min.inline
= image_tag "lje-full-logo.jpg", class: "Loje Empresa"
p= p.descricao
@@ -88,7 +88,7 @@
strong= number_to_reais(p.versao_rede.preco)
= link_to "comprar", download_path(produto: p.id), title: "Comprar!", class: "button action buy"
- - p = Produto.find(:loj_m)
+ - p = Produto::LOJE_MULTIEMPRESA
li.box.min.inline.center
= image_tag "ljm-full-logo.jpg", class: "Loje Multiempresa"
p= p.descricao
@@ -101,7 +101,7 @@
strong= number_to_reais(p.versao_rede.preco)
= link_to "comprar", download_path(produto: p.id), title: "Comprar!", class: "button action buy"
- - p = Produto.find(:loj_c)
+ - p = Produto::LOJE_CORPORATIVO
li.box.min.inline
= image_tag "ljc-full-logo.jpg", class: "Loje Corporativo"
p= p.descricao
@@ -117,7 +117,7 @@
- content_for :jfiscal do
h3.subtitle-icon.jfs jFiscal - Emissor de Notas Fiscais Eletrônicas
ul#jfiscal
- - p = Produto.find(:jfs)
+ - p = Produto::JFISCAL
li.box.min.inline
= image_tag "jfs-full-logo.jpg", class: "jFiscal NFe"
p= p.descricao
View
8 db/produtos.yml
@@ -93,6 +93,14 @@ loje_empresa_rede:
release: 4.1.2.3
versao: :empresa
+loje_multiempresa:
+ cliente: :empresarial
+ descricao: Para quem que deseja controlar e planejar as finanças da empresa
+ familia: :loje
+ preco: 398
+ release: 4.1.2.3
+ versao: :empresa
+
loje_multiempresa_rede:
cliente: :empresarial
descricao: Para quem que deseja controlar e planejar as finanças da empresa

0 comments on commit 82ecb2c

Please sign in to comment.