Jump to content
cenourinha

Disable Tax Field for Contacts

Recommended Posts

Dear WHMCS Team,

I think for most of us, it doesn't make sense to have a Tax Field for Contacts. We invoice customers using the main account details, not sub-contacts details, as contacts are only used to notifications.

Having Tax Field in the Contacts, will make customers confused and create billing issues. It will be better if you could create an option to enable/disable that field for contacts.

Share this post


Link to post
Share on other sites

Hi @cenourinha,

We welcome feature requests online at http://requests.whmcs.com
Feel free to suggest this as a new idea for comment and voting upon by other WHMCS users.

The more votes an idea receives, the more likely it is to be considered by our development team for potential inclusion in a future feature update.

Share this post


Link to post
Share on other sites
3 hours ago, cenourinha said:

Dear WHMCS Team,

I think for most of us, it doesn't make sense to have a Tax Field for Contacts. We invoice customers using the main account details, not sub-contacts details, as contacts are only used to notifications.

Having Tax Field in the Contacts, will make customers confused and create billing issues. It will be better if you could create an option to enable/disable that field for contacts.

That's funny, we've been asking for years to have a tax field for Contacts so customers can solve their billing problems using contacts. What problems do you think it could cause?

Share this post


Link to post
Share on other sites

How do you select the Billing Account for a specific service? How do you know if Invoice #123 is to be issued with the details of the main account, or with the details of the sub-account x?

Last time i checked, Contacts modifications (create/edit/delete) aren't logged in WHMCS Logs, what happens when a customer creates a Contact "Jon Doe", you issue the invoice and in the next day he changes the name to "Mary Fox" or just completely delete the Contact?

Why would you have a client account with multiple billing details in the same account? Doesn't it make sense to have separated accounts in this case? Today you have a Contract with "Jon Snow", next day he changes the contract to "Khal Drogo", and a week later to "Tyrion Lannister". A month after that, the subcontacts are deleted and Jon Snow asks why did you invoiced domain "winterfell.com" to Tyrion Lannister... and guess what, next day he changes the name to Kit Harington.

If you're ok with that, thats great. But most of the companies will need to keep things simple, and a checkbox to enable/disable Tax Field for sub-contacts solves that problem.

Share this post


Link to post
Share on other sites

Well, I think I have bad news for you then. All that you mentioned is already happenning in WHMCS. Customers can already select a contact as the billing contact and use any name and contact data that they please. The invoices will still keep the tax number of the main account, but that doesn't make those invoices with different names less wrong.

Share this post


Link to post
Share on other sites

(sorry for the double post!)

Also - the contract is always with the main account holder, not with the Contacts.

I'll also add that if you allow the modification of the main account details, that changes invoices too, and the only record of the changes, as you know, is the one email that WHMCS will send you about it.

I see a lot more potential for good than for bad with this. I know our customers have been asking for this feature!

Edited by stormy

Share this post


Link to post
Share on other sites

You have the options to disable field edition for Client Accounts, so you can avoid customers to change their billing details, unless is there a valid reason (Company Name change, Legal Name change, etc). I don't see a way for customers to have the invoice issued with different details other than the main account at this moment, even if they select a different Billing Contact, but i may be wrong.

When a customer change his account details, this is logged in the "Logs" tab of his account. You can check the change there.

Share this post


Link to post
Share on other sites

I agree with @cenourinha It doesn't make any sense. In normal countries where invoicing is a serious matter, it's even illegal. I mean how can you invoice a contact based on the payment received by another person? It is wrong on so many levels that I don't even want to continue.

Share this post


Link to post
Share on other sites
3 hours ago, stormy said:

I know our customers have been asking for this feature!

I know hundreds of people that asked for this for years but this doesn't change the fact that it's illegal.

Share this post


Link to post
Share on other sites

Sub-Contacts should have Tax-ID Fields and other Custom Fields only for Domain Registration, not for tax situations. If WHMCS wants to allow multiple billing entities management within the same Account Login, it must do things in another way so it can be made correctly and following another management model.

Share this post


Link to post
Share on other sites
On 22/01/2019 at 13:29, cenourinha said:

Having Tax Field in the Contacts, will make customers confused and create billing issues. It will be better if you could create an option to enable/disable that field for contacts.

rather than waiting for a feature request to be created, considered and implemented, if you all you want to do is hide that field in the client area contacts page, then you should only need to add some CSS to your custom.css file...

input[id="inputTaxId"],
label[for="inputTaxId"]
{display: none;}

m0FU1dM.png

you could hide the field conditionally if not a sub-account, but that would require a hook to do the checking and adding the css.

also, you could even hide the field in the admin area client's profile - though because the admin area templates don't have a custom.css (still?), you'd have to write a hook to either add a custom.css and use that, or just use the hook to directly add the specific css to the header....

Share this post


Link to post
Share on other sites
16 hours ago, Kian said:

I agree with @cenourinha It doesn't make any sense. In normal countries where invoicing is a serious matter, it's even illegal. I mean how can you invoice a contact based on the payment received by another person? It is wrong on so many levels that I don't even want to continue.

I live in a "normal" country called Spain, I think it's as "normal" as Italy and Portugal, although I envy many things from both countries! We are subject to the same stringent tax rules as the rest of the Euro Zone, and I take invoicing very seriously. I know it's unfortunate that WHMCS is in the UK where the system allows for a lot more leeway. As everyone else, I've done all the necessary workarounds to make sure my WHMCS invoicing is legal, with consecutive invoices, fixed invoice data, no zero amount invoices, not using the credit system, etc. I'm sure you all have done the same.

WHMCS billing contacts have been a part of WHMCS forever: https://docs.whmcs.com/Clients:Contacts_Tab#Billing_Contact

All they were missing was the Tax ID field. Now, if you think they are a bad idea, you can choose not to implement them. But the Tax ID field is not the problem. In fact, it's a bigger problem to have wildly different invoice details with the same Tax ID, which is what's been happening until now.

Edited by stormy

Share this post


Link to post
Share on other sites

@stormy I was basing my reasoning on this message.

21 hours ago, cenourinha said:

How do you select the Billing Account for a specific service? How do you know if Invoice #123 is to be issued with the details of the main account, or with the details of the sub-account x?

Last time i checked, Contacts modifications (create/edit/delete) aren't logged in WHMCS Logs, what happens when a customer creates a Contact "Jon Doe", you issue the invoice and in the next day he changes the name to "Mary Fox" or just completely delete the Contact?

Why would you have a client account with multiple billing details in the same account? Doesn't it make sense to have separated accounts in this case? Today you have a Contract with "Jon Snow", next day he changes the contract to "Khal Drogo", and a week later to "Tyrion Lannister". A month after that, the subcontacts are deleted and Jon Snow asks why did you invoiced domain "winterfell.com" to Tyrion Lannister... and guess what, next day he changes the name to Kit Harington.

If you're ok with that, thats great. But most of the companies will need to keep things simple, and a checkbox to enable/disable Tax Field for sub-contacts solves that problem.

This would have been a billing nightmare. Guy X pays and guy Y to receives the invoice. You're basically letting people to fraud Revenue Agency BUT I tested it myself installing 7.7 and it doesn't happen. Probably @cenourinha misunderstood this part therefore it's fine for me. They can do whatever they want with sub-accounts.

Edited by Kian

Share this post


Link to post
Share on other sites
2 hours ago, stormy said:

I live in a "normal" country called Spain, I think it's as "normal" as Italy and Portugal, although I envy many things from both countries! We are subject to the same stringent tax rules as the rest of the Euro Zone, and I take invoicing very seriously. I know it's unfortunate that WHMCS is in the UK where the system allows for a lot more leeway. As everyone else, I've done all the necessary workarounds to make sure my WHMCS invoicing is legal, with consecutive invoices, fixed invoice data, no zero amount invoices, not using the credit system, etc. I'm sure you all have done the same.

WHMCS billing contacts have been a part of WHMCS forever: https://docs.whmcs.com/Clients:Contacts_Tab#Billing_Contact

All they were missing was the Tax ID field. Now, if you think they are a bad idea, you can choose not to implement them. But the Tax ID field is not the problem. In fact, it's a bigger problem to have wildly different invoice details with the same Tax ID, which is what's been happening until now.

In Portugal, WHMCS Invoices don't have any legal value and they can't even be called "Invoices" or "Faturas" (Faturas means "Invoice" in Portuguese). We need to issue them in an external software certified by the AT (Autoridade Tributária).

Share this post


Link to post
Share on other sites
2 hours ago, stormy said:

