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

A classe


Frank K Hosaka

Pergunta

Finalmente, eu consegui terminar a tradução do meu projeto em PHP para Laravel. Tudo o que eu precisava era criar uma classe no Laravel.

O Laravel não permite criar uma classe dentro de outra classe. Eu tentei colocar num arquivo chamado Helpers.php, mas o Laravel não aceitou.

O único jeito foi criar um controller, assim: php artisan make:controller vr

Eu queria chamar a minha classe de var, mas o Laravel também não deixa. A seguir a listagem da classe vr, o controller do orçamento e seu respectivo blade:

vr.php

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class vr extends Controller {
public $ped;
public $diaped;
public $totalped;
public $codp;
public $pessoa;
public $end;
public $cnpj;
public $tel;
public $nota;
public $codprod;
public $prod;
public $un;
public $preço;
public function getPed(){return $this->ped;}
public function getDiaped(){return $this->diaped;}
public function getTotalPed(){return $this->totalped;}
public function getCodp(){return $this->codp;}
public function getPessoa(){return $this->pessoa;}
public function getEnd(){return $this->end;}
public function getCNPJ(){return $this->cnpj;}
public function getTel(){return $this->tel;}
public function getNota(){return $this->nota;}
public function getCodprod(){return $this->codprod;}
public function getProd(){return $this->prod;}
public function getUn(){return $this->un;}
public function getPreco(){return $this->preço;}
}

------------------------------------------------------------------
OrcamentoController.php

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\tbsupervariavel;
use App\Models\tbpedido;
use App\Models\tbpessoa;
use App\Models\vw_histped;
use App\Models\tbprod;
use App\Models\tbhistped;
use Auth;
class OrcamentoController extends Controller {
public function orcamento(request $request){
    $vr=new vr();
    if($request->input('qt')){
        $qt=$request->input('qt');
        if($qt!=0){
            $qt=fmt($qt);
            $texto=$request->input('texto');
            $vetor=explode(",",$texto);
            $preço=$vetor[0];
            $codprod=tbsupervariavel::where('codsuper',Auth::id())->value('codprod');
            $ped=$vetor[1];
            $un=$vetor[2];
            $subtotal=$qt*$preço;
            tbhistped::create(['ped'=>$ped,'codprod'=>$codprod,'un'=>$un,'unitario'=>$preço,'subtotal'=>$subtotal,'qt'=>$qt]);
            $total=tbhistped::where('ped',$ped)->sum('subtotal');
            tbpedido::where('ped',$ped)->update(['total'=>$total]);}}
    if($request->input('excluir')){
        $id=$request->input('excluir');
        $ped=$request->input('pedido');
        tbhistped::destroy($id);
        $total=tbhistped::where('ped',$ped)->sum('subtotal');
        tbpedido::where('ped',$ped)->update(['total'=>$total]);}
    if($request->input('produto')){
        $produto=$request->input('produto');
        $tamanho=strlen($produto);
        $posicao=strpos($produto,":");
        $vr->codprod=substr($produto,$posicao+1,$tamanho-$posicao);
        tbsupervariavel::where('codsuper',Auth::id())->update(['codprod'=>$vr->codprod]);
        $produto=tbprod::where('codprod',$vr->codprod)->first();
        $vr->prod=$produto->prod;
        $vr->un=$produto->un;
        $vr->preço=pvenda($produto->custo,$produto->marg);}
    if($request->input('anterior')){
        $ped=$request->input('anterior');
        if($ped>0){$ped--;}
        tbsupervariavel::where('codsuper',Auth::id())->update(['ped'=>$ped]);}
    if($request->input('novo')){
        $pedido=tbpedido::orderBy('ped','desc')->first();
        if($pedido->total!=0){
            $pedido->ped++;
            tbpedido::create(['ped'=>$pedido->ped,'dia'=>now()]);}
        tbsupervariavel::where('codsuper',Auth::id())->update(['ped'=>$pedido->ped]);}
    tbsupervariavel::where('codsuper',Auth::id())->update(['end'=>'orcamento']);
    $vr->ped=tbsupervariavel::where('codsuper',Auth::id())->value('ped');
    $vr->diaped=tbpedido::where('ped',$vr->ped)->value('dia');
    $vr->totalped=tbpedido::where('ped',$vr->ped)->value('total');
    $vr->codp=tbpedido::where('ped',$vr->ped)->value('codp');
    if($vr->codp){
        $pessoa=tbpessoa::where('codp',$vr->codp)->first();
        $vr->pessoa=$pessoa->pessoa;
        $vr->end=$pessoa->end;
        $vr->cnpj=$pessoa->cnpj;
        $vr->tel=$pessoa->tel;
        $vr->nota=$pessoa->nota;}
    $histped=vw_histped::where('ped',$vr->ped)->get();
    $prod=tbprod::orderBy('prod')->get();
    return view('orcamento',compact('vr','histped','prod'));}
}
---------------------------------------------------------------------------------
orcamento.blade.php

