Jump to content
Fórum Script Brasil
  • 0

A classe


Frank K Hosaka

Question

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

Edited by Frank K Hosaka
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.9k
×
×
  • Create New...