public function getData($hero, $heroLevel, $items = array())
 {
     $data = array();
     //array_merge($data,$this->getHeroData(HeroPeer::retrieveByPK($hero),$heroLevel));
     $data = $this->getHeroData(HeroPeer::retrieveByPK($hero), $heroLevel);
     if (!empty($items)) {
         foreach ($items as $item) {
             $data[] = $this->getItemData(ItemPeer::retrieveByPK($item));
         }
     }
     return $data;
 }
Esempio n. 2
0
 public function executeCheckout()
 {
     $this->user = $this->getUser()->getRaykuUser();
     $voucher_id = $this->getUser()->getAttribute('voucher_id');
     $offer = OfferVoucherPeer::retrieveByPK($voucher_id);
     //$_SESSION['offerid'] = $offer->getId();
     if ($this->getRequest()->getMethod() == sfRequest::POST) {
         $c = new Criteria();
         $c->add(ShoppingCartPeer::IS_ACTIVE, true);
         $c->add(ShoppingCartPeer::USER_ID, $this->user->getId());
         $c->addDescendingOrderByColumn(ShoppingCartPeer::CREATED_AT);
         $this->cart_items = ShoppingCartPeer::doSelect($c);
         $purchase_detail = $this->getRequestParameter('purchase');
         foreach ($purchase_detail as $index => $value) {
             $purchaseDetail[$index] = trim($value);
         }
         if ($purchaseDetail['name'] == '' || $purchaseDetail['email'] == '' || $purchaseDetail['address_1'] == '' || $purchaseDetail['city'] == '' || $purchaseDetail['state'] == '' || $purchaseDetail['zip'] == '' || $purchaseDetail['country'] == '' || $purchaseDetail['tel'] == '') {
             sfProjectConfiguration::getActive()->loadHelpers(array('Url', 'Tag'));
             $this->msg = "<p>Please fill in all additional information on the <b>Purchase Cart</b> page.</p>";
             $this->msg .= "<p>" . link_to('Go back to the <b>Purchase Cart</b> page.', 'shop/checkoutPage') . "</p>";
         } else {
             if (count($this->cart_items) > 0) {
                 $count = 0;
                 $tot_price = 0;
                 $tot_item_price = 0;
                 $tot_shipping_price = 0;
                 $tot_quantity = 0;
                 foreach ($this->cart_items as $cart_item) {
                     $tot_price = $tot_price + $cart_item->getTotalPrice() + $cart_item->getTotalShippingCharge();
                     if ($tot_price > $this->user->getPoints()) {
                         break;
                     }
                     $sales_detail = new SalesDetail();
                     $sales_detail->setItemId($cart_item->getItemId());
                     $sales_detail->setTotalPrice($cart_item->getTotalPrice());
                     $sales_detail->setTotalShippingCharge($cart_item->getTotalShippingCharge());
                     $sales_detail->setQuantity($cart_item->getQuantity());
                     $sales_detail->save();
                     $count++;
                     $tot_item_price = $tot_item_price + $cart_item->getTotalPrice();
                     $tot_shipping_price = $tot_shipping_price + $cart_item->getTotalShippingCharge();
                     $tot_quantity = $tot_quantity + $cart_item->getQuantity();
                     $itemPurchased = ItemPeer::retrieveByPK($cart_item->getItemId());
                     if (empty($purchasedItems)) {
                         $purchasedItems = $itemPurchased->getTitle();
                     } else {
                         $purchasedItems = $purchasedItems . "," . $itemPurchased->getTitle();
                     }
                     $cart_item->delete();
                 }
                 $sales = new Sales();
                 if ($offer instanceof OfferVoucher) {
                     $tot_price = $tot_price - $offer->getPrice();
                     //$sales->setOfferVoucherId($offer->getId());
                     $offer->setIsUsed(true);
                     $offer->save();
                 }
                 $sales->setTotalSalePrice($tot_price);
                 $sales->setTotalItemPrice($tot_item_price);
                 $sales->setTotalShippingCharge($tot_shipping_price);
                 $sales->setQuantity($tot_quantity);
                 $sales->setStatusId(1);
                 $sales->save();
                 $this->user->setPoints($this->user->getPoints() - $tot_price);
                 $this->user->save();
                 $full_name = htmlentities($purchase_detail['name']);
                 $email = htmlentities($purchase_detail['email']);
                 $address_1 = htmlentities($purchase_detail['address_1']);
                 $address_2 = htmlentities($purchase_detail['address_2']);
                 $city = htmlentities($purchase_detail['city']);
                 $state = htmlentities($purchase_detail['state']);
                 $zip = htmlentities($purchase_detail['zip']);
                 $country = htmlentities($purchase_detail['country']);
                 $tel = htmlentities($purchase_detail['tel']);
                 $purchase_detail = new PurchaseDetail();
                 $purchase_detail->setFullName($full_name);
                 $purchase_detail->setUserId($this->user->getId());
                 $purchase_detail->setEmail($email);
                 $purchase_detail->setAddress1($address_1);
                 $purchase_detail->setAddress2($address_2);
                 $purchase_detail->setCity($city);
                 $purchase_detail->setZip($zip);
                 $purchase_detail->setState($state);
                 $purchase_detail->setCountry($country);
                 $purchase_detail->setSalesId($sales->getId());
                 $purchase_detail->save();
                 $user = $this->getUser()->getRaykuUser();
                 $this->mail = Mailman::createCleanMailer();
                 $this->mail->setSubject('Rayku.com Shoping Item Purchase Details');
                 $this->mail->setFrom($user->getName() . ' <' . $user->getEmail() . '>');
                 $to = "*****@*****.**";
                 $items = "<b>" . $purchasedItems . "</b>";
                 sfProjectConfiguration::getActive()->loadHelpers(array('Partial'));
                 $this->mail->setBody(get_partial('purchaseitem', array('name' => $user->getName(), 'user' => $user, 'items' => $items)));
                 $this->mail->setContentType('text/html');
                 $this->mail->addAddress($to);
                 $this->mail->send();
                 $this->msg = "<p style='font-size:14px;color:#444444'>You have just spent " . $tot_price . "RP to purchase " . $count . " item(s).<br /><br />A Rayku administrator has been notified, and will deliver your purchase as soon as possible. Once your order has been processed, you will be notified by private message here on Rayku.<br /><br />Thanks!<br />Rayku.com Staff</p>";
                 $this->getUser()->setAttribute('voucher_id', null);
             } else {
                 $this->msg = "<p style='font-size:14px;color:#444444'>No items in cart</p>";
             }
         }
     } else {
         $this->msg = "<p style='font-size:14px;color:#444444'>Unauthorized access.</p>";
     }
 }
 public function executeDownload()
 {
     $item = ItemPeer::retrieveByPK($this->getRequestParameter('id_item', ''), $this->getRequestParameter('id_formulario', ''));
     if ($item instanceof Item) {
         if ($item->getTextoCorto() != "") {
             $filename = sfConfig::get('app_directorio_upload') . 'docs/' . $item->getTextoCorto();
             //echo $filename."::".file_exists($filename);
             if (file_exists($filename)) {
                 $fname = explode("_", basename($filename));
                 if (sizeof($fname) > 1) {
                     $fname = substr(basename($filename), strlen($fname[0]) + 1);
                 } else {
                     $fname = $fname[0];
                 }
                 header("Content-Type: application/force-download");
                 header("Content-Type: application/octet-stream");
                 header("Content-Type: application/download");
                 header('Content-Disposition: attachment; filename="' . $fname . '"');
                 header('Content-Length: ' . filesize($filename));
                 header('Expires: 0');
                 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
                 header('Pragma: public');
                 $fp = fopen($filename, "r");
                 fpassthru($fp);
                 flush();
                 fclose($fp);
             }
         }
     }
     die("EL FICHERO NO EXISTE");
 }