Пример #1
0
 /**
  * Abrir caja
  * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator
  * @param \Siris\Models\ERequestHeader $requestHeader
  * @return \Siris\Models\EResponse
  */
 public static function openTerminal($serviceLocator, $requestHeader)
 {
     $params = "requestHeader: " . json_encode($requestHeader);
     ExpLog::save($serviceLocator, $requestHeader->serieEquipo, Constants::LOG_ACTIVIDAD, Constants::CO_OPEN_TERMINAL, "Abrir Terminal", "", $params, $requestHeader->usuario);
     $newRequest = ExpWebService::makeGeneralRequest($requestHeader, Constants::CO_OPEN_TERMINAL);
     $result = WSDL::callMethod($newRequest);
     $response = ExpWebService::makeGeneralResponse($serviceLocator, $result, $requestHeader);
     return $response;
 }
Пример #2
0
 /**
  * Autorizacion Cierre Sin Cuadrar
  * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator
  * @param \Tesoreria\Models\ERequest $request
  * @param int $codOperacion
  * @return \Tesoreria\Models\EResponse
  */
 public static function getAutorizacionOperacion($serviceLocator, $request, $codOperacion)
 {
     $response = new EResponse();
     $params = array();
     $params["request"] = $request;
     $params = json_encode($params);
     $conexion = $serviceLocator->get(Constants::SCHEMA_1)->getDriver()->getConnection();
     $conexion->beginTransaction();
     try {
         self::init($serviceLocator);
         ExpLog::save($serviceLocator, $request->header->serieEquipo, Constants::LOG_ACTIVIDAD, "", "Autorizar Operacion. Codigo: " . $codOperacion, $params, "", $request->header->usuario);
         # 1. Segun los datos enviados válido si el usuario puede o no autorizar la operacion requerida.
         $newRequest = new \stdClass();
         $newRequest->CodigoOperacion = $codOperacion;
         $newRequest->Secuencia = Constants::SEQ_0;
         $newRequest->SerieEquipo = $request->header->serieEquipo;
         $newRequest->TrxEquipo = "1";
         //$request->header->trxEquipo;
         $newRequest->Usuario = $request->header->usuarioAutorizador;
         $newRequest->Password = $request->header->passwordAutorizador;
         $result = WSDL::callMethod($newRequest);
         # 2. Si el usuario NO es válido informo la situación al cliente
         if ($result->Resultado != Constants::NO_ERROR_COD) {
             $error = new Error();
             $error->codigo = $result->Resultado;
             $error->mensaje = $result->ResultadoMsg;
             $response->error = $error;
         }
         $response->result = json_encode($result);
         $conexion->commit();
         return $response;
     } catch (Exception $e) {
         $conexion->rollback();
         ExpLog::save($serviceLocator, $request->header->serieEquipo, Constants::LOG_ERROR, "", "Autorizar Operacion. Codigo: " . $codOperacion, $params, $e->getMessage(), $request->header->usuario);
         $error = new Error();
         $error->setMensaje("Error: no se pudo autorizar la operacion.");
         $response->error = $error;
         return $response;
     }
 }
