/** * 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; }
/** * 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; } }
/** * 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; } }