Hi all.. I am trying to generate a report which has multiple columns..
After rendering the report I allow the user to enter a value which is to
be subtracted from the column which is already rendered.. I have
multiple rows.. so I have tries like the following. My views page is

<script>
  function sum() {
  var txtFirstNumberValue = document.getElementById('txt1').value;
  var txtSecondNumberValue = document.getElementById('txt2').value;
  var result = parseFloat(txtFirstNumberValue) -
parseFloat(txtSecondNumberValue);
   if(!isNaN(result))  {
   document.getElementById('txt3').value = result;  } }
</script>
<% @arr.each do |j| %>
<% @q =[] %>
<% t= 0 %>
<%= form_for ProductionReport.new
,:url=>{:controller=>"users",:action=>"rate_per_unit_report" } do |i| %>
<tr>
<td><%= j[0] %></td>
<td><%= j[1] %></td>
<td><%= j[2] %></td>
<% @q << j[3] %>
<td><%= i.text_field j[3], :value=>@q[t], :id=>"txt1",
:onkeyup=>"sum()", :class=>"txt" %></td>
<td><%= i.text_field :selling_price, :id=>"txt2", :onkeyup=>"sum()",
:class=>"txt" %></td>
<td><%= i.text_field :profit_loss, :id=>"txt3", :class=>"txt", :readonly
=>true %></td>
<% end %>
<% t = t+1 %>
<% end %>
<td>total</td>
<td><%= @total %></td>
<td><%= @total1 %></td>
<td><%= @total2 %></td>

My controller is

def rate_per_unit_report
  @user=User.new
  @user = User.find(session[:user_id]).name
  @rpus = params[:production_report][:intial_date]
  @rpue = params[:production_report][:final_date]
  @production_report = ProductionReport.where(:date => @rpus..@rpue)
  @production = @production_report.select(:finished_goods_name).uniq
  @arr=[]
  g = 0
  @production.each do|i|
    @p = @production_report.pluck(:issue_id)
    @ll =
@production_report.where(:finished_goods_name=>i.finished_goods_name).select(:total_no_of_items_produced).sum
:total_no_of_items_produced
    @k = Issue.where(:id=>@p).pluck(:consolidated_cost)
    @rate = @k[g].to_f / @ll.to_f
    @r = @rate.round(2)
    @arr<<[i.finished_goods_name]+[@ll]+ [@k[g]] + [@r]
    g = g+1
  end
  @total=@arr.inject(0){|sum,x| sum + x[1].to_i }
  @total1=@arr.inject(0){|sum,y| sum + y[2].to_i }
  @total2=@arr.inject(0){|sum,z| sum + z[3].to_i }
end

And my sample output page is attached as an image.. Pls look at it..

Shortly., I need to dynamically compute profit/loss based on the selling
price entered by the user. How could I achieve that.. Kindly pls help
me.. Thanks in advance..

Attachments:
http://www.ruby-forum.com/attachment/11304/rateperunit.png
http://www.ruby-forum.com/attachment/11305/rateperunit.jpg


-- 
Posted via http://www.ruby-forum.com/.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/fac8b2feb741452fcd76cc22ebe97dc6%40ruby-forum.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to