Jump to content

NL kvk nummer


MSXGames

Recommended Posts

Hallo iedereen,

 

Ik loop tegen 3 problemen aan, hopelijk kan het opgelost worden:

 

1) Als ik B2B inschakel, dan kunnen bedrijven hun kvk-nummer invoeren, maar helaas geeft prestashop een fout melding dat de kvk nummer niet goed is, hoe is dit op te lossen

2) Ik wil alleen b2b doen en wil dan geen prijzen laten zien, totdat de gebruiker is ingelogd, hoe krijg ik dat voor elkaar ?

3) Ik wil klanten die zich registreren goed keuren en dan pas kunnen ze inloggen en de prijzen zien, hoe doe ik dat.

 

Bedankt alvast voor jullie hulp.

 

Groeten

 

Link to comment
Share on other sites

Hallo,

 

Ik herken je problemen en vragen - heb ze zelf ook gehad! En je zoekt je al snel zes slagen in de rondte naar de oplossingen. Misschien kun je hier iets mee?

 

1)

Het systeem controleert of het KvK-nummer voldoet aan het Franse Siret-systeem; en dat werkt met NL-nummers natuurlijk niet.

 

Een "quick'n'dirty"-methode om deze controle op te heffen is het volgende:

 

In het bestand /classes/Customer.php vind je de volgende regel (bij mij is het regel 175):

            'siret' =>                        array('type' => self::TYPE_STRING, 'validate' => 'isSiret'),

 

Haal het stuk dat de controle verzorgt weg, zodat de regel luidt:

            'siret' =>                        array('type' => self::TYPE_STRING),

(let op de komma's e.d.!)

 

Nogmaals: dit is een directe hack en slechts een workaround, niet de voorgeschreven wijze; over het algemeen is het niet aan te raden om de code van de core-bestanden te wijzigen. Officieel zou je het op een andere wijze moeten oplossen, maar dit werkt ook. Het kan wel zijn dat na een automatische update (zou ik nooit doen op een goed draaiende live webshop; je weet nooit ....) deze aanpassing weer weg is en je het weer opnieuw moet veranderen.

 

2)

Ga in de backend naar Klanten > Groepen

Je ziet nu een lijst met groepen. De eerste heet Visitors. Onder het kopje "Toon prijzen" kun je klikken op het groene vinkje om het tonen van prijzen uit te schakelen.

 

3)

Op dit topic vind je de Validate Customer module, die precies dat doet wat jij zoekt. Via de backend nog even zelf een vertalinkje inkloppen, als je dat nodig vindt en klaar! Nieuwe aanmelders krijgen een bericht te zien dat hun aanvraag eerst goedgekeurd moet worden. Je kunt zelf in de backend met een paar klikken de nieuwe gebruiker op actief zetten.

 

Groetjes en succes!

  • Like 1
Link to comment
Share on other sites

Voor de volledigheid, de functie die checkt of het een geldig SIRET nummer is, staat in het bestand: classes/Validate.php:

	public static function isSiret($siret)
	{
		if (Tools::strlen($siret) != 14)
			return false;
		$sum = 0;
		for ($i = 0; $i != 14; $i++)
		{
			$tmp = ((($i + 1) % 2) + 1) * intval($siret[$i]);
			if ($tmp >= 10)
				$tmp -= 9;
			$sum += $tmp;
		}
		return ($sum % 10 === 0);
	}

Je kunt hier evt je eigen isKvK() functie aan toevoegen :-)

pascal

  • Like 1
Link to comment
Share on other sites

  • 5 months later...

Voor de volledigheid, de functie die checkt of het een geldig SIRET nummer is, staat in het bestand: classes/Validate.php:

	public static function isSiret($siret)
	{
		if (Tools::strlen($siret) != 14)
			return false;
		$sum = 0;
		for ($i = 0; $i != 14; $i++)
		{
			$tmp = ((($i + 1) % 2) + 1) * intval($siret[$i]);
			if ($tmp >= 10)
				$tmp -= 9;
			$sum += $tmp;
		}
		return ($sum % 10 === 0);
	}

Je kunt hier evt je eigen isKvK() functie aan toevoegen :-)

pascal

WOOT!!

eindelijk gevonden. dank hiervoor.

maar... Hoe zou die code voor de kvk-check er uit moeten zien? 

ben geen crack in php, begrijp er zelfs maar ongeveer 5% van, denk ik. maar de code hierboven checkt of een nummer 14 karakters lang is? is het voor een nl-kvknummer dan voldoende om 14 te veranderen in 12?

Link to comment
Share on other sites

Hoi frank,

 

waarschijnlijk iets van:

 

public static function isKvK($kvk)
{
    return (bool)preg_match('/^[0-9]{8,11}$/', $kvk);
}
 
Waarbij de Siretwaarde dan kan worden omgedoopt tot KvKNummer:
    'siret' =>                        array('type' => self::TYPE_STRING, 'validate' => 'isKvK')
 
 
Je kunt deze functie aan /classes/Validate.php toevoegen. Alleen oppassen bij upgraden.
(Ik geloof dat je deze file ook kunt kopieren naar de /override/classes/Validate.php en dan hier de verandering toevoegen. Probeer maar even)
 
Ik geloof dat een KvK nummer 8 cijfers is, met evt een 3cijferige subcode, vandaar {8,11} (minimaal 8, maximaal 11) :
 
Maar het kan tegenwoordig ander zijn, dus check dat wellicht even bij de KvK zelf.
Edited by PascalVG
Added file name to edit (see edit history)
Link to comment
Share on other sites

thnx, ga er ff mee stoeien, hoewel een check voor een kvk niet een halszaak is.

het grootste probleem was dat mensen geen kvk konden invoeren zonder foutmelding, en dat kan nu wel :)

vind het wel jammer dat het zo lastig is de inlog-pagina aan te passen naar wens zonder kennis van php. hopelijk in een toekomstige versie...

Link to comment
Share on other sites

Hoi Frank, laat me weten of het lukt.

Had je iets speciaals gewild met je login pagina? Zo ja, Maak dan misschien iets van een schetsje of neem een screen-copy en zet er wat pijlen op waar je velden heen wilt verplaatsen, of kras door wat weg wil hebben etc. Wellicht kunnen we iets voor je doen.

 

Meestal is waarschijnlijk niet in een wijziging in de php files, maar een aanpassing in themes/<je theme folder>/css/global.css nodig. Hier staan de "css definities" die op de meeste pagina's gebruikt wordt.

CSS definieert the layout van invoervelden, blokken, text etc, zonder dat je aan de php code hoeft te komen (php is de functionaliteit van de pagina, css de opmaak)

 

Is leuk om mee te spelen. Als je Chrome gebruikt, click eens met de rechtermuis op een stukje van je pagina, bijv een stuk texts, of een invoerveld en click "Inspect element". Dan zie je rechtsonder de css code die betrekking heeft op dat stuk text of invoerveld. Je kunt hier zelfs mee spelen en de waarden veranderen, en je ziet dan direct de wijzigingen doorgevoerd op de pagina (moet uiteindelijk de veranderingen wel ook in de css bestanden maken, maar om uit te proberen welke code/waarden je moet gebruiken is het erg handig.

Probeer maar eens!

 

Hier meer over css:

http://www.w3schools.com/css/

 

Groetjes,

pascal.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...