Sindbad~EG File Manager

Current Path : /var/www/html/gamificacionbahia.sumar.com.py/app/Http/Livewire/
Upload File :
Current File : /var/www/html/gamificacionbahia.sumar.com.py/app/Http/Livewire/Aguaterias.php

<?php

namespace App\Http\Livewire;

use Livewire\Component;
use Livewire\WithPagination;
use App\Models\Lote;
use App\Models\Condominio;
use Carbon\Carbon;
use App\Models\Cabecerafactura;
use App\Models\cabecerarecibo;
use App\Models\Itemfactura;
use App\Models\itemrecibo;
use App\Models\Matricula;
use DB;

class Aguaterias extends Component{

    use WithPagination;

    protected $paginationTheme = 'bootstrap';

    public $search='';

    public $factura="active",$derecho,$facturaview="true",$derechoview="false",$derechototal;

    public $ultimafactura,$condominio_id,$lote_id,$lecturainicial,$lecturafinal,$totalconsumo,$cargofijo,$excedente,$precioexcedente,
        $totalexcente,$totalapagar,$mes,$anho,$vencimiento;

    public function render(){

        $condominios= Condominio::where('con_estado',1)->get();

        $lotes= Lote::where('estado',1)->where('condominio_id',$this->condominio_id)->get();

        $this->totalconsumo=$this->lecturafinal-$this->lecturainicial;
        if($this->totalconsumo-15 > 0){
            $this->excedente=$this->totalconsumo-15;
        }else{
            $this->excedente=0;
        }
        $this->precioexcedente = (int)$this->precioexcedente;
        $this->totalexcente=$this->excedente*$this->precioexcedente;
        $this->cargofijo = (int)$this->cargofijo;
        $this->totalapagar = $this->cargofijo + $this->totalexcente;
        return view('livewire.aguaterias.index',["condominios"=>$condominios,"lotes"=>$lotes]);
    }

    public function reset_inputs(){
        $this->condominio_id = null;
        $this->lote_id = null;
        $this->lecturainicial = null;
        $this->lecturafinal = null;
        $this->totalconsumo = null;
        $this->cargofijo = null;
        $this->excedente = null;
        $this->precioexcedente = null;
        $this->totalexcente = null;
        $this->totalapagar = null;
        $this->mes = null;
        $this->anho = null;
        $this->vencimiento = null;
        $this->derechototal = null;
        
        // Emitir evento para JavaScript
        $this->emit('reset-inputs');
    }

    public function store(){ 
 
        $validatedDate = $this->validate([
            'condominio_id' => 'required',
            'lote_id' => 'required',
            'lecturainicial' => 'required',
            'lecturafinal' => 'required',
            'totalconsumo' => 'required',
            'cargofijo' => 'required',
            'excedente' => 'required',
            'precioexcedente' => 'required',
            'totalexcente' => 'required',
            'totalapagar' => 'required',
            'mes' => 'required',
            'anho' => 'required',
            'vencimiento' => 'required',
        ]);
        // Se obtiene al titular de la propiedad
        $matricula=Matricula::where('lote_id',$this->lote_id)->where('propietario',1)->first();
        // Se obtiene el condominio
        $condominio=Condominio::find($this->condominio_id);
        // Se obtiene la ultima numeracion de la factura respetando el timbrado
        if($ultimaFactura=Cabecerafactura::where('timbrado', $condominio->timbrado)->orderBy('id', 'desc')->first()){
            $ultimaFactura=$ultimaFactura->nfactura+1;
        }else{
            $ultimaFactura=1;
        }

        $factura = new Cabecerafactura;
            $factura->nfactura = $ultimaFactura;
            $factura->timbrado = $condominio->timbrado;
            $factura->lote_id = $this->lote_id;
            $factura->usuario_id = $matricula->usuario_id;
            $factura->vencimiento = $this->vencimiento;
            $factura->codestablecimineto = "00".$condominio->codigo1;
            $factura->puntodeexpedicion = "00".$condominio->codigo2;
            $factura->iniciovigencia = $condominio->iniciovigenciatimbrado;
            $factura->finvigencia = $condominio->finvigenciatimbrado;
            $factura->tipo = 1;
            $factura->estado = 0;
        if($factura->save()){
            $itemfactura = new Itemfactura;
                $itemfactura->concepto = "Consumo de ".$this->totalconsumo." m3, en el mes de ".$this->mes." del año ".$this->anho.". Lectura inicial ".$this->lecturainicial." - Lectura final ".$this->lecturafinal;
                $itemfactura->monto = $this->totalapagar;
                $itemfactura->factura_id = $factura->id;
            $itemfactura->save();
        }
        $this->reset_inputs();
        $this->condominio_id = Null;
        $this->lote_id = Null;
        $this->lecturainicial = Null;
        $this->lecturafinal = Null;
        $this->totalconsumo = Null;
        $this->cargofijo = Null;
        $this->excedente = Null;
        $this->precioexcedente = Null;
        $this->totalexcente = Null;
        $this->totalapagar = Null;
        $this->mes = Null;
        $this->anho = Null;
        $this->vencimiento = Null;

        $this->emit('renderfactura');
    }

    public function storederecho(){ 

        $validatedDate = $this->validate([
            'condominio_id' => 'required',
            'lote_id' => 'required',
            'derechototal' => 'required',
            'vencimiento' => 'required',
        ]);
        // Se obtiene al titular de la propiedad
        $matricula=Matricula::where('lote_id',$this->lote_id)->where('propietario',1)->first();
        // Se obtiene el condominio
        $condominio=Condominio::find($this->condominio_id);
        // Se obtiene la ultima numeracion de la factura respetando el timbrado
        if($ultimaFactura=Cabecerafactura::where('timbrado', $condominio->timbrado)->orderBy('id', 'desc')->first()){
            $ultimaFactura=$ultimaFactura->nfactura+1;
        }else{
            $ultimaFactura=1;
        }
        $factura = new Cabecerafactura;
            $factura->nfactura = $ultimaFactura;
            $factura->timbrado = $condominio->timbrado;
            $factura->lote_id = $this->lote_id;
            $factura->usuario_id = $matricula->usuario_id;
            $factura->vencimiento = $this->vencimiento;
            $factura->codestablecimineto = "00".$condominio->codigo1;
            $factura->puntodeexpedicion = "00".$condominio->codigo2;
            $factura->iniciovigencia = $condominio->iniciovigenciatimbrado;
            $factura->finvigencia = $condominio->finvigenciatimbrado;
            $factura->tipo = 1;
            $factura->estado = 0;
        if($factura->save()){
            $condominio->ultimanumeracion+=1;
            $condominio->update();
            $itemfactura = new Itemfactura;

                $itemfactura->concepto = "Derecho a conexión de agua ".$condominio->con_nom;
                $itemfactura->monto = $this->derechototal;
                $itemfactura->factura_id = $factura->id;

            $itemfactura->save();
        }
        $this->reset_inputs();
        $this->condominio_id = Null;
        $this->lote_id = Null;
        $this->derechototal = Null;
        $this->vencimiento = Null;
        $this->emit('renderfactura');
    }

    public function change($data){
        if($data == "factura"){
            $this->factura="active";
            $this->derecho="";
            $this->facturaview="true";
            $this->derechoview="false";
        }else{
            $this->factura="";
            $this->derecho="active";
            $this->facturaview="false";
            $this->derechoview="true";
        }
        
    } 

}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists