public function selectedrequestcovenantAction()
 {
     $responce = new stdClass();
     $cdrequest = $_POST["idrequest"];
     $requestModel = new RequestModel();
     $clientCovenant = $requestModel->fetchRow($requestModel->getClientCovenantForward($cdrequest));
     if ($clientCovenant['dtbirth'] != '') {
         $dtbirth = new Zend_Date($clientCovenant['dtbirth'], 'dd-MM-YYYY');
         $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($clientCovenant['dtbirth']);
         if ($tdMonth < $month || $tdMonth == $month && $tdDay < $day) {
             $nrage--;
         }
     } else {
         $nrage = " ";
     }
     $responce->forward = $clientCovenant['nmforward'];
     $responce->covenant = $clientCovenant['nmcovenant'];
     $responce->client = $clientCovenant['nmclient'];
     $responce->fgsex = $clientCovenant['fgsex'];
     $responce->age = $nrage;
     $responce = json_encode($responce);
     print_r($responce);
     return $responce;
 }
    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
    }
 public function faturaconvenioAction($cdbilling = 23, $cdcovenant = 1)
 {
     /* DADOS DA FATURA */
     $billingModel = new BillingModel();
     $billingData = $billingModel->fetchRow('cdbilling = ' . $cdbilling);
     /* EXAMES DA FATURA */
     $billingExaminationModel = new BillingExaminationModel();
     $billingExaminationData = $billingExaminationModel->fetchAll('cdbilling = ' . $cdbilling);
     /* DADOS DO CONVÊNIO */
     $covenantModel = new CovenantModel();
     $covenantData = $covenantModel->fetchRow($cdcovenant);
     /* VARIÁVEIS DO XML */
     $sequencialTransacao = $billingData['nrbatch'];
     $doc = new DOMDocument();
     $doc->formatOutput = true;
     $root = $doc->appendChild($doc->createElementNS($ans = 'http://www.ans.gov.br/padroes/tiss/schemas http://www.ans.gov.br/padroes/tiss/schemas/tissV2_02_01.xsd', 'ans:mensagemTISS'));
     $root->setAttributeNS('http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation', 'http://www.ans.gov.br/padroes/tiss/schemas http://www.ans.gov.br/padroes/tiss/schemas/tissV2_02_01.xsd');
     /*
      * 
      * Cabeçalho padrão
      * 
      */
     /*$cabecalho = $root->appendChild($doc->createElementNS($ans, 'ans:cabecalho'));
     
             $identificacaoTransacao = $cabecalho->appendChild($doc->createElementNS($ans, 'ans:identificacaoTransacao'));
             $identificacaoTransacao->appendChild($doc->createElementNS($ans, 'ans:tipoTransacao', 'ENVIO_LOTE_GUIAS'));
             $identificacaoTransacao->appendChild($doc->createElementNS($ans, 'ans:sequencialTransacao', $sequencialTransacao));     // ***************************** ?????????????? ******************************** 
             $identificacaoTransacao->appendChild($doc->createElementNS($ans, 'ans:dataRegistroTransacao', date("Y-m-d")));
             $identificacaoTransacao->appendChild($doc->createElementNS($ans, 'ans:horaRegistroTransacao', date("H:i:s")));
     
             $origem = $cabecalho->appendChild($doc->createElementNS($ans, 'ans:origem'));
             $CNPJ = $origem->appendChild($doc->createElementNS($ans, 'ans:codigoPrestadorNaOperadora'));
             $CNPJ->appendChild($doc->createElementNS($ans, 'ans:CNPJ', $covenantData->idcnpj));
     
             $destino = $cabecalho->appendChild($doc->createElementNS($ans, 'ans:destino'));
             $registroANS = $destino->appendChild($doc->createElementNS($ans, 'ans:registroANS', $covenantData->nrans));   // ***************************** ADICIONAR NA TABELA ********************************  
     
             $versaoPadrao = $cabecalho->appendChild($doc->createElementNS($ans, 'ans:versaoPadrao', '2.02.01'));
     
             $prestadorParaOperadora = $root->appendChild($doc->createElementNS($ans, 'ans:prestadorParaOperadora'));
             $loteGuias = $prestadorParaOperadora->appendChild($doc->createElementNS($ans, 'ans:loteGuias'));
             $loteGuias->appendChild($doc->createElementNS($ans, 'ans:numeroLote', $sequencialTransacao));           // ***************************** ?????????????? ******************************** 
             $guias = $loteGuias->appendChild($doc->createElementNS($ans, 'ans:guias'));
             $guiaFaturamento = $guias->appendChild($doc->createElementNS($ans, 'ans:guiaFaturamento'));
     
             /*
              * 
              * Entra no laço dos dados da guia SP/SADT
              * 
              */
     $numeroRequests = $billingExaminationModel->fetchAll($billingExaminationModel->getDistinctRequests($cdbilling));
     /* INSTÂNCIAS DOS MODELS */
     $RequestModel = new RequestModel();
     foreach ($numeroRequests as $requisicao) {
         /* DADOS DA REQUISIÇÃO, PACIENTE, CONVÊNIOS VINCULADO E EMPRESA */
         $RequestData = $RequestModel->fetchRow($RequestModel->getXMLData($requisicao->requisicao, $cdcovenant));
         print_r($RequestData);
         die;
         $guiaSP_SADT = $guiaFaturamento->appendChild($doc->createElementNS($ans, 'ans:guiaSP_SADT'));
         $identificacaoGuiaSADTSP = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:identificacaoGuiaSADTSP'));
         $identificacaoFontePagadora = $identificacaoGuiaSADTSP->appendChild($doc->createElementNS($ans, 'ans:identificacaoFontePagadora'));
         $registroANS = $identificacaoFontePagadora->appendChild($doc->createElementNS($ans, 'ans:registroANS', $RequestData->nrans));
         $dataEmissaoGuia = $identificacaoGuiaSADTSP->appendChild($doc->createElementNS($ans, 'ans:dataEmissaoGuia', '2012-07-13'));
         $numeroGuiaPrestador = $identificacaoGuiaSADTSP->appendChild($doc->createElementNS($ans, 'ans:numeroGuiaPrestador'));
         $numeroGuiaOperadora = $identificacaoGuiaSADTSP->appendChild($doc->createElementNS($ans, 'ans:numeroGuiaOperadora'));
         $numeroGuiaPrincipal = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:numeroGuiaPrincipal'));
         $dadosAutorizacao = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:dadosAutorizacao'));
         $dataAutorizacao = $dadosAutorizacao->appendChild($doc->createElementNS($ans, 'ans:dataAutorizacao', date("Y-m-d")));
         $senhaAutorizacao = $dadosAutorizacao->appendChild($doc->createElementNS($ans, 'ans:senhaAutorizacao'));
         $dadosBeneficiario = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:dadosBeneficiario'));
         $numeroCarteira = $dadosBeneficiario->appendChild($doc->createElementNS($ans, 'ans:numeroCarteira', $RequestData->idcovenantcard));
         $nomeBeneficiario = $dadosBeneficiario->appendChild($doc->createElementNS($ans, 'ans:nomeBeneficiario', utf8_decode($RequestData->nmcardholder)));
         $nomePlano = $dadosBeneficiario->appendChild($doc->createElementNS($ans, 'ans:nomePlano', $RequestData->nmcovenantplan));
         // ***************************** ADICIONAR NA TABELA ********************************
         $dadosSolicitante = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:dadosSolicitante'));
         $contratado = $dadosSolicitante->appendChild($doc->createElementNS($ans, 'ans:contratado'));
         $identificacao = $contratado->appendChild($doc->createElementNS($ans, 'ans:identificacao'));
         $CNPJ = $identificacao->appendChild($doc->createElementNS($ans, 'ans:CNPJ', $RequestData->idcnpj));
         $nomeContratado = $identificacao->appendChild($doc->createElementNS($ans, 'ans:nomeContratado', utf8_decode($RequestData->nmcompany)));
         $numeroCNES = $identificacao->appendChild($doc->createElementNS($ans, 'ans:numeroCNES', $RequestData->nrcnes));
         $profissional = $dadosSolicitante->appendChild($doc->createElementNS($ans, 'ans:profissional'));
         $nomeProfissional = $profissional->appendChild($doc->createElementNS($ans, 'ans:nomeProfissional', utf8_decode($RequestData->nmforward)));
         $conselhoProfissional = $profissional->appendChild($doc->createElementNS($ans, 'ans:conselhoProfissional'));
         $siglaConselho = $conselhoProfissional->appendChild($doc->createElementNS($ans, 'ans:siglaConselho', $RequestData->nmtypecrm));
         $numeroConselho = $conselhoProfissional->appendChild($doc->createElementNS($ans, 'ans:numeroConselho', $RequestData->idmaincrm));
         $ufConselho = $conselhoProfissional->appendChild($doc->createElementNS($ans, 'ans:ufConselho', $RequestData->idmaiscrmstate));
         $prestadorExecutante = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:prestadorExecutante'));
         $identificacao = $prestadorExecutante->appendChild($doc->createElementNS($ans, 'ans:identificacao'));
         $CNPJ = $identificacao->appendChild($doc->createElementNS($ans, 'ans:CNPJ', $RequestData->idcnpj));
         $nomeContratado = $prestadorExecutante->appendChild($doc->createElementNS($ans, 'ans:nomeContratado', utf8_decode($RequestData->nmcompany)));
         $numeroCNES = $prestadorExecutante->appendChild($doc->createElementNS($ans, 'ans:numeroCNES', $RequestData->nrcnes));
         $caraterAtendimento = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:caraterAtendimento', 'E'));
         $dataHoraAtendimento = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:dataHoraAtendimento', str_replace(" ", "T", $RequestData->dtrequest)));
         $tipoSaida = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:tipoSaida', '5'));
         $tipoAtendimento = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:tipoAtendimento', '05'));
         $procedimentosRealizados = $guiaSP_SADT->appendChild($doc->createElementNS($ans, 'ans:procedimentosRealizados'));
         /*
          * 
          * Entra no laço dos dados dos procedimentos
          * 
          */
         for ($j = 0; $j < 5; $j++) {
             $procedimentos = $procedimentosRealizados->appendChild($doc->createElementNS($ans, 'ans:procedimentos'));
             $procedimento = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:procedimento'));
             $codigo = $procedimento->appendChild($doc->createElementNS($ans, 'ans:codigo', '2865'));
             $tipoTabela = $procedimento->appendChild($doc->createElementNS($ans, 'ans:tipoTabela', '02'));
             $descricao = $procedimento->appendChild($doc->createElementNS($ans, 'ans:descricao', 'ANTIGENO AUSTRALIA HBSAG'));
             $data = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:data', '2012-07-13'));
             $horaInicio = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:horaInicio', '13:02:56'));
             $horaFim = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:horaFim', '14:05:20'));
             $quantidadeRealizada = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:quantidadeRealizada', '1'));
             $viaAcesso = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:viaAcesso', 'U'));
             $tecnicaUtilizada = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:tecnicaUtilizada', 'C'));
             $reducaoAcrescimo = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:reducaoAcrescimo', '1.00'));
             $valor = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:valor', '23.25'));
             $valorTotal = $procedimentos->appendChild($doc->createElementNS($ans, 'ans:valorTotal', '23.25'));
         }
     }
     /*$epilogo = $root->appendChild($doc->createElementNS($ans, 'ans:epilogo'));
     
             $els = $doc->getElementsByTagName('*');
             for ($i = 0; $i < $els->length; $i++) {
                 if (!$els->item($i)->hasChildNodes()) {
                     
                 } elseif ($els->item($i)->firstChild->nodeType == 3) {
                     $tmp = $els->item($i)->textContent;
                     if (preg_match("/\n/", $tmp)) {
                         $tmp = preg_replace("/\n/", "", $tmp);
                     }
                     $mensagemTISS = $mensagemTISS . ($tmp);
                 }
             }
             $hash = md5($mensagemTISS);
     
     
             $hash2 = $root->appendChild($doc->createElementNS($ans, 'ans:hash', $hash));*/
     //header("Content-Type: text/xml");
 }