-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Controle adicional no limite de dimensões #20
base: master
Are you sure you want to change the base?
Conversation
There was a calculation error while telling Correios webservices about a package dimensions. Calculated volume is not always appropriate. This commit adds maximum dimension limits, so correios can error out when items that are too large are packed.
Also added some information to changelog.
So one can be sure that they are not pointing to the same place.
When any of the dimensions are set to zero, the non-zero dimension must not be set to minimum accepted by Correios
Feature/maximum dimensions
@aramisf In review ASAP. |
@aramisf Pelos testes que você adicionou não consegui identificar todas as situações e resultados. Obrigado. |
@prodis Cara, desculpa a demora, só vim ver hoje os seus comentários. Posso fazer isso sim. Vou aproveitar a oportunidade e fazer mais uma alteração, algo que eu gostaria de ter feito na lib, mas que ficou em espera por causa da correria. Vou pegar esses commits e |
Updates README with information regarding new features
@prodis dá uma olhada no README. |
@@ -1,4 +1,7 @@ | |||
== Versão 1.9.3 | |||
== Versão 1.9.5 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Atualização de versão é feita somente no branch master.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Certo, me ficou uma dúvida: posso arrancar o texto numa boa? Você se encarrega de escrever outro texto para a mensagem de changelog?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sim.
Este pull request sugere um refinamento no tratamento das dimensões de um pacote com mais de um item
1. Itens com dimensões maiores que o permitido pelos Correios:
Um item criado com parâmetros como:
item = Correios::Frete::PacoteItem.new( :altura => 110, :largura => 20, :comprimento => 20, :peso => 0.1 )
é recusado por exceder o limite de altura aceito pelos Correios (o limite atual é de 105 cm).
Ao adicionar dois ou mais desses itens em um pacote, o cálculo do volume total afeta o valor
das dimensões, inclusive da altura. Fazendo com que o pacote seja aceito pelos Correios 😱
Este caso só se torna um problema quando os itens de um pacote não podem ser dobrados ou compactados de forma a ter suas dimensões reduzidas.
Este pull request sugere uma alternativa (mas desconsidera itens dobráveis).
2. Um pacote contendo itens em que ao menos uma dimensão é zero:
Ao adicionar um item com ao menos uma dimensão igual a zero:
item = Correios::Frete::PacoteItem.new( :altura => 110, :largura => 0, :comprimento => 0, :peso => 0.1 )
O pacote fica com altura
2.0
, pois ao menos uma de suas duas outras dimensões é0
. O problema aqui é que novamente a altura será alterada para um valor menor que o real, e para os casos de objetos que não podem ser compactados, dobrados, etc., isso pode ser um inconveniente.Este pull request sugere manter os valores mais altos quando os mesmos ultrapassarem os limites máximos aceitos pelos Correios.
TODO:
Ainda resta um problema a ser resolvido, que é o caso de um item como este:
item = Correios::Frete::PacoteItem.new( :altura => 100, :largura => 100, :comprimento => 1, :peso => 0.1 )
ao adicionar um item, os Correios anunciam que não é permitido que a soma das dimensões ultrapasse 200 cm. Ao adicionar dois itens, as dimensões caem novamente no cálculo do volume total, baixando para um valor aceito pelos Correios.
Os commits foram todos feitos em inglês porque esse é o padrão aqui na firma. Mas procurei manter os padrões de código, nomenclatura de variáveis, etc.