Adjusting VAT/GST in Expense claim Version 9-2.0

Hi Community,
How do i adjust or account VAT in expense claim ? unlike purchase invoice there is not Tax/or VAT claiming option in Expenses claim details.

Example: if an employee eat/buy/travel somewhere and paid total 100$ which has a claimable VAT around 12$, how do we account it in Expenses claim details.
is there any customised doctype or something.
The horrible things is that, an employee claim once in a month with 50 transactions and if some of them has a VAT claimable, how do we account them through expenses claim form,

there should be an expense head and also a tax option attached to the expense claim details.

Anyone faced this issue, and could you help us in this regards

Thanks.

1 Like

Shouldn’t it be factored into Payment Entry? Generally, employees attach bills with the expense claim for the reference of approver. Or may be add Tax as a Expense Type and select in the table of Expense Claim. Do check it’s accounting impact.

Hi Umair,

example, our employee submit one or two expenses claim report in a month, and each report has 30/40 entries, what we have done in the expense details table, added two or 3 mandatory rows such as merchant name, merchant tax id, if the bill is taxable ( yes/no ) and tax amount.
is it possible in the expense claim details form , nothing we add like actual amount and just select tax type and it will automatically calculate ( same as purchase invoice ) and when approve and do the payment entry , actually money should go to expense account head and the %of tax automatically goes to input tax account?
Can we modify the expense details table and add/link something like purchase invoice ?
or any other alternatives?
please give me some steps.
Just to highlight, employee is not submitting only one claim item, they submit more than 10 in one exp claim report.

Regards
ENV

is it possible in the expense claim details form , nothing we add like actual amount and just select tax type and it will automatically calculate ( same as purchase invoice ) and when approve and do the payment entry , actually money should go to expense account head and the %of tax automatically goes to input tax account?

It’s not configurable in the Expense Claims as it works in the invoices. It will be a major customization.

Quickest resolve would be to add taxes as well as a Expense Type itself.

Hi Umair,

If I create tax in Expense Claim Type it will add as expenses. But what we need is the tax should go as input tax and only the net expense (less tax) will go to expenses. Would it be possible? if not , what would be the best option.

Thank you.

ENV

In the Payment Entry, select tax account in the deductions and charges table.

Dear @env,

Is there a solution you have for this topic?

Interested in this too!

Has any progress been made on the matter?

EDIT
I wrote a script for this. Please adapt depending on your own accounts. You need to add a button from Customize Form > Expense Claim. You will see wierd things going on once you enter the expense, just save the form and everything will be back to normal again.

