| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- class SuppliersController < ApplicationController
- ##--- Abilities
- load_and_authorize_resource
- ##--- Breadcrum_rails
- add_breadcrumb I18n.t("breadcrumbs." + controller_name), :suppliers_path
- add_breadcrumb "Nuevo Proveedor", :new_supplier_path, only: :new
- add_breadcrumb "Detalle del Proveedor", :supplier_path, only: :show
- add_breadcrumb "Editar Proveedor", :edit_supplier_path, only: :edit
- before_action :set_supplier, only: [:show, :edit, :update, :destroy]
- before_action :get_filters, only: [:index, :show, :edit, :new]
- # GET /suppliers
- # GET /suppliers.json
- def index
- @suppliers = Supplier.vigentes.includes(:billing_information)
- end
- # GET /suppliers/1
- # GET /suppliers/1.json
- def show; end
- # GET /suppliers/new
- def new
- @supplier = Supplier.new
- end
- # GET /suppliers/1/edit
- def edit; end
- # POST /suppliers
- # POST /suppliers.json
- def create
- @supplier = Supplier.new(supplier_params)
- @supplier.audit_comment = "El proveedor " + @supplier.nick_name + " fue registrado."
- respond_to do |format|
- if @supplier.save
- format.html { redirect_to suppliers_url, success: "El proveedor " + @supplier.nick_name + " fue registrado." }
- format.json { render :show, status: :created, location: @supplier }
- else
- format.html { render :new }
- format.json { render json: @supplier.errors, status: :unprocessable_entity }
- end
- end
- end
- # PATCH/PUT /suppliers/1
- # PATCH/PUT /suppliers/1.json
- def update
- respond_to do |format|
- @supplier.audit_comment = "El proveedor " + params[:supplier][:nick_name] + " fue modificado."
- if @supplier.update(supplier_params)
- format.html { redirect_to suppliers_url, success: "El proveedor " + @supplier.nick_name + " fue modificado." }
- format.json { render :show, status: :ok, location: @supplier }
- else
- format.html { render :edit }
- format.json { render json: @supplier.errors, status: :unprocessable_entity }
- end
- end
- end
- def update_status
- supplier = Supplier.find(params[:supplier_id])
- if supplier.active?
- supplier.status = 2
- elsif supplier.inactive?
- supplier.status = 1
- end
- respond_to do |format|
- if supplier.save(:validate => false)
- format.html { redirect_to suppliers_url, warning: "El proveedor " + supplier.nick_name + " fue "+ (supplier.active? ? "activado" : "desactivado")+"." }
- format.json { head :no_content }
- else
- format.html { redirect_to suppliers_url }
- format.json { render json: @supplier.errors, status: :unprocessable_entity }
- end
- end
- end
- # DELETE /suppliers/1
- # DELETE /suppliers/1.json
- def destroy
- respond_to do |format|
- if @supplier.update_attributes(status: 'erased')
- @supplier.contact.update_attributes(status: 'erased') if @supplier.contact.present?
- @supplier.billing_information.update_attributes(status: 'erased') if @supplier.billing_information.present?
- @supplier.audit_comment = "El proveedor " + @supplier.nick_name + " fue dado de baja."
- format.html { redirect_to suppliers_url, warning: "El proveedor " + @supplier.nick_name + " fue dado de baja." }
- format.json { head :no_content }
- end
- end
- end
- private
- # Use callbacks to share common setup or constraints between actions.
- def set_supplier
- @supplier = Supplier.find(params[:id])
- end
- def get_filters
- if params[:current_page].blank?
- @current_page = 1
- else
- @current_page = params[:current_page]
- end
- @filter = params[:filter]
- end
- # Never trust parameters from the scary internet, only allow the white list through.
- def supplier_params
- params.require(:supplier).permit(:nick_name, :phone, :email, :credit, :credit_limit, :time_limit, :notes, :status, billing_information_attributes:[ :id, :name, :rfc, :address, :num_ext, :num_int, :zipcode, :state_id, :county_id, :city, :suburb], contact_attributes:[ :id, :name, :last_name, :phone, :email ] )
- end
- end
|