ish_manager 0.1.8.462 → 0.1.8.463

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d544fb840059764a4d3c9c557416c0ec338ca5ce9f2e109aff72bc3743e844a6
4
- data.tar.gz: 82efc85b76bde5801fb399907e341d0f944f7813d4800a569f5e6109d3572878
3
+ metadata.gz: 3e3d19cd10fe96e5cb993413b121bc44c107cd793ca8280f193d18a5967b6fd1
4
+ data.tar.gz: 8269b21b2d010573fbb04ea80282e96507a5bc01bbf98c98e0cdd46157d3c1e2
5
5
  SHA512:
6
- metadata.gz: 9a308e33cb23380dcc77f7b7518cfde43587d3f2260745dd9c808990c9acbefa9412a52e13e8341da39cc3b17f467957426590366927c5f1431740d54f3ffc80
7
- data.tar.gz: 49c3077ff88f4139b3bc2a25f57202b21ae0f26784dca13eb486f24c1a0e7a02bbb12f1c593a04ff4da571d24523f7c348f942e7cfdfa437d00e830f8bb0223f
6
+ metadata.gz: d623e2070e7f1f933960fc4c71aad603e77a6391aa7886e9a22b610d3c7c76d89e184aa346d8096f2416234d85623a4c59b58caa78ec3fb0b7b9bb19ef488c32
7
+ data.tar.gz: 58fe7332a16091c22fb181fd76f6c33cfeb44093d52196f198f5bf01dc66ef749566539c09646269799bd5002c4e3512031fbded7968d5090dcdafa7332600be
@@ -1,28 +1,52 @@
1
1
  require 'prawn'
2
+ require 'prawn/table'
2
3
 
3
4
  class ::IshManager::InvoicesController < IshManager::ApplicationController
4
5
 
5
6
  before_action :set_lists
6
7
 
7
- ##
8
- ## Prawn/pdf unit of measure is 1/72" .
8
+ def create_monthly_pdf
9
+ @leadset = Leadset.find params[:leadset_id]
10
+ authorize! :create_monthly_invoice_pdf, @leadset
11
+
12
+ @invoice = Ish::Invoice.where({ leadset_id: @leadset.id, month_on: params[:month_on] }).first
13
+ if @invoice
14
+ flash_alert "Already created this invoice."
15
+ redirect_to controller: :leadsets, action: :show, id: @leadset.id
16
+ return
17
+ end
18
+
19
+ @invoice = Ish::Invoice.create({ leadset_id: @leadset.id, month_on: params[:month_on] })
20
+
21
+ @pdf = @invoice.generate_monthly_invoice params[:month_on]
22
+ filename = "invoice-#{@invoice.number}.pdf"
23
+ path = Rails.root.join 'tmp', filename
24
+ @pdf.render_file path
25
+ data = File.read path
26
+ File.delete(path) if File.exist?(path)
27
+
28
+ send_data( data, { :filename => filename,
29
+ :disposition => params[:disposition] ? params[:disposition] : :attachment,
30
+ :type => 'application/pdf'
31
+ })
32
+ end
33
+
34
+
35
+ ## @TODO: obsolete, remove
9
36
  ##
10
37
  def create_pdf
11
38
  @invoice = Ish::Invoice.new
12
39
  authorize! :new, @invoice
13
40
 
14
- tree_img_url = "https://wasya.co/wp-content/uploads/2023/09/tree-1.jpg"
15
41
  tree_img_url = "#{Rails.root.join('public')}/tree-1.jpg"
16
42
  wasya_co_logo_url = "#{Rails.root.join('public')}/259x66-WasyaCo-logo.png"
17
43
 
18
- ## canvas width: 612, height: 792
19
44
  pdf = Prawn::Document.new
20
45
 
21
46
  pdf.canvas do
22
47
  pdf.image tree_img_url, at: [ 0, 792 ], width: 612
23
48
 
24
49
  pdf.fill_color 'ffffff'
25
- # pdf.stroke_color '000000'
26
50
  pdf.transparent( 0.75 ) do
27
51
  pdf.fill_rectangle [0, 792], 612, 792
28
52
  end
@@ -30,38 +54,57 @@ class ::IshManager::InvoicesController < IshManager::ApplicationController
30
54
 
31
55
  pdf.image wasya_co_logo_url, at: [252, 720], width: 108 ## 1.5"
32
56
 
