Ir para conteúdo
Fórum Script Brasil
  • 0

echo ((4.5-4.5)!==0) ? "verdadeiro" : "falso";


Frank K Hosaka

Pergunta

O resultado que o PHP passa para o valor acima é "verdadeiro", quando a resposta correta é "falso".

Essa é uma dor de cabeça na hora de procurar diferença entre o valor contábil e o valor do estoque. Outro problema é quando você faz um lançamento contábil errado, tipo debitar estoque e creditar custo do estoque na hora de baixar o estoque, ou fazer o lançamento contábil correto, mas um dos itens do estoque você lança com uma diferença de R$ 0,10.

Para o primeiro problema, eu resolvi assim:

echo ((4.5-4.5)>0.001) ? "verdadeiro" : "falso";

Para os demais, eu resolvi assim:

arquivo estoque.php (listagem parcial)
class Estoque
{
    public function diferencaEstoque()
    {
        $centrada = (new Conn)->select("sum(valor) as soma from tbdiario where contad=123")[0]->soma;
        $cestoque = (new Conn)->select("sum(custototal) as soma from tbprod join tbhistprod 
            on tbprod.codprod=tbhistprod.codprod where custototal>0 and loc<> 'a24'")[0]->soma;
        $dias = (new Conn)->select("dia,sum(custototal) as soma from tbprod join tbhistprod 
            on tbprod.codprod=tbhistprod.codprod where custototal>0 and loc<>'a24'
            group by dia order by dia");
        $contabeis=(new Conn)->select("dia from tbdiario where contad=123 group by dia");
        $diasContabeis=count($contabeis);
        $diasEstoque=count($dias);
        $vetores = [];
        foreach($contabeis as $dia)
        {
            $data=$dia->dia;
            if(!(new Conn)->select("dia from tbhistprod where dia='$data' and custototal > 0"))
            {
                $valor = (new Conn)->select("dia, sum(valor) as soma from tbdiario
                     where contad=123  and dia='$data'")[0]->soma;
                $vetores[] = (object)['data' => $data, 'entrada' => null, 
                     'valor' => $valor, 'diferenca' => $valor];
            }

        }
        
        foreach ($dias as $dia) 
        {
            $data = $dia->dia;
            $entrada = $dia->soma;
            $valor = (new Conn)->select("dia, sum(valor) as valor from tbdiario where contad=123 
                and dia='$data'")[0]->valor;
            $diferenca = $valor - $entrada;
            if($diferenca>0.001)
            {
                $vetores[] = (object)['data' => $data, 'entrada' => $entrada, 
                    'valor' => $valor, 'diferenca' => $diferenca];
            }
        }
        return view('estoqueDiferenca', ['centrada' => $centrada,'cestoque' => $cestoque,
            'vetores' => $vetores, 'diasContabeis'=>$diasContabeis, 'diasEstoque'=>$diasEstoque]);
    }
}

arquivo estoqueDiferenca.php
<?php include "menuView.php"; ?>
<table class='table table-striped linha'>
<tr><td>Contábil<td class=text-end><?=dec($centrada)?>
    <td>Dias Contábeis<td class=text-end><?=$diasContabeis?>
<tr><td>Estoque<td class=text-end><?=dec($cestoque)?>
    <td>Dias Estoque<td class=text-end><?=$diasEstoque?>
<tr class=fw-semibold><td>Dia<td class=text-end>Contábil<td class=text-end>Estoque
    <td class=text-end>Diferença
<?php foreach($vetores as $v): ?>
    <tr><td><?=fmt($v->data)?>
        <td class='text-end'><?=dec($v->valor)?>
        <td class='text-end'><?=dec($v->entrada)?>
        <td class='text-end'><?=dec($v->diferenca)?>
<?php endforeach;

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...