簡體   English   中英

使用Ruby計算的每月總計計算

[英]Monthly Total Calculation Using Ruby Calculations

自從這個應用程序開始以來,我就已經有了一些計算方法來匯總總數。 我需要幫助來計算當前月份的總計,並且不確定如何執行此操作。 提前致謝。

item.rb的

class Item < ActiveRecord::Base
  def profit_calc
    sold_for - bought_for - fees - shipping rescue 0
  end

  def self.purchase_total
    sum(:bought_for)
  end

  def self.fee_total
    sum(:fees)
  end

  def self.shipping_total
    sum(:shipping)
  end

  def self.sales_total
    sum(:sold_for)
  end

  def self.profit_total
    sold.sum(:sold_for) - sold.sum(:bought_for) - sold.sum(:fees) -    sold.sum(:shipping)
  end

  def profit_margin_item
    profit_calc / sold_for * 100 rescue 0
  end

  def self.profit_margin_total
    profit_total/ sum(:sold_for) * 100
  end

  scope :visible, -> { where(sold: false) }
  scope :sold, -> { where(sold: true) }

  def self.search(search)
    where("description LIKE ?", "%#{search}%")
  end
end

statistics.html.erb

<h1 id="title">Statistics</h1>
<br>

<table align="center" style="width: 95%" class="table table-striped table-bordered">
  <thead>
    <tr>
      <th>Total Bought</th>
      <th>Bought This Month</th>
      <th>Total Sold</th>
      <th>Sold This Month</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><%= @items.count %></td>
      <td><%= @items_month.count %></td>
      <td><%= @items_sold.count %></td>
      <td><%= @items_sold_month.count %></td>
    </tr>
  </tbody>
</table>

<table align="center" style="width: 95%" class="table table-striped table-bordered">
  <thead>
    <tr>
      <th>Total Purchases</th>
      <th>Total Month Purchases</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><%= number_to_currency(@items.purchase_total) %></td>
      <td></td>
    </tr>
  </tbody>
</table>

<table align="center" style="width: 95%" class="table table-striped table-bordered">
  <thead>
    <tr>
      <th>Total Sales</th>
      <th>Total Month Sales</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><%= number_to_currency(@items.sales_total) %></td>
      <td></td>
    </tr>
  </tbody>
</table>

<table align="center" style="width: 95%" class="table table-striped table-bordered">
  <thead>
    <tr>
      <th>Total Fees</th>
      <th>Total Month Fees</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><%= number_to_currency(@items.fee_total) %></td>
      <td></td>
    </tr>
  </tbody>
</table>

<table align="center" style="width: 95%" class="table table-striped table-bordered">
  <thead>
    <tr>
      <th>Total Shipping</th>
      <th>Total Month Shipping</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><%= number_to_currency(@items.shipping_total) %></td>
      <td></td>
    </tr>
  </tbody>
</table>

<table align="center" style="width: 95%" class="table table-striped table-bordered">
  <thead>
    <tr>
      <th>Total Profit</th>
      <th>Total Month Profit</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><%= number_to_currency(@items.profit_total) %></td>
      <td></td>
    </tr>
  </tbody>
</table>

<table align="center" style="width: 95%" class="table table-striped table-bordered">
  <thead>
    <tr>
      <th>Total Margin</th>
      <th>Total Month Margin</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><%= number_to_percentage(@items.profit_margin_total, precision: 0) %></td>
      <td></td>
    </tr>
  </tbody>
</table>

添加以下條件以獲得當月的計算:

where(created_at: Time.zone.now.beginning_of_month..Time.zone.now.end_of_month)

例如:

def self.purchase_total
  where(created_at: Time.zone.now.beginning_of_month..Time.zone.now.end_of_month).sum(:bought_for)
end

如果要廣泛使用它,請將其添加為scope

scope :current_month, -> { where(created_at: Time.zone.now.beginning_of_month..Time.zone.now.end_of_month) }

現在:

def self.purchase_total
  current_month.sum(:bought_for)
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM