dreamjob/app/Model/DreamjobCvEntry.php

144 lines
3.3 KiB
PHP
Raw Permalink Normal View History

2015-03-31 14:49:03 +02:00
<?php
App::uses('AppModel', 'Model');
/**
* MicDjCvEntry Model
*
* @property Category $Category
*/
class DreamjobCvEntry extends AppModel {
/**
* Use database config
*
* @var string
*/
public $useDbConfig = 'dreamjobMain';
/**
* Use table
*
* @var mixed False or table name
*/
public $useTable = 'mic_dj_cv_entry';
/**
* Display field
*
* @var string
*/
public $displayField = 'title';
public $order = array('DreamjobListCvCategory.position','DreamjobCvEntry.enddate desc','DreamjobCvEntry.id');
public function saveAndDelete($data,$old){
$dataSource = $this->getDataSource();
$dataSource->begin();
if(count($data)>0)
$result = $this->saveMany($data);
else $result = true;
if($result){
$array1 = array();
$array2 = array();
foreach($data as $a)
if(isset($a['id']))
$array1[]=$a['id'];
foreach($old as $a)
if(isset($a['id']))
$array2[]=$a['id'];
$diff=array_diff($array2, $array1);
if(count($diff)>0)
$result = $this->delete($diff);
}
if ($result) {
$dataSource->commit();
return true;
} else {
$dataSource->rollback();
}
return false;
}
/**
* Validation rules
*
* @var array
*/
public $validate = array(
'category_id' => array(
'numeric' => array(
'rule' => array('numeric'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'startdate' => array(
'date' => array(
'rule' => array('date'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
'compare' => array(
'rule'=>'compareDates'
)
),
'enddate' => array(
'date' => array(
'rule' => array('date'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'title' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'place' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
);
//The Associations below have been created with all possible keys, those that are not needed can be removed
public function compareDates()
{
return ($this->data[$this->alias]['startdate'] <= $this->data[$this->alias]['enddate']) ? true : false;
}
/**
* belongsTo associations
*
* @var array
*/
public $belongsTo = array(
'DreamjobListCvCategory' => array(
'className' => 'DreamjobListCvCategory',
'foreignKey' => 'category_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
}