Esempio n. 1
0
 /**
  * Actualizar condifuracion de cajas
  * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator
  * @param \Tesoreria\Models\ERequest $request
  * @param  boolean $conexionEstablecida
  * @return \Tesoreria\Models\EResponse
  */
 public static function actualizarConfMaestro($serviceLocator, $request, $conexionEstablecida = false)
 {
     $response = new EResponse();
     $params = array();
     $params["request"] = $request;
     $params = json_encode($params);
     $conexion = null;
     if (!$conexionEstablecida) {
         $conexion = $serviceLocator->get(Constants::SCHEMA_1)->getDriver()->getConnection();
         $conexion->beginTransaction();
     }
     try {
         self::init($serviceLocator);
         ExpLog::save($serviceLocator, $request->header->serieEquipo, Constants::LOG_ACTIVIDAD, "", "Actualizar configuracion de maestros", $params, "", $request->header->usuario);
         if (array_key_exists("item", $request->param_da)) {
             $param_da = $request->param_da->item;
         } else {
             $param_da = $request->param_da;
         }
         $valores = "";
         foreach ($param_da as $pa) {
             $maestroTerminalId = $pa->maestro_base->id;
             foreach ($pa->lista_configuraciones as $confDA) {
                 $configuracion = $confDA->configuracion;
                 $conf_id = $configuracion->id;
                 $valor = $confDA->valor;
                 $usoDAMaestro = self::$usoDAMaestroDao->getOneObject(array('uso_dam_conf_da' => $conf_id, 'ma_ba_maestro' => $maestroTerminalId));
                 if ($usoDAMaestro->getValor() != $valor) {
                     $usoDAMaestro->setValor($valor);
                     $usoDAMaestroGuardado = self::$usoDAMaestroDao->save($usoDAMaestro);
                     if (!$usoDAMaestroGuardado) {
                         throw new Exception();
                     }
                 }
             }
         }
         if (!is_null($conexion)) {
             $conexion->commit();
         }
         return $response;
     } catch (Exception $e) {
         if (!is_null($conexion)) {
             $conexion->rollback();
             ExpLog::save($serviceLocator, $request->header->serieEquipo, Constants::LOG_ERROR, "", "Actualizar configuracion de maestros", $params, $e->getMessage(), $request->header->usuario);
             $error = new Error();
             $error->setMensaje("Error: no se pudo actualizar los datos de los maestros.");
             $response->error = $error;
             return $response;
         } else {
             return false;
         }
     }
 }