2
0
mirror of https://github.com/frappe/books.git synced 2024-09-20 11:29:00 +00:00

Fix DateTime + error logs (#106)

This commit is contained in:
Nishchith K 2019-01-12 17:40:52 +05:30 committed by Faris Ansari
parent 8bdce07a00
commit 9053f4a710
3 changed files with 54 additions and 39 deletions

View File

@ -13,8 +13,13 @@ module.exports = class sqliteDatabase extends Database {
if (dbPath) {
this.dbPath = dbPath;
}
return new Promise(resolve => {
this.conn = new sqlite3.Database(this.dbPath, () => {
return new Promise((resolve, reject) => {
this.conn = new sqlite3.Database(this.dbPath, (err) => {
if (err) {
console.log(err);
reject(err);
return;
}
if (debug) {
this.conn.on('trace', (trace) => console.log(trace));
}
@ -211,6 +216,7 @@ module.exports = class sqliteDatabase extends Database {
return new Promise((resolve, reject) => {
this.conn.run(query, params, (err) => {
if (err) {
console.error('Error in sql:', query);
reject(err);
} else {
resolve();
@ -220,8 +226,12 @@ module.exports = class sqliteDatabase extends Database {
}
sql(query, params) {
return new Promise((resolve) => {
return new Promise((resolve, reject) => {
this.conn.all(query, params, (err, rows) => {
if (err) {
console.error('Error in sql:', query);
reject(err)
}
resolve(rows);
});
});

View File

@ -52,27 +52,27 @@ module.exports = class BaseDocument extends Observable {
async applyChange(fieldname) {
if (await this.applyFormula()) {
// multiple changes
await this.trigger('change', { doc: this });
await this.trigger('change', {
doc: this
});
} else {
// no other change, trigger control refresh
await this.trigger('change', { doc: this, fieldname: fieldname });
await this.trigger('change', {
doc: this,
fieldname: fieldname
});
}
}
setDefaults() {
for (let field of this.meta.fields) {
if (this[field.fieldname]===null || this[field.fieldname]===undefined) {
if (this[field.fieldname] === null || this[field.fieldname] === undefined) {
let defaultValue = null;
if (field.fieldtype === 'Date') {
defaultValue = (new Date()).toISOString().substr(0, 10);
}
if (field.fieldtype === 'Table') {
defaultValue = [];
}
if (field.default) {
defaultValue = field.default;
}
@ -165,12 +165,14 @@ module.exports = class BaseDocument extends Observable {
this.clearValues();
Object.assign(this, data);
this._dirty = false;
this.trigger('change', {doc: this});
this.trigger('change', {
doc: this
});
}
clearValues() {
for (let field of this.meta.getValidFields()) {
if(this[field.fieldname]) {
if (this[field.fieldname]) {
delete this[field.fieldname];
}
}
@ -179,8 +181,8 @@ module.exports = class BaseDocument extends Observable {
setChildIdx() {
// renumber children
for (let field of this.meta.getValidFields()) {
if (field.fieldtype==='Table') {
for(let i=0; i < (this[field.fieldname] || []).length; i++) {
if (field.fieldtype === 'Table') {
for (let i = 0; i < (this[field.fieldname] || []).length; i++) {
this[field.fieldname][i].idx = i;
}
}
@ -227,12 +229,12 @@ module.exports = class BaseDocument extends Observable {
// for each row
for (let row of this[tablefield.fieldname]) {
for (let field of formulaFields) {
if (shouldApplyFormula(field, row)) {
const val = await field.formula(row, doc);
if (val !== false && val !== undefined) {
row[field.fieldname] = val;
if (shouldApplyFormula(field, row)) {
const val = await field.formula(row, doc);
if (val !== false && val !== undefined) {
row[field.fieldname] = val;
}
}
}
}
}
}
@ -240,27 +242,27 @@ module.exports = class BaseDocument extends Observable {
// parent
for (let field of this.meta.getFormulaFields()) {
if (shouldApplyFormula(field, doc)) {
const val = await field.formula(doc);
if (val !== false && val !== undefined) {
doc[field.fieldname] = val;
if (shouldApplyFormula(field, doc)) {
const val = await field.formula(doc);
if (val !== false && val !== undefined) {
doc[field.fieldname] = val;
}
}
}
}
return true;
function shouldApplyFormula (field, doc) {
if (field.readOnly) {
return true;
}
if (!frappe.isServer || frappe.isElectron) {
if (doc[field.fieldname] == null || doc[field.fieldname] == '') {
return true;
function shouldApplyFormula(field, doc) {
if (field.readOnly) {
return true;
}
}
return false;
if (!frappe.isServer || frappe.isElectron) {
if (doc[field.fieldname] == null || doc[field.fieldname] == '') {
return true;
}
}
return false;
}
}
@ -349,6 +351,6 @@ module.exports = class BaseDocument extends Observable {
}
isNew() {
return this._notInserted;
return this._notInserted;
}
};
};

View File

@ -15,7 +15,10 @@ module.exports = class Observable {
set(key, value) {
this[key] = value;
this.trigger('change', {doc: this, fieldname: key});
this.trigger('change', {
doc: this,
fieldname: key
});
}
on(event, listener) {
@ -39,7 +42,7 @@ module.exports = class Observable {
this._addListener('onceListeners', event, listener);
}
async trigger(event, params, throttle=false) {
async trigger(event, params, throttle = false) {
if (throttle) {
if (this._throttled(event, params, throttle)) return;
params = [params]