Sindbad~EG File Manager
<?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