Rev 15403 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?phpnamespace LeadersLinked\Library;use Fpdf\Fpdf;use LeadersLinked\Model\Competency;use LeadersLinked\Model\CompetencyType;use LeadersLinked\Model\Behavior;use Laminas\Mvc\I18n\Translator;class JobDescriptionPdf extends FPDF {const MAX_Y_ADD_PAGE = 240;/**** @var string*/public $header;/**** @var string*/public $footer;/**** @var Translator*/public $translator;/*** Header PDF*/function Header() {if ($this->header != '') {$this->Image($this->header, 10, 8, 190);$this->SetY(55);}}/*** Custom Header PDF*/function customHeader() {$this->SetFont('Arial', 'B', 11);$this->Cell(60, 10, utf8_decode('DESCRIPCIÓN DE CARGOS DE TRABAJO'));$this->Ln(10);}/*** Footer PDF*/function Footer() {if ($this->footer != '') {$this->SetY(-40);$this->Image($this->footer, 10, $this->getY(), 190);}}/*** Section Signature*/function sectionSignature() {$this->SetFont('Arial', 'B', 9);$this->Cell(60, 10, utf8_decode('Elaborado por:'));$this->Ln(8);$this->Cell(60, 10, utf8_decode('Firma:'));$this->Ln(8);$this->Cell(60, 10, utf8_decode('Fecha:'));$this->Ln(8);}/*** Section Scale*/function sectionScale() {$this->SetFillColor(225, 255, 255);$this->SetTextColor(0);$this->SetFont('Arial', 'B', 9);$this->Cell(35, 8, utf8_decode(' Escala/Niveles:'), 1, 0, 'L', false);$this->SetFillColor(225, 255, 255);$this->SetTextColor(0);$this->SetFont('Arial', '', 9);$this->Cell(155, 8, utf8_decode(' 1: Mínimo 2: Medio 3: Medio-Alto 4: Alto N/A: No aplica '), 1, 'L', false);$this->Ln(15);}/*** Create Table* @param string $title* @param array $content*/function borderTable($title, $content) {// Header Table$this->SetFillColor(204, 204, 204);$this->SetDrawColor(0, 0, 0);$this->SetLineWidth(0);$this->SetFont('Arial', 'B', 9);$this->Cell(190, 6, utf8_decode($title), 1, 0, 'L', true);$this->Ln();// Body Table$this->SetFillColor(225, 255, 255);$this->SetTextColor(0);foreach ($content as $rs) {if (isset($rs['title'])) {$this->SetFont('Arial', 'B', 9);$this->Cell(40, 10, utf8_decode($rs['title']), 1, 0, 'L', false);$this->Cell(150, 10, utf8_decode($rs['content']), 1, 'L', false);$this->Ln();} else {$this->SetFont('Arial', '', 9);$this->MultiCell(190, 6, utf8_decode($rs['content']), 1, 'L', false);}$y = $this->getY();if($y >= self::MAX_Y_ADD_PAGE) {$this->addPage();}}$this->Ln(5);$y = $this->getY();if($y >= self::MAX_Y_ADD_PAGE) {$this->addPage();}}/*** Create Table* @param string $title* @param array $content*/function singleTable($title, $content) {// Header Table$this->SetFillColor(255, 255, 255);$this->SetDrawColor(0, 0, 0);$this->SetLineWidth(0);$this->SetFont('Arial', 'B', 9);$this->Cell(190, 6, utf8_decode($title), 0, 0, 'L', true);$this->Ln();// Body Table$this->SetFillColor(225, 255, 255);$this->SetTextColor(0);$this->SetFont('Arial', '', 9);foreach ($content as $rs) {if (isset($rs['title'])) {$this->Cell(40, 6, utf8_decode($rs['title']), 0, 0, 'L', false);$this->Cell(150, 6, utf8_decode($rs['content']), 0, 'L', false);$this->Ln();} else {$this->MultiCell(190, 6, utf8_decode($rs['content']), 0, 'L', false);}$y = $this->getY();if($y >= self::MAX_Y_ADD_PAGE) {$this->addPage();}}$this->Ln(5);$y = $this->getY();if($y >= self::MAX_Y_ADD_PAGE) {$this->addPage();}}/*** Create Competency Table* @param string $index* @param CompetencyType $competenceType* @param Competency $competency* @param Behavior[] $behaviors* @param boolean $last*/function competencyTable($index, $competenceType, $competency, $behaviors, $last ) {// Header Table$this->SetFillColor(255, 255, 255);$this->SetDrawColor(0, 0, 0);$this->SetLineWidth(0);$this->SetFont('Arial', 'B', 9);$this->MultiCell(190, 5, $index . '- ' . utf8_decode($competenceType->name) . ': ' . utf8_decode($competency->name), 0, 'L', false);// Body Table$this->SetFillColor(225, 255, 255);$this->SetTextColor(0);$this->SetFont('Arial', '', 9);$this->MultiCell(190, 6, utf8_decode(strip_tags($competency->description)), 0, 'L', false);$this->Ln(3);if ($behaviors) {$first = true;$max = count($behaviors);for ($i = 0; $i <$max; $i++) {if($first) {$this->SetFillColor(204, 204, 204);$this->SetDrawColor(0, 0, 0);$this->SetLineWidth(0);$this->SetFont('Arial', 'B', 9);/*$this->Cell(155, 6, utf8_decode('Conductas observables :'), 1, 0, 'L', true);$this->Cell(7, 6, '1', 1, 0, 'C', true);$this->Cell(7, 6, '2', 1, 0, 'C', true);$this->Cell(7, 6, '3', 1, 0, 'C', true);$this->Cell(7, 6, '4', 1, 0, 'C', true);$this->Cell(7, 6, 'N/A', 1, 0, 'C', true);*/$this->Cell(180, 6, utf8_decode('Conductas observables :'), 1, 0, 'L', true);$this->Cell(10, 6, 'Nivel', 1, 0, 'C', true);$this->Ln();// Body Table$this->SetFillColor(225, 255, 255);$this->SetTextColor(0);$this->SetFont('Arial', '', 9);$first = false;}$this->Cell(180, 6, utf8_decode($behaviors[$i]['description']), 1, 0, 'L', false);$this->Cell(10, 6, $behaviors[$i]['level'], 1, 0, 'C', false);/*$this->Cell(155, 6, utf8_decode($behaviors[$i]['description']), 1, 0, 'L', false);$this->Cell(7, 6, $behaviors[$i]['level'] == '1' ? 'X' : '', 1, 0, 'C', false);$this->Cell(7, 6, $behaviors[$i]['level'] == '2' ? 'X' : '', 1, 0, 'C', false);$this->Cell(7, 6, $behaviors[$i]['level'] == '3' ? 'X' : '', 1, 0, 'C', false);$this->Cell(7, 6, $behaviors[$i]['level'] == '4' ? 'X' : '', 1, 0, 'C', false);$this->Cell(7, 6, $behaviors[$i]['level'] == '0' ? 'X' : '', 1, 0, 'C', false);*/$this->Ln();$y = $this->getY();if( ($y >= self::MAX_Y_ADD_PAGE) && ($max - 1 > $i)) {$this->addPage();$first = true;}}}$this->Ln();if(!$last) {$y = $this->getY();if($y >= self::MAX_Y_ADD_PAGE) {$this->addPage();} else {}}}}