diff --git a/app/controllers/admin/p_fournisseurs_controller.rb b/app/controllers/admin/p_fournisseurs_controller.rb index 992106e..dc4fa68 100644 --- a/app/controllers/admin/p_fournisseurs_controller.rb +++ b/app/controllers/admin/p_fournisseurs_controller.rb @@ -24,8 +24,29 @@ class Admin::PFournisseursController < ApplicationController end def index - @p_fournisseurs = PFournisseur.order(:name).all + + + @p_fournisseurs = PFournisseur + + + if params[:search][:global].to_s != "" + @p_fournisseurs = @p_fournisseurs.global_search(params[:search][:global]) + end + + @p_fournisseurs = @p_fournisseurs.all + @p_fournisseurs = sort_by_sorting(@p_fournisseurs, "name ASC") + + respond_to do |format| + format.html{ + + params[:search][:per_page] = params[:search][:per_page] || 100 + per_page = params[:search][:per_page] + page = (params[:page] and params[:page] != "") ? params[:page] : 1 + @p_fournisseurs = @p_fournisseurs.page(page).per(per_page) + + } + end end diff --git a/app/controllers/admin/price_documents_controller.rb b/app/controllers/admin/price_documents_controller.rb index b23a578..693c8d5 100644 --- a/app/controllers/admin/price_documents_controller.rb +++ b/app/controllers/admin/price_documents_controller.rb @@ -230,25 +230,31 @@ class Admin::PriceDocumentsController < ApplicationController def new if params[:document_type] - @price_document = PriceDocument.new(:p_customer_id => params[:p_customer_id], :p_fournisseur_id => params[:p_fournisseur_id]) - @price_document.price_document_type = PriceDocumentType.where(:label => params[:document_type]).first - @price_document.price_line_block = PriceLineBlock.new(:p_customer_id => params[:p_customer_id], :p_fournisseur_id => params[:p_fournisseur_id]) - - if @price_document.price_document_type.label == "Demande prix" - p_product_ref_id = params[:p_product_ref_ids] - [""] - p_product_ref_qte = params[:qte].permit!.to_hash + if params[:document_type] == "Commande achat" and params[:p_fournisseur_id].to_s == "" + redirect_to admin_p_fournisseurs_path(:create_document => "Commande achat" ) - p_product_ref_id.each do |i| - if p_product_ref_qte[i.to_s].to_i > 0 - @price_document.price_line_block.price_lines << PriceLine.new(:p_product_ref_id => i, :qte => p_product_ref_qte[i.to_s]) + else + + @price_document = PriceDocument.new(:p_customer_id => params[:p_customer_id], :p_fournisseur_id => params[:p_fournisseur_id]) + @price_document.price_document_type = PriceDocumentType.where(:label => params[:document_type]).first + @price_document.price_line_block = PriceLineBlock.new(:p_customer_id => params[:p_customer_id], :p_fournisseur_id => params[:p_fournisseur_id]) + + if @price_document.price_document_type.label == "Demande prix" + p_product_ref_id = params[:p_product_ref_ids] - [""] + p_product_ref_qte = params[:qte].permit!.to_hash + + p_product_ref_id.each do |i| + if p_product_ref_qte[i.to_s].to_i > 0 + @price_document.price_line_block.price_lines << PriceLine.new(:p_product_ref_id => i, :qte => p_product_ref_qte[i.to_s]) + end end - end - # @ref_price_lines = PriceLine.where(:id => params[:price_line_ids]) - # @ref_price_lines.group(:p_product_ref_id).each do |plr| - # @price_document.price_line_block.price_lines << PriceLine.new(:p_product_ref_id => plr.p_product_ref_id, :qte => @ref_price_lines.where(:p_product_ref_id => plr.p_product_ref_id).sum(:qte)) - # end - + # @ref_price_lines = PriceLine.where(:id => params[:price_line_ids]) + # @ref_price_lines.group(:p_product_ref_id).each do |plr| + # @price_document.price_line_block.price_lines << PriceLine.new(:p_product_ref_id => plr.p_product_ref_id, :qte => @ref_price_lines.where(:p_product_ref_id => plr.p_product_ref_id).sum(:qte)) + # end + + end end diff --git a/app/models/p_fournisseur.rb b/app/models/p_fournisseur.rb index 6f0cacb..6c97903 100644 --- a/app/models/p_fournisseur.rb +++ b/app/models/p_fournisseur.rb @@ -24,6 +24,22 @@ class PFournisseur < ApplicationRecord ] + include PgSearch::Model + pg_search_scope :global_search, + against: [:name], + using: { + tsearch: { prefix: true } + } + + + + acts_as_sorting :fields => { + :name => {:name => "Nom", :reorder => true}, + :address => {:name => "Adresse", :reorder => false}, + :actions => {:name => "Actions"} + + } + def self.custom_csv_import(list, import_csv) # ap "*********************************************************************************************************" diff --git a/app/views/admin/p_fournisseurs/_apercu.html.haml b/app/views/admin/p_fournisseurs/_apercu.html.haml new file mode 100644 index 0000000..43d8f17 --- /dev/null +++ b/app/views/admin/p_fournisseurs/_apercu.html.haml @@ -0,0 +1 @@ +=p_fournisseur.name diff --git a/app/views/admin/p_fournisseurs/_p_fournisseur.html.haml b/app/views/admin/p_fournisseurs/_p_fournisseur.html.haml index 4eeb29b..b27a881 100644 --- a/app/views/admin/p_fournisseurs/_p_fournisseur.html.haml +++ b/app/views/admin/p_fournisseurs/_p_fournisseur.html.haml @@ -1,27 +1,34 @@ -%tr#p_fournisseur{:id => p_fournisseur.id} - %td= p_fournisseur.code - %td= p_fournisseur.name - - %td - = p_fournisseur.address1 - -if p_fournisseur.address2 + +%tr#p_article_row{:id => p_fournisseur.id} + -tr = {} + + -tr[:address] = capture do + %td + = p_fournisseur.address1 + -if p_fournisseur.address2 + %br + =p_fournisseur.address2 %br - =p_fournisseur.address2 - %br - =p_fournisseur.cp - =p_fournisseur.city - - %td - =p_fournisseur.email - %td - =p_fournisseur.tel - - - + =p_fournisseur.cp + =p_fournisseur.city + + + -tr[:actions] = capture do + %td.actions + -if params[:create_document].to_s != "" + =link_to "Selectionner >", new_admin_price_document_path(:document_type => params[:create_document], :p_fournisseur_id => p_fournisseur.id), :class => "btn btn-primary" + -else + + = link_to i(:"trash-o"), [:admin, p_fournisseur], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true + = link_to i(:pencil), edit_admin_p_fournisseur_path(p_fournisseur), :remote => true + + + + =render :partial => "qi/qi_ordered_table_object", :locals => {:tr => tr, :object => p_fournisseur} + + + + - - %td.actions - = link_to i(:"trash-o"), [:admin, p_fournisseur], method: :delete, data: { confirm: 'Voulez-vous vraiment supprimer cet enregistrement ? ' } , :remote => true - = link_to i(:pencil), edit_admin_p_fournisseur_path(p_fournisseur), :remote => true diff --git a/app/views/admin/p_fournisseurs/index.html.haml b/app/views/admin/p_fournisseurs/index.html.haml index ef18615..ff87032 100644 --- a/app/views/admin/p_fournisseurs/index.html.haml +++ b/app/views/admin/p_fournisseurs/index.html.haml @@ -1,28 +1,30 @@ .qi_header - .right - = link_to 'Ajouter un fournisseur', new_admin_p_fournisseur_path(), :class => "btn btn-primary", :remote => true - + .right= link_to 'Ajouter un fournisseur', new_admin_p_fournisseur_path(), :class => "btn btn-primary", :remote => true =breadcrumb -.qi_row - .qi_pannel.qi_plain.padding - %table.table + +.qi_search_row + =form_tag "", :method => "get", :onsubmit => "" do + =hidden_field_tag :column, params[:column] + =hidden_field_tag :direction, params[:direction] + + =hidden_field_tag :create_document, params[:create_document] + + %table %tr - %th Code - + %td{style: "min-width: 500px;"} + .input-group + =text_field_tag "search[global]", params[:search][:global],:class => "form-control", :placeholder => "Nom" + .input-group-append{:onclick => "$(this).prev('input').val('');"} + .btn.btn-outline-dark + =ic(:times) + + =render :partial => "qi/qi_ordered_table_search_footer", :locals => {:collection_object => @p_fournisseurs} + + +=render :partial => "qi/qi_ordered_table", :locals => {:qi_ordered_table_collection => @p_fournisseurs} + + - %th Nom - - %th Adresse - %th - Email - %th - Tél - %th - - %tbody#p_fournisseurs_rows - =render @p_fournisseurs - - diff --git a/app/views/admin/price_line_blocks/_form_commande_achat.html.haml b/app/views/admin/price_line_blocks/_form_commande_achat.html.haml index dca9aea..90dec30 100644 --- a/app/views/admin/price_line_blocks/_form_commande_achat.html.haml +++ b/app/views/admin/price_line_blocks/_form_commande_achat.html.haml @@ -11,30 +11,30 @@ .p_customer_sheet_customer - - -if f.object.p_customer and f.object.p_customer.particular - =render :partial => "admin/p_customers/apercu", :locals => {:particular => f.object.p_customer.particular} + -if false + -if f.object.p_fournisseur and f.object.p_fournisseur.particular + =#render :partial => "admin/p_fournisseurs/apercu", :locals => {:particular => f.object.p_fournisseur.particular} .addresses.row .columns.span_6 - %h3 Adresse de facturation - - -if f.object.p_customer + -if false + %h3 Adresse de facturation + + -if f.object.p_fournisseur =f.inputs do - = f.input :particular_bill_id, :collection => f.object.p_customer.particulars.all, :as => :select, :member_label => :address_line, :include_blank => false, :label => "Adresse de facturation" + =# f.input :particular_bill_id, :collection => f.object.p_fournisseur.particulars.all, :as => :select, :member_label => :address_line, :include_blank => false, :label => "Adresse de facturation" -else =f.inputs do - = f.input :particular_bill_id, :collection => [], :as => :select, :include_blank => false, :label => "Adresse de facturation" + =# f.input :particular_bill_id, :collection => [], :as => :select, :include_blank => false, :label => "Adresse de facturation" .columns.span_6 %h3 Adresse de livraison - -if f.object.p_customer + -if false =f.inputs do - = f.input :particular_send_id, :collection => f.object.p_customer.particulars.all, :as => :select, :member_label => :address_line, :include_blank => false, :label => "Adresse de livraison" - -else - =f.inputs do - = f.input :particular_send_id, :collection => [], :as => :select, :include_blank => false, :label => "Adresse de facturation" + =# f.input :particular_send_id, :collection => , :as => :select, :member_label => :address_line, :include_blank => false, :label => "Adresse de livraison" + %h4 ARCOM + %p 973 route du Fier, 74 230 Dingy-Saint-Clair .clear