/** * Gestió de l'inventari i del material * In: PAGINA , TIPUS, BCERCA, BNOU, BSAVE, BDELETE, IDM , D * Out: MATERIAL , MATERIALS , IDM * */ public function executeGMaterial(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); $this->PAGINA = $this->getUser()->ParReqSesForm($request, 'PAGINA', 1); $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => 1)); $this->TIPUS = $this->CERCA['text']; //Inicialitzem el formulari de cerca $this->FCerca = new CercaChoiceForm(); $this->FCerca->setChoice(MaterialgenericPeer::select($this->IDS)); $this->FCerca->bind(array('text' => $this->TIPUS)); //Inicialitzem variables $this->CONSULTA = true; $this->NOU = false; $this->EDICIO = false; if ($request->isMethod('POST') || $request->isMethod('GET')) { $accio = $request->getParameter('accio'); if ($request->hasParameter('BCERCA')) { $accio = 'C'; } if ($request->hasParameter('BNOU')) { $accio = 'N'; } if ($request->hasParameter('BSAVE')) { $accio = 'S'; } if ($request->hasParameter('BDELETE')) { $accio = 'D'; } } switch ($accio) { case 'C': $this->getUser()->addLogAction('inside', 'gMaterial'); break; case 'N': $this->FMaterial = MaterialPeer::inicialitza(0, $this->TIPUS, $this->IDS); $this->NOU = true; break; case 'E': $this->IDM = $request->getParameter('IDM'); $this->FMaterial = MaterialPeer::inicialitza($this->IDM, $this->TIPUS, $this->IDS); $this->EDICIO = true; break; case 'S': $PM = $request->getParameter('material'); $this->FMaterial = MaterialPeer::inicialitza($PM['idMaterial'], $this->TIPUS, $this->IDS); $this->FMaterial->bind($PM); if ($this->FMaterial->isValid()) { $this->FMaterial->save(); $this->getUser()->addLogAction($accio, 'gMaterial', $this->FMaterial->getObject()); myUser::addLogTimeline('alta', 'material', $this->getUser()->getSessionPar('idU'), $this->IDS, $this->FMaterial->getObject()->getIdmaterial()); $this->redirect('gestio/gMaterial?accio=C'); } $this->EDICIO = true; break; case 'D': $PM = $request->getParameter('material'); $this->FMaterial = MaterialPeer::inicialitza($PM['idMaterial'], $this->TIPUS, $this->IDS); $OM = $this->FMaterial->getObject(); if (!$OM->isNew()) { $OM->setActiu(false); $OM->save(); $this->getUser()->addLogAction($accio, 'gMaterial', $OM); myUser::addLogTimeline('baixa', 'material', $this->getUser()->getSessionPar('idU'), $this->IDS, $PM['idMaterial']); } break; case 'AJAX_NEW_GRUP': $PM = $request->getParameter('GRUP'); $OMG = MaterialgenericPeer::initialize(0, $this->IDS)->getObject(); $OMG->setNom($PM); $OMG->save(); return $this->renderText('Tot ok. '); break; case 'PRINT_ALTA': $doc = new sfTinyDoc(); $url_prop = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'documents/FullInventariAlta' . $this->IDS . '.docx'; $url_gen = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'documents/FullInventariAlta1.docx'; if (file_exists($url_prop)) { $doc->createFrom($url_prop); } else { $doc->createFrom($url_gen); } //Carreguem l'article que volem imprimir. $idM = $request->getParameter('IDM'); $OM = MaterialPeer::retrieveByPK($idM); if ($OM instanceof Material) { $OU = UsuarisPeer::retrieveByPK($OM->getResponsable()); $doc->loadXml('word/document.xml'); $doc->mergeXmlField('grup', $OM->getMaterialgeneric()->getNom()); $doc->mergeXmlField('identificador', $OM->getIdentificador()); $doc->mergeXmlField('identificador_comptable', $OM->getIdentificadorcomptable()); $doc->mergeXmlField('nom', $OM->getNom()); $doc->mergeXmlField('ubicacio', $OM->getUbicacio()); $doc->mergeXmlField('responsable', $OU->getNomComplet()); $doc->mergeXmlField('descripcio', $OM->getDescripcio()); $doc->mergeXmlField('num_serie', $OM->getNumserie()); $doc->mergeXmlField('data_compra', $OM->getDatacompra('d/m/Y')); $doc->mergeXmlField('data_garantia', $OM->getDatagarantia('d/m/Y')); $doc->mergeXmlField('data_revisio', $OM->getDatarevisio('d/m/Y')); $doc->mergeXmlField('num_factura', $OM->getNumfactura()); $doc->mergeXmlField('proveidor', $OM->getProveidor()); $doc->mergeXmlField('preu', $OM->getPreu()); $doc->mergeXmlField('amortitzacio', $OM->getAmortitzacio()); $doc->mergeXmlField('vida_util', $OM->getVidautil()); $doc->mergeXmlField('notes', $OM->getNotesmanteniment()); $doc->mergeXmlField('data_avui', date('d/m/Y')); $doc->saveXml(); $doc->close(); $doc->sendResponse(); $doc->remove(); throw new sfStopException(); } else { echo "No he pogut trobar l'element a l'inventari. Torna a provar-ho! "; } break; case 'PRINT_BAIXA': $doc = new sfTinyDoc(); $url_prop = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'documents/FullInventariBaixa' . $this->IDS . '.docx'; $url_gen = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'documents/FullInventariBaixa1.docx'; if (file_exists($url_prop)) { $doc->createFrom($url_prop); } else { $doc->createFrom($url_gen); } //Carreguem l'article que volem imprimir. $idM = $request->getParameter('IDM'); $OM = MaterialPeer::retrieveByPK($idM); if ($OM instanceof Material) { $OU = UsuarisPeer::retrieveByPK($OM->getResponsable()); $diferencia_segons = $OM->getDatabaixa('U') - $OM->getDatacompra('U'); $dies = $diferencia_segons / (60 * 60 * 24); $dism_diaria = floatval($OM->getAmortitzacio()) / (365 * 100); $total_amortitzat = intval($OM->getPreu() * ($dies * $dism_diaria)); $doc->loadXml('word/document.xml'); $doc->mergeXmlField('grup', $OM->getMaterialgeneric()->getNom()); $doc->mergeXmlField('identificador', $OM->getIdentificador()); $doc->mergeXmlField('identificador_comptable', $OM->getIdentificadorcomptable()); $doc->mergeXmlField('nom', $OM->getNom()); $doc->mergeXmlField('ubicacio', $OM->getUbicacio()); $doc->mergeXmlField('responsable', $OU->getNomComplet()); $doc->mergeXmlField('num_serie', $OM->getNumserie()); $doc->mergeXmlField('data_compra', $OM->getDatacompra('d/m/Y')); $doc->mergeXmlField('data_baixa', $OM->getDatabaixa('d/m/Y')); $doc->mergeXmlField('preu_inicial', $OM->getPreu()); $doc->mergeXmlField('total_amortitzat', $total_amortitzat); $doc->mergeXmlField('valor_actual', $OM->getPreu() - $total_amortitzat); $doc->mergeXmlField('notes', $OM->getNotesmanteniment()); $doc->mergeXmlField('data_avui', date('d/m/Y')); $doc->saveXml(); $doc->close(); $doc->sendResponse(); $doc->remove(); throw new sfStopException(); } else { echo "No he pogut trobar l'element a l'inventari. Torna a provar-ho! "; } break; } $this->MATERIALS = MaterialPeer::getMaterial($this->TIPUS, $this->PAGINA, $this->IDS); }
/** * Gestió de l'inventari i del material * In: PAGINA , TIPUS, BCERCA, BNOU, BSAVE, BDELETE, IDM , D * Out: MATERIAL , MATERIALS , IDM * */ public function executeGMaterial(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); $this->PAGINA = $this->getUser()->ParReqSesForm($request, 'PAGINA', 1); $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => 1)); $this->TIPUS = $this->CERCA['text']; //Inicialitzem el formulari de cerca $this->FCerca = new CercaChoiceForm(); $this->FCerca->setChoice(MaterialgenericPeer::select($this->IDS)); $this->FCerca->bind(array('text' => $this->TIPUS)); //Inicialitzem variables $this->CONSULTA = true; $this->NOU = false; $this->EDICIO = false; if ($request->isMethod('POST') || $request->isMethod('GET')) { $accio = $request->getParameter('accio'); if ($request->hasParameter('BCERCA')) { $accio = 'C'; } if ($request->hasParameter('BNOU')) { $accio = 'N'; } if ($request->hasParameter('BSAVE')) { $accio = 'S'; } if ($request->hasParameter('BDELETE')) { $accio = 'D'; } } switch ($accio) { case 'C': $this->getUser()->addLogAction('inside', 'gMaterial'); break; case 'N': $this->FMaterial = MaterialPeer::inicialitza(0, $this->TIPUS, $this->IDS); $this->NOU = true; break; case 'E': $this->IDM = $request->getParameter('IDM'); $this->FMaterial = MaterialPeer::inicialitza($this->IDM, $this->TIPUS, $this->IDS); $this->EDICIO = true; break; case 'S': $PM = $request->getParameter('material'); $this->FMaterial = MaterialPeer::inicialitza($PM['idMaterial'], $this->TIPUS, $this->IDS); $this->FMaterial->bind($PM); if ($this->FMaterial->isValid()) { $this->FMaterial->save(); $this->getUser()->addLogAction($accio, 'gMaterial', $this->FMaterial->getObject()); $this->redirect('gestio/gMaterial?accio=C'); } $this->EDICIO = true; break; case 'D': $PM = $request->getParameter('material'); $this->FMaterial = MaterialPeer::inicialitza($PM['idMaterial'], $this->TIPUS, $this->IDS); $OM = $this->FMaterial->getObject(); if (!$OM->isNew()) { $OM->setActiu(false); $OM->save(); $this->getUser()->addLogAction($accio, 'gMaterial', $OM); } break; case 'AJAX_NEW_GRUP': $PM = $request->getParameter('GRUP'); $OMG = MaterialgenericPeer::initialize(0, $this->IDS)->getObject(); $OMG->setNom($PM); $OMG->save(); return $this->renderText('Tot ok. '); break; } $this->MATERIALS = MaterialPeer::getMaterial($this->TIPUS, $this->PAGINA, $this->IDS); }