diff --git a/Gemfile.lock b/Gemfile.lock
index 9eaba84cf..851717a67 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -35,7 +35,7 @@ GEM
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
- addressable (2.7.0)
+ addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
arel (6.0.4)
ast (2.4.0)
@@ -248,7 +248,7 @@ GEM
pry-stack_explorer (0.4.9.3)
binding_of_caller (>= 0.7)
pry (>= 0.9.11)
- public_suffix (4.0.3)
+ public_suffix (4.0.6)
puma (4.3.8)
nio4r (~> 2.0)
rack (1.6.13)
diff --git a/app/pdfs/invoice.rb b/app/pdfs/invoice.rb
index a437e1d10..d5339deb0 100644
--- a/app/pdfs/invoice.rb
+++ b/app/pdfs/invoice.rb
@@ -19,6 +19,7 @@ def build_struct
sales_tax_number: processing_contract.sales_tax_number,
tax_number: processing_contract.tax_number,
issues_vat: contract.localpool.billing_detail.issues_vat,
+ leg_single: contract.localpool.billing_detail.leg_single == nil ? false : contract.localpool.billing_detail.leg_single,
contractor: build_contractor,
powertaker: build_powertaker,
no_contact: contact(powertaker).nil?,
@@ -214,6 +215,7 @@ def calculate_taxes(amount_brutto, vat)
def build_billing
issues_vat = contract.localpool.billing_detail.issues_vat
+ leg_single = contract.localpool.billing_detail.leg_single == nil ? false : contract.localpool.billing_detail.leg_single
vat = Vat.current.amount
{
date: @billing.last_date,
diff --git a/app/pdfs/invoice.slim b/app/pdfs/invoice.slim
index 2e4767fa9..0642cb67c 100644
--- a/app/pdfs/invoice.slim
+++ b/app/pdfs/invoice.slim
@@ -144,7 +144,9 @@ html
p
i #{powertaker.email}
p.is-pull-right #{contractor.city}, den #{Date.today.strftime("%d.%m.%Y")}
- h2.clear Lokale Energiegruppe #{localpool.name}: Strom #{billing_type} #{billing_year}
+
+
+ h2.clear #{leg_single ? 'Direktstromlieferung' : 'Lokale Energiegruppe'} #{localpool.name}: Strom #{billing_type} #{billing_year}
Rechnungsnummer: #{billing.number}
table.no-border
tr
@@ -161,7 +163,7 @@ html
td.no-border.no-padding.pl #{billing_year}
p #{powertaker.addressing},
- p vielen Dank, dass Sie aus der Energiegruppe #{localpool.name} Strom #{tense}. Dies ist Ihre Stromrechnung #{billing_year}:
+ p vielen Dank, dass Sie aus der #{leg_single ? '' : 'Energiegruppe'} #{localpool.name} Strom #{tense}. Dies ist Ihre Stromrechnung #{billing_year}:
div
h2 Bezugsmenge
- items.each do |item|
@@ -262,7 +264,7 @@ html
div.log
- unless billing_ends_contract
h2 Ihre Vertragskonditionen
- p Die aktuellen Preise für Ihren Vertrag in der Energiegruppe #{localpool.name} betragen:
+ p Die aktuellen Preise für Ihren Vertrag in der #{leg_single ? '' : 'Energiegruppe'} #{localpool.name} betragen:
Grundpreis, (Grundpreis netto): #{current_tariff.baseprice_euros_per_month_brutto} €/Monat, (#{current_tariff.baseprice_euros_per_month_netto} €/Monat)
Arbeitspreis, (Arbeitspreis netto): #{current_tariff.energyprice_cents_per_kwh_brutto} Cent/kWh, (#{current_tariff.energyprice_cents_per_kwh_netto} Cent/kWh)
@@ -284,11 +286,12 @@ html
p Der Gesetzgeber verpflichtet uns, darzustellen, wie hoch Ihr Jahresbezug im Vergleich zu einem Referenzwert ist.
- else
p Der Gesetzgeber verpflichtet uns, darzustellen, wie hoch Ihr Jahresbezug im Vergleich zu einem Referenzwert ist. Dieser Vergleich, den Sie der Grafik entnehmen können, hinkt natürlich, da er die äußeren Gegebenheiten eines Haushaltes, zum Beispiel elektrische Warmwasserbereitung, nicht berücksichtigt.
- / chart goes here
- div#chart-one.bc-chart.horizontal.is-small
- div.bc-chart-container
- p.is-small Quelle: Statistisches Bundesamt
- Sofern kein volles Jahr Strom bezogen wurde, wird die Strommenge auf ein ganzes Jahr hochgerechnet
+ / chart goes here
+ - if leg_single == false
+ div#chart-one.bc-chart.horizontal.is-small
+ div.bc-chart-container
+ p.is-small Quelle: Statistisches Bundesamt
+ Sofern kein volles Jahr Strom bezogen wurde, wird die Strommenge auf ein ganzes Jahr hochgerechnet
div.wrapper
////// Energy Report (start) /////
div.log
@@ -296,18 +299,22 @@ html
p Nachfolgend einige Fakten und Kennzahlen zu Ihrer Energiegruppe #{localpool.name} für das Jahr #{billing_year}:
table.no-border.energy-report
tr
- td.sand
- p
- | Autarkiegrad (wieviel des insgesamt verbrauchten Stroms wurde vor Ort produziert?)
- p.is-larger #{energy_report.self_sufficiency_report} %
+ - if leg_single == false
+ td.sand
+ p
+ | Autarkiegrad (wieviel des insgesamt verbrauchten Stroms wurde vor Ort produziert?)
+ p.is-larger #{energy_report.self_sufficiency_report} %
+ - else
+ td
td.mint
p
| Lokalität (wie groß ist die Entfernung zwischen Stromerzeugungsanlage[n] und Verbrauchsstellen?)
p.is-larger O km
- td.custard
- p
- | Nutzungsgrad (wieviel des lokal produzierten Stroms wurde vor Ort verbraucht?)
- p.is-larger #{energy_report.utilization_report} %
+ - if leg_single == false
+ td.custard
+ p
+ | Nutzungsgrad (wieviel des lokal produzierten Stroms wurde vor Ort verbraucht?)
+ p.is-larger #{energy_report.utilization_report} %
tr
td.sky
p
@@ -333,10 +340,11 @@ html
- else
p.is-medium #{energy_report.tech}
tr
- td.cornflower
- p
- | Reststrom (von welchem Lieferant stammt der Reststrom über das öffentliche Netz?)
- p.is-larger #{energy_report.electricity_supplier=='Buzzn GmbH' ? 'BUZZN GmbH' : energy_report.electricity_supplier}
+ - if leg_single == false
+ td.cornflower
+ p
+ | Reststrom (von welchem Lieferant stammt der Reststrom über das öffentliche Netz?)
+ p.is-larger #{energy_report.electricity_supplier=='Buzzn GmbH' ? 'BUZZN GmbH' : energy_report.electricity_supplier}
td.glass
/ p
/ | Autarkiegrad (wieviel des insgesamt verbrauchten Stroms wurde vor Ort produziert?)
@@ -385,6 +393,17 @@ html
div.bc-chart-container.col-half
div.bc-legend-container.col-half
div.clear
+ div.col-2nd.is-pull-right.no-margin
+ p Entspricht bei nicht zertifiziertem PV Anlagen dem ETSO-E Energieträgermix
+ p Mit Zertifizierung 100% Sonstige erneuerbare Energien
+ div.clear
+
+ / table.no-border.full-width
+ / tr
+ / td
+ / td - Entspricht bei nicht zertifiziertem PV Anlagen dem ETSO-E Energieträgermix
+ / / td - Mit Zertifizierung 100% Sonstige erneuerbare Energien
+ / div.clear
h2 Umweltauswirkungen je Kilowattstunde
div.narrow
table.no-border.full-width
diff --git a/db/migrate/068_add_leg_single_to_billing_detail.rb b/db/migrate/068_add_leg_single_to_billing_detail.rb
new file mode 100644
index 000000000..321519c2f
--- /dev/null
+++ b/db/migrate/068_add_leg_single_to_billing_detail.rb
@@ -0,0 +1,11 @@
+class AddLegSingleToBillingDetail < ActiveRecord::Migration
+
+ def up
+ add_column :billing_details, :leg_single, :boolean
+ end
+
+ def down
+ remove_column :billing_details, :leg_single
+ end
+
+end
\ No newline at end of file
diff --git a/lib/buzzn/resources/billing_detail_resource.rb b/lib/buzzn/resources/billing_detail_resource.rb
index 8dc6c47f9..eca3cca92 100644
--- a/lib/buzzn/resources/billing_detail_resource.rb
+++ b/lib/buzzn/resources/billing_detail_resource.rb
@@ -6,6 +6,7 @@ class BillingDetailResource < Buzzn::Resource::Entity
:reduced_power_factor,
:automatic_abschlag_adjust,
:automatic_abschlag_threshold_cents,
- :issues_vat
+ :issues_vat,
+ :leg_single
end
diff --git a/lib/buzzn/schemas/constraints/billing_detail.rb b/lib/buzzn/schemas/constraints/billing_detail.rb
index 753d0f6db..3e021baea 100644
--- a/lib/buzzn/schemas/constraints/billing_detail.rb
+++ b/lib/buzzn/schemas/constraints/billing_detail.rb
@@ -2,8 +2,10 @@
Schemas::Constraints::BillingDetail = Schemas::Support.Form do
required(:issues_vat).value(:bool?)
+ required(:leg_single).value(:bool?)
required(:reduced_power_amount).value(:float?, gteq?: 0)
required(:reduced_power_factor).value(:float?, gteq?: 0, lt?: 1)
required(:automatic_abschlag_adjust).value(:bool?)
required(:automatic_abschlag_threshold_cents).value(:float?, gteq?: 0)
+ optional(:leg_single).value(:bool?)
end
diff --git a/lib/buzzn/schemas/transactions/admin/billing_detail/update.rb b/lib/buzzn/schemas/transactions/admin/billing_detail/update.rb
index 048ec48a3..534ddc36d 100644
--- a/lib/buzzn/schemas/transactions/admin/billing_detail/update.rb
+++ b/lib/buzzn/schemas/transactions/admin/billing_detail/update.rb
@@ -7,4 +7,5 @@
optional(:automatic_abschlag_adjust).filled(:bool?)
optional(:automatic_abschlag_threshold_cents).filled(:float?).value(gteq?: 0)
optional(:issues_vat).filled(:bool?)
+ optional(:leg_single).filled(:bool?)
end