✏️ 正在编辑: YuppieSessionWrapper.php
路径:
/srv/systems_dir/yuppiecred-lidernegocios/application/models/YuppieSessionWrapper.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php /* @author martin */ class Model_YuppieSessionWrapper { public $namespace = null; public function getSessVar($var, $default = null) { $this->namespace = new Zend_Session_Namespace($var); return (isset($this->namespace->$var)) ? $this->namespace->$var : $default; } public function setSessVar($var, $value) { $this->namespace = new Zend_Session_Namespace($var); if( !empty($var) && !empty($value) ){ $this->namespace->$var = $value; } } public function emptySess($var) { Zend_Session::namespaceUnset($var); } public function mountCartPurchase($fields = array()) { if( count($fields) <= 0 ){ throw new Exception("Nenhum registro encontrado."); } $session = null; //id para remover da sessão $sessionIdContratoDelete = isset($fields['id']) ? $fields['id'] : null; $treatmentSession = explode("|", $sessionIdContratoDelete); $sessionId = null; $sessionIdContrato = null; if( $treatmentSession[0] > 0 ){ $sessionId = $treatmentSession[1]; $sessionIdContrato = $treatmentSession[0]; } //caminho para sessões distintas $caminho = isset($fields['caminho']) ? $fields['caminho'] : $sessionId; $carrinho = array(); switch ( $caminho ) { case 'enviar-fisico': $carrinho = $this->getSessVar('carrinho_enviar_fisico'); $session = 'carrinho_enviar_fisico'; break; case 'receber-fisico': $carrinho = $this->getSessVar('carrinho'); $session = 'carrinho'; break; case 0: default: break; } $adicionarCarrinho = isset($fields['adicionar_contrato']) ? $fields['adicionar_contrato'] : null; $continuarProcesso = isset($fields['continuar_processo']) ? $fields['continuar_processo'] : null; $contrato = new Model_Contrato(); $result = null; //se clicou em continuar e não tem nada na sessão, ai trava. if( $continuarProcesso && !$carrinho && !$fields['ck_contrato'] ){ throw new Exception('Não foi possível continuar, nenhum item foi adicionado ao carrinho.'); } //se inseriu contratos no carrinho, mostra pra exibição. if( count($carrinho) > 0 ){ $where = ("id IN ('" . implode("','", $carrinho) . "')"); $result = $contrato->listar($where); } $ckContrato = isset($fields['ck_contrato']) ? $fields['ck_contrato'] : null; //adiciona itens no carrinho, ou verifica se tem item no carrinho para continuar a rotina. if( $adicionarCarrinho || !$adicionarCarrinho && $continuarProcesso && $ckContrato ){ $contratos = $fields['ck_contrato']; $existe = false; //se existe não insere if( is_array($carrinho) ){ foreach ( $carrinho as $contratosId ) { if( $contratosId == $contratos ){ $existe = true; } } } //se não existe insere na sessão if( !$existe ){ if( is_array($contratos) ){ foreach ( $contratos as $contratosId ) { if( !empty($contratosId) ){ $carrinho[$contratosId] = $contratosId; } } } else { $carrinho[$contratos] = $contratos; } } $this->emptySess($session); $this->setSessVar($session, $carrinho); if( !$continuarProcesso ){ return array( 'adicionado' => true ); } } $delete = ''; if( $continuarProcesso ){ return array( 'continuar' => true, 'result' => $result, 'caminho' => $caminho ); } //se veio contratos da lista e clicou em remover, sai da lista. if( count($sessionIdContrato) > 0 ){ foreach ( $carrinho as $contratosId ) { if( $contratosId == $sessionIdContrato ){ if( !empty($sessionIdContrato) ){ unset($carrinho[$sessionIdContrato]); } $this->emptySess($session); $this->setSessVar($session, $carrinho); } } $delete = 'delete'; } return array( 'result' => $result, 'delete' => $delete, 'caminho' => $sessionId ); } }
💾 保存文件
← 返回文件管理器