Introduced StockTaking. TODO: Dry up the stockit/stock_takings/deliveries controllers/views!

This commit is contained in:
Benjamin Meichsner 2009-02-12 18:32:20 +01:00
parent 2bb4cdb9d6
commit 951d19db6a
30 changed files with 436 additions and 55 deletions

View file

@ -43,7 +43,11 @@
</div>
<div class="box_title"><h2>Gruppenabos</h2></div>
<div class="column_content">
<%= render :partial => 'shared/user_memberships'%>
<% for membership in Membership.find_all_by_user_id(@user.id) -%>
<p>
<%= link_to(membership.group.name, [:admin, membership.group]) %>
</p>
<% end -%>
<p><%= link_to 'Gruppenübersicht', :action => 'listGroups' %></p>
</div>
</div>

View file

@ -1,5 +1,6 @@
- remote_form_for stock_article, :url => add_stock_article_supplier_deliveries_path(@supplier) do |form|
= form.error_messages
= form.hidden_field :supplier_id
%p
= form.label :name
@ -29,4 +30,4 @@
Kategorie:
= form.select :article_category_id, ArticleCategory.all(:order => 'name').collect { |c| [c.name, c.id] }
%p
= submit_tag "Artikel speichern"
= submit_tag "Lagerartikel speichern"

View file

@ -6,4 +6,3 @@
- article = stock_change.stock_article
%b= article.name
= "(#{number_to_currency(article.price)} / #{article.unit})"
//= link_to_function "Löschen", "$(this).up('p').remove()"

View file