@include('menu')
<script>document.title="Orçamento"
btmenu.innerHTML='Barraca do Frank<br>Esquina da Magazine Luiza'
</script>
<div><table class='table table-striped'>
<td><form><input type='submit' value='anterior'><input type='hidden' name='anterior' value={{$vr->ped}}></form>
<td style=color:red>Pedido {{$vr->ped}} de {{dbr($vr->diaped)}} 
<td><form><input type='submit' value='novo'><input type='hidden' name='novo' value='novo'></form></table>
<div><table class='table table-striped linha2'><th>Produto<th style=text-align:right>Qt<th>Un<th>Preço<th>Total
@foreach($histped as $item)
<tr>
	<td nowrap>{{$item->prod}}
	<td align=right>
		@if($item->qt==intval($item->qt))
			{{$item->qt}}
		@else
			{{dec($item->qt)}}
		@endif
	<td><a href=?excluir={{$item->id}}&pedido={{$item->ped}}>{{$item->un}}</a>
	<td align=right>{{dec($item->unitario)}}
	<td align=right>{{dec($item->subtotal)}}
@endforeach
<tr>
@if(!isset($_GET['produto']))	
	<td>
	<form>
	<input list=lsproduto name=produto placeholder=produto onchange=submit() size=40>
	<datalist id='lsproduto'>
	@foreach($prod as $pr)
	<option value='{{$pr->prod}} :{{$pr->codprod}}'>
	@endforeach
	</datalist>
	</form>
@else
	<td>{{$vr->prod}}
@endif
@if(!isset($_GET['qt']))
	<td align=right>
	<form>
	<input id=qt name=qt onchange=submit() size=1 placeholder=qt autofocus>
	<input type=hidden name=texto value="{{fmt($vr->preço)}},{{$vr->ped}},{{$vr->un}}">
	</form>
	<td>{{$vr->un}}<td>{{$vr->preço}}
@endif
<tr><td>
	@if(empty($vr->codp))
		<a href=pessoa>Selecione um cliente</a>
	@else
		<details>
			<summary><b>{{$vr->pessoa}}</b></summary>
			Endereço <b>{{$vr->end}}</b> <br>
			CNPJ <b>{{$vr->cnpj}}</b> <br>
			Telefone <b>{{$vr->tel}}</b> <br>
			Nota <b>{{$vr->nota}}</b>  <br>
			<a href=pessoa>Mudar cliente</a> <br>
			<a href="pessoa?busca={{$vr->pessoa}}">Atualizar cliente</a>
		</details>
	@endif
	<td><td><td><td><b>{{dec($vr->totalped)}}
</table>
</div>

O único problema desse código é que ele usa o método GET, o que deixa um monte de comandos na barra de navegação. Ou seja, se você atualizar o navegador, ele vai incluir o mesmo produto tantas vezes quanto você atualizar a tela do navegador. Para contornar isso, o pessoal recomenda usar o método POST, mas aí você não consegue enxergar coisa alguma na barra de navegação. Isso é um dilema difícil de resolver.

Screenshot_1.png

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...