lucadeal 0.2.22 → 0.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 364352a3a1e23daeffffcd2750f711617677866abf7576fe1f821404f35fa439
4
- data.tar.gz: f7d5eb22d3df29386be2bac8fd6809af96f78663342e91f16a56bda8d2e64e58
3
+ metadata.gz: 5f3d23a1f082ee44833db42f3cf4dbdecc0d078ea3ca6499d5cf77e6d235580a
4
+ data.tar.gz: c2ea468ea064bb865d0b481d9717a03f11afe212f0bfd3b58ac43722116a95e7
5
5
  SHA512:
6
- metadata.gz: 2cffac9d4b4092a312311d8096d7e77c1b9b2e945d4f31a6a0d81bf0842d137ddf0e3dd04e261f07a051ca634c89d10f8020211aed9d9dc9339a2926002d7a56
7
- data.tar.gz: 1ab6a3eb3cab72dcdc19efed5a417be613d8ca8f2aded7258b6ad806cec9b0096d81b879763d978809099307db10260087c1fc98df1331c6a7d880811bec5122
6
+ metadata.gz: 545d6acb5b7837497c30d17a42c6a32611186f2e12f9821d116c9aa3ed9735dc1c8bc2c072d1439c9e21e1fd38d7398de770ffd9fd835352f4565f96a18a19ca
7
+ data.tar.gz: c8cf01067781332a241138ab9b253d282902a3838a19d2f9623d9eb29c6c4a3432e7d0e6818bc67a3e3b3e682e5ba3c4c5c128a90f93b3f91dcadca0285ea2f4
@@ -1,4 +1,8 @@
1
- ## LucaDeal 0.2.25
1
+ ## LucaDeal 0.2.23
2
+
3
+ * implement `luca-deal invoices list --mail`: payment list via HTML mail
4
+
5
+ ## LucaDeal 0.2.22
2
6
 
3
7
  * Breaking change: export key 'value' -> 'amount'
4
8
 
@@ -174,6 +174,8 @@ class LucaCmd
174
174
  end
175
175
  if params[:html]
176
176
  LucaDeal::Invoice.new(date).preview_stdout
177
+ elsif params[:mail]
178
+ LucaDeal::Invoice.new(date).stats_email
177
179
  else
178
180
  render(LucaDeal::Invoice.new(date).stats(count || 1), params)
179
181
  end
@@ -344,6 +346,7 @@ when /invoices?/, 'i'
344
346
  opt.on('--nu', 'show table in nushell') { |_v| params[:output] = 'nu' }
345
347
  opt.on('-o', '--output VAL', 'output serialized data') { |v| params[:output] = v }
346
348
  opt.on('--html', 'output html invoices') { |_v| params[:html] = 'monthly' }
349
+ opt.on('--mail', 'send payment list by email') { |_v| params[:mail] = true }
347
350
  args = opt.parse(ARGV)
348
351
  LucaCmd::Invoice.list(args, params)
349
352
  end
@@ -116,6 +116,29 @@ module LucaDeal
116
116
  end
117
117
  end
118
118
 
119
+ # send payment list to preview address or from address.
120
+ #
121
+ def stats_email
122
+ {}.tap do |res|
123
+ stats(2).each.with_index(1) do |stat, i|
124
+ @issue_date = stat['issue_date'] if i == 1
125
+ stat['records'].each do |record|
126
+ res[record['customer']] ||= {}
127
+ res[record['customer']]['customer_name'] ||= record['customer']
128
+ res[record['customer']]["amount#{i}"] ||= record['subtotal']
129
+ res[record['customer']]["tax#{i}"] ||= record['tax']
130
+ end
131
+ end
132
+ @invoices = res.values
133
+ end
134
+
135
+ mail = Mail.new
136
+ mail.to = CONFIG.dig('mail', 'preview') || CONFIG.dig('mail', 'from')
137
+ mail.subject = 'Check monthly payment list'
138
+ mail.html_part = Mail::Part.new(body: render_erb(search_template('monthly-payment-list.html.erb')), content_type: 'text/html; charset=UTF-8')
139
+ LucaSupport::Mail.new(mail, PJDIR).deliver
140
+ end
141
+
119
142
  def export_json
120
143
  [].tap do |res|
121
144
  self.class.asof(@date.year, @date.month) do |dat|
@@ -0,0 +1,40 @@
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
4
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
5
+ <style>
6
+ td { text-align: right; line-height: 2em; min-width: 7em }
7
+ thead th, thead td { text-align: center }
8
+ tr.sub { font-size: .8em; color: #aaa }
9
+ </style>
10
+ </head>
11
+ <body>
12
+ <div style="margin: 1em 0">Issue date: <%= @issue_date %></div>
13
+ <table>
14
+ <thead>
15
+ <tr>
16
+ <th>#</th>
17
+ <th>Customer</th>
18
+ <th>Amount</th><th>Tax</th>
19
+ <th>Amount</th><th>Tax</th>
20
+ </tr>
21
+ <tr class="sub">
22
+ <th></th>
23
+ <th></th>
24
+ <th>This month</th><th>This month</th>
25
+ <th>Last Month</th><th>Last Month</th>
26
+ </tr>
27
+ </thead>
28
+ <tbody>
29
+ <% @invoices.each.with_index(1) do |invoice, i| %>
30
+ <tr>
31
+ <td><%= i %></td>
32
+ <td><%= invoice["customer_name"] %></td>
33
+ <td><%= invoice["amount1"] %></td><td><%= invoice["tax1"] %></td>
34
+ <td><%= invoice["amount2"] %></td><td><%= invoice["tax2"] %></td>
35
+ </tr>
36
+ <% end %>
37
+ </tbody>
38
+ </table>
39
+ </body>
40
+ </html>
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LucaDeal
4
- VERSION = '0.2.22'
4
+ VERSION = '0.2.23'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lucadeal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.22
4
+ version: 0.2.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chuma Takahiro
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-12 00:00:00.000000000 Z
11
+ date: 2021-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lucarecord
@@ -93,6 +93,7 @@ files:
93
93
  - lib/luca_deal/templates/fee-report.html.erb
94
94
  - lib/luca_deal/templates/invoice-mail.txt.erb
95
95
  - lib/luca_deal/templates/invoice.html.erb
96
+ - lib/luca_deal/templates/monthly-payment-list.html.erb
96
97
  - lib/luca_deal/version.rb
97
98
  homepage: https://github.com/chumaltd/luca/tree/master/lucadeal
98
99
  licenses: