<?php
//お約束の呪文/////////////////////////////////
//ログインチェック、設定ファイル読み込み、Smarty Viewの生成を行う
require_once("../../../../../app_path.php");
require_once(APP_PATH . '/BSMAdminController.php');
$bsmactlr = new BSMAdminController();
///////////////////////////////////////////////

//コントローラ部分
//好きに書いてよし！

//Modelクラスを読み込み
//DBからのデータ読み込み、書き込み、大半の処理はこのModelクラスに書いてください。
require_once("../../class/CLfrmuser.php");

class frmuserAct extends CLfrmuser
{
	function frmuserAct(&$bsmactlr)
	{
		$this->__construct($bsmactlr);
	}

	function __construct(&$bsmactlr)
	{
		CLfrmuser::__construct();
		$this->bsmactlr = $bsmactlr;

		//管理権限によるメニュー表示制御
		$this->setAuth($this->bsmactlr->view);
	}

	function action()
	{
		$tpl_file = "index.tpl";

		//フォームジェネレータの利用権限のチェック
		if( $_SESSION["form_generator_kanri"] == 0 || $_SESSION["form_generator_kanri"] == null){
			header('location:../index.php');
			exit();
		}

		//Form設定
		$this->setElements();
		//ボタン
		$this->setButtons();
		$req = $_REQUEST['buttons'];

		//マネージャー情況
		if ($_SESSION["usr_info"]["usr_kanri"]==1) {
		//$flag 初期化：1 エラーがある：2　保存:3
			$flag = 1;
			if ($_SESSION["saveflag"]==1 ) {
				$this->_form->setElementError("saveflag","保存しました");
			}//保存成功フラグ
			if (isset($req['BTNnext']) && $req['BTNnext'] != null) {
					$this->_form->setElementError("saveflag","");
					$this->_form->freeze();
					$this->setButtons($this->_form->isFrozen());
			} else if (isset($req['BTNsave']) && $req['BTNsave'] != null) {
			        $this->db->query('BEGIN');
					$deletesql = "delete from mdl_extMdlFormGnrtr_tbl_form_user";
					$rtn	   = $this->db->query($deletesql);
					if (!$rtn) {
						$this->db->query('ROLLBACK');
						$this->_form->setElementError(""," 削除に失敗しました");
						//$flag 初期化：1 エラーがある：2　保存:3
						$flag = 2;
					} else {
						$post = $this->_form->getSubmitValues();
						$k	  = 1;
						$userData	 = array();
                        $userData	 = $this->getdata();
						foreach ($userData as $key => $val) {
							$code	  = 'usr_code' . $k;
							$code_hid = 'usr_code_hid' . $k;
							$k++;

							if ($post[$code] == 1) {
								$sql= "insert into mdl_extMdlFormGnrtr_tbl_form_user(frm_usr_id)
								       values(" . $post[$code_hid] . ")";
								if (!$this->db->query($sql)) {
									$this->db->query('ROLLBACK');
									$this->_form->setElementError("","保存に失敗しました");
									//$flag 初期化：1 エラーがある：2　保存:3
									$flag = 2;
									break;
								}
							}
							//$flag 初期化：1 エラーがある：2　保存:3
							$flag = 3;
						}
						$this->db->query('COMMIT');
						$_SESSION["saveflag"] = 1;
					}
			}
			//登録エラー時
			if (!empty($this->_form->_errors)) {
				$this->bsmactlr->view->assign('ERROR', $this->_form->_errors);
				foreach ($this->_form->_errors as $key => $val) {
					$this->_form->updateElementAttr($key, array("class" => "err"));
				}
			}
			if ($flag == 3) {
				header('location:index.php');
				exit();
			}
		} else {$this->_form->freeze();
			$frozen = true;
		}

		$renderer = new HTML_QuickForm_Renderer_ArraySmarty($this->bsmactlr->view);
		$this->_form->accept($renderer);
		$this->bsmactlr->view->assign('form',$renderer->toArray());
		unset($_SESSION["saveflag"]);
		if($this->_form->isFrozen()) {
			$tpl_file = "prev.tpl";
		} else {
			$tpl_file = "index.tpl";
		}

		//set template file
		$this->bsmactlr->setHeadhtml('<link href="../css/imported.css" rel="stylesheet" type="text/css" media="all">');
		$this->bsmactlr->DisplayPage($this->bsmactlr->setTpl("/extMdlFormGnrtr/admin/frmuser/".$tpl_file));
	}
}

$frm = new frmuserAct($bsmactlr);
$frm->action();

?>