Giter VIP home page Giter VIP logo

Comments (4)

flyingluscas avatar flyingluscas commented on May 27, 2024

Estou num caso onde preciso adicionar vários itens, mas me deparei com o erro de dimensões fora do limite dos correios, pensei em atribuir o envio a uma variável qualquer, adicionar o item e usar o calculate() para simular o erro, caso erro criar uma nova entrega, só que mesmo em outra variável o Client é o mesmo e o item ainda fica naquela entrega.
Teria como simular o mesmo ou verificar se o próximo item cabe na entrega?

@ViniciusFernando13 Consegue dar mais detalhes do problema? Talvez adicionar alguns trechos de código exemplificando? :)

from correios-php.

web1989 avatar web1989 commented on May 27, 2024

@flyingluscas Estou com mesmo problema, foi implementado em nosso site, porém quando selecionamos uma quantidade de 8 produtos nessas dimensões e pesos ele não calcula
Com 8 produtos no carrinho com as dimensões e pesos ( Largura: 15 Altura: 15 comprimento: 20 peso: 500g ) o correios não calcula o valor.
Teria uma solução?
Ah, ótimo trabalho :)

from correios-php.

Leandrosv avatar Leandrosv commented on May 27, 2024

@flyingluscas @claudineireal @ViniciusFernando13 , se passaram alguns meses, mas caso não tenham achado ainda a solução, eu alterei uma parte do código e para mim deu certo!
Meu produtos são pequenos, então estou me baseando por tamanhos de caixas de papelão.
Se vocês conseguirem se basearem por tamanhos de caixas, alterem essa parte aqui:

<?
//subistituir essa
protected function height()
    {
        return array_sum(array_map(function ($item) {
            return $item['height'] * $item['quantity'];
        }, $this->items));
    }
//por essa.
protected function height()
    {
        return max(array_map(function ($item) {
            return $item['height'];
        }, $this->items));
    }

//Eu fiz isso e funcionou. Ai no carrinho de compras fiz validações:

$qntProd;//quantidade do carrinho;
$peso = $produtoPesoUnitario + $caixaVazia;
if($qntProd <= 2){
->item($larguraCaixa,$alturaCaixa,$comprimentoCaixa,$peso,$qntCorreios)
}else if(($qntProd >=3)&& ($qntProd <=7)){
->item($larguraCaixa,$alturaCaixa,$comprimentoCaixa,$peso,$qntCorreios)
}...//e assim por diante
?>

fiz isso até 50 produtos que é o limite de peso dos correios.
estou tentando bolar uma função para não repetir tanto código, mas sou programador novato, então estou com certa dificuldade nesta questão. Mas espero que se não conseguiram resolver, possam usar esta solução.
Abraços.

from correios-php.

Alysonkm avatar Alysonkm commented on May 27, 2024

Tem um bug na hora que ele calcula items mais pesados onde o valor ultrapassa os mil reais. Ex:
Array
(
[0] => Array
(
[name] => Sedex
[code] => 4014
[price] => 1.555
[deadline] => 7
[error] => Array
(
)

    )

[1] => Array
    (
        [name] => PAC
        [code] => 4510
        [price] => 802.1
        [deadline] => 14
        [error] => Array
            (
            )

    )

)

No caso o sedex é 1555 e o pac 802,10 por conta do ponto que existe nos dois valores, na hora de utilizar um formatador de moeda, ele n sabe quem é decimal ou quem é milhar.
Se eu falor ponto é milhar, o pac vira 802 mil, se eu falo que é decimal, o sedex vira 1,55. Vou ter que fazer uma "gambiarra" pra validar esses valores. Seria interessante isso ja vir formatado em um padrão.

from correios-php.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.