/** * Inserta movimiento en la BD. LLama al store procedure "insertNewMovement" * @param \djmeWeb\Model\GlobalModel\GMovimientosCreditos $movement * @return type -1 Error. La transaccion no se realizó * >0 Correcto. La transacción fue realizada */ public function saveMovement(GMovimientosCreditos $movement) { try { $movementData = $movement->getFullData(); $adapter = $this->tableGateway->getAdapter(); $stmt = $adapter->getDriver()->createStatement(); // Ejecuto Store Procedure if ($movementData["ID_USUARIO_ASOCIADO"] == NULL) { $movementData["ID_USUARIO_ASOCIADO"] = 'NULL'; } $stmt->prepare('CALL ' . GMovimientosCreditosTable::SP_INSERT_MOVEMENT_NAME . '(' . $movementData["ID_TIPO_MOVIMIENTO"] . ',' . $movementData["ID_USUARIO"] . ',' . $movementData["ID_USUARIO_ASOCIADO"] . ',' . $movementData["CANTIDAD_CREDITOS"] . ',@out)'); /* $stmt->getResource()->bindParam(1, $movementData["ID_TIPO_MOVIMIENTO"], \PDO::PARAM_INT); $stmt->getResource()->bindParam(2, $movementData["ID_USUARIO"]); $stmt->getResource()->bindParam(3, $movementData["ID_USUARIO_ASOCIADO"]); $stmt->getResource()->bindParam(4, $movementData["CANTIDAD_CREDITOS"]); */ $stmt->execute(); // libero cursor unset($stmt); // Obtengo resultado $stmt2 = $adapter->createStatement(); $stmt2->prepare("SELECT @out AS insertMovementId"); $result = $stmt2->execute(); $output = $result->current(); return (int) $output['insertMovementId']; } catch (\Exception $e) { return -1; } }
private function getMovementFromData() { $movement = new GMovimientosCreditos(); $data = array('ID_TIPO_MOVIMIENTO' => $this->requiredParametersReceived['movement_type_identifier'], 'ID_USUARIO' => $this->requiredParametersReceived['user_id'], 'ID_USUARIO_ASOCIADO' => $this->checkOption('asociated_user_id'), 'CANTIDAD_CREDITOS' => $this->requiredParametersReceived['credits_amount']); // Si se envió la opcion "user_by_username", se habrá enviado un nombre de usuario, y no un id. // Debo obtener ese id. if ($this->checkOption("user_by_username") == "true") { $user = $this->userUtils->getUser($data['ID_USUARIO'], false, false, true); $data['ID_USUARIO'] = $user[0]["UID"]; } $movement->exchangeArray($data); return $movement; }
public static function getTableIO($adapter) { return new GMovimientosCreditosTable(GMovimientosCreditos::getTableGateway($adapter)); }