コード例 #1
0
ファイル: ImportForm.class.php プロジェクト: andermall/tcc
 function onImportFile()
 {
     $data = $this->form->getData();
     $this->importacao = new Importar();
     $this->importacao->loadFile($data->file);
     $this->importacao->setActiveRow(3);
     try {
         TTransaction::open('saciq');
         $criteria = new TCriteria();
         $criteria->add(new TFilter('numeroSRP', '=', $this->importacao->getNroSRP()));
         $criteria->add(new TFilter('numeroIRP', '=', $this->importacao->getNroIRP()));
         $criteria->add(new TFilter('numeroProcesso', '=', $this->importacao->getNumeroProcesso()));
         $criteria->add(new TFilter('uasg', '=', $this->importacao->getUasgGerenciadora()));
         $criteria->add(new TFilter('validade', '=', $this->importacao->getValidadeAta()));
         $repositorySrp = new TRepository('Srp');
         $count = $repositorySrp->count($criteria);
         if ($count > 0) {
             $RepSRP = $repositorySrp->load($criteria);
             $RepSRP[0]->delete();
         }
         $srp = null;
         while (!$this->importacao->eof()) {
             if (!$this->importacao->isValidRow()) {
                 $this->importacao->nextRow();
                 continue;
             }
             $natureza = $this->LoadObjectByField('Natureza', 'descricao', $this->importacao->getNaturezaDespesa());
             if (!isset($natureza)) {
                 $natureza = new Natureza();
                 $natureza->descricao = $this->importacao->getNaturezaDespesa();
                 $natureza->store();
             }
             $subelemento = $this->LoadObjectByField('Subelemento', 'descricao', $this->importacao->getDescricaoSubElemento());
             if (!isset($subelemento)) {
                 $subelemento = new Subelemento();
                 $subelemento->id = $this->importacao->getNumeroSubElemento();
                 $subelemento->descricao = $this->importacao->getDescricaoSubElemento();
                 $subelemento->store();
             }
             $fornecedor = $this->LoadObjectByField('Fornecedor', 'cnpj', $this->importacao->getCNPJ());
             if (!isset($fornecedor)) {
                 $fornecedor = new Fornecedor();
                 $fornecedor->nome = $this->importacao->getFornecedor();
                 $fornecedor->cnpj = $this->importacao->getCNPJ();
                 $fornecedor->store();
             }
             if (!isset($srp)) {
                 $srp = new Srp();
                 $srp->numeroSRP = $this->importacao->getNroSRP();
                 $srp->numeroIRP = $this->importacao->getNroIRP();
                 $srp->numeroProcesso = $this->importacao->getNumeroProcesso();
                 $srp->uasg = $this->importacao->getUasgGerenciadora();
                 $srp->validade = $this->importacao->getValidadeAta();
                 $srp->nome = $this->importacao->getNomeProcesso();
                 $srp->natureza = $natureza;
             }
             $item = new Item();
             $item->numeroItem = $this->importacao->getItem();
             $item->descricaoSumaria = $this->importacao->getDescricaoSumaria();
             $item->descricaoCompleta = $this->importacao->getDescricaoCompleta();
             $item->descricaoPosLicitacao = $this->importacao->getDescricaoPosLicitacao();
             $item->unidadeMedida = $this->importacao->getUnidadeDeMedida();
             $item->marca = $this->importacao->getMarca();
             $item->valorUnitario = $this->importacao->getValorUnitarioLicitado();
             $item->quantidadeDisponivel = $this->importacao->getOrgao(CAMPUS);
             $item->estoqueDisponivel = $item->quantidadeDisponivel;
             $item->fabricante = $this->importacao->getFabricante();
             $item->fornecedor = $fornecedor;
             $item->subelemento = $subelemento;
             $srp->addItem($item);
             $this->importacao->nextRow();
         }
         $srp->store();
         new TMessage('info', 'Planilha importada com sucesso');
         TTransaction::close();
     } catch (Exception $e) {
         if ($e->getCode() == 23000) {
             new TMessage('error', '<b>Registro duplicado</b><br>Verifique os campos inseridos e tente novamente');
         } else {
             if ($e->getCode() == 0) {
                 new TMessage('error', '<b>Error</b> <br>' . $e->getMessage());
             } else {
                 new TMessage('error', '<b>Error Desconhecido</b> <br>Código: ' . $e->getCode());
             }
         }
         // desfazer todas as operacoes pendentes
         TTransaction::rollback();
     }
     $this->notebook->setCurrentPage(0);
     $this->form->setData($data);
     $this->step->select('Seleção');
 }