From 8232f07e284cdec19c223cb8cd2e2bb4129d0f8c Mon Sep 17 00:00:00 2001 From: Nicolas Bally Date: Fri, 3 Jul 2020 11:04:55 +0200 Subject: [PATCH] suite --- .../admin/m_odr_reps_controller.rb | 8 +++- app/models/m_odr_rep.rb | 46 +++++++++++++++++++ .../admin/m_odr_reps/_left_column.html.haml | 5 ++ app/views/admin/m_odr_reps/ba.html.haml | 38 +++++++++++++++ app/views/admin/m_odrs/_form.html.haml | 4 +- ba.js | 42 +++++++++++++++++ config/routes.rb | 2 + 7 files changed, 142 insertions(+), 3 deletions(-) create mode 100644 app/views/admin/m_odr_reps/ba.html.haml create mode 100644 ba.js diff --git a/app/controllers/admin/m_odr_reps_controller.rb b/app/controllers/admin/m_odr_reps_controller.rb index 17cb876..cf00e32 100644 --- a/app/controllers/admin/m_odr_reps_controller.rb +++ b/app/controllers/admin/m_odr_reps_controller.rb @@ -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]) diff --git a/app/models/m_odr_rep.rb b/app/models/m_odr_rep.rb index ffd6bc8..dcc0941 100644 --- a/app/models/m_odr_rep.rb +++ b/app/models/m_odr_rep.rb @@ -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 diff --git a/app/views/admin/m_odr_reps/_left_column.html.haml b/app/views/admin/m_odr_reps/_left_column.html.haml index 47d3bc8..ab245f8 100644 --- a/app/views/admin/m_odr_reps/_left_column.html.haml +++ b/app/views/admin/m_odr_reps/_left_column.html.haml @@ -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" + \ No newline at end of file diff --git a/app/views/admin/m_odr_reps/ba.html.haml b/app/views/admin/m_odr_reps/ba.html.haml new file mode 100644 index 0000000..1a12176 --- /dev/null +++ b/app/views/admin/m_odr_reps/ba.html.haml @@ -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; + + } + } \ No newline at end of file diff --git a/app/views/admin/m_odrs/_form.html.haml b/app/views/admin/m_odrs/_form.html.haml index 20e56cd..de11e7f 100644 --- a/app/views/admin/m_odrs/_form.html.haml +++ b/app/views/admin/m_odrs/_form.html.haml @@ -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) :" diff --git a/ba.js b/ba.js new file mode 100644 index 0000000..f5e7867 --- /dev/null +++ b/ba.js @@ -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(); \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 55c6d4c..08f503c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -220,6 +220,8 @@ Rails.application.routes.draw do get :send_mail get :refuse + get :ba + end collection do