mirror of
https://github.com/frappe/books.git
synced 2024-11-13 00:46:28 +00:00
c04098a3eb
- allow changing the scale of the print view - prevent deletion of non custom templates
63 lines
1.5 KiB
TypeScript
63 lines
1.5 KiB
TypeScript
import { Doc } from 'fyo/model/doc';
|
|
import { SchemaMap } from 'schemas/types';
|
|
import { ListsMap, ListViewSettings, ReadOnlyMap } from 'fyo/model/types';
|
|
import { ModelNameEnum } from 'models/types';
|
|
|
|
export class PrintTemplate extends Doc {
|
|
name?: string;
|
|
type?: string;
|
|
template?: string;
|
|
isCustom?: boolean;
|
|
|
|
override get canDelete(): boolean {
|
|
if (this.isCustom === false) {
|
|
return false;
|
|
}
|
|
|
|
return super.canDelete;
|
|
}
|
|
|
|
static getListViewSettings(): ListViewSettings {
|
|
return {
|
|
formRoute: ({ name }) => `/template-builder/${name}`,
|
|
columns: ['name', 'type', 'isCustom'],
|
|
};
|
|
}
|
|
|
|
readOnly: ReadOnlyMap = {
|
|
name: () => !!this.isCustom,
|
|
type: () => !!this.isCustom,
|
|
template: () => !!this.isCustom,
|
|
};
|
|
|
|
static lists: ListsMap = {
|
|
type(doc?: Doc) {
|
|
let enableInventory: boolean = false;
|
|
let schemaMap: SchemaMap = {};
|
|
if (doc) {
|
|
enableInventory = !!doc.fyo.singles.AccountingSettings?.enableInventory;
|
|
schemaMap = doc.fyo.schemaMap;
|
|
}
|
|
|
|
const models = [
|
|
ModelNameEnum.SalesInvoice,
|
|
ModelNameEnum.PurchaseInvoice,
|
|
ModelNameEnum.Payment,
|
|
];
|
|
|
|
if (enableInventory) {
|
|
models.push(
|
|
ModelNameEnum.Shipment,
|
|
ModelNameEnum.PurchaseReceipt,
|
|
ModelNameEnum.StockMovement
|
|
);
|
|
}
|
|
|
|
return models.map((value) => ({
|
|
value,
|
|
label: schemaMap[value]?.label ?? value,
|
|
}));
|
|
},
|
|
};
|
|
}
|