WIP commande Achat

This commit is contained in:
Barnabé 2021-10-26 20:26:38 +02:00
parent 175970a69c
commit f93da075b8
7 changed files with 127 additions and 74 deletions

View File

@ -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

View File

@ -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

View File

@ -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 "*********************************************************************************************************"

View File

@ -0,0 +1 @@
=p_fournisseur.name

View File

@ -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

View File

@ -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

View File

@ -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