<?php
/**
 * RadniNalogStavka Model
 * Stavke radnog naloga su ARTIKLI/USLUGE
 * Automobil/Uređaj je dodatna informacija o radnom nalogu (ne stavka)
 */
class RadniNalogStavka extends AppModel {
	var $name = 'RadniNalogStavka';
	var $useTable = 'radni_nalog_stavke';
	
	var $validate = array(
		'article_id' => array(
			'numeric' => array(
				'rule' => array('numeric'),
				'message' => 'Artikl je obavezan',
				'allowEmpty' => false
			),
		),
		'amount' => array(
			'numeric' => array(
				'rule' => array('numeric'),
				'allowEmpty' => true
			),
		),
		'discount' => array(
			'numeric' => array(
				'rule' => array('numeric'),
				'allowEmpty' => true
			),
		),
	);
	
	var $belongsTo = array(
		'RadniNalog' => array(
			'className' => 'RadniNalog',
			'foreignKey' => 'radni_nalog_id'
		),
		'Article' => array(
			'className' => 'Article',
			'foreignKey' => 'article_id'
		)
	);
	
	/**
	 * Izračunaj ukupnu cijenu prije spremanja
	 * price_sell se dohvaća iz Article tablice
	 */
	function beforeSave($options = array()) {
		parent::beforeSave($options);
		
		// Dohvati price_sell iz artikla
		if (!empty($this->data['RadniNalogStavka']['article_id'])) {
			$article = $this->Article->find('first', array(
				'conditions' => array('Article.id' => $this->data['RadniNalogStavka']['article_id']),
				'fields' => array('price_sell'),
				'recursive' => -1
			));
			
			if ($article) {
				$price_sell = floatval($article['Article']['price_sell']);
				$amount = isset($this->data['RadniNalogStavka']['amount']) ? floatval($this->data['RadniNalogStavka']['amount']) : 1;
				$discount = isset($this->data['RadniNalogStavka']['discount']) ? floatval($this->data['RadniNalogStavka']['discount']) : 0;
				
				// Izračunaj ukupnu cijenu: amount * price_sell * (1 - discount/100)
				$this->data['RadniNalogStavka']['price'] = $amount * $price_sell * (1 - $discount / 100);
			}
		}
		
		return true;
	}
}
