Skip to content

Commit dae6a64

Browse files
authored
Merge pull request #6 from tecnospeed/hotfix/types
Hotfix/types
2 parents 4e2daab + 122cb31 commit dae6a64

File tree

7 files changed

+52
-11
lines changed

7 files changed

+52
-11
lines changed

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# Changelog
22
Alterações na biblioteca
33

4+
## [1.4.1] - 20/03/2019
5+
### Corrigido
6+
7+
Correção nos tipos float e boolean que não estavam fazendo o cast adequadamente.
8+
Também corrigido campos nulos que deveriam ser tratados antes de enviar para a API.
9+
410
## [1.4.0] - 14/03/2019
511
### Adicionado
612

src/Abstracts/BuilderAbstract.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
abstract class BuilderAbstract implements IBuilder
1111
{
12-
public function toArray($excludeNull = false)
12+
public function toArray($excludeNull = true)
1313
{
1414
return Extract::toArray($this, $excludeNull);
1515
}

src/Nfse/Servico/Iss.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public function setAliquota($aliquota)
2323
'É necessário informar um valor numérico para aliquota.'
2424
);
2525
}
26-
$this->aliquota = $aliquota;
26+
$this->aliquota = (float)$aliquota;
2727
}
2828

2929
public function getAliquota()
@@ -63,7 +63,7 @@ public function setRetido($retido)
6363
'Retido deve ser um valor booleano.'
6464
);
6565
}
66-
$this->retido = $retido;
66+
$this->retido = (bool)$retido;
6767
}
6868

6969
public function getRetido()
@@ -93,7 +93,7 @@ public function setValor($valor)
9393
'É necessário informar um valor numérico para o campo valor.'
9494
);
9595
}
96-
$this->valor = $valor;
96+
$this->valor = (float)$valor;
9797
}
9898

9999
public function getValor()
@@ -108,7 +108,7 @@ public function setValorRetido($valorRetido)
108108
'É necessário informar um valor numérico para o campo valorRetido.'
109109
);
110110
}
111-
$this->valorRetido = $valorRetido;
111+
$this->valorRetido = (float)$valorRetido;
112112
}
113113

114114
public function getValorRetido()

src/Nfse/Servico/Valor.php

+6-6
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public function setBaseCalculo($baseCalculo)
2222
'Base de cálculo deve ser um valor numérico.'
2323
);
2424
}
25-
$this->baseCalculo = $baseCalculo;
25+
$this->baseCalculo = (float)$baseCalculo;
2626
}
2727

2828
public function getBaseCalculo()
@@ -37,7 +37,7 @@ public function setDeducoes($deducoes)
3737
'Deduções deve ser um valor numérico.'
3838
);
3939
}
40-
$this->deducoes = $deducoes;
40+
$this->deducoes = (float)$deducoes;
4141
}
4242

4343
public function getDeducoes()
@@ -52,7 +52,7 @@ public function setDescontoCondicionado($descontoCondicionado)
5252
'Desconto condicional deve ser um valor numérico.'
5353
);
5454
}
55-
$this->descontoCondicionado = $descontoCondicionado;
55+
$this->descontoCondicionado = (float)$descontoCondicionado;
5656
}
5757

5858
public function getDescontoCondicionado()
@@ -67,7 +67,7 @@ public function setDescontoIncondicionado($descontoIncondicionado)
6767
'Desconto incondicional deve ser um valor numérico.'
6868
);
6969
}
70-
$this->descontoIncondicionado = $descontoIncondicionado;
70+
$this->descontoIncondicionado = (float)$descontoIncondicionado;
7171
}
7272

7373
public function getDescontoIncondicionado()
@@ -82,7 +82,7 @@ public function setLiquido($liquido)
8282
'Valor líquido deve ser um valor numérico.'
8383
);
8484
}
85-
$this->liquido = $liquido;
85+
$this->liquido = (float)$liquido;
8686
}
8787

8888
public function getLiquido()
@@ -97,7 +97,7 @@ public function setServico($servico)
9797
'O valor do serviço deve ser um valor numérico.'
9898
);
9999
}
100-
$this->servico = $servico;
100+
$this->servico = (float)$servico;
101101
}
102102

103103
public function getServico()

tests/Nfse/PrestadorTest.php

+2
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ public function testValidateWithValidObject()
250250
'cpfCnpj' => '00.000.000/0001-91',
251251
'inscricaoMunicipal' => '123456',
252252
'razaoSocial' => 'Razao Social do Prestador',
253+
'simplesNacional' => false,
253254
'endereco' => [
254255
'logradouro' => 'Rua de Teste',
255256
'numero' => '1234',
@@ -298,6 +299,7 @@ public function testSend()
298299
$prestador->setInscricaoMunicipal('123456');
299300
$prestador->setRazaoSocial('Razao Social do Prestador');
300301
$prestador->setEndereco($endereco);
302+
$prestador->setSimplesNacional(false);
301303
$response = $prestador->send($configuration);
302304

303305
$this->assertEquals(200, $response->statusCode);

tests/Nfse/Servico/IssTest.php

+15
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,21 @@ public function testInvalidValorRetido()
5656
$iss->setValorRetido('teste');
5757
}
5858

59+
public function testTypeConversion()
60+
{
61+
$iss = new Iss();
62+
$iss->setAliquota('0.03');
63+
$iss->setRetido('');
64+
$iss->setValor('0.01');
65+
$iss->setValorRetido('0.01');
66+
$this->assertInternalType('double', $iss->getAliquota());
67+
$this->assertInternalType('double', $iss->getAliquota());
68+
$this->assertInternalType('bool', $iss->getRetido());
69+
$this->assertFalse($iss->getRetido());
70+
$this->assertInternalType('double', $iss->getValor());
71+
$this->assertInternalType('double', $iss->getValorRetido());
72+
}
73+
5974
public function testValidCreation()
6075
{
6176
$iss = new Iss();

tests/Nfse/Servico/ValorTest.php

+18
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,24 @@ public function testServicoWithInvalidValue()
5757
$valor->setServico('teste');
5858
}
5959

60+
public function testTypeConversion()
61+
{
62+
$valor = new Valor();
63+
$valor->setBaseCalculo('0.01');
64+
$valor->setDeducoes('0.02');
65+
$valor->setDescontoCondicionado('0.03');
66+
$valor->setDescontoIncondicionado('0.04');
67+
$valor->setLiquido('0.05');
68+
$valor->setServico('0.06');
69+
70+
$this->assertInternalType('double', $valor->getBaseCalculo());
71+
$this->assertInternalType('double', $valor->getDeducoes());
72+
$this->assertInternalType('double', $valor->getDescontoCondicionado());
73+
$this->assertInternalType('double', $valor->getDescontoIncondicionado());
74+
$this->assertInternalType('double', $valor->getLiquido());
75+
$this->assertInternalType('double', $valor->getServico());
76+
}
77+
6078
public function testWithValidData()
6179
{
6280
$valor = new Valor();

0 commit comments

Comments
 (0)