Created
December 13, 2017 11:40
-
-
Save crova/80446895601dee3730fadaa160cb2be5 to your computer and use it in GitHub Desktop.
Why this works for one Model (SibTransac) and don't work for the other (DbCampaign)?!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def update | |
def db_campaign | |
@db_campaign = DbCampaign.find_by_id(params[:id]) | |
end | |
respond_to do |format| | |
@db_campaign = DbCampaign.find_by_id(params[:id]) | |
if @db_campaign.update(db_campaign_params) | |
format.html { redirect_to @db_campaign, notice: 'Campaign was successfully updated.' } | |
format.json { render :show, status: :ok, location: @db_campaign } | |
calculate_kpi | |
else | |
format.html { render :edit } | |
format.json { render json: @db_campaign.errors, status: :unprocessable_entity } | |
end | |
end | |
end | |
# Calculate the KPIs for a single campaign beign edited | |
def calculate_kpi | |
@db_campaign = DbCampaign.find_by_id(params[:id]) | |
turnover = (@db_campaign.payout.to_f * @db_campaign.result.to_f) | |
cost = (@db_campaign.sent.to_f * @db_campaign.cpm.to_f) / 1000 | |
@db_campaign.update_column(:turnover, turnover) | |
@db_campaign.update_column(:cost, cost) | |
margin = @db_campaign.turnover.to_f - @db_campaign.cost.to_f | |
ecpm = (@db_campaign.turnover.to_f / @db_campaign.sent.to_f) * 1000 | |
orate = (@db_campaign.unique_views.to_f / @db_campaign.sent.to_f) * 100 | |
crate = (@db_campaign.clicker.to_f / @db_campaign.sent.to_f) * 100 | |
@db_campaign.update_column(:margin, margin) | |
@db_campaign.update_column(:ecpm, ecpm) | |
@db_campaign.update_column(:orate, orate) | |
@db_campaign.update_column(:crate, crate) | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def update | |
def single_day_transac | |
@single_day_transac = SibTransac.find_by_id(params[:id]) | |
end | |
respond_to do |format| | |
if @sib_transac.update(sib_transac_params) | |
format.html { redirect_to @sib_transac, notice: 'Sib transac was successfully updated.' } | |
format.json { render :show, status: :ok, location: @sib_transac } | |
calculate_kpi | |
else | |
format.html { render :edit } | |
format.json { render json: @sib_transac.errors, status: :unprocessable_entity } | |
end | |
end | |
end | |
# Calculate the KPIs for a single day beign edited | |
def calculate_kpi | |
@single_day_transac = SibTransac.find_by_id(params[:id]) | |
turnover = (@single_day_transac.payout.to_f * @single_day_transac.result.to_f) | |
cost = (@single_day_transac.requests.to_f * @single_day_transac.cpm.to_f) / 1000 | |
@single_day_transac.update_column(:turnover, turnover) | |
@single_day_transac.update_column(:cost, cost) | |
margin = (@single_day_transac.turnover.to_f - @single_day_transac.cost.to_f) | |
ecpm = (@single_day_transac.turnover.to_f / @single_day_transac.requests.to_f) * 1000 | |
orate = (@single_day_transac.unique_opens.to_f / @single_day_transac.requests.to_f) * 100 | |
crate = (@single_day_transac.unique_clicks.to_f / @single_day_transac.requests.to_f) * 100 | |
@single_day_transac.update_column(:margin, margin) | |
@single_day_transac.update_column(:ecpm, ecpm) | |
@single_day_transac.update_column(:orate, orate) | |
@single_day_transac.update_column(:crate, crate) | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment