Esempio n. 1
0
 /**
  * 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);
 }
Esempio n. 2
0
 /**
  * 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);
 }