<?php
$Permissoes = User::getUser(true);

if ($Permissoes->FUN_TBL_PRODUTOS == 1) {
	
	class ModulosController extends GxController {
	
	
		var $help = 'Cadastro dos produtos vendidos pela empresa e a lista de preços. Acesse no menu Comercial ->Produtos. ';
	
			public function actionView($id) {
			$this->render('view', array(
				'model' => $this->loadModel($id, 'Modulos'),
			));
		}
	
		public function actionCreate() {
			$model = new Modulos;
	
			if (isset($_POST['Modulos'])) {
				$model->setAttributes($_POST['Modulos']);
	
				if ($model->save()) {
					$model->saveDocumentosFiscais();
					if (Yii::app()->getRequest()->getIsAjaxRequest())
						Yii::app()->end();
					else
						$this->redirect(array('view', 'id' => $model->MOD_IDMODULO));
				}
			}
	
			$this->render('create', array( 'model' => $model));
		}
	
		public function actionUpdate($id) {
			$model = $this->loadModel($id, 'Modulos');
	
	
			if (isset($_POST['Modulos'])) {
				$model->setAttributes($_POST['Modulos']);
	
				if ($model->save()) {
					$model->saveDocumentosFiscais();
					$this->redirect(array('view', 'id' => $model->MOD_IDMODULO));
				}
			}
	
			$this->render('update', array(
					'model' => $model,
					)
				);
		}
	
		public function actionDelete($id) {
			if (Yii::app()->getRequest()->getIsPostRequest()) {
				$this->loadModel($id, 'Modulos')->delete();
	
				if (!Yii::app()->getRequest()->getIsAjaxRequest())
					$this->redirect(array('admin'));
			} else
				throw new CHttpException(400, 'Sua solicitação é inválida.');
		}

		public function actionValores() {
			$id_modulo = isset($_GET['modulo']) ? $_GET['modulo'] : '';
			
			$modulo = $this->loadModel($id_modulo, 'Modulos');
			if(!$modulo)
				$this->redirect(array('admin'));

			$model = (isset($_GET['id'])) ? $this->loadModel($_GET['id'], 'Valores') : new Valores;

			$model->scenario = $modulo->MOD_MOBILE ? 'mobile' : 'normal';

			if (isset($_POST['Valores'])) {
				$model->setAttributes($_POST['Valores']);

				if($model->isNewRecord) {
					$model->VAL_DTCADASTRO = date('d/m/Y');
					$model->VAL_IDMODULO = $modulo->MOD_IDMODULO;
				}
				if ($model->save()) {
		
					if($model->VAL_DEFAULT) {
						Valores::model()->updateAll(array('VAL_DEFAULT'=>0),'VAL_IDVALOR <>"'.$model->VAL_IDVALOR.'" and VAL_IDMODULO = "' . $modulo->MOD_IDMODULO. '"');
						$modulo->MOD_IDVALOR = $model->VAL_IDVALOR;
						$modulo->MOD_IDVALOR = $model->VAL_IDVALOR;
						$modulo->save(false, array('MOD_IDVALOR'));
					}

					if (Yii::app()->getRequest()->getIsAjaxRequest())
						Yii::app()->end();
					else
						$this->redirect(array('view', 'id' => $_GET['modulo']));
				}
			}
	
			$this->render('valores', array('model' => $model, 'modulo' => $modulo));
		}

		public function actionDeleteValores($id) {
			$id_modulo = isset($_GET['modulo']) ? $_GET['modulo'] : '';
			$modulo = $this->loadModel($id_modulo, 'Modulos');
			if(!$modulo)
				throw new CHttpException(400, 'Sua solicitação é inválida.');

			if (Yii::app()->getRequest()->getIsPostRequest()) {
				$valor = $this->loadModel($id, 'Valores');
				$documentos = Contratos::model()->count("COT_IDVALOR=".$valor->VAL_IDVALOR);
				if($valor->VAL_DEFAULT != 1 && $modulo->MOD_IDVALOR != $valor->VAL_IDVALOR && $documentos <= 0) {
					if($valor->delete()) {
						Yii::app()->user->setFlash('success', 'Tabela de valores deletada com sucesso.');
					} else {
						Yii::app()->user->setFlash('erro', 'Houve um erro ao tentar deletar a tabela, por favor tente novamente.');
					}
				} else {
					if($valor->VAL_DEFAULT == 1 || $modulo->MOD_IDVALOR == $valor->VAL_IDVALOR)
					Yii::app()->user->setFlash('error', 'Esta é a tabela de valores atualmente usada para o produto. Para deletá-la você deve primeiro escolher outra tabela como sendo a padrão.');
					if($documentos > 0)
					Yii::app()->user->setFlash('error', 'Esta tabela de valores já foi utilizada como sendo tabela padrão para o produto e caso seja deletada '.$documentos.' documentos que foram feitos baseados nela terão seus indicadores perdidos, por isso ela não pode ser deletada.');

				}
	
				if (!Yii::app()->getRequest()->getIsAjaxRequest())
					$this->redirect(array('view', 'id' => $_GET['modulo']));
			} else
				throw new CHttpException(400, 'Sua solicitação é inválida.');
		}
	
		public function actionAdmin() {
			$model = new Modulos('search');
			$model->unsetAttributes();
	
			if (isset($_GET['Modulos']))
				$model->setAttributes($_GET['Modulos']);
	
			$this->render('admin', array(
				'model' => $model,
			));
		}
	
	}
	
}