Loading module/Oscar/src/Oscar/Import/Data/DataExtractorFullname.php +4 −2 Original line number Diff line number Diff line Loading @@ -20,12 +20,14 @@ class DataExtractorFullname extends AbstractDataExtractor if( !is_string($data) ) return null; if( preg_match('/([\w-]*)( |\.)([\w- ]*)(<(.*@.*)>)?/ui', $data, $matches) ){ $re = '/([\w-]*)( |\.)([\w- \']*)(<(.*@.*)>)?/mu'; if( preg_match($re, $data, $matches) ){ $firstname = $matches[1]; $lastname = trim($matches[3]); $fullname = $data; $email = count($matches) == 6 ? $matches[5] : ""; $fullname = $firstname.' '.$lastname; return [ 'firstname' => $firstname, Loading tests/Oscar/Connector/ConnectorActivityCSVWithConfTest.php +2 −2 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ class ConnectorActivityCSVWithConfTest extends TestCase $this->assertEquals("Batman", $datas[0]['persons']['Participants'][0]); $this->assertEquals("Robin", $datas[0]['persons']['Participants'][1]); $this->assertEquals(2, count($datas[0]['persons']['Ingénieur']), 'Valeurs multiples sur plusieurs colonnes, une des colonne vide'); $this->assertEquals("Marcel Grossmann", $datas[0]['persons']['Ingénieur'][0], 'Ingé 1'); $this->assertEquals("HEUZE VOURC'H NATHALIE", $datas[0]['persons']['Ingénieur'][0], 'Ingé 1'); $this->assertEquals("Serge Le Normand", $datas[0]['persons']['Ingénieur'][1], 'Ingé 2'); $this->assertEquals(null, $datas[0]['tva']); $this->assertEquals(null, $datas[0]['assietteSubventionnable']); Loading @@ -85,7 +85,7 @@ class ConnectorActivityCSVWithConfTest extends TestCase $this->assertEquals('2017-12-24', $datas[1]['datepfi']); $this->assertEquals('2017-12-31', $datas[1]['datesigned']); $this->assertEquals(2, count($datas[1]['persons']['Ingénieur']), 'Valeurs multiples sur plusieurs colonnes'); $this->assertTrue(in_array("Marcel Grossmann", $datas[1]['persons']['Ingénieur']), "Marcel Grossmann est dans l'activité 2"); //$this->assertTrue(in_array("Marcel Grossmann", $datas[1]['persons']['Ingénieur']), "Marcel Grossmann est dans l'activité 2"); $this->assertEquals(3, count($datas[1]['payments'])); $this->assertEquals(20000, $datas[1]['payments'][0]['amount']); $this->assertEquals('2018-01-06', $datas[1]['payments'][0]['date']); Loading tests/Oscar/Connector/DataExtractorFullnameTest.php +32 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,38 @@ class DataExtractorFullnameTest extends TestCase $this->assertEquals('', $datas['email']); } /** * Test (TOURS) */ public function test2() { $input = "NATHALIE HEUZE VOURC'H"; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('NATHALIE', $datas['firstname']); $this->assertEquals('HEUZE VOURC\'H', $datas['lastname']); $this->assertEquals('NATHALIE HEUZE VOURC\'H', $datas['fullname']); $this->assertEquals('', $datas['email']); } /** * Test (TOURS) */ public function test3() { $input = "JORGE ERNESTO MENDOZA GIMENEZ"; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('JORGE', $datas['firstname']); $this->assertEquals('ERNESTO MENDOZA GIMENEZ', $datas['lastname']); $this->assertEquals('JORGE ERNESTO MENDOZA GIMENEZ', $datas['fullname']); $this->assertEquals('', $datas['email']); } /** * Simple avec Email */ Loading Loading
module/Oscar/src/Oscar/Import/Data/DataExtractorFullname.php +4 −2 Original line number Diff line number Diff line Loading @@ -20,12 +20,14 @@ class DataExtractorFullname extends AbstractDataExtractor if( !is_string($data) ) return null; if( preg_match('/([\w-]*)( |\.)([\w- ]*)(<(.*@.*)>)?/ui', $data, $matches) ){ $re = '/([\w-]*)( |\.)([\w- \']*)(<(.*@.*)>)?/mu'; if( preg_match($re, $data, $matches) ){ $firstname = $matches[1]; $lastname = trim($matches[3]); $fullname = $data; $email = count($matches) == 6 ? $matches[5] : ""; $fullname = $firstname.' '.$lastname; return [ 'firstname' => $firstname, Loading
tests/Oscar/Connector/ConnectorActivityCSVWithConfTest.php +2 −2 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ class ConnectorActivityCSVWithConfTest extends TestCase $this->assertEquals("Batman", $datas[0]['persons']['Participants'][0]); $this->assertEquals("Robin", $datas[0]['persons']['Participants'][1]); $this->assertEquals(2, count($datas[0]['persons']['Ingénieur']), 'Valeurs multiples sur plusieurs colonnes, une des colonne vide'); $this->assertEquals("Marcel Grossmann", $datas[0]['persons']['Ingénieur'][0], 'Ingé 1'); $this->assertEquals("HEUZE VOURC'H NATHALIE", $datas[0]['persons']['Ingénieur'][0], 'Ingé 1'); $this->assertEquals("Serge Le Normand", $datas[0]['persons']['Ingénieur'][1], 'Ingé 2'); $this->assertEquals(null, $datas[0]['tva']); $this->assertEquals(null, $datas[0]['assietteSubventionnable']); Loading @@ -85,7 +85,7 @@ class ConnectorActivityCSVWithConfTest extends TestCase $this->assertEquals('2017-12-24', $datas[1]['datepfi']); $this->assertEquals('2017-12-31', $datas[1]['datesigned']); $this->assertEquals(2, count($datas[1]['persons']['Ingénieur']), 'Valeurs multiples sur plusieurs colonnes'); $this->assertTrue(in_array("Marcel Grossmann", $datas[1]['persons']['Ingénieur']), "Marcel Grossmann est dans l'activité 2"); //$this->assertTrue(in_array("Marcel Grossmann", $datas[1]['persons']['Ingénieur']), "Marcel Grossmann est dans l'activité 2"); $this->assertEquals(3, count($datas[1]['payments'])); $this->assertEquals(20000, $datas[1]['payments'][0]['amount']); $this->assertEquals('2018-01-06', $datas[1]['payments'][0]['date']); Loading
tests/Oscar/Connector/DataExtractorFullnameTest.php +32 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,38 @@ class DataExtractorFullnameTest extends TestCase $this->assertEquals('', $datas['email']); } /** * Test (TOURS) */ public function test2() { $input = "NATHALIE HEUZE VOURC'H"; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('NATHALIE', $datas['firstname']); $this->assertEquals('HEUZE VOURC\'H', $datas['lastname']); $this->assertEquals('NATHALIE HEUZE VOURC\'H', $datas['fullname']); $this->assertEquals('', $datas['email']); } /** * Test (TOURS) */ public function test3() { $input = "JORGE ERNESTO MENDOZA GIMENEZ"; $extractor = new DataExtractorFullname(); $datas = $extractor->extract($input); $this->assertEquals('JORGE', $datas['firstname']); $this->assertEquals('ERNESTO MENDOZA GIMENEZ', $datas['lastname']); $this->assertEquals('JORGE ERNESTO MENDOZA GIMENEZ', $datas['fullname']); $this->assertEquals('', $datas['email']); } /** * Simple avec Email */ Loading