diff --git a/setup/faker.php b/setup/faker.php index 08da3889a..95080f40b 100644 --- a/setup/faker.php +++ b/setup/faker.php @@ -9,6 +9,8 @@ use Thelia\Coupon\FacadeInterface; use Thelia\Condition\ConditionCollection; use Thelia\Coupon\Type\RemoveXAmount; use Thelia\Coupon\Type\RemoveXPercent; +use Thelia\Model\ModuleQuery; +use Thelia\Model\OrderAddress; if (php_sapi_name() != 'cli') { throw new \Exception('this script can only be launched with cli sapi'); @@ -148,6 +150,7 @@ try { \Thelia\Model\ContentDocumentQuery::create()->find()->delete(); \Thelia\Model\CouponQuery::create()->find()->delete(); + \Thelia\Model\OrderQuery::create()->find()->delete(); $stmt = $con->prepare("SET foreign_key_checks = 1"); @@ -492,6 +495,111 @@ try { } } + echo "Creating orders\n"; + + $colissimo_id = ModuleQuery::create()-> + filterByCode("Colissimo") + ->findOne() + ->getId(); + + $cheque_id = ModuleQuery::create() + ->filterByCode("Cheque") + ->findOne() + ->getId(); + + for ($i=0; $i < 50; ++$i) { + $placedOrder = new \Thelia\Model\Order(); + + $deliveryOrderAddress = new OrderAddress(); + $deliveryOrderAddress + ->setCustomerTitleId(mt_rand(1,3)) + ->setCompany($faker->text(15)) + ->setFirstname($faker->firstname) + ->setLastname($faker->lastname) + ->setAddress1($faker->streetAddress) + ->setAddress2($faker->streetAddress) + ->setAddress3($faker->streetAddress) + ->setPhone($faker->phoneNumber) + ->setZipcode($faker->postcode) + ->setCity($faker->city) + ->setCountryId(64) + ->save($con) + ; + + $invoiceOrderAddress = new OrderAddress(); + $invoiceOrderAddress + ->setCustomerTitleId(mt_rand(1,3)) + ->setCompany($faker->text(15)) + ->setFirstname($faker->firstname) + ->setLastname($faker->lastname) + ->setAddress1($faker->streetAddress) + ->setAddress2($faker->streetAddress) + ->setAddress3($faker->streetAddress) + ->setPhone($faker->phoneNumber) + ->setZipcode($faker->postcode) + ->setCity($faker->city) + ->setCountryId(64) + ->save($con) + ; + + $placedOrder + ->setDeliveryOrderAddressId($deliveryOrderAddress->getId()) + ->setInvoiceOrderAddressId($invoiceOrderAddress->getId()) + ->setDeliveryModuleId($colissimo_id) + ->setPaymentModuleId($cheque_id) + ->setStatusId(mt_rand(1, 5)) + ->setCurrency( + \Thelia\Model\CurrencyQuery::create() + ->addAscendingOrderByColumn('RAND()') + ->findOne() + ) + ->setCustomer( + \Thelia\Model\CustomerQuery::create() + ->addAscendingOrderByColumn('RAND()') + ->findOne() + ) + ->setDiscount(mt_rand(0, 10)) + ->setLang( + \Thelia\Model\LangQuery::create() + ->addAscendingOrderByColumn('RAND()') + ->findOne() + ) + ->setPostage(mt_rand(1, 50)) + ; + + $placedOrder->save($con); + + for ($j=0; $j < mt_rand(1, 10); ++$j) { + $pse = \Thelia\Model\ProductSaleElementsQuery::create() + ->addAscendingOrderByColumn('RAND()') + ->findOne(); + + $product = $pse->getProduct(); + + $orderProduct = new \Thelia\Model\OrderProduct(); + + $orderProduct + ->setOrderId($placedOrder->getId()) + ->setProductRef($product->getRef()) + ->setProductSaleElementsRef($pse->getRef()) + ->setTitle($product->getTitle()) + ->setChapo($product->getChapo()) + ->setDescription($product->getDescription()) + ->setPostscriptum($product->getPostscriptum()) + ->setQuantity(mt_rand(1, 10)) + ->setPrice($price=mt_rand(1, 100)) + ->setPromoPrice(mt_rand(1, $price)) + ->setWasNew($pse->getNewness()) + ->setWasInPromo(rand(0,1) == 1) + ->setWeight($pse->getWeight()) + ->setTaxRuleTitle($faker->text(20)) + ->setTaxRuleDescription($faker->text(50)) + ->setEanCode($pse->getEanCode()) + ->save($con); + } + + } + echo "Generating coupons fixtures\n"; generateCouponFixtures($thelia);