Exemple #1
0
 public static function namespaceGet($namespace)
 {
     $currentData = isset($_SESSION[$namespace]) && is_object($_SESSION[$namespace]) ? $_SESSION[$namespace] : new stdClass();
     $expiringData = isset(self::$_expiringData[$namespace]) && is_object(self::$_expiringData[$namespace]) ? self::$_expiringData[$namespace] : new stdClass();
     // @todo melhorar performance com SPL Iterator ou Datastructure
     $data = array();
     if (is_object($currentData)) {
         if (method_exists($currentData, 'toArray()')) {
             $data = $currentData->toArray();
         } else {
             foreach ($currentData as $key => $value) {
                 $data[(string) $key] = $value;
             }
         }
     }
     if (is_object($expiringData)) {
         if (method_exists($expiringData, 'toArray()')) {
             $data = array_merge($data, $expiringData->toArray());
         } else {
             foreach ($expiringData as $key => $value) {
                 $data[(string) $key] = $value;
             }
         }
     }
     if (count($data)) {
         return (object) $data;
     }
     return parent::namespaceGet($namespace);
 }
 public function saveAction()
 {
     $accountentryModel = new AccountentryModel();
     parent::saveAction();
     $this->_model->getAdapter()->beginTransaction();
     $message = '';
     try {
         $userSession = Zend_Session::namespaceGet('Gslab_Session');
         $cdusergslab = $userSession['user']->cdusergslab;
         $nrbatch = $this->_request->getParam('nrbatch');
         $nrinvoice = $this->_request->getParam('nrinvoice');
         $dtduedate = $this->_request->getParam('dtduedate');
         $vlinvoice = $this->_request->getParam('vlinvoice');
         $cdcovenant = $this->_request->getParam('cdcovenant');
         $dtduedate = new Zend_Date($dtduedate, 'YYYY-MM-dd HH:mm:ss');
         $dtduedate = $dtduedate->toString('YYYY-MM-dd HH:mm:ss');
         $array = array('nrbatch' => $nrbatch, 'dtduedate' => $dtduedate);
         $arrayAE = array('cdclient' => $cdcovenant, 'fgclienttype' => 'b', 'cdusergslab' => $cdusergslab, 'fgaccountentrytype' => 2, 'vlinvoicevalue' => $vlinvoice, 'nraccountentry' => $nrbatch, 'idinvoiceref' => $nrinvoice, 'dtdeadline' => $dtduedate, 'fgaccountcheck' => 0, 'dttransactiondate' => date("Y-m-d H:i:s"), 'dtentrydate' => date("Y-m-d H:i:s"));
         $this->_model->insert($array);
         $cdbilling = $this->_model->getAdapter()->lastInsertId($this->_controller);
         $accountentryModel->insert($arrayAE);
         $this->_model->getAdapter()->commit();
         echo $cdbilling;
     } catch (Exception $e) {
         $message = '';
         $this->_model->getAdapter()->rollBack();
         $message = 'Ocorreu um erro interno, portanto seus dados ainda não foram salvos na nossa base de dados, verifique os campos obrigatórios e tente novamente!';
     }
 }
 /**
  * Método construtor
  */
 public function __construct()
 {
     $oSessao = Zend_Session::namespaceGet('sessao');
     if (isset($oSessao['acl'])) {
         $this->_auth = Zend_Auth::getInstance();
         self::$_acl = $oSessao['acl'];
     }
 }
 public function logoutAction()
 {
     global $mySession;
     $mySession->TeeLoggedID = "";
     unset($mySession->TeeLoggedID);
     $defaultSession = Zend_Session::namespaceGet('default');
     foreach ($defaultSession as $key => $val) {
         if ($key !== 'adminId') {
             unset($mySession->{$key});
         }
     }
     $mySession->errorMsg = "You Have Logged Out Successfully.";
     $this->_redirect(APPLICATION_URL . 'index/index');
 }
Exemple #5
0
 /**
  *
  */
 public function init()
 {
     if (Zend_Session::isStarted() && Zend_Session::namespaceIsset('SwIRS_Web')) {
         $session = Zend_Session::namespaceGet('SwIRS_Web');
         $this->getRequest()->setParam('CustomerState', $session['customerState']);
         $this->getRequest()->setParam('CustomerUserId', $session['customerUserId']);
         $this->getRequest()->setParam('CustomerAccountId', $session['customerAccountId']);
         $this->getRequest()->setParam('SecondaryCustomerAccountId', $session['secondaryCustomerAccountId']);
         $this->getRequest()->setParam('Profile', $session['profile']);
         $webservice = $this->getResource('webservice');
         $webservice->setAuth(array('user' => $session['username'], 'password' => $session['password']));
     }
     $front = $this->getResource('FrontController');
     $front->setRequest($this->getRequest());
 }
 /**
  * Página inicial do módulo padrão
  */
 public function indexAction()
 {
     // Verifica se o usuário está logado
     parent::checkIdentity();
     // Zera as permissões do contribuinte
     $oSessao = new Zend_Session_Namespace('nfse');
     $oSessao->contribuinte = NULL;
     $this->view->contribuinte = NULL;
     $this->_session->id = NULL;
     $this->view->iUsuarioEscolhido = $oSessao->iUsuarioEscolhido;
     $aAuth = Zend_Session::namespaceGet('Zend_Auth');
     $oUsuario = Administrativo_Model_Usuario::getById($aAuth['storage']['id']);
     if ($oUsuario->getTipo() == 3) {
         $oBaseUrl = new Zend_View_Helper_BaseUrl();
         // Verifica se possui cadastros eventuais
         $aCadastrosEventuais = Contribuinte_Model_CadastroPessoa::getCadastrosParaLiberacao();
         if (count($aCadastrosEventuais) > 0) {
             $sMensagem = "Hà " . count($aCadastrosEventuais) . " Cadastros Eventuais Pendentes <br/>";
             $sMensagem .= " <a href=" . $oBaseUrl->baseUrl("/fiscal/usuario-eventual/listar-novos-cadastros") . "> Verificar </a>";
             DBSeller_Plugin_Notificacao::addAviso('F001', $sMensagem);
         }
         // Verifica se possui solicitações de cancelamento
         $aSolicitacoesCancelamento = Contribuinte_Model_SolicitacaoCancelamento::getAll();
         if (count($aSolicitacoesCancelamento) > 0) {
             $sMensagem = "Hà " . count($aSolicitacoesCancelamento) . " Solicitações de cancelamento de NFS-e <br/>";
             $sMensagem .= " <a href=" . $oBaseUrl->baseUrl("/fiscal/cancelamento-nfse/consultar") . "> Verificar </a>";
             DBSeller_Plugin_Notificacao::addAviso('F002', $sMensagem);
         }
     }
     // Tiver apenas um módulo redireciona para a default/index
     if (isset($this->view->user) && count($this->view->user->getModulos()) == 1) {
         $aModulos = each($this->view->user->getModulos());
         $sModulo = strtolower($aModulos['value']->getNome());
         $this->_redirector->gotoSimple('index', 'index', $sModulo);
     }
     // Recria as permissões do usuário
     new DBSeller_Acl_Setup(TRUE);
 }
 /**
  * Tela inicial do módulo fiscal
  *
  *  @return void
  */
 public function indexAction()
 {
     $aAuth = Zend_Session::namespaceGet('Zend_Auth');
     $oUsuario = Administrativo_Model_Usuario::getById($aAuth['storage']['id']);
     if ($oUsuario->getTipo() == 3) {
         $oBaseUrl = new Zend_View_Helper_BaseUrl();
         // Verifica se possui cadastros eventuais
         $aCadastrosEventuais = Contribuinte_Model_CadastroPessoa::getCadastrosParaLiberacao();
         if (count($aCadastrosEventuais) > 0) {
             $sMensagem = "Hà " . count($aCadastrosEventuais) . " Cadastros Eventuais Pendentes <br/>";
             $sMensagem .= " <a href=" . $oBaseUrl->baseUrl("/fiscal/usuario-eventual/listar-novos-cadastros") . "> Verificar </a>";
             DBSeller_Plugin_Notificacao::addAviso('F001', $sMensagem);
         }
         // Verifica se possui solicitações de cancelamento
         $aSolicitacoesCancelamento = Contribuinte_Model_SolicitacaoCancelamento::getAll();
         if (count($aSolicitacoesCancelamento) > 0) {
             $sMensagem = "Hà " . count($aSolicitacoesCancelamento) . " Solicitações de cancelamento de NFS-e <br/>";
             $sMensagem .= " <a href=" . $oBaseUrl->baseUrl("/fiscal/cancelamento-nfse/consultar") . "> Verificar </a>";
             DBSeller_Plugin_Notificacao::addAviso('F002', $sMensagem);
         }
     }
     $this->view->oculta_breadcrumbs = TRUE;
 }
 function thankyouAction()
 {
     $adminAddSession = Zend_Session::namespaceGet("adminAddSession");
     $id = (int) $this->_request->getParam('survey', 0);
     $currentTime = date("Y-m-d H:i:s");
     $code = $this->_request->getParam('c');
     if (isset($adminAddSession['consumer'])) {
         $consumer_id = $adminAddSession['consumer'];
     } else {
         $consumer = $this->_currentUser;
         $consumer_id = $consumer->id;
         // $id = 266;
         if ($consumer->getTableClass() == 'Admin') {
             // if admin get report from session (sms report)
             if (Zend_Session::namespaceIsset("AgentReports")) {
                 $session = Zend_Session::namespaceGet("AgentReports");
                 if (isset($session[$code]) && $session[$code] != null) {
                     $consumer_id = $session[$code];
                     $session[$code] = null;
                     // delete this accesscode
                     $this->view->adminredirect = true;
                     // for admin redirect
                 }
             }
         }
     }
     $reportModel = new Report();
     $duplicatedReport = $reportModel->fetchAll('report.accesscode = "' . $code . '"');
     $campaignModel = new Campaign();
     $campaign = $campaignModel->fetchRow("i2_survey_id =" . $id . " or " . "i2_survey_id_en =" . $id);
     //create a record in report table
     if (count($duplicatedReport) == 0) {
         $report = $reportModel->createRow();
         $report->consumer_id = $consumer_id;
         $report->campaign_id = $campaign->id;
         $report->create_date = $currentTime;
         $session = Zend_Session::namespaceGet("AgentReports");
         if (isset($session[$code]) && $session[$code] != null) {
             $report->source = $session[$code . '_source'];
             $session[$code . '_source'] = null;
         }
         //ham.bao 2011/04/29 admin add the report
         $adminAddSession = Zend_Session::namespaceGet("adminAddSession");
         if (isset($adminAddSession['consumer'])) {
             $this->view->adminredirect = true;
             $report->source = $adminAddSession['source'];
             $report->consumer_id = $adminAddSession['consumer'];
             $report->campaign_id = $adminAddSession['campaign'];
         }
         $report->state = 'NEW';
         $report->accesscode = $code;
         $reportId = $report->save();
         $this->view->reportId = $reportId;
         if ($this->view->adminredirect) {
             //ham.bao 2010-10-13 update the incoming_email state
             if (Zend_Session::namespaceIsset("IncomingEmail")) {
                 $emailSession = new Zend_Session_Namespace('IncomingEmail');
                 $incomingEmailModel = new IncomingEmail();
                 $incomingEmailModel->update(array('report_id' => $reportId), 'id=' . $emailSession->id);
                 $this->_helper->redirector('successconvert', 'email');
             }
             //ham.bao 2011/04/29 admin add the report
             if (isset($adminAddSession['consumer'])) {
                 $this->_helper->redirector('successconvert', 'email');
             }
         }
         //change state in campaign_particpation table
         //			$invitationModel = new CampaignInvitation();
         //			$invitation = $invitationModel->fetchRow("campaign_id =".$campaign->id." and consumer_id=".$consumer->id);
         //
         //			$participationModel = new CampaignParticipation();
         //			$participation = $participationModel->fetchRow('campaign_invitation_id = '.$invitation->id);
         //			$participation->state = 'REPORT SUBMITTED';
         //			$participation->save();
     } else {
         $this->view->reportId = $duplicatedReport[0]['id'];
     }
     $option = array($this->view->reportId, $consumer_id);
     $form = new ReportForm($option);
     $this->view->form = $form;
     if ($this->_request->isPost()) {
         $image = $form->getValue('image');
         if ($image != '') {
             $reportImage = new ReportImages();
             $row = $reportImage->createRow();
             $row->name = $image;
             $row->consumer = $consumer_id;
             $row->report = $this->view->reportId;
             $row->crdate = date('Y-m-d H:i:s');
             $row->save();
             $this->view->saved = 1;
         } else {
             $this->view->saved = -1;
         }
         //var_dump($image);die;
     }
     $this->view->consumer = $consumer_id;
     $this->view->title = $this->view->title = $this->view->translate("Wildfire") . " - " . $this->view->translate("Thanks_For_report");
 }
 public function saveallAction()
 {
     $AppraisalData = $this->_request->getParam('allAppraisalData');
     $dscomment = $this->_request->getParam('dscomment');
     $userSession = Zend_Session::namespaceGet('Gslab_Session');
     $dateAppraisalTyping = date('Y-m-d');
     $bootstrap = $this->getInvokeArg('bootstrap');
     $gslab_db = $bootstrap->getResource('db');
     $cdappraisalArray = array();
     $appraisalModel = new AppraisalModel();
     $appraisalcommentModel = new AppraisalcommentModel();
     $appraisalattributeModel = new AppraisalattributeModel();
     $requestexaminationModel = new RequestexaminationModel();
     $gslab_db->beginTransaction();
     try {
         foreach ($AppraisalData as $appr) {
             $arrayAppraisal = array();
             $arrayAppraisal['cdrequest'] = $appr[1];
             $arrayAppraisal['cdusergslab'] = $userSession['user']->cdusergslab;
             $arrayAppraisal['dtappraisaltyping'] = $dateAppraisalTyping;
             $cdappraisal = $appraisalModel->insert($arrayAppraisal);
             if (strlen($appr[0]) == 0) {
                 // Insere Observação
                 $arrayAppraisalComment = array();
                 $arrayAppraisalComment['cdappraisal'] = $cdappraisal;
                 $arrayAppraisalComment['dscomment'] = $dscomment;
                 $appraisalcommentModel->insert($arrayAppraisalComment);
                 foreach ($appr[3] as $appAttr) {
                     if ($appAttr['name'] != 'cdappraisaltyping') {
                         // Explode a string em um Array onde as posições:
                         //      0 - CdRequestExamination;  1 - CdExamination;  2 - CdAttribute; 3 - CdExaminationMaterial
                         $txtidentifier = "appraisal_input_";
                         $identifierAppraisal = str_replace($txtidentifier, "", $appAttr['name']);
                         $arrayIdent = explode("_", $identifierAppraisal);
                         $arrayAppraisalAttribute = array();
                         $arrayAppraisalAttribute['cdrequestexamination'] = $arrayIdent[0];
                         $arrayAppraisalAttribute['cdappraisal'] = $cdappraisal;
                         $arrayAppraisalAttribute['cdattribute'] = $arrayIdent[2];
                         $arrayAppraisalAttribute['cdexaminationmaterial'] = $arrayIdent[3];
                         $arrayAppraisalAttribute['vlattribute'] = $appAttr['value'];
                         $appraisalattributeModel->insert($arrayAppraisalAttribute);
                         $requestexaminationModel->update(array("fgstatus" => 5), "cdrequestexamination = {$appr['2']}");
                     }
                 }
                 $cdappraisalArray[] = $cdappraisal;
             } else {
                 $appraisalattributeModel->delete("cdappraisal = {$appr['0']}");
                 $appraisalcommentModel->delete("cdappraisal = {$appr['0']}");
                 if (strlen($appr[4]) > 0) {
                     // Insere Observação
                     $arrayAppraisalComment = array();
                     $arrayAppraisalComment['cdappraisal'] = $appr[0];
                     $arrayAppraisalComment['dscomment'] = $appr[4];
                     $appraisalcommentModel->insert($arrayAppraisalComment);
                 }
                 foreach ($appr[3] as $appAttr) {
                     if ($appAttr['name'] != 'cdappraisaltyping') {
                         // Explode a string em um Array onde as posições:
                         //      0 - CdRequestExamination;  1 - CdExamination;  2 - CdAttribute; 3 - CdExaminationMaterial
                         $txtidentifier = "appraisal_input_";
                         $identifierAppraisal = str_replace($txtidentifier, "", $appAttr['name']);
                         $arrayIdent = explode("_", $identifierAppraisal);
                         $arrayAppraisalAttribute = array();
                         $arrayAppraisalAttribute['cdrequestexamination'] = $arrayIdent[0];
                         $arrayAppraisalAttribute['cdappraisal'] = $appr[0];
                         $arrayAppraisalAttribute['cdattribute'] = $arrayIdent[2];
                         $arrayAppraisalAttribute['cdexaminationmaterial'] = $arrayIdent[3];
                         $arrayAppraisalAttribute['vlattribute'] = $appAttr['value'];
                         $appraisalattributeModel->insert($arrayAppraisalAttribute);
                         $requestexaminationModel->update(array("fgstatus" => 5), "cdrequestexamination = {$appr['2']}");
                     }
                 }
                 $cdappraisalArray[] = $appr[0];
             }
         }
         $gslab_db->commit();
         $return[0] = 1;
         $return[1] = "Todas os resultados digitados foram salvos com sucesso!";
         $return[2] = $cdappraisalArray;
         $this->view->saveall = $return;
     } catch (Exception $e) {
         $gslab_db->rollback();
         $return[0] = 0;
         $return[1] = "Os resultados digitados não puderam ser salvos!";
         $return[2] = '';
         $this->view->saveall = $return;
     }
 }
