src/Services/WebServiceUsuarios.php line 25

  1. <?php
  2. namespace App\Services;
  3. use App\Entity\Divisa;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\Routing\RouterInterface;
  7. use Psr\Log\LoggerInterface;
  8. require_once('NTLMStream.php');
  9. ini_set("soap.wsdl_cache_enabled"0);
  10. if(!defined('USERPWD')){
  11. //     define('USERPWD', 'web:3ur0ch4ng3');
  12.     define('USERPWD','web:RpvGer43,567W12@@');
  13. }
  14. class WebServiceUsuarios {
  15.     private $ClienteSoap;
  16.     private $em;
  17.     protected $router;
  18.     protected $logger;
  19.     public function __construct(EntityManagerInterface $em,RouterInterface $routerLoggerInterface $webservicesLogger)
  20.     {
  21.         try{
  22.             $this->logger=$webservicesLogger;
  23.             $this->router=$router;
  24.             $this->em=$em;
  25.             stream_wrapper_unregister('http'); 
  26.             stream_wrapper_register('http'NTLMStream::class)/* or die("Failed to register protocol")*/;
  27.             //$baseURL = 'http://getems.ddns.net:9047/WEB/WS/Backoffice%20Eurochange/Page/WSListaClientes';
  28.             $baseURL 'http://142.132.143.176:9047/WEB/WS/Backoffice%20Eurochange/Page/WSListaClientes';
  29.             $this->ClienteSoap = new NTLMSoapClient($baseURL,array("trace"=>1));
  30.         }catch(\Exception $fault){
  31.             $this->logger->critical('[DINAMIC][EXCEPCION][1/1][CONECTAR WSFUNCIONES] '.$fault->getMessage().' '.$fault->getCode().' '.$fault->getTraceAsString());
  32.         }
  33.     }
  34.     public function findOne($id){
  35.         $args = array(
  36.             'No' => $id            
  37.         );
  38.         $clientes=(array) $this->ClienteSoap->Read($args);
  39.         //print_r($clientes);
  40.         if(count($clientes)==1){
  41.             return $clientes['WSListaClientes'];
  42.         }
  43.         return false;
  44.     }
  45.     /**
  46.      * @deprecated Importa masivamente usuarios
  47.      * Usada en el ERP de Pruebas para trastear con usuarios antiguos
  48.      * @return mixed
  49.      */
  50.     public function getClientes(){
  51.         $args = array(
  52.             'setSize' => 100,
  53.             'filter' => array(
  54.             array("Field"=>'No',"Criteria"=>'*')
  55.             )
  56.         );
  57.         $clientes=$this->ClienteSoap->ReadMultiple($args);
  58.         return $clientes;
  59.     }
  60.     /**
  61.      * Busca un usuario en el ERP dado un campo para filtrar y un valor
  62.      * @param string $key Campo por el que se filtrará P/E: 'No' para código ERP
  63.      * @param string $value Valor del campo P/E: C0001/000000001
  64.      * @return array|bool usuario ERP o false en caso de que falle
  65.      */
  66.     public function findBy($key,$value){
  67.         $args = array(
  68.             'setSize' => 1,
  69.             'filter' => array(
  70.             array("Field"=>$key,"Criteria"=>$value)
  71.             )
  72.         );
  73.         try {
  74.             $clientes $this->ClienteSoap->ReadMultiple($args);
  75.             if (count((array)$clientes->ReadMultiple_Result) > 1) {
  76.                 foreach ($clientes->ReadMultiple_Result->WSListaClientes as $cliente) {
  77.                     $salida $cliente->$key;
  78.                 }
  79.                 return $salida;
  80.             } else if (count((array)$clientes->ReadMultiple_Result)) {
  81.                 $cliente = (array)$clientes->ReadMultiple_Result->WSListaClientes;
  82.                 if (!isset($cliente['Name'])) $cliente['Name'] = '';
  83.                 if (!isset($cliente['Name_2'])) $cliente['Name2'] = '';
  84.                 if (!isset($cliente['Address']))
  85.                     $cliente['direccion1'] = '';
  86.                 else
  87.                     $cliente['direccion1'] = $cliente['Address'];
  88.                 if (!isset($cliente['Address_2']))
  89.                     $cliente['direccion2'] = '';
  90.                 else
  91.                     $cliente['direccion2'] = $cliente['Address_2'];
  92.                 if (!isset($cliente['City']))
  93.                     $cliente['ciudad'] = '';
  94.                 else
  95.                     $cliente['ciudad'] = $cliente['City'];
  96.                 if (!isset($cliente['Phone_No']))
  97.                     $cliente['tlf'] = '';
  98.                 else
  99.                     $cliente['tlf'] = $cliente['Phone_No'];
  100.                 if (!isset($cliente['Country_Region_Code']))
  101.                     $cliente['pais'] = '';
  102.                 else
  103.                     $cliente['pais'] = $cliente['Country_Region_Code'];
  104.                 if (!isset($cliente['Post_Code']))
  105.                     $cliente['cp'] = '';
  106.                 else
  107.                     $cliente['cp'] = $cliente['Post_Code'];
  108.                 if (!isset($cliente['Tipo_doc_identificación']))
  109.                     $cliente['tipoDoc'] = '';
  110.                 else
  111.                     $cliente['tipoDoc'] = $cliente['Tipo_doc_identificación'];
  112.                 if (!isset($cliente['Fecha_expiración_doc_identif']))
  113.                     $cliente['fechaDoc'] = '';
  114.                 else
  115.                     $cliente['fechaDoc'] = $cliente['Fecha_expiración_doc_identif'];
  116.                 if (!isset($cliente['Fecha_nacimiento']))
  117.                     $cliente['fechaNac'] = '';
  118.                 else
  119.                     $cliente['fechaNac'] = $cliente['Fecha_nacimiento'];
  120.                 if (!isset($cliente['VAT_Registration_No']))
  121.                     $cliente['numDocumento'] = '';
  122.                 else
  123.                     $cliente['numDocumento'] = $cliente['VAT_Registration_No'];
  124.                 if (!isset($cliente['County']))
  125.                     $cliente['county'] = '';
  126.                 else
  127.                     $cliente['county'] = $cliente['County'];
  128.                 if (!isset($cliente['E_Mail']))
  129.                     $cliente['email'] = '';
  130.                 else
  131.                     $cliente['email'] = $cliente['E_Mail'];
  132.                 if (!isset($cliente['N_x00BA__tarjeta_fidelización']))
  133.                     $cliente['fidelizacion'] = '';
  134.                 else
  135.                     $cliente['fidelizacion'] = $cliente['N_x00BA__tarjeta_fidelización'];
  136.                     
  137. //                     var_dump($cliente);
  138.                     
  139. //                     die();
  140.                 $this->logger->info('[DINAMIC][INFO][1/2][USER FIND BY] ' $this->ClienteSoap->__getLastRequest() . PHP_EOL "\t con los argumentos: " json_encode($args));
  141.                 $this->logger->info('[DINAMIC][INFO][2/2][USER FIND BY] Respuesta del servidor: ' $this->ClienteSoap->__getLastResponse());
  142.                 return $cliente;
  143.             }
  144.             $this->logger->error('[DINAMIC][ERROR][1/2][USER FIND BY] '.$this->ClienteSoap->__getLastRequest().PHP_EOL."\t con los argumentos: ".json_encode($args));
  145.             $this->logger->error('[DINAMIC][ERROR][2/2][USER FIND BY] Respuesta del servidor: '.$this->ClienteSoap->__getLastResponse());
  146.             return false;
  147.         }
  148.         catch (\SoapFault $fault){
  149.             $this->logger->critical('[DINAMIC][EXCEPTION][1/3][USER FIND BY] '.$this->ClienteSoap->__getLastRequest().PHP_EOL."\t con los argumentos: ".json_encode($args));
  150.             $this->logger->critical('[DINAMIC][EXCEPTION][2/3][USER FIND BY] Respuesta del servidor: '.$this->ClienteSoap->__getLastResponse());
  151.             $this->logger->critical('[DINAMIC][EXCEPCION][3/3][USER FIND BY] '.$fault->getMessage().' '.$fault->getCode().' '.$fault->getTraceAsString());
  152.         }
  153.     }
  154. }