Skip to content

Commit 772a9ce

Browse files
authored
Create a migration for currencies with decimals different than 2 (#442)
1 parent 14ad16c commit 772a9ce

File tree

1 file changed

+258
-0
lines changed
  • prisma/migrations/20251020174024_adjust_currency_decimals

1 file changed

+258
-0
lines changed
Lines changed: 258 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,258 @@
1+
-- Migration script for currencies with non-standard decimal digits
2+
3+
-- Currencies with 0 decimal digits
4+
-- Currency: AFN
5+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'AFN';
6+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'AFN';
7+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'AFN';
8+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'AFN';
9+
10+
-- Currency: ALL
11+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'ALL';
12+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'ALL';
13+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'ALL';
14+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'ALL';
15+
16+
-- Currency: AMD
17+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'AMD';
18+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'AMD';
19+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'AMD';
20+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'AMD';
21+
22+
-- Currency: BIF
23+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'BIF';
24+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'BIF';
25+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'BIF';
26+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'BIF';
27+
28+
-- Currency: CLP
29+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'CLP';
30+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'CLP';
31+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'CLP';
32+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'CLP';
33+
34+
-- Currency: COP
35+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'COP';
36+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'COP';
37+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'COP';
38+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'COP';
39+
40+
-- Currency: CRC
41+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'CRC';
42+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'CRC';
43+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'CRC';
44+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'CRC';
45+
46+
-- Currency: DJF
47+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'DJF';
48+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'DJF';
49+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'DJF';
50+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'DJF';
51+
52+
-- Currency: GNF
53+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'GNF';
54+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'GNF';
55+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'GNF';
56+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'GNF';
57+
58+
-- Currency: HUF
59+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'HUF';
60+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'HUF';
61+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'HUF';
62+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'HUF';
63+
64+
-- Currency: IDR
65+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'IDR';
66+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'IDR';
67+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'IDR';
68+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'IDR';
69+
70+
-- Currency: IQD
71+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'IQD';
72+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'IQD';
73+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'IQD';
74+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'IQD';
75+
76+
-- Currency: IRR
77+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'IRR';
78+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'IRR';
79+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'IRR';
80+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'IRR';
81+
82+
-- Currency: ISK
83+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'ISK';
84+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'ISK';
85+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'ISK';
86+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'ISK';
87+
88+
-- Currency: JPY
89+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'JPY';
90+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'JPY';
91+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'JPY';
92+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'JPY';
93+
94+
-- Currency: KMF
95+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'KMF';
96+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'KMF';
97+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'KMF';
98+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'KMF';
99+
100+
-- Currency: KRW
101+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'KRW';
102+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'KRW';
103+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'KRW';
104+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'KRW';
105+
106+
-- Currency: LBP
107+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'LBP';
108+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'LBP';
109+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'LBP';
110+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'LBP';
111+
112+
-- Currency: MGA
113+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'MGA';
114+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'MGA';
115+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'MGA';
116+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'MGA';
117+
118+
-- Currency: MMK
119+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'MMK';
120+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'MMK';
121+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'MMK';
122+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'MMK';
123+
124+
-- Currency: MUR
125+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'MUR';
126+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'MUR';
127+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'MUR';
128+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'MUR';
129+
130+
-- Currency: PKR
131+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'PKR';
132+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'PKR';
133+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'PKR';
134+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'PKR';
135+
136+
-- Currency: PYG
137+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'PYG';
138+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'PYG';
139+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'PYG';
140+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'PYG';
141+
142+
-- Currency: RSD
143+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'RSD';
144+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'RSD';
145+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'RSD';
146+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'RSD';
147+
148+
-- Currency: RWF
149+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'RWF';
150+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'RWF';
151+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'RWF';
152+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'RWF';
153+
154+
-- Currency: SOS
155+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'SOS';
156+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'SOS';
157+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'SOS';
158+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'SOS';
159+
160+
-- Currency: SYP
161+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'SYP';
162+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'SYP';
163+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'SYP';
164+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'SYP';
165+
166+
-- Currency: TZS
167+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'TZS';
168+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'TZS';
169+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'TZS';
170+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'TZS';
171+
172+
-- Currency: UGX
173+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'UGX';
174+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'UGX';
175+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'UGX';
176+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'UGX';
177+
178+
-- Currency: UZS
179+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'UZS';
180+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'UZS';
181+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'UZS';
182+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'UZS';
183+
184+
-- Currency: VND
185+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'VND';
186+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'VND';
187+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'VND';
188+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'VND';
189+
190+
-- Currency: XAF
191+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'XAF';
192+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'XAF';
193+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'XAF';
194+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'XAF';
195+
196+
-- Currency: XOF
197+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'XOF';
198+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'XOF';
199+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'XOF';
200+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'XOF';
201+
202+
-- Currency: YER
203+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'YER';
204+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'YER';
205+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'YER';
206+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'YER';
207+
208+
-- Currency: ZMK
209+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'ZMK';
210+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'ZMK';
211+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'ZMK';
212+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'ZMK';
213+
214+
-- Currency: ZWL
215+
UPDATE "Expense" SET amount = amount / 100 WHERE currency = 'ZWL';
216+
UPDATE "Balance" SET amount = amount / 100 WHERE currency = 'ZWL';
217+
UPDATE "GroupBalance" SET amount = amount / 100 WHERE currency = 'ZWL';
218+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount / 100 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'ZWL';
219+
220+
221+
-- Currencies with 3 decimal digits
222+
-- Currency: BHD
223+
UPDATE "Expense" SET amount = amount * 10 WHERE currency = 'BHD';
224+
UPDATE "Balance" SET amount = amount * 10 WHERE currency = 'BHD';
225+
UPDATE "GroupBalance" SET amount = amount * 10 WHERE currency = 'BHD';
226+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount * 10 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'BHD';
227+
228+
-- Currency: JOD
229+
UPDATE "Expense" SET amount = amount * 10 WHERE currency = 'JOD';
230+
UPDATE "Balance" SET amount = amount * 10 WHERE currency = 'JOD';
231+
UPDATE "GroupBalance" SET amount = amount * 10 WHERE currency = 'JOD';
232+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount * 10 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'JOD';
233+
234+
-- Currency: KWD
235+
UPDATE "Expense" SET amount = amount * 10 WHERE currency = 'KWD';
236+
UPDATE "Balance" SET amount = amount * 10 WHERE currency = 'KWD';
237+
UPDATE "GroupBalance" SET amount = amount * 10 WHERE currency = 'KWD';
238+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount * 10 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'KWD';
239+
240+
-- Currency: LYD
241+
UPDATE "Expense" SET amount = amount * 10 WHERE currency = 'LYD';
242+
UPDATE "Balance" SET amount = amount * 10 WHERE currency = 'LYD';
243+
UPDATE "GroupBalance" SET amount = amount * 10 WHERE currency = 'LYD';
244+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount * 10 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'LYD';
245+
246+
-- Currency: OMR
247+
UPDATE "Expense" SET amount = amount * 10 WHERE currency = 'OMR';
248+
UPDATE "Balance" SET amount = amount * 10 WHERE currency = 'OMR';
249+
UPDATE "GroupBalance" SET amount = amount * 10 WHERE currency = 'OMR';
250+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount * 10 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'OMR';
251+
252+
-- Currency: TND
253+
UPDATE "Expense" SET amount = amount * 10 WHERE currency = 'TND';
254+
UPDATE "Balance" SET amount = amount * 10 WHERE currency = 'TND';
255+
UPDATE "GroupBalance" SET amount = amount * 10 WHERE currency = 'TND';
256+
UPDATE "ExpenseParticipant" AS p SET amount = p.amount * 10 FROM "Expense" e WHERE e.id=p."expenseId" AND currency = 'TND';
257+
258+

0 commit comments

Comments
 (0)