This commit is contained in:
Nicolas Bally 2020-07-03 11:04:55 +02:00
parent d4c76bafa8
commit 8232f07e28
7 changed files with 142 additions and 3 deletions

View File

@ -2,7 +2,7 @@
class Admin::MOdrRepsController < ApplicationController
layout "admin"
before_action :auth_admin
before_action :auth_admin, :except => :ba
before_action :admin_space
@ -98,6 +98,12 @@ class Admin::MOdrRepsController < ApplicationController
end
def ba
@m_odr_rep = MOdrRep.find(params[:id])
#@m_odr_rep.generate_ba if !params[:print]
render :layout => false
end
def generate_virement
@m_odr_rep = MOdrRep.find(params[:id])

View File

@ -5,6 +5,9 @@ class MOdrRep < ApplicationRecord
include ActionView::Helpers::TranslationHelper
include ActionView::Helpers::UrlHelper
include Rails.application.routes.url_helpers
has_many :particulars, :dependent => :destroy
accepts_nested_attributes_for :particulars, :allow_destroy => true
@ -344,4 +347,47 @@ file_admin_ok remise particular_civilite particular_name particular_firstname pa
end
def generate_ba
doc_number = self.token
url = "/admin/m_odr_reps/#{self.id}/ba"
@temp_file = "#{Rails.root}/public/public_medias/#{doc_number}.png"
url = (Rails.env.development? ? "http://localhost:4000" : "https://offres.market-inn.fr/").to_s+url
puts url
pdf = ("ba")
node_file = @temp_file
req = "node #{pdf}.js #{Shellwords.escape(url)} #{Shellwords.escape(@temp_file)} #{self.m_odr.ba_width} #{self.m_odr.ba_height}"
puts "AAA"
puts req
system(req)
require 'posix/spawn'
return @temp_file
end
def ba_url
url = (Rails.env.development? ? "http://localhost:4000" : "https://offres.market-inn.fr/").to_s+"/public_medias/#{self.token}.png"
end
end

View File

@ -155,4 +155,9 @@ RIB :
%br
=link_to "Générer le virement", generate_virement_admin_m_odr_rep_path(@m_odr_rep), :class => "btn btn-primary"
-if @m_odr_rep.m_odr.ba_generation
=debug @m_odr_rep.generate_ba
=link_to "Voir le bon d'achat", @m_odr_rep.ba_url, :class => "btn btn-primary"

View File

@ -0,0 +1,38 @@
#ba
=image_tag "https://offres.market-inn.fr/"+@m_odr_rep.m_odr.ba_image_file.file.url if @m_odr_rep.m_odr.ba_image_file
.name{:style => "top:#{@m_odr_rep.m_odr.ba_name_y}px;"}
=@m_odr_rep.particular_firstname
=@m_odr_rep.particular_name
.place{:style => "top:#{@m_odr_rep.m_odr.ba_place_y}px;"}
=@m_odr_rep.place_name
:scss
#ba{
position:absolute;
font-family:Arial;
.name{
position:absolute;
left:0;
right:0;
text-align:center;
font-size:30px;
text-transform:uppercase;
font-weigh:bold;
}
.place{
position:absolute;
left:0;
right:0;
text-align:center;
font-size:30px;
text-transform:uppercase;
font-weigh:bold;
}
}

View File

@ -110,10 +110,10 @@
= f.input :ba_width, :label => "Largeur du bon d'achat (px) :"
= f.input :ba_height, :label => "Hauteur du bon d'achat (px) :"
= f.input :ba_name_x, :label => "Position X du nom (px) :"
=# f.input :ba_name_x, :label => "Position X du nom (px) :"
= f.input :ba_name_y, :label => "Position Y du nom (px) :"
= f.input :ba_place_x, :label => "Position X du revendeur (px) :"
=# f.input :ba_place_x, :label => "Position X du revendeur (px) :"
= f.input :ba_place_y, :label => "Position Y du revendeur (px) :"

42
ba.js Normal file
View File

@ -0,0 +1,42 @@
'use strict';
const puppeteer = require('puppeteer');
const createPdf = async() => {
let browser;
try {
browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
const page = await browser.newPage();
//await page.setViewport({width: 794, height: 1122, deviceScaleFactor: 1});
await page.goto(process.argv[2], {timeout: 3000, waitUntil: 'networkidle2'});
await page.waitFor(250);
await page.emulateMedia('screen');
await page._emulationManager._client.send(
'Emulation.setDefaultBackgroundColorOverride',
{ color: { r: 0, g: 0, b: 0, a: 0 } }
);
console.log("AAAAAAAAAA");
console.log("AAAAAAAAAA");
console.log(process.argv[4]);
console.log(process.argv[5]);
await page.setViewport({
width: parseFloat(process.argv[4]),
height: parseFloat(process.argv[5]),
});
await page.screenshot({path: process.argv[3]});
} catch (err) {
console.log(err.message);
} finally {
if (browser) {
browser.close();
}
process.exit();
}
};
createPdf();

View File

@ -220,6 +220,8 @@ Rails.application.routes.draw do
get :send_mail
get :refuse
get :ba
end
collection do