Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 9fda7972

Von Bernd Bleßmann vor mehr als 4 Jahren hinzugefügt

  • ID 9fda7972d8dd37f1a760a7b430b638c202aac2b7
  • Vorgänger c4a045af
  • Nachfolger b1817cb6

Wechselkurs pro Angebot/Auftrag: DB-Upgrade-Skript + Rose

exchangerate direkt in Tabelle oe ablegen.

Die Implementierung, um bei Angeboten/Aufträgen den Wechselkurs pro Beleg
zu speichern folgt in weiteren commits und wird erstmal nur für den neuen
Auftrags-Controller umgesetzt.

Bezieht sich auch auf #135
Refs #135

Unterschiede anzeigen:

SL/DB/MetaSetup/Order.pm
21 21
  delivery_vendor_id      => { type => 'integer' },
22 22
  department_id           => { type => 'integer' },
23 23
  employee_id             => { type => 'integer' },
24
  exchangerate            => { type => 'numeric', precision => 15, scale => 5 },
24 25
  expected_billing_date   => { type => 'date' },
25 26
  globalproject_id        => { type => 'integer' },
26 27
  id                      => { type => 'integer', not_null => 1, sequence => 'id' },
sql/Pg-upgrade2/exchangerate_in_oe.sql
1
-- @tag: exchangerate_in_oe
2
-- @description: Wechselkurs pro Angebot/Auftrag in Belegtabelle speichern
3
-- @depends: release_3_5_5
4

  
5
ALTER TABLE oe ADD COLUMN exchangerate NUMERIC(15,5);
6

  
7
WITH table_ex AS
8
  (SELECT oe.id, COALESCE(CASE WHEN customer_id IS NOT NULL THEN buy ELSE sell END, 1.0) AS exchangerate FROM oe
9
    LEFT JOIN exchangerate ON (oe.transdate = exchangerate.transdate AND oe.currency_id = exchangerate.currency_id)
10
    WHERE oe.currency_id != (SELECT currency_id FROM defaults))
11
  UPDATE oe SET exchangerate = (SELECT exchangerate FROM table_ex WHERE table_ex.id = oe.id)
12
    WHERE EXISTS (SELECT table_ex.exchangerate FROM table_ex WHERE table_ex.id = oe.id);

Auch abrufbar als: Unified diff