mirror of
https://github.com/frappe/books.git
synced 2024-11-10 07:40:55 +00:00
make hsn and sac code a regional thing
This commit is contained in:
parent
679904ac6a
commit
90c9bd61ab
@ -122,7 +122,7 @@ async function generateB2bData(invoices) {
|
|||||||
|
|
||||||
items.forEach((item) => {
|
items.forEach((item) => {
|
||||||
const itemRecord = {
|
const itemRecord = {
|
||||||
num: item.itemCode || 0,
|
num: item.hsnCode || 0,
|
||||||
itm_det: {
|
itm_det: {
|
||||||
txval: item.baseAmount,
|
txval: item.baseAmount,
|
||||||
rt: GST[item.tax],
|
rt: GST[item.tax],
|
||||||
|
24
models/doctype/FulfillmentItem/RegionalChanges.js
Normal file
24
models/doctype/FulfillmentItem/RegionalChanges.js
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import { cloneDeep } from 'lodash';
|
||||||
|
import FulfillmentItemOriginal from './FulfillmentItem';
|
||||||
|
|
||||||
|
export default function getAugmentedFulfillmentItem({ country }) {
|
||||||
|
const FulfillmentItem = cloneDeep(FulfillmentItemOriginal);
|
||||||
|
if (!country) {
|
||||||
|
return FulfillmentItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (country === 'India') {
|
||||||
|
FulfillmentItem.fields = [
|
||||||
|
...FulfillmentItem.fields,
|
||||||
|
{
|
||||||
|
fieldname: 'hsnCode',
|
||||||
|
label: 'HSN/SAC',
|
||||||
|
fieldtype: 'Int',
|
||||||
|
formula: (row, doc) => doc.getFrom('Item', row.item, 'hsnCode'),
|
||||||
|
formulaDependsOn: ['item'],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return FulfillmentItem;
|
||||||
|
}
|
@ -5,6 +5,7 @@ export default {
|
|||||||
name: 'Item',
|
name: 'Item',
|
||||||
doctype: 'DocType',
|
doctype: 'DocType',
|
||||||
isSingle: 0,
|
isSingle: 0,
|
||||||
|
regional: 1,
|
||||||
keywordFields: ['name', 'description'],
|
keywordFields: ['name', 'description'],
|
||||||
fields: [
|
fields: [
|
||||||
{
|
{
|
||||||
@ -112,17 +113,10 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
|
||||||
fieldname: 'itemCode',
|
|
||||||
label: 'Item Code',
|
|
||||||
fieldtype: 'Int',
|
|
||||||
placeholder: 'Item Code',
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
quickEditFields: [
|
quickEditFields: [
|
||||||
'rate',
|
'rate',
|
||||||
'unit',
|
'unit',
|
||||||
'itemCode',
|
|
||||||
'itemType',
|
'itemType',
|
||||||
'tax',
|
'tax',
|
||||||
'description',
|
'description',
|
||||||
|
29
models/doctype/Item/RegionalChanges.js
Normal file
29
models/doctype/Item/RegionalChanges.js
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
import { cloneDeep } from 'lodash';
|
||||||
|
import ItemOriginal from './Item';
|
||||||
|
|
||||||
|
export default function getAugmentedItem({ country }) {
|
||||||
|
const Item = cloneDeep(ItemOriginal);
|
||||||
|
if (!country) {
|
||||||
|
return Item;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (country === 'India') {
|
||||||
|
const nameFieldIndex = Item.fields.findIndex(i => i.fieldname === 'name');
|
||||||
|
|
||||||
|
Item.fields = [
|
||||||
|
...Item.fields.slice(0, nameFieldIndex+1),
|
||||||
|
{
|
||||||
|
fieldname: 'hsnCode',
|
||||||
|
label: 'HSN/SAC',
|
||||||
|
fieldtype: 'Int',
|
||||||
|
placeholder: 'HSN/SAC Code',
|
||||||
|
required: 1
|
||||||
|
},
|
||||||
|
...Item.fields.slice(nameFieldIndex+1, Item.fields.length),
|
||||||
|
];
|
||||||
|
|
||||||
|
Item.quickEditFields.unshift('hsnCode');
|
||||||
|
}
|
||||||
|
|
||||||
|
return Item;
|
||||||
|
}
|
@ -86,12 +86,5 @@ export default {
|
|||||||
readOnly: 1,
|
readOnly: 1,
|
||||||
formula: (row, doc) => row.amount * doc.exchangeRate,
|
formula: (row, doc) => row.amount * doc.exchangeRate,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
fieldname: 'itemCode',
|
|
||||||
label: 'Item Code',
|
|
||||||
fieldtype: 'Int',
|
|
||||||
formula: (row, doc) => doc.getFrom('Item', row.item, 'itemCode'),
|
|
||||||
formulaDependsOn: ['item'],
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
24
models/doctype/PurchaseInvoiceItem/RegionalChanges.js
Normal file
24
models/doctype/PurchaseInvoiceItem/RegionalChanges.js
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import { cloneDeep } from 'lodash';
|
||||||
|
import PurchaseInvoiceItemOriginal from './PurchaseInvoiceItem';
|
||||||
|
|
||||||
|
export default function getAugmentedPurchaseInvoiceItem({ country }) {
|
||||||
|
const PurchaseInvoiceItem = cloneDeep(PurchaseInvoiceItemOriginal);
|
||||||
|
if (!country) {
|
||||||
|
return PurchaseInvoiceItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (country === 'India') {
|
||||||
|
PurchaseInvoiceItem.fields = [
|
||||||
|
...PurchaseInvoiceItem.fields,
|
||||||
|
{
|
||||||
|
fieldname: 'hsnCode',
|
||||||
|
label: 'HSN/SAC',
|
||||||
|
fieldtype: 'Int',
|
||||||
|
formula: (row, doc) => doc.getFrom('Item', row.item, 'hsnCode'),
|
||||||
|
formulaDependsOn: ['item'],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return PurchaseInvoiceItem;
|
||||||
|
}
|
24
models/doctype/QuotationItem/RegionalChanges.js
Normal file
24
models/doctype/QuotationItem/RegionalChanges.js
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import { cloneDeep } from 'lodash';
|
||||||
|
import QuotationItemOriginal from './QuotationItem';
|
||||||
|
|
||||||
|
export default function getAugmentedQuotationItem({ country }) {
|
||||||
|
const QuotationItem = cloneDeep(QuotationItemOriginal);
|
||||||
|
if (!country) {
|
||||||
|
return QuotationItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (country === 'India') {
|
||||||
|
QuotationItem.fields = [
|
||||||
|
...QuotationItem.fields,
|
||||||
|
{
|
||||||
|
fieldname: 'hsnCode',
|
||||||
|
label: 'HSN/SAC',
|
||||||
|
fieldtype: 'Int',
|
||||||
|
formula: (row, doc) => doc.getFrom('Item', row.item, 'hsnCode'),
|
||||||
|
formulaDependsOn: ['item'],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return QuotationItem;
|
||||||
|
}
|
24
models/doctype/SalesInvoiceItem/RegionalChanges.js
Normal file
24
models/doctype/SalesInvoiceItem/RegionalChanges.js
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import { cloneDeep } from 'lodash';
|
||||||
|
import SalesInvoiceItemOriginal from './SalesInvoiceItem';
|
||||||
|
|
||||||
|
export default function getAugmentedSalesInvoiceItem({ country }) {
|
||||||
|
const SalesInvoiceItem = cloneDeep(SalesInvoiceItemOriginal);
|
||||||
|
if (!country) {
|
||||||
|
return SalesInvoiceItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (country === 'India') {
|
||||||
|
SalesInvoiceItem.fields = [
|
||||||
|
...SalesInvoiceItem.fields,
|
||||||
|
{
|
||||||
|
fieldname: 'hsnCode',
|
||||||
|
label: 'HSN/SAC',
|
||||||
|
fieldtype: 'Int',
|
||||||
|
formula: (row, doc) => doc.getFrom('Item', row.item, 'hsnCode'),
|
||||||
|
formulaDependsOn: ['item'],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return SalesInvoiceItem;
|
||||||
|
}
|
@ -2,6 +2,7 @@ export default {
|
|||||||
name: 'SalesInvoiceItem',
|
name: 'SalesInvoiceItem',
|
||||||
doctype: 'DocType',
|
doctype: 'DocType',
|
||||||
isChild: 1,
|
isChild: 1,
|
||||||
|
regional: 1,
|
||||||
keywordFields: [],
|
keywordFields: [],
|
||||||
tableFields: ['item', 'tax', 'quantity', 'rate', 'amount'],
|
tableFields: ['item', 'tax', 'quantity', 'rate', 'amount'],
|
||||||
fields: [
|
fields: [
|
||||||
@ -88,10 +89,10 @@ export default {
|
|||||||
formula: (row, doc) => row.amount * doc.exchangeRate,
|
formula: (row, doc) => row.amount * doc.exchangeRate,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldname: 'itemCode',
|
fieldname: 'hsnCode',
|
||||||
label: 'Item Code',
|
label: 'Item Code',
|
||||||
fieldtype: 'Int',
|
fieldtype: 'Int',
|
||||||
formula: (row, doc) => doc.getFrom('Item', row.item, 'itemCode'),
|
formula: (row, doc) => doc.getFrom('Item', row.item, 'hsnCode'),
|
||||||
formulaDependsOn: ['item'],
|
formulaDependsOn: ['item'],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
24
models/doctype/SalesOrderItem/RegionalChanges.js
Normal file
24
models/doctype/SalesOrderItem/RegionalChanges.js
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import { cloneDeep } from 'lodash';
|
||||||
|
import SalesOrderItemOriginal from './SalesOrderItem';
|
||||||
|
|
||||||
|
export default function getAugmentedSalesOrderItem({ country }) {
|
||||||
|
const SalesOrderItem = cloneDeep(SalesOrderItemOriginal);
|
||||||
|
if (!country) {
|
||||||
|
return SalesOrderItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (country === 'India') {
|
||||||
|
SalesOrderItem.fields = [
|
||||||
|
...SalesOrderItem.fields,
|
||||||
|
{
|
||||||
|
fieldname: 'hsnCode',
|
||||||
|
label: 'HSN/SAC',
|
||||||
|
fieldtype: 'Int',
|
||||||
|
formula: (row, doc) => doc.getFrom('Item', row.item, 'hsnCode'),
|
||||||
|
formulaDependsOn: ['item'],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return SalesOrderItem;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user