Generate commande achat

This commit is contained in:
Barnabé 2021-09-10 17:21:41 +02:00
parent e8d66c91d7
commit ce6a7a6c91
3 changed files with 54 additions and 36 deletions

View File

@ -655,4 +655,19 @@ class Admin::PriceDocumentsController < ApplicationController
@final_consult = PriceDocument.where(price_document_type: PriceDocumentType.find_by_label("Consultation fournisseur")).last
redirect_to :analyse_reponses_admin_price_document
end
def buy_order_create
@final_consult = PriceDocument.find(params[:id])
price_line_block = PriceLineBlock.new(p_fournisseur: @final_consult.price_line_block.p_fournisseur)
price_lines = PriceLine.where(price_line_block: @final_consult.price_line_block)
@price_document = PriceDocument.new(date: Date.today, price_line_block: price_line_block, doc_ref_id: @final_consult.id, :price_document_type => PriceDocumentType.find_by_label("Commande achat"))
price_lines.each do |pl|
@price_document.price_line_block.price_lines << PriceLine.new(p_product_ref: pl.p_product_ref, qte: pl.qte, ct_u_price_ht: pl.price_u_ht)
end
if @price_document.save!
redirect_to admin_price_document_path(@price_document)
end
end
end

View File

@ -371,9 +371,11 @@
-@price_documents.each do |price_document_consult|
%h4.ml-2= price_document_consult.p_fournisseur.name
= semantic_form_for [:admin, price_document_consult], :html => {:class => "qi_price_form"}, :remote => false do |form|
= form.button "Valider modifications)", type: :submit, class: "btn btn-primary m-2"
=link_to ic(:clipboard) + " Copier le text", "#", class: "btn btn-primary", "data-document" => price_document_consult.id, onclick: 'copyPriceLines(event)'
= link_to ic(:clipboard) + " Copier le text", "#", class: "btn btn-primary", "data-document" => price_document_consult.id, onclick: 'copyPriceLines(event)'
= link_to "Generer la commande", buy_order_create_admin_price_document_path(price_document_consult)
.price-lines{"data-document" => price_document_consult.id}
=form.semantic_fields_for :price_line_block do |f|
.mx-2
@ -385,40 +387,40 @@
:javascript
const copyPriceLines = (event) => {
event.preventDefault()
let priceDocumentId = event.target.dataset.document
let names = $(`.p_product_ref_cc_name_${priceDocumentId}`)
let qtes = $(`.input_price_line_qte_${priceDocumentId}`)
let prices = $(`.price_line_price_u_ht_${priceDocumentId}`)
:javascript
const copyPriceLines = (event) => {
event.preventDefault()
let priceDocumentId = event.target.dataset.document
let names = $(`.p_product_ref_cc_name_${priceDocumentId}`)
let qtes = $(`.input_price_line_qte_${priceDocumentId}`)
let prices = $(`.price_line_price_u_ht_${priceDocumentId}`)
let table = []
names.each(function( i ) {
let row = []
row.push(qtes[i].valueAsNumber)
row.push(" X ")
row.push(names[i].innerText)
row.push(" @ ")
row.push(prices[i].innerText)
table.push(row.join(' '))
})
copyStringToClipboard(table.join('\r\n'))
}
let table = []
names.each(function( i ) {
let row = []
row.push(qtes[i].valueAsNumber)
row.push(" X ")
row.push(names[i].innerText)
row.push(" @ ")
row.push(prices[i].innerText)
table.push(row.join(' '))
})
copyStringToClipboard(table.join('\r\n'))
}
function copyStringToClipboard (str) {
// Create new element
var el = document.createElement('textarea');
// Set value (string to be copied)
el.value = str;
// Set non-editable to avoid focus and move outside of view
el.setAttribute('readonly', '');
el.style = {position: 'absolute', left: '-9999px'};
document.body.appendChild(el);
// Select text inside element
el.select();
// Copy text to clipboard
document.execCommand('copy');
// Remove temporary element
document.body.removeChild(el);
}
function copyStringToClipboard (str) {
// Create new element
var el = document.createElement('textarea');
// Set value (string to be copied)
el.value = str;
// Set non-editable to avoid focus and move outside of view
el.setAttribute('readonly', '');
el.style = {position: 'absolute', left: '-9999px'};
document.body.appendChild(el);
// Select text inside element
el.select();
// Copy text to clipboard
document.execCommand('copy');
// Remove temporary element
document.body.removeChild(el);
}

View File

@ -631,6 +631,7 @@ Rails.application.routes.draw do
get :analyse_reponses
post :analyse_reponses_save
get :generate_final_consult
get :buy_order_create
end
collection do
get :search_to_affect