require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/class.db_feedback.php"; include $_SERVER['DOCUMENT_ROOT'] . "/config/env_variables.php"; set_time_limit(0); $csvFile = $_SERVER['DOCUMENT_ROOT'] . "/scripts/db_seed/items.csv"; $itemData = parse_csv_file($csvFile); //var_dump($itemData); /*$a = DbAuction::find(195); $a->setField("numBids", 100); /*return;*/ $faker = Faker\Factory::create(); $reportFrequencies = $_env_reportFrequencies; seedUsersItemsAndAuctions(1000, 20, 5); //now get the userIds and auctions for next steps $userIds = DbUser::listIds(); $auctions = DbAuction::withConditions()->getAsClasses(); seedAuctionBids(); //seedAuctionViews(); seedAuctionWatches(); $soldAuctions = getSoldAuctions($auctions); seedFeedbacks($soldAuctions); function parse_csv_file($csvfile) { $csv = array(); $rowcount = 0; if (($handle = fopen($csvfile, "r")) !== FALSE) { $max_line_length = defined('MAX_LINE_LENGTH') ? MAX_LINE_LENGTH : 10000; $header = fgetcsv($handle, $max_line_length); $header_colcount = count($header); while (($row = fgetcsv($handle, $max_line_length)) !== FALSE) { $row_colcount = count($row);
$feedback = ["score" => $_POST["score"], "comment" => $_POST["comment"]]; if (ValidationOperator::hasEmtpyFields($feedback)) { // Create a session for all inputs so that they can be recovered after the page returns SessionOperator::setFormInput($feedback); // Redirect back HelperOperator::redirectTo($redirectUrl); } $auctionId = $_POST["auctionId"]; $creatorId = SessionOperator::getUser()->getUserId(); //get the id of receiver $receiverUsername = $_POST["receiverUsername"]; /* @var DbUser $receiver */ $receiver = DbUser::withConditions("WHERE username = '******'")->first(); //check receiver exists AND there is no existing feedback (we only allow one) if ($receiver == null or DbFeedback::withConditions("WHERE auctionId = " . $auctionId . " AND creatorId = " . $creatorId . " AND receiverId = " . $receiver->getId())->exists()) { HelperOperator::redirectTo($redirectUrl); } // Create Feedback $now = new DateTime("now", new DateTimeZone(TIMEZONE)); $feedback = new DbFeedback(array("auctionId" => $_POST["auctionId"], "creatorId" => SessionOperator::getUser()->getUserId(), "receiverId" => $receiver->getId(), "score" => $_POST["score"], "comment" => $_POST["comment"], "time" => $now->format('Y-m-d H:i:s'))); $feedback->create(); // Notify receiver $auction = DbAuction::find($auctionId); $item = DbItem::find($auction->getField("itemId")); $comment = "You received a feedback from \"" . SessionOperator::getUser()->getUserName() . "\" in your participation in \""; $comment .= $item->getField("itemName") . " - " . $item->getField("itemBrand") . "\"."; QueryOperator::addNotification($receiver->getId(), $comment, QueryOperator::NOTIFICATION_FEEDBACK_RECEIVED); // Set feedback session SessionOperator::setNotification(SessionOperator::FEEDBACK_SENT); // Return to page HelperOperator::redirectTo($redirectUrl);
//} $item = new DbItem(array("userId" => $user->getId(), "itemName" => $itemName, "itemBrand" => $faker->randomElement($itemData)["Brand Name"], "categoryId" => $itemCatId, "conditionId" => $faker->numberBetween(1, 4), "itemDescription" => $faker->sentences(3, true), "image" => $faker->randomElement($itemImages))); $item->create(); $numAuctionForItem = $faker->numberBetween(0, $maxAuctionsPerItem - 1); for ($x = 0; $x < $numAuctionForItem; $x++) { $startPrice = 0.5 * $faker->numberBetween(1, 200); if ($faker->boolean($chanceOfGettingTrue = 80)) { $reservePrice = $startPrice + 0.5 * $faker->numberBetween(1, 200); } else { $reservePrice = 0; } $startTime = $faker->dateTimeBetween('-2 weeks', '+2 months'); $endTime = new DateTime($startTime->format('Y-m-d H:i:s')); $endTime->add(date_interval_create_from_date_string("7 days")); //$endTime = $faker->dateTimeBetween('+1 day', '+15 days'); if ($faker->boolean(20)) { $quantity = $faker->numberBetween(1, 10); } else { $quantity = 1; } $now = new DateTime(); if ($now > $startTime) { $numViews = $faker->numberBetween(100, 10000); } else { $numViews = 0; } $auction = new DbAuction(array("itemId" => $item->getId(), "quantity" => $quantity, "startPrice" => $startPrice, "reservePrice" => $reservePrice, "startTime" => $startTime->format('Y-m-d H:i:s'), "endTime" => $endTime->format('Y-m-d H:i:s'), "views" => $numViews, "reportFrequency" => $faker->randomElement(array_values($reportFrequencies)))); $auction->create(); } } }