public function executeGCursos(sfWebRequest $request) { $this->setLayout('gestio'); $this->IDS = $this->getUser()->getSessionPar('idS'); //Netegem cerca if ($request->getParameter('accio') == 'C') { $this->CERCA = $this->getUser()->setSessionPar('cerca', array('text' => '', 'select' => CursosPeer::CURSACTIU, 'select2' => -1, 'select3' => -1)); $this->PAGINA = $this->getUser()->setSessionPar('pagina', 1); $this->redirect('gestio/gCursos?accio=CA'); } $this->CERCA = $this->getUser()->ParReqSesForm($request, 'cerca', array('text' => '', 'select' => CursosPeer::CURSACTIU, 'select2' => -1, 'select3' => -1)); $this->PAGINA = $this->getUser()->ParReqSesForm($request, 'PAGINA', 1); $accio = $this->getUser()->ParReqSesForm($request, 'accio', 'CA'); //Carrego les dates $this->FCerca = new CercaTextChoiceForm(array(), array('desplegables' => 3)); $this->FCerca->setChoice(array(-1 => "Tots", CursosPeer::CURSACTIU => 'Actius', CursosPeer::PASSAT => 'Inactius')); $this->FCerca->setChoice2(array(-1 => 'Del mes...') + CursosPeer::getSelectCercaData($this->IDS)); $this->FCerca->setChoice3(array(-1 => 'Al mes...') + CursosPeer::getSelectCercaData($this->IDS)); $this->FCerca->bind($this->CERCA); //Inicialitzem variables $this->MODE = ''; if ($request->isMethod('POST')) { if ($request->hasParameter('BCERCA')) { $accio = 'CA'; $this->PAGINA = 1; } elseif ($request->hasParameter('BNOU')) { $accio = 'NC'; } elseif ($request->hasParameter('BSAVECODICURS')) { $accio = 'SC'; } elseif ($request->hasParameter('BSAVE')) { $accio = 'SCC'; } elseif ($request->hasParameter('BDELETE')) { $accio = 'D'; } elseif ($request->hasParameter('BGENERAACTIVITAT')) { $accio = 'GA'; } } //Aquest petit bloc és per si es modifica amb un POST el que s'ha enviat per GET $this->getUser()->setSessionPar('accio', $accio); $this->getUser()->setSessionPar('PAGINA', $this->PAGINA); //Guardem la pà gina per si hem fet una consulta nova switch ($accio) { //Entrem un curs nou. Agafarem el codi per fer-ne un duplicat o bé un codi nou. case 'NC': $this->getUser()->setSessionPar('IDC', null); $OCurs = new Cursos(); $this->FCursCodi = new CursosCodiForm($OCurs, array('IDS' => $this->IDS)); $this->MODE = 'NOU'; break; //Si el codi existeix, carrego les dades, altrament només guardo. //Si el codi existeix, carrego les dades, altrament només guardo. case 'SC': $RP = $request->getParameter('cursos_codi'); $codi = $RP['CodiT'] != "" ? $RP['CodiT'] : $RP['Codi']; $this->OC = CursosPeer::getCopyCursByCodi($codi, $this->IDS); $this->FOC = new CursosForm($this->OC); $this->MODE = 'EDICIO_CONTINGUT'; break; //Editem un curs que ja existeix. //Editem un curs que ja existeix. case 'EC': $this->FOC = CursosPeer::initialize($request->getParameter('IDC'), $this->IDS); $this->MODE = 'EDICIO_CONTINGUT'; break; //Guarda el contingut del curs //Guarda el contingut del curs case 'SCC': $RP = $request->getParameter('cursos', 0); $this->FOC = CursosPeer::initialize($RP['idCursos'], $this->IDS); $this->FOC->bind($RP); if ($this->FOC->isValid()) { $this->FOC->save(); $this->redirect('gestio/gCursos?accio=CA'); $this->getUser()->addLogAction($accio, 'gCursos', $OC->getIdcursos()); if ($this->FOC->isNew()) { myUser::addLogTimeline('alta', 'cursos', $this->getUser()->getSessionPar('idU'), $this->IDS, $this->FOC->getObject()->getIdcursos()); } else { myUser::addLogTimeline('modificació', 'cursos', $this->getUser()->getSessionPar('idU'), $this->IDS, $this->FOC->getObject()->getIdcursos()); } } else { //Retornem un formulari } $this->MODE = 'EDICIO_CONTINGUT'; break; //Esborra un curs //Esborra un curs case 'D': $RP = $request->getParameter('cursos'); $this->FCurs = CursosPeer::initialize($RP['idCursos'], $this->IDS); $this->FCurs->getObject()->setActiu(false)->save(); $this->getUser()->addLogAction($accio, 'gCursos', $this->FCurs->getObject()); myUser::addLogTimeline('baixa', 'cursos', $this->getUser()->getSessionPar('idU'), $this->IDS, $RP['idCursos']); $this->redirect('gestio/gCursos?accio=CA'); break; case 'CA': $this->CURSOS = CursosPeer::getCursos($this->CERCA['select'], $this->PAGINA, $this->CERCA['text'], $this->IDS, false, $this->CERCA['select2'] . '-01', $this->CERCA['select3'] . '-31'); $this->MODE = 'CA'; break; case 'L': $this->MATRICULES = CursosPeer::getMatricules($request->getParameter('IDC'), $this->IDS, true, true, true); $this->IDC = $request->getParameter('IDC'); $this->MODE = 'LLISTAT_ALUMNES'; break; case 'C': $this->getUser()->addLogAction('inside', 'gCursos'); break; //Edita una activitat relacionada amb un curs. Si no en té cap l'afegeix. ' //Edita una activitat relacionada amb un curs. Si no en té cap l'afegeix. ' case 'GA': //Mirem si ja té activitat. Si la té la recupera i sinó la crea. $RP = $request->getParameter('cursos'); $this->FCurs = CursosPeer::initialize($RP['idCursos'], $this->IDS); if ($this->FCurs->isNew()) { //Si el curs és nou, vol dir que l'hem de guardar. $this->FCurs->bind($RP); if ($this->FCurs->isValid()) { $this->FCurs->save(); $this->getUser()->addLogAction($accio, 'gCursos', $this->FCurs->getObject()); } } //Un cop guardat el curs, recupero l'activitat relacionada amb el curs $OA = $this->FCurs->getObject()->getActivitatVinculada(); $this->redirect('gestio/gActivitats?accio=ACTIVITAT&IDA=' . $OA->getActivitatid()); break; //Imprimeix un llistat dels alumnes del curs //Imprimeix un llistat dels alumnes del curs case 'IMPR_LLISTAT_ALUMNES_CURS': $IDC = $request->getParameter('IDC'); $OC = CursosPeer::retrieveByPK($IDC); //Si no existeix el curs, marxem, i sinó carreguem els alumnes. if (!$OC instanceof Cursos) { $this->redirect('gestio/gCursos?accio=CC'); } $LMAT = CursosPeer::getMatricules($IDC, $OC->getSiteid(), false, false); //Mirem si existeix un patró per nosaltres $doc = new sfTinyDoc(); $url_prop = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'documents/LlistatAlumnesCursos' . $OC->getSiteid() . '.docx'; $url_gen = OptionsPeer::getString('SF_WEBSYSROOT', $this->IDS) . 'documents/LlistatAlumnesCursosGen.docx'; if (file_exists($url_prop)) { $doc->createFrom($url_prop); } else { $doc->createFrom($url_gen); } //Comença la càrrega de la informació $alumnes = array(); $i = 1; $j = 1; //Posem els pagats $alumnes[$i++]['nom'] = "---- ALUMNES PAGATS ----"; foreach ($LMAT as $OM) { if ($OM->getEstat() == MatriculesPeer::ACCEPTAT_PAGAT) { $alumnes[$i++]['nom'] = ucwords(mb_strtolower($j++ . '. ' . $OM->getUsuaris()->getNomComplet(), 'UTF-8')); } } //Posem els no pagats $alumnes[$i++]['nom'] = "---- ALUMNES NO PAGATS ----"; foreach ($LMAT as $OM) { if ($OM->getEstat() == MatriculesPeer::ACCEPTAT_NO_PAGAT) { $alumnes[$i++]['nom'] = ucwords(mb_strtolower($j++ . '. ' . $OM->getUsuaris()->getNomComplet(), 'UTF-8')); } } //Posem els reservats $alumnes[$i++]['nom'] = "---- ALUMNES RESERVATS ----"; foreach ($LMAT as $OM) { if ($OM->getEstat() == MatriculesPeer::RESERVAT) { $alumnes[$i++]['nom'] = ucwords(mb_strtolower($j++ . '. ' . $OM->getUsuaris()->getNomComplet(), 'UTF-8')); } } $doc->loadXml('word/document.xml'); $doc->mergeXmlField('curs', $OC->getCodi() . ' ' . $OC->getTitolcurs()); $doc->mergeXmlField('datallistat', date('d/m/Y', time())); $doc->mergeXmlBlock('lalumnes', $alumnes); $doc->saveXml(); $doc->close(); $doc->sendResponse(); $doc->remove(); throw new sfStopException(); break; case 'EXCEL_ALL_CURSOS': $this->getExcelCursos(); break; case 'FITXER_N19': $aeb19 = new AEB19Writter('.'); //Número de compte de l'entitat que genera els rebuts. $cuenta = explode('-', OptionsPeer::getString('N19_CCC', $this->IDS)); //CIF de la nostra entitat. $cif = OptionsPeer::getString('N19_CIF', $this->IDS); //Nom de la nostra entitat $empresa = OptionsPeer::getString('N19_NOM_EMPRESA', $this->IDS); //Assignem els noms del presentador //El codi del presentador s'ha de presentar a la dreta així que ho fem manualment. $aeb19->insertarCampo('codigo_presentador', str_pad($cif, 12, '0', STR_PAD_RIGHT)); $aeb19->insertarCampo('fecha_fichero', date('dmy')); $aeb19->insertarCampo('nombre_presentador', $empresa); $aeb19->insertarCampo('entidad_receptora', $cuenta[0]); $aeb19->insertarCampo('oficina_presentador', $cuenta[1]); //La data del càrrec, que serà després de dos dies. $fechaCargo = date('dmy', strtotime('+2 day')); //Assignem els camps de l'ordenant i guardem el registre. $aeb19->insertarCampo('codigo_ordenante', str_pad($cif, 12, '0', STR_PAD_RIGHT)); $aeb19->insertarCampo('fecha_cargo', $fechaCargo); $aeb19->insertarCampo('nombre_ordenante', $empresa); $aeb19->insertarCampo('cuenta_abono_ordenante', implode('', $cuenta)); $aeb19->guardarRegistro('ordenante'); //Establim el codi de l'ordenant pels registres obligatoris. $aeb19->insertarCampo('ordenante_domiciliacion', str_pad($cif, 12, '0', STR_PAD_RIGHT)); //Carreguem els cursos actius i només tractarem els que tinguin domiciliació. $LOC = CursosPeer::getCursos(CursosPeer::CURSACTIU, 1, "", $this->IDS, false, null, null); foreach ($LOC as $OC) { if ($OC->getIsentrada() == CursosPeer::TIPUS_PAGAMENT_DOMICILIACIO) { foreach (CursosPeer::getMatricules($OC->getIdcursos(), $this->IDS, false, false) as $OM) { $OU = $OM->getUsuaris(); $ODB = DadesBancariesPeer::retrieveByPK($OM->getIddadesbancaries()); $idFact = $OM->getIdmatricules(); if ($OU instanceof Usuaris && $OM instanceof Matricules && $ODB instanceof DadesBancaries) { //l'IVA que aplicarem a la factura $iva = 0.0; $pagat = $OM->getPagat(); //L'Import de l'IVA $importeIva = round($i * $iva, 2); //Total de la factura amb IVA inclòs $totalFactura = $pagat + $importeIva; //Con el codigo_referencia_domiciliacion podremos referenciar la domiciliación $aeb19->insertarCampo('codigo_referencia_domiciliacion', "fra-{$idFact}"); //Cliente al que le domiciliamos $aeb19->insertarCampo('nombre_cliente_domiciliacion', $ODB->getTitular()); //Cuenta del cliente en la que se domiciliará la factura $aeb19->insertarCampo('cuenta_adeudo_cliente', $ODB->getCcc()); //El importe de la domiciliación (tiene que ser en céntimos de euro y con el IVA aplicado) $aeb19->insertarCampo('importe_domiciliacion', $totalFactura * 100); //Código para asociar la devolución en caso de que ocurra $aeb19->insertarCampo('codigo_devolucion_domiciliacion', $OM->getIdmatricules()); //Código interno para saber a qué corresponde la domiciliación $aeb19->insertarCampo('codigo_referencia_interna', "fra-{$idFact}"); //Preparamos los conceptos de la domiciliación, en un array //Disponemos de 80 caracteres por línea (elemento del array). Más caracteres serán cortados //El índice 8 y 9 contendrían el sexto registro opcional, que es distinto a los demás $conceptosDom = array(); //Los dos primeros índices serán el primer registro opcional $conceptosDom[] = str_pad("Pagament matrícula {$idFact}", 40, ' ', STR_PAD_RIGHT) . str_pad(" del curs {$OC->getCodi()}", 40, ' ', STR_PAD_RIGHT); //$conceptosDom[] = str_pad('', 40, ' ', STR_PAD_RIGHT) . str_pad("", 40, ' ', STR_PAD_RIGHT); //Los dos segundos índices serán el segundo registro opcional //$conceptosDom[] = str_pad( $ODB->getTitular() , 40, ' ', STR_PAD_RIGHT); //$conceptosDom[] = str_pad('', 40, ' ', STR_PAD_RIGHT) . 'Base imposable:' . str_pad(number_format($pagat, 2, ',', '.') . ' EUR', 25, ' ', STR_PAD_LEFT); //Los dos terceros índices serán el tercer registro opcional //$conceptosDom[] = str_pad('', 40, ' ', STR_PAD_RIGHT). // 'IVA ' . str_pad(number_format($iva * 100, 2, ',', '.'), 2, '0', STR_PAD_LEFT) . '%:'. // str_pad(number_format($importeIva, 2, ',', '.') . ' EUR', 29, ' ', STR_PAD_LEFT); //$conceptosDom[] = str_pad('', 40, ' ', STR_PAD_RIGHT). // 'Total:' . str_pad(number_format($totalFactura, 2, ',', '.') . ' EUR', 34, ' ', STR_PAD_LEFT); //Añadimos la domiciliación $aeb19->guardarRegistro('domiciliacion', $conceptosDom); } else { if (!$OU instanceof Usuaris) { $RET[$idFact][] = "Matrícula {$idFact} incorrecte. Usuari no trobat."; } if (!$OM instanceof Matricules) { $RET[$idFact][] = "Matrícula {$idFact} incorrecte. Matrícula no trobada."; } if (!$ODB instanceof DadesBancaries) { $RET[$idFact][] = "Matrícula {$idFact} incorrecte. Compte corrent no trobat."; } } } } } $nom = OptionsPeer::getString('SF_WEBSYSROOT') . 'tmp/' . $this->IDS . 'REBUTS.txt'; fwrite(fopen($nom, 'w'), $aeb19->construirArchivo()); $response = sfContext::getInstance()->getResponse(); $response->setContentType('text/plain'); $response->setHttpHeader('Content-Disposition', 'attachment; filename="Rebuts_Domiciliacio.txt'); $response->setHttpHeader('Content-Length', filesize($nom)); $response->setContent(file_get_contents($nom, false)); $response->sendHttpHeaders(); $response->sendContent(); throw new sfStopException(); break; case 'ACCIO_MULTIPLE': $SUBACCIO = $request->getParameter('select_accions_cursos'); $LCURSOS = $request->getParameter('curs_sel'); $PAR1 = $request->getParameter('par1'); switch ($SUBACCIO) { case 'excel': $this->getExcelCursos($LCURSOS); $this->MODE = 'CA'; break; case 'clone': foreach ($LCURSOS as $K => $idC) { CursosPeer::getCopyCurs($idC); } $this->MODE = 'CA'; break; case 'doInactiu': foreach ($LCURSOS as $K => $idC) { $OC = CursosPeer::retrieveByPK($idC); if ($OC instanceof Cursos) { $OC->setIsactiu(false)->save(); } } $this->MODE = 'CA'; break; case 'doActiu': foreach ($LCURSOS as $K => $idC) { $OC = CursosPeer::retrieveByPK($idC); if ($OC instanceof Cursos) { $OC->setIsactiu(true)->save(); } } $this->MODE = 'CA'; break; case 'doBaixa': foreach ($LCURSOS as $K => $idC) { $OC = CursosPeer::retrieveByPK($idC); if ($OC instanceof Cursos) { $OC->setInactiu(); } } $this->MODE = 'CA'; break; case 'crearCursFromCicle': $OC = CursosPeer::getCursFromCicle($PAR1); $this->FOC = new CursosForm($OC); $this->MODE = 'EDICIO_CONTINGUT'; break; } $this->CURSOS = CursosPeer::getCursos($this->CERCA['select'], $this->PAGINA, $this->CERCA['text'], $this->IDS, false, $this->CERCA['select2'] . '-01', $this->CERCA['select3'] . '-31'); break; } }
public function getCcc() { $ODB = DadesBancariesPeer::retrieveByPK($this->getIddadesbancaries()); if ($ODB instanceof DadesBancaries) { return $ODB->getCcc(); } else { return ""; } }
public static function initialize($idD, $idU, $idS) { $ODB = DadesBancariesPeer::retrieveByPK($idD); if (!$ODB instanceof DadesBancaries) { $ODB = new DadesBancaries(); $ODB->setIdusuari($idU); $ODB->setSiteId($idS); $ODB->setActiu(true); } return new DadesBancariesForm($ODB, array('IDS' => $idS, 'IDU' => $idU)); }
/** * Funció que mostra matrícules al llistat d'alumnes * */ function mostraMatricules($NOM, $MATRICULES, $OC, $ESTAT, $is_alumne) { $RET = ""; $RET .= ' <div id="' . $NOM . '">'; $RET .= ' <table width="100%" cellspacing="0" class="LLISTAT">'; if ($is_alumne) { $OU = MatriculesPeer::retrieveByPK(end($MATRICULES)->getIdmatricules())->getUsuaris(); $RET .= ' <tr><td class="TITOL" colspan="4">' . $OU->getNomComplet() . '</td></tr>'; } else { $RET .= ' <tr><td class="TITOL" colspan="4">' . $OC->getCodi() . ' - ' . $OC->getTitolcurs() . '</td></tr>'; } $RET .= ' <tr><td colspan="4"><br /></td></tr>'; $i = 1; foreach ($MATRICULES as $OM) { $C = $OM->getCursos(); $U = $OM->getUsuaris(); $ODB = DadesBancariesPeer::retrieveByPK($OM->getIddadesbancaries()); $TEXT_REDUCCIO = ""; if (!$OM->hasDescompte()) { $PREU = $OM->getPagat(); } else { $PREU = $OM->getPagat(); $TEXT_REDUCCIO = ' |R'; } if ($OM->getEstat() == $ESTAT) { $nom = ucwords(mb_strtolower($U->getNomComplet(), 'UTF-8')); $RET .= '<tr>'; if ($is_alumne) { $RET .= '<td width="60%"> <strong>' . link_to($C->getTitolcurs(), 'gestio/gMatricules?accio=E&IDM=' . $OM->getIdmatricules()) . '</strong> (' . $C->getCodi() . ') <br /> <span style="padding-left:19px; color:#888;"> ' . $U->getEmail() . ' - ' . $U->getTelefonString() . ' </span></td>'; } else { $RET .= '<td width="60%">' . str_pad($i++, 2, '0', STR_PAD_LEFT) . ' <strong>' . link_to($nom, 'gestio/gMatricules?accio=E&IDM=' . $OM->getIdmatricules()) . '</strong> (' . $U->getDni() . ') <br /> <span style="padding-left:19px; color:#888;"> ' . $U->getEmail() . ' - ' . $U->getTelefonString() . ' </span></td>'; } $RET .= '<td width="20%">' . $OM->getDatainscripcio('d-m-Y H:i') . '</td>'; $RET .= '<td width="10%">' . $OM->getPagat() . '€' . ($OM->hasDescompte() ? '|R' : '') . '</td>'; $RET .= '<td width="10%">' . link_to(image_tag('/images/template/page_white_edit.png') . '<span>Edita la matrícula</span>', 'gestio/gMatricules?accio=E&IDM=' . $OM->getIdmatricules(), array('class' => 'tt2')) . ' ' . link_to(image_tag('/images/template/page_white_get.png') . '<span>Imprimeix matrícula</span>', 'gestio/gMatricules?accio=PRINT_PAGAMENT&IDM=' . $OM->getIdmatricules(), array('class' => 'tt2')) . ' '; $RET .= $OM->getDatabaixa('Y-m-d') > 0 ? link_to(image_tag('/images/template/page_white_put.png') . '<span>Imprimeix baixa</span>', 'gestio/gMatricules?accio=PB&IDM=' . $OM->getIdmatricules(), array('class' => 'tt2')) . ' ' : ' '; $RET .= $OM->getComentari() != "Hospici" && $OM->getComentari() != "" ? '<a href="#" class="tt2">' . image_tag('/images/template/blog.png') . '<span>' . $OM->getComentari() . '</span></a>' : ' '; $RET .= '</td>'; $RET .= '</tr>'; } } $RET .= ' </table></div>'; return $RET; }