Current File : /home/users/barii/public_html/finansenl.com.pl/wodki/application/classes/Controller/Account.php
<?php

defined('SYSPATH') or die('No direct script access.');

class Controller_Account extends Controller_Frontend {

     public function action_index($action = '', $id_t = null) {
	
		$this->redirect('account/edit'); 

    }
	
	
	public function action_message() {

		//$action = Request::current()->param('act');
		//$id = Request::current()->param('addon');
		$action = !empty($_GET['action']) ? addslashes($_GET['action']) : '';
		$id = !empty($_GET['id']) ? addslashes($_GET['id']) : '';
		$user_messages = array();
        $this->template->title = $title = 'Twoje reklamacje';
		$sort = !empty($_GET['sort']) ? addslashes($_GET['sort']) : 'id';
	
		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
	
		$user_id = Auth::instance()->get_user()->id;
		$profile_id = Auth::instance()->get_user()->profile_id;
		
		if( empty( $action ) ) {
			$view = View::factory('account/message');	
			$user_messages = ORM::Factory('user_message')
					//->and_where_open()
					->where('sender_id','=', $user_id)
					->or_where('recipient_id','=', $user_id)
					->group_by('recipient_id')
					->find_all();
	
		} else {
			$view = View::factory('account/message_edit');
		
			if( !empty( $id) ) {
				//$user_messages = ORM::Factory('user_message', $id);
				$user_messages = ORM::Factory('user_message')
					//->and_where_open()
					->where('sender_id','=', $user_id)
					->or_where('recipient_id','=', $user_id)
					//->group_by('recipient_id')
					->find_all();
			} 
			
			if ($_POST) {
				$data = $_POST;
				
				if( empty( $id) ) {
					$user_messages = ORM::Factory('user_message');
					
				}
				
				$data = ac_form::clear_form_data($_POST);
				
				$user_messages->content = addslashes($data['content']);
				$user_messages->date = date('Y-m-d H:i:s');
				$user_messages->sender_id = $user_id;
				$user_messages->type = 'OUTPUT';
				$user_messages->recipient_id = $data['recipient_id'];
				$user_messages->signature = md5($user_id.$data['recipient_id']);
				$user_messages->save();
				
				Message::success(__t('Wiadomość została wysłana!'));
				$this->redirect('Account/message');
			
			}
		}
		
		
		if( $action == "delete" AND !is_null( $id ) ) {
			
			ORM::Factory('user_message')
					->where('id','=', $id)
					->and_where_open()
					->where('sender_id','=',$user_id)
					->or_where('recipient_id','=',$user_id)
					->and_where_close()
					->find()
					->delete();
			
			Message::success('Akcja wykonana pomyślnie.');
			$this->redirect('Account/message');
		}
		
		$users = ORM::Factory('user')->where('id','!=', $user_id)->find_all();

        $this->template->content = $view
                        ->bind('title', $title)
						->bind('user_messages', $user_messages)
						->bind('users', $users)
						->bind('sort', $sort)
						->bind('user_id', $user_id)
                        ->bind('errors', $errors)
						->bind('message_ok', $message_ok)
                        ->bind('message', $message);
    }
	
	public function action_template() {

		//$action = Request::current()->param('act');
		//$id = Request::current()->param('addon');
		$action = !empty($_GET['action']) ? addslashes($_GET['action']) : '';
		$id = !empty($_GET['id']) ? addslashes($_GET['id']) : '';
		$user_templates = array();
        $this->template->title = $title = 'Twoje szablony';
		$sort = !empty($_GET['sort']) ? addslashes($_GET['sort']) : 'id';
	
		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
	
		$user_id = Auth::instance()->get_user()->id;
		$profile_id = Auth::instance()->get_user()->profile_id;
		
		if( empty( $action ) ) {
			$view = View::factory('account/template');	
			
			$user_templates = ORM::Factory('user_template')
				->where('user_id','=', $user_id)
				->find_all();

	
		} else {
			$view = View::factory('account/template_edit');
		
			if( !empty( $id) ) {
				//$user_messages = ORM::Factory('user_message', $id);
				
				$user_templates = ORM::Factory('user_template')
					//->and_where_open()
					->where('user_id','=', $user_id)
					->where('id','=', $id)
					//->group_by('recipient_id')
					->find();
			} 
			
			if ($_POST) {
				$data = $_POST;
				
				if( empty( $id) ) {
					$user_templates = ORM::Factory('user_template');
					
				}
				
				$data = ac_form::clear_form_data($_POST);
				
				$user_templates->title = addslashes($data['title']);
				$user_templates->subject = addslashes($data['subject']);
				$user_templates->welcome_text = addslashes($data['welcome_text']);
				$user_templates->email_replay = addslashes($data['email_replay']);
			//	$user_templates->date = date('Y-m-d H:i:s');
				$user_templates->user_id = $user_id;
				$user_templates->save();
				
				Message::success(__t('Zmiany zostały zapisane!'));
				$this->redirect('Account/template');
			
			}
		}
		
		
		if( $action == "delete" AND !is_null( $id ) ) {
			
			ORM::Factory('user_template')
					->where('id','=', $id)
					->where('user_id','=',$user_id)
					
					->find()
					->delete();
			
			Message::success('Akcja wykonana pomyślnie.');
			$this->redirect('Account/template');
		}
		
		$default_text = "Witaj %USERNAME% (%FIRSTNAME% %LASTNAME%), 
Twój kod zakupiony na aukcji numer %AUCTION_ID% (%NAME%) to: %CODE% 
Jeśli zakupiłeś więcej kodów to przyjdą one w osobnych wiadomościach.";

		
        $this->template->content = $view
                        ->bind('title', $title)
						->bind('default_text', $default_text)
						->bind('user_templates', $user_templates)
						->bind('sort', $sort)
						->bind('user_id', $user_id)
                        ->bind('errors', $errors)
						->bind('message_ok', $message_ok)
                        ->bind('message', $message);
    }
	
	public function action_monitoring() {

		//$action = Request::current()->param('act');
		//$id = Request::current()->param('addon');
		$action = !empty($_GET['action']) ? addslashes($_GET['action']) : '';
		$id = !empty($_GET['id']) ? addslashes($_GET['id']) : '';
		$user_monitoring = array();
        $this->template->title = $title = 'Twoje aukcje';
		$sort = !empty($_GET['sort']) ? addslashes($_GET['sort']) : 'id';
		
		
		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
	
		$user_id = Auth::instance()->get_user()->id;
		$profile_id = Auth::instance()->get_user()->profile_id;
		
		$templates = ORM::Factory('user_template')
					->where('user_id','=', $user_id)
					->find_all();
				$items = ORM::Factory('item')
					->where('user_id','=', $user_id)
					->find_all();	
		
		
		if( empty( $action ) ) {
			$view = View::factory('account/monitoring');	
			
			$user_monitoring = ORM::Factory('user_monitoring')
				->where('user_id','=', $user_id)
				->find_all();

	
		} else {
			$view = View::factory('account/monitoring_edit');
		
			if( !empty( $id) ) {
				//$user_messages = ORM::Factory('user_message', $id);
				
					
				$user_monitoring = ORM::Factory('user_monitoring')
					//->and_where_open()
					->where('user_id','=', $user_id)
					->where('id','=', $id)
					//->group_by('recipient_id')
					->find();
			} 
			
			if ($_POST) {
				$data = $_POST;
				
				if( empty( $id) ) {
					$user_monitoring = ORM::Factory('user_monitoring');
					
				}
				
				$data = ac_form::clear_form_data($_POST);
				
				$user_monitoring->title = addslashes($data['title']);
				
				$user_monitoring->user_templates_id = addslashes($data['user_templates_id']);
				$user_monitoring->items_id = addslashes($data['items_id']);
				$user_monitoring->date = date('Y-m-d H:i:s');
				$user_monitoring->user_id = $user_id;
				$user_monitoring->save();
				
				Message::success(__t('Zmiany zostały zapisane!'));
				$this->redirect('Account/monitoring');
			
			}
		}
		
		
		if( $action == "delete" AND !is_null( $id ) ) {
			
			ORM::Factory('user_monitoring')
					->where('id','=', $id)
					->where('user_id','=',$user_id)
					
					->find()
					->delete();
			
			Message::success('Akcja wykonana pomyślnie.');
			$this->redirect('Account/monitoring');
		}
		
	
        $this->template->content = $view
                        ->bind('title', $title)
						->bind('items', $items)
						->bind('templates', $templates)
						->bind('user_monitoring', $user_monitoring)
						->bind('sort', $sort)
						->bind('user_id', $user_id)
                        ->bind('errors', $errors)
						->bind('message_ok', $message_ok)
                        ->bind('message', $message);
    }
	
	public function action_favorite() {

		$this->template->title = $title = __t('Ulubione');

		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
	
		$user_id = Auth::instance()->get_user()->id;
		$user = ORM::Factory('User', $user_id);
		
		$favorities = ORM::Factory('item_favorite')->where('user_id','=', $user_id)->find_all();
	
		$view = View::factory('account/favorite');
        $this->template->content = $view
                        ->bind('title', $title)
						->bind('favorities', $favorities)
						->bind('user', $user)
                        ->bind('errors', $errors)
                        ->bind('message', $message);
      
	}
	
	public function action_order_show() {

		$this->template->title = $title = __t('Watch online');
		$id = $this->request->param('id');
	
		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
		
		$user_id = Auth::instance()->get_user()->id;
		$user = ORM::Factory('User', $user_id);
		$order = ORM::Factory('Order')->where('hash','=', $id)->where('user_id','=', $user_id)->find();
		if( !$order->loaded() ) {
			Message::error( __t('Brak uprawnień do oglądania danego materiału!') );
			$this->redirect('Account');
			exit;
		}
		
		$order_item = ORM::Factory('order_item')->where('orders_id','=', $order->id)->find();
	
		$view = View::factory('account/order_show');
        $this->template->content = $view
                        ->bind('title', $title)
						->bind('order', $order)
						->bind('order_item', $order_item)
						
						->bind('user', $user)
                        ->bind('errors', $errors)
                        ->bind('message', $message);
      
	}	
	
	public function action_delete_favorite() {

		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
		
		$user_id = Auth::instance()->get_user()->id;
		$user = ORM::Factory('User', $user_id);
		$id = $this->request->param('id');
		
		$delete = ORM::Factory('item_favorite')->where('id','=', $id)->where('user_id','=', $user_id)->find();
		if( $delete->loaded() )  {
			$delete->delete();
			Message::render( __t('Pomyślnie usunięto produkt z Ulubionych!') );
			
		}
		$this->redirect('Account/Favorite');
      
	}
	
	public function action_report() {

        $this->template->title = $title = __t('Raport');

		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
		$view = View::factory('account/report');
        $this->template->content = $view
                        ->bind('title', $title)
                        ->bind('errors', $errors)
                        ->bind('message', $message);
    }	
	
	
	public function action_stat() {

        $this->template->title = $title = __t('Account statistics');
		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
		$view = View::factory('account/stat');
		
		$user = ORM::Factory('User', Auth::instance()->get_user()->id);
		
		$y = !empty($_GET['y']) ? addslashes($_GET['y']) : date('Y');
		$m = !empty($_GET['m']) ? addslashes($_GET['m']) : date('n');
		
		$n = $m;
		if( $n<10 ) $n = '0'.$n;
		
		$date = $y."-".$n;
		$sold = ORM::Factory('Order')->where(DB::expr('DATE_FORMAT(`date`,"%Y-%m")'),'=', $date)->where('seller_id','=', $user->id)->find_all();
		
		$points = ORM::Factory('Stat')->where(DB::expr('DATE_FORMAT(`date`,"%Y-%m")'),'=', $date)->where('user_id','=', $user->id)->find_all();
		
		$REGISTER = ORM::Factory('Stat')
				->select(array(DB::expr('sum(`value`)'), 'sum_val'))
				->where('keyname','=', 'REGISTER')
				->where(DB::expr('DATE_FORMAT(`date`,"%Y-%m")'),'=', $date)
				->where('user_id','=', $user->id)
				->find();
		$ADD_ITEM = ORM::Factory('Stat')
				->select(array(DB::expr('sum(`value`)'), 'sum_val'))
				->where('keyname','=', 'ADD_ITEM')
				->where(DB::expr('DATE_FORMAT(`date`,"%Y-%m")'),'=', $date)
				->where('user_id','=', $user->id)
				->find();
		$INVITE_TO_REGISTER = ORM::Factory('Stat')
				->select(array(DB::expr('sum(`value`)'), 'sum_val'))
				->where('keyname','=', 'INVITE_TO_REGISTER')
				->where(DB::expr('DATE_FORMAT(`date`,"%Y-%m")'),'=', $date)
				->where('user_id','=', $user->id)
				->find();
				
		$BUY = ORM::Factory('Stat')
				->select(array(DB::expr('sum(`value`)'), 'sum_val'))
				->where('keyname','=', 'BUY')
				->where(DB::expr('DATE_FORMAT(`date`,"%Y-%m")'),'=', $date)
				->where('user_id','=', $user->id)
				->find();
				
		$SELL = ORM::Factory('Stat')
				->select(array(DB::expr('sum(`value`)'), 'sum_val'))
				->where('keyname','=', 'SELL')
				->where(DB::expr('DATE_FORMAT(`date`,"%Y-%m")'),'=', $date)
				->where('user_id','=', $user->id)
				->find();
				
		$FB = ORM::Factory('Stat')
				->select(array(DB::expr('sum(`value`)'), 'sum_val'))
				->where('keyname','=', 'SHARE_FB')
				->where(DB::expr('DATE_FORMAT(`date`,"%Y-%m")'),'=', $date)
				->where('user_id','=', $user->id)
				->find();				
		
		$invoices = ORM::Factory('invoice')->where(DB::expr('DATE_FORMAT(`date`,"%Y-%m")'),'=', $date)->where('customers_id','=', $user->id)->find_all();
		
		$commission = ORM::Factory('User_commission')->select(array(DB::expr('SUM(`amount`)'), 'total'))->where(DB::expr('DATE_FORMAT(`date`,"%Y-%m")'),'=', $date)->where('user_id','=', $user->id)->where('status','=', 2)->find();
		
        $this->template->content = $view
                        ->bind('title', $title)
						->bind('invoices', $invoices)
						->bind('commission', $commission)
						->bind('y', $y)
						->bind('m', $m)
						->bind('user', $user)
						->bind('points', $points)
						->bind('FB', $FB)
						->bind('REGISTER', $REGISTER)
						->bind('ADD_ITEM', $ADD_ITEM)
						->bind('INVITE_TO_REGISTER', $INVITE_TO_REGISTER)
						->bind('BUY', $BUY)
						->bind('SELL', $SELL)
						->bind('sold', $sold)
                        ->bind('errors', $errors)
                        ->bind('message', $message);
    }

	public function action_delete() {

        $this->template->title = $title = __t('Moje dane');

		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
		
		$id =  Auth::instance()->get_user()->id;
		
		$user = ORM::Factory('User', $id );
		$user->status = 100;
		$user->save();
		
		Message::success(__t('Administrator otrzyma informacje o prośbie usunięcia konta!'));
		$this->redirect('account/edit');
		
    }
	
	public function action_delete_photo( $id = null ) {
		
		$user_id = Auth::instance()->get_user()->id;
		$photo_id = addslashes($_GET['photo_id']);
		
		$item_id = addslashes($_GET['id']);
		$layout = addslashes($_GET['layout']);
		$user = ORM::Factory('User', $item_id);
		
		$select = ORM::Factory('user_image')->where('id','=',$photo_id)->find();
		if( $select->loaded() ) {
			
			if( Auth::instance()->logged_in('admin') ) {
				$select->delete();
			
			} else {
				if( $user->parent == $user_id ) {
				$select->delete();
				}
			}
			
			$this->request->redirect('account/notice/edit/'.$item_id.'?layout='.$layout);	
		}
		
		$this->request->redirect('account/edit');	
	exit;
		
	}	
	
	public function action_set_thumb_photo( $id = null ) {
		
		$user_id = Auth::instance()->get_user()->id;
		$photo_id = addslashes($_GET['photo_id']);
		
		$item_id = addslashes($_GET['id']);
		$layout = addslashes($_GET['layout']);
		$user = ORM::Factory('User', $item_id);
		
		$select = ORM::Factory('user_image')->where('id','=',$photo_id)->find();
		if( $select->loaded() ) {
		
			if( Auth::instance()->logged_in('admin') ) {
				DB::Query(Database::UPDATE, "UPDATE user_images SET highlight = 0 WHERE user_id = '$item_id'")->execute();
				$select->highlight = 1;
				$select->save();
				$this->request->redirect('account/notice/edit/'.$item_id.'?layout='.$layout);	
			} else {
			
				if( $user->parent == $user_id ) {
				DB::Query(Database::UPDATE, "UPDATE user_images SET highlight = 0 WHERE user_id = '$item_id'")->execute();
				$select->highlight = 1;
				$select->save();
				$this->request->redirect('account/notice/edit/'.$item_id.'?layout='.$layout);	
				}
			}
		}
		
		$this->request->redirect('account/edit');	
	exit;
		
	}		
	
	
	public function action_activate_email() {
		$email_old = Request::current()->param('email_old');
		$id = Request::current()->param('id');
		$email_new = Request::current()->param('email_new');
		
		$u = ORM::Factory('User')->where('email','=', $email_old)->find();
		if( $u->loaded() ) {
			if( md5($u->id) == $id ) {
				$u->email = $email_new;
				$u->save();
				
			}
		}
		
		$this->redirect('account/edit');
	}

	public function action_shopping() {

		$this->template->title = $title = __t('Twoje zakupy');
		$id = Request::current()->param('id');
		
		$filtr = !empty($_GET['filtr']) ? addslashes($_GET['filtr']) : '';
		$sort = !empty($_GET['sort']) ? addslashes($_GET['sort']) : 'date';
		
		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
		
		$user_id = Auth::instance()->get_user()->id;
		$user = ORM::Factory('User', $user_id);
		
		if( !empty($_GET['get_courier']) AND !empty($_POST['send']) ) {
		
			$oid = (int)$_POST['order_id'];
			$order = ORM::Factory('Order', $oid);	
			$order->courier = 1; 
			$order->courier_text = addslashes($_POST['note_text']); 
			$order->ringleader_courier = $user_id; 
			$order->save();
			$title = __t('Zamówienie kuriera dla '.$user->username);
					
			$note_text = $order->courier_text;
					$e_content = View::factory('email/get_courier')
													->bind('note_text', $note_text)
													->bind('user', $user);
					$from = array();
					$from[0] = Kohana::$config->load('site.email_business');
					$from[1] = Kohana::$config->load('site.appName');
			
					aurora::standardEmail(Kohana::$config->load('site.email_business'), $title,  $e_content);
			
					Message::success(__t('Wiadomość przesłana do administracji!'));
					$this->redirect('account/shopping');
		}
		
		if( !empty($_GET['rakeback']) AND !empty($_POST['order_id']) ) {
		
			$title = __t('Wystąpienie o zwrot prowizji');
			$oid = (int)$_POST['order_id'];
			$order = ORM::Factory('Order', $oid);	
			$order->rakeback = 1;
			$order->ringleader_rakeback = $user_id; 			
			$order->rakeback_text = addslashes($_POST['note_text']); 
			$order->save();
			
			$note_text = $order->rakeback_text;
			
					$e_content = View::factory('email/rakeback')
													->bind('user', $user)
													->bind('note_text', $note_text)
													->bind('order', $order);
					$from = array();
					$from[0] = Kohana::$config->load('site.email_business');
					$from[1] = Kohana::$config->load('site.appName');
			
					aurora::standardEmail(Kohana::$config->load('site.email_business'), $title,  $e_content);
			
					Message::success(__t('Wiadomość przesłana do administracji!'));
					$this->redirect('account/shopping');
		}
		
		if( !empty($_GET['controversy']) AND !empty($_POST['order_id']) ) {
		
			$title = __t('Nowy spór w transkacji');
			$oid = (int)$_POST['order_id'];
			$order = ORM::Factory('Order', $oid);	
			$order->controversy = 1; 
			$order->ringleader_controversy = $user_id; 
			$order->controversy_text = addslashes($_POST['note_text']); 
			$order->save();
			
			$note_text = $order->controversy_text;
					$e_content = View::factory('email/controversy')
													->bind('user', $user)
													->bind('note_text', $note_text)
													->bind('order', $order);
					$from = array();
					$from[0] = Kohana::$config->load('site.email_business');
					$from[1] = Kohana::$config->load('site.appName');
			
					aurora::standardEmail(Kohana::$config->load('site.email_business'), $title,  $e_content);
			
					Message::success(__t('Wiadomość przesłana do administracji!'));
					$this->redirect('account/shopping');
		}
		
		
		$view = View::factory('account/order');
		
		
		
		$orders = ORM::Factory('Order');
		
		if( !empty( $filtr ) ) {
				$orders = $orders
							->where($filtr,'=', $filtr_value);
			}
			
		$orders = $orders->where('user_id','=', $user_id)->order_by($sort, 'desc')->find_all();
	
        $this->template->content = $view
                        ->bind('title', $title)
						->bind('user', $user)
						->bind('sort', $sort)
						->bind('orders', $orders)
                        ->bind('errors', $errors)
						->bind('message_ok', $message_ok)
                        ->bind('message', $message);
	}
	
	public function action_order() {

		$this->template->title = $title = __t('Zamówienia');
		$id = Request::current()->param('id');
		
		$filtr = !empty($_GET['filtr']) ? addslashes($_GET['filtr']) : '';
		$sort = !empty($_GET['sort']) ? addslashes($_GET['sort']) : 'date';
		
		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
		
		$user_id = Auth::instance()->get_user()->id;
		$user = ORM::Factory('User', $user_id);
		
		if( !empty($_GET['get_courier']) AND !empty($_POST['send']) ) {
		
			$oid = (int)$_POST['order_id'];
			$order = ORM::Factory('Order', $oid);	
			$order->courier = 1; 
			$order->courier_text = addslashes($_POST['note_text']); 
			$order->ringleader_courier = $user_id; 
			$order->save();
			$title = __t('Zamówienie kuriera dla '.$user->username);
					
			$note_text = $order->courier_text;
					$e_content = View::factory('email/get_courier')
													->bind('note_text', $note_text)
													->bind('user', $user);
					$from = array();
					$from[0] = Kohana::$config->load('site.email_business');
					$from[1] = Kohana::$config->load('site.appName');
			
					aurora::standardEmail(Kohana::$config->load('site.email_business'), $title,  $e_content);
			
					Message::success(__t('Wiadomość przesłana do administracji!'));
					$this->redirect('account/order');
		}
		
		if( !empty($_GET['rakeback']) AND !empty($_POST['order_id']) ) {
		
			$title = __t('Wystąpienie o zwrot prowizji');
			$oid = (int)$_POST['order_id'];
			$order = ORM::Factory('Order', $oid);	
			$order->rakeback = 1;
			$order->ringleader_rakeback = $user_id; 			
			$order->rakeback_text = addslashes($_POST['note_text']); 
			$order->save();
			
			$note_text = $order->rakeback_text;
			
					$e_content = View::factory('email/rakeback')
													->bind('user', $user)
													->bind('note_text', $note_text)
													->bind('order', $order);
					$from = array();
					$from[0] = Kohana::$config->load('site.email_business');
					$from[1] = Kohana::$config->load('site.appName');
			
					aurora::standardEmail(Kohana::$config->load('site.email_business'), $title,  $e_content);
			
					Message::success(__t('Wiadomość przesłana do administracji!'));
					$this->redirect('account/order');
		}
		
		if( !empty($_GET['controversy']) AND !empty($_POST['order_id']) ) {
		
			$title = __t('Nowy spór w transkacji');
			$oid = (int)$_POST['order_id'];
			$order = ORM::Factory('Order', $oid);	
			$order->controversy = 1; 
			$order->ringleader_controversy = $user_id; 
			$order->controversy_text = addslashes($_POST['note_text']); 
			$order->save();
			
			$note_text = $order->controversy_text;
					$e_content = View::factory('email/controversy')
													->bind('user', $user)
													->bind('note_text', $note_text)
													->bind('order', $order);
					$from = array();
					$from[0] = Kohana::$config->load('site.email_business');
					$from[1] = Kohana::$config->load('site.appName');
			
					aurora::standardEmail(Kohana::$config->load('site.email_business'), $title,  $e_content);
			
					Message::success(__t('Wiadomość przesłana do administracji!'));
					$this->redirect('account/order');
		}
		
		
		$view = View::factory('account/order');
		
		
		
		$orders = ORM::Factory('Order');
		
		if( !empty( $filtr ) ) {
				$orders = $orders
							->where($filtr,'=', $filtr_value);
			}
			
		$orders = $orders->where('seller_id','=', $user_id)->order_by($sort, 'desc')->find_all();
		$kontrahent = ORM::Factory('company', $user->companies_id);
		$my_cash = $orders->count()*$kontrahent->stake;
        $this->template->content = $view
                        ->bind('title', $title)
						->bind('my_cash', $my_cash)
						->bind('user', $user)
						->bind('sort', $sort)
						->bind('orders', $orders)
                        ->bind('errors', $errors)
						->bind('message_ok', $message_ok)
                        ->bind('message', $message);
	}
	
	public function action_order_detail() {

		$this->template->title = $title = __t('Szczegóły zamówienia');
		$id = addslashes($_GET['order_id']);
		
		if( !empty( $id ) ) {
		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
		
		$user_id = Auth::instance()->get_user()->id;
		$user = ORM::Factory('User', $user_id);
		
		$view = View::factory('account/order_detail');
		
		$order = ORM::Factory('Order', $id);
	
        echo $view
                        ->bind('title', $title)
						->bind('user', $user)
						->bind('data', $order)
                        ->bind('errors', $errors)
						->bind('message_ok', $message_ok)
                        ->bind('message', $message);
		}			
		exit;
	}
		
	
	public function action_order_invoice() {
		
		$preview = true;
		
		$id = Request::current()->param('id');
	
		if( !Auth::instance()->logged_in() ) $this->redirect('/');
		
		$user_id = Auth::instance()->get_user()->id;
		
		

		$invoice = ORM::Factory('Order')->where('id','=', $id)->where('user_id','=', $user_id)->find();
		
		//$user = ORM::Factory('User', $invoice->seller_id); // Seller
		$user = ORM::Factory('auth_user')->where('username','=','admin')->find(); // Seller
		
		if( $invoice->loaded() ) {
		
		
		$customer = $invoice->customer;
		defined('FPDF_FONTPATH') OR define('FPDF_FONTPATH','modules/fpdf/font/');
	
	$height = 10;
	
	require_once('modules/fpdf/fpdf.php');
	$faktura = new FPDF();
	$faktura->SetUTF8(true);
	$faktura->SetDisplayMode('real', 'single');
	$faktura->Open();
	$faktura->AddPage();
	$faktura->AddFont('arial_ce', "", "arial_ce.php");

	$faktura->SetCompression(false);  //włącza kompresję dokumentu

	/* a poniższe tylko dla ambitnych */
	$faktura->SetAuthor('Faktura VAT');  //ustawia autora dokumentu
	$faktura->SetCreator('Faktura VAT');  //ustawia generator dokumentu
	$faktura->SetSubject('Faktura VAT');  //ustawia temat dokumentu
	$faktura->SetTitle('Faktura VAT');  //ustawia tytuł dokumentu

	$faktura->SetDisplayMode(200);  //domyślne powiększenie dokumentu w przeglądarce
	//$faktura->SetMargins(10, 10 , 10);  //ustawia marginesy dla dokumentu
	//$faktura->Image('images/logo.jpg', 28, 15,127,77);					
	
	$z_x = 237;
	$y = 20;
	$faktura->SetFont('arial_ce','',11);	
	$faktura->MultiCell(0, $height-10,  __t('Date of issue: ').$invoice->date, 0, 'R', 0);
	
	$faktura->MultiCell(0, $height+20,  __t('Date of sale: ').$invoice->date, 0, 'R', 0);
		
	$y += 30;
	if( !empty( $user->logo ) AND strstr( $user->logo, "jpg") ) {
		//$faktura->Image('uploads/user/images/'.$user->logo, 10, 20, 193, 59); 
	}
	
	$faktura->SetFont('arial_ce','',22);	
	$faktura->MultiCell(0, $height+15, __t('INVOICE'), 0, 'C', 0);						
							
	$y += 5;				
	$faktura->SetFont('arial_ce','',12);		
	$faktura->MultiCell(0, $height,  'I/'.$invoice->id, 0, 'C', 0);
	
	$y += 5;				
	$faktura->SetFont('arial_ce','',6);		
	$faktura->MultiCell(0, $height,  __t('original/copy'), 0, 'C', 0);

	$faktura->SetFont('arial_ce','',11);	
	$faktura->SetXY(28, 112);
	$faktura->SetFillColor(170,170,170);
	$faktura->MultiCell(260, 20,  __t('Seller'), 1, 'C', 1);
	$faktura->MultiCell(260, 20,  $user->name, 'LRT', 'L', 0);
	$faktura->MultiCell(260, 20,  $user->address.' '.$user->postcode.' '.$user->city, 'LR', 'L', 0);
	$faktura->MultiCell(260, 20,  $user->nip, 'LRB', 'L', 0);
	//$faktura->MultiCell(260, 20,  '' , 'LRB', 'L', 0);
	
	$faktura->SetXY(305, 112);
	$faktura->MultiCell(260, 20,  __t('Buyer'), 1, 'C', 1);
	$faktura->SetXY(305, 132);		
	$faktura->MultiCell(260, 20,  $customer->company.' '.$customer->firstname.' '.$customer->lastname, 'LRT', 'L', 0);
	$faktura->SetFont('arial_ce','',12);		
	$faktura->SetXY(305, 152);
	$faktura->MultiCell(260, 20,  $customer->street, 'LR', 'L', 0);
	$faktura->SetXY(305, 172);
	$city = $customer->city;
	$faktura->MultiCell(260, 20,  $customer->postcode.' '.$city, 'LR', 'L', 0);
	$faktura->SetXY(305, 192);
	$faktura->MultiCell(260, 20,  @$customer->nip, 'LRB', 'L', 0);
	
	$faktura->SetFillColor(255,255,255);
	
	$faktura->SetXY(28, 230);
	
	$faktura->SetFont('arial_ce','',6);	
	
	$faktura->MultiCell(15, 25, __t("Id"), 1, 'C', 0);
	$faktura->SetXY(43, 230);
	$faktura->MultiCell(280, 25, __t("Name"), 1, 'L', 0);
	$faktura->SetXY(323, 230);
	$faktura->MultiCell(30, 25, __t(""), 1, 'C', 0);
	$faktura->SetXY(353, 230);
	$faktura->MultiCell(20, 25, __t("X"), 1, 'C', 0);
	$faktura->SetXY(373, 230);
	$faktura->MultiCell(50, 25, __t("Net unit price"), 1, 'C', 0);
	$faktura->SetXY(423, 230);
	$faktura->MultiCell(40, 25, __t("Net"), 1, 'C', 0);
	$faktura->SetXY(463, 230);
	$faktura->MultiCell(60, 25, __t("Tax"), 1, 'C', 0);
	$faktura->SetXY(523, 230);
	$faktura->MultiCell(42, 25, __t("Gross"), 1, 'C', 0);
	
//	$faktura->SetFont('arial_ce','',6);		
	
	$Y_POS = 255;
	
	$wartosc_netto = 0;
	$podatek = 0;
	$wartosc_brutto = 0;
	
	$suma_wartosc_netto = 0;
	$suma_podatek = 0;
	$suma_wartosc_brutto = 0;	
	
	$suma_wartosc_netto23 = 0;
	$suma_podatek23 = 0;
	$suma_wartosc_brutto23 = 0;	
	
	$suma_wartosc_netto8 = 0;
	$suma_podatek8 = 0;
	$suma_wartosc_brutto8 = 0;	
	
	$suma_wartosc_netto3 = 0;
	$suma_podatek3 = 0;
	$suma_wartosc_brutto3 = 0;	
	
	$suma_wartosc_netto0 = 0;
	$suma_podatek0 = 0;
	$suma_wartosc_brutto0 = 0;	
	
	$suma_wartosc_nettozw = 0;
	$suma_podatekzw = 0;
	$suma_wartosc_bruttozw = 0;	
	
	$data['titleposition_1'] = __t($invoice->title);
	$data['jmposition_1'] = __t('szt.');
	$data['pkwiu_1'] = '';
	$data['amountposition_1'] = 1;
	$data['priceposition_1'] = $invoice->price;
	//$data['rateposition_1'] = $invoice->tax;
	$data['rateposition_1'] = 21;

	for( $i = 1; $i < 2; $i++ ) {
	
	$titleposition = $data['titleposition_'.$i];
	$jmposition = $data['jmposition_'.$i];
	$pkwiu = $data['pkwiu_'.$i];
	$amountposition = $data['amountposition_'.$i];
	$priceposition = $data['priceposition_'.$i];
	$rateposition = $data['rateposition_'.$i];

	$podatek = $invoice->price-round(($invoice->price/1.21), 2 );
	
	if( !empty( $titleposition ) ) {

		$wartosc_brutto = $invoice->price;
			
		$wartosc_netto = round(($invoice->price/1.21), 2 );
		
		$suma_wartosc_brutto += $wartosc_brutto;

		$suma_wartosc_netto += $wartosc_netto;

		$suma_podatek += $podatek;

		$faktura->SetXY(28, $Y_POS);
		
		$faktura->MultiCell(15, 25, $i.".", 1, 'C', 0);
		$faktura->SetXY(43, $Y_POS);
		$faktura->MultiCell(280, 25, 'Buying a product on the site SAM', 1, 'L', 0);
		$faktura->SetXY(323, $Y_POS);
		$faktura->MultiCell(30, 25, $pkwiu, 1, 'C', 0);
		$faktura->SetXY(353, $Y_POS);
		$faktura->MultiCell(20, 25, $amountposition, 1, 'C', 0);
		$faktura->SetXY(373, $Y_POS);
		$faktura->MultiCell(50, 25, number_format($wartosc_netto, 2, ',', ' '), 1, 'C', 0);
		$faktura->SetXY(423, $Y_POS);
		$faktura->MultiCell(40, 25, number_format($wartosc_netto, 2, ',', ' '), 1, 'C', 0);
		$faktura->SetXY(463, $Y_POS);
		$faktura->MultiCell(20, 25, "21%", 1, 'C', 0);
		$faktura->SetXY(483, $Y_POS);
		$faktura->MultiCell(40, 25, number_format($podatek, 2, ',', ' '), 1, 'C', 0);
		$faktura->SetXY(523, $Y_POS);
		$faktura->MultiCell(42, 25, number_format($wartosc_brutto, 2, ',', ' '), 1, 'C', 0);
		
		$Y_POS = $Y_POS+25;
		
	}
	
	}
	
	//$suma_wartosc_brutto = number_format($invoice->price, 2, ',', ' ');

	$faktura->SetXY(323, $Y_POS);
	$faktura->MultiCell(30, 25, __t("Total"), 1, 'C', 0);
	$faktura->SetXY(353, $Y_POS);
	$faktura->MultiCell(20, 25, "", 1, 'C', 0);
	$faktura->SetXY(373, $Y_POS);
	$faktura->MultiCell(50, 25, "", 1, 'C', 0);
	$faktura->SetXY(423, $Y_POS);
	$faktura->MultiCell(40, 25, number_format($suma_wartosc_netto, 2, ',', ' '), 1, 'C', 0);
	$faktura->SetXY(463, $Y_POS);
	$faktura->MultiCell(20, 25, "X", 1, 'C', 0);
	$faktura->SetXY(483, $Y_POS);
	$faktura->MultiCell(40, 25, number_format($suma_podatek, 2, ',', ' '), 1, 'C', 0);
	$faktura->SetXY(523, $Y_POS);
	$faktura->MultiCell(42, 25,  number_format($invoice->price, 2, ',', ' '), 1, 'C', 0);

	$Y_POS = $Y_POS+25;

	$Y = $faktura->getY()+20;

	$slownie = cms::words2pay($suma_wartosc_brutto);

	$faktura->SetXY(28, $Y);
	$payment_method = __t('transfer');

$payment_deadline = __t('paid');
	$payout = $suma_wartosc_brutto; // 0,00
	// __t("Words").": ".$slownie."\n".
	$faktura->MultiCell(0, 15, __t("Maturity").": ".$payment_deadline."\n".__t("Method of payment").": ".$payment_method."\n".__t("Paid").": ".$payout." euro\n".__t("Gross").": ".$suma_wartosc_brutto." euro\n".__t("Bank name").": ".$user->billing_bank."\n".__t("Account number").": ".$user->billing_bank_account , 1, 'L', 0);
		
	//$faktura->SetXY(415, $Y);
	
	//$faktura->MultiCell(150, 25, "Całkowita kwota:  10 000,00 PLN\nZapłacono: 10 000,00 PLN\nDo zapłaty: 10 000,00 PLN" , 1, 'R', 0);
	
	$Y += 145;
	
	$faktura->SetXY(28, $Y);
	
	$faktura->SetFont('arial_ce','',6);	
	
	$faktura->MultiCell(300, 10, "--------------------------\n".__t('The signature of the person authorized to issue an invoice')."" , 0, 'L', 0);
	
	$faktura->SetXY(365, $Y);
	
	$faktura->MultiCell(200, 10, "--------------------------\n".__t('The signature of the person authorized to receive the invoice')."" , 0, 'R', 0);
	
	$Y += 75;
	
	$faktura->SetXY(28, $Y);
	
	$faktura->MultiCell(0, 10, " " , 0, 'C', 0);
	
	$Y += 25;
	$faktura->SetXY(28, $Y);

	$rand = rand(1,100);
	
	$file_name = 'uploads/pdf/fv_'.md5($id).'.pdf';
	
		if( $preview ) {
			$faktura->Output();
			
		} else {
			$faktura->Output($file_name,'F');	
					
			$invoice->file_name = $file_name;
			$invoice->save();
			
			$this->redirect($file_name);
		}
		
		} else {
			$this->redirect('account/order');
		}
		exit;
	
	}	
	
	public function action_invoice() {
		
		$preview = true;
		
		$id = Request::current()->param('id');

		if( !Auth::instance()->logged_in() ) $this->redirect('/');
		
		$user_id = Auth::instance()->get_user()->id;
		
		

		$invoice = ORM::Factory('invoice')->where('id','=', $id)->where('customers_id','=', $user_id)->find();
		
		$user = ORM::Factory('User', $invoice->user_id); // Seller
		$customer = ORM::Factory('User', $invoice->customers_id); 
		
		if( $invoice->loaded() ) {
	
		defined('FPDF_FONTPATH') OR define('FPDF_FONTPATH','modules/fpdf/font/');
	
	$height = 10;
	
	require_once('modules/fpdf/fpdf.php');
	$faktura = new FPDF();
	$faktura->SetUTF8(true);
	$faktura->SetDisplayMode('real', 'single');
	$faktura->Open();
	$faktura->AddPage();
	$faktura->AddFont('arial_ce', "", "arial_ce.php");

	$faktura->SetCompression(false);  //włącza kompresję dokumentu

	/* a poniższe tylko dla ambitnych */
	$faktura->SetAuthor('Faktura VAT');  //ustawia autora dokumentu
	$faktura->SetCreator('Faktura VAT');  //ustawia generator dokumentu
	$faktura->SetSubject('Faktura VAT');  //ustawia temat dokumentu
	$faktura->SetTitle('Faktura VAT');  //ustawia tytuł dokumentu

	$faktura->SetDisplayMode(200);  //domyślne powiększenie dokumentu w przeglądarce
	//$faktura->SetMargins(10, 10 , 10);  //ustawia marginesy dla dokumentu
	//$faktura->Image('images/logo.jpg', 28, 15,127,77);					
	
	$z_x = 237;
	$y = 20;
	$faktura->SetFont('arial_ce','',11);	
	$faktura->MultiCell(0, $height-10,  'Data wystawienia: '.$invoice->date, 0, 'R', 0);
	
	$faktura->MultiCell(0, $height+20,  'Data sprzedaży: '.$invoice->date, 0, 'R', 0);
		
	$y += 30;
	//if( !empty( $user->logo ) ) {
	//$faktura->Image($user->logo, 10, 20, 193, 59); 
	//}
	
	$faktura->SetFont('arial_ce','',22);	
	$faktura->MultiCell(0, $height+15, 'FAKTURA VAT', 0, 'C', 0);						
							
	$y += 5;				
	$faktura->SetFont('arial_ce','',12);		
	$faktura->MultiCell(0, $height,  'F/'.$invoice->id, 0, 'C', 0);
	
	$y += 5;				
	$faktura->SetFont('arial_ce','',6);		
	$faktura->MultiCell(0, $height,  __t('oryginał/kopia'), 0, 'C', 0);

	$faktura->SetFont('arial_ce','',11);	
	$faktura->SetXY(28, 112);
	$faktura->SetFillColor(170,170,170);
	$faktura->MultiCell(260, 20,  __t('Sprzedawca'), 1, 'C', 1);
	$faktura->MultiCell(260, 20,  $user->company, 'LRT', 'L', 0);
	$faktura->MultiCell(260, 20,  $user->street, 'LR', 'L', 0);
	$faktura->MultiCell(260, 20,  $user->city, 'LR', 'L', 0);
	$faktura->MultiCell(260, 20,  $user->nip, 'LRB', 'L', 0);
	
	$faktura->SetXY(305, 112);
	$faktura->MultiCell(260, 20,  __t('Nabywca'), 1, 'C', 1);
	$faktura->SetXY(305, 132);		
	$faktura->MultiCell(260, 20,  $customer->company.' '.$customer->firstname.' '.$customer->lastname, 'LRT', 'L', 0);
	$faktura->SetFont('arial_ce','',12);		
	$faktura->SetXY(305, 152);
	$faktura->MultiCell(260, 20,  $customer->street, 'LR', 'L', 0);
	$faktura->SetXY(305, 172);
	$city = $customer->city;
	$faktura->MultiCell(260, 20,  $customer->postcode.' '.$city, 'LR', 'L', 0);
	$faktura->SetXY(305, 192);
	$faktura->MultiCell(260, 20,  @$customer->nip, 'LRB', 'L', 0);
	
	$faktura->SetFillColor(255,255,255);
	
	$faktura->SetXY(28, 230);
	
	$faktura->SetFont('arial_ce','',6);	
	
	$faktura->MultiCell(15, 25, __t("Lp"), 1, 'C', 0);
	$faktura->SetXY(43, 230);
	$faktura->MultiCell(280, 25, __t("Nazwa"), 1, 'L', 0);
	$faktura->SetXY(323, 230);
	$faktura->MultiCell(30, 25, __t("PKWiU"), 1, 'C', 0);
	$faktura->SetXY(353, 230);
	$faktura->MultiCell(20, 25, __t("Ilość"), 1, 'C', 0);
	$faktura->SetXY(373, 230);
	$faktura->MultiCell(50, 25, __t("Cena jedn. netto"), 1, 'C', 0);
	$faktura->SetXY(423, 230);
	$faktura->MultiCell(40, 25, __t("Wart. netto"), 1, 'C', 0);
	$faktura->SetXY(463, 230);
	$faktura->MultiCell(60, 25, __t("Podatek"), 1, 'C', 0);
	$faktura->SetXY(523, 230);
	$faktura->MultiCell(42, 25, __t("Wart. brutto"), 1, 'C', 0);
	
//	$faktura->SetFont('arial_ce','',6);		
	
	$Y_POS = 255;
	
	$wartosc_netto = 0;
	$podatek = 0;
	$wartosc_brutto = 0;
	
	$suma_wartosc_netto = 0;
	$suma_podatek = 0;
	$suma_wartosc_brutto = 0;	
	
	$suma_wartosc_netto23 = 0;
	$suma_podatek23 = 0;
	$suma_wartosc_brutto23 = 0;	
	
	$suma_wartosc_netto8 = 0;
	$suma_podatek8 = 0;
	$suma_wartosc_brutto8 = 0;	
	
	$suma_wartosc_netto3 = 0;
	$suma_podatek3 = 0;
	$suma_wartosc_brutto3 = 0;	
	
	$suma_wartosc_netto0 = 0;
	$suma_podatek0 = 0;
	$suma_wartosc_brutto0 = 0;	
	
	$suma_wartosc_nettozw = 0;
	$suma_podatekzw = 0;
	$suma_wartosc_bruttozw = 0;	
	
	$data['titleposition_1'] = __t($invoice->title);
	$data['jmposition_1'] = __t('szt.');
	$data['pkwiu_1'] = '';
	$data['amountposition_1'] = 1;
	$data['priceposition_1'] = $invoice->price;
	//$data['rateposition_1'] = $invoice->tax;
	$data['rateposition_1'] = 21;

	for( $i = 1; $i < 2; $i++ ) {
	
	$titleposition = $data['titleposition_'.$i];
	$jmposition = $data['jmposition_'.$i];
	$pkwiu = $data['pkwiu_'.$i];
	$amountposition = $data['amountposition_'.$i];
	$priceposition = $data['priceposition_'.$i];
	$rateposition = $data['rateposition_'.$i];

	if( !empty( $titleposition ) ) {

		$wartosc_brutto = $invoice->price;
			
		$wartosc_netto = $invoice->netto;
		
		//euro
		$podatek = 21;

		$suma_wartosc_brutto += $wartosc_brutto;

		$suma_wartosc_netto += $wartosc_netto;

		$suma_podatek += $podatek;

		$faktura->SetXY(28, $Y_POS);
		
		$faktura->MultiCell(15, 25, $i.".", 1, 'C', 0);
		$faktura->SetXY(43, $Y_POS);
		$faktura->MultiCell(280, 25, $titleposition, 1, 'L', 0);
		$faktura->SetXY(323, $Y_POS);
		$faktura->MultiCell(30, 25, $pkwiu, 1, 'C', 0);
		$faktura->SetXY(353, $Y_POS);
		$faktura->MultiCell(20, 25, $amountposition, 1, 'C', 0);
		$faktura->SetXY(373, $Y_POS);
		$faktura->MultiCell(50, 25, number_format($wartosc_netto, 2, ',', ' '), 1, 'C', 0);
		$faktura->SetXY(423, $Y_POS);
		$faktura->MultiCell(40, 25, number_format($wartosc_netto, 2, ',', ' '), 1, 'C', 0);
		$faktura->SetXY(463, $Y_POS);
		$faktura->MultiCell(20, 25, "21%", 1, 'C', 0);
		$faktura->SetXY(483, $Y_POS);
		$faktura->MultiCell(40, 25, number_format($podatek, 2, ',', ' '), 1, 'C', 0);
		$faktura->SetXY(523, $Y_POS);
		$faktura->MultiCell(42, 25, number_format($wartosc_brutto, 2, ',', ' '), 1, 'C', 0);
		
		$Y_POS = $Y_POS+25;
		
	}
	
	}
	
	//$suma_wartosc_brutto = number_format($invoice->price, 2, ',', ' ');

	$faktura->SetXY(323, $Y_POS);
	$faktura->MultiCell(30, 25, __t("Razem"), 1, 'C', 0);
	$faktura->SetXY(353, $Y_POS);
	$faktura->MultiCell(20, 25, "", 1, 'C', 0);
	$faktura->SetXY(373, $Y_POS);
	$faktura->MultiCell(50, 25, "", 1, 'C', 0);
	$faktura->SetXY(423, $Y_POS);
	$faktura->MultiCell(40, 25, number_format($suma_wartosc_netto, 2, ',', ' '), 1, 'C', 0);
	$faktura->SetXY(463, $Y_POS);
	$faktura->MultiCell(20, 25, "X", 1, 'C', 0);
	$faktura->SetXY(483, $Y_POS);
	$faktura->MultiCell(40, 25, number_format($suma_podatek, 2, ',', ' '), 1, 'C', 0);
	$faktura->SetXY(523, $Y_POS);
	$faktura->MultiCell(42, 25,  number_format($invoice->price, 2, ',', ' '), 1, 'C', 0);

	$Y_POS = $Y_POS+25;

	$Y = $faktura->getY()+20;

	$slownie = cms::words2pay($suma_wartosc_brutto);

	$faktura->SetXY(28, $Y);
	$payment_method = __t('przelew');
	//$payment_deadline = date('d-m-Y', strtotime($invoice->date)+300*24*Kohana::$config->load('site.maturity'));
	$payment_deadline = __t('zapłacono');
	$payout = $suma_wartosc_brutto; // 0,00
	
	$faktura->MultiCell(0, 15, __t("Termin płatności").": ".$payment_deadline."\n".__t("Sposób płatności").": ".$payment_method."\n".__t("Zapłacono").": ".$payout." euro\n".__t("Wartosc brutto").": ".$suma_wartosc_brutto." euro\n".__t("Słownie").": ".$slownie."\n".__t("Nazwa banku").": ".$user->billing_bank."\n".__t("Numer konta").": ".$user->billing_bank_account , 1, 'L', 0);
	
	//$faktura->SetXY(415, $Y);
	
	//$faktura->MultiCell(150, 25, "Całkowita kwota:  10 000,00 PLN\nZapłacono: 10 000,00 PLN\nDo zapłaty: 10 000,00 PLN" , 1, 'R', 0);
	
	$Y += 145;
	
	$faktura->SetXY(28, $Y);
	
	$faktura->SetFont('arial_ce','',6);	
	
	$faktura->MultiCell(300, 10, "--------------------------\nPodpis osoby upoważnionej do\nwystawienia faktury" , 0, 'L', 0);
	
	$faktura->SetXY(365, $Y);
	
	$faktura->MultiCell(200, 10, "--------------------------\nPodpis osoby upoważnionej do\nodbioru faktury" , 0, 'R', 0);
	
	$Y += 75;
	
	$faktura->SetXY(28, $Y);
	
	$faktura->MultiCell(0, 10, " " , 0, 'C', 0);
	
	$Y += 25;
	$faktura->SetXY(28, $Y);

	$rand = rand(1,100);
	
	$file_name = 'uploads/pdf/fv_'.md5($id).'.pdf';
	
		if( $preview ) {
			$faktura->Output();
			
		} else {
			$faktura->Output($file_name,'F');	
					
			$invoice->file_name = $file_name;
			$invoice->save();
			
			$this->redirect($file_name);
		}
		
		} else {
			$this->redirect('account/earning');
		}
		exit;
	
	}
	
   public function action_edit() {

        $this->template->title = $title = __t('Moje dane');

		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
		
		$user_id = Auth::instance()->get_user()->id;
	
		$user = ORM::Factory('user', $user_id );
		$_user = ORM::Factory('user', $user_id );
		
		$view = View::factory('account/edit');
		
		if ($_POST) {
				$data = ac_form::clear_form_data($_POST);
				
				if( !empty( $data['description_tab'] ) AND $data['description_tab'] == "change_description_file" ) {
				
					$user->description = $data['description'];
				
					if( $_FILES ) {
					$uploads_dir = 'uploads/user/images/';
					
					
						$name = $_FILES['logo']['name'];
						$tmp_name = $_FILES['logo']['tmp_name'];
						if( move_uploaded_file($tmp_name, "$uploads_dir/$name") AND !empty( $name )) {
							$user->logo = $name;
						}
					
					}
				}
				
				
				if( !empty( $data['action'])) {
					if( $data['action'] != "allegro" ) {
						
					
						$test_user = ORM::Factory('user')
									->where('username','=', $data['username'])
									->where('id','!=', $user_id)
									->find();
									
						if( $test_user->loaded() ) {
							Message::success(__t('Użytkownik już istnieje w bazie danych.'));
							$this->redirect('account/edit');
						} 
					}
					$user->newsletter = 0;
					$user->newsletter2 = 0;
					
					foreach( $data as $key => $val) {
						if($key != 'action' AND $key != 'gallery_type' ) {
							$user->{$key} = @$val;
						}
					}
					
				
				} else {
				
				
				
				if( !empty( $data['email'] ) ) {
					
					if( $user->email ==  $data['email'] ) {
						Message::success(__t('Podany e-mail jest taki sam jak bieżący.'));
						$this->redirect('account/edit');
					} 
					
						$title = __t('Potwierdzenie emaila');
				   
						$link = "<a href='http://".Kohana::$config->load('site.domain')."/Account/activate_email/".$user->email."/".md5($user->id)."/".$data['email']."' target='blank'>Aktywacja</a>";
					
						$e_content = View::factory('email/change_email')
												->bind('link', $link)
												->bind('user', $user);
						$from = array();
						$from[0] = Kohana::$config->load('site.email_business');
						$from[1] = Kohana::$config->load('site.appName');
					
						if(aurora::standardEmail( $data['email'], $title,  $e_content) ) {
							
							Message::success('Odbierz e-mail aktywacyjny, aby zmienić email w serwisie.');
							$this->redirect('account/edit');
						} else {
						
						}
						
						
				}
				
				if( !empty( $data['password'] ) ) {
					
					$user_password = ORM::Factory('User', $user_id );
					
					if( $user_password->password == Auth::instance()->hash($data['oldpassword']) ) {
				
					if( $user_password->password ==  Auth::instance()->hash($data['password']) ) {
					Message::success(__t('Podane hasło jest takie same jak bieżące.'));
					$this->redirect('account/edit');
					} 
					$user_password->password  = $data['password'];
					$user_password->save();
					}
					else {
					Message::success(__t('Hasła są różne.'));
					$this->redirect('account/edit');
					}
					
					Message::success(__t('Zmiany zostały zapisane!'));
					$this->redirect('account/edit');
				
				} 
				
				}
				
				$user->is_change = 1;
				$user->save();
				
				Message::success(__t('Zmiany zostały zapisane!'));
				$this->redirect('account/edit');
			
		}

        $this->template->content = $view
                        ->bind('title', $title)
						->bind('user', $user)
						->bind('_user', $_user)
						->bind('gallery', $gallery)
                        ->bind('errors', $errors)
						->bind('message_ok', $message_ok)
                        ->bind('message', $message);
    }	
	
    public function action_news() {
		
		$action = Request::current()->param('act');
		$id = Request::current()->param('id');
		$children = array();
		
        $this->template->title = $title = 'Twoje aktualności';
		
		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
	
		$user_id = Auth::instance()->get_user()->id;
		$user = ORM::Factory('User', $user_id);
		if( empty( $action ) ) {
			$view = View::Factory('account/news');	
			$news = ORM::Factory('moderator_news')->where('user_id','=', $user_id)->or_where('owner_id','=', $user_id)->find_all();
			
		} else {
			$children = ORM::Factory('user')->where('parent','=', $user_id)->find_all();
			
			$view = View::Factory('account/news_edit');
			if( !empty( $id) ) {
				$news = ORM::Factory('moderator_news', $id);
			} else {
					$news = ORM::Factory('moderator_news');
			}
			
			if ($_POST) {
				
				$data = ac_form::clear_form_data($_POST);
				
				$get_gallery = ORM::Factory('moderator_gallery')->where('user_id','=', (int)$data['parent'])->find();
				$news->title = $data['title'];
				$news->description = $data['description'];
				$news->user_id = $get_gallery->gallery_id;
				$news->owner_id = $user_id;
				
				if( $_FILES ) {
					$uploads_dir = 'uploads/article/';
						$name = $_FILES['thumb']['name'];
						$tmp_name = $_FILES['thumb']['tmp_name'];
						if( move_uploaded_file($tmp_name, "$uploads_dir/$name")) {
							$news->thumb = "$uploads_dir/$name";
						}	
				}
				
				$news->date = strtotime($data['date']);
				$news->status = 0;
				if( !empty($data['fb_event']) ) {
					$news->fb_event =  1;
				}
				$news->is_change = 1;
				$news->save();
				
				cms::confirmAdmin(Request::current()->controller(), Request::current()->action());
				Message::success(__t('Zmiany zostały zapisane i oczekują na akceptację moderatora!'));
				$this->redirect('account/news');
			
			}
		}
		
		
		if( $action == "delete" AND !is_null( $id ) ) {
			
			ORM::Factory('News')->where('id','=', $id)->where('user_id','=',$user_id)->find()->delete();
			ORM::Factory('moderator_news')->where('id','=', $id)->where('user_id','=',$user_id)->find()->delete();
			
			Message::success('The action completed successfully.');
			$this->redirect('account/news');
		}
		
        $this->template->content = $view
                        ->bind('title', $title)
						->bind('children', $children)
						->bind('news', $news)
						->bind('user', $user)
						->bind('user_id', $user_id)
                        ->bind('errors', $errors)
						->bind('message_ok', $message_ok)
                        ->bind('message', $message);
    }
	
	public function action_article() {
		
		$action = Request::current()->param('act');
		$id = Request::current()->param('id');
		$children = array();
		
        $this->template->title = $title = 'Twoje artykuły';
		
		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
	
		$user_id = Auth::instance()->get_user()->id;
		$user = ORM::Factory('User', $user_id);
		if( empty( $action ) ) {
			$view = View::Factory('account/article');	
			$news = ORM::Factory('moderator_article')->where('user_id','=', $user_id)->or_where('owner_id','=', $user_id)->find_all();
			
		} else {
			$children = ORM::Factory('user')->where('parent','=', $user_id)->find_all();
			
			$view = View::Factory('account/article_edit');
			if( !empty( $id) ) {
				$news = ORM::Factory('moderator_article', $id);
			} else {
					$news = ORM::Factory('moderator_article');
			}
			
			if ($_POST) {
			
				$data = ac_form::clear_form_data($_POST);
				
				$get_gallery = ORM::Factory('moderator_gallery')->where('user_id','=', (int)$data['parent'])->find();
				
				$news->title = $data['title'];
				$news->description = $data['description'];
				$news->date = time();
				$news->user_id = $get_gallery->gallery_id;
				$news->owner_id = $user_id;
				$news->status = 0;
				$news->is_change = 1;
				$news->save();
				
				cms::confirmAdmin(Request::current()->controller(), Request::current()->action());
				Message::success(__t('Zmiany zostały zapisane i oczekują na akceptację moderatora!'));
				$this->redirect('account/article');
			
			}
		}
		
		
		if( $action == "delete" AND !is_null( $id ) ) {
			
			ORM::Factory('article')->where('id','=', $id)->where('user_id','=',$user_id)->find()->delete();
			ORM::Factory('moderator_article')->where('id','=', $id)->where('user_id','=',$user_id)->find()->delete();
			
			Message::success('The action completed successfully.');
			$this->redirect('account/article');
		}
		
        $this->template->content = $view
                        ->bind('title', $title)
						->bind('children', $children)
						->bind('news', $news)
						->bind('user', $user)
						->bind('user_id', $user_id)
                        ->bind('errors', $errors)
						->bind('message_ok', $message_ok)
                        ->bind('message', $message);
    }

