Skip to content

Instantly share code, notes, and snippets.

@Unkas82
Created September 1, 2016 18:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Unkas82/bf555737f8d7acd924b161b9b8a5120d to your computer and use it in GitHub Desktop.
Save Unkas82/bf555737f8d7acd924b161b9b8a5120d to your computer and use it in GitHub Desktop.
class CasesController < ApplicationController
def index
@cases = Case.all
end
def show
@case = Case.find(params[:id])
@casepos_b = CasePosition.where(case_id: params[:id], buysell: "buyer")
@casepos_s = CasePosition.where(case_id: params[:id], buysell: "seller")
@casedoc_b = CaseDoc.where(case_id: params[:id], buysell: "buyer").order(:doctype)
@casedoc_s = CaseDoc.where(case_id: params[:id], buysell: "seller").order(:doctype)
@casebuh_b = CaseBuh.where(case_id: params[:id], buysell: "buyer")
@casebuh_s = CaseBuh.where(case_id: params[:id], buysell: "seller")
@casebuh = CaseBuh.new
#@statuses = ["0", "a_value1", "0", "a_value2", "0"]
end
def new
@case = Case.new
end
def create
@case = Case.new(case_params)
@case.casedate = DateTime.now
if @case.save
create_case_docs(@case.id)
#flash[:success] = "Кейс был создан успешно"
redirect_to case_path(@case.id)
else
#flash[:success] = "Не удалось создать Кейс"
render 'new'
end
end
############# ДОБАВЛЕНИЕ СТРОК В КЕЙС ########################################
def add_case_pos_row
env["HTTP_REFERER"] += '#pos-anc'
cp = CasePosition.new
cp.case_id = params[:case_id]
cp.product_id = params[:product_id][:id]
cp.count = params[:count]
cp.cost = params[:cost]
cp.sum = params[:sum]
cp.buysell = params[:buysell]
cp.date_load = params[:date_load][:date_load]
cp.consignee = params[:consignee][:id]
if cp.save
refresh_case_total(params[:case_id], params[:buysell])
end
redirect_to :back
end
def refresh_case_doc_row
env["HTTP_REFERER"] += '#doc-anc' #for anchor position returning
if params[:doctype_id][:doctype_id].present?
cd = CaseDoc.find_by(case_id: params[:case_id], buysell: params[:buysell], doctype: params[:doctype_id][:doctype_id])
#binding.pry
cd.docname = params[:docname]
cd.docstatus = params[:docstatus][:docstatus]
end
redirect_to :back
end
def add_case_buh_row
env["HTTP_REFERER"] += '#buh-anc'
par = params[:case_buh]
#@casebuh = CaseBuh.new
@casebuh.case_id = par[:case_id]
@casebuh.sum = par[:sum]
@casebuh.date_buh = par[:date_buh]
@casebuh.buysell = par[:buysell]
@casebuh.save
redirect_to :back
end
###################################################################################################################
def refresh_case_total(case_id, buysell)
this_case = Case.find(case_id)
this_case_poses = CasePosition.where(case_id: case_id, buysell: buysell)
sum = view_context.get_total(this_case_poses)
case
when buysell == "buyer"
this_case.sum_buy = sum
when buysell == "seller"
this_case.sum_sell = sum
end
this_case.save
end
private
def case_params
params.require(:case).permit(:casedate, :company_id,:path,
:buyer_id, :currency_buy, :pdate_buy, :contact_buy, :comment_buy,
:seller_id, :currency_sell, :pdate_sell, :contact_sell, :comment_sell)
end
def create_case_docs(case_id)
doctypes = Doctype.all
doctypes.each do |doctype|
cd = CaseDoc.new
cd.case_id = case_id
cd.doctype = doctype.id
cd.buysell = "buyer"
cd.save
cd = CaseDoc.new
cd.case_id = case_id
cd.doctype = doctype.id
cd.buysell = "seller"
cd.save
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment