2
0
mirror of https://github.com/frappe/books.git synced 2025-02-02 12:08:27 +00:00

fix: readonly and hidden in TwoColumnForm

- make some fields readonly, hidden
- formatting
This commit is contained in:
18alantom 2021-12-02 15:39:02 +05:30
parent dd6b7b6b14
commit 6197e78514
6 changed files with 49 additions and 26 deletions

View File

@ -15,7 +15,7 @@ export default {
label: 'Company Name',
fieldname: 'companyName',
fieldtype: 'Data',
required: 1
required: 1,
},
{
@ -27,9 +27,9 @@ export default {
getFilters() {
return {
isGroup: 0,
rootType: 'Expense'
rootType: 'Expense',
};
}
},
},
{
@ -41,9 +41,9 @@ export default {
getFilters() {
return {
isGroup: 0,
rootType: 'Expense'
rootType: 'Expense',
};
}
},
},
{
@ -51,22 +51,24 @@ export default {
label: 'Country',
fieldtype: 'AutoComplete',
placeholder: 'Select Country',
readOnly: 1,
required: 1,
getList: () => countryList
getList: () => countryList,
},
{
fieldname: 'currency',
label: 'Currency',
fieldtype: 'Data',
required: 0
readOnly: 1,
required: 0,
},
{
fieldname: 'fullname',
label: 'Name',
fieldtype: 'Data',
required: 1
required: 1,
},
{
@ -75,38 +77,37 @@ export default {
fieldtype: 'Data',
required: 1,
validate: {
type: 'email'
}
type: 'email',
},
},
{
fieldname: 'bankName',
label: 'Bank Name',
fieldtype: 'Data',
required: 1
required: 1,
},
{
fieldname: 'fiscalYearStart',
label: 'Fiscal Year Start Date',
fieldtype: 'Date',
required: 1
required: 1,
},
{
fieldname: 'fiscalYearEnd',
label: 'Fiscal Year End Date',
fieldtype: 'Date',
required: 1
required: 1,
},
{
fieldname: 'setupComplete',
label: 'Setup Complete',
fieldtype: 'Check',
default: 0
default: 0,
},
],
quickEditFields: [
'fullname',
@ -115,6 +116,6 @@ export default {
'country',
'currency',
'fiscalYearStart',
'fiscalYearEnd'
]
'fiscalYearEnd',
],
};

View File

@ -15,9 +15,7 @@ export default function getAugmentedParty({ country }) {
fieldname: 'gstin',
label: 'GSTIN No.',
fieldtype: 'Data',
hidden: (form) => {
return form.gstType === 'Registered Regular' ? 0 : 1;
},
hidden: (doc) => (doc.gstType === 'Registered Regular' ? 0 : 1),
},
{
fieldname: 'gstType',

View File

@ -88,6 +88,7 @@ export default {
placeholder: 'Ref. / Cheque No.',
fieldtype: 'Data',
required: (doc) => doc.paymentMethod !== 'Cash', // TODO: UNIQUE
hidden: (doc) => doc.paymentMethod === 'Cash',
},
{
fieldname: 'referenceDate',

View File

@ -72,7 +72,7 @@ export default class PaymentServer extends BaseDocument {
validateReferenceAmount() {
const referenceAmountTotal = this.for
.map(({ amount }) => amount)
.reduce((a, b) => a + b);
.reduce((a, b) => a + b, 0);
if (this.amount + (this.writeoff ?? 0) < referenceAmountTotal) {
const writeoff = frappe.format(this.writeoff, 'Currency');

View File

@ -4,7 +4,8 @@ async function setAugmentedModel(model, regionalInfo) {
const getAugmentedModel = (
await import('./doctype/' + model + '/RegionalChanges')
).default;
frappe.models[model] = getAugmentedModel(regionalInfo);
const augmentedModel = getAugmentedModel(regionalInfo);
frappe.models[model] = augmentedModel;
frappe.models[model].augmented = 1;
}

View File

@ -8,7 +8,7 @@
size="small"
:df="df"
:value="doc[df.fieldname]"
:read-only="submitted"
:read-only="evaluateReadOnly(df)"
@change="(value) => onChange(df, value)"
/>
<template v-else>
@ -72,7 +72,7 @@
: doc[df.fieldname]
"
:class="{ 'p-2': df.fieldtype === 'Check' }"
:read-only="submitted"
:read-only="evaluateReadOnly(df)"
@change="(value) => onChange(df, value)"
@focus="activateInlineEditing(df)"
@new-doc="(newdoc) => onChange(df, newdoc.name)"
@ -135,9 +135,29 @@ let TwoColumnForm = {
}
},
methods: {
evaluateBoolean(fieldProp, defaultValue) {
const type = typeof fieldProp;
switch (type) {
case 'undefined':
return defaultValue;
case 'function':
return fieldProp(this.doc);
default:
return !!fieldProp;
}
},
evaluateReadOnly(df) {
if (this.submitted) {
return true;
}
return this.evaluateBoolean(df.readOnly, false);
},
evaluateHidden(df) {
return this.evaluateBoolean(df.hidden, false);
},
onChange(df, value) {
if (value == null) {
return
return;
}
let oldValue = this.doc.get(df.fieldname);
@ -204,7 +224,9 @@ let TwoColumnForm = {
},
computed: {
formFields() {
return this.fields || this.doc.meta.getQuickEditFields();
return (this.fields || this.doc.meta.getQuickEditFields()).filter(
(df) => !this.evaluateHidden(df)
);
},
style() {
let templateColumns = (this.columnRatio || [1, 1])