- feat: Sales estimates.

- feat: Sales invoices.
- feat: Sales payment receives.
- feat: Purchases bills.
- feat: Purchases bills payments that made to the vendors.
This commit is contained in:
Ahmed Bouhuolia
2020-08-03 22:46:50 +02:00
parent 56278a25f0
commit db28cd2aef
56 changed files with 3290 additions and 1208 deletions

View File

@@ -15,4 +15,41 @@ export default class Vendor extends TenantModel {
static get timestamps() {
return ['createdAt', 'updatedAt'];
}
/**
* Changes the vendor balance.
* @param {Integer} customerId
* @param {Number} amount
* @return {Promise}
*/
static async changeBalance(vendorId, amount) {
const changeMethod = amount > 0 ? 'increment' : 'decrement';
return this.tenant()
.query()
.where('id', vendorId)
[changeMethod]('balance', Math.abs(amount));
}
static changeDiffBalance(vendorId, oldVendorId, amount, oldAmount) {
const diffAmount = (amount - oldAmount) * -1;
const asyncOpers = [];
if (vendorId != oldVendorId) {
const oldVendorOper = Vendor.changeBalance(
oldVendorId,
oldAmount
);
const vendorOper = Vendor.changeBalance(
vendorId,
(amount + diffAmount) * -1
);
asyncOpers.push(vendorOper);
asyncOpers.push(oldVendorOper);
} else {
const balanceChangeOper = Vendor.changeBalance(vendorId, diffAmount);
asyncOpers.push(balanceChangeOper);
}
return Promise.all(asyncOpers);
}
}