Пример #3
0
 /**
  * Generacion de la respuesta general
  * @param stdClass $response respuesta de Siris
  * @return \Siris\Models\EResponse
  */
 public static function makeGeneralResponse($response)
 {
     try {
         $newResponse = new EResponse();
         $newResponse->result = json_encode($response);
         # si devuelve un codigo de error, entonces lanza una excepcion
         if ($response->Resultado != Constants::NO_ERROR_COD || $response->Resultado == "" || strpos(strtolower($response->Texto->Linea[0]), 'error') !== false) {
             throw new \Exception();
         } else {
             $newResponse->titulo = $response->ResultadoMsg;
         }
         $newResponse->secuencia = $response->Secuencia;
         # Parseo de la propiedad Ingresos que devuelve Siris
         if (!empty($response->Ingresos) && !is_null($response->Ingresos)) {
             foreach ($response->Ingresos as $all_ingresos) {
                 foreach ($all_ingresos as $key => $ing) {
                     if ($key == "Tickets") {
                         if (property_exists($ing, "Ticket")) {
                             # seteo de los tickets a la respuesta
                             $arrayResponseTickets = $ing->Ticket;
                             if (!is_array($arrayResponseTickets)) {
                                 $arrayResponseTickets = array($arrayResponseTickets);
                             }
                             $arrayTickets = array();
                             foreach ($arrayResponseTickets as $tkt) {
                                 $newTicket = new Ticket();
                                 $newTicket->texto = $tkt->Texto->Linea;
                                 $arrayTickets[] = $newTicket;
                             }
                             $newResponse->tickets = $arrayTickets;
                         }
                     }
                 }
             }
         }
         # Parseo de la propiedad Informe que devuelve Siris
         if (!empty($response->Informe) && !is_null($response->Informe) && count((array) $response->Informe) != 0) {
             $informe = new Informe();
             $informe->trxEquipo = $response->Informe->TrxEquipo;
             $lote = new Lote();
             $lote->numero = $response->Informe->Lote->Numero;
             $lote->fechaHora = $response->Informe->Lote->FechaHora;
             $lote->transmitido = $response->Informe->Lote->Transmitido;
             $anulada = new Anulada();
             $anulada->cantidad = $response->Informe->Lote->Anuladas->Cantidad;
             $anulada->importe = $response->Informe->Lote->Anuladas->Importe;
             $lote->anuladas = $anulada;
             $aprobada = new Aprobada();
             $aprobada->cantidad = $response->Informe->Lote->Aprobadas->Cantidad;
             $aprobada->importe = $response->Informe->Lote->Aprobadas->Importe;
             $lote->aprobadas = $aprobada;
             $informe->lote = $lote;
             $arrayTransacciones = array();
             $responseArrayTransacciones = $response->Informe->Transacciones;
             if (!is_array($responseArrayTransacciones)) {
                 $responseArrayTransacciones = array($responseArrayTransacciones);
             }
             foreach ($responseArrayTransacciones as $tran) {
                 $allTransacciones = $tran->Transaccion;
                 if (!is_array($allTransacciones)) {
                     $allTransacciones = array($allTransacciones);
                 }
                 foreach ($allTransacciones as $trx) {
                     $transaccion = new Transaccion();
                     $transaccion->nroTransaccion = $trx->TransaccionSiris;
                     $transaccion->trxEquipo = $trx->TrxEquipo;
                     $transaccion->servicio = $trx->Servicio;
                     $transaccion->descripcion = $trx->Descripcion;
                     $transaccion->importe = $trx->Importe;
                     $transaccion->identificador_1 = $trx->Identificador_1;
                     $transaccion->identificador_2 = $trx->Identificador_2;
                     $transaccion->estado = $trx->Estado;
                     $transaccion->fechaHora = $trx->FechaHora;
                     $transaccion->usuario = $trx->Usuario;
                     $arrayPagos = array();
                     $responseArrayPagos = $trx->Pagos;
                     if (!is_array($responseArrayPagos)) {
                         $responseArrayPagos = array($responseArrayPagos);
                     }
                     foreach ($responseArrayPagos as $pay) {
                         $pago = new Pago();
                         $pago->importe = $pay->Pago->Importe;
                         $pago->texto = $pay->Pago->Texto;
                         $pago->codigo = $pay->Pago->Codigo;
                         $pago->nroCheque = $pay->Pago->NroCheque;
                         $pago->nroCuenta = $pay->Pago->NroCuenta;
                         $pago->nroTarjeta = $pay->Pago->nroTarjeta;
                         $pago->nroOperacion = $pay->Pago->nroOperacion;
                         $pago->titular = $pay->Pago->Titular;
                         $pago->codAutorizacion = $pay->Pago->CodAutorizacion;
                         $arrayPagos[] = $pago;
                     }
                     $transaccion->pagos = $arrayPagos;
                     $arrayTransacciones[] = $transaccion;
                 }
             }
             $informe->transacciones = $arrayTransacciones;
             $newResponse->informe = $informe;
         }
         # Parseo de la propiedad Estado que devuelve Siris
         if (!empty($response->Estado) && !is_null($response->Estado)) {
             $estado = new Estado();
             $estado->estado = $response->Estado->Estado;
             $estado->usuario = $response->Estado->Usuario;
             $estado->rolId = $response->Estado->RolId;
             $estado->agencia = $response->Estado->Agencia;
             $estado->terminal = $response->Estado->Terminal;
             $newResponse->estado = $estado;
         }
         # Bloqueo y desbloqueo de terminal
         if (!is_array($response->Texto->Linea) && strpos(strtolower($response->Texto->Linea), "suspendida")) {
             $error = new Error();
             $error->codigo = Constants::ERROR_COD_SUSPENDIDA;
             $error->mensaje = $response->Texto->Linea;
             $newResponse->error = $error;
         }
         return $newResponse;
     } catch (\Exception $e) {
         #log
         $expLog = new ExpLog();
         $expLog->save("texto de prueba", "TER999981", "cajero");
         # crea la respuesta de error con el mensaje proveniente de Siris
         $newResponse = new EResponse();
         $newResponse->result = json_encode($response);
         $newResponse->secuencia = $response->Secuencia;
         $error = new Error();
         $error->codigo = $response->Resultado;
         if (strpos(strtolower($response->Texto->Linea[0]), 'error') !== false) {
             $error->mensaje = implode($response->Texto->Linea);
         } else {
             $error->mensaje = $response->ResultadoMsg;
         }
         $newResponse->error = $error;
         return $newResponse;
     }
 }