Completed
Pull Request — master (#7)
by
unknown
01:12
created

AbstractReaderHtmlLoteria::loadDezenasLive()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 8
rs 9.4285
cc 2
eloc 5
nc 2
nop 1
1
<?php
2
3
namespace LoteriaApi\Consumer\Reader;
4
5
use \DOMDocument;
6
use \DOMNodeList;
7
use \DomXPath;
8
9
abstract class AbstractReaderHtmlLoteria implements IReaderHtml
10
{
11
    protected $domdocument;
12
    protected $numbersNode;
13
    protected $data = [];
14
15
    abstract public function getData();
16
    abstract public function getDataLive();
17
18
    public function setDOMDocument(DOMDocument $domdocument)
19
    {
20
        $this->domdocument = $domdocument;
21
        return $this;
22
    }
23
24
    public function setNumbersNode(LoteriaNumbersNode $numbersNode)
25
    {
26
        $this->numbersNode = $numbersNode;
27
        return $this;
28
    }
29
30
    protected function loadData(LoteriaNumbersNode $numbersNode)
31
    {
32
        $table = $this->domdocument->getElementsByTagName('table')->item(0);
33
        $trs = $table->getElementsByTagName('tr');
34
35
        for ($concursoHtml = 1; $concursoHtml < $trs->length; $concursoHtml++) {
36
            $tds = $trs->item($concursoHtml)->getElementsByTagName('td');
37
            
38
            $nrconcurso = $tds->item($numbersNode->getNumberConcurso())->nodeValue;
39
40
            $data = $tds->item($numbersNode->getDataConcurso())->nodeValue;
41
            $dezenas = $this->loadDezenas($numbersNode, $tds);
42
            $arrecadacao = isset($tds->item($numbersNode->getArrecadacaoConcurso())->nodeValue) ? $tds->item($numbersNode->getArrecadacaoConcurso())->nodeValue : "";
43
            $totalGanhadoresPrimeiroPremio = isset($tds->item($numbersNode->getTotalGanhadoresPrimeiroPremio())->nodeValue) ? $tds->item($numbersNode->getTotalGanhadoresPrimeiroPremio())->nodeValue : "";
44
            $totalGanhadoresSegundoPremio = isset($tds->item($numbersNode->getTotalGanhadoresSegundoPremio())->nodeValue) ? $tds->item($numbersNode->getTotalGanhadoresSegundoPremio())->nodeValue : "";
45
            $totalGanhadoresTerceiroPremio = isset($tds->item($numbersNode->getTotalGanhadoresTerceiroPremio())->nodeValue) ? $tds->item($numbersNode->getTotalGanhadoresTerceiroPremio())->nodeValue : "";
46
            $valorGanhadoresPrimeiroPremio = isset($tds->item($numbersNode->getValorGanhadoresPrimeiroPremio())->nodeValue) ? $tds->item($numbersNode->getValorGanhadoresPrimeiroPremio())->nodeValue : "";
47
            $valorGanhadoresSegundoPremio = isset($tds->item($numbersNode->getValorGanhadoresSegundoPremio())->nodeValue) ? $tds->item($numbersNode->getValorGanhadoresSegundoPremio())->nodeValue : "";
48
            $valorGanhadoresTerceiroPremio = isset($tds->item($numbersNode->getValorGanhadoresTerceiroPremio())->nodeValue) ? $tds->item($numbersNode->getValorGanhadoresTerceiroPremio())->nodeValue : "";
49
            $valorAcumulado = isset($tds->item($numbersNode->getValorAcumuladoConcurso())->nodeValue) ? $tds->item($numbersNode->getValorAcumuladoConcurso())->nodeValue : "";
50
            $valorEstimadoProximoConcurso = isset($tds->item($numbersNode->getValorEstimadoProximoConcurso())->nodeValue) ? $tds->item($numbersNode->getValorEstimadoProximoConcurso())->nodeValue : "";
51
            $acumulado = $totalGanhadoresPrimeiroPremio === '0' ? 'SIM' : 'NÃO';
52
53
            $this->data[$nrconcurso] = [
54
                'data' => $data,
55
                'dezenas' => $dezenas,
56
                'arrecadacao' => $arrecadacao,
57
                'total_ganhadores_primeiro_premio' => $totalGanhadoresPrimeiroPremio,
58
                'total_ganhadores_segundo_premio' => $totalGanhadoresSegundoPremio,
59
                'total_ganhadores_terceiro_premio' => $totalGanhadoresTerceiroPremio,
60
                'valor_ganhadores_primeiro_premio' => $valorGanhadoresPrimeiroPremio,
61
                'valor_ganhadores_segundo_premio' => $valorGanhadoresSegundoPremio,
62
                'valor_ganhadores_terceiro_premio' => $valorGanhadoresTerceiroPremio,
63
                'acumulado' => $acumulado,
64
                'valor_acumulado' => $valorAcumulado,
65
                'valor_estimado_proximo_concurso' => $valorEstimadoProximoConcurso,
66
            ];
67
        }
68
    }
69
70
    private function loadDezenas(LoteriaNumbersNode $numbersNode, DOMNodeList $tds)
71
    {
72
        $dezenas = [];
73
74
        foreach ($numbersNode->getDezenasConcurso() as $dezenaConcurso) {
75
            if (isset($tds->item($dezenaConcurso)->nodeValue)) {
76
                $dezenas[] = $tds->item($dezenaConcurso)->nodeValue;
77
            }
78
        }
79
80
        return $dezenas;
81
    }
82
83
    protected function loadDezenasLive(DOMNodeList $nodes) {
84
        $dezenas = [];
85
        foreach ($nodes as $node) {
86
            $dezenas[] = $node->nodeValue;
87
        }
88
89
        return $dezenas;        
90
    }
91
}
92