Exemple #10
0
 public static function provinceTax($amount = 0)
 {
     if (Zend_Session::namespaceIsset('order')) {
         $session = Zend_Session::namespaceGet('order');
     } else {
         throw new Exception('Session namespace "order" is undefined.
             Thus state id is not set. It is not possible to get TVQ rate.
             Modify code to set state if or create the session namespace with
             stateId parameter.');
     }
     $oTaxe = new TaxesObject();
     $taxes = $oTaxe->getTaxData($session['stateId']);
     $rate = $taxes['TP_Rate'] / 100;
     if ($taxes['TP_Code'] == "QC") {
         $taxValue = ($amount + self::federalTax($amount)) * $rate;
     } else {
         $taxValue = $amount * $rate;
     }
     $taxValue = (double) $taxValue;
     $session = new Zend_Session_Namespace('order');
     $session->order['rateProv'] = $taxes;
     $session->tvq = $taxValue;
     return $taxValue;
 }
    public function generateprotocolAction($cdrequest = 1)
    {
        require_once 'fpdf/pdf_protocol.php';
        $gslabSession = Zend_Session::namespaceGet('Gslab_Session');
        $cdcompany = $gslabSession['user']->cdcompany;
        $companyModel = new CompanyModel();
        $requestModel = new RequestModel();
        $sampleModel = new RequestexaminationsampleModel();
        $clientModel = new ClientModel();
        $covenantModel = new CovenantModel();
        $forwardModel = new ForwardModel();
        $examinationModel = new RequestexaminationModel();
        $companyData = $companyModel->fetchRow('cdcompany = ' . $cdcompany);
        $requestData = $requestModel->fetchRow('cdrequest = ' . $cdrequest);
        $sampleData = $sampleModel->fetchRow('cdrequest = ' . $cdrequest);
        $clientData = $clientModel->fetchRow('cdclient = ' . $requestData->cdclient);
        $covenantData = $covenantModel->fetchRow('cdcovenant = ' . $requestData->cdcovenant);
        $forwardData = $forwardModel->fetchRow('cdforward = ' . $requestData->cdforward);
        $dtbirth = new Zend_Date($clientData->dtbirth, 'dd-MM-YYYY');
        $dtrequest = new Zend_Date($requestData->dtrequest, 'dd-MM-YYYY HH:mm');
        $dtdeadline = new Zend_Date($requestData->dtdeadline, 'dd-MM-YYYY HH:mm');
        $year = $dtbirth->toString('YYYY');
        $month = $dtbirth->toString('MM');
        $day = $dtbirth->toString('dd');
        $today = new Zend_Date();
        $tdYear = $today->toString('YYYY');
        $tdMonth = $today->toString('MM');
        $tdDay = $today->toString('dd');
        $nrage = 0;
        $nrage = GslabUtils::calcAgeDifferenceShort($clientData->dtbirth);
        $idade = GslabUtils::calcula_idade($clientData->dtbirth);
        if ($clientData->fgsex == 1) {
            $sexo = 'M';
        } else {
            $sexo = 'F';
        }
        if ($tdMonth < $month || $tdMonth == $month && $tdDay < $day) {
            $nrage--;
        }
        $pdf = new PDF_PROTOCOL();
        $pdf->AddPage();
        $pdf->SetFont('Courier', 'B', 11);
        $pdf->ln(55);
        $pdf->Cell(0, 0, utf8_decode(strtoupper($companyData->nmcompany)), 0, 1, 'C');
        $pdf->Cell(0, 8, utf8_decode('LABORATÓRIO DE ANÁLISES CLÍNICAS'), 0, 2, 'C');
        $pdf->Cell(0, -5, str_repeat('_', 81), 0, 1, 'L');
        $pdf->ln(8);
        $pdf->SetFont('Helvetica', '', 9);
        $pdf->Cell(0, 0, utf8_decode(strtoupper($companyData->nmstreet) . ', ' . $companyData->nrnumber), 0, 1, 'L');
        $pdf->ln(4);
        $pdf->Cell(0, 0, 'COMPROVANTE DE COLETA', 0, 1, 'L');
        $pdf->Cell(0, 0, utf8_decode(strtoupper($companyData->nmneighborhood)) . ' - Fone: (47) 3427-3668', 0, 1, 'R');
        //ADICIONAR TELEFONE NA BASE
        $pdf->ln(4);
        $pdf->Cell(0, 0, utf8_decode('Ficha: ') . $requestData->cdcompany . "-" . $requestData->cdrequest, 0, 1, 'L');
        $pdf->Cell(0, 0, 'Senha: 2301', 0, 1, 'R');
        $pdf->ln(8);
        $pdf->Cell(0, 0, utf8_decode('PRONTUÁRIO'), 0, 1, 'L');
        $pdf->ln(4);
        $pdf->SetFont('Helvetica', '', 10);
        $pdf->Cell(15, 5, utf8_decode('Amostra: '), 0, 0, 'L');
        $pdf->Cell(0, 5, $pdf->SetFont('Helvetica', 'BU', 10) . $sampleData->nmbarcodesample, 0, 1, 'L');
        $pdf->ln(4);
        $pdf->SetFont('Helvetica', 'BU', 10);
        $pdf->Write(0, utf8_decode(strtoupper($clientData->nmclient)));
        $pdf->SetFont('Helvetica', '', 10);
        $pdf->ln(8);
        $pdf->Write(0, utf8_decode('Idade: ' . $nrage));
        $pdf->Write(0, utf8_decode(' Sexo: ' . $sexo));
        $pdf->ln(6);
        $pdf->Write(0, utf8_decode('Convênio: ' . $covenantData->nmcovenant));
        $pdf->ln(6);
        $pdf->Write(0, utf8_decode('Médico: ' . $forwardData->idmaincrm . ' - ' . $forwardData->nmforward));
        $pdf->ln(6);
        $pdf->Write(0, utf8_decode('Coleta: ' . strtoupper($companyData->cdcompany . ' - ' . $companyData->nmfantasyname)));
        $pdf->ln(6);
        $pdf->Write(0, utf8_decode('Data e Hora: ') . $dtrequest);
        $pdf->ln(4);
        $pdf->SetFont('Courier', 'B', 11);
        $pdf->Cell(0, 0, str_repeat('_', 81), 0, 1, 'L');
        /* CAIXA LATERAL */
        $pdf->SetFont('Helvetica', '', 10);
        $pdf->SetY(89);
        $pdf->SetX(90);
        $pdf->drawTextBox(utf8_decode('Provável local e data da entrega:
Local: ' . strtoupper($companyData->nmfantasyname) . '
Data: ' . $dtdeadline . '
Salvo quando ocorrer:
    1-	Imprevistos técnicos
    2-	Bloqueio de resultado pelo controle de qualidade
    3-	Atraso no fornecimento de reagentes
Autorizo a coleta do(s) exame(s) acima citado(s) e declaro estar ciente dos riscos quanto ao surgimento de possíveis hematomas no local da punção.
Assinatura do cliente e/ou responsável:__________________________________________'), 109, 50, 'L', 'M');
        /* doze exames */
        $Exames = $examinationModel->fetchAll($examinationModel->getExaminationProtocol($cdrequest));
        $pdf->ln(13);
        // Exames
        $pdf->SetFont('Helvetica', 'B', 9);
        $pdf->SetWidths(array(50, 23, 18));
        $pdf->SetX(10);
        $pdf->Row(array(utf8_decode('Exames'), utf8_decode('Material'), utf8_decode('Status')));
        $pdf->SetFont('Helvetica', '', 9);
        $i = 0;
        foreach ($Exames as $examination) {
            if ($examination['nmmaterial'] == 2) {
                $status = 'Faltante';
            } else {
                $status = 'OK';
            }
            if ($i == 11) {
                $pdf->SetY(148);
            }
            $pdf->SetX(10);
            $pdf->Row(array(utf8_decode($examination['nmexamination']), utf8_decode($examination['nmmaterial']), $status));
            $i++;
        }
        $pdf->ln(5);
        /* -------------------------------------------------------------- */
        /* PESQUISA DE SATISFAÇÃO */
        $pdf->SetFont('Helvetica', '', 7);
        $pdf->SetY(205);
        $pdf->Cell(0, 0, str_repeat(' -', 125), 0, 1, 'L');
        $pdf->SetX(10);
        $pdf->Write(5, utf8_decode('Prezado cliente: com o objetivo de melhorarmos cada vez mais a'));
        $pdf->ln(3);
        $pdf->SetX(10);
        $pdf->Write(5, utf8_decode('qualidade dos nossos serviços e o atendimento à você, solicitamos'));
        $pdf->ln(3);
        $pdf->SetX(10);
        $pdf->Write(5, utf8_decode('a sua gentileza preenchendo o formulário abaixo.'));
        $pdf->ln(5);
        $pdf->SetFont('Helvetica', 'B', 7);
        $pdf->SetWidths(array(30, 13, 13, 13, 13));
        $pdf->SetX(10);
        $pdf->Row(array(utf8_decode('Assinale sua opinião'), utf8_decode('Ótimo'), 'Bom', 'Regular', 'Ruim'));
        $pdf->SetFont('Helvetica', '', 7);
        $pdf->SetX(10);
        $pdf->Row(array(utf8_decode('1. Como foi o atendimento ao telefone?'), '', '', '', ''));
        $pdf->SetX(10);
        $pdf->Row(array(utf8_decode('2. Como foi o atendimento da recepção?'), '', '', '', ''));
        $pdf->SetX(10);
        $pdf->Row(array(utf8_decode('3. Quanto ao conforto e bem estar na sala de espera?'), '', '', '', ''));
        $pdf->SetX(10);
        $pdf->Row(array(utf8_decode('4. Quanto à coleta do material para o exame?'), '', '', '', ''));
        $pdf->SetX(10);
        $pdf->Row(array(utf8_decode('5. Quanto ao prazo e entrega dos resultados?'), '', '', '', ''));
        $pdf->SetY(215);
        $pdf->SetX(117);
        $pdf->Write(5, utf8_decode('6. Como conheceu o Laboratório? _______________________________'));
        $pdf->ln(7);
        $pdf->SetX(117);
        $pdf->Write(5, utf8_decode('7. Você indicaria o laboratório para outras pessoas?  (  ) Sim   (  ) Não'));
        $pdf->ln(7);
        $pdf->SetX(117);
        $pdf->Write(5, utf8_decode('Se NÃO, por quê?____________________________________________'));
        $pdf->ln(7);
        $pdf->SetX(117);
        $pdf->Write(5, utf8_decode('8. Conhece nosso '));
        $pdf->SetFont('Helvetica', 'BU', 7);
        $pdf->Write(5, utf8_decode('Programa de Coleta Domiciliar'));
        $pdf->SetFont('Helvetica', '', 7);
        $pdf->Write(5, utf8_decode(' (tel: 3433-2127)?'));
        $pdf->ln(7);
        $pdf->SetX(117);
        $pdf->Write(5, utf8_decode('(  ) Sim   (  ) Não'));
        $pdf->ln(7);
        $pdf->SetX(117);
        $pdf->Write(5, utf8_decode('9. Sugestões e críticas:_______________________________________'));
        $pdf->ln(7);
        $pdf->SetX(117);
        $pdf->Write(5, utf8_decode('__________________________________________________________'));
        $pdf->ln(7);
        $pdf->SetX(117);
        $pdf->Write(5, utf8_decode('__________________________________________________________'));
        $pdf->Output();
        //IMPRIME O PDF NA TELA
        $pdf->Output('teste_pro.pdf', "D");
        //IMPRIME O PDF NO ARQUIVO
    }
 /**
  * Obtem todas as notificações setadas no sistema
  *
  * @return array todas as notificações
  */
 public static function getAll()
 {
     $aSessaoNotificacao = Zend_Session::namespaceGet('notificacoes');
     return $aSessaoNotificacao;
 }
 public static function buildTypingReport($cdrequest, $cdmap, $renderTypingParams, $direction, $nrsample, $refObj = null)
 {
     die;
     if ($refObj == null) {
         $refObj = new Result_AppraisaltypingController();
     }
     ini_set('xdebug.var_display_max_depth', -1);
     // Sessão de digitação de resultados
     $typingExamsSessionWrite = new Zend_Session_Namespace('TypingExamsData');
     $typingExamsSessionRead = Zend_Session::namespaceGet('TypingExamsData');
     // A kind of cache, is it in session? get data from it, otherwise execute the query
     $request = null;
     if ($cdrequest) {
         if (!isset($typingExamsSessionRead['requests']) || count($typingExamsSessionRead['requests']) == 0) {
             try {
                 $requests = $refObj->getAppraisalRequestData($cdrequest, $cdmap, $renderTypingParams);
             } catch (Exception $req) {
                 echo "Não foi possível acessar os resultados: " . $req->getMessage();
             }
             $typingExamsSessionWrite->requests = $requests;
         } else {
             $requests = $typingExamsSessionRead['requests'];
         }
         // Organizar os requests em ordem
         // Ex: sortedRequests[cdrequest = 25] = requests;
         //
         $sortedRequests = array();
         foreach ($requests as $request) {
             $cdrequest = $request['cdrequest'];
             if (!isset($sortedRequests["{$cdrequest}"])) {
                 $sortedRequests["{$cdrequest}"] = array();
             }
             array_push($sortedRequests["{$cdrequest}"], $request);
         }
         //
         // Definir exames pais
         //
         $fexams = array();
         // father exams
         foreach ($sortedRequests as $requestId => $requestExaminations) {
             foreach ($requestExaminations as $examId => $exam) {
                 if ($exam['cdexaminationmaterialparent'] == null) {
                     // adiciona o exame ao array de exames pais]
                     array_push($fexams, $exam);
                     // remove o exame pai do array base
                     unset($sortedRequests[$requestId][$examId]);
                 }
             }
             // Se a requisição não tem nenhum exame restante, remove o index dela
             $count = count($sortedRequests[$requestId]);
             if ($count == 0) {
                 unset($sortedRequests[$requestId]);
             }
         }
         //
         // Inserir filhos nos pais
         foreach ($sortedRequests as $requestId => $requestExaminations) {
             foreach ($requestExaminations as $examId => $exam) {
                 foreach ($fexams as $fexamId => $fexam) {
                     if ($exam['cdexaminationmaterialparent'] == $fexam['cdexaminationmaterial']) {
                         // adiciona o exame ao array de sub exames do pai
                         //                            if(! isset($fexams[$fexamId]['subexams']))
                         //                                $fexams[$fexamId]['subexams'] = array();
                         ////
                         //                            array_push($fexams[$fexamId]['subexams'], $exam);
                         //                            echo "Adicionando o exame: ". $exam['cdrequestexamination'] . " - ". $exam['nmexamination'] ."<br />";
                         //                            echo "Ao fexams[fexamId]: ". $fexamId;
                         // remove o exame filho do array base
                         //
                         unset($sortedRequests[$requestId][$examId]);
                         if (count($sortedRequests[$requestId]) == 0) {
                             unset($sortedRequests[$requestId]);
                         }
                         break;
                     }
                 }
             }
         }
         // Se houver algum exame que tem pai porém não está em nenhuma requisição
         // Adiciona-los-ei como um pai, porém isto significa inconsistência nos dados
         if (count($sortedRequests) > 0) {
             $newArray = array();
             foreach ($sortedRequests as $newRequests) {
                 array_push($newArray, $newRequests[0]);
             }
             // remove hierarquia do cdrequest
             $fexams = array_merge($fexams, $newArray);
         }
         // find correct postion for start typing
         if (isset($nrsample)) {
             $index = 0;
             foreach ($fexams as $exam) {
                 if ($exam['nmbarcodesample'] == $nrsample) {
                     break;
                 }
                 $index++;
             }
             $position = $index;
         }
         // Max index array number
         $maxPosition = count($fexams) - 1;
         // Define the position in array
         if (!isset($position)) {
             $position = isset($typingExamsSessionRead['position']) ? $typingExamsSessionRead['position'] : 0;
         }
         if ($direction != null) {
             if (strcasecmp($direction, "left") == 0) {
                 $position--;
             } else {
                 if (strcasecmp($direction, "right") == 0) {
                     $position++;
                 }
             }
             $position = $position < 0 ? $position = 0 : $position > $maxPosition ? $position = $maxPosition : $position;
         } else {
         }
         $typingExamsSessionWrite->position = $position;
         $typingExamsSessionWrite->maxposition = $maxPosition;
         $exam = $fexams[$position];
         //            if(array_key_exists(5, $fexams)){
         //                var_dump($fexams); die;
         //                $exam = $fexams[5];
         //            }else{
         //                $exam = false;
         //            }
         if ($exam) {
             $fields = $refObj->getIdentifierFields($exam);
             $refObj->view->fieldsetdateinputsnewwindow = $fields;
             // if examination has no sons
             if (!isset($exam['subexams'])) {
                 $subexamsdata = $refObj->getCDSubExams($exam['cdexaminationmaterial']);
                 $sb = 0;
                 $exam['subexam'] = array();
                 foreach ($subexamsdata as $examSub) {
                     // Dados do subexame do exame
                     $subexam = array();
                     $attrib = array();
                     $subexam['nmexam'] = $examSub['nmexamination'];
                     $subexam['cdexaminationmaterial'] = $examSub['cdexaminationmaterial'];
                     $attrib = $refObj->getExamAttribs($examSub['cdexaminationmaterial']);
                     // Atributos do subexame do exame
                     $attributes = array();
                     $attr = array();
                     foreach ($attrib as $attribs) {
                         $attr['cdattribute'] = $attribs['cdattribute'];
                         //                            $attr['cdrequestexamination'] = $attribs['cdrequestexamination'];
                         $attr['cdexamination'] = $attribs['cdexamination'];
                         $attr['nmexam'] = $attribs['nmexamination'];
                         array_push($attributes, $attr);
                     }
                     // Adiciona os atributos do subexame para ele
                     $subexam['attributes'] = array();
                     $subexam['attributes'] = $attributes;
                     //Adiciona os subexames para o exame
                     $exam['subexam'][$sb] = $subexam;
                     // Array para os exames
                     $exams = array();
                     // Adiciona os exames ao array de resultados de exames
                     array_push($exams, $exam);
                     // Index por posição
                     $sb++;
                 }
             }
             //  <!-- Início do relatório em html -->
             $div = "<div id='appraisal_div'>";
             if (!empty($exams)) {
                 foreach ($exams as $exam) {
                     // Título, material e método do exame
                     $div .= "<div class='exam'>\r\n                            <h1> " . $exam['nmexamination'] . "</h1>\r\n                            <span> Material: " . $exam['nmmaterial'] . " </span>\r\n                            <span> Método: " . $exam['nmmethod'] . " </span>\r\n                            <input type='hidden' name='cdappraisal' class='cdappraisal'>\r\n                        </div>";
                     // Texto de valores de referência
                     $div .= "<div id='ref_title' class='ref_title'>\r\n                                <div></div>\r\n                                <div>\r\n                                    <h1> Valores de Referência </h1>\r\n                                </div>\r\n                            </div>";
                     // Pegar dados do sub-exame
                     $cont_sub = 0;
                     foreach ($exam['subexam'] as $subexam) {
                         // Pegar os fatores em relação aos atributos
                         $factors = $refObj->getExamFactors($subexam['cdexaminationmaterial']);
                         //                        $subexam['cdsubexaminations'] = $cdsubexaminations;
                         //                        var_dump($factors);
                         $exam['subexam'] = array();
                         //                            foreach($subexamsdata as $examSub){
                         if (!empty($factors)) {
                             // Pego o primeiro fator do atributo
                             // como base para saber os tipos que tenho
                             $fgfactor = 1;
                             foreach ($factors as $factor) {
                                 if ($factor['fgfactor'] > $fgfactor) {
                                     $fgfactor = $factor['fgfactor'];
                                 }
                             }
                             // Fazer o calculo do width usando o número de fatores atrelados à este exame
                             $width = 100 / $fgfactor;
                             $div .= "<div class='sub_exam'>";
                             $div .= "<div class='titles'>";
                             $div .= "<!-- Nome do subexame -->\r\n                                                <div id='exam_title' class='exam_title'> \r\n                                                    <h1> " . $subexam['nmexam'] . " </h1>  \r\n                                                </div>\r\n\r\n                                                <!-- Verificar a quantidade de fatores e dividir o width -->";
                             //
                             // Início div class ref_sex_type_father_div
                             $div .= "<div class='ref_sex_type_father_div'>";
                             if ($fgfactor == 1) {
                                 $div .= "<div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                                        Idade \r\n                                                                    </div>";
                             } else {
                                 if ($fgfactor == 2) {
                                     $div .= "\r\n                                                                <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                                    Masculino\r\n                                                                </div>\r\n                                                                <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                                    Feminino\r\n                                                                </div>";
                                 } else {
                                     if ($fgfactor == 3) {
                                         $div .= "\r\n                                                                <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                                    Idade \r\n                                                                </div>";
                                         $div .= "\r\n                                                                <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                                    Masculino\r\n                                                                </div>\r\n                                                                <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                                    Feminino\r\n                                                                </div>";
                                     }
                                 }
                             }
                             // Fim div class ref_sex_type_father_div
                             $div .= " </div>";
                             // Fim div class titles
                             $div .= "</div>";
                             //$nrAttributes = count($attribute['cdattribute']);
                             $attrctrl = 0;
                             foreach ($subexam['attributes'] as $attribute) {
                                 // Pegar os fatores em relação aos atributos
                                 $factors = $refObj->getExamFactors($subexam['cdexaminationmaterial'], $attribute['cdattribute']);
                                 // Inicia Array para controle do maximo e minimo absurdos
                                 // para gerar SCRIPT validador da entrada de dados para o atributo
                                 $absoluteFactorValues = array();
                                 $absoluteFactorValues['attributename'] = null;
                                 $absoluteFactorValues['min'] = null;
                                 $absoluteFactorValues['max'] = null;
                                 // Se houve um erro nos dados do atributo
                                 // Pega o valor do primeiro fator encontrado
                                 $ctrlfactor = 1;
                                 foreach ($factors as $factor) {
                                     $nmmeasurementunit = $factor['nmmeasurementunit'];
                                     $randomName = $exam['cdrequestexamination'] . "_" . $attribute['cdexamination'] . "_" . $attribute['cdattribute'] . "_" . $subexam['cdexaminationmaterial'];
                                     // it's not safe!
                                     $div .= "<div style='width: 100%; float: left; margin-top: 5px;'>";
                                     $div .= "<div class='attributes'>";
                                     // Define a Classe do Input a fim de inserção das máscaras ao mesmo
                                     if ($factor['fgdatatype'] != null) {
                                         if ($factor['fgdatatype'] == 1) {
                                             $datatype = 'numeric';
                                         } else {
                                             if ($factor['fgdatatype'] == 2) {
                                                 $datatype = 'mask_price_db';
                                             } else {
                                                 if ($factor['fgdatatype'] == 3) {
                                                     $datatype = 'alpha';
                                                 } else {
                                                     $datatype = 'datepicker';
                                                 }
                                             }
                                         }
                                     }
                                     if ($ctrlfactor == 1) {
                                         $div .= "  <ul>\r\n                                                                            <li>\r\n                                                                                <div>\r\n                                                                                    " . $factor['nmattribute'] . "\r\n                                                                                </div>\r\n                                                                                <div>\r\n\r\n                                                                                    <input type='text' id='appraisal_input_" . $randomName . "' name='appraisal_input_" . $randomName . "'\r\n                                                                                        class='" . $datatype . "'/>\r\n                                                                                    " . $nmmeasurementunit . "\r\n\r\n                                                                                </div>\r\n                                                                            </li>\r\n                                                                        </ul>";
                                         $absoluteFactorValues['attributename'] = $randomName;
                                     }
                                     $div .= "</div>";
                                     $div .= "<div id='val_attributes_ref' class='val_attributes_ref'>";
                                     // TODO HERE!
                                     // Trocar esta verificação
                                     if (count($subexam['attributes']) > 1) {
                                         // TODO HERE!
                                         // Looping através de todos os fatores deste atributo
                                         // Verificar qual o tipo de fator
                                         // Colocar os valores
                                         // Idades
                                         if ($fgfactor == 1) {
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                 $div .= "<li>\r\n                                                                                    Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                                                </li>";
                                             } else {
                                                 if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (!isset($factor['nrmaxage']) && $factor['nrmaxage'] == '')) {
                                                     $div .= "<li>\r\n                                                                                    ---\r\n                                                                                </li>";
                                                 } else {
                                                     if (!isset($factor['nrmaxage']) && $factor['nrmaxage'] != '') {
                                                         $div .= "<li>\r\n                                                                                    Abaixo de " . $factor['nrmaxage'] . " Anos\r\n                                                                                </li>";
                                                     } else {
                                                         $div .= "<li>\r\n                                                                                    Acima de " . $factor['nrminage'] . " Anos\r\n                                                                                </li>";
                                                     }
                                                 }
                                             }
                                             $div .= "</ul> </div>";
                                             // Trata o valor minimo para o atributo
                                             if ($factor['nrminage'] != null && $absoluteFactorValues['min'] == null) {
                                                 $absoluteFactorValues['min'] = $factor['nrminage'];
                                             } else {
                                                 if ($factor['nrminage'] < $absoluteFactorValues['min']) {
                                                     $absoluteFactorValues['min'] = $factor['nrminage'];
                                                 }
                                             }
                                             // Trata o valor maximo para o atributo
                                             if ($factor['nrmaxage'] != null && $absoluteFactorValues['max'] == null) {
                                                 $absoluteFactorValues['max'] = $factor['nrmaxage'];
                                             }
                                             if ($factor['nrmaxage'] > $absoluteFactorValues['max']) {
                                                 $absoluteFactorValues['max'] = $factor['nrmaxage'];
                                             }
                                         } else {
                                             if ($fgfactor == 2) {
                                                 // Fatores masculinos
                                                 $div .= "<div style='width:{$width}%;'> <ul>";
                                                 if ($factor['fggender'] == 1) {
                                                     $div .= "<li>\r\n                                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                                </li>";
                                                 } else {
                                                     $div .= "<li>\r\n                                                                                --- \r\n                                                                                </li>";
                                                 }
                                                 $div .= "</ul> </div>";
                                                 // Fatores femininos
                                                 $div .= "<div style='width:{$width}%;'> <ul>";
                                                 if ($factor['fggender'] == 2) {
                                                     $div .= "<li>\r\n                                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                                </li>";
                                                 } else {
                                                     $div .= "<li>\r\n                                                                                --- \r\n                                                                                </li>";
                                                 }
                                                 $div .= "</ul></div>";
                                                 // Trata o valor minimo para o atributo
                                                 if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                                     $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                 } else {
                                                     if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                         $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                     }
                                                 }
                                                 // Trata o valor maximo para o atributo
                                                 if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                                     $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                 }
                                                 if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                                     $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                 }
                                             } else {
                                                 if ($fgfactor == 3) {
                                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                                     if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                         $div .= "<li>\r\n                                                                                    Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                                                </li>";
                                                     } else {
                                                         if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                             $div .= "<li>\r\n                                                                                    Abaixo de " . $factor['nrmaxage'] . " Anos\r\n                                                                                </li>";
                                                         } else {
                                                             if (!isset($factor['nrmaxage']) || $factor['nrmaxage'] == '') {
                                                                 $div .= "<li>\r\n                                                                                    Acima de " . $factor['nrminage'] . " Anos\r\n                                                                                </li>";
                                                             } else {
                                                                 $div .= "<li>\r\n                                                                                    Nenhuma idade fornecida.\r\n                                                                                </li>";
                                                             }
                                                         }
                                                     }
                                                     $div .= "</ul> </div>";
                                                     // Fatores masculinos
                                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                                     $div .= "<li>\r\n                                                                                        4,50 - 5,90\r\n                                                                                    </li>";
                                                     $div .= "</ul> </div>";
                                                     // Fatores femininos
                                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                                     $div .= "<li>\r\n                                                                                        4,50 - 5,90\r\n                                                                                    </li>";
                                                     $div .= "</ul> </div>";
                                                     // Trata o valor minimo para o atributo
                                                     if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                                         $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                     } else {
                                                         if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                             $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                         }
                                                     }
                                                     // Trata o valor maximo para o atributo
                                                     if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                                         $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                     }
                                                     if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                                         $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                     }
                                                 }
                                             }
                                         }
                                     } else {
                                         if ($fgfactor == 1) {
                                             $div .= "<div style='width:{$width}%;'><ul>";
                                             $div .= "<li style='width: 100%; float: left;'>";
                                             if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                 $div .= "\r\n                                                                                Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                                            ";
                                             } else {
                                                 if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (!isset($factor['nrmaxage']) && $factor['nrmaxage'] == '')) {
                                                     $div .= "\r\n                                                                                ---\r\n                                                                            ";
                                                 } else {
                                                     if (!isset($factor['nrmaxage']) && $factor['nrmaxage'] != '') {
                                                         $div .= " Abaixo de " . $factor['nrmaxage'] . " Anos ";
                                                     } else {
                                                         $div .= "Acima de " . $factor['nrminage'] . " Anos ";
                                                     }
                                                 }
                                             }
                                             $div .= "</li></ul>";
                                             $div .= "</div>";
                                             // Trata o valor minimo para o atributo
                                             if ($factor['nrminage'] != null && $absoluteFactorValues['min'] == null) {
                                                 $absoluteFactorValues['min'] = $factor['nrminage'];
                                             } else {
                                                 if ($factor['nrminage'] < $absoluteFactorValues['min']) {
                                                     $absoluteFactorValues['min'] = $factor['nrminage'];
                                                 }
                                             }
                                             // Trata o valor maximo para o atributo
                                             if ($factor['nrmaxage'] != null && $absoluteFactorValues['max'] == null) {
                                                 $absoluteFactorValues['max'] = $factor['nrmaxage'];
                                             }
                                             if ($factor['nrmaxage'] > $absoluteFactorValues['max']) {
                                                 $absoluteFactorValues['max'] = $factor['nrmaxage'];
                                             }
                                         } else {
                                             if ($fgfactor == 2) {
                                                 // Fatores masculinos
                                                 $div .= "<div style='width:{$width}%;'> <ul>";
                                                 if ($factor['fggender'] == 1) {
                                                     $div .= "<li>\r\n                                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                                </li>";
                                                 } else {
                                                     $div .= "<li>\r\n                                                                                --- \r\n                                                                                </li>";
                                                 }
                                                 $div .= "</ul> </div>";
                                                 // Fatores femininos
                                                 $div .= "<div style='width:{$width}%;'> <ul>";
                                                 if ($factor['fggender'] == 2) {
                                                     $div .= "<li>\r\n                                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                                </li>";
                                                 } else {
                                                     $div .= "<li>\r\n                                                                                --- \r\n                                                                                </li>";
                                                 }
                                                 $div .= "</ul></div>";
                                                 // Trata o valor minimo para o atributo
                                                 if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                                     $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                 } else {
                                                     if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                         $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                     }
                                                 }
                                                 // Trata o valor maximo para o atributo
                                                 if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                                     $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                 }
                                                 if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                                     $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                 }
                                             } else {
                                                 if ($fgfactor == 3) {
                                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                                     if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                         $div .= "<li>\r\n                                                                                    Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                                                </li>";
                                                     } else {
                                                         if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (!isset($factor['nrmaxage']) && $factor['nrmaxage'] == '')) {
                                                             $div .= "<li>\r\n                                                                                    ---\r\n                                                                                </li>";
                                                         } else {
                                                             if (!isset($factor['nrmaxage']) && $factor['nrmaxage'] != '') {
                                                                 $div .= "<li>\r\n                                                                                    Abaixo de " . $factor['nrmaxage'] . " Anos\r\n                                                                                </li>";
                                                             } else {
                                                                 $div .= "<li>\r\n                                                                                    Acima de " . $factor['nrminage'] . " Anos\r\n                                                                                </li>";
                                                             }
                                                         }
                                                     }
                                                     $div .= "</ul> </div>";
                                                     // Fatores masculinos
                                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                                     if ($factor['fggender'] == 1) {
                                                         $div .= "<li>\r\n                                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                                </li>";
                                                     } else {
                                                         $div .= "<li>\r\n                                                                                --- \r\n                                                                                </li>";
                                                     }
                                                     $div .= "</ul> </div>";
                                                     // Fatores femininos
                                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                                     if ($factor['fggender'] == 2) {
                                                         $div .= "<li>\r\n                                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                                </li>";
                                                     } else {
                                                         $div .= "<li>\r\n                                                                                --- \r\n                                                                                </li>";
                                                     }
                                                     $div .= "</ul></div>";
                                                     // Trata o valor minimo para o atributo
                                                     if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                                         $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                     } else {
                                                         if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                             $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                         }
                                                     }
                                                     // Trata o valor maximo para o atributo
                                                     if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                                         $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                     }
                                                     if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                                         $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                     }
                                                 }
                                             }
                                         }
                                         //                                        $div .= "<div>
                                         //                                                    <ul>
                                         //                                                        <!-- Regras para esta range rule -->
                                         //                                                    </ul>
                                         //                                                </div>";
                                     }
                                     $div .= "</div>";
                                     $div .= "</div>";
                                     $ctrlfactor++;
                                 }
                                 $div .= "\r\n                                                        <script> \r\n                                                            \$('#appraisal_input_" . $absoluteFactorValues['attributename'] . "').live('keyup', function(){\r\n                                                                if( (parseFloat(this.value) < " . ($absoluteFactorValues['min'] == null ? 0 : $absoluteFactorValues['min']) . " || parseFloat(this.value) > " . ($absoluteFactorValues['max'] == null ? 0 : $absoluteFactorValues['max']) . ") && (parseFloat(this.value) != 0 && this.value != '') ){\r\n                                                                    \$(this).addClass('rangeout');\r\n                                                                }else{\r\n                                                                    \$(this).removeClass('rangeout');\r\n                                                                }\r\n                                                            });\r\n                                                        </script>\r\n                                                    ";
                                 $ctrlfactor = 1;
                                 //                                                    if($i == count($factors) - 1){
                                 //                                                        $i = 0;
                                 //                                                        $div .= "</div>";
                                 //                                                    }else{
                                 //                                                        $i++;
                                 //                                                    }
                                 $attrctrl++;
                             }
                             $div .= "</div>";
                             $cont_sub++;
                         }
                         //                           }
                     }
                 }
             } else {
                 // Título, material e método do exame
                 $div .= "<div class='exam'>\r\n                        <h1> " . $exam['nmexamination'] . "</h1>\r\n                        <span> Material: " . $exam['nmmaterial'] . " </span>\r\n                        <span> Método: " . $exam['nmmethod'] . " </span>\r\n                        <input type='hidden' name='cdappraisaltyping' class='cdappraisaltyping'>\r\n                    </div>";
                 $attrib = $refObj->getExamAttribs($exam['cdexaminationmaterial']);
                 if (!empty($attrib)) {
                     // Texto de valores de referência
                     $div .= "<div id='ref_title' class='ref_title'>\r\n                                <div></div>\r\n                                <div>\r\n                                    <h1> Valores de Referência </h1>\r\n                                </div>\r\n                            </div>";
                     $factors = $refObj->getExamFactors($exam['cdexaminationmaterial']);
                     $fgfactor = 1;
                     foreach ($factors as $factor) {
                         if ($factor['fgfactor'] > $fgfactor) {
                             $fgfactor = $factor['fgfactor'];
                         }
                     }
                     $width = 100 / $fgfactor;
                     $div .= "<div class='sub_exam'>";
                     $div .= "<div class='titles'>";
                     $div .= "\r\n                                <div id='exam_title' class='exam_title'> \r\n                                </div>\r\n\r\n                                <!-- Verificar a quantidade de fatores e dividir o width -->";
                     $div .= "<div class='ref_sex_type_father_div'>";
                     if ($fgfactor == 1) {
                         $div .= "<div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                        Idade \r\n                                                    </div>";
                     } else {
                         if ($fgfactor == 2) {
                             $div .= "\r\n                                                <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                    Masculino\r\n                                                </div>\r\n                                                <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                    Feminino\r\n                                                </div>";
                         } else {
                             if ($fgfactor == 3) {
                                 $div .= "\r\n                                                <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                    Idade \r\n                                                </div>";
                                 $div .= "\r\n                                                <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                    Masculino\r\n                                                </div>\r\n                                                <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                    Feminino\r\n                                                </div>";
                             }
                         }
                     }
                     // Fim div class ref_sex_type_father_div
                     $div .= " </div>";
                     // Fim div class titles
                     $div .= "</div>";
                     foreach ($attrib as $attribs) {
                         //// Pegar os fatores em relação aos atributos
                         $factors = $refObj->getExamFactors($exam['cdexaminationmaterial'], $attribs['cdattribute']);
                         // Se houve um erro nos dados do atributo
                         // Pega o valor do primeiro fator encontrado
                         $ctrlfactor = 1;
                         foreach ($factors as $factor) {
                             $nmmeasurementunit = $factor['nmmeasurementunit'];
                             $randomName = $exam['cdrequestexamination'] . "_" . $attribs['cdexamination'] . "_" . $attribs['cdattribute'] . "_" . $exam['cdexaminationmaterial'];
                             // it's safe! maybe, i dont know yet
                             // Inicia Array para controle do maximo e minimo absurdos
                             // para gerar SCRIPT validador da entrada de dados para o atributo
                             $absoluteFactorValues = array();
                             $absoluteFactorValues['attributename'] = null;
                             $absoluteFactorValues['min'] = null;
                             $absoluteFactorValues['max'] = null;
                             $div .= "<div style='width: 100%; float: left; margin-top: 5px;'>";
                             $div .= "<div class='attributes'>";
                             if ($factor['fgdatatype'] != null) {
                                 if ($factor['fgdatatype'] == 1) {
                                     $datatype = 'numeric';
                                 } else {
                                     if ($factor['fgdatatype'] == 2) {
                                         $datatype = 'mask_price_db';
                                     } else {
                                         if ($factor['fgdatatype'] == 3) {
                                             $datatype = 'alpha';
                                         } else {
                                             $datatype = 'datepicker';
                                         }
                                     }
                                 }
                             }
                             if ($ctrlfactor == 1) {
                                 $div .= "  <ul>\r\n                                                <li>\r\n                                                    <div>\r\n                                                        " . $factor['nmattribute'] . "\r\n                                                    </div>\r\n                                                    <div>\r\n\r\n                                                        <input type='text' id='appraisal_input_" . $randomName . "' name='{$randomName}' class='" . $datatype . "'/>\r\n                                                        " . $nmmeasurementunit . "\r\n\r\n                                                    </div>\r\n                                                </li>\r\n                                            </ul>";
                                 $absoluteFactorValues['attributename'] = $randomName;
                             }
                             $div .= "</div>";
                             $div .= "<div id='val_attributes_ref' class='val_attributes_ref'>";
                             // TODO HERE!
                             // Trocar esta verificação
                             if (count($attrib) > 1) {
                                 if ($fgfactor == 1) {
                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                     if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                         $div .= "<li>\r\n                                                        Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                    </li>";
                                     } else {
                                         if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (!isset($factor['nrmaxage']) && $factor['nrmaxage'] == '')) {
                                             $div .= "<li>\r\n                                                        ---\r\n                                                    </li>";
                                         } else {
                                             if (!isset($factor['nrmaxage']) && $factor['nrmaxage'] != '') {
                                                 $div .= "<li>\r\n                                                        Abaixo de " . $factor['nrmaxage'] . " Anos\r\n                                                    </li>";
                                             } else {
                                                 $div .= "<li>\r\n                                                        Acima de " . $factor['nrminage'] . " Anos\r\n                                                    </li>";
                                             }
                                         }
                                     }
                                     $div .= "</ul> </div>";
                                     // Trata o valor minimo para o atributo
                                     if ($factor['nrminage'] != null && $absoluteFactorValues['min'] == null) {
                                         $absoluteFactorValues['min'] = $factor['nrminage'];
                                     } else {
                                         if ($factor['nrminage'] < $absoluteFactorValues['min']) {
                                             $absoluteFactorValues['min'] = $factor['nrminage'];
                                         }
                                     }
                                     // Trata o valor maximo para o atributo
                                     if ($factor['nrmaxage'] != null && $absoluteFactorValues['max'] == null) {
                                         $absoluteFactorValues['max'] = $factor['nrmaxage'];
                                     }
                                     if ($factor['nrmaxage'] > $absoluteFactorValues['max']) {
                                         $absoluteFactorValues['max'] = $factor['nrmaxage'];
                                     }
                                 } else {
                                     if ($fgfactor == 2) {
                                         // Fatores masculinos
                                         $div .= "<div style='width:{$width}%;'> <ul>";
                                         if ($factor['fggender'] == 1) {
                                             $div .= "<li>\r\n                                                        " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                    </li>";
                                         } else {
                                             $div .= "<li>\r\n                                                    --- \r\n                                                    </li>";
                                         }
                                         $div .= "</ul> </div>";
                                         // Fatores femininos
                                         $div .= "<div style='width:{$width}%;'> <ul>";
                                         if ($factor['fggender'] == 2) {
                                             $div .= "<li>\r\n                                                        " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                    </li>";
                                         } else {
                                             $div .= "<li>\r\n                                                    --- \r\n                                                    </li>";
                                         }
                                         $div .= "</ul></div>";
                                         // Trata o valor minimo para o atributo
                                         if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                             $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                         } else {
                                             if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                 $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                             }
                                         }
                                         // Trata o valor maximo para o atributo
                                         if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                             $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                         }
                                         if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                             $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                         }
                                     } else {
                                         if ($fgfactor == 3) {
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                 $div .= "<li>\r\n                                                        Entre (aki)" . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                    </li>";
                                             } else {
                                                 if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                     $div .= "<li>\r\n                                                        Abaixo de " . $factor['nrmaxage'] . " Anos\r\n                                                    </li>";
                                                 } else {
                                                     if (!isset($factor['nrmaxage']) || $factor['nrmaxage'] == '') {
                                                         $div .= "<li>\r\n                                                        Acima de " . $factor['nrminage'] . " Anos\r\n                                                    </li>";
                                                     } else {
                                                         $div .= "<li>\r\n                                                        Nenhuma idade fornecida.\r\n                                                    </li>";
                                                     }
                                                 }
                                             }
                                             $div .= "</ul> </div>";
                                             // Fatores masculinos
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             $div .= "<li>\r\n                                                            4,50 - 5,90\r\n                                                        </li>";
                                             $div .= "</ul> </div>";
                                             // Fatores femininos
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             $div .= "<li>\r\n                                                            4,50 - 5,90\r\n                                                        </li>";
                                             $div .= "</ul> </div>";
                                             // Trata o valor minimo para o atributo
                                             if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                                 $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                             } else {
                                                 if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                     $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                 }
                                             }
                                             // Trata o valor maximo para o atributo
                                             if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                                 $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                             }
                                             if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                                 $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                             }
                                         }
                                     }
                                 }
                             } else {
                                 if ($fgfactor == 1) {
                                     $div .= "<div style='width:{$width}%;'><ul>";
                                     $div .= "<li style='width: 25%; float: left;'>";
                                     if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                         $div .= "\r\n                                                        Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                    ";
                                     } else {
                                         if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (!isset($factor['nrmaxage']) && $factor['nrmaxage'] == '')) {
                                             $div .= "\r\n                                                        ---\r\n                                                    ";
                                         } else {
                                             if (!isset($factor['nrmaxage']) && $factor['nrmaxage'] != '') {
                                                 $div .= " Abaixo de " . $factor['nrmaxage'] . " Anos ";
                                             } else {
                                                 $div .= "Acima de " . $factor['nrminage'] . " Anos ";
                                             }
                                         }
                                     }
                                     $div .= "</li>";
                                     if ($factor['vlminvalue'] != null && $factor['vlmaxvalue'] != null && $factor['vlminvalueabsurd'] != null && $factor['vlmaxvalueabsurd'] != null) {
                                         $div .= "<div id='slider_" . $randomName . "' class='rangerule' style=' margin-top: 7px; width: 75%;'>\r\n                                                        \r\n                                                        <script> eval( rangeRule('#slider_" . $randomName . "', 12, " . $factor['vlminvalue'] . ", " . $factor['vlmaxvalue'] . ", " . $factor['vlminvalueabsurd'] . ", " . $factor['vlmaxvalueabsurd'] . ") ); </script>                                                       \r\n\r\n                                                        <script> \r\n                                                            var lastRange = \$('#appraisal_input_" . $randomName . "').val();\r\n                                                            \r\n                                                            // Destroy the KeyUp function() to replace a new one\r\n                                                            \$('#appraisal_input_" . $randomName . "').die('keyup');\r\n                                                                \r\n                                                            \$('#appraisal_input_" . $randomName . "').live('keyup', function() {\r\n                                                                \$(this).next\r\n                                                                LoadRangeRule(this, " . $factor['vlminvalueabsurd'] . "," . $factor['vlmaxvalueabsurd'] . "," . $factor['vlminvalue'] . "," . $factor['vlmaxvalue'] . ");   \r\n                                                            });\r\n                                                        </script>\r\n                                                    </div>";
                                     } else {
                                         $div .= "<div style=' margin-top: 7px; width: 75%;'> --- </div>";
                                     }
                                     $div .= "\r\n                                                \r\n                                                ";
                                     $div .= "</ul></div>";
                                 } else {
                                     if ($fgfactor == 2) {
                                         // Fatores masculinos
                                         $div .= "<div style='width:{$width}%;'> <ul>";
                                         if ($factor['fggender'] == 1) {
                                             $div .= "<li>\r\n                                                        " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                    </li>";
                                         } else {
                                             $div .= "<li>\r\n                                                    --- \r\n                                                    </li>";
                                         }
                                         $div .= "</ul> </div>";
                                         // Fatores femininos
                                         $div .= "<div style='width:{$width}%;'> <ul>";
                                         if ($factor['fggender'] == 2) {
                                             $div .= "<li>\r\n                                                        " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                    </li>";
                                         } else {
                                             $div .= "<li>\r\n                                                    --- \r\n                                                    </li>";
                                         }
                                         $div .= "</ul></div>";
                                         // Trata o valor minimo para o atributo
                                         if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                             $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                         } else {
                                             if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                 $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                             }
                                         }
                                         // Trata o valor maximo para o atributo
                                         if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                             $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                         }
                                         if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                             $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                         }
                                     } else {
                                         if ($fgfactor == 3) {
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                 $div .= "<li>\r\n                                                        Entre (aki)" . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                    </li>";
                                             } else {
                                                 if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (!isset($factor['nrmaxage']) && $factor['nrmaxage'] == '')) {
                                                     $div .= "<li>\r\n                                                        ---\r\n                                                    </li>";
                                                 } else {
                                                     if (!isset($factor['nrmaxage']) && $factor['nrmaxage'] != '') {
                                                         $div .= "<li>\r\n                                                        Abaixo de " . $factor['nrmaxage'] . " Anos\r\n                                                    </li>";
                                                     } else {
                                                         $div .= "<li>\r\n                                                        Acima de " . $factor['nrminage'] . " Anos\r\n                                                    </li>";
                                                     }
                                                 }
                                             }
                                             $div .= "</ul> </div>";
                                             // Fatores masculinos
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             if ($factor['fggender'] == 1) {
                                                 $div .= "<li>\r\n                                                        " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                    </li>";
                                             } else {
                                                 $div .= "<li>\r\n                                                    --- \r\n                                                    </li>";
                                             }
                                             $div .= "</ul> </div>";
                                             // Fatores femininos
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             if ($factor['fggender'] == 2) {
                                                 $div .= "<li>\r\n                                                        " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                    </li>";
                                             } else {
                                                 $div .= "<li>\r\n                                                    --- \r\n                                                    </li>";
                                             }
                                             $div .= "</ul></div>";
                                             // Trata o valor minimo para o atributo
                                             if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                                 $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                             } else {
                                                 if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                     $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                 }
                                             }
                                             // Trata o valor maximo para o atributo
                                             if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                                 $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                             }
                                             if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                                 $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                             }
                                         }
                                     }
                                 }
                             }
                             $div .= "</div>";
                             $div .= "</div>";
                             $ctrlfactor++;
                         }
                         $div .= "\r\n                            <script> \r\n                                \$('#appraisal_input_" . $absoluteFactorValues['attributename'] . "').live('keyup', function(){\r\n                                    if( (parseFloat(this.value) < " . ($absoluteFactorValues['min'] == null ? 0 : $absoluteFactorValues['min']) . " || parseFloat(this.value) > " . ($absoluteFactorValues['max'] == null ? 100 : $absoluteFactorValues['max']) . ") && (parseFloat(this.value) != 0 && this.value != '') ){\r\n                                        \$(this).addClass('rangeout');\r\n                                    }else{\r\n                                        \$(this).removeClass('rangeout');\r\n                                    }\r\n                                });\r\n                            </script>\r\n                        ";
                         $ctrlfactor = 1;
                     }
                 } else {
                     $div .= "<div id='emptyAttr'>O Exame não possui Atributos.</div>";
                 }
             }
             $div .= "</div>";
             //            $div .= "</form>";
             // <!-- Fim da geração do relatório em html -->
             $refObj->view->examsAppraisal = $div;
             if ($position == $maxPosition && $position == 0) {
                 $refObj->view->previousRecord = 0;
                 $refObj->view->nextRecord = 0;
             } else {
                 if ($position == $maxPosition) {
                     $refObj->view->previousRecord = 1;
                     $refObj->view->nextRecord = 0;
                 } else {
                     if ($position == 0) {
                         $refObj->view->previousRecord = 0;
                         $refObj->view->nextRecord = 1;
                     } else {
                         $refObj->view->previousRecord = 1;
                         $refObj->view->nextRecord = 1;
                     }
                 }
             }
         } else {
             //                $refObj->view->fieldsetdateinputsnewwindow = null;
         }
     }
 }
 public function buildTypingReport($cdrequest, $cdmap, $renderTypingParams, $direction, $nrsample, $position = null)
 {
     $tags = array();
     // Debug details setting
     ini_set('xdebug.var_display_max_depth', -1);
     // Sessão de digitação de resultados
     $typingExamsSessionWrite = new Zend_Session_Namespace('TypingExamsData');
     $typingExamsSessionRead = Zend_Session::namespaceGet('TypingExamsData');
     // A kind of cache, is it in session? get data from it, otherwise execute the query
     $request = null;
     if ($cdrequest) {
         if (!isset($typingExamsSessionRead['requests']) || count($typingExamsSessionRead['requests']) == 0) {
             try {
                 $requests = $this->getAppraisalRequestData($cdrequest, $cdmap, $renderTypingParams);
             } catch (Exception $req) {
                 echo "Não foi possível acessar os resultados: " . $req->getMessage();
             }
             $typingExamsSessionWrite->requests = $requests;
         } else {
             $requests = $typingExamsSessionRead['requests'];
         }
         // Organizar os requests em ordem
         // Ex: sortedRequests[cdrequest = 25] = requests;
         //
         $sortedRequests = array();
         foreach ($requests as $request) {
             $cdrequest = $request['cdrequest'];
             if (!isset($sortedRequests["{$cdrequest}"])) {
                 $sortedRequests["{$cdrequest}"] = array();
             }
             array_push($sortedRequests["{$cdrequest}"], $request);
         }
         //
         // Definir exames pais
         //
         $fexams = array();
         // father exams
         foreach ($sortedRequests as $requestId => $requestExaminations) {
             foreach ($requestExaminations as $examId => $exam) {
                 if ($exam['cdexaminationmaterialparent'] == null) {
                     // adiciona o exame ao array de exames pais]
                     array_push($fexams, $exam);
                     // remove o exame pai do array base
                     unset($sortedRequests[$requestId][$examId]);
                 }
             }
             // Se a requisição não tem nenhum exame restante, remove o index dela
             $count = count($sortedRequests[$requestId]);
             if ($count == 0) {
                 unset($sortedRequests[$requestId]);
             }
         }
         //
         // Inserir filhos nos pais
         foreach ($sortedRequests as $requestId => $requestExaminations) {
             foreach ($requestExaminations as $examId => $exam) {
                 foreach ($fexams as $fexamId => $fexam) {
                     if ($exam['cdexaminationmaterialparent'] == $fexam['cdexaminationmaterial']) {
                         // adiciona o exame ao array de sub exames do pai
                         // remove o exame filho do array base
                         unset($sortedRequests[$requestId][$examId]);
                         if (count($sortedRequests[$requestId]) == 0) {
                             unset($sortedRequests[$requestId]);
                         }
                         break;
                     }
                 }
             }
         }
         // Se houver algum exame que tem pai porém não está em nenhuma requisição
         // Adiciona-los-ei como um pai, porém isto significa inconsistência nos dados
         if (count($sortedRequests) > 0) {
             $newArray = array();
             foreach ($sortedRequests as $newRequests) {
                 array_push($newArray, $newRequests[0]);
             }
             // remove hierarquia do cdrequest
             $fexams = array_merge($fexams, $newArray);
         }
         //var_dump($fexams);
         // find correct postion for start typing
         // NOTE: if the index number is equal to the fexams.lenght, nrsample wasn't found;
         if (isset($nrsample) && !isset($position)) {
             $index = 0;
             foreach ($fexams as $exam) {
                 if ($exam['nmbarcodesample'] == $nrsample) {
                     break;
                 }
                 $index++;
             }
             $position = $index;
         }
         // Max index array number
         $maxPosition = count($fexams) - 1;
         // Define the position in array
         if (!isset($position)) {
             $position = isset($typingExamsSessionRead['position']) ? $typingExamsSessionRead['position'] : 0;
         }
         if ($direction != null) {
             if (strcasecmp($direction, "left") == 0) {
                 $position--;
             } else {
                 if (strcasecmp($direction, "right") == 0) {
                     $position++;
                 }
             }
             $position = $position < 0 ? $position = 0 : $position > $maxPosition ? $position = $maxPosition : $position;
         }
         $typingExamsSessionWrite->position = $position;
         $typingExamsSessionWrite->maxposition = $maxPosition;
         if (array_key_exists($position, $fexams) && $position != 'first') {
             $exam = $fexams[$position];
         } else {
             if ($position == 'first' && count($fexams) > 0) {
                 $exam = reset($fexams);
             } else {
                 if (count($fexams) > 0) {
                     $exam = null;
                 } else {
                     $exam = -1;
                 }
             }
         }
         //$randomName = null;
         if ($exam != null && $exam != -1) {
             $fields = $this->getIdentifierFields($exam);
             //                $this->view->fieldsetdateinputsnewwindow = $fields;
             AppraisalCommon::$refController->view->fieldsetdateinputsnewwindow = $fields;
             // if examination has no sons
             if (!isset($exam['subexams'])) {
                 $subexamsdata = $this->getCDSubExams($exam['cdexaminationmaterial']);
                 $sb = 0;
                 $exam['subexam'] = array();
                 foreach ($subexamsdata as $examSub) {
                     // Dados do subexame do exame
                     $subexam = array();
                     $attrib = array();
                     $subexam['nmexam'] = $examSub['nmexamination'];
                     $subexam['cdexaminationmaterial'] = $examSub['cdexaminationmaterial'];
                     $attrib = $this->getExamAttribs($examSub['cdexaminationmaterial']);
                     // Atributos do subexame do exame
                     $attributes = array();
                     $attr = array();
                     foreach ($attrib as $attribs) {
                         $attr['cdattribute'] = $attribs['cdattribute'];
                         $attr['cdexamination'] = $attribs['cdexamination'];
                         $attr['nmexam'] = $attribs['nmexamination'];
                         $query = new stdClass();
                         $query->cdexaminationmaterialparent = $exam['cdexaminationmaterial'];
                         /* examinationmaterial - fexams */
                         $query->cdexamination = $exam['cdexamination'];
                         /* cdexamination       - fexams */
                         $query->cdrequest = $exam['cdrequest'];
                         /* cdexamination       - fexams */
                         $query->cdexaminationmaterial = $examSub['cdexaminationmaterial'];
                         /* examinationmaterial - subexam */
                         $query->cdattribute = $attr['cdattribute'];
                         /* examinationmaterial - subexam */
                         $appraisalAttribute = $this->getAppraisalAttributeValue($query);
                         //var_dump($return);
                         //die();
                         if (count($appraisalAttribute) > 0) {
                             $attr['vlattribute'] = $appraisalAttribute[0]['vlattribute'];
                             if ($appraisalAttribute[0]['cdappraisal'] != '') {
                                 $exam['cdappraisal'] = $appraisalAttribute[0]['cdappraisal'];
                             }
                             //                                var_dump($attr['vlattribute']);
                         } else {
                             //                                echo "<br /> Valor não encontrado para este atributo!";
                             $attr['vlattribute'] = '';
                             //                                var_dump($query);
                         }
                         //var_dump($query);
                         array_push($attributes, $attr);
                     }
                     //var_dump($attrib);
                     //echo "<br />count: ". count($attributes);
                     // Adiciona os atributos do subexame para ele
                     $subexam['attributes'] = array();
                     $subexam['attributes'] = $attributes;
                     //Adiciona os subexames para o exame
                     $exam['subexam'][$sb] = $subexam;
                     // Array para os exames
                     $exams = array();
                     // Adiciona os exames ao array de resultados de exames
                     array_push($exams, $exam);
                     // Index por posição
                     $sb++;
                 }
             }
             //  <!-- Início do relatório em html -->
             $div = "<div class='appraisal_div'>";
             if (!empty($exams)) {
                 //var_dump($exams);
                 foreach ($exams as $exam) {
                     // Título, material e método do exame
                     $div .= "<div class='exam'>\r\n                                <h1> " . $exam['nmexamination'] . "</h1>\r\n                                <span> Material: " . $exam['nmmaterial'] . " </span>\r\n                                <span> Método: " . $exam['nmmethod'] . " </span>\r\n                                <input type='hidden' name='cdappraisal' class='cdappraisal' value='" . (isset($exam['cdappraisal']) ? $exam['cdappraisal'] : '') . "'/>\r\n                            </div>";
                     // Pega as observações para o cdappraisal
                     if (isset($exam['cdappraisal'])) {
                         $tags = $this->getAppraisalComment($exam['cdappraisal']);
                     }
                     // Texto de valores de referência
                     $div .= "<div id='ref_title' class='ref_title'>\r\n                                    <div></div>\r\n                                    <div>\r\n                                        <h1> Valores de Referência </h1>\r\n                                    </div>\r\n                                </div>";
                     // Pegar dados do sub-exame
                     $cont_sub = 0;
                     foreach ($exam['subexam'] as $subexam) {
                         // Pegar os fatores em relação aos atributos
                         $factors = $this->getExamFactors($subexam['cdexaminationmaterial']);
                         $exam['subexam'] = array();
                         if (!empty($factors)) {
                             // Pego o primeiro fator do atributo
                             // como base para saber os tipos que tenho
                             $fgfactor = 1;
                             foreach ($factors as $factor) {
                                 if ($factor['fgfactor'] > $fgfactor) {
                                     $fgfactor = $factor['fgfactor'];
                                 }
                             }
                             // Fazer o calculo do width usando o número de fatores atrelados à este exame
                             $width = 100 / $fgfactor;
                             $div .= "<div class='sub_exam'>";
                             $div .= "<div class='titles'>";
                             $div .= "<!-- Nome do subexame -->\r\n                                    <div id='exam_title' class='exam_title'> \r\n                                        <h1> " . $subexam['nmexam'] . " </h1>  \r\n                                    </div>\r\n\r\n                                    <!-- Verificar a quantidade de fatores e dividir o width -->";
                             // Início div class ref_sex_type_father_div
                             $div .= "<div class='ref_sex_type_father_div'>";
                             if ($fgfactor == 1) {
                                 $div .= "<div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                            Idade \r\n                                                        </div>";
                             } else {
                                 if ($fgfactor == 2) {
                                     $div .= "\r\n                                                    <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                        Masculino\r\n                                                    </div>\r\n                                                    <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                        Feminino\r\n                                                    </div>";
                                 } else {
                                     if ($fgfactor == 3) {
                                         $div .= "\r\n                                                    <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                        Idade \r\n                                                    </div>";
                                         $div .= "\r\n                                                    <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                        Masculino\r\n                                                    </div>\r\n                                                    <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                        Feminino\r\n                                                    </div>";
                                     }
                                 }
                             }
                             // Fim div class ref_sex_type_father_div
                             $div .= " </div>";
                             // Fim div class titles
                             $div .= "</div>";
                             $attrctrl = 0;
                             foreach ($subexam['attributes'] as $attribute) {
                                 //                            print_r($attribute);
                                 // Pegar os fatores em relação aos atributos
                                 $factors = $this->getExamFactors($subexam['cdexaminationmaterial'], $attribute['cdattribute']);
                                 //                                var_dump($exam);
                                 //                                die();
                                 //                                echo "examinationmaterial: ". $subexam['cdexaminationmaterial'] ."<br /> attribute: ". $attribute['cdattribute'] ." <br />requestexamination:". $exam['cdrequestexamination'];
                                 //                                die();
                                 // Inicia Array para controle do maximo e minimo absurdos
                                 // para gerar SCRIPT validador da entrada de dados para o atributo
                                 $absoluteFactorValues = array();
                                 $absoluteFactorValues['attributename'] = null;
                                 $absoluteFactorValues['min'] = null;
                                 $absoluteFactorValues['max'] = null;
                                 // Se houve um erro nos dados do atributo
                                 // Pega o valor do primeiro fator encontrado
                                 $ctrlfactor = 1;
                                 foreach ($factors as $factor) {
                                     $nmmeasurementunit = $factor['nmmeasurementunit'];
                                     $randomName = $exam['cdrequestexamination'] . "_" . $attribute['cdexamination'] . "_" . $attribute['cdattribute'] . "_" . $subexam['cdexaminationmaterial'];
                                     // it's not safe!
                                     $div .= "<div style='width: 100%; float: left; margin-top: 5px;'>";
                                     $div .= "<div class='attributes'>";
                                     // Define a Classe do Input a fim de inserção das máscaras ao mesmo
                                     if ($factor['fgdatatype'] != null) {
                                         if ($factor['fgdatatype'] == 1) {
                                             $datatype = 'numeric';
                                         } else {
                                             if ($factor['fgdatatype'] == 2) {
                                                 $datatype = 'mask_price_db';
                                             } else {
                                                 if ($factor['fgdatatype'] == 3) {
                                                     $datatype = 'alpha';
                                                 } else {
                                                     $datatype = 'datepicker';
                                                 }
                                             }
                                         }
                                     }
                                     $vlattribute = empty($attribute['vlattribute']) ? "" : $attribute['vlattribute'];
                                     if ($ctrlfactor == 1) {
                                         $div .= "  <ul>\r\n                                                            <li>\r\n                                                                <div>\r\n                                                                    " . $factor['nmattribute'] . "\r\n                                                                </div>\r\n                                                                <div>\r\n\r\n                                                                    <input type='text' id='appraisal_input_" . $randomName . "' name='appraisal_input_" . $randomName . "'\r\n                                                                        class='" . $datatype . "' value='" . $vlattribute . "'/>\r\n                                                                    " . $nmmeasurementunit . "\r\n\r\n                                                                </div>\r\n                                                            </li>\r\n                                                        </ul>";
                                         // Nome do Atributo para definição dos valores maximos e minimos do INPUT
                                         $absoluteFactorValues['attributename'] = $randomName;
                                     }
                                     $div .= "</div>";
                                     $div .= "<div id='val_attributes_ref' class='val_attributes_ref'>";
                                     if (count($subexam['attributes']) > 1) {
                                         // Idades
                                         if ($fgfactor == 1) {
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                 $div .= "<li>\r\n                                                                    Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                                </li>";
                                             } else {
                                                 if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (!isset($factor['nrmaxage']) && $factor['nrmaxage'] == '')) {
                                                     $div .= "<li>\r\n                                                                    ---\r\n                                                                </li>";
                                                 } else {
                                                     if (!isset($factor['nrmaxage']) && $factor['nrmaxage'] != '') {
                                                         $div .= "<li>\r\n                                                                    Abaixo de " . $factor['nrmaxage'] . " Anos\r\n                                                                </li>";
                                                     } else {
                                                         $div .= "<li>\r\n                                                                    Acima de " . $factor['nrminage'] . " Anos\r\n                                                                </li>";
                                                     }
                                                 }
                                             }
                                             $div .= "</ul> </div>";
                                             // Trata o valor minimo para o atributo
                                             if ($factor['nrminage'] != null && $absoluteFactorValues['min'] == null) {
                                                 $absoluteFactorValues['min'] = $factor['nrminage'];
                                             } else {
                                                 if ($factor['nrminage'] < $absoluteFactorValues['min']) {
                                                     $absoluteFactorValues['min'] = $factor['nrminage'];
                                                 }
                                             }
                                             // Trata o valor maximo para o atributo
                                             if ($factor['nrmaxage'] != null && $absoluteFactorValues['max'] == null) {
                                                 $absoluteFactorValues['max'] = $factor['nrmaxage'];
                                             }
                                             if ($factor['nrmaxage'] > $absoluteFactorValues['max']) {
                                                 $absoluteFactorValues['max'] = $factor['nrmaxage'];
                                             }
                                         } else {
                                             if ($fgfactor == 2) {
                                                 // Fatores masculinos
                                                 $div .= "<div style='width:{$width}%;'> <ul>";
                                                 if ($factor['fggender'] == 1) {
                                                     $div .= "<li>\r\n                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                </li>";
                                                 } else {
                                                     $div .= "<li>\r\n                                                                --- \r\n                                                                </li>";
                                                 }
                                                 $div .= "</ul> </div>";
                                                 // Fatores femininos
                                                 $div .= "<div style='width:{$width}%;'> <ul>";
                                                 if ($factor['fggender'] == 2) {
                                                     $div .= "<li>\r\n                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                </li>";
                                                 } else {
                                                     $div .= "<li>\r\n                                                                --- \r\n                                                                </li>";
                                                 }
                                                 $div .= "</ul></div>";
                                                 // Trata o valor minimo para o atributo
                                                 if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                                     $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                 } else {
                                                     if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                         $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                     }
                                                 }
                                                 // Trata o valor maximo para o atributo
                                                 if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                                     $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                 }
                                                 if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                                     $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                 }
                                             } else {
                                                 if ($fgfactor == 3) {
                                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                                     if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                         $div .= "<li>\r\n                                                                    Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                                </li>";
                                                     } else {
                                                         if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                             $div .= "<li>\r\n                                                                    Abaixo de " . $factor['nrmaxage'] . " Anos\r\n                                                                </li>";
                                                         } else {
                                                             if (!isset($factor['nrmaxage']) || $factor['nrmaxage'] == '') {
                                                                 $div .= "<li>\r\n                                                                    Acima de " . $factor['nrminage'] . " Anos\r\n                                                                </li>";
                                                             } else {
                                                                 $div .= "<li>\r\n                                                                    Nenhuma idade fornecida.\r\n                                                                </li>";
                                                             }
                                                         }
                                                     }
                                                     $div .= "</ul> </div>";
                                                     // Fatores masculinos
                                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                                     if ($factor['fggender'] == 1) {
                                                         $div .= "<li>\r\n                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                </li>";
                                                     } else {
                                                         $div .= "<li>\r\n                                                                --- \r\n                                                                </li>";
                                                     }
                                                     $div .= "</ul> </div>";
                                                     // Fatores femininos
                                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                                     if ($factor['fggender'] == 2) {
                                                         $div .= "<li>\r\n                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                </li>";
                                                     } else {
                                                         $div .= "<li>\r\n                                                                --- \r\n                                                                </li>";
                                                     }
                                                     $div .= "</ul></div>";
                                                     // Trata o valor minimo para o atributo
                                                     if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                                         $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                     } else {
                                                         if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                             $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                         }
                                                     }
                                                     // Trata o valor maximo para o atributo
                                                     if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                                         $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                     }
                                                     if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                                         $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                     }
                                                 }
                                             }
                                         }
                                     } else {
                                         if ($fgfactor == 1) {
                                             $div .= "<div style='width:{$width}%;'><ul>";
                                             $div .= "<li style='width: 100%; float: left;'>";
                                             if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                 $div .= "\r\n                                                                Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                            ";
                                             } else {
                                                 if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (!isset($factor['nrmaxage']) && $factor['nrmaxage'] == '')) {
                                                     $div .= "\r\n                                                                ---\r\n                                                            ";
                                                 } else {
                                                     if (!isset($factor['nrmaxage']) && $factor['nrmaxage'] != '') {
                                                         $div .= " Abaixo de " . $factor['nrmaxage'] . " Anos ";
                                                     } else {
                                                         $div .= "Acima de " . $factor['nrminage'] . " Anos ";
                                                     }
                                                 }
                                             }
                                             $div .= "</li></ul>";
                                             $div .= "</div>";
                                             // Trata o valor minimo para o atributo
                                             if ($factor['nrminage'] != null && $absoluteFactorValues['min'] == null) {
                                                 $absoluteFactorValues['min'] = $factor['nrminage'];
                                             } else {
                                                 if ($factor['nrminage'] < $absoluteFactorValues['min']) {
                                                     $absoluteFactorValues['min'] = $factor['nrminage'];
                                                 }
                                             }
                                             // Trata o valor maximo para o atributo
                                             if ($factor['nrmaxage'] != null && $absoluteFactorValues['max'] == null) {
                                                 $absoluteFactorValues['max'] = $factor['nrmaxage'];
                                             }
                                             if ($factor['nrmaxage'] > $absoluteFactorValues['max']) {
                                                 $absoluteFactorValues['max'] = $factor['nrmaxage'];
                                             }
                                         } else {
                                             if ($fgfactor == 2) {
                                                 // Fatores masculinos
                                                 $div .= "<div style='width:{$width}%;'> <ul>";
                                                 if ($factor['fggender'] == 1) {
                                                     $div .= "<li>\r\n                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                </li>";
                                                 } else {
                                                     $div .= "<li>\r\n                                                                --- \r\n                                                                </li>";
                                                 }
                                                 $div .= "</ul> </div>";
                                                 // Fatores femininos
                                                 $div .= "<div style='width:{$width}%;'> <ul>";
                                                 if ($factor['fggender'] == 2) {
                                                     $div .= "<li>\r\n                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                </li>";
                                                 } else {
                                                     $div .= "<li>\r\n                                                                --- \r\n                                                                </li>";
                                                 }
                                                 $div .= "</ul></div>";
                                                 // Trata o valor minimo para o atributo
                                                 if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                                     $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                 } else {
                                                     if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                         $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                     }
                                                 }
                                                 // Trata o valor maximo para o atributo
                                                 if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                                     $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                 }
                                                 if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                                     $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                 }
                                             } else {
                                                 if ($fgfactor == 3) {
                                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                                     if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                         $div .= "<li>\r\n                                                                    Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                                </li>";
                                                     } else {
                                                         if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (!isset($factor['nrmaxage']) && $factor['nrmaxage'] == '')) {
                                                             $div .= "<li>\r\n                                                                    ---\r\n                                                                </li>";
                                                         } else {
                                                             if (!isset($factor['nrmaxage']) && $factor['nrmaxage'] != '') {
                                                                 $div .= "<li>\r\n                                                                    Abaixo de " . $factor['nrmaxage'] . " Anos\r\n                                                                </li>";
                                                             } else {
                                                                 $div .= "<li>\r\n                                                                    Acima de " . $factor['nrminage'] . " Anos\r\n                                                                </li>";
                                                             }
                                                         }
                                                     }
                                                     $div .= "</ul> </div>";
                                                     // Fatores masculinos
                                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                                     if ($factor['fggender'] == 1) {
                                                         $div .= "<li>\r\n                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                </li>";
                                                     } else {
                                                         $div .= "<li>\r\n                                                                --- \r\n                                                                </li>";
                                                     }
                                                     $div .= "</ul> </div>";
                                                     // Fatores femininos
                                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                                     if ($factor['fggender'] == 2) {
                                                         $div .= "<li>\r\n                                                                    " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                                </li>";
                                                     } else {
                                                         $div .= "<li>\r\n                                                                --- \r\n                                                                </li>";
                                                     }
                                                     $div .= "</ul></div>";
                                                     // Trata o valor minimo para o atributo
                                                     if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                                         $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                     } else {
                                                         if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                             $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                         }
                                                     }
                                                     // Trata o valor maximo para o atributo
                                                     if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                                         $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                     }
                                                     if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                                         $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                     $div .= "</div>";
                                     $div .= "</div>";
                                     $ctrlfactor++;
                                 }
                                 $div .= "\r\n                                        <script> \r\n                                            \$('#appraisal_input_" . $absoluteFactorValues['attributename'] . "').live('keyup', function(){\r\n                                                if( (parseFloat(this.value) < " . ($absoluteFactorValues['min'] == null ? 0 : $absoluteFactorValues['min']) . " || parseFloat(this.value) > " . ($absoluteFactorValues['max'] == null ? 100 : $absoluteFactorValues['max']) . ") && (parseFloat(this.value) != 0 && this.value != '') ){\r\n                                                    \$(this).addClass('rangeout');\r\n                                                }else{\r\n                                                    \$(this).removeClass('rangeout');\r\n                                                }\r\n                                            });\r\n                                        </script>\r\n                                    ";
                                 $ctrlfactor = 1;
                                 $attrctrl++;
                             }
                             $div .= "</div>";
                             $cont_sub++;
                         }
                     }
                 }
             } else {
                 // Título, material e método do exame
                 $div .= "<div class='exam'>\r\n                            <h1> " . $exam['nmexamination'] . "</h1>\r\n                            <span> Material: " . $exam['nmmaterial'] . " </span>\r\n                            <span> Método: " . $exam['nmmethod'] . " </span>\r\n                            <input type='hidden' name='cdappraisal' class='cdappraisal'>\r\n                        </div>";
                 $attrib = $this->getExamAttribs($exam['cdexaminationmaterial']);
                 if (!empty($attrib)) {
                     // Texto de valores de referência
                     $div .= "<div id='ref_title' class='ref_title'>\r\n                                    <div></div>\r\n                                    <div>\r\n                                        <h1> Valores de Referência </h1>\r\n                                    </div>\r\n                                </div>";
                     $factors = $this->getExamFactors($exam['cdexaminationmaterial']);
                     $fgfactor = 1;
                     foreach ($factors as $factor) {
                         if ($factor['fgfactor'] > $fgfactor) {
                             $fgfactor = $factor['fgfactor'];
                         }
                     }
                     $width = 100 / $fgfactor;
                     $div .= "<div class='sub_exam'>";
                     $div .= "<div class='titles'>";
                     $div .= "\r\n                                    <div id='exam_title' class='exam_title'> \r\n                                    </div>\r\n\r\n                                    <!-- Verificar a quantidade de fatores e dividir o width -->";
                     $div .= "<div class='ref_sex_type_father_div'>";
                     if ($fgfactor == 1) {
                         $div .= "<div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                            Idade \r\n                                                        </div>";
                     } else {
                         if ($fgfactor == 2) {
                             $div .= "\r\n                                                    <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                        Masculino\r\n                                                    </div>\r\n                                                    <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                        Feminino\r\n                                                    </div>";
                         } else {
                             if ($fgfactor == 3) {
                                 $div .= "\r\n                                                    <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                        Idade \r\n                                                    </div>";
                                 $div .= "\r\n                                                    <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                        Masculino\r\n                                                    </div>\r\n                                                    <div class='ref_sex_type' style='width:{$width}%;'>\r\n                                                        Feminino\r\n                                                    </div>";
                             }
                         }
                     }
                     // Fim div class ref_sex_type_father_div
                     $div .= " </div>";
                     // Fim div class titles
                     $div .= "</div>";
                     foreach ($attrib as $attribs) {
                         //// Pegar os fatores em relação aos atributos
                         $factors = $this->getExamFactors($exam['cdexaminationmaterial'], $attribs['cdattribute']);
                         $query = new stdClass();
                         $query->cdexamination = $exam['cdexamination'];
                         /* cdexamination       - fexams */
                         $query->cdrequest = $exam['cdrequest'];
                         /* cdexamination       - fexams */
                         $query->cdexaminationmaterial = $exam['cdexaminationmaterial'];
                         /* examinationmaterial - subexam */
                         $query->cdattribute = $attribs['cdattribute'];
                         /* examinationmaterial - subexam */
                         $appraisalAttribute = $this->getAppraisalAttributeValue($query);
                         if (count($appraisalAttribute) > 0) {
                             if (strlen($appraisalAttribute[0]['cdappraisal']) > 0) {
                                 echo "\r\n                                    <script>eval(\$('.cdappraisal').val(" . $appraisalAttribute[0]['cdappraisal'] . "))</script>     \r\n                                    ";
                                 // Pega as observações para o cdappraisal
                                 $tags = $this->getAppraisalComment($appraisalAttribute[0]['cdappraisal']);
                             }
                         }
                         // Inicia Array para controle do maximo e minimo absurdos
                         // para gerar SCRIPT validador da entrada de dados para o atributo
                         $absoluteFactorValues = array();
                         $absoluteFactorValues['attributename'] = null;
                         $absoluteFactorValues['min'] = null;
                         $absoluteFactorValues['max'] = null;
                         // Se houve um erro nos dados do atributo
                         // Pega o valor do primeiro fator encontrado
                         $ctrlfactor = 1;
                         foreach ($factors as $factor) {
                             $nmmeasurementunit = $factor['nmmeasurementunit'];
                             $randomName = $exam['cdrequestexamination'] . "_" . $attribs['cdexamination'] . "_" . $attribs['cdattribute'] . "_" . $exam['cdexaminationmaterial'];
                             // it's safe! maybe, i dont know yet
                             $div .= "<div style='width: 100%; float: left; margin-top: 5px;'>";
                             $div .= "<div class='attributes'>";
                             if ($factor['fgdatatype'] != null) {
                                 if ($factor['fgdatatype'] == 1) {
                                     $datatype = 'numeric';
                                 } else {
                                     if ($factor['fgdatatype'] == 2) {
                                         $datatype = 'mask_price_db';
                                     } else {
                                         if ($factor['fgdatatype'] == 3) {
                                             $datatype = 'alpha';
                                         } else {
                                             $datatype = 'datepicker';
                                         }
                                     }
                                 }
                             }
                             if ($ctrlfactor == 1) {
                                 $vlattribute = empty($attribs['vlattribute']) ? "" : $attribs['vlattribute'];
                                 $div .= "  <ul>\r\n                                                    <li>\r\n                                                        <div>\r\n                                                            " . $factor['nmattribute'] . "\r\n                                                        </div>\r\n                                                        <div>\r\n\r\n                                                            <input type='text' id='appraisal_input_" . $randomName . "' name='{$randomName}' class='" . $datatype . "' value='" . (count($appraisalAttribute) > 0 ? $appraisalAttribute[0]['vlattribute'] : '') . "'/>\r\n                                                            " . $nmmeasurementunit . "\r\n\r\n                                                        </div>\r\n                                                    </li>\r\n                                                </ul>";
                                 // Nome do Atributo para definição dos valores maximos e minimos do INPUT
                                 $absoluteFactorValues['attributename'] = $randomName;
                             }
                             $div .= "</div>";
                             $div .= "<div id='val_attributes_ref' class='val_attributes_ref'>";
                             // TODO HERE!
                             // Trocar esta verificação
                             if (count($attrib) > 1 || count($factors) > 1) {
                                 if ($fgfactor == 1) {
                                     $div .= "<div style='width:{$width}%;'> <ul>";
                                     if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                         $div .= "<li>\r\n                                                            Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                        </li>";
                                     } else {
                                         if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (!isset($factor['nrmaxage']) && $factor['nrmaxage'] == '')) {
                                             $div .= "<li>\r\n                                                            ---\r\n                                                        </li>";
                                         } else {
                                             if (!isset($factor['nrmaxage']) && $factor['nrmaxage'] != '') {
                                                 $div .= "<li>\r\n                                                            Abaixo de " . $factor['nrmaxage'] . " Anos\r\n                                                        </li>";
                                             } else {
                                                 $div .= "<li>\r\n                                                            Acima de " . $factor['nrminage'] . " Anos\r\n                                                        </li>";
                                             }
                                         }
                                     }
                                     $div .= "</ul> </div>";
                                     // Trata o valor minimo para o atributo
                                     if ($factor['nrminage'] != null && $absoluteFactorValues['min'] == null) {
                                         $absoluteFactorValues['min'] = $factor['nrminage'];
                                     } else {
                                         if ($factor['nrminage'] < $absoluteFactorValues['min']) {
                                             $absoluteFactorValues['min'] = $factor['nrminage'];
                                         }
                                     }
                                     // Trata o valor maximo para o atributo
                                     if ($factor['nrmaxage'] != null && $absoluteFactorValues['max'] == null) {
                                         $absoluteFactorValues['max'] = $factor['nrmaxage'];
                                     }
                                     if ($factor['nrmaxage'] > $absoluteFactorValues['max']) {
                                         $absoluteFactorValues['max'] = $factor['nrmaxage'];
                                     }
                                 } else {
                                     if ($fgfactor == 2) {
                                         // Fatores masculinos
                                         $div .= "<div style='width:{$width}%;'> <ul>";
                                         if ($factor['fggender'] == 1) {
                                             $div .= "<li>\r\n                                                            " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                        </li>";
                                         } else {
                                             $div .= "<li>\r\n                                                        --- \r\n                                                        </li>";
                                         }
                                         $div .= "</ul> </div>";
                                         // Fatores femininos
                                         $div .= "<div style='width:{$width}%;'> <ul>";
                                         if ($factor['fggender'] == 2) {
                                             $div .= "<li>\r\n                                                            " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                        </li>";
                                         } else {
                                             $div .= "<li>\r\n                                                        --- \r\n                                                        </li>";
                                         }
                                         $div .= "</ul></div>";
                                         // Trata o valor minimo para o atributo
                                         if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                             $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                         } else {
                                             if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                 $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                             }
                                         }
                                         // Trata o valor maximo para o atributo
                                         if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                             $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                         }
                                         if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                             $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                         }
                                     } else {
                                         if ($fgfactor == 3) {
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                 $div .= "<li>\r\n                                                            Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                        </li>";
                                             } else {
                                                 if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                     $div .= "<li>\r\n                                                            Abaixo de " . $factor['nrmaxage'] . " Anos\r\n                                                        </li>";
                                                 } else {
                                                     if (!isset($factor['nrmaxage']) || $factor['nrmaxage'] == '') {
                                                         $div .= "<li>\r\n                                                            Acima de " . $factor['nrminage'] . " Anos\r\n                                                        </li>";
                                                     } else {
                                                         $div .= "<li>\r\n                                                            Nenhuma idade fornecida.\r\n                                                        </li>";
                                                     }
                                                 }
                                             }
                                             $div .= "</ul> </div>";
                                             // Fatores masculinos
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             if ($factor['fggender'] == 1) {
                                                 $div .= "<li>\r\n                                                            " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                        </li>";
                                             } else {
                                                 $div .= "<li>\r\n                                                        --- \r\n                                                        </li>";
                                             }
                                             $div .= "</ul> </div>";
                                             // Fatores femininos
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             if ($factor['fggender'] == 2) {
                                                 $div .= "<li>\r\n                                                            " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                        </li>";
                                             } else {
                                                 $div .= "<li>\r\n                                                        --- \r\n                                                        </li>";
                                             }
                                             $div .= "</ul></div>";
                                             // Trata o valor minimo para o atributo
                                             if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                                 $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                             } else {
                                                 if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                     $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                 }
                                             }
                                             // Trata o valor maximo para o atributo
                                             if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                                 $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                             }
                                             if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                                 $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                             }
                                         }
                                     }
                                 }
                             } else {
                                 if ($fgfactor == 1) {
                                     $div .= "<div style='width:{$width}%;'><ul>";
                                     $div .= "<li style='width: 25%; float: left;'>";
                                     if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                         $div .= "\r\n                                                            Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                        ";
                                     } else {
                                         if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (!isset($factor['nrmaxage']) && $factor['nrmaxage'] == '')) {
                                             $div .= "\r\n                                                            ---\r\n                                                        ";
                                         } else {
                                             if (!isset($factor['nrmaxage']) && $factor['nrmaxage'] != '') {
                                                 $div .= " Abaixo de " . $factor['nrmaxage'] . " Anos ";
                                             } else {
                                                 $div .= "Acima de " . $factor['nrminage'] . " Anos ";
                                             }
                                         }
                                     }
                                     $div .= "</li>";
                                     if ($factor['vlminvalue'] != null && $factor['vlmaxvalue'] != null && $factor['vlminvalueabsurd'] != null && $factor['vlmaxvalueabsurd'] != null) {
                                         $rangeRuleImgName = "rangerule_img-" . $randomName;
                                         $div .= "<img id='{$rangeRuleImgName}' style='max-width: 515px; width: 74%;'>\r\n                                                        <script>\r\n                                                            includeJS('rangerule');\r\n                                                            rangeRuleImg('{$rangeRuleImgName}', " . (count($appraisalAttribute) > 0 ? $appraisalAttribute[0]['vlattribute'] : ($factor['vlmaxvalue'] + $factor['vlminvalue']) / 2) . ", " . $factor['vlminvalue'] . ", " . $factor['vlmaxvalue'] . ", " . $factor['vlminvalueabsurd'] . ", " . $factor['vlmaxvalueabsurd'] . ");\r\n                                                            \r\n                                                            // Validações da rangerule\r\n                                                            var lastRange = \$('#appraisal_input_" . $randomName . "').val();\r\n                                                                    \r\n                                                            // Destroy the KeyUp function() to replace a new one\r\n                                                            \$('#appraisal_input_" . $randomName . "').die('keyup');\r\n\r\n                                                            \$('#appraisal_input_" . $randomName . "').live('keyup', function() {\r\n                                                                if(this.value != null && this.value != '' && this.value != '0.00')\r\n                                                                {\r\n                                                                    if(this.value > " . $factor['vlminvalueabsurd'] . " && this.value < " . $factor['vlmaxvalueabsurd'] . ")\r\n                                                                    {\r\n                                                                        \$(this).removeClass('rangeout rangeoutmin rangeoutmax');\r\n                                                                        rangeRuleImg('{$rangeRuleImgName}', this.value, " . $factor['vlminvalue'] . ", " . $factor['vlmaxvalue'] . ", " . $factor['vlminvalueabsurd'] . ", " . $factor['vlmaxvalueabsurd'] . ");\r\n\r\n                                                                        if(this.value < " . $factor['vlminvalue'] . "){\r\n                                                                            \$(this).addClass('rangeoutmin');\r\n                                                                        }else if(this.value > " . $factor['vlmaxvalue'] . "){\r\n                                                                            \$(this).addClass('rangeoutmax');\r\n                                                                        }\r\n                                                                    }\r\n                                                                    else\r\n                                                                    {\r\n                                                                        \$(this).removeClass('rangeoutmin rangeoutmax');\r\n                                                                        if(this.value < " . $factor['vlminvalueabsurd'] . "){\r\n                                                                            rangeRuleImg('{$rangeRuleImgName}', " . $factor['vlminvalueabsurd'] . ", " . $factor['vlminvalue'] . ", " . $factor['vlmaxvalue'] . ", " . $factor['vlminvalueabsurd'] . ", " . $factor['vlmaxvalueabsurd'] . ");\r\n                                                                        }\r\n                                                                        else{\r\n                                                                            rangeRuleImg('{$rangeRuleImgName}', " . $factor['vlmaxvalueabsurd'] . ", " . $factor['vlminvalue'] . ", " . $factor['vlmaxvalue'] . ", " . $factor['vlminvalueabsurd'] . ", " . $factor['vlmaxvalueabsurd'] . ");\r\n                                                                        }\r\n                                                                    }\r\n                                                                }else{\r\n                                                                    \$(this).removeClass('rangeout rangeoutmin rangeoutmax');\r\n                                                                }   \r\n                                                            }); \r\n\r\n                                                        </script>\r\n                                                        ";
                                         /* Range rule em HTML
                                                                                             $div .= "<div id='slider_". $randomName ."' style=' margin-top: 7px; width: 75%;'>
                                                                                                     <script> eval(rangeRule('#slider_". $randomName ."', ".(count($appraisalAttribute) > 0 ? $appraisalAttribute[0]['vlattribute'] : ($factor['vlmaxvalue']+$factor['vlminvalue'])/2 ).", ".$factor['vlminvalue'].", ".$factor['vlmaxvalue'].", ".$factor['vlminvalueabsurd'].", ".$factor['vlmaxvalueabsurd'].") ); </script>
                                         
                                                                                                     <script>
                                                                                                         var lastRange = $('#appraisal_input_".$randomName."').val();
                                                                                                             
                                                                                                         // Destroy the KeyUp function() to replace a new one
                                                                                                         $('#appraisal_input_" . $randomName . "').die('keyup');
                                                                                                             
                                                                                                         $('#appraisal_input_". $randomName ."').live('keyup', function() {
                                                                                                             if(this.value != null && this.value != '' && this.value != '0.00')
                                                                                                             {
                                                                                                                 if(this.value > ".$factor['vlminvalueabsurd']." && this.value < ".$factor['vlmaxvalueabsurd'].")
                                                                                                                 {
                                                                                                                     $(this).removeClass('rangeout rangeoutmin rangeoutmax');
                                                                                                                     rangeRule('#slider_". $randomName ."', this.value, ".$factor['vlminvalue'].", ".$factor['vlmaxvalue'].", ".$factor['vlminvalueabsurd'].", ".$factor['vlmaxvalueabsurd'].");
                                                                                                                 
                                                                                                                     if(this.value < ".$factor['vlminvalue']."){
                                                                                                                         $(this).addClass('rangeoutmin');
                                                                                                                     }else if(this.value > ".$factor['vlmaxvalue']."){
                                                                                                                         $(this).addClass('rangeoutmax');
                                                                                                                     }
                                                                                                                 }
                                                                                                                 else
                                                                                                                 {
                                                                                                                     $(this).removeClass('rangeoutmin rangeoutmax');
                                                                                                                     if(this.value < ".$factor['vlminvalueabsurd']."){
                                                                                                                         rangeRule('#slider_". $randomName ."', ".$factor['vlminvalueabsurd'].", ".$factor['vlminvalue'].", ".$factor['vlmaxvalue'].", ".$factor['vlminvalueabsurd'].", ".$factor['vlmaxvalueabsurd'].");
                                                                                                                     }
                                                                                                                     else{
                                                                                                                         rangeRule('#slider_". $randomName ."', ".$factor['vlmaxvalueabsurd'].", ".$factor['vlminvalue'].", ".$factor['vlmaxvalue'].", ".$factor['vlminvalueabsurd'].", ".$factor['vlmaxvalueabsurd'].");
                                                                                                                     }
                                                                                                                 }
                                                                                                             }else{
                                                                                                                 $(this).removeClass('rangeout rangeoutmin rangeoutmax');
                                                                                                             }   
                                                                                                         }); 
                                                                                                     </script>
                                                                                                 </div>";
                                                                                              */
                                     } else {
                                         $div .= "<div style=' margin-top: 7px; width: 75%;'> --- </div>";
                                     }
                                     $div .= "</ul></div>";
                                     // Trata o valor minimo para o atributo
                                     if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                         $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                     } else {
                                         if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                             $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                         }
                                     }
                                     // Trata o valor maximo para o atributo
                                     if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                         $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                     }
                                     if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                         $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                     }
                                 } else {
                                     if ($fgfactor == 2) {
                                         // Fatores masculinos
                                         $div .= "<div style='width:{$width}%;'> <ul>";
                                         if ($factor['fggender'] == 1) {
                                             $div .= "<li>\r\n                                                            " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                        </li>";
                                         } else {
                                             $div .= "<li>\r\n                                                        --- \r\n                                                        </li>";
                                         }
                                         $div .= "</ul> </div>";
                                         // Fatores femininos
                                         $div .= "<div style='width:{$width}%;'> <ul>";
                                         if ($factor['fggender'] == 2) {
                                             $div .= "<li>\r\n                                                            " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                        </li>";
                                         } else {
                                             $div .= "<li>\r\n                                                        --- \r\n                                                        </li>";
                                         }
                                         $div .= "</ul></div>";
                                         // Trata o valor minimo para o atributo
                                         if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                             $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                         } else {
                                             if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                 $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                             }
                                         }
                                         // Trata o valor maximo para o atributo
                                         if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                             $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                         }
                                         if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                             $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                         }
                                     } else {
                                         if ($fgfactor == 3) {
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             if (isset($factor['nrminage']) && $factor['nrminage'] != '' && (isset($factor['nrmaxage']) && $factor['nrmaxage'] != '')) {
                                                 $div .= "<li>\r\n                                                            Entre " . $factor['nrminage'] . " e " . $factor['nrmaxage'] . " Anos\r\n                                                        </li>";
                                             } else {
                                                 if ((!isset($factor['nrminage']) || $factor['nrminage'] == '') && (!isset($factor['nrmaxage']) && $factor['nrmaxage'] == '')) {
                                                     $div .= "<li>\r\n                                                            ---\r\n                                                        </li>";
                                                 } else {
                                                     if (!isset($factor['nrmaxage']) && $factor['nrmaxage'] != '') {
                                                         $div .= "<li>\r\n                                                            Abaixo de " . $factor['nrmaxage'] . " Anos\r\n                                                        </li>";
                                                     } else {
                                                         $div .= "<li>\r\n                                                            Acima de " . $factor['nrminage'] . " Anos\r\n                                                        </li>";
                                                     }
                                                 }
                                             }
                                             $div .= "</ul> </div>";
                                             // Fatores masculinos
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             if ($factor['fggender'] == 1) {
                                                 $div .= "<li>\r\n                                                            " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                        </li>";
                                             } else {
                                                 $div .= "<li>\r\n                                                        --- \r\n                                                        </li>";
                                             }
                                             $div .= "</ul> </div>";
                                             // Fatores femininos
                                             $div .= "<div style='width:{$width}%;'> <ul>";
                                             if ($factor['fggender'] == 2) {
                                                 $div .= "<li>\r\n                                                            " . str_replace(".", ",", $factor['vlminvalue']) . " - " . str_replace(".", ",", $factor['vlmaxvalue']) . "\r\n                                                        </li>";
                                             } else {
                                                 $div .= "<li>\r\n                                                        --- \r\n                                                        </li>";
                                             }
                                             $div .= "</ul></div>";
                                             // Trata o valor minimo para o atributo
                                             if ($factor['vlminvalue'] != null && $absoluteFactorValues['min'] == null) {
                                                 $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                             } else {
                                                 if ($factor['vlminvalue'] < $absoluteFactorValues['min']) {
                                                     $absoluteFactorValues['min'] = $factor['vlminvalue'];
                                                 }
                                             }
                                             // Trata o valor maximo para o atributo
                                             if ($factor['vlmaxvalue'] != null && $absoluteFactorValues['max'] == null) {
                                                 $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                             }
                                             if ($factor['vlmaxvalue'] > $absoluteFactorValues['max']) {
                                                 $absoluteFactorValues['max'] = $factor['vlmaxvalue'];
                                             }
                                         }
                                     }
                                 }
                             }
                             $div .= "</div>";
                             $div .= "</div>";
                             $ctrlfactor++;
                         }
                         $div .= "\r\n                                <script> \r\n                                    \$('#appraisal_input_" . $absoluteFactorValues['attributename'] . "').live('keyup', function(){\r\n                                        if( (parseFloat(this.value) < " . ($absoluteFactorValues['min'] == null ? 0 : $absoluteFactorValues['min']) . " || parseFloat(this.value) > " . ($absoluteFactorValues['max'] == null ? 100 : $absoluteFactorValues['max']) . ") && (parseFloat(this.value) != 0 && this.value != '') ){\r\n                                            \$(this).addClass('rangeout');\r\n                                        }else{\r\n                                            \$(this).removeClass('rangeout');\r\n                                        }\r\n                                    });\r\n                                </script>\r\n                            ";
                         $ctrlfactor = 1;
                     }
                 } else {
                     $div .= "<div id='emptyAttr'>O Exame não possui Atributos.</div>";
                 }
             }
             $div .= "</div>";
             $div .= "\r\n                    <div style='float: left; width: 100%; margin-top: 10px;' class='div_tags'>\r\n                        <p style='margin: 5px 10px 10px 10px;'><label>Observações:</label>\r\n                        <input id='{$randomName}' type='text' class='tags' value='" . (count($tags) > 0 ? $tags[0]['dscomment'] : '') . "' /></p>\r\n                        <input id='" . $randomName . "_vals' type='text' class='tags_vals' style='display: none;' value='' /></p>\r\n                        <script> \r\n                            includeJS('jquery.tagsinput');\r\n                            includeJS('appraisalcommon');                            \r\n                            includeCSS('jquery.tagsinput');\r\n                            eval(createTagsInput('{$randomName}'));\r\n                        </script>\r\n                    </div>\r\n                    ";
             // <!-- Fim da geração do relatório em html -->
             AppraisalCommon::$refController->view->examsAppraisal = $div;
             if ($position == $maxPosition && $position == 0) {
                 AppraisalCommon::$refController->view->previousRecord = 0;
                 AppraisalCommon::$refController->view->nextRecord = 0;
             } else {
                 if ($position == $maxPosition) {
                     AppraisalCommon::$refController->view->previousRecord = 1;
                     AppraisalCommon::$refController->view->nextRecord = 0;
                 } else {
                     if ($position == 0) {
                         AppraisalCommon::$refController->view->previousRecord = 0;
                         AppraisalCommon::$refController->view->nextRecord = 1;
                     } else {
                         AppraisalCommon::$refController->view->previousRecord = 1;
                         AppraisalCommon::$refController->view->nextRecord = 1;
                     }
                 }
             }
         } else {
             //                var_dump($exam); die;
             AppraisalCommon::$refController->view->fieldsetdateinputsnewwindow = $exam;
         }
     } else {
         AppraisalCommon::$refController->view->fieldsetdateinputsnewwindow = -1;
     }
 }