Pesquisar na Comunidade
Mostrando resultados para as tags ''livewire eloquent''.
Encontrado 1 registro
-
Foi em 1999 é que eu inventei o estoque como a última compra. Coloquei essa ideia no MS Access, em 2020 no PHP e agora cheguei no Livewire, eu chamei a rotina de baixa de estoque. A ideia é bem simples, o problema é como adaptar num programa de computador. Ou seja, eu fiz tudo na base da improvisação, a maior prova é que eu sempre encontro divergência na hora de rodar a rotina. Hoje eu aprendi um novo método no Eloquent chamado keyBy. Ao invés de ajuntar duas tabelas, eu fiz uma consulta numa tabela e outra consulta em outra tabela, e em seguida ajuntei o resultado, tendo como denominador o campo lançamento. A primeira diferença que eu encontrei foi lá em 2023. Naquela época, o fornecedor trocou uma mercadoria por outra. Ao invés de fazer um lançamento para a mercadoria que entrou e outro lançamento para a mercadoria que saiu, eu fiz tudo num só lançamento, e agora eu amargo o problema da inconsistência contábil no estoque. Naquela época, eu achei a ideia ótima, mas hoje eu volto a aprender que a gambiarra não compensa. app > Livewire > EstoqueDiferenca.php <?php namespace App\Livewire; use App\Models\tbdiario; use App\Models\tbhistprod; use Illuminate\Support\Facades\DB; use Livewire\Attributes\Layout; use Livewire\Component; #[Layout('components.layouts.app',['titulo'=>'Teste'])] class Teste extends Component { public $entrada,$saida; function mount() { $contabil = tbdiario::where('contac',123)->orderBy('lcto')->get()->keyBy('lcto'); $estoque = tbhistprod::select('lcto', DB::raw('SUM(custototal) as saida')) ->groupBy('lcto')->orderBy('lcto')->get()->keyBy('lcto'); $this->saida=collect(); foreach($contabil as $lcto => $conta) { $saiu=$estoque[$lcto]->saida ?? 0; $this->saida->push(['lcto'=>$lcto,'valor'=>$conta->valor,'saida'=>$saiu]); } $contabil = tbdiario::where('contad',123)->orderBy('lcto')->get()->keyBy('lcto'); $this->entrada=collect(); foreach($contabil as $lcto => $conta) { $entrou=$estoque[$lcto]->saida ?? 0; $this->entrada->push(['lcto'=>$lcto,'valor'=>$conta->valor,'entrada'=>$entrou]); } } } resources > views > estoque-diferenca.blade.php <div> <div class=flex> <div class="w-[100px] text-right">Lcto</div> <div class="w-[100px] text-right">Contábil</div> <div class="w-[100px] text-right">Estoque</div> <div class="w-[100px] text-right">Divergência</div> </div> <div class="w-[300px] ml-40">Diferença na Saída do Estoque</div> @foreach($saida as $a) @if($a['valor']+$a['saida']) <div class="flex odd:bg-gray-200"> <div class="w-[100px] text-right">{{$a['lcto']}}</div> <div class="w-[100px] text-right">{{dec($a['valor'])}}</div> <div class="w-[100px] text-right">{{dec($a['saida'])}}</div> <div class="w-[100px] text-right">{{dec($a['valor']+$a['saida'])}}</div> </div> @endif @endforeach <div class="w-[300px] ml-40">Diferença na Entrada do Estoque</div> @foreach($entrada as $a) @if($a['valor']-$a['entrada']) <div class="flex odd:bg-gray-200"> <div class="w-[100px] text-right">{{$a['lcto']}}</div> <div class="w-[100px] text-right">{{dec($a['valor'])}}</div> <div class="w-[100px] text-right">{{dec($a['entrada'])}}</div> <div class="w-[100px] text-right">{{dec($a['valor']-$a['entrada'])}}</div> </div> @endif @endforeach </div>