Initial
This commit is contained in:
62
src/utils/assets.js
Normal file
62
src/utils/assets.js
Normal file
@@ -0,0 +1,62 @@
|
||||
export function blankAsset() {
|
||||
const today = new Date().toISOString().slice(0, 10);
|
||||
return {
|
||||
asset_id: '',
|
||||
entity_id: null,
|
||||
description: '',
|
||||
category: 'Computer Equipment',
|
||||
status: 'in_service',
|
||||
acquisition_cost: 0,
|
||||
acquired_date: today,
|
||||
in_service_date: today,
|
||||
useful_life_months: 60,
|
||||
salvage_value: 0,
|
||||
depreciation_method: 'straight_line',
|
||||
location: '',
|
||||
department: '',
|
||||
custodian: '',
|
||||
vendor: '',
|
||||
serial_number: '',
|
||||
invoice_number: '',
|
||||
gl_asset_account: '',
|
||||
gl_expense_account: '',
|
||||
notes: '',
|
||||
custom_fields: {}
|
||||
};
|
||||
}
|
||||
|
||||
export function slugFieldKey(value) {
|
||||
return String(value || '')
|
||||
.trim()
|
||||
.toLowerCase()
|
||||
.replace(/[^a-z0-9]+/g, '_')
|
||||
.replace(/^_+|_+$/g, '');
|
||||
}
|
||||
|
||||
export function normalizeCustomFields(fields) {
|
||||
return (fields || [])
|
||||
.map((field) => ({
|
||||
key: slugFieldKey(field.key || field.label),
|
||||
label: field.label || field.key || 'Custom field',
|
||||
type: ['text', 'date', 'bool', 'numeric'].includes(field.type) ? field.type : 'text',
|
||||
required: Boolean(field.required),
|
||||
defaultValue: field.defaultValue ?? field.default ?? ''
|
||||
}))
|
||||
.filter((field) => field.key);
|
||||
}
|
||||
|
||||
export function defaultValueForField(field) {
|
||||
if (field.defaultValue !== undefined && field.defaultValue !== null && field.defaultValue !== '') {
|
||||
if (field.type === 'bool') return Boolean(field.defaultValue);
|
||||
if (field.type === 'numeric') return Number(field.defaultValue);
|
||||
return field.defaultValue;
|
||||
}
|
||||
if (field.type === 'bool') return false;
|
||||
return '';
|
||||
}
|
||||
|
||||
export function inputTypeForCustomField(field) {
|
||||
if (field.type === 'numeric') return 'number';
|
||||
if (field.type === 'date') return 'date';
|
||||
return 'text';
|
||||
}
|
||||
Reference in New Issue
Block a user