Current File : /home/users/barii/public_html/finansenl.com.pl/wodki/application/classes/Controller/Order.php
<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Order extends Controller_Frontend {

	public function action_confirmation_link() {
		$h = addslashes($_GET['h']);
		$i = addslashes($_GET['i']);
		if( !empty( $h) AND !empty($i) ) {
			if( $h == md5($i) ) {
			
			$title2 = "Zamówienie potwierdzone - można działać...";
			//$file_name = cms::createPermit($order->id);
			$attachment = array();
			
			$order = ORM::Factory('Order', $i);
			
			$name = $order->name;
			$email = $order->email;
			$phone = $order->phone;
			$nick = $order->nick;
			$order->status = 1;
			$order->save();
			
				$e_content3 = View::factory('email/order_success')
												->bind('name', $name)
												->bind('email', $email)
												->bind('phone', $phone)
												->bind('nick', $nick);
				aurora::standardEmail(Kohana::$config->load('site.email_business'), $title2,  $e_content3, true, null, $attachment);
												
				Message::success(__t('Zamówienie zostało potwierdzone! Dziękujemy!'));
				$this->redirect('Order/show_cart');
			}
		}
	}
	
	public function action_index()
	{
		$error = '';
			
		$s = Session::instance();
		//$s->set('cart_session', NULL);
		//exit;
		$cart_session = $s->get('cart_session');
		//var_dump($cart_session);
		//exit;
		if( empty( $cart_session ) ) {
			Message::error(__t('Twój koszyk jest pusty!'));
			$this->redirect('Order/show_cart');
		}
		
		
		if( !empty( $_GET['action']) AND $_GET['action'] == 'finalize' ) {
		
			if( $_POST ) {
			
			$name = !empty( $_POST['name'] ) ? addslashes($_POST['name'] ) : '';
			$email = !empty( $_POST['email'] ) ? addslashes($_POST['email'] ) : '';
			$phone = !empty( $_POST['phone'] ) ? addslashes($_POST['phone'] ) : '';
			$nick = !empty( $_POST['nick'] ) ? addslashes($_POST['nick'] ) : '';
			
			if( !empty( $name ) AND !empty( $email ) AND !empty( $phone ) AND !empty( $nick ) ) {
		
			$order = ORM::Factory('Order');
			$order->country = cms::getCountry2IP();
			$order->date = date('Y-m-d H:i:s');
			$order->name = $name;
			$order->email = $email;
			$order->phone = $phone;
			$order->nick = $nick;
			$order->save();
			
			foreach( $cart_session as $pid => $data ) {
				if( !empty( $pid ) AND (int)$pid > 0 ) {
				$product = ORM::Factory('item', $pid);
				if(Auth::instance()->logged_in() ) {
					$seller_id = Auth::instance()->get_user()->id;
				} else {
					$seller_id = $product->owner_id;
				}
				
				$order->title = $pid;
			
				
				$order_item = ORM::Factory('order_item');
			
				$order_item->items_id = $pid;
				
				$order_item->orders_id = $order->id;
				$order_item->save();
				}
			}
			
			//$order->seller_id = $seller_id;
			//$order->hash = md5($order->id);
			//$order->user_id = $user_id;
			$order->status = 0;
			$order->file_name = '';
			$order->save();
			
			
			//cms::Add_Affiliate($o->user_id, 'SELL', $o->file_id);
			$from = array();
			$from[0] = Kohana::$config->load('site.email_business');
			$from[1] = Kohana::$config->load('site.appName');
			
			$link = "http://".$_SERVER['HTTP_HOST']."/Order/confirmation_link?h=".md5($order->id)."&i=".$order->id;
			
			$title2 = "Link aktywacyjny z ".Kohana::$config->load('site.appName');
			
			$e_content2 = View::factory('email/order_seller_success')->bind('link', $link);
												
												
			
				$info = "Dziękujemy za skorzystanie z naszych usług. Proszę sprawdzić e-mail i potwierdzić zamówienie poprzez kliknięcie w link!";
				aurora::standardEmail($email, $title2,  $e_content2);
				
				$s->set('cart_session', NULL);
				
		
			} else {
				$error = "Proszę wypełnić poprawnie wszyskie pola formularza!";
			}
			}
			
			$this->template->title = 'Order';
			$this->template->content = View::factory('order/index')
									->bind('error', $error)
									->bind('info', $info)
									->bind('cart_session', $cart_session);
									
			
			
		}
		
		
		
	}

	/*
	public function action_payment() {
		
		$id = Request::current()->param('id');
		
		$order = ORM::Factory('Order')->where('id','=', $id)->find();
		if( $order->loaded() ) {
		
			$item_name = $order->title;
			$item_amount = $order->price;
			
			$querystring = "id=".$id."&";
		//	$querystring = "control=".$id."&";
			$querystring = "amount=".$id."&";
			$querystring = "description=".$id."&";
			$querystring = "url=http://".$_SERVER['HTTP_HOST']."/order/payment_confirmation";
			$querystring = "urlc=http://".$_SERVER['HTTP_HOST']."/order/payment_success?order_id=".$id."&";
			$querystring = "email=".$id."&";
			$querystring = "type=c1&";
				
				$this->redirect('https://ssl.dotpay.pl/'.$querystring);
				exit;

			} else{
				
	
			}
		
		
		} else {
			Message::error('Nie można załadować zamówienia!');
			$this->redirect('Product/Category');
		}
		//$this->redirect('Order/payment_success/'.$order->id);
		
	}
	*/
	public function action_update_amount()
	{
		$amount = !empty( $_GET['amount'] ) ? addslashes( $_GET['amount'] ) : 1;
		$pid = !empty( $_GET['pid'] ) ? addslashes( $_GET['pid'] ) : 0;
		$s = Session::instance();
		$cc = array();
		
		$cart_session = $s->get('cart_session');
		$cc = $cart_session;
		
		if( !empty( $cart_session ) AND !empty( $pid ) ) {
			$cc[$pid]['amount'] = $amount;
			$cc[$pid]['amount_pendant'] = $amount;
			$s->set('cart_session', $cc);
		}
		
		echo "OK";
		exit;
	}
	
	public function action_test_cart()
	{
		$s = Session::instance();
		$cart_session = $s->get('cart_session');
		var_dump($cart_session);
		exit;
	}
	
	public function action_add_cart()
	{
		$cc = array();
		
		$id = Request::current()->param('id');
		$id = str_replace("krup_wiz_eleg_","eleg_krupnik_", $id);
		$id = str_replace("uni_wiz","10x5_mini", $id);
		$id = str_replace("wyb_wiz_","wyborowa_", $id);
		$id = str_replace("krup_wiz_","krupnik_mini_", $id);
		$id = str_replace("_wiz_","_mini_", $id);
		
		if( !empty( $id ) AND $id != "undefined") {
			$s = Session::instance();
			
			$cart_session = $s->get('cart_session');
			
			$item = ORM::Factory('item', $id);
			if( empty( $cart_session ) ) {
				$cc[md5($id)]['id'] = $id;
				$cc[md5($id)]['total_price_value'] = $item->price;
				$cc[md5($id)]['total_cost_value'] = $item->price;
				$cc[md5($id)]['amount']= empty($_POST['amount']) ? 10 : addslashes($_POST['amount']);
				$cc[md5($id)]['amount_pendant']= empty($_POST['amount_pendant']) ? 10 : addslashes($_POST['amount_pendant']);
				$cc[md5($id)]['pendants']= empty($_POST['pendants']) ? 0 : addslashes($_POST['pendants']);
				
				
			} else {
			
				$cc = $cart_session;
				$cc[md5($id)]['id'] = $id;
				$cc[md5($id)]['total_price_value'] = $item->price;
				$cc[md5($id)]['total_cost_value'] = $item->price;
				$cc[md5($id)]['amount']= empty($_POST['amount']) ? 10 : addslashes($_POST['amount']);
				$cc[md5($id)]['amount_pendant']= empty($_POST['amount_pendant']) ? 10 : addslashes($_POST['amount_pendant']);
				$cc[md5($id)]['pendants']= empty($_POST['pendants']) ? 0 : addslashes($_POST['pendants']);
			}
			
			// Generujemy PDF
			
			$text='<!DOCTYPE html>
			<html>
			<body>
			<div class="procent">'.@$_POST["procent"].'</div>
			<div class="header">'.nl2br(@$_POST["header"]).'</div>
				
				<div class="imiona">
					'.@$_POST["imiona"].'<br/>
					'.@$_POST["data"].'
				</div>
				
				<div class="text">
					'.nl2br(@$_POST["text"]).'
				</div>
			<div class="bg">
				
			</div>
			</body>
			</html>
			';
			include('html/tpl/generator/mpdf/mpdf.php');
			$mpdf=new mPDF('UTF-8',array(72.6,112.6),'','' , 0,0,0,0,0,0);
			$mpdf->SetImportUse(); 
			$mpdf->SetHTMLHeader($header);
			$mpdf->SetDisplayMode('fullpage');
			$mpdf->allow_charset_conversion=true;
			$mpdf->charset_in='UTF-8';
			 
			$mpdf->list_indent_first_level = 0;
			$stylesheet = file_get_contents('html/tpl/generator/style5.css'); // external css
			$pagecount = $mpdf->SetSourceFile('html/tpl/generator/tlo.pdf');
			$tplId = $mpdf->ImportPage($pagecount);

			$actualsize = $mpdf->UseTemplate($tplId);
			$mpdf->WriteHTML($stylesheet,1);
			$mpdf->WriteHTML($text, 2);
			 
			 
			$mpdf->Output("uploads/pdf/plik.pdf","D");
		
			exit;
			// KONIEC
	
			$s->set('cart_session', $cc);
		}
		
		
		$this->template->title = __t('Karta produktu');
		$this->template->content = View::factory('order/add_cart')->bind('cart_session', $cc);
									
		
	
	}
	public function action_show_cart()
	{
	
		$s = Session::instance();
		$cart_session = $s->get('cart_session');
		
		$this->template->title = __t('Koszyk');
		$this->template->content = View::factory('order/show_cart')->bind('cart_session', $cart_session);
		
	
	}	
	public function action_delete_cart()
	{
		$cc = array();
		$id = Request::current()->param('id');
		$s = Session::instance();
	
		$cart_session = $s->get('cart_session');
		unset($cart_session[$id]);
		/*
		foreach( $cart_session as $row => $data ) {
			if( $row != $id ) 
				$cc[$row] = $data;
		}
		*/
		$s->set('cart_session', $cart_session);
	
		$this->redirect('Order/show_cart');
	}	
	
	public function action_cart()
	{
		$id = Request::current()->param('id');
		$file = ORM::factory('File', $id);
		
		if(!Auth::instance()->logged_in() ) {
			Message::success(__t('Musisz być zalogowany aby móc dokonywać zakupów'));
			$this->redirect('login');
			exit;
		}

		if( $_POST ) {
			$data = ac_form::clear_form_data($_POST);
			
			$user_id =  Auth::instance()->get_user()->id;
			$user = ORM::Factory('User', $user_id );
			
			$price = $file->price;
			$netto = Model_Currency::calculateNettoFromBrutto($price);
			$tax = Model_Currency::calculateTaxFromBrutto($price);
			
			$o = ORM::factory('Order');
			$o->date = date('Y-m-d H:i:s');
			$o->title = sprintf(__t('Zakup skryptu %s'), $file->title);
			$o->status = 0;
			$o->introductory = $user->introductory;
			$o->price = $price;
			$o->netto = $netto;
			$o->tax = $tax;
			$o->file_id = $id;
			$o->user_id = $user->id;
			$o->save();
			
			$this->redirect('https://przelewy24.pl');
			exit;
			
		}	
		
		$this->template->title = 'Zamówienie';
        $this->template->content = View::factory('order/cart')
									->bind('file', $file);
	}
	
	public function action_payment_error()
	{
		Message::error('Payment error!');
		$this->redirect('/');
		exit;
	}
	
	public function action_payment_report()
	{
		
		echo "OK";
		exit;
		
	}
	
	public function action_payment_success()
	{

		$s = Session::instance();
		
		$order_id = @addslashes($_GET['order_id']);

		if(Auth::instance()->logged_in() ) {
			$o = ORM::factory('Order', $order_id);
			$o->status = 1;
			
			$o->save();
			
			$order_prods = ORM::factory('order_item')->where('orders_id','=', $order_id)->find_all();
			foreach( $order_prods as $op ) {
				$item = ORM::Factory('item', $op->items_id);
				$seller_id = $item->owner_id;
				
				$item->sold += 1;
				$item->save();
				
				$user = ORM::Factory('User', $o->seller_id);
				$user->sold += 1;
				$user->save();
			
				//cms::Add_Affiliate( $seller_id, 'SELL');	
			//cms::Add_Commission( $seller_id, $op->items_id, $order_id);	
			}
			
			//cms::Add_Affiliate( $o->user_id, 'BUY');
			
			$title = __t('Payment was credited');
			
			$session = Session::instance();
			$lang_session = $session->get('language');
						$lang = (empty( $lang_session ) ) ? 1 : $lang_session;
						$lang_code = DB::query(Database::SELECT, "SELECT name FROM `languages` WHERE `id` = '$lang'")->execute();
						$lang_code = strtolower($lang_code[0]['name']);
		
               $e_content = View::factory('email/'.$lang_code.'_payment_success')

										->bind('user', $user);
			$from = array();
			$from[0] = Kohana::$config->load('site.email_business');
			$from[1] = Kohana::$config->load('site.appName');
					//
			//aurora::standardEmail($o->customer->email, $title,  $e_content);
			
			if( Kohana::$config->load('site.canConfirmAdminSell') ) {
				//aurora::standardEmail(Kohana::$config->load('site.email_business'), $title,  $e_content);
			}
			
			$s->set('cart_session', NULL);

			Message::success(__t('Thank you for making the order. Please check your e-mail address.'));
			$this->redirect('/');
			//$this->redirect('Order/confirmation');

		}
		
		exit;
	}
	
	public function action_confirmation()
	{
		$this->template->title = 'Confirmation';
        $this->template->content = View::factory('order/confirmation');
	}
}