Пример #1
0
 public function saveAction()
 {
     $this->_helper->getHelper('layout')->disableLayout();
     $this->_helper->viewRenderer->setRender('pdf');
     $id = $this->_getParam('id', 0);
     $locale = Zend_Registry::get('Zend_Locale');
     $quoterequestDb = new Purchases_Model_DbTable_Quoterequest();
     $quoterequest = $quoterequestDb->getQuoterequest($id);
     if ($quoterequest['templateid']) {
         $templateDb = new Application_Model_DbTable_Template();
         $template = $templateDb->getTemplate($quoterequest['templateid']);
         if ($template['filename']) {
             $this->_helper->viewRenderer->setRender($template['filename']);
         }
         $this->view->template = $template;
     }
     $positions = $this->getPositions($id);
     if (!$quoterequest['quoterequestid']) {
         //Get latest quoterequest Id
         $latestQuoterequest = $quoterequestDb->fetchRow($quoterequestDb->select()->where('clientid = ?', $this->_user['clientid'])->order('quoterequestid DESC')->limit(1));
         //Set new quoterequest Id
         $newQuoterequestId = $latestQuoterequest['quoterequestid'] + 1;
         $quoterequestDb->saveQuoterequest($id, $newQuoterequestId, $this->_date, 105, $this->_date, $this->_user['id']);
         $quoterequest = $quoterequestDb->getQuoterequest($id);
     }
     if (count($positions)) {
         foreach ($positions as $position) {
             $precision = floor($position->quantity) == $position->quantity ? 0 : 2;
             $position->total = $this->_currency->toCurrency($position->price * $position->quantity);
             $position->price = $this->_currency->toCurrency($position->price);
             $position->quantity = Zend_Locale_Format::toNumber($position->quantity, array('precision' => $precision, 'locale' => Zend_Registry::get('Zend_Locale')));
         }
         $quoterequest['taxes'] = $this->_currency->toCurrency($quoterequest['taxes']);
         $quoterequest['subtotal'] = $this->_currency->toCurrency($quoterequest['subtotal']);
         $quoterequest['total'] = $this->_currency->toCurrency($quoterequest['total']);
         if ($quoterequest['taxfree']) {
             $quoterequest['taxrate'] = Zend_Locale_Format::toNumber(0, array('precision' => 2, 'locale' => $locale));
         } else {
             $quoterequest['taxrate'] = Zend_Locale_Format::toNumber($positions[0]->taxrate, array('precision' => 2, 'locale' => $locale));
         }
     }
     $this->view->quoterequest = $quoterequest;
     $this->view->positions = $positions;
     $this->view->footers = $this->_helper->Footer->getFooters($quoterequest['templateid'], $this->_user['clientid']);
 }