src/Services/WebServiceUsuarios.php line 25
- <?php
- namespace App\Services;
- use App\Entity\Divisa;
- use Doctrine\ORM\EntityManagerInterface;
- use Symfony\Component\HttpFoundation\RedirectResponse;
- use Symfony\Component\Routing\RouterInterface;
- use Psr\Log\LoggerInterface;
- require_once('NTLMStream.php');
- ini_set("soap.wsdl_cache_enabled", 0);
- if(!defined('USERPWD')){
- // define('USERPWD', 'web:3ur0ch4ng3');
- define('USERPWD','web:RpvGer43,567W12@@');
- }
- class WebServiceUsuarios {
- private $ClienteSoap;
- private $em;
- protected $router;
- protected $logger;
- public function __construct(EntityManagerInterface $em,RouterInterface $router, LoggerInterface $webservicesLogger)
- {
- try{
- $this->logger=$webservicesLogger;
- $this->router=$router;
- $this->em=$em;
- stream_wrapper_unregister('http');
- stream_wrapper_register('http', NTLMStream::class)/* or die("Failed to register protocol")*/;
- //$baseURL = 'http://getems.ddns.net:9047/WEB/WS/Backoffice%20Eurochange/Page/WSListaClientes';
- $baseURL = 'http://142.132.143.176:9047/WEB/WS/Backoffice%20Eurochange/Page/WSListaClientes';
- $this->ClienteSoap = new NTLMSoapClient($baseURL,array("trace"=>1));
- }catch(\Exception $fault){
- $this->logger->critical('[DINAMIC][EXCEPCION][1/1][CONECTAR WSFUNCIONES] '.$fault->getMessage().' '.$fault->getCode().' '.$fault->getTraceAsString());
- }
- }
- public function findOne($id){
- $args = array(
- 'No' => $id
- );
- $clientes=(array) $this->ClienteSoap->Read($args);
- //print_r($clientes);
- if(count($clientes)==1){
- return $clientes['WSListaClientes'];
- }
- return false;
- }
- /**
- * @deprecated Importa masivamente usuarios
- * Usada en el ERP de Pruebas para trastear con usuarios antiguos
- * @return mixed
- */
- public function getClientes(){
- $args = array(
- 'setSize' => 100,
- 'filter' => array(
- array("Field"=>'No',"Criteria"=>'*')
- )
- );
- $clientes=$this->ClienteSoap->ReadMultiple($args);
- return $clientes;
- }
- /**
- * Busca un usuario en el ERP dado un campo para filtrar y un valor
- * @param string $key Campo por el que se filtrará P/E: 'No' para código ERP
- * @param string $value Valor del campo P/E: C0001/000000001
- * @return array|bool usuario ERP o false en caso de que falle
- */
- public function findBy($key,$value){
- $args = array(
- 'setSize' => 1,
- 'filter' => array(
- array("Field"=>$key,"Criteria"=>$value)
- )
- );
- try {
- $clientes = $this->ClienteSoap->ReadMultiple($args);
- if (count((array)$clientes->ReadMultiple_Result) > 1) {
- foreach ($clientes->ReadMultiple_Result->WSListaClientes as $cliente) {
- $salida = $cliente->$key;
- }
- return $salida;
- } else if (count((array)$clientes->ReadMultiple_Result)) {
- $cliente = (array)$clientes->ReadMultiple_Result->WSListaClientes;
- if (!isset($cliente['Name'])) $cliente['Name'] = '';
- if (!isset($cliente['Name_2'])) $cliente['Name2'] = '';
- if (!isset($cliente['Address']))
- $cliente['direccion1'] = '';
- else
- $cliente['direccion1'] = $cliente['Address'];
- if (!isset($cliente['Address_2']))
- $cliente['direccion2'] = '';
- else
- $cliente['direccion2'] = $cliente['Address_2'];
- if (!isset($cliente['City']))
- $cliente['ciudad'] = '';
- else
- $cliente['ciudad'] = $cliente['City'];
- if (!isset($cliente['Phone_No']))
- $cliente['tlf'] = '';
- else
- $cliente['tlf'] = $cliente['Phone_No'];
- if (!isset($cliente['Country_Region_Code']))
- $cliente['pais'] = '';
- else
- $cliente['pais'] = $cliente['Country_Region_Code'];
- if (!isset($cliente['Post_Code']))
- $cliente['cp'] = '';
- else
- $cliente['cp'] = $cliente['Post_Code'];
- if (!isset($cliente['Tipo_doc_identificación']))
- $cliente['tipoDoc'] = '';
- else
- $cliente['tipoDoc'] = $cliente['Tipo_doc_identificación'];
- if (!isset($cliente['Fecha_expiración_doc_identif']))
- $cliente['fechaDoc'] = '';
- else
- $cliente['fechaDoc'] = $cliente['Fecha_expiración_doc_identif'];
- if (!isset($cliente['Fecha_nacimiento']))
- $cliente['fechaNac'] = '';
- else
- $cliente['fechaNac'] = $cliente['Fecha_nacimiento'];
- if (!isset($cliente['VAT_Registration_No']))
- $cliente['numDocumento'] = '';
- else
- $cliente['numDocumento'] = $cliente['VAT_Registration_No'];
- if (!isset($cliente['County']))
- $cliente['county'] = '';
- else
- $cliente['county'] = $cliente['County'];
- if (!isset($cliente['E_Mail']))
- $cliente['email'] = '';
- else
- $cliente['email'] = $cliente['E_Mail'];
- if (!isset($cliente['N_x00BA__tarjeta_fidelización']))
- $cliente['fidelizacion'] = '';
- else
- $cliente['fidelizacion'] = $cliente['N_x00BA__tarjeta_fidelización'];
- // var_dump($cliente);
- // die();
- $this->logger->info('[DINAMIC][INFO][1/2][USER FIND BY] ' . $this->ClienteSoap->__getLastRequest() . PHP_EOL . "\t con los argumentos: " . json_encode($args));
- $this->logger->info('[DINAMIC][INFO][2/2][USER FIND BY] Respuesta del servidor: ' . $this->ClienteSoap->__getLastResponse());
- return $cliente;
- }
- $this->logger->error('[DINAMIC][ERROR][1/2][USER FIND BY] '.$this->ClienteSoap->__getLastRequest().PHP_EOL."\t con los argumentos: ".json_encode($args));
- $this->logger->error('[DINAMIC][ERROR][2/2][USER FIND BY] Respuesta del servidor: '.$this->ClienteSoap->__getLastResponse());
- return false;
- }
- catch (\SoapFault $fault){
- $this->logger->critical('[DINAMIC][EXCEPTION][1/3][USER FIND BY] '.$this->ClienteSoap->__getLastRequest().PHP_EOL."\t con los argumentos: ".json_encode($args));
- $this->logger->critical('[DINAMIC][EXCEPTION][2/3][USER FIND BY] Respuesta del servidor: '.$this->ClienteSoap->__getLastResponse());
- $this->logger->critical('[DINAMIC][EXCEPCION][3/3][USER FIND BY] '.$fault->getMessage().' '.$fault->getCode().' '.$fault->getTraceAsString());
- }
- }
- }