I know it's unfortunate that WHMCS is in the UK where the system allows for a lot more leeway.

I think, from a development point of view, that most of them are based in the USA, hence why EU law is an afterthought to them (or perhaps not even that)... they may get some input from their UK-based devs, but generally they will be ignorant of EU invoicing rules (not a criticism because i'd probably be as equally ignorant too!).

Share this post


Link to post
Share on other sites

The tax field for contacts is being displayed even if the "Customer Tax IDs/VAT Numbers" option is disabled.
RtcMggK.png
Ua9OGze.png

This doesn't make any sense and i think you should address this issue.

Share this post


Link to post
Share on other sites

It should be perfectly fine. As far as I know that field isn't used for billing purposes. I think that it's used to register specific TLDs for sub-accounts. For example .it domains require Tax ID and this new field could be used in place of an additional domain field.

Share this post


Link to post
Share on other sites
2 minutes ago, Kian said:

It should be perfectly fine. As far as I know that field isn't used for billing purposes. I think that it's used to register specific TLDs for sub-accounts. For example .it domains require Tax ID and this new field could be used in place of an additional domain field.

@WHMCS John can you confirm this is the case? Or the field is used for billing purposes?

Share this post


Link to post
Share on other sites
2 hours ago, cenourinha said:

The tax field for contacts is being displayed even if the "Customer Tax IDs/VAT Numbers" option is disabled.

the hook below should hide the field depending upon whether the above option is disabled...

<?php

# Hide VAT ID Fields For Contacts Hook
# Written by brian!

function hide_contacts_vat_fields_hook($vars) {
	
	global $CONFIG;
	$templatefile = $vars['templatefile'];
	$contactspages = array('clientareacontacts', 'clientareaaddcontact');
	if (in_array($templatefile,$contactspages) AND $CONFIG['TaxIDDisabled'] == '1') {
		return <<<HTML

<style>input[id="inputTaxId"],label[for="inputTaxId"]{display: none;}</style>

HTML;
	}
}
add_hook("ClientAreaHeadOutput", 1, "hide_contacts_vat_fields_hook");

it's basically just my previously posted css made conditional upon that configuration setting - it could be expanded to only work for subaccounts etc if required.

Share this post


Link to post
Share on other sites

Hey @brian!,

Might I suggest instead of using the 

global $CONFIG

You use the WHMCS class to pull the settings as documented here: https://docs.whmcs.com/classes/7.6/WHMCS/Config/Setting.html

So something like;

<?php

if (!defined('WHMCS')) {
    die('This Hook should not be run directly...');
}

use WHMCS\Config\Setting;

# Hide VAT ID Fields For Contacts Hook
# Written by brian!

add_hook('ClientAreaFooterOutput', 1, function ($vars) {
    $templateFile = $vars['templatefile'];
    $contactPages = ['clientareacontacts', 'clientareaaddcontact'];
    if (in_array($templateFile, $contactPages) && Setting::getValue('TaxIDDisabled') == '1') {
        $removeTaxIdField = "<script> $(function() {
            $('label[for=inputTaxId]').remove();
	        $('#inputTaxId').remove();
        });
        </script>";
        return $removeTaxIdField;
    }
});

Also, I would add that using the ClientAreaFooterOutput hook point over the ClientAreaHeadOutput would be more beneficial as if there were an error it wouldnt stop the rest of the page from loading where as if you add custom jQuery/HTML in the footer, it wont break the entire page from loading...Just kinda a safe guard that I moved over too awhile back when coming up with hooks for clients while in Support. 🙂

Otherwise it looks good, btw I did make a few small formatting changes to your original implementation from a syntax point of view 😛 

I did test this on 7.7.1 and works as intended so there is that!

Thanks!

Share this post


Link to post
Share on other sites
6 minutes ago, WHMCS Chance said:

You use the WHMCS class to pull the settings as documented here: https://docs.whmcs.com/classes/7.6/WHMCS/Config/Setting.html

i'm old-skool lol - it's good to have working examples from the class docs though - much appreciated @WHMCS Chance 🙂

I assume there are no changes to the class docs for v7.7 ?

Share this post


Link to post
Share on other sites
Just now, brian! said:

I assume there are no changes to the class docs for v7.7 ?

Assumption correct 🙂

And no worries at all, keeping it old skewl has its advantages as well!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated