<?php

/* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

namespace AdminModule;
use \Nette\Application\UI\Form;

 
class StenataPresenter extends BasePresenter {
    
    private $vrhyModel;
    private $chovPlanyModel;
    
    public function __construct(\VrhyModel $vrhyModel, \ChovPlanyModel $chovPlanyModel) {
        $this->vrhyModel = $vrhyModel;
        $this->chovPlanyModel = $chovPlanyModel;
    }
   
    public function renderList() {
      
        $this->template->aktualni = $this->vrhyModel->getAktualniVrhy(); 
        $this->template->ocekavane = $this->vrhyModel->getOcekavaneVrhy(); 
        $this->template->plany = $this->vrhyModel->getPlany(); 
    }
   
    public function renderArchivVrhu() {
        $this->template->archivni = $this->vrhyModel->getArchivniVrhy(); 
    }
    
   
    
    public function renderAddAktualni() {
        
    }
   
    
    public function renderAddOcekavany() {
        
    }
    
  
    public function renderEditAktualni($id) {
        
    }
    
    public function renderAddPlan() {
        
    }
    public function renderEditPlan($id) {
        
    }
    
    public function renderEditOcekavany($id) {
        
    }
    
    protected function createComponentAddOcekavanyForm() {
    
        $form = new Form();
        $form->addText("stanice", "Stanice*: ")
            ->setRequired('Vyplňte název stanice!');
        $form->addText("www", "Adresa webu: ");
        $form->addText("datum_vrhu", "Očekávané datum vrhu*: ")
            ->setRequired('Vyplňte očekávané datum vrhu!');
        $form->addText("otec", "Otec*: ")
            ->setRequired('Vyplňte jméno otce!');
        $form->addText("matka", "Matka*: ")
            ->setRequired('Vyplňte jméno matky!');
        $form->addTextArea("kontakt", "Kontakt*: ");
        
        $form->addSubmit("send", "Odeslat");
        $form->onSuccess[] = $this->addOcekavanyFormSucceeded;

        return $form;
    }

    public function addOcekavanyFormSucceeded(Form $form) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro vytvoření, nebo editování příspěvku se musíte přihlásit.');
    }
        $values = $form->getValues();
        $values->aktualni = 0;
        $this->vrhyModel->addVrh($values);
        $this->flashMessage('Vrh byl přidán', 'info');
        $this->redirect("Stenata:list");
    }

   protected function createComponentAddAktualniForm() {
    
        $form = new Form();
        $form->addText("stanice", "Stanice*: ")
            ->setRequired('Vyplňte název stanice!');
        $form->addText("www", "Adresa webu: ");
        $form->addText("datum_vrhu", "Datum vrhu*: ")
            ->setRequired('Vyplňte datum vrhu!');
        $form->addText("pocet_stenat", "Počet štěňat (psi+fenky)*: ")
            ->setRequired('Vyplňte počet štěňat!');
        $form->addText("otec", "Otec*: ")
            ->setRequired('Vyplňte jméno otce!');
        $form->addText("matka", "Matka*: ")
            ->setRequired('Vyplňte jméno matky!');
        $form->addTextArea("kontakt", "Kontakt*: ");
        
        $form->addSubmit("send", "Odeslat");
        $form->onSuccess[] = $this->addAktualniFormSucceeded;

        return $form;
    }

    public function addAktualniFormSucceeded(Form $form) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro vytvoření, nebo editování příspěvku se musíte přihlásit.');
    }
        $values = $form->getValues();
        $values->aktualni = 1;
        $this->vrhyModel->addVrh($values);
        $this->flashMessage('Vrh byl přidán', 'info');
        $this->redirect("Stenata:list");
    }

    protected function createComponentEditOcekavanyForm() {
        $vrh = $this->vrhyModel->getVrh($this->getParam('id'));
        $form = new Form();
        $form->addHidden("id")
            ->setDefaultValue($vrh->id);
        $form->addText("stanice", "Stanice*: ")
            ->setRequired('Vyplňte název stanice!')->setDefaultValue($vrh->stanice);
        $form->addText("www", "Adresa webu: ")->setDefaultValue($vrh->www);
        $form->addText("datum_vrhu", "Očekávané datum vrhu*: ")
            ->setRequired('Vyplňte očekávané datum vrhu!')->setDefaultValue($vrh->datum_vrhu);
        $form->addText("otec", "Otec*: ")
            ->setRequired('Vyplňte jméno otce!')->setDefaultValue($vrh->otec);
        $form->addText("matka", "Matka*: ")
            ->setRequired('Vyplňte jméno matky!')->setDefaultValue($vrh->matka);
        $form->addTextArea("kontakt", "Kontakt*: ")->setDefaultValue($vrh->kontakt);
        
        $form->addSubmit("send", "Odeslat");
        $form->onSuccess[] = $this->editOcekavanyFormSucceeded;

        return $form;
    }

    public function editOcekavanyFormSucceeded(Form $form) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro vytvoření, nebo editování příspěvku se musíte přihlásit.');
    }
        $values = $form->getValues();

        $this->vrhyModel->updateVrh($values->id,$values);
        $this->flashMessage('Vrh byl aktualizován', 'info');
        $this->redirect("Stenata:list");
    }

    protected function createComponentEditAktualniForm() {
        $vrh = $this->vrhyModel->getVrh($this->getParam('id'));
        $form = new Form();
        $form->addHidden("id")
            ->setDefaultValue($vrh->id);
        $form->addText("stanice", "Stanice*: ")
            ->setRequired('Vyplňte název stanice!')->setDefaultValue($vrh->stanice);
        $form->addText("www", "Adresa webu: ")->setDefaultValue($vrh->www);
        $form->addText("datum_vrhu", "Očekávané datum vrhu*: ")
            ->setRequired('Vyplňte očekávané datum vrhu!')->setDefaultValue($vrh->datum_vrhu);
        $form->addText("pocet_stenat", "Počet štěňat (psi+fenky)*: ")
            ->setRequired('Vyplňte počet štěňat!')->setDefaultValue($vrh->pocet_stenat);
        $form->addText("otec", "Otec*: ")
            ->setRequired('Vyplňte jméno otce!')->setDefaultValue($vrh->otec);
        $form->addText("matka", "Matka*: ")
            ->setRequired('Vyplňte jméno matky!')->setDefaultValue($vrh->matka);
        $form->addTextArea("kontakt", "Kontakt*: ")
            ->setRequired('Vyplňte kontakt!')->setDefaultValue($vrh->kontakt);
        
        $form->addSubmit("send", "Odeslat");
        $form->onSuccess[] = $this->editOcekavanyFormSucceeded;

        return $form;
    }

    public function editAktualniFormSucceeded(Form $form) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro vytvoření, nebo editování příspěvku se musíte přihlásit.');
    }
        $values = $form->getValues();

        $this->vrhyModel->updateVrh($values->id,$values);
        $this->flashMessage('Vrh byl aktualizován', 'info');
        $this->redirect("Stenata:list");
    }

    protected function createComponentAddPlanForm() {

        $form = new Form();
        $form->addText("stanice", "Stanice*: ")
            ->setRequired('Vyplňte název stanice!');
        $form->addText("www", "Adresa webu: ");
        $form->addTextArea("kontakt", "Kontakt*: ");
        
        $form->addSubmit("send", "Odeslat");
        $form->onSuccess[] = $this->addPlanFormSucceeded;

        return $form;
    }

    public function addPlanFormSucceeded(Form $form) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro vytvoření, nebo editování příspěvku se musíte přihlásit.');
    }
        $values = $form->getValues();
        $values->plan = 1;
        $values->aktualni = 0;
        $this->vrhyModel->addVrh($values);
        $this->flashMessage('Chovatelský plán byl přidán', 'info');
        $this->redirect("Stenata:list");
    }

    protected function createComponentEditPlanForm() {

        $vrh = $this->vrhyModel->getVrh($this->getParam('id'));
        $form = new Form();
        $form->addHidden("id")
            ->setDefaultValue($vrh->id);
        $form->addText("stanice", "Stanice*: ")
            ->setRequired('Vyplňte název stanice!')->setDefaultValue($vrh->stanice);
        $form->addText("www", "Adresa webu: ")->setDefaultValue($vrh->www);
        $form->addTextArea("kontakt", "Kontakt*: ")
            ->setRequired('Vyplňte kontakt!')->setDefaultValue($vrh->kontakt);
        
        $form->addSubmit("send", "Odeslat");
        $form->onSuccess[] = $this->editPlanFormSucceeded;

        return $form;
    }

    public function editPlanFormSucceeded(Form $form) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro vytvoření, nebo editování příspěvku se musíte přihlásit.');
    }
        $values = $form->getValues();
        //$values->plan = 1;
        $this->vrhyModel->updateVrh($values->id,$values);
        $this->flashMessage('Chovatelský plán byl upraven', 'info');
        $this->redirect("Stenata:list");
    }

    public function handleDeleteVrh($id) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro smazání příspěvku se musíte přihlásit.');
    }

        $this->vrhyModel->deleteVrh($id);
        $this->flashMessage('Vrh byl smazán', 'info');
        $this->redirect('Stenata:list');
    }
    public function handleArchivovatVrh($id) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro vytvoření, nebo editování příspěvku se musíte přihlásit.');
    }
        $vrh = $this->vrhyModel->getVrh($id);
        $values = array('archiv' => 1);
        $this->vrhyModel->updateVrh($vrh->id, $values);
        $this->flashMessage('Vrh byl zařazen do archivu', 'info');
        $this->redirect('Stenata:list');
    }

    // prida vrh z ocekavanych do aktualnich
    public function handlePridatDoAktualnich($id) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro vytvoření, nebo editování příspěvku se musíte přihlásit.');
    }
        $vrh = $this->vrhyModel->getVrh($this->getParam('id'));
        $values = array('aktualni' => 1);
        $this->vrhyModel->updateVrh($vrh->id, $values);
        $this->flashMessage('Vrh byl zařazen do aktuálních vrhů', 'info');
        $this->redirect('Stenata:list');
    }

        // k chovatelskemu planu vytvori ocekavany vrh
    public function handleVytvorOcekavany($stanice,$www,$kontakt) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro vytvoření, nebo editování příspěvku se musíte přihlásit.');
    }
        $values = array('stanice' => $stanice,'www'=>$www,'kontakt' => $kontakt,'plan'=>0,'aktualni'=>0);
        $this->vrhyModel->addVrh($values);
        $this->flashMessage('Byl vytvořen očekávaný vrh', 'info');
        $this->redirect('Stenata:list');
    }

    // k chovatelskemu planu vytvori aktualni vrh
    public function handleVytvorAktualni($stanice,$www,$kontakt) {
        if (!$this->getUser()->isLoggedIn()) {
        $this->error('Pro vytvoření, nebo editování příspěvku se musíte přihlásit.');
    }
        $values = array('stanice' => $stanice,'www'=>$www,'kontakt' => $kontakt,'aktualni' =>1,'plan'=>0);
        $this->vrhyModel->addVrh($values);
        $this->flashMessage('Byl vytvořen aktuální vrh', 'info');
        $this->redirect('Stenata:list');
    }



    
}