    public function action_item() {

		$action = Request::current()->param('act');
		$id = Request::current()->param('id');
		
		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
	
		$user_id = Auth::instance()->get_user()->id;
		
		if( !empty( $_GET['reactive'] ) ) {
			$reactive = addslashes($_GET['reactive']);
			$item = ORM::Factory('item')->where('id','=', $reactive)->where('owner_id','=', $user_id)->find();
			if( $item->loaded() ) {
				$item->lifetime_date = date('Y-m-d H:i:s', time()+($item->lifetime*24*3600));
				$item->save();	
				
				$moderator_item = ORM::Factory('moderator_item')->where('id','=', $reactive)->find();
				
				$moderator_item->lifetime_date = date('Y-m-d H:i:s', time()+($item->lifetime*24*3600));
				$moderator_item->save();
				Message::success('The action completed successfully.');
			}
			
			$this->redirect('account/item');
		}
		
        $this->template->title = $title = __t('Twoje kody');
		$sort = !empty($_GET['sort']) ? addslashes($_GET['sort']) : 'id';
		
		$categories_id = !empty($_GET['categories_id']) ? addslashes($_GET['categories_id']) : '';
		$techniques_id = !empty($_GET['techniques_id']) ? addslashes($_GET['techniques_id']) : '';
		$topics_id = !empty($_GET['topics_id']) ? addslashes($_GET['topics_id']) : '';
		$types_id = !empty($_GET['types_id']) ? addslashes($_GET['types_id']) : '';
		$tags = !empty($_GET['tags']) ? addslashes($_GET['tags']) : '';
		$price = !empty($_GET['price']) ? addslashes($_GET['price']) : '';
		
		
		$user = ORM::Factory('User', $user_id);
		$images = array();
		$children = array();
		
		if( !empty ($_GET['delete'] ) ) {
			$d = addslashes($_GET['delete']);
			$f = ORM::Factory('item_image')->where('id','=', $d)->find();
			if( $id == $f->item_id ) {
				$f->delete();
			
				$this->redirect('account/item/edit/'.$id);
			}
		}
		
		if( empty( $action ) ) {
			$view = View::Factory('account/item');	
			$item = ORM::Factory('item')
					->and_where_open()
					->where('owner_id','=', $user_id)
					->or_where('user_id','=', $user_id)
					->and_where_close();
					
					
					
			if( !empty( $price ) ) {
				$price = explode("_", $price);
				$item = $item
							->where('moderator_item.price','>=', $price[0])
							->where('moderator_item.price','=<', $price[1]);
			}
			
			if( !empty( $categories_id ) ) {
				$item = $item
							->where('moderator_item.categories_id','=', $categories_id);
			}
			
			if( !empty( $techniques_id ) ) {
				$item = $item
							->where('moderator_item.techniques_id','=', $techniques_id);
			}
			
			if( !empty( $topics_id ) ) {
				$item = $item
							->where('moderator_item.topics_id','=', $topics_id);
			}
			
			if( !empty( $tags ) ) {
				$item = $item
						->where('moderator_item.tags','LIKE', '%'.$tags.'%');
			}
			
			$item = $item->find_all();
			
			$item2 = DB::Query(Database::SELECT, "SELECT items.* FROM items LEFT JOIN users ON users.id = items.owner_id WHERE users.parent = '$user_id'")->as_object()->execute();

		} else {
			$view = View::Factory('account/item_edit');
			$children = ORM::Factory('user')->where('parent','=', $user_id)->find_all();
			$item_type_link = array();
			$item_topic_link = array();
			
			if( !empty( $id) ) {
				$item = ORM::Factory('item', $id);
				
				$images = ORM::Factory('item_image')->where('item_id','=', $id)->order_by('order','asc')->find_all();
				
				foreach( ORM::Factory('item_type_link')->where('id','=', $id)->find_all() as $itl ) {
					$item_type_link[] = $itl->types_id;
				}
			} 
			
			if ($_POST) {
			
				//$data = ac_form::clear_form_data($_POST);
				$data = $_POST;
				
				
					if( empty( $id) ) {
						$item = ORM::Factory('item');
					} else {
						//if( $y == 1 ) 
							$item = ORM::Factory('item', $id);
						//else
							//$item = ORM::Factory('item');
					}
					$item->title = empty($data['title']) ? 'Bez nazwy' : $data['title'];
					$item->description = $data['description'];
					
					//$item->personal_delivery = (!empty($data['personal_delivery']) OR ($data['main_type'] == "print")) ? 1: 0;
				
				
					$item->tags = $data['tags'];
				
					//$item->file = @$data['upload_file'];
					
					// zerowanie
					$item->manual = 0;
					$item->print = 0;
					
					$item->date = time();
					$item->shipping_cost = (int)@$data['shipping_cost'];
					if( empty( $data['parent'] ) )
						$item->user_id = $user_id;
					else 
						$item->user_id = (int)@$data['parent'];
					
					$item->owner_id = $user_id;
					$item->status = 1;
					$item->save();
					
					if( !empty( $data['categories_id_own'] ) ) {
						$c = ORM::Factory('item_category');
						$c->title = $data['categories_id_own'];
						$c->languages_id = 1;
						$c->status = 0;
						$c->save();
						$item->categories_id = $c->id;
					} else {
						$item->categories_id = $data['categories_id'];
					}
					
					if( !empty( $data['types_id_own'] ) ) {
						$c = ORM::Factory('item_type');
						$c->title = $data['types_id_own'];
						$c->languages_id = 1;
						$c->status = 0;
						$c->save();
						
						$itl = ORM::Factory('item_type_link');
						$itl->id = $item->id;
						$itl->types_id = $c->id;
						$itl->save();
								
						$item->types_id = $item->id;
					} else {
						$itl = ORM::Factory('item_type_link')->where('id','=', $item->id)->find_all();
						foreach( $itl as $d ) $d->delete();
						// Dodaję...
						if( !empty( $data['types_id']) AND is_array( $data['types_id'] ) )  {
							foreach( $data['types_id'] as $val ) {
								if( !empty( $val ) ) {
									$itl = ORM::Factory('item_type_link');
									$itl->id = $item->id;
									$itl->types_id = $val;
									$itl->save();
								}
							}
							$item->types_id = $item->id;
						}
				
					}
					
							
							
					//
					
					$item->save();
				
					//$item->thumb = $data['upload_thumb'.$y];
					
					//$item->is_change = 1;
					//$item->save();
				
				
				
				cms::confirmAdmin(Request::current()->controller(), Request::current()->action());
				Message::success(__t('Zmiany zapisane i czekają na akceptację moderatora!'));
				$this->redirect('account/item');
			
			}
		}
		
		
		if( $action == "delete" AND !is_null( $id ) ) {
			
			ORM::Factory('item')->where('id','=', $id)->where('owner_id','=',$user_id)->find()->delete();
			$t = ORM::Factory('item')->where('id','=', $id)->where('owner_id','=',$user_id)->find();
			
			
			if( $t->loaded() ) $t->delete();
			
			Message::success(__t('The action completed successfully.'));
			$this->redirect('account/item');
		}
		
		
		$types = ORM::Factory('item_type')->order_by('order','asc')->find_all();
		
		$categories = ORM::Factory('item_category')->order_by('order','asc')->find_all();
		
        $this->template->content = $view
                        ->bind('title', $title)
						->bind('item', $item)
						->bind('item2', $item2)
						->bind('sort', $sort)
						->bind('user', $user)
						->bind('user_id', $user_id)
						->bind('children', $children)
						->bind('techniques', $techniques)
						->bind('types', $types)
						->bind('item_type_link', $item_type_link)
	
						->bind('topics', $topics)
						->bind('categories', $categories)
						->bind('images', $images)
                        ->bind('errors', $errors)
						->bind('message_ok', $message_ok)
                        ->bind('message', $message);
    }
	
	public function action_comment() {
		
		$action = Request::current()->param('act');
		$id = Request::current()->param('id');
		
        $this->template->title = $title = __t('Twoje komentarze');
		
		if( !Auth::instance()->logged_in() ) $this->redirect('Login');
	
		$user_id = Auth::instance()->get_user()->id;
		$user = ORM::Factory('User', $user_id);
		
		$images = array();
		
		if( empty( $action ) ) {
			$view = View::Factory('account/comment');	
			$comment = ORM::Factory('moderator_page_comment')->where('user_id','=', $user_id)->find_all();
		} else {
			$view = View::Factory('account/comment_edit');
			if( !empty( $id) ) {
				$comment = ORM::Factory('moderator_page_comment', $id);
				
			} else {
					$comment = ORM::Factory('moderator_page_comment');
			}
			
			if ($_POST) {
			
				$data = ac_form::clear_form_data($_POST);
		
					foreach( $data as $key => $val) {
						if($key != 'action' ) {
							$comment->{$key} = @$val;
						}
					}
				
				$comment->save();
				
				cms::confirmAdmin(Request::current()->controller(), Request::current()->action());
				Message::success(__t('Zmiany zostały zapisane i oczekują na akceptację moderatora!'));
				$this->redirect('account/comment');
			
			}
		}
		
		
		if( $action == "delete" AND !is_null( $id ) ) {
			
			$test = ORM::Factory('page_comment')->where('id','=', $id)->where('user_id','=',$user_id)->find();
			if( $test->loaded() ) $test->delete();
			ORM::Factory('moderator_page_comment')->where('id','=', $id)->where('user_id','=',$user_id)->find()->delete();
			
			Message::success(__t('The action completed successfully.'));
			$this->redirect('account/comment');
		}
		
        $this->template->content = $view
                        ->bind('title', $title)
						->bind('comment', $comment)
						->bind('user', $user)
                        ->bind('errors', $errors)
						->bind('message_ok', $message_ok)
                        ->bind('message', $message);
    }		
}