/*
Expense Claim Script
--------------------

What this does:
* Handles click on "Add expense" button:
    * Adds 1 line for the expense without VAT
    * Adds 1 line for the VAT

*/
frappe.ui.form.on("Expense Claim", {
    refresh: function (frm) {

        frm.add = function (cost, expenseDate, expenseDescription, expenseAccount, VATtype, VATaccountHead, VATrate, VATdescription) {

	var a = cost*(1-VATrate/100);
	var expenseCost = Math.round(a * 100 + Number.EPSILON) / 100;
	var VATcost = cost-expenseCost ;

        var expense = frm.add_child("expenses");
	frappe.model.set_value(expense.doctype, expense.name, "expense_date", expenseDate);
	frappe.model.set_value(expense.doctype, expense.name, "description", expenseDescription);
	frappe.model.set_value(expense.doctype, expense.name, "expense_type", expenseAccount);
	frappe.model.set_value(expense.doctype, expense.name, "default_account", expenseAccount);
	frappe.model.set_value(expense.doctype, expense.name, "claim_amount", expenseCost);
	frappe.model.set_value(expense.doctype, expense.name, "sanctioned_amount", expenseCost);

	var taxes = frm.add_child("expenses");
	frappe.model.set_value(taxes.doctype, taxes.name, "expense_date", expenseDate);
	frappe.model.set_value(taxes.doctype, taxes.name, "expense_type", VATtype);
	frappe.model.set_value(taxes.doctype, taxes.name, "default_account", VATaccountHead);
	frappe.model.set_value(taxes.doctype, taxes.name, "description", VATdescription);
	frappe.model.set_value(taxes.doctype, taxes.name, "claim_amount", VATcost);
	frappe.model.set_value(taxes.doctype, taxes.name, "sanctioned_amount", VATcost);

        frm.refresh_field("expenses");
        }
    },

    add_expense: function (frm) {
        frappe.prompt([{
                'fieldname': 'expenseDate',
                'fieldtype': 'Date',
                'label': 'Expense Date',
                'reqd': 1,
		'default': 0,
            },{
                'fieldname': 'cost',
                'fieldtype': 'Currency',
                'label': 'Expense Cost',
                'reqd': 1,
		'default': 0,
            },{
                'fieldname': 'vat',
                'fieldtype': 'Select',
		'options': 
			'VAT 0% for investments and other expenses\n' + 
			'VAT 2.5% for investments and other expenses\n' + 
			'VAT 3.7% for investments and other expenses\n' + 
			'VAT 7.7% for investments and other expenses\n' +
			'VAT 0% for materials and services\n' +
			'VAT 2.5% for materials and services\n' +
			'VAT 3.7% for materials and services\n' + 
			'VAT 7.7% for materials and services',
                'label': 'VAT',
                'reqd': 1,
            },{
                'fieldname': 'expenseAccount',
                'fieldtype': 'Link',
                'label': 'Expense Account',
		'options': 'Expense Claim Type',
                'reqd': 1,
		'default': 0,
            },{
                'fieldname': 'expenseDescription',
                'fieldtype': 'Small Text',
                'label': 'Description',
                'reqd': 1,
		'default': 0,
            }],
            function (values) {
                console.log(values);
		var VATtype;
		var VATaccountHead;
		var VATrate;
		var VATdescription;
		switch (values.vat){
			case 'VAT 0% for investments and other expenses':
				VATtype= '1171 - VAT on Investments and other Expenses - AMF';
				VATaccountHead = '8911 - VAT account 1171 for Expense Claim - AMF';
				VATdescription = 'VAT 0%';
				VATrate = 0;
			break;
			case 'VAT 2.5% for investments and other expenses':
				VATtype= '1171 - VAT on Investments and other Expenses - AMF';
				VATaccountHead = '8911 - VAT account 1171 for Expense Claim - AMF';
				VATdescription = 'VAT 2.5%';
				VATrate = 2.5;
			break;
			case 'VAT 3.7% for investments and other expenses':
				VATtype= '1171 - VAT on Investments and other Expenses - AMF';
				VATaccountHead = '8911 - VAT account 1171 for Expense Claim - AMF';
				VATdescription = 'VAT 3.7%';
				VATrate = 3.7;
			break;
			case 'VAT 7.7% for investments and other expenses':
				VATtype= '1171 - VAT on Investments and other Expenses - AMF';
				VATaccountHead = '8911 - VAT account 1171 for Expense Claim - AMF';
				VATdescription = 'VAT 7.7%';
				VATrate = 7.7;
			break;
			case 'VAT 0% for materials and services':
				VATtype= '1170 - VAT on Materials and Services - AMF';
				VATaccountHead = '8910 - VAT account 1170 for Expense Claim - AMF';
				VATdescription = 'VAT 0%';
				VATrate = 0;
			break;
			case 'VAT 2.5% for materials and services':
				VATtype= '1170 - VAT on Materials and Services - AMF';
				VATaccountHead = '8910 - VAT account 1170 for Expense Claim - AMF';
				VATdescription = 'VAT 2.5%';
				VATrate = 2.5;
			break;
			case 'VAT 3.7% for investments and other expenses':
				VATtype= '1170 - VAT on Materials and Services - AMF';
				VATaccountHead = '8910 - VAT account 1170 for Expense Claim - AMF';
				VATdescription = 'VAT 3.7%';
				VATrate = 3.7;
			break;
			case 'VAT 7.7% for materials and services':
				VATtype= '1170 - VAT on Materials and Services - AMF';
				VATaccountHead = '8910 - VAT account 1170 for Expense Claim - AMF';
				VATdescription = 'VAT 7.7%';
				VATrate = 7.7;
			break;
		}
		frm.add(values.cost, values.expenseDate, values.expenseDescription, values.expenseAccount, VATtype, VATaccountHead, VATrate, VATdescription);	
            },
            'Expense Entry',
            'Add',
        );
    },
});

Current workspace:
ERPNext: v11.1.39 (master)
ERPNext Support: v0.0.1 (master)
Frappe Framework: v11.1.36 (master)