mirror of
https://github.com/frappe/books.git
synced 2024-12-23 11:29:03 +00:00
c10edc7132
Also allow changing a print template type, necessary to create a custom print template for this.
129 lines
4.4 KiB
TypeScript
129 lines
4.4 KiB
TypeScript
import { DefaultCashDenominations } from 'models/inventory/Point of Sale/DefaultCashDenominations';
|
|
import { Doc } from 'fyo/model/doc';
|
|
import { FiltersMap, HiddenMap } from 'fyo/model/types';
|
|
import { ModelNameEnum } from 'models/types';
|
|
import { PartyRoleEnum } from '../Party/types';
|
|
|
|
export class Defaults extends Doc {
|
|
// Auto Payments
|
|
salesPaymentAccount?: string;
|
|
purchasePaymentAccount?: string;
|
|
|
|
// Auto Stock Transfer
|
|
shipmentLocation?: string;
|
|
purchaseReceiptLocation?: string;
|
|
|
|
// Number Series
|
|
salesQuoteNumberSeries?: string;
|
|
salesInvoiceNumberSeries?: string;
|
|
purchaseInvoiceNumberSeries?: string;
|
|
journalEntryNumberSeries?: string;
|
|
paymentNumberSeries?: string;
|
|
stockMovementNumberSeries?: string;
|
|
shipmentNumberSeries?: string;
|
|
purchaseReceiptNumberSeries?: string;
|
|
|
|
// Terms
|
|
salesInvoiceTerms?: string;
|
|
purchaseInvoiceTerms?: string;
|
|
shipmentTerms?: string;
|
|
purchaseReceiptTerms?: string;
|
|
|
|
// Print Templates
|
|
salesQuotePrintTemplate?: string;
|
|
salesInvoicePrintTemplate?: string;
|
|
purchaseInvoicePrintTemplate?: string;
|
|
journalEntryPrintTemplate?: string;
|
|
paymentPrintTemplate?: string;
|
|
shipmentPrintTemplate?: string;
|
|
purchaseReceiptPrintTemplate?: string;
|
|
stockMovementPrintTemplate?: string;
|
|
|
|
// Point of Sale
|
|
posCashDenominations?: DefaultCashDenominations[];
|
|
posCustomer?: string;
|
|
|
|
static commonFilters = {
|
|
// Auto Payments
|
|
salesPaymentAccount: () => ({ isGroup: false, accountType: 'Cash' }),
|
|
purchasePaymentAccount: () => ({ isGroup: false, accountType: 'Cash' }),
|
|
// Number Series
|
|
salesQuoteNumberSeries: () => ({
|
|
referenceType: ModelNameEnum.SalesQuote,
|
|
}),
|
|
salesInvoiceNumberSeries: () => ({
|
|
referenceType: ModelNameEnum.SalesInvoice,
|
|
}),
|
|
purchaseInvoiceNumberSeries: () => ({
|
|
referenceType: ModelNameEnum.PurchaseInvoice,
|
|
}),
|
|
journalEntryNumberSeries: () => ({
|
|
referenceType: ModelNameEnum.JournalEntry,
|
|
}),
|
|
paymentNumberSeries: () => ({
|
|
referenceType: ModelNameEnum.Payment,
|
|
}),
|
|
stockMovementNumberSeries: () => ({
|
|
referenceType: ModelNameEnum.StockMovement,
|
|
}),
|
|
shipmentNumberSeries: () => ({
|
|
referenceType: ModelNameEnum.Shipment,
|
|
}),
|
|
purchaseReceiptNumberSeries: () => ({
|
|
referenceType: ModelNameEnum.PurchaseReceipt,
|
|
}),
|
|
// Print Templates
|
|
salesQuotePrintTemplate: () => ({ type: ModelNameEnum.SalesQuote }),
|
|
salesInvoicePrintTemplate: () => ({ type: ModelNameEnum.SalesInvoice }),
|
|
purchaseInvoicePrintTemplate: () => ({
|
|
type: ModelNameEnum.PurchaseInvoice,
|
|
}),
|
|
journalEntryPrintTemplate: () => ({ type: ModelNameEnum.JournalEntry }),
|
|
paymentPrintTemplate: () => ({ type: ModelNameEnum.Payment }),
|
|
shipmentPrintTemplate: () => ({ type: ModelNameEnum.Shipment }),
|
|
purchaseReceiptPrintTemplate: () => ({
|
|
type: ModelNameEnum.PurchaseReceipt,
|
|
}),
|
|
stockMovementPrintTemplate: () => ({ type: ModelNameEnum.StockMovement }),
|
|
posCustomer: () => ({ role: PartyRoleEnum.Customer }),
|
|
};
|
|
|
|
static filters: FiltersMap = this.commonFilters;
|
|
static createFilters: FiltersMap = this.commonFilters;
|
|
|
|
getInventoryHidden() {
|
|
return () => !this.fyo.singles.AccountingSettings?.enableInventory;
|
|
}
|
|
|
|
getPointOfSaleHidden() {
|
|
return () => !this.fyo.singles.InventorySettings?.enablePointOfSale;
|
|
}
|
|
|
|
hidden: HiddenMap = {
|
|
stockMovementNumberSeries: this.getInventoryHidden(),
|
|
shipmentNumberSeries: this.getInventoryHidden(),
|
|
purchaseReceiptNumberSeries: this.getInventoryHidden(),
|
|
shipmentTerms: this.getInventoryHidden(),
|
|
purchaseReceiptTerms: this.getInventoryHidden(),
|
|
shipmentPrintTemplate: this.getInventoryHidden(),
|
|
purchaseReceiptPrintTemplate: this.getInventoryHidden(),
|
|
stockMovementPrintTemplate: this.getInventoryHidden(),
|
|
posCashDenominations: this.getPointOfSaleHidden(),
|
|
posCustomer: this.getPointOfSaleHidden(),
|
|
};
|
|
}
|
|
|
|
export const numberSeriesDefaultsMap: Record<
|
|
string,
|
|
keyof Defaults | undefined
|
|
> = {
|
|
[ModelNameEnum.SalesInvoice]: 'salesInvoiceNumberSeries',
|
|
[ModelNameEnum.PurchaseInvoice]: 'purchaseInvoiceNumberSeries',
|
|
[ModelNameEnum.JournalEntry]: 'journalEntryNumberSeries',
|
|
[ModelNameEnum.Payment]: 'paymentNumberSeries',
|
|
[ModelNameEnum.StockMovement]: 'stockMovementNumberSeries',
|
|
[ModelNameEnum.Shipment]: 'shipmentNumberSeries',
|
|
[ModelNameEnum.PurchaseReceipt]: 'purchaseReceiptNumberSeries',
|
|
[ModelNameEnum.SalesQuote]: 'salesQuoteNumberSeries',
|
|
};
|