Added title_id column in customer table

This commit is contained in:
franck
2013-07-18 09:40:21 +02:00
parent b177367893
commit 2c52df1034
9 changed files with 706 additions and 72 deletions

View File

@@ -46,17 +46,20 @@ class ParserContext implements \IteratorAggregate
; ;
} }
public function set($name, $value) { public function set($name, $value)
{
$this->store[$name] = $value; $this->store[$name] = $value;
return $this; return $this;
} }
public function get($name) { public function get($name)
{
return $this->store[$name]; return $this->store[$name];
} }
public function getIterator() { public function getIterator()
{
return new \ArrayIterator( $this->store ); return new \ArrayIterator( $this->store );
} }
} }

View File

@@ -21,6 +21,8 @@ use Thelia\Model\Address as ChildAddress;
use Thelia\Model\AddressQuery as ChildAddressQuery; use Thelia\Model\AddressQuery as ChildAddressQuery;
use Thelia\Model\Customer as ChildCustomer; use Thelia\Model\Customer as ChildCustomer;
use Thelia\Model\CustomerQuery as ChildCustomerQuery; use Thelia\Model\CustomerQuery as ChildCustomerQuery;
use Thelia\Model\CustomerTitle as ChildCustomerTitle;
use Thelia\Model\CustomerTitleQuery as ChildCustomerTitleQuery;
use Thelia\Model\Order as ChildOrder; use Thelia\Model\Order as ChildOrder;
use Thelia\Model\OrderQuery as ChildOrderQuery; use Thelia\Model\OrderQuery as ChildOrderQuery;
use Thelia\Model\Map\CustomerTableMap; use Thelia\Model\Map\CustomerTableMap;
@@ -71,6 +73,12 @@ abstract class Customer implements ActiveRecordInterface
*/ */
protected $ref; protected $ref;
/**
* The value for the title_id field.
* @var int
*/
protected $title_id;
/** /**
* The value for the firstname field. * The value for the firstname field.
* @var string * @var string
@@ -137,6 +145,11 @@ abstract class Customer implements ActiveRecordInterface
*/ */
protected $updated_at; protected $updated_at;
/**
* @var CustomerTitle
*/
protected $aCustomerTitle;
/** /**
* @var ObjectCollection|ChildAddress[] Collection to store aggregation of ChildAddress objects. * @var ObjectCollection|ChildAddress[] Collection to store aggregation of ChildAddress objects.
*/ */
@@ -445,6 +458,17 @@ abstract class Customer implements ActiveRecordInterface
return $this->ref; return $this->ref;
} }
/**
* Get the [title_id] column value.
*
* @return int
*/
public function getTitleId()
{
return $this->title_id;
}
/** /**
* Get the [firstname] column value. * Get the [firstname] column value.
* *
@@ -626,6 +650,31 @@ abstract class Customer implements ActiveRecordInterface
return $this; return $this;
} // setRef() } // setRef()
/**
* Set the value of [title_id] column.
*
* @param int $v new value
* @return \Thelia\Model\Customer The current object (for fluent API support)
*/
public function setTitleId($v)
{
if ($v !== null) {
$v = (int) $v;
}
if ($this->title_id !== $v) {
$this->title_id = $v;
$this->modifiedColumns[] = CustomerTableMap::TITLE_ID;
}
if ($this->aCustomerTitle !== null && $this->aCustomerTitle->getId() !== $v) {
$this->aCustomerTitle = null;
}
return $this;
} // setTitleId()
/** /**
* Set the value of [firstname] column. * Set the value of [firstname] column.
* *
@@ -900,40 +949,43 @@ abstract class Customer implements ActiveRecordInterface
$col = $row[TableMap::TYPE_NUM == $indexType ? 1 + $startcol : CustomerTableMap::translateFieldName('Ref', TableMap::TYPE_PHPNAME, $indexType)]; $col = $row[TableMap::TYPE_NUM == $indexType ? 1 + $startcol : CustomerTableMap::translateFieldName('Ref', TableMap::TYPE_PHPNAME, $indexType)];
$this->ref = (null !== $col) ? (string) $col : null; $this->ref = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : CustomerTableMap::translateFieldName('Firstname', TableMap::TYPE_PHPNAME, $indexType)]; $col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : CustomerTableMap::translateFieldName('TitleId', TableMap::TYPE_PHPNAME, $indexType)];
$this->title_id = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : CustomerTableMap::translateFieldName('Firstname', TableMap::TYPE_PHPNAME, $indexType)];
$this->firstname = (null !== $col) ? (string) $col : null; $this->firstname = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : CustomerTableMap::translateFieldName('Lastname', TableMap::TYPE_PHPNAME, $indexType)]; $col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CustomerTableMap::translateFieldName('Lastname', TableMap::TYPE_PHPNAME, $indexType)];
$this->lastname = (null !== $col) ? (string) $col : null; $this->lastname = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CustomerTableMap::translateFieldName('Email', TableMap::TYPE_PHPNAME, $indexType)]; $col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CustomerTableMap::translateFieldName('Email', TableMap::TYPE_PHPNAME, $indexType)];
$this->email = (null !== $col) ? (string) $col : null; $this->email = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CustomerTableMap::translateFieldName('Password', TableMap::TYPE_PHPNAME, $indexType)]; $col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : CustomerTableMap::translateFieldName('Password', TableMap::TYPE_PHPNAME, $indexType)];
$this->password = (null !== $col) ? (string) $col : null; $this->password = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : CustomerTableMap::translateFieldName('Algo', TableMap::TYPE_PHPNAME, $indexType)]; $col = $row[TableMap::TYPE_NUM == $indexType ? 7 + $startcol : CustomerTableMap::translateFieldName('Algo', TableMap::TYPE_PHPNAME, $indexType)];
$this->algo = (null !== $col) ? (string) $col : null; $this->algo = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 7 + $startcol : CustomerTableMap::translateFieldName('Reseller', TableMap::TYPE_PHPNAME, $indexType)]; $col = $row[TableMap::TYPE_NUM == $indexType ? 8 + $startcol : CustomerTableMap::translateFieldName('Reseller', TableMap::TYPE_PHPNAME, $indexType)];
$this->reseller = (null !== $col) ? (int) $col : null; $this->reseller = (null !== $col) ? (int) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 8 + $startcol : CustomerTableMap::translateFieldName('Lang', TableMap::TYPE_PHPNAME, $indexType)]; $col = $row[TableMap::TYPE_NUM == $indexType ? 9 + $startcol : CustomerTableMap::translateFieldName('Lang', TableMap::TYPE_PHPNAME, $indexType)];
$this->lang = (null !== $col) ? (string) $col : null; $this->lang = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 9 + $startcol : CustomerTableMap::translateFieldName('Sponsor', TableMap::TYPE_PHPNAME, $indexType)]; $col = $row[TableMap::TYPE_NUM == $indexType ? 10 + $startcol : CustomerTableMap::translateFieldName('Sponsor', TableMap::TYPE_PHPNAME, $indexType)];
$this->sponsor = (null !== $col) ? (string) $col : null; $this->sponsor = (null !== $col) ? (string) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 10 + $startcol : CustomerTableMap::translateFieldName('Discount', TableMap::TYPE_PHPNAME, $indexType)]; $col = $row[TableMap::TYPE_NUM == $indexType ? 11 + $startcol : CustomerTableMap::translateFieldName('Discount', TableMap::TYPE_PHPNAME, $indexType)];
$this->discount = (null !== $col) ? (double) $col : null; $this->discount = (null !== $col) ? (double) $col : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 11 + $startcol : CustomerTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)]; $col = $row[TableMap::TYPE_NUM == $indexType ? 12 + $startcol : CustomerTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)];
if ($col === '0000-00-00 00:00:00') { if ($col === '0000-00-00 00:00:00') {
$col = null; $col = null;
} }
$this->created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; $this->created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null;
$col = $row[TableMap::TYPE_NUM == $indexType ? 12 + $startcol : CustomerTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)]; $col = $row[TableMap::TYPE_NUM == $indexType ? 13 + $startcol : CustomerTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)];
if ($col === '0000-00-00 00:00:00') { if ($col === '0000-00-00 00:00:00') {
$col = null; $col = null;
} }
@@ -946,7 +998,7 @@ abstract class Customer implements ActiveRecordInterface
$this->ensureConsistency(); $this->ensureConsistency();
} }
return $startcol + 13; // 13 = CustomerTableMap::NUM_HYDRATE_COLUMNS. return $startcol + 14; // 14 = CustomerTableMap::NUM_HYDRATE_COLUMNS.
} catch (Exception $e) { } catch (Exception $e) {
throw new PropelException("Error populating \Thelia\Model\Customer object", 0, $e); throw new PropelException("Error populating \Thelia\Model\Customer object", 0, $e);
@@ -968,6 +1020,9 @@ abstract class Customer implements ActiveRecordInterface
*/ */
public function ensureConsistency() public function ensureConsistency()
{ {
if ($this->aCustomerTitle !== null && $this->title_id !== $this->aCustomerTitle->getId()) {
$this->aCustomerTitle = null;
}
} // ensureConsistency } // ensureConsistency
/** /**
@@ -1007,6 +1062,7 @@ abstract class Customer implements ActiveRecordInterface
if ($deep) { // also de-associate any related objects? if ($deep) { // also de-associate any related objects?
$this->aCustomerTitle = null;
$this->collAddresses = null; $this->collAddresses = null;
$this->collOrders = null; $this->collOrders = null;
@@ -1133,6 +1189,18 @@ abstract class Customer implements ActiveRecordInterface
if (!$this->alreadyInSave) { if (!$this->alreadyInSave) {
$this->alreadyInSave = true; $this->alreadyInSave = true;
// We call the save method on the following object(s) if they
// were passed to this object by their corresponding set
// method. This object relates to these object(s) by a
// foreign key reference.
if ($this->aCustomerTitle !== null) {
if ($this->aCustomerTitle->isModified() || $this->aCustomerTitle->isNew()) {
$affectedRows += $this->aCustomerTitle->save($con);
}
$this->setCustomerTitle($this->aCustomerTitle);
}
if ($this->isNew() || $this->isModified()) { if ($this->isNew() || $this->isModified()) {
// persist changes // persist changes
if ($this->isNew()) { if ($this->isNew()) {
@@ -1210,6 +1278,9 @@ abstract class Customer implements ActiveRecordInterface
if ($this->isColumnModified(CustomerTableMap::REF)) { if ($this->isColumnModified(CustomerTableMap::REF)) {
$modifiedColumns[':p' . $index++] = 'REF'; $modifiedColumns[':p' . $index++] = 'REF';
} }
if ($this->isColumnModified(CustomerTableMap::TITLE_ID)) {
$modifiedColumns[':p' . $index++] = 'TITLE_ID';
}
if ($this->isColumnModified(CustomerTableMap::FIRSTNAME)) { if ($this->isColumnModified(CustomerTableMap::FIRSTNAME)) {
$modifiedColumns[':p' . $index++] = 'FIRSTNAME'; $modifiedColumns[':p' . $index++] = 'FIRSTNAME';
} }
@@ -1260,6 +1331,9 @@ abstract class Customer implements ActiveRecordInterface
case 'REF': case 'REF':
$stmt->bindValue($identifier, $this->ref, PDO::PARAM_STR); $stmt->bindValue($identifier, $this->ref, PDO::PARAM_STR);
break; break;
case 'TITLE_ID':
$stmt->bindValue($identifier, $this->title_id, PDO::PARAM_INT);
break;
case 'FIRSTNAME': case 'FIRSTNAME':
$stmt->bindValue($identifier, $this->firstname, PDO::PARAM_STR); $stmt->bindValue($identifier, $this->firstname, PDO::PARAM_STR);
break; break;
@@ -1362,36 +1436,39 @@ abstract class Customer implements ActiveRecordInterface
return $this->getRef(); return $this->getRef();
break; break;
case 2: case 2:
return $this->getFirstname(); return $this->getTitleId();
break; break;
case 3: case 3:
return $this->getLastname(); return $this->getFirstname();
break; break;
case 4: case 4:
return $this->getEmail(); return $this->getLastname();
break; break;
case 5: case 5:
return $this->getPassword(); return $this->getEmail();
break; break;
case 6: case 6:
return $this->getAlgo(); return $this->getPassword();
break; break;
case 7: case 7:
return $this->getReseller(); return $this->getAlgo();
break; break;
case 8: case 8:
return $this->getLang(); return $this->getReseller();
break; break;
case 9: case 9:
return $this->getSponsor(); return $this->getLang();
break; break;
case 10: case 10:
return $this->getDiscount(); return $this->getSponsor();
break; break;
case 11: case 11:
return $this->getCreatedAt(); return $this->getDiscount();
break; break;
case 12: case 12:
return $this->getCreatedAt();
break;
case 13:
return $this->getUpdatedAt(); return $this->getUpdatedAt();
break; break;
default: default:
@@ -1425,17 +1502,18 @@ abstract class Customer implements ActiveRecordInterface
$result = array( $result = array(
$keys[0] => $this->getId(), $keys[0] => $this->getId(),
$keys[1] => $this->getRef(), $keys[1] => $this->getRef(),
$keys[2] => $this->getFirstname(), $keys[2] => $this->getTitleId(),
$keys[3] => $this->getLastname(), $keys[3] => $this->getFirstname(),
$keys[4] => $this->getEmail(), $keys[4] => $this->getLastname(),
$keys[5] => $this->getPassword(), $keys[5] => $this->getEmail(),
$keys[6] => $this->getAlgo(), $keys[6] => $this->getPassword(),
$keys[7] => $this->getReseller(), $keys[7] => $this->getAlgo(),
$keys[8] => $this->getLang(), $keys[8] => $this->getReseller(),
$keys[9] => $this->getSponsor(), $keys[9] => $this->getLang(),
$keys[10] => $this->getDiscount(), $keys[10] => $this->getSponsor(),
$keys[11] => $this->getCreatedAt(), $keys[11] => $this->getDiscount(),
$keys[12] => $this->getUpdatedAt(), $keys[12] => $this->getCreatedAt(),
$keys[13] => $this->getUpdatedAt(),
); );
$virtualColumns = $this->virtualColumns; $virtualColumns = $this->virtualColumns;
foreach($virtualColumns as $key => $virtualColumn) foreach($virtualColumns as $key => $virtualColumn)
@@ -1444,6 +1522,9 @@ abstract class Customer implements ActiveRecordInterface
} }
if ($includeForeignObjects) { if ($includeForeignObjects) {
if (null !== $this->aCustomerTitle) {
$result['CustomerTitle'] = $this->aCustomerTitle->toArray($keyType, $includeLazyLoadColumns, $alreadyDumpedObjects, true);
}
if (null !== $this->collAddresses) { if (null !== $this->collAddresses) {
$result['Addresses'] = $this->collAddresses->toArray(null, true, $keyType, $includeLazyLoadColumns, $alreadyDumpedObjects); $result['Addresses'] = $this->collAddresses->toArray(null, true, $keyType, $includeLazyLoadColumns, $alreadyDumpedObjects);
} }
@@ -1491,36 +1572,39 @@ abstract class Customer implements ActiveRecordInterface
$this->setRef($value); $this->setRef($value);
break; break;
case 2: case 2:
$this->setFirstname($value); $this->setTitleId($value);
break; break;
case 3: case 3:
$this->setLastname($value); $this->setFirstname($value);
break; break;
case 4: case 4:
$this->setEmail($value); $this->setLastname($value);
break; break;
case 5: case 5:
$this->setPassword($value); $this->setEmail($value);
break; break;
case 6: case 6:
$this->setAlgo($value); $this->setPassword($value);
break; break;
case 7: case 7:
$this->setReseller($value); $this->setAlgo($value);
break; break;
case 8: case 8:
$this->setLang($value); $this->setReseller($value);
break; break;
case 9: case 9:
$this->setSponsor($value); $this->setLang($value);
break; break;
case 10: case 10:
$this->setDiscount($value); $this->setSponsor($value);
break; break;
case 11: case 11:
$this->setCreatedAt($value); $this->setDiscount($value);
break; break;
case 12: case 12:
$this->setCreatedAt($value);
break;
case 13:
$this->setUpdatedAt($value); $this->setUpdatedAt($value);
break; break;
} // switch() } // switch()
@@ -1549,17 +1633,18 @@ abstract class Customer implements ActiveRecordInterface
if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]); if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]);
if (array_key_exists($keys[1], $arr)) $this->setRef($arr[$keys[1]]); if (array_key_exists($keys[1], $arr)) $this->setRef($arr[$keys[1]]);
if (array_key_exists($keys[2], $arr)) $this->setFirstname($arr[$keys[2]]); if (array_key_exists($keys[2], $arr)) $this->setTitleId($arr[$keys[2]]);
if (array_key_exists($keys[3], $arr)) $this->setLastname($arr[$keys[3]]); if (array_key_exists($keys[3], $arr)) $this->setFirstname($arr[$keys[3]]);
if (array_key_exists($keys[4], $arr)) $this->setEmail($arr[$keys[4]]); if (array_key_exists($keys[4], $arr)) $this->setLastname($arr[$keys[4]]);
if (array_key_exists($keys[5], $arr)) $this->setPassword($arr[$keys[5]]); if (array_key_exists($keys[5], $arr)) $this->setEmail($arr[$keys[5]]);
if (array_key_exists($keys[6], $arr)) $this->setAlgo($arr[$keys[6]]); if (array_key_exists($keys[6], $arr)) $this->setPassword($arr[$keys[6]]);
if (array_key_exists($keys[7], $arr)) $this->setReseller($arr[$keys[7]]); if (array_key_exists($keys[7], $arr)) $this->setAlgo($arr[$keys[7]]);
if (array_key_exists($keys[8], $arr)) $this->setLang($arr[$keys[8]]); if (array_key_exists($keys[8], $arr)) $this->setReseller($arr[$keys[8]]);
if (array_key_exists($keys[9], $arr)) $this->setSponsor($arr[$keys[9]]); if (array_key_exists($keys[9], $arr)) $this->setLang($arr[$keys[9]]);
if (array_key_exists($keys[10], $arr)) $this->setDiscount($arr[$keys[10]]); if (array_key_exists($keys[10], $arr)) $this->setSponsor($arr[$keys[10]]);
if (array_key_exists($keys[11], $arr)) $this->setCreatedAt($arr[$keys[11]]); if (array_key_exists($keys[11], $arr)) $this->setDiscount($arr[$keys[11]]);
if (array_key_exists($keys[12], $arr)) $this->setUpdatedAt($arr[$keys[12]]); if (array_key_exists($keys[12], $arr)) $this->setCreatedAt($arr[$keys[12]]);
if (array_key_exists($keys[13], $arr)) $this->setUpdatedAt($arr[$keys[13]]);
} }
/** /**
@@ -1573,6 +1658,7 @@ abstract class Customer implements ActiveRecordInterface
if ($this->isColumnModified(CustomerTableMap::ID)) $criteria->add(CustomerTableMap::ID, $this->id); if ($this->isColumnModified(CustomerTableMap::ID)) $criteria->add(CustomerTableMap::ID, $this->id);
if ($this->isColumnModified(CustomerTableMap::REF)) $criteria->add(CustomerTableMap::REF, $this->ref); if ($this->isColumnModified(CustomerTableMap::REF)) $criteria->add(CustomerTableMap::REF, $this->ref);
if ($this->isColumnModified(CustomerTableMap::TITLE_ID)) $criteria->add(CustomerTableMap::TITLE_ID, $this->title_id);
if ($this->isColumnModified(CustomerTableMap::FIRSTNAME)) $criteria->add(CustomerTableMap::FIRSTNAME, $this->firstname); if ($this->isColumnModified(CustomerTableMap::FIRSTNAME)) $criteria->add(CustomerTableMap::FIRSTNAME, $this->firstname);
if ($this->isColumnModified(CustomerTableMap::LASTNAME)) $criteria->add(CustomerTableMap::LASTNAME, $this->lastname); if ($this->isColumnModified(CustomerTableMap::LASTNAME)) $criteria->add(CustomerTableMap::LASTNAME, $this->lastname);
if ($this->isColumnModified(CustomerTableMap::EMAIL)) $criteria->add(CustomerTableMap::EMAIL, $this->email); if ($this->isColumnModified(CustomerTableMap::EMAIL)) $criteria->add(CustomerTableMap::EMAIL, $this->email);
@@ -1648,6 +1734,7 @@ abstract class Customer implements ActiveRecordInterface
public function copyInto($copyObj, $deepCopy = false, $makeNew = true) public function copyInto($copyObj, $deepCopy = false, $makeNew = true)
{ {
$copyObj->setRef($this->getRef()); $copyObj->setRef($this->getRef());
$copyObj->setTitleId($this->getTitleId());
$copyObj->setFirstname($this->getFirstname()); $copyObj->setFirstname($this->getFirstname());
$copyObj->setLastname($this->getLastname()); $copyObj->setLastname($this->getLastname());
$copyObj->setEmail($this->getEmail()); $copyObj->setEmail($this->getEmail());
@@ -1707,6 +1794,57 @@ abstract class Customer implements ActiveRecordInterface
return $copyObj; return $copyObj;
} }
/**
* Declares an association between this object and a ChildCustomerTitle object.
*
* @param ChildCustomerTitle $v
* @return \Thelia\Model\Customer The current object (for fluent API support)
* @throws PropelException
*/
public function setCustomerTitle(ChildCustomerTitle $v = null)
{
if ($v === null) {
$this->setTitleId(NULL);
} else {
$this->setTitleId($v->getId());
}
$this->aCustomerTitle = $v;
// Add binding for other direction of this n:n relationship.
// If this object has already been added to the ChildCustomerTitle object, it will not be re-added.
if ($v !== null) {
$v->addCustomer($this);
}
return $this;
}
/**
* Get the associated ChildCustomerTitle object
*
* @param ConnectionInterface $con Optional Connection object.
* @return ChildCustomerTitle The associated ChildCustomerTitle object.
* @throws PropelException
*/
public function getCustomerTitle(ConnectionInterface $con = null)
{
if ($this->aCustomerTitle === null && ($this->title_id !== null)) {
$this->aCustomerTitle = ChildCustomerTitleQuery::create()->findPk($this->title_id, $con);
/* The following can be used additionally to
guarantee the related object contains a reference
to this object. This level of coupling may, however, be
undesirable since it could result in an only partially populated collection
in the referenced object.
$this->aCustomerTitle->addCustomers($this);
*/
}
return $this->aCustomerTitle;
}
/** /**
* Initializes a collection based on the name of a relation. * Initializes a collection based on the name of a relation.
@@ -2294,6 +2432,7 @@ abstract class Customer implements ActiveRecordInterface
{ {
$this->id = null; $this->id = null;
$this->ref = null; $this->ref = null;
$this->title_id = null;
$this->firstname = null; $this->firstname = null;
$this->lastname = null; $this->lastname = null;
$this->email = null; $this->email = null;
@@ -2344,6 +2483,7 @@ abstract class Customer implements ActiveRecordInterface
$this->collOrders->clearIterator(); $this->collOrders->clearIterator();
} }
$this->collOrders = null; $this->collOrders = null;
$this->aCustomerTitle = null;
} }
/** /**

View File

@@ -23,6 +23,7 @@ use Thelia\Model\Map\CustomerTableMap;
* *
* @method ChildCustomerQuery orderById($order = Criteria::ASC) Order by the id column * @method ChildCustomerQuery orderById($order = Criteria::ASC) Order by the id column
* @method ChildCustomerQuery orderByRef($order = Criteria::ASC) Order by the ref column * @method ChildCustomerQuery orderByRef($order = Criteria::ASC) Order by the ref column
* @method ChildCustomerQuery orderByTitleId($order = Criteria::ASC) Order by the title_id column
* @method ChildCustomerQuery orderByFirstname($order = Criteria::ASC) Order by the firstname column * @method ChildCustomerQuery orderByFirstname($order = Criteria::ASC) Order by the firstname column
* @method ChildCustomerQuery orderByLastname($order = Criteria::ASC) Order by the lastname column * @method ChildCustomerQuery orderByLastname($order = Criteria::ASC) Order by the lastname column
* @method ChildCustomerQuery orderByEmail($order = Criteria::ASC) Order by the email column * @method ChildCustomerQuery orderByEmail($order = Criteria::ASC) Order by the email column
@@ -37,6 +38,7 @@ use Thelia\Model\Map\CustomerTableMap;
* *
* @method ChildCustomerQuery groupById() Group by the id column * @method ChildCustomerQuery groupById() Group by the id column
* @method ChildCustomerQuery groupByRef() Group by the ref column * @method ChildCustomerQuery groupByRef() Group by the ref column
* @method ChildCustomerQuery groupByTitleId() Group by the title_id column
* @method ChildCustomerQuery groupByFirstname() Group by the firstname column * @method ChildCustomerQuery groupByFirstname() Group by the firstname column
* @method ChildCustomerQuery groupByLastname() Group by the lastname column * @method ChildCustomerQuery groupByLastname() Group by the lastname column
* @method ChildCustomerQuery groupByEmail() Group by the email column * @method ChildCustomerQuery groupByEmail() Group by the email column
@@ -53,6 +55,10 @@ use Thelia\Model\Map\CustomerTableMap;
* @method ChildCustomerQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query * @method ChildCustomerQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query
* @method ChildCustomerQuery innerJoin($relation) Adds a INNER JOIN clause to the query * @method ChildCustomerQuery innerJoin($relation) Adds a INNER JOIN clause to the query
* *
* @method ChildCustomerQuery leftJoinCustomerTitle($relationAlias = null) Adds a LEFT JOIN clause to the query using the CustomerTitle relation
* @method ChildCustomerQuery rightJoinCustomerTitle($relationAlias = null) Adds a RIGHT JOIN clause to the query using the CustomerTitle relation
* @method ChildCustomerQuery innerJoinCustomerTitle($relationAlias = null) Adds a INNER JOIN clause to the query using the CustomerTitle relation
*
* @method ChildCustomerQuery leftJoinAddress($relationAlias = null) Adds a LEFT JOIN clause to the query using the Address relation * @method ChildCustomerQuery leftJoinAddress($relationAlias = null) Adds a LEFT JOIN clause to the query using the Address relation
* @method ChildCustomerQuery rightJoinAddress($relationAlias = null) Adds a RIGHT JOIN clause to the query using the Address relation * @method ChildCustomerQuery rightJoinAddress($relationAlias = null) Adds a RIGHT JOIN clause to the query using the Address relation
* @method ChildCustomerQuery innerJoinAddress($relationAlias = null) Adds a INNER JOIN clause to the query using the Address relation * @method ChildCustomerQuery innerJoinAddress($relationAlias = null) Adds a INNER JOIN clause to the query using the Address relation
@@ -66,6 +72,7 @@ use Thelia\Model\Map\CustomerTableMap;
* *
* @method ChildCustomer findOneById(int $id) Return the first ChildCustomer filtered by the id column * @method ChildCustomer findOneById(int $id) Return the first ChildCustomer filtered by the id column
* @method ChildCustomer findOneByRef(string $ref) Return the first ChildCustomer filtered by the ref column * @method ChildCustomer findOneByRef(string $ref) Return the first ChildCustomer filtered by the ref column
* @method ChildCustomer findOneByTitleId(int $title_id) Return the first ChildCustomer filtered by the title_id column
* @method ChildCustomer findOneByFirstname(string $firstname) Return the first ChildCustomer filtered by the firstname column * @method ChildCustomer findOneByFirstname(string $firstname) Return the first ChildCustomer filtered by the firstname column
* @method ChildCustomer findOneByLastname(string $lastname) Return the first ChildCustomer filtered by the lastname column * @method ChildCustomer findOneByLastname(string $lastname) Return the first ChildCustomer filtered by the lastname column
* @method ChildCustomer findOneByEmail(string $email) Return the first ChildCustomer filtered by the email column * @method ChildCustomer findOneByEmail(string $email) Return the first ChildCustomer filtered by the email column
@@ -80,6 +87,7 @@ use Thelia\Model\Map\CustomerTableMap;
* *
* @method array findById(int $id) Return ChildCustomer objects filtered by the id column * @method array findById(int $id) Return ChildCustomer objects filtered by the id column
* @method array findByRef(string $ref) Return ChildCustomer objects filtered by the ref column * @method array findByRef(string $ref) Return ChildCustomer objects filtered by the ref column
* @method array findByTitleId(int $title_id) Return ChildCustomer objects filtered by the title_id column
* @method array findByFirstname(string $firstname) Return ChildCustomer objects filtered by the firstname column * @method array findByFirstname(string $firstname) Return ChildCustomer objects filtered by the firstname column
* @method array findByLastname(string $lastname) Return ChildCustomer objects filtered by the lastname column * @method array findByLastname(string $lastname) Return ChildCustomer objects filtered by the lastname column
* @method array findByEmail(string $email) Return ChildCustomer objects filtered by the email column * @method array findByEmail(string $email) Return ChildCustomer objects filtered by the email column
@@ -179,7 +187,7 @@ abstract class CustomerQuery extends ModelCriteria
*/ */
protected function findPkSimple($key, $con) protected function findPkSimple($key, $con)
{ {
$sql = 'SELECT ID, REF, FIRSTNAME, LASTNAME, EMAIL, PASSWORD, ALGO, RESELLER, LANG, SPONSOR, DISCOUNT, CREATED_AT, UPDATED_AT FROM customer WHERE ID = :p0'; $sql = 'SELECT ID, REF, TITLE_ID, FIRSTNAME, LASTNAME, EMAIL, PASSWORD, ALGO, RESELLER, LANG, SPONSOR, DISCOUNT, CREATED_AT, UPDATED_AT FROM customer WHERE ID = :p0';
try { try {
$stmt = $con->prepare($sql); $stmt = $con->prepare($sql);
$stmt->bindValue(':p0', $key, PDO::PARAM_INT); $stmt->bindValue(':p0', $key, PDO::PARAM_INT);
@@ -338,6 +346,49 @@ abstract class CustomerQuery extends ModelCriteria
return $this->addUsingAlias(CustomerTableMap::REF, $ref, $comparison); return $this->addUsingAlias(CustomerTableMap::REF, $ref, $comparison);
} }
/**
* Filter the query on the title_id column
*
* Example usage:
* <code>
* $query->filterByTitleId(1234); // WHERE title_id = 1234
* $query->filterByTitleId(array(12, 34)); // WHERE title_id IN (12, 34)
* $query->filterByTitleId(array('min' => 12)); // WHERE title_id > 12
* </code>
*
* @see filterByCustomerTitle()
*
* @param mixed $titleId The value to use as filter.
* Use scalar values for equality.
* Use array values for in_array() equivalent.
* Use associative array('min' => $minValue, 'max' => $maxValue) for intervals.
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCustomerQuery The current query, for fluid interface
*/
public function filterByTitleId($titleId = null, $comparison = null)
{
if (is_array($titleId)) {
$useMinMax = false;
if (isset($titleId['min'])) {
$this->addUsingAlias(CustomerTableMap::TITLE_ID, $titleId['min'], Criteria::GREATER_EQUAL);
$useMinMax = true;
}
if (isset($titleId['max'])) {
$this->addUsingAlias(CustomerTableMap::TITLE_ID, $titleId['max'], Criteria::LESS_EQUAL);
$useMinMax = true;
}
if ($useMinMax) {
return $this;
}
if (null === $comparison) {
$comparison = Criteria::IN;
}
}
return $this->addUsingAlias(CustomerTableMap::TITLE_ID, $titleId, $comparison);
}
/** /**
* Filter the query on the firstname column * Filter the query on the firstname column
* *
@@ -709,6 +760,81 @@ abstract class CustomerQuery extends ModelCriteria
return $this->addUsingAlias(CustomerTableMap::UPDATED_AT, $updatedAt, $comparison); return $this->addUsingAlias(CustomerTableMap::UPDATED_AT, $updatedAt, $comparison);
} }
/**
* Filter the query by a related \Thelia\Model\CustomerTitle object
*
* @param \Thelia\Model\CustomerTitle|ObjectCollection $customerTitle The related object(s) to use as filter
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCustomerQuery The current query, for fluid interface
*/
public function filterByCustomerTitle($customerTitle, $comparison = null)
{
if ($customerTitle instanceof \Thelia\Model\CustomerTitle) {
return $this
->addUsingAlias(CustomerTableMap::TITLE_ID, $customerTitle->getId(), $comparison);
} elseif ($customerTitle instanceof ObjectCollection) {
if (null === $comparison) {
$comparison = Criteria::IN;
}
return $this
->addUsingAlias(CustomerTableMap::TITLE_ID, $customerTitle->toKeyValue('PrimaryKey', 'Id'), $comparison);
} else {
throw new PropelException('filterByCustomerTitle() only accepts arguments of type \Thelia\Model\CustomerTitle or Collection');
}
}
/**
* Adds a JOIN clause to the query using the CustomerTitle relation
*
* @param string $relationAlias optional alias for the relation
* @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'
*
* @return ChildCustomerQuery The current query, for fluid interface
*/
public function joinCustomerTitle($relationAlias = null, $joinType = Criteria::LEFT_JOIN)
{
$tableMap = $this->getTableMap();
$relationMap = $tableMap->getRelation('CustomerTitle');
// create a ModelJoin object for this join
$join = new ModelJoin();
$join->setJoinType($joinType);
$join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias);
if ($previousJoin = $this->getPreviousJoin()) {
$join->setPreviousJoin($previousJoin);
}
// add the ModelJoin to the current object
if ($relationAlias) {
$this->addAlias($relationAlias, $relationMap->getRightTable()->getName());
$this->addJoinObject($join, $relationAlias);
} else {
$this->addJoinObject($join, 'CustomerTitle');
}
return $this;
}
/**
* Use the CustomerTitle relation CustomerTitle object
*
* @see useQuery()
*
* @param string $relationAlias optional alias for the relation,
* to be used as main alias in the secondary query
* @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'
*
* @return \Thelia\Model\CustomerTitleQuery A secondary query class using the current class as primary query
*/
public function useCustomerTitleQuery($relationAlias = null, $joinType = Criteria::LEFT_JOIN)
{
return $this
->joinCustomerTitle($relationAlias, $joinType)
->useQuery($relationAlias ? $relationAlias : 'CustomerTitle', '\Thelia\Model\CustomerTitleQuery');
}
/** /**
* Filter the query by a related \Thelia\Model\Address object * Filter the query by a related \Thelia\Model\Address object
* *

View File

@@ -19,6 +19,8 @@ use Propel\Runtime\Parser\AbstractParser;
use Propel\Runtime\Util\PropelDateTime; use Propel\Runtime\Util\PropelDateTime;
use Thelia\Model\Address as ChildAddress; use Thelia\Model\Address as ChildAddress;
use Thelia\Model\AddressQuery as ChildAddressQuery; use Thelia\Model\AddressQuery as ChildAddressQuery;
use Thelia\Model\Customer as ChildCustomer;
use Thelia\Model\CustomerQuery as ChildCustomerQuery;
use Thelia\Model\CustomerTitle as ChildCustomerTitle; use Thelia\Model\CustomerTitle as ChildCustomerTitle;
use Thelia\Model\CustomerTitleI18n as ChildCustomerTitleI18n; use Thelia\Model\CustomerTitleI18n as ChildCustomerTitleI18n;
use Thelia\Model\CustomerTitleI18nQuery as ChildCustomerTitleI18nQuery; use Thelia\Model\CustomerTitleI18nQuery as ChildCustomerTitleI18nQuery;
@@ -90,6 +92,12 @@ abstract class CustomerTitle implements ActiveRecordInterface
*/ */
protected $updated_at; protected $updated_at;
/**
* @var ObjectCollection|ChildCustomer[] Collection to store aggregation of ChildCustomer objects.
*/
protected $collCustomers;
protected $collCustomersPartial;
/** /**
* @var ObjectCollection|ChildAddress[] Collection to store aggregation of ChildAddress objects. * @var ObjectCollection|ChildAddress[] Collection to store aggregation of ChildAddress objects.
*/ */
@@ -124,6 +132,12 @@ abstract class CustomerTitle implements ActiveRecordInterface
*/ */
protected $currentTranslations; protected $currentTranslations;
/**
* An array of objects scheduled for deletion.
* @var ObjectCollection
*/
protected $customersScheduledForDeletion = null;
/** /**
* An array of objects scheduled for deletion. * An array of objects scheduled for deletion.
* @var ObjectCollection * @var ObjectCollection
@@ -711,6 +725,8 @@ abstract class CustomerTitle implements ActiveRecordInterface
if ($deep) { // also de-associate any related objects? if ($deep) { // also de-associate any related objects?
$this->collCustomers = null;
$this->collAddresses = null; $this->collAddresses = null;
$this->collCustomerTitleI18ns = null; $this->collCustomerTitleI18ns = null;
@@ -848,6 +864,24 @@ abstract class CustomerTitle implements ActiveRecordInterface
$this->resetModified(); $this->resetModified();
} }
if ($this->customersScheduledForDeletion !== null) {
if (!$this->customersScheduledForDeletion->isEmpty()) {
foreach ($this->customersScheduledForDeletion as $customer) {
// need to save related object because we set the relation to null
$customer->save($con);
}
$this->customersScheduledForDeletion = null;
}
}
if ($this->collCustomers !== null) {
foreach ($this->collCustomers as $referrerFK) {
if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) {
$affectedRows += $referrerFK->save($con);
}
}
}
if ($this->addressesScheduledForDeletion !== null) { if ($this->addressesScheduledForDeletion !== null) {
if (!$this->addressesScheduledForDeletion->isEmpty()) { if (!$this->addressesScheduledForDeletion->isEmpty()) {
foreach ($this->addressesScheduledForDeletion as $address) { foreach ($this->addressesScheduledForDeletion as $address) {
@@ -1069,6 +1103,9 @@ abstract class CustomerTitle implements ActiveRecordInterface
} }
if ($includeForeignObjects) { if ($includeForeignObjects) {
if (null !== $this->collCustomers) {
$result['Customers'] = $this->collCustomers->toArray(null, true, $keyType, $includeLazyLoadColumns, $alreadyDumpedObjects);
}
if (null !== $this->collAddresses) { if (null !== $this->collAddresses) {
$result['Addresses'] = $this->collAddresses->toArray(null, true, $keyType, $includeLazyLoadColumns, $alreadyDumpedObjects); $result['Addresses'] = $this->collAddresses->toArray(null, true, $keyType, $includeLazyLoadColumns, $alreadyDumpedObjects);
} }
@@ -1242,6 +1279,12 @@ abstract class CustomerTitle implements ActiveRecordInterface
// the getter/setter methods for fkey referrer objects. // the getter/setter methods for fkey referrer objects.
$copyObj->setNew(false); $copyObj->setNew(false);
foreach ($this->getCustomers() as $relObj) {
if ($relObj !== $this) { // ensure that we don't try to copy a reference to ourselves
$copyObj->addCustomer($relObj->copy($deepCopy));
}
}
foreach ($this->getAddresses() as $relObj) { foreach ($this->getAddresses() as $relObj) {
if ($relObj !== $this) { // ensure that we don't try to copy a reference to ourselves if ($relObj !== $this) { // ensure that we don't try to copy a reference to ourselves
$copyObj->addAddress($relObj->copy($deepCopy)); $copyObj->addAddress($relObj->copy($deepCopy));
@@ -1295,6 +1338,9 @@ abstract class CustomerTitle implements ActiveRecordInterface
*/ */
public function initRelation($relationName) public function initRelation($relationName)
{ {
if ('Customer' == $relationName) {
return $this->initCustomers();
}
if ('Address' == $relationName) { if ('Address' == $relationName) {
return $this->initAddresses(); return $this->initAddresses();
} }
@@ -1303,6 +1349,224 @@ abstract class CustomerTitle implements ActiveRecordInterface
} }
} }
/**
* Clears out the collCustomers collection
*
* This does not modify the database; however, it will remove any associated objects, causing
* them to be refetched by subsequent calls to accessor method.
*
* @return void
* @see addCustomers()
*/
public function clearCustomers()
{
$this->collCustomers = null; // important to set this to NULL since that means it is uninitialized
}
/**
* Reset is the collCustomers collection loaded partially.
*/
public function resetPartialCustomers($v = true)
{
$this->collCustomersPartial = $v;
}
/**
* Initializes the collCustomers collection.
*
* By default this just sets the collCustomers collection to an empty array (like clearcollCustomers());
* however, you may wish to override this method in your stub class to provide setting appropriate
* to your application -- for example, setting the initial array to the values stored in database.
*
* @param boolean $overrideExisting If set to true, the method call initializes
* the collection even if it is not empty
*
* @return void
*/
public function initCustomers($overrideExisting = true)
{
if (null !== $this->collCustomers && !$overrideExisting) {
return;
}
$this->collCustomers = new ObjectCollection();
$this->collCustomers->setModel('\Thelia\Model\Customer');
}
/**
* Gets an array of ChildCustomer objects which contain a foreign key that references this object.
*
* If the $criteria is not null, it is used to always fetch the results from the database.
* Otherwise the results are fetched from the database the first time, then cached.
* Next time the same method is called without $criteria, the cached collection is returned.
* If this ChildCustomerTitle is new, it will return
* an empty collection or the current collection; the criteria is ignored on a new object.
*
* @param Criteria $criteria optional Criteria object to narrow the query
* @param ConnectionInterface $con optional connection object
* @return Collection|ChildCustomer[] List of ChildCustomer objects
* @throws PropelException
*/
public function getCustomers($criteria = null, ConnectionInterface $con = null)
{
$partial = $this->collCustomersPartial && !$this->isNew();
if (null === $this->collCustomers || null !== $criteria || $partial) {
if ($this->isNew() && null === $this->collCustomers) {
// return empty collection
$this->initCustomers();
} else {
$collCustomers = ChildCustomerQuery::create(null, $criteria)
->filterByCustomerTitle($this)
->find($con);
if (null !== $criteria) {
if (false !== $this->collCustomersPartial && count($collCustomers)) {
$this->initCustomers(false);
foreach ($collCustomers as $obj) {
if (false == $this->collCustomers->contains($obj)) {
$this->collCustomers->append($obj);
}
}
$this->collCustomersPartial = true;
}
$collCustomers->getInternalIterator()->rewind();
return $collCustomers;
}
if ($partial && $this->collCustomers) {
foreach ($this->collCustomers as $obj) {
if ($obj->isNew()) {
$collCustomers[] = $obj;
}
}
}
$this->collCustomers = $collCustomers;
$this->collCustomersPartial = false;
}
}
return $this->collCustomers;
}
/**
* Sets a collection of Customer objects related by a one-to-many relationship
* to the current object.
* It will also schedule objects for deletion based on a diff between old objects (aka persisted)
* and new objects from the given Propel collection.
*
* @param Collection $customers A Propel collection.
* @param ConnectionInterface $con Optional connection object
* @return ChildCustomerTitle The current object (for fluent API support)
*/
public function setCustomers(Collection $customers, ConnectionInterface $con = null)
{
$customersToDelete = $this->getCustomers(new Criteria(), $con)->diff($customers);
$this->customersScheduledForDeletion = $customersToDelete;
foreach ($customersToDelete as $customerRemoved) {
$customerRemoved->setCustomerTitle(null);
}
$this->collCustomers = null;
foreach ($customers as $customer) {
$this->addCustomer($customer);
}
$this->collCustomers = $customers;
$this->collCustomersPartial = false;
return $this;
}
/**
* Returns the number of related Customer objects.
*
* @param Criteria $criteria
* @param boolean $distinct
* @param ConnectionInterface $con
* @return int Count of related Customer objects.
* @throws PropelException
*/
public function countCustomers(Criteria $criteria = null, $distinct = false, ConnectionInterface $con = null)
{
$partial = $this->collCustomersPartial && !$this->isNew();
if (null === $this->collCustomers || null !== $criteria || $partial) {
if ($this->isNew() && null === $this->collCustomers) {
return 0;
}
if ($partial && !$criteria) {
return count($this->getCustomers());
}
$query = ChildCustomerQuery::create(null, $criteria);
if ($distinct) {
$query->distinct();
}
return $query
->filterByCustomerTitle($this)
->count($con);
}
return count($this->collCustomers);
}
/**
* Method called to associate a ChildCustomer object to this object
* through the ChildCustomer foreign key attribute.
*
* @param ChildCustomer $l ChildCustomer
* @return \Thelia\Model\CustomerTitle The current object (for fluent API support)
*/
public function addCustomer(ChildCustomer $l)
{
if ($this->collCustomers === null) {
$this->initCustomers();
$this->collCustomersPartial = true;
}
if (!in_array($l, $this->collCustomers->getArrayCopy(), true)) { // only add it if the **same** object is not already associated
$this->doAddCustomer($l);
}
return $this;
}
/**
* @param Customer $customer The customer object to add.
*/
protected function doAddCustomer($customer)
{
$this->collCustomers[]= $customer;
$customer->setCustomerTitle($this);
}
/**
* @param Customer $customer The customer object to remove.
* @return ChildCustomerTitle The current object (for fluent API support)
*/
public function removeCustomer($customer)
{
if ($this->getCustomers()->contains($customer)) {
$this->collCustomers->remove($this->collCustomers->search($customer));
if (null === $this->customersScheduledForDeletion) {
$this->customersScheduledForDeletion = clone $this->collCustomers;
$this->customersScheduledForDeletion->clear();
}
$this->customersScheduledForDeletion[]= $customer;
$customer->setCustomerTitle(null);
}
return $this;
}
/** /**
* Clears out the collAddresses collection * Clears out the collAddresses collection
* *
@@ -1801,6 +2065,11 @@ abstract class CustomerTitle implements ActiveRecordInterface
public function clearAllReferences($deep = false) public function clearAllReferences($deep = false)
{ {
if ($deep) { if ($deep) {
if ($this->collCustomers) {
foreach ($this->collCustomers as $o) {
$o->clearAllReferences($deep);
}
}
if ($this->collAddresses) { if ($this->collAddresses) {
foreach ($this->collAddresses as $o) { foreach ($this->collAddresses as $o) {
$o->clearAllReferences($deep); $o->clearAllReferences($deep);
@@ -1817,6 +2086,10 @@ abstract class CustomerTitle implements ActiveRecordInterface
$this->currentLocale = 'en_US'; $this->currentLocale = 'en_US';
$this->currentTranslations = null; $this->currentTranslations = null;
if ($this->collCustomers instanceof Collection) {
$this->collCustomers->clearIterator();
}
$this->collCustomers = null;
if ($this->collAddresses instanceof Collection) { if ($this->collAddresses instanceof Collection) {
$this->collAddresses->clearIterator(); $this->collAddresses->clearIterator();
} }

View File

@@ -38,6 +38,10 @@ use Thelia\Model\Map\CustomerTitleTableMap;
* @method ChildCustomerTitleQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query * @method ChildCustomerTitleQuery rightJoin($relation) Adds a RIGHT JOIN clause to the query
* @method ChildCustomerTitleQuery innerJoin($relation) Adds a INNER JOIN clause to the query * @method ChildCustomerTitleQuery innerJoin($relation) Adds a INNER JOIN clause to the query
* *
* @method ChildCustomerTitleQuery leftJoinCustomer($relationAlias = null) Adds a LEFT JOIN clause to the query using the Customer relation
* @method ChildCustomerTitleQuery rightJoinCustomer($relationAlias = null) Adds a RIGHT JOIN clause to the query using the Customer relation
* @method ChildCustomerTitleQuery innerJoinCustomer($relationAlias = null) Adds a INNER JOIN clause to the query using the Customer relation
*
* @method ChildCustomerTitleQuery leftJoinAddress($relationAlias = null) Adds a LEFT JOIN clause to the query using the Address relation * @method ChildCustomerTitleQuery leftJoinAddress($relationAlias = null) Adds a LEFT JOIN clause to the query using the Address relation
* @method ChildCustomerTitleQuery rightJoinAddress($relationAlias = null) Adds a RIGHT JOIN clause to the query using the Address relation * @method ChildCustomerTitleQuery rightJoinAddress($relationAlias = null) Adds a RIGHT JOIN clause to the query using the Address relation
* @method ChildCustomerTitleQuery innerJoinAddress($relationAlias = null) Adds a INNER JOIN clause to the query using the Address relation * @method ChildCustomerTitleQuery innerJoinAddress($relationAlias = null) Adds a INNER JOIN clause to the query using the Address relation
@@ -434,6 +438,79 @@ abstract class CustomerTitleQuery extends ModelCriteria
return $this->addUsingAlias(CustomerTitleTableMap::UPDATED_AT, $updatedAt, $comparison); return $this->addUsingAlias(CustomerTitleTableMap::UPDATED_AT, $updatedAt, $comparison);
} }
/**
* Filter the query by a related \Thelia\Model\Customer object
*
* @param \Thelia\Model\Customer|ObjectCollection $customer the related object to use as filter
* @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
*
* @return ChildCustomerTitleQuery The current query, for fluid interface
*/
public function filterByCustomer($customer, $comparison = null)
{
if ($customer instanceof \Thelia\Model\Customer) {
return $this
->addUsingAlias(CustomerTitleTableMap::ID, $customer->getTitleId(), $comparison);
} elseif ($customer instanceof ObjectCollection) {
return $this
->useCustomerQuery()
->filterByPrimaryKeys($customer->getPrimaryKeys())
->endUse();
} else {
throw new PropelException('filterByCustomer() only accepts arguments of type \Thelia\Model\Customer or Collection');
}
}
/**
* Adds a JOIN clause to the query using the Customer relation
*
* @param string $relationAlias optional alias for the relation
* @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'
*
* @return ChildCustomerTitleQuery The current query, for fluid interface
*/
public function joinCustomer($relationAlias = null, $joinType = Criteria::LEFT_JOIN)
{
$tableMap = $this->getTableMap();
$relationMap = $tableMap->getRelation('Customer');
// create a ModelJoin object for this join
$join = new ModelJoin();
$join->setJoinType($joinType);
$join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias);
if ($previousJoin = $this->getPreviousJoin()) {
$join->setPreviousJoin($previousJoin);
}
// add the ModelJoin to the current object
if ($relationAlias) {
$this->addAlias($relationAlias, $relationMap->getRightTable()->getName());
$this->addJoinObject($join, $relationAlias);
} else {
$this->addJoinObject($join, 'Customer');
}
return $this;
}
/**
* Use the Customer relation Customer object
*
* @see useQuery()
*
* @param string $relationAlias optional alias for the relation,
* to be used as main alias in the secondary query
* @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'
*
* @return \Thelia\Model\CustomerQuery A secondary query class using the current class as primary query
*/
public function useCustomerQuery($relationAlias = null, $joinType = Criteria::LEFT_JOIN)
{
return $this
->joinCustomer($relationAlias, $joinType)
->useQuery($relationAlias ? $relationAlias : 'Customer', '\Thelia\Model\CustomerQuery');
}
/** /**
* Filter the query by a related \Thelia\Model\Address object * Filter the query by a related \Thelia\Model\Address object
* *

View File

@@ -56,6 +56,7 @@ class Customer extends BaseCustomer implements UserInterface
public function createOrUpdate($titleId, $firstname, $lastname, $address1, $address2, $address3, $phone, $cellphone, $zipcode, $countryId, $email, $plainPassword = null, $lang = null, $reseller = 0, $sponsor = null, $discount = 0) public function createOrUpdate($titleId, $firstname, $lastname, $address1, $address2, $address3, $phone, $cellphone, $zipcode, $countryId, $email, $plainPassword = null, $lang = null, $reseller = 0, $sponsor = null, $discount = 0)
{ {
$this $this
->setTitleId($titleId)
->setFirstname($firstname) ->setFirstname($firstname)
->setLastname($lastname) ->setLastname($lastname)
->setEmail($email) ->setEmail($email)

View File

@@ -57,7 +57,7 @@ class CustomerTableMap extends TableMap
/** /**
* The total number of columns * The total number of columns
*/ */
const NUM_COLUMNS = 13; const NUM_COLUMNS = 14;
/** /**
* The number of lazy-loaded columns * The number of lazy-loaded columns
@@ -67,7 +67,7 @@ class CustomerTableMap extends TableMap
/** /**
* The number of columns to hydrate (NUM_COLUMNS - NUM_LAZY_LOAD_COLUMNS) * The number of columns to hydrate (NUM_COLUMNS - NUM_LAZY_LOAD_COLUMNS)
*/ */
const NUM_HYDRATE_COLUMNS = 13; const NUM_HYDRATE_COLUMNS = 14;
/** /**
* the column name for the ID field * the column name for the ID field
@@ -79,6 +79,11 @@ class CustomerTableMap extends TableMap
*/ */
const REF = 'customer.REF'; const REF = 'customer.REF';
/**
* the column name for the TITLE_ID field
*/
const TITLE_ID = 'customer.TITLE_ID';
/** /**
* the column name for the FIRSTNAME field * the column name for the FIRSTNAME field
*/ */
@@ -146,12 +151,12 @@ class CustomerTableMap extends TableMap
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/ */
protected static $fieldNames = array ( protected static $fieldNames = array (
self::TYPE_PHPNAME => array('Id', 'Ref', 'Firstname', 'Lastname', 'Email', 'Password', 'Algo', 'Reseller', 'Lang', 'Sponsor', 'Discount', 'CreatedAt', 'UpdatedAt', ), self::TYPE_PHPNAME => array('Id', 'Ref', 'TitleId', 'Firstname', 'Lastname', 'Email', 'Password', 'Algo', 'Reseller', 'Lang', 'Sponsor', 'Discount', 'CreatedAt', 'UpdatedAt', ),
self::TYPE_STUDLYPHPNAME => array('id', 'ref', 'firstname', 'lastname', 'email', 'password', 'algo', 'reseller', 'lang', 'sponsor', 'discount', 'createdAt', 'updatedAt', ), self::TYPE_STUDLYPHPNAME => array('id', 'ref', 'titleId', 'firstname', 'lastname', 'email', 'password', 'algo', 'reseller', 'lang', 'sponsor', 'discount', 'createdAt', 'updatedAt', ),
self::TYPE_COLNAME => array(CustomerTableMap::ID, CustomerTableMap::REF, CustomerTableMap::FIRSTNAME, CustomerTableMap::LASTNAME, CustomerTableMap::EMAIL, CustomerTableMap::PASSWORD, CustomerTableMap::ALGO, CustomerTableMap::RESELLER, CustomerTableMap::LANG, CustomerTableMap::SPONSOR, CustomerTableMap::DISCOUNT, CustomerTableMap::CREATED_AT, CustomerTableMap::UPDATED_AT, ), self::TYPE_COLNAME => array(CustomerTableMap::ID, CustomerTableMap::REF, CustomerTableMap::TITLE_ID, CustomerTableMap::FIRSTNAME, CustomerTableMap::LASTNAME, CustomerTableMap::EMAIL, CustomerTableMap::PASSWORD, CustomerTableMap::ALGO, CustomerTableMap::RESELLER, CustomerTableMap::LANG, CustomerTableMap::SPONSOR, CustomerTableMap::DISCOUNT, CustomerTableMap::CREATED_AT, CustomerTableMap::UPDATED_AT, ),
self::TYPE_RAW_COLNAME => array('ID', 'REF', 'FIRSTNAME', 'LASTNAME', 'EMAIL', 'PASSWORD', 'ALGO', 'RESELLER', 'LANG', 'SPONSOR', 'DISCOUNT', 'CREATED_AT', 'UPDATED_AT', ), self::TYPE_RAW_COLNAME => array('ID', 'REF', 'TITLE_ID', 'FIRSTNAME', 'LASTNAME', 'EMAIL', 'PASSWORD', 'ALGO', 'RESELLER', 'LANG', 'SPONSOR', 'DISCOUNT', 'CREATED_AT', 'UPDATED_AT', ),
self::TYPE_FIELDNAME => array('id', 'ref', 'firstname', 'lastname', 'email', 'password', 'algo', 'reseller', 'lang', 'sponsor', 'discount', 'created_at', 'updated_at', ), self::TYPE_FIELDNAME => array('id', 'ref', 'title_id', 'firstname', 'lastname', 'email', 'password', 'algo', 'reseller', 'lang', 'sponsor', 'discount', 'created_at', 'updated_at', ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ) self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, )
); );
/** /**
@@ -161,12 +166,12 @@ class CustomerTableMap extends TableMap
* e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0 * e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0
*/ */
protected static $fieldKeys = array ( protected static $fieldKeys = array (
self::TYPE_PHPNAME => array('Id' => 0, 'Ref' => 1, 'Firstname' => 2, 'Lastname' => 3, 'Email' => 4, 'Password' => 5, 'Algo' => 6, 'Reseller' => 7, 'Lang' => 8, 'Sponsor' => 9, 'Discount' => 10, 'CreatedAt' => 11, 'UpdatedAt' => 12, ), self::TYPE_PHPNAME => array('Id' => 0, 'Ref' => 1, 'TitleId' => 2, 'Firstname' => 3, 'Lastname' => 4, 'Email' => 5, 'Password' => 6, 'Algo' => 7, 'Reseller' => 8, 'Lang' => 9, 'Sponsor' => 10, 'Discount' => 11, 'CreatedAt' => 12, 'UpdatedAt' => 13, ),
self::TYPE_STUDLYPHPNAME => array('id' => 0, 'ref' => 1, 'firstname' => 2, 'lastname' => 3, 'email' => 4, 'password' => 5, 'algo' => 6, 'reseller' => 7, 'lang' => 8, 'sponsor' => 9, 'discount' => 10, 'createdAt' => 11, 'updatedAt' => 12, ), self::TYPE_STUDLYPHPNAME => array('id' => 0, 'ref' => 1, 'titleId' => 2, 'firstname' => 3, 'lastname' => 4, 'email' => 5, 'password' => 6, 'algo' => 7, 'reseller' => 8, 'lang' => 9, 'sponsor' => 10, 'discount' => 11, 'createdAt' => 12, 'updatedAt' => 13, ),
self::TYPE_COLNAME => array(CustomerTableMap::ID => 0, CustomerTableMap::REF => 1, CustomerTableMap::FIRSTNAME => 2, CustomerTableMap::LASTNAME => 3, CustomerTableMap::EMAIL => 4, CustomerTableMap::PASSWORD => 5, CustomerTableMap::ALGO => 6, CustomerTableMap::RESELLER => 7, CustomerTableMap::LANG => 8, CustomerTableMap::SPONSOR => 9, CustomerTableMap::DISCOUNT => 10, CustomerTableMap::CREATED_AT => 11, CustomerTableMap::UPDATED_AT => 12, ), self::TYPE_COLNAME => array(CustomerTableMap::ID => 0, CustomerTableMap::REF => 1, CustomerTableMap::TITLE_ID => 2, CustomerTableMap::FIRSTNAME => 3, CustomerTableMap::LASTNAME => 4, CustomerTableMap::EMAIL => 5, CustomerTableMap::PASSWORD => 6, CustomerTableMap::ALGO => 7, CustomerTableMap::RESELLER => 8, CustomerTableMap::LANG => 9, CustomerTableMap::SPONSOR => 10, CustomerTableMap::DISCOUNT => 11, CustomerTableMap::CREATED_AT => 12, CustomerTableMap::UPDATED_AT => 13, ),
self::TYPE_RAW_COLNAME => array('ID' => 0, 'REF' => 1, 'FIRSTNAME' => 2, 'LASTNAME' => 3, 'EMAIL' => 4, 'PASSWORD' => 5, 'ALGO' => 6, 'RESELLER' => 7, 'LANG' => 8, 'SPONSOR' => 9, 'DISCOUNT' => 10, 'CREATED_AT' => 11, 'UPDATED_AT' => 12, ), self::TYPE_RAW_COLNAME => array('ID' => 0, 'REF' => 1, 'TITLE_ID' => 2, 'FIRSTNAME' => 3, 'LASTNAME' => 4, 'EMAIL' => 5, 'PASSWORD' => 6, 'ALGO' => 7, 'RESELLER' => 8, 'LANG' => 9, 'SPONSOR' => 10, 'DISCOUNT' => 11, 'CREATED_AT' => 12, 'UPDATED_AT' => 13, ),
self::TYPE_FIELDNAME => array('id' => 0, 'ref' => 1, 'firstname' => 2, 'lastname' => 3, 'email' => 4, 'password' => 5, 'algo' => 6, 'reseller' => 7, 'lang' => 8, 'sponsor' => 9, 'discount' => 10, 'created_at' => 11, 'updated_at' => 12, ), self::TYPE_FIELDNAME => array('id' => 0, 'ref' => 1, 'title_id' => 2, 'firstname' => 3, 'lastname' => 4, 'email' => 5, 'password' => 6, 'algo' => 7, 'reseller' => 8, 'lang' => 9, 'sponsor' => 10, 'discount' => 11, 'created_at' => 12, 'updated_at' => 13, ),
self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ) self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, )
); );
/** /**
@@ -187,6 +192,7 @@ class CustomerTableMap extends TableMap
// columns // columns
$this->addPrimaryKey('ID', 'Id', 'INTEGER', true, null, null); $this->addPrimaryKey('ID', 'Id', 'INTEGER', true, null, null);
$this->addColumn('REF', 'Ref', 'VARCHAR', true, 50, null); $this->addColumn('REF', 'Ref', 'VARCHAR', true, 50, null);
$this->addForeignKey('TITLE_ID', 'TitleId', 'INTEGER', 'customer_title', 'ID', false, null, null);
$this->addColumn('FIRSTNAME', 'Firstname', 'VARCHAR', true, 255, null); $this->addColumn('FIRSTNAME', 'Firstname', 'VARCHAR', true, 255, null);
$this->addColumn('LASTNAME', 'Lastname', 'VARCHAR', true, 255, null); $this->addColumn('LASTNAME', 'Lastname', 'VARCHAR', true, 255, null);
$this->addColumn('EMAIL', 'Email', 'VARCHAR', false, 50, null); $this->addColumn('EMAIL', 'Email', 'VARCHAR', false, 50, null);
@@ -205,6 +211,7 @@ class CustomerTableMap extends TableMap
*/ */
public function buildRelations() public function buildRelations()
{ {
$this->addRelation('CustomerTitle', '\\Thelia\\Model\\CustomerTitle', RelationMap::MANY_TO_ONE, array('title_id' => 'id', ), 'RESTRICT', 'RESTRICT');
$this->addRelation('Address', '\\Thelia\\Model\\Address', RelationMap::ONE_TO_MANY, array('id' => 'customer_id', ), 'CASCADE', 'RESTRICT', 'Addresses'); $this->addRelation('Address', '\\Thelia\\Model\\Address', RelationMap::ONE_TO_MANY, array('id' => 'customer_id', ), 'CASCADE', 'RESTRICT', 'Addresses');
$this->addRelation('Order', '\\Thelia\\Model\\Order', RelationMap::ONE_TO_MANY, array('id' => 'customer_id', ), 'CASCADE', 'RESTRICT', 'Orders'); $this->addRelation('Order', '\\Thelia\\Model\\Order', RelationMap::ONE_TO_MANY, array('id' => 'customer_id', ), 'CASCADE', 'RESTRICT', 'Orders');
} // buildRelations() } // buildRelations()
@@ -372,6 +379,7 @@ class CustomerTableMap extends TableMap
if (null === $alias) { if (null === $alias) {
$criteria->addSelectColumn(CustomerTableMap::ID); $criteria->addSelectColumn(CustomerTableMap::ID);
$criteria->addSelectColumn(CustomerTableMap::REF); $criteria->addSelectColumn(CustomerTableMap::REF);
$criteria->addSelectColumn(CustomerTableMap::TITLE_ID);
$criteria->addSelectColumn(CustomerTableMap::FIRSTNAME); $criteria->addSelectColumn(CustomerTableMap::FIRSTNAME);
$criteria->addSelectColumn(CustomerTableMap::LASTNAME); $criteria->addSelectColumn(CustomerTableMap::LASTNAME);
$criteria->addSelectColumn(CustomerTableMap::EMAIL); $criteria->addSelectColumn(CustomerTableMap::EMAIL);
@@ -386,6 +394,7 @@ class CustomerTableMap extends TableMap
} else { } else {
$criteria->addSelectColumn($alias . '.ID'); $criteria->addSelectColumn($alias . '.ID');
$criteria->addSelectColumn($alias . '.REF'); $criteria->addSelectColumn($alias . '.REF');
$criteria->addSelectColumn($alias . '.TITLE_ID');
$criteria->addSelectColumn($alias . '.FIRSTNAME'); $criteria->addSelectColumn($alias . '.FIRSTNAME');
$criteria->addSelectColumn($alias . '.LASTNAME'); $criteria->addSelectColumn($alias . '.LASTNAME');
$criteria->addSelectColumn($alias . '.EMAIL'); $criteria->addSelectColumn($alias . '.EMAIL');

View File

@@ -166,6 +166,7 @@ class CustomerTitleTableMap extends TableMap
*/ */
public function buildRelations() public function buildRelations()
{ {
$this->addRelation('Customer', '\\Thelia\\Model\\Customer', RelationMap::ONE_TO_MANY, array('id' => 'title_id', ), 'RESTRICT', 'RESTRICT', 'Customers');
$this->addRelation('Address', '\\Thelia\\Model\\Address', RelationMap::ONE_TO_MANY, array('id' => 'customer_title_id', ), 'RESTRICT', 'RESTRICT', 'Addresses'); $this->addRelation('Address', '\\Thelia\\Model\\Address', RelationMap::ONE_TO_MANY, array('id' => 'customer_title_id', ), 'RESTRICT', 'RESTRICT', 'Addresses');
$this->addRelation('CustomerTitleI18n', '\\Thelia\\Model\\CustomerTitleI18n', RelationMap::ONE_TO_MANY, array('id' => 'id', ), 'CASCADE', null, 'CustomerTitleI18ns'); $this->addRelation('CustomerTitleI18n', '\\Thelia\\Model\\CustomerTitleI18n', RelationMap::ONE_TO_MANY, array('id' => 'id', ), 'CASCADE', null, 'CustomerTitleI18ns');
} // buildRelations() } // buildRelations()

View File

@@ -329,6 +329,7 @@
<table name="customer" namespace="Thelia\Model"> <table name="customer" namespace="Thelia\Model">
<column autoIncrement="true" name="id" primaryKey="true" required="true" type="INTEGER" /> <column autoIncrement="true" name="id" primaryKey="true" required="true" type="INTEGER" />
<column name="ref" required="true" size="50" type="VARCHAR" /> <column name="ref" required="true" size="50" type="VARCHAR" />
<column name="title_id" type="INTEGER" />
<column name="firstname" required="true" size="255" type="VARCHAR" /> <column name="firstname" required="true" size="255" type="VARCHAR" />
<column name="lastname" required="true" size="255" type="VARCHAR" /> <column name="lastname" required="true" size="255" type="VARCHAR" />
<column name="email" size="50" type="VARCHAR" /> <column name="email" size="50" type="VARCHAR" />
@@ -338,6 +339,9 @@
<column name="lang" size="10" type="VARCHAR" /> <column name="lang" size="10" type="VARCHAR" />
<column name="sponsor" size="50" type="VARCHAR" /> <column name="sponsor" size="50" type="VARCHAR" />
<column name="discount" type="FLOAT" /> <column name="discount" type="FLOAT" />
<foreign-key foreignTable="customer_title" name="fk_address_customer_title_id" onDelete="RESTRICT" onUpdate="RESTRICT">
<reference foreign="id" local="title_id" />
</foreign-key>
<unique name="ref_UNIQUE"> <unique name="ref_UNIQUE">
<unique-column name="ref" /> <unique-column name="ref" />
</unique> </unique>