Add clear order table and use propel random selection

modifié:         setup/faker.php
This commit is contained in:
Benjamin Perche
2014-06-18 13:29:30 +02:00
parent c5fa984e6e
commit da6244d220

View File

@@ -150,6 +150,7 @@ try {
\Thelia\Model\ContentDocumentQuery::create()->find()->delete(); \Thelia\Model\ContentDocumentQuery::create()->find()->delete();
\Thelia\Model\CouponQuery::create()->find()->delete(); \Thelia\Model\CouponQuery::create()->find()->delete();
\Thelia\Model\OrderQuery::create()->find()->delete();
$stmt = $con->prepare("SET foreign_key_checks = 1"); $stmt = $con->prepare("SET foreign_key_checks = 1");
@@ -497,7 +498,6 @@ try {
echo "Creating orders\n"; echo "Creating orders\n";
for ($i=0; $i < 50; ++$i) { for ($i=0; $i < 50; ++$i) {
$placedOrder = new \Thelia\Model\Order(); $placedOrder = new \Thelia\Model\Order();
$deliveryOrderAddress = new OrderAddress(); $deliveryOrderAddress = new OrderAddress();
@@ -512,7 +512,12 @@ try {
->setPhone($faker->phoneNumber) ->setPhone($faker->phoneNumber)
->setZipcode($faker->postcode) ->setZipcode($faker->postcode)
->setCity($faker->city) ->setCity($faker->city)
->setCountryId(64) ->setCountryId(
\Thelia\Model\CountryQuery::create()
->addAscendingOrderByColumn('RAND()')
->findOne()
->getId()
)
->save($con) ->save($con)
; ;
@@ -528,27 +533,56 @@ try {
->setPhone($faker->phoneNumber) ->setPhone($faker->phoneNumber)
->setZipcode($faker->postcode) ->setZipcode($faker->postcode)
->setCity($faker->city) ->setCity($faker->city)
->setCountryId(64) ->setCountryId(
\Thelia\Model\CountryQuery::create()
->addAscendingOrderByColumn('RAND()')
->findOne()
->getId()
)
->save($con) ->save($con)
; ;
$placedOrder $placedOrder
->setDeliveryOrderAddressId($deliveryOrderAddress->getId()) ->setDeliveryOrderAddressId($deliveryOrderAddress->getId())
->setInvoiceOrderAddressId($invoiceOrderAddress->getId()) ->setInvoiceOrderAddressId($invoiceOrderAddress->getId())
->setDeliveryModuleId(ModuleQuery::create()->filterByCode("Colissimo")->findOne()->getId()) ->setDeliveryModuleId(
->setPaymentModuleId(ModuleQuery::create()->filterByCode("Cheque")->findOne()->getId()) ModuleQuery::create()->
filterByCode("Colissimo")
->findOne()
->getId()
)
->setPaymentModuleId(
ModuleQuery::create()
->filterByCode("Cheque")
->findOne()->getId()
)
->setStatusId(mt_rand(1, 5)) ->setStatusId(mt_rand(1, 5))
->setCurrency(\Thelia\Model\CurrencyQuery::create()->findOne()) ->setCurrency(
->setCustomerId(getRandomObject(new \Thelia\Model\CustomerQuery())->getId()) \Thelia\Model\CurrencyQuery::create()
->addAscendingOrderByColumn('RAND()')
->findOne()
)
->setCustomer(
\Thelia\Model\CustomerQuery::create()
->addAscendingOrderByColumn('RAND()')
->findOne()
)
->setDiscount(mt_rand(0, 10)) ->setDiscount(mt_rand(0, 10))
->setLang(getRandomObject(new \Thelia\Model\LangQuery())) ->setLang(
\Thelia\Model\LangQuery::create()
->addAscendingOrderByColumn('RAND()')
->findOne()
)
->setPostage(mt_rand(1, 50)) ->setPostage(mt_rand(1, 50))
; ;
$placedOrder->save($con); $placedOrder->save($con);
for ($j=0; $j < mt_rand(1, 10); ++$j) { for ($j=0; $j < mt_rand(1, 10); ++$j) {
$pse = getRandomObject(new \Thelia\Model\ProductSaleElementsQuery()); $pse = \Thelia\Model\ProductSaleElementsQuery::create()
->addAscendingOrderByColumn('RAND()')
->findOne();
$product = $pse->getProduct(); $product = $pse->getProduct();
$orderProduct = new \Thelia\Model\OrderProduct(); $orderProduct = new \Thelia\Model\OrderProduct();
@@ -896,18 +930,4 @@ Sed facilisis pellentesque nisl, eu tincidunt erat scelerisque a. Nullam malesua
$coupon3->setIsRemovingPostage(false); $coupon3->setIsRemovingPostage(false);
$coupon3->setIsAvailableOnSpecialOffers(false); $coupon3->setIsAvailableOnSpecialOffers(false);
$coupon3->save(); $coupon3->save();
} }
function getRandomObject(\Propel\Runtime\ActiveQuery\ModelCriteria $query)
{
$max = $query->count();
if ($max === 0) {
throw new Exception("There is no entry in ". get_class($query));
}
$first_id = $query->findOne()->getId();
$obj = $query->findPk(mt_rand($first_id, $first_id+$max-1));
return $obj;
}