/** * * Atualiza lista de operadoras e centros de custos relacionados * @param int $carrierId * @param Array $costCentersId */ public function save($carrierId, $dados) { $selected = $this->fetchRow($this->select()->where('id_carrier = ?', $carrierId)); $selected->vl_start = $dados['ta']; $selected->vl_fractionation = $dados['tf']; $selected->fg_active = $dados['active']; $selected->save(); // Busca e limpa centros de custos relacionados $costcenters = $selected->findSnep_CostCenter_Manager(); if (count($costcenters) > 0) { foreach ($costcenters as $cc) { $cc->id_carrier = null; $cc->save(); } } // Cadastra os Centro de Custos selecionados foreach ($dados['box_add'] as $costcenterId) { $cs = new Snep_CostCenter_Manager(); $csRow = $cs->fetchRow($cs->select()->where('id_costcenter = ?', $costcenterId)); $csRow->id_carrier = $carrierId; $csRow->save(); } }
/** * Edit Cost Center's */ public function editAction() { $id = $this->_request->getParam('id'); $this->view->breadcrumb = Snep_Breadcrumb::renderPath(array($this->view->translate("Manage"), $this->view->translate("Cost Center"), $this->view->translate("Edit"))); $obj = new Snep_CostCenter_Manager(); $select = $obj->select()->where('id_costcenter = ?', $id); $cost_center = $obj->fetchRow($select)->toArray(); Zend_Registry::set('cancel_url', $this->getFrontController()->getBaseUrl() . '/' . $this->getRequest()->getControllerName() . '/index'); $form = new Snep_Form(new Zend_Config_Xml("modules/default/forms/cost_center.xml")); $form->setAction($this->getFrontController()->getBaseUrl() . '/' . $this->getRequest()->getControllerName() . '/edit/id/' . $id); $idcc = new Zend_Form_Element_Hidden('id_costcenter'); $idcc->setValue($cost_center['id_costcenter']); $form->getElement('id')->setValue($cost_center['cd_code'])->setAttrib('readonly', true); $form->getElement('name')->setValue($cost_center['ds_name']); $form->getElement('description')->setValue($cost_center['ds_description']); $form->getElement('type')->setValue($cost_center['cd_type']); $form->addElement($idcc); if ($this->_request->getPost()) { $_POST['id'] = trim($_POST['id']); $form_isValid = $form->isValid($_POST); $data = array('cd_code' => trim($_POST['id']), 'ds_name' => $_POST['name'], 'cd_type' => $_POST['type'], 'ds_description' => $_POST['description'], 'id_carrier' => null); if ($form_isValid) { $costCenter = new Snep_CostCenter_Manager(); $costCenter->update($data, "id_costcenter = {$_POST['id_costcenter']}"); $this->_redirect($this->getRequest()->getControllerName()); } } $this->view->form = $form; }