public function saveItem( \Aimeos\MShop\Common\Item\Iface $item, $fetch = true )
	{
		self::checkClass( \Aimeos\MShop\Customer\Item\Group\Iface::class, $item );

		if( !$item->isModified() ) {
			return $item;
		}

		$context = $this->getContext();

		$dbm = $context->getDatabaseManager();
		$dbname = $this->getResourceName();
		$conn = $dbm->acquire( $dbname );

		try
		{
			$id = $item->getId();

			if( $id === null )
			{
				/** mshop/customer/manager/group/typo3/insert/mysql
				 * Inserts a new customer group record into the database table
				 *
				 * @see mshop/customer/manager/group/typo3/insert/ansi
				 */

				/** mshop/customer/manager/group/typo3/insert/ansi
				 * Inserts a new customer group record into the database table
				 *
				 * Items with no ID yet (i.e. the ID is NULL) will be created in
				 * the database and the newly created ID retrieved afterwards
				 * using the "newid" SQL statement.
				 *
				 * The SQL statement must be a string suitable for being used as
				 * prepared statement. It must include question marks for binding
				 * the values from the customer group item to the statement before
				 * they are sent to the database server. The number of question
				 * marks must be the same as the number of columns listed in the
				 * INSERT statement. The order of the columns must correspond to
				 * the order in the saveItems() method, so the correct values are
				 * bound to the columns.
				 *
				 * The SQL statement should conform to the ANSI standard to be
				 * compatible with most relational database systems. This also
				 * includes using double quotes for table and column names.
				 *
				 * @param string SQL statement for inserting records
				 * @since 2015.08
				 * @category Developer
				 * @see mshop/customer/manager/group/typo3/update/ansi
				 * @see mshop/customer/manager/group/typo3/newid/ansi
				 * @see mshop/customer/manager/group/typo3/delete/ansi
				 * @see mshop/customer/manager/group/typo3/search/ansi
				 * @see mshop/customer/manager/group/typo3/count/ansi
				 */
				$path = 'mshop/customer/manager/group/typo3/insert';
			}
			else
			{
				/** mshop/customer/manager/group/typo3/update/mysql
				 * Updates an existing customer group record in the database
				 *
				 * @see mshop/customer/manager/group/typo3/update/ansi
				 */

				/** mshop/customer/manager/group/typo3/update/ansi
				 * Updates an existing customer group record in the database
				 *
				 * Items which already have an ID (i.e. the ID is not NULL) will
				 * be updated in the database.
				 *
				 * The SQL statement must be a string suitable for being used as
				 * prepared statement. It must include question marks for binding
				 * the values from the customer group item to the statement before
				 * they are sent to the database server. The order of the columns
				 * must correspond to the order in the saveItems() method, so the
				 * correct values are bound to the columns.
				 *
				 * The SQL statement should conform to the ANSI standard to be
				 * compatible with most relational database systems. This also
				 * includes using double quotes for table and column names.
				 *
				 * @param string SQL statement for updating records
				 * @since 2015.08
				 * @category Developer
				 * @see mshop/customer/manager/group/typo3/insert/ansi
				 * @see mshop/customer/manager/group/typo3/newid/ansi
				 * @see mshop/customer/manager/group/typo3/delete/ansi
				 * @see mshop/customer/manager/group/typo3/search/ansi
				 * @see mshop/customer/manager/group/typo3/count/ansi
				 */
				$path = 'mshop/customer/manager/group/typo3/update';
			}

			$stmt = $this->getCachedStatement( $conn, $path );

			$stmt->bind( 1, $this->pid, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
			$stmt->bind( 2, $item->getCode() );
			$stmt->bind( 3, $item->getLabel() );
			$stmt->bind( 4, time(), \Aimeos\MW\DB\Statement\Base::PARAM_INT ); // mtime

			if( $id !== null ) {
				$stmt->bind( 5, $id, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
				$item->setId( $id );
			} else {
				$stmt->bind( 5, time() ); // ctime
			}

			$stmt->execute()->finish();

			if( $id === null && $fetch === true )
			{
				/** mshop/customer/manager/group/typo3/newid/mysql
				 * Retrieves the ID generated by the database when inserting a new record
				 *
				 * @see mshop/customer/manager/group/typo3/newid/ansi
				 */

				/** mshop/customer/manager/group/typo3/newid/ansi
				 * Retrieves the ID generated by the database when inserting a new record
				 *
				 * As soon as a new record is inserted into the database table,
				 * the database server generates a new and unique identifier for
				 * that record. This ID can be used for retrieving, updating and
				 * deleting that specific record from the table again.
				 *
				 * For MySQL:
				 *  SELECT LAST_INSERT_ID()
				 * For PostgreSQL:
				 *  SELECT currval('seq_mcus_id')
				 * For SQL Server:
				 *  SELECT SCOPE_IDENTITY()
				 * For Oracle:
				 *  SELECT "seq_mcus_id".CURRVAL FROM DUAL
				 *
				 * There's no way to retrive the new ID by a SQL statements that
				 * fits for most database servers as they implement their own
				 * specific way.
				 *
				 * @param string SQL statement for retrieving the last inserted record ID
				 * @since 2015.08
				 * @category Developer
				 * @see mshop/customer/manager/group/typo3/insert/ansi
				 * @see mshop/customer/manager/group/typo3/update/ansi
				 * @see mshop/customer/manager/group/typo3/delete/ansi
				 * @see mshop/customer/manager/group/typo3/search/ansi
				 * @see mshop/customer/manager/group/typo3/count/ansi
				 */
				$path = 'mshop/customer/manager/group/typo3/newid';
				$item->setId( $this->newId( $conn, $path ) );
			}

			$dbm->release( $conn, $dbname );
		}
		catch( \Exception $e )
		{
			$dbm->release( $conn, $dbname );
			throw $e;
		}

		return $item;
	}
public function saveItem( \Aimeos\MShop\Common\Item\Iface $item, $fetch = true )
	{
		self::checkClass( \Aimeos\MShop\Customer\Item\Group\Iface::class, $item );

		if( !$item->isModified() ) {
			return $item;
		}

		$context = $this->getContext();

		$dbm = $context->getDatabaseManager();
		$dbname = $this->getResourceName();
		$conn = $dbm->acquire( $dbname );

		try
		{
			$id = $item->getId();

			if( $id === null )
			{
				/** mshop/customer/manager/group/typo3/insert/mysql
				 * Inserts a new customer group record into the database table
				 *
				 * @see mshop/customer/manager/group/typo3/insert/ansi
				 */

				/** mshop/customer/manager/group/typo3/insert/ansi
				 * Inserts a new customer group record into the database table
				 *
				 * Items with no ID yet (i.e. the ID is NULL) will be created in
				 * the database and the newly created ID retrieved afterwards
				 * using the "newid" SQL statement.
				 *
				 * The SQL statement must be a string suitable for being used as
				 * prepared statement. It must include question marks for binding
				 * the values from the customer group item to the statement before
				 * they are sent to the database server. The number of question
				 * marks must be the same as the number of columns listed in the
				 * INSERT statement. The order of the columns must correspond to
				 * the order in the saveItems() method, so the correct values are
				 * bound to the columns.
				 *
				 * The SQL statement should conform to the ANSI standard to be
				 * compatible with most relational database systems. This also
				 * includes using double quotes for table and column names.
				 *
				 * @param string SQL statement for inserting records
				 * @since 2015.08
				 * @category Developer
				 * @see mshop/customer/manager/group/typo3/update/ansi
				 * @see mshop/customer/manager/group/typo3/newid/ansi
				 * @see mshop/customer/manager/group/typo3/delete/ansi
				 * @see mshop/customer/manager/group/typo3/search/ansi
				 * @see mshop/customer/manager/group/typo3/count/ansi
				 */
				$path = 'mshop/customer/manager/group/typo3/insert';
			}
			else
			{
				/** mshop/customer/manager/group/typo3/update/mysql
				 * Updates an existing customer group record in the database
				 *
				 * @see mshop/customer/manager/group/typo3/update/ansi
				 */

				/** mshop/customer/manager/group/typo3/update/ansi
				 * Updates an existing customer group record in the database
				 *
				 * Items which already have an ID (i.e. the ID is not NULL) will
				 * be updated in the database.
				 *
				 * The SQL statement must be a string suitable for being used as
				 * prepared statement. It must include question marks for binding
				 * the values from the customer group item to the statement before
				 * they are sent to the database server. The order of the columns
				 * must correspond to the order in the saveItems() method, so the
				 * correct values are bound to the columns.
				 *
				 * The SQL statement should conform to the ANSI standard to be
				 * compatible with most relational database systems. This also
				 * includes using double quotes for table and column names.
				 *
				 * @param string SQL statement for updating records
				 * @since 2015.08
				 * @category Developer
				 * @see mshop/customer/manager/group/typo3/insert/ansi
				 * @see mshop/customer/manager/group/typo3/newid/ansi
				 * @see mshop/customer/manager/group/typo3/delete/ansi
				 * @see mshop/customer/manager/group/typo3/search/ansi
				 * @see mshop/customer/manager/group/typo3/count/ansi
				 */
				$path = 'mshop/customer/manager/group/typo3/update';
			}

			$stmt = $this->getCachedStatement( $conn, $path );

			$stmt->bind( 1, $this->pid, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
			$stmt->bind( 2, $item->getCode() );
			$stmt->bind( 3, $item->getLabel() );
			$stmt->bind( 4, time(), \Aimeos\MW\DB\Statement\Base::PARAM_INT ); // mtime

			if( $id !== null ) {
				$stmt->bind( 5, $id, \Aimeos\MW\DB\Statement\Base::PARAM_INT );
				$item->setId( $id );
			} else {
				$stmt->bind( 5, time() ); // ctime
			}

			$stmt->execute()->finish();

			if( $id === null && $fetch === true )
			{
				/** mshop/customer/manager/group/typo3/newid/mysql
				 * Retrieves the ID generated by the database when inserting a new record
				 *
				 * @see mshop/customer/manager/group/typo3/newid/ansi
				 */

				/** mshop/customer/manager/group/typo3/newid/ansi
				 * Retrieves the ID generated by the database when inserting a new record
				 *
				 * As soon as a new record is inserted into the database table,
				 * the database server generates a new and unique identifier for
				 * that record. This ID can be used for retrieving, updating and
				 * deleting that specific record from the table again.
				 *
				 * For MySQL:
				 *  SELECT LAST_INSERT_ID()
				 * For PostgreSQL:
				 *  SELECT currval('seq_mcus_id')
				 * For SQL Server:
				 *  SELECT SCOPE_IDENTITY()
				 * For Oracle:
				 *  SELECT "seq_mcus_id".CURRVAL FROM DUAL
				 *
				 * There's no way to retrive the new ID by a SQL statements that
				 * fits for most database servers as they implement their own
				 * specific way.
				 *
				 * @param string SQL statement for retrieving the last inserted record ID
				 * @since 2015.08
				 * @category Developer
				 * @see mshop/customer/manager/group/typo3/insert/ansi
				 * @see mshop/customer/manager/group/typo3/update/ansi
				 * @see mshop/customer/manager/group/typo3/delete/ansi
				 * @see mshop/customer/manager/group/typo3/search/ansi
				 * @see mshop/customer/manager/group/typo3/count/ansi
				 */
				$path = 'mshop/customer/manager/group/typo3/newid';
				$item->setId( $this->newId( $conn, $path ) );
			}

			$dbm->release( $conn, $dbname );
		}
		catch( \Exception $e )
		{
			$dbm->release( $conn, $dbname );
			throw $e;
		}

		return $item;
	}
public function saveItem ( \ Aimeos \ MShop \ Common \ Item \ Iface $ item , $ fetch = true ) { self :: checkClass ( \ Aimeos \ MShop \ Customer \ Item \ Group \ Iface :: class , $ item ) ; if ( ! $ item -> isModified ( ) ) { return $ item ; } $ context = $ this -> getContext ( ) ; $ dbm = $ context -> getDatabaseManager ( ) ; $ dbname = $ this -> getResourceName ( ) ; $ conn = $ dbm -> acquire ( $ dbname ) ; try { $ id = $ item -> getId ( ) ; if ( $ id === null ) { /** mshop/customer/manager/group/typo3/insert/mysql
				 * Inserts a new customer group record into the database table
				 *
				 * @see mshop/customer/manager/group/typo3/insert/ansi
				 */ /** mshop/customer/manager/group/typo3/insert/ansi
				 * Inserts a new customer group record into the database table
				 *
				 * Items with no ID yet (i.e. the ID is NULL) will be created in
				 * the database and the newly created ID retrieved afterwards
				 * using the "newid" SQL statement.
				 *
				 * The SQL statement must be a string suitable for being used as
				 * prepared statement. It must include question marks for binding
				 * the values from the customer group item to the statement before
				 * they are sent to the database server. The number of question
				 * marks must be the same as the number of columns listed in the
				 * INSERT statement. The order of the columns must correspond to
				 * the order in the saveItems() method, so the correct values are
				 * bound to the columns.
				 *
				 * The SQL statement should conform to the ANSI standard to be
				 * compatible with most relational database systems. This also
				 * includes using double quotes for table and column names.
				 *
				 * @param string SQL statement for inserting records
				 * @since 2015.08
				 * @category Developer
				 * @see mshop/customer/manager/group/typo3/update/ansi
				 * @see mshop/customer/manager/group/typo3/newid/ansi
				 * @see mshop/customer/manager/group/typo3/delete/ansi
				 * @see mshop/customer/manager/group/typo3/search/ansi
				 * @see mshop/customer/manager/group/typo3/count/ansi
				 */ $ path = 'mshop/customer/manager/group/typo3/insert' ; } else { /** mshop/customer/manager/group/typo3/update/mysql
				 * Updates an existing customer group record in the database
				 *
				 * @see mshop/customer/manager/group/typo3/update/ansi
				 */ /** mshop/customer/manager/group/typo3/update/ansi
				 * Updates an existing customer group record in the database
				 *
				 * Items which already have an ID (i.e. the ID is not NULL) will
				 * be updated in the database.
				 *
				 * The SQL statement must be a string suitable for being used as
				 * prepared statement. It must include question marks for binding
				 * the values from the customer group item to the statement before
				 * they are sent to the database server. The order of the columns
				 * must correspond to the order in the saveItems() method, so the
				 * correct values are bound to the columns.
				 *
				 * The SQL statement should conform to the ANSI standard to be
				 * compatible with most relational database systems. This also
				 * includes using double quotes for table and column names.
				 *
				 * @param string SQL statement for updating records
				 * @since 2015.08
				 * @category Developer
				 * @see mshop/customer/manager/group/typo3/insert/ansi
				 * @see mshop/customer/manager/group/typo3/newid/ansi
				 * @see mshop/customer/manager/group/typo3/delete/ansi
				 * @see mshop/customer/manager/group/typo3/search/ansi
				 * @see mshop/customer/manager/group/typo3/count/ansi
				 */ $ path = 'mshop/customer/manager/group/typo3/update' ; } $ stmt = $ this -> getCachedStatement ( $ conn , $ path ) ; $ stmt -> bind ( 1 , $ this -> pid , \ Aimeos \ MW \ DB \ Statement \ Base :: PARAM_INT ) ; $ stmt -> bind ( 2 , $ item -> getCode ( ) ) ; $ stmt -> bind ( 3 , $ item -> getLabel ( ) ) ; $ stmt -> bind ( 4 , time ( ) , \ Aimeos \ MW \ DB \ Statement \ Base :: PARAM_INT ) ; // mtime if ( $ id !== null ) { $ stmt -> bind ( 5 , $ id , \ Aimeos \ MW \ DB \ Statement \ Base :: PARAM_INT ) ; $ item -> setId ( $ id ) ; } else { $ stmt -> bind ( 5 , time ( ) ) ; // ctime } $ stmt -> execute ( ) -> finish ( ) ; if ( $ id === null && $ fetch === true ) { /** mshop/customer/manager/group/typo3/newid/mysql
				 * Retrieves the ID generated by the database when inserting a new record
				 *
				 * @see mshop/customer/manager/group/typo3/newid/ansi
				 */ /** mshop/customer/manager/group/typo3/newid/ansi
				 * Retrieves the ID generated by the database when inserting a new record
				 *
				 * As soon as a new record is inserted into the database table,
				 * the database server generates a new and unique identifier for
				 * that record. This ID can be used for retrieving, updating and
				 * deleting that specific record from the table again.
				 *
				 * For MySQL:
				 *  SELECT LAST_INSERT_ID()
				 * For PostgreSQL:
				 *  SELECT currval('seq_mcus_id')
				 * For SQL Server:
				 *  SELECT SCOPE_IDENTITY()
				 * For Oracle:
				 *  SELECT "seq_mcus_id".CURRVAL FROM DUAL
				 *
				 * There's no way to retrive the new ID by a SQL statements that
				 * fits for most database servers as they implement their own
				 * specific way.
				 *
				 * @param string SQL statement for retrieving the last inserted record ID
				 * @since 2015.08
				 * @category Developer
				 * @see mshop/customer/manager/group/typo3/insert/ansi
				 * @see mshop/customer/manager/group/typo3/update/ansi
				 * @see mshop/customer/manager/group/typo3/delete/ansi
				 * @see mshop/customer/manager/group/typo3/search/ansi
				 * @see mshop/customer/manager/group/typo3/count/ansi
				 */ $ path = 'mshop/customer/manager/group/typo3/newid' ; $ item -> setId ( $ this -> newId ( $ conn , $ path ) ) ; } $ dbm -> release ( $ conn , $ dbname ) ; } catch ( \ Exception $ e ) { $ dbm -> release ( $ conn , $ dbname ) ; throw $ e ; } return $ item ; }
Inserts a new or updates an existing customer group item

@param \Aimeos\MShop\Customer\Item\Group\Iface $item Customer group item
@param boolean $fetch True if the new ID should be returned in the item
Inserts a new or updates an existing customer group item