@ -23,18 +23,20 @@
%p
:javascript
function fillNewStockArticle(text, li) {
new Ajax.Updater('new_stock_article', '/deliveries/fill_new_stock_article_form', {
new Ajax.Updater('stock_article_form', '/deliveries/fill_new_stock_article_form', {
method: 'get',
parameters: {article_id: li.id}
});
}
Suche nach Artikeln aus dem Katalog:
Suche nach Artikeln aus dem
%i= @supplier.name
Katalog:
= text_field_with_auto_complete :article, :name, {}, |
{:url => {:action => 'auto_complete_for_article_name', :supplier_id => @supplier.id}, |
:after_update_element => 'fillNewStockArticle'} |
{:url => {:controller => 'stockit', :action => 'auto_complete_for_article_name', :supplier_id => @supplier.id}, |
:after_update_element => 'fillNewStockArticle', :method => :get} |
%hr/
#new_stock_article
= render :partial => 'new_stock_article', :locals => {:stock_article => @supplier.stock_articles.build}
#stock_article_form
= render :partial => 'stock_article_form', :locals => {:stock_article => @supplier.stock_articles.build}
%p{:style => "clear:both"}
= link_to 'Zurück', supplier_deliveries_path(@supplier)

View file

@ -25,7 +25,7 @@
]
},
{ :name => "Artikel", :url => "/suppliers",
:active => ["articles", "suppliers", "deliveries", "article_categories", "stockit"],
:active => ["articles", "suppliers", "deliveries", "article_categories", "stockit", "stock_takings"],
:access_denied? => (!u.role_article_meta? && !u.role_suppliers?),
:subnav => [
{ :name => "Artikel", :url => supplier_articles_path(Supplier.first) },

View file

@ -86,7 +86,7 @@
%p
%b Neuen Kommentar hinzufügen:
%br/
= form.text_area :comment, :cols => 50, :rows => 6
= form.text_area :text, :cols => 50, :rows => 6
%br/
= submit_tag "Kommentar hinzufügen"

View file

@ -1,3 +1,4 @@
%ul.autocomplete
- for article in @articles
%li{:id => article.id.to_s}= "#{article.name} (#{article.unit_quantity} * #{article.unit} | #{number_to_currency(article.price)})"
- supplier = @supplier ? "" : " - #{truncate(article.supplier.name)}"
%li{:id => article.id.to_s}= "#{article.name} (#{article.unit_quantity} * #{article.unit} | #{number_to_currency(article.price)}#{supplier})"

View file

@ -1,5 +0,0 @@
<% for membership in Membership.find_all_by_user_id(@user.id) %>
<p>
<%= link_to(membership.group.name, :action => 'showGroup', :id => membership.group) %>
</p>
<% end %>

View file

@ -0,0 +1,35 @@
- remote_form_for stock_article, :url => add_stock_article_stock_takings_path do |form|
= form.error_messages
%p
Lieferant
%br/
= form.select :supplier_id, Supplier.without_deleted(:order => 'name').collect{ |s| [s.name, s.id] }
%p
Name
%br/
= form.text_field :name
%p
Einheit
%br/
= form.text_field :unit
%p
Notiz
%br/
= form.text_field :note
%p
Nettopreis
%br/
= form.text_field :price
%p
MwSt
%br/
= form.text_field :tax, :value => (stock_article.tax || 7.0)
%p
Pfand
%br/
= form.text_field :deposit
%p
Kategorie:
= form.select :article_category_id, ArticleCategory.all(:order => 'name').collect { |c| [c.name, c.id] }
%p
= submit_tag "Lagerartikel hinzufügen"

View file

@ -0,0 +1,9 @@
%p
- fields_for "stock_taking[stock_change_attributes][]", stock_change do |form|
- article = stock_change.stock_article
= form.hidden_field :stock_article_id
= "Menge (#{article.quantity_available})"
= form.text_field :quantity, :size => 5, :autocomplete => 'off'
%b=h truncate(article.name)
= "(#{number_to_currency(article.price)} / #{article.unit})"

View file

@ -0,0 +1,16 @@
- title "Inventur bearbeiten"
- form_for(@stock_taking) do |f|
= f.error_messages
%p
%b Datum
%br/
= f.date_select :date
%p
%b Notiz
%br/
= f.text_area :note, :size => "28x7"
%p
= f.submit "Invenur speichern"
|
= link_to "Abbrechen", stock_takings_path

View file

@ -0,0 +1,25 @@
- title "Inventurübersicht"
%p
= link_to "Neue Iniventur anlegen", new_stock_taking_path
|
= link_to "Lager", stock_articles_path
%table.list{:style => "width:50em"}
%thead
%tr
%th Datum
%th Notiz
%th
%th
%th
%tbody
- for stock_taking in @stock_takings
%tr
%td= link_to format_date(stock_taking.date), stock_taking
%td=h truncate stock_taking.note
%td= link_to 'Anzeigen', stock_taking
%td= link_to 'Bearbeiten', edit_stock_taking_path(stock_taking)
%td= link_to 'Löschen', stock_taking, :confirm => 'Are you sure?', :method => :delete

View file

@ -0,0 +1,48 @@
- title "Neue Inventur anlegen"
.left_column{:style => "width:40em;"}
- form_for(@stock_taking) do |f|
.box_title
%h2 Lieferung anlegen
.column_content
= f.error_messages
%p
%b Datum
%br/
= f.date_select :date
%p
%b Notiz
%br/
= f.text_area :note, :size => "28x7", :value => "#{@current_user.nick}: ..."
%h2 Lagerartikel
%p
%i
Bitte trage hier alle gezählten Abweichungen vom
= link_to "vorläufigen Lagerbestand", stock_articles_path
ein. Bei Schwund benutze einfach ein Minus vor der Zahl.
#stock_changes
= render :partial => 'stock_change', :collection => @stock_taking.stock_changes
%p
= f.submit "Invenur anlegen"
|
= link_to "Abbrechen", stock_takings_path
.right_column{:style => "width:30em;"}
.box_title
%h2 Neuen Lagerartikel anlegen
.column_content
%p
:javascript
function fillNewStockArticle(text, li) {
new Ajax.Updater('stock_article_form', '/stock_takings/fill_new_stock_article_form', {
method: 'get',
parameters: {article_id: li.id}
});
}
Suche nach Artikeln aus dem allen Katalogen:
= text_field_with_auto_complete :article, :name, {}, |
{:url => {:controller => 'stockit', :action => 'auto_complete_for_article_name' }, |
:after_update_element => 'fillNewStockArticle', :method => :get} |
%hr/
#stock_article_form
= render :partial => 'stock_article_form', :locals => {:stock_article => StockArticle.new}

View file

@ -0,0 +1,29 @@
- title "Inventur anzeigen"
%p
Datum:
= format_date @stock_taking.date
%p
Notiz:
= simple_format @stock_taking.note
%h2 Artikel
%table.list{:style => "width:30em"}
%tr
%th Artikel
%th Lieferant
%th Einheit
%th Menge
- for stock_change in @stock_taking.stock_changes.all :include => :stock_article
%tr
%td= stock_change.stock_article.name
%td= stock_change.stock_article.supplier.name
%td= stock_change.stock_article.unit
%td= stock_change.quantity
%br/
= link_to "Bearbeiten", edit_stock_taking_path(@stock_taking)
|
= link_to "Inventurübersicht", stock_takings_path
|
= link_to "Löschen", @stock_taking, :method => :delete, :confirm => "Willst Du wirklich die Inventur löschen?"

View file

@ -1,6 +1,9 @@
- form_for stock_article do |form|
= form.error_messages
= form.hidden_field :supplier_id
%p
Lieferant
%br/
= form.select :supplier_id, Supplier.without_deleted(:order => 'name').collect{ |s| [s.name, s.id] }
%p
Name
%br/
@ -27,7 +30,7 @@
%br/
= form.text_field :deposit
- else
%p
%p
Preis:
%br/
Um Chaos zu vermeiden können bis auf weiteres die Preise von angelegten

View file

@ -13,14 +13,11 @@
.box_title
.column_content
#actions
%b Neuen Lagerartikel anlegen für
= select_tag :new_stock_article, |
options_for_select([[" -- Lieferantin wählen --", ""]] + |
Supplier.without_deleted.collect {|s| [ s.name, url_for(new_stock_article_path(:supplier_id => s))] }), |
:onchange => "redirectTo(this)", :style => "font-size: 0.9em;margin-left:1em;" |
%b= link_to "Neuen Lagerartikel anlegen", new_stock_article_path
|
= link_to_if @current_user.role_orders?, "Lagerbestellung online stellen", {:controller => 'orders', :action => 'new', :supplier_id => 0}
|
= link_to "Inventur anlegen", new_stock_taking_path
#articles{:style => "clear:both;margin-top:1em"}
%table.list

View file

@ -1,4 +1,4 @@
- title "Neuen Lagerartikel für #{@supplier.name} anlegen"
- title "Neuen Lagerartikel anlegen"
:javascript
function fillNewStockArticle(text, li) {
@ -8,9 +8,9 @@
}
%p
Suche nach Artikeln aus dem Katalog:
Suche nach Artikeln aus allen Katalogen:
= text_field_with_auto_complete :article, :name, {}, |
{:url => {:action => 'auto_complete_for_article_name', :supplier_id => @supplier.id}, |
{:url => {:action => 'auto_complete_for_article_name'}, |
:after_update_element => 'fillNewStockArticle'} |
#stock_article_form
= render :partial => 'form', :locals => {:stock_article => @stock_article}