Skip to content

Commit

Permalink
patch: convert existing currency values to precision adjusted int str…
Browse files Browse the repository at this point in the history
…ings
  • Loading branch information
18alantom committed Dec 2, 2021
1 parent fb84a33 commit 5a725d5
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
41 changes: 41 additions & 0 deletions patches/0.0.4/convertCurrencyToStrings.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import frappe from 'frappejs';

function getTablesToConvert() {
// Do not change loops to map, doesn't work for some reason.
const toConvert = [];
for (let key in frappe.models) {
const model = frappe.models[key];

const fieldsToConvert = [];
for (let i in model.fields) {
const field = model.fields[i];

if (field.fieldtype === 'Currency') {
fieldsToConvert.push(field.fieldname);
}
}

if (fieldsToConvert.length > 0 && !model.isSingle && !model.basedOn) {
toConvert.push({ name: key, fields: fieldsToConvert });
}
}

return toConvert;
}

export default async function execute() {
const toConvert = getTablesToConvert();
for (let { name, fields } of toConvert) {
const rows = await frappe.db.knex(name);
const convertedRows = rows.map((row) => {
for (let field of fields) {
if (row[field] === null) {
continue;
}
row[field] = frappe.pesa(row[field]).internal.bigint.toString();
}
return row;
});
await frappe.db.prestigeTheTable(name, convertedRows);
}
}
5 changes: 5 additions & 0 deletions patches/patches.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,10 @@
"version": "0.0.3",
"fileName": "makePaymentRefIdNullable",
"beforeMigrate": true
},
{
"version": "0.0.4",
"fileName": "convertCurrencyToStrings",
"beforeMigrate": true
}
]

0 comments on commit 5a725d5

Please sign in to comment.