add server to monorepo.

This commit is contained in:
a.bouhuolia
2023-02-03 11:57:50 +02:00
parent 28e309981b
commit 80b97b5fdc
1303 changed files with 137049 additions and 0 deletions

View File

@@ -0,0 +1,135 @@
import { Model } from 'objection';
import TenantModel from 'models/TenantModel';
export default class ItemEntry extends TenantModel {
/**
* Table name.
*/
static get tableName() {
return 'items_entries';
}
/**
* Timestamps columns.
*/
get timestamps() {
return ['created_at', 'updated_at'];
}
static get virtualAttributes() {
return ['amount'];
}
get amount() {
return ItemEntry.calcAmount(this);
}
static calcAmount(itemEntry) {
const { discount, quantity, rate } = itemEntry;
const total = quantity * rate;
return discount ? total - total * discount * 0.01 : total;
}
static get relationMappings() {
const Item = require('models/Item');
const BillLandedCostEntry = require('models/BillLandedCostEntry');
const SaleInvoice = require('models/SaleInvoice');
const Bill = require('models/Bill');
const SaleReceipt = require('models/SaleReceipt');
const SaleEstimate = require('models/SaleEstimate');
const ProjectTask = require('models/Task');
const Expense = require('models/Expense');
return {
item: {
relation: Model.BelongsToOneRelation,
modelClass: Item.default,
join: {
from: 'items_entries.itemId',
to: 'items.id',
},
},
allocatedCostEntries: {
relation: Model.HasManyRelation,
modelClass: BillLandedCostEntry.default,
join: {
from: 'items_entries.referenceId',
to: 'bill_located_cost_entries.entryId',
},
},
invoice: {
relation: Model.BelongsToOneRelation,
modelClass: SaleInvoice.default,
join: {
from: 'items_entries.referenceId',
to: 'sales_invoices.id',
},
},
bill: {
relation: Model.BelongsToOneRelation,
modelClass: Bill.default,
join: {
from: 'items_entries.referenceId',
to: 'bills.id',
},
},
estimate: {
relation: Model.BelongsToOneRelation,
modelClass: SaleEstimate.default,
join: {
from: 'items_entries.referenceId',
to: 'sales_estimates.id',
},
},
receipt: {
relation: Model.BelongsToOneRelation,
modelClass: SaleReceipt.default,
join: {
from: 'items_entries.referenceId',
to: 'sales_receipts.id',
},
},
/**
*
*/
projectTaskRef: {
relation: Model.HasManyRelation,
modelClass: ProjectTask.default,
join: {
from: 'items_entries.projectRefId',
to: 'tasks.id',
},
},
/**
*
*/
projectExpenseRef: {
relation: Model.HasManyRelation,
modelClass: Expense.default,
join: {
from: 'items_entries.projectRefId',
to: 'expenses_transactions.id',
},
},
/**
*
*/
projectBillRef: {
relation: Model.HasManyRelation,
modelClass: Bill.default,
join: {
from: 'items_entries.projectRefId',
to: 'bills.id',
},
},
};
}
}