33
- pdf.bounding_box( [0.75*72, 9.5*72], width: 3.25*72, height: 0.75*72 ) do
34
- pdf.stroke_bounds
57
+ pdf.bounding_box( [0.75*72, 9.25*72], width: 3.25*72, height: 0.75*72 ) do
58
+ pdf.text "From:"
59
+ pdf.text "Wasya Co"
60
+ pdf.text "(415) 948-0368"
35
61
  end
36
62
 
37
- pdf.bounding_box( [4.5*72, 9.5*72], width: 3.25*72, height: 0.75*72 ) do
38
- pdf.stroke_bounds
63
+ pdf.bounding_box( [4.5*72, 9.25*72], width: 3.25*72, height: 0.75*72 ) do
64
+ pdf.text "Stats:"
65
+ pdf.text "Date: #{ '2023-09-07' }"
66
+ pdf.text "Invoice # #{ '111' }"
39
67
  end
40
68
 
41
- pdf.bounding_box( [0.75*72, 8.5*72], width: 3.25*72, height: 0.75*72 ) do
42
- pdf.stroke_bounds
69
+ pdf.bounding_box( [0.75*72, 8.25*72], width: 3.25*72, height: 0.75*72 ) do
70
+ pdf.text "To:"
71
+ pdf.text "Creen Enterprise"
43
72
  end
44
73
 
45
- pdf.bounding_box( [4.5*72, 8.5*72], width: 3.25*72, height: 0.75*72 ) do
46
- pdf.stroke_bounds
74
+ pdf.bounding_box( [4.5*72, 8.25*72], width: 3.25*72, height: 0.75*72 ) do
75
+ pdf.text "Notes:"
76
+ pdf.text "Support & various, for the month of August '23."
47
77
  end
48
78
 
49
- pdf.make_table([ ['one'],
50
- ['two'],
51
- ])
79
+ pdf.move_down 20
80
+
81
+ pdf.table([
82
+ [ 'Description', 'Type', 'Hours', 'Subtotal' ],
83
+ [ 'Part 2/2', 'indep. proj.', '-', '$3,501' ],
84
+ ], {
85
+ position: :center,
86
+ width: 7.5*72,
87
+ cell_style: {
88
+ inline_format: true,
89
+ borders: [ :bottom ]
90
+ },
91
+ } )
92
+
93
+ pdf.table([
94
+ [ 'Total' ],
95
+ [ '$3,501' ],
96
+ ], {
97
+ position: 7*72,
98
+ width: 1*72,
99
+ cell_style: {
100
+ inline_format: true,
101
+ borders: [ :bottom ]
102
+ },
103
+ } )
52
104
 
53
105
  pdf.text_box "Thank you!", at: [ 3.25*72, 1.25*72 ], width: 2*72, height: 1*72, align: :center
54
106
  end
55
107
 
56
-
57
-
58
- # pdf.text "hello, world?", align: :center
59
-
60
-
61
-
62
-
63
-
64
-
65
108
  filename = "a-summary.pdf"
66
109
  path = Rails.root.join 'tmp', filename
67
110
  pdf.render_file path
@@ -29,6 +29,11 @@
29
29
  = link_to '[+stripe]', new_invoice_stripe_path({ leadset_id: @leadset.id })
30
30
  = link_to '[+pdf]', new_invoice_pdf_path({ leadset_id: @leadset.id })
31
31
  = render 'ish_manager/invoices/index_list', invoices: @invoices
32
+
33
+ = form_tag create_monthly_invoice_for_leadset_path({ leadset_id: @leadset.id }) do
34
+ %label Create invoice for month
35
+ = text_field_tag 'month_on'
36
+ = submit_tag 'Submit', data: { confirm: 'Are you sure?' }
32
37
  %hr
33
38
 
34
39
  .col-md-6
data/config/routes.rb CHANGED
@@ -25,6 +25,7 @@ IshManager::Engine.routes.draw do
25
25
 
26
26
  get 'image_assets', to: 'image_assets#index', as: :image_assets
27
27
 
28
+ post 'invoices/create-monthly-for/:leadset_id', to: 'invoices#create_monthly_pdf', as: :create_monthly_invoice_for_leadset
28
29
  post 'invoices/create-pdf', to: 'invoices#create_pdf', as: :create_invoice_pdf
29
30
  post 'invoices/create-stripe', to: 'invoices#create_stripe', as: :create_invoice_stripe
30
31
  get 'invoices/new_pdf', to: 'invoices#new_pdf', as: :new_invoice_pdf
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ish_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8.462
4
+ version: 0.1.8.463
5
5
  platform: ruby
6
6
  authors:
7
7
  - piousbox