KOKINIO - MANAGER
Edit File: ReportController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Fpdf; use App\Cliente; use App\Venta; use App\ISR; use App\Helper; use App\Nivel; use App\Pais; use NumeroALetras; class ReportController extends Controller { // public function newSheet(){ $pdf = new Fpdf(); $pdf::AddPage('P','Legal'); $pdf::Image(__DIR__.'/../../../public/img/reporte/comisiones.jpeg',0,0,216,'JPEG'); return $pdf; } public function titleRed($pdf, $data){ $pdf::SetFont('Arial','',15); $pdf::SetY(55); $pdf::Cell(130,4,utf8_decode("Nombre: ".$data['cliente'][0]->nombre." ".$data['cliente'][0]->ape_p." ".$data['cliente'][0]->ape_m),0,0); $pdf::SetY(62); $pdf::Cell(130,4,utf8_decode("Dirección: ".$data['cliente'][0]->calle." ".$data['cliente'][0]->numero.", ".$data['cliente'][0]->colonia),0,0); $pdf::SetY(69); $pdf::Cell(110,4,utf8_decode("Población: ".$data['cliente'][0]->pais.", ".$data['cliente'][0]->delegacion.", ".$data['cliente'][0]->estado),0,0); $pdf::Cell(30,4,utf8_decode("Telefono: ".$data['cliente'][0]->lada." ".$data['cliente'][0]->tel),0,0); return $pdf; } public function red($id, $year, $month){ $pdf = $this->newSheet(); $data = $this->redInfo($id, $year, $month); $pdf = $this->titleRed($pdf,$data); $pdf::SetFont('Times','I',20); $pdf::SetTextColor(0,0,0,1); $pdf::SetXY(160,15); $pdf::Cell(30,6,"Activos ",0,0,'C'); $pdf::SetXY(160,25); $pdf::Cell(30,6,Helper::month($month),0,0,'C'); $pdf::SetXY(160,33); $pdf::Cell(30,6,$year,0,0,'C'); $pdf::SetFont('Arial','B',17); $pdf::SetTextColor(255,255,255,1); $pdf::SetY(75); $pdf::Cell(30,6,"Nivel",0,0,'C'); $pdf::Cell(130,6,"Nombre",0,0,'C'); $pdf::Cell(40,6,"Importe",0,0,'C'); $pdf::SetY(78); $cajas = 0; foreach ($data['red'] as $key => $value) { //return $value; foreach ($value as $key => $red) { if($red->comision){ $cajas++; $pdf::SetFont('Arial','',14); $pdf::SetY($pdf::GetY()+5); $pdf::SetTextColor(0,0,0); $pdf::Cell(30,4,$red->nivel,0,0,'C'); $pdf::Cell(130,4,utf8_decode($red->nombre." ".$red->apellidos),0,0,'C'); $pdf::Cell(40,4,"$".number_format(($red->total < 4000 | !$red->comisiona)? 0 : $red->comision,2),0,0,'C'); if($pdf::GetY() >= 310){ $pdf = $this->newSheet(); $pdf = $this->titleRed($pdf,$data); $pdf::SetY(78); } } } } $pdf::SetY(326); $pdf::SetFont('Arial','',19); $pdf::SetTextColor(181,0,0); $pdf::Cell(30,6,$cajas,0,0,'C'); $pdf::SetFont('Arial','',17); $pdf::SetTextColor(0,0,0); $pdf::Cell(90,6,"Cajas Calificadas",0,0); $pdf::SetFont('Arial','',15); $pdf::SetXY(142,317); $pdf::Cell(30,6,"Sub-Total: ",0,0,'R'); $pdf::Cell(30,6,"$".number_format($data['comision'],2),0,0,'L'); $pdf::SetXY(142,323); $pdf::Cell(30,6,"ISR: ",0,0,'R'); if(isset($data['isr'])){ $isr = number_format(($data['comision'] * ($data['isr'][0]->porcentaje/100)),2); }else{ $isr = 0.00; } $pdf::Cell(30,6,"$".$isr,0,0,'L'); $pdf::SetXY(142,329); $pdf::Cell(30,6,"Total: ",0,0,'R'); if(isset($data['isr'])){ $calc_isr = number_format($data['comision']-(($data['comision'] * ($data['isr'][0]->porcentaje/100))),2); }else{ $calc_isr = 0.00; } $pdf::Cell(30,6,"$".$calc_isr,0,0,'L'); $pdf::SetXY(60,317); $pdf::SetFont('Arial','',10); $pdf::SetTextColor(181,0,0); $pdf::Cell(30,6,utf8_decode($data['message']),0,0,'C'); $pdf::Output('I','Activos.pdf'); exit; } public function redInfo($id, $year, $month){ $ids = '"'.$id.'"'; $clientesI = new Cliente(); $cliente = $clientesI->Clientes($id); $clientePais = 'Mexico'; if(isset($cliente[0]->pais)) $clientePais = $cliente[0]->pais; //$year = $data['year']; //$month = $data['month']; $redes = new Venta(); $red = []; $message = ""; $total = 0; $comision = 0; $red_size = 0; $controlLessFront = []; $redController = new RedController(); $compra = $redes->cliente_compra($id, $year, $month); $frontales = $redController->afterTen($id, $year, $month); for($i = 1; $i<= 4; $i++){ $red_first = $redes->red_first($ids,$i,$month,$year, $clientePais); if(isset($red_first)){ $ids = $redController->get_ids($red_first); $red[$i] = $red_first; foreach($red_first as $val){ if($val->total >= 4000 && $val->comisiona){ $comision += $val->comision; } $red_size++; $total += $val->total; } }else{ break; } } // for($i = 1; $i<= 4; $i++){ // $red_first = $redes->red_first($ids,$i,$month,$year, $clientePais); // if(isset($red_first)){ // $ids = $redController->get_ids($red_first); // $red[$i] = $red_first; // foreach($red_first as $val){ // if(($val->total < 4000 || $val->total >= 10000) | !$val->comisiona){ // $comision += 0; // }else{ // $comision += $val->comision; // } // $red_size++; // $total += $val->total; // } // }else{ // break; // } // } if($comision >= 400000 || $cliente[0]->nivel == 2){ $redController->checkLevel($cliente[0]->id, 2); $frontales = $redController->afterTen($id,$year,$month, $clientePais); if($frontales < 10){ $message = "Necesitas tus 10 frontales con venta para tus activos"; // $comision = 0; $comisionType = Helper::getComisionCountry($cliente[0]->pais); $firstLevel = Nivel::where('nivel', 'Primer')->first(); $comision = $frontales * $firstLevel->$comisionType; $ids = '"'.$id.'"'; // $year = $data['year']; // $month = $data['month']; $front = 1; for($i = 1; $i<= 2; $i++){ $red_first = $redes->red_first($ids,$i,$month,$year, $clientePais); if(isset($red_first)){ $ids = $redController->get_ids($red_first); foreach($red_first as $val){ if($val->total >= 4000){ if($front <= $frontales){ // $comision += $val->comision; $secondLevel = Nivel::where('nivel', 'Segundo')->first(); $comision += $val->nivel === 'Segundo' ? $secondLevel->$comisionType : 0; $front++; } } } $front = 1; } } } }else if(($comision >= 10000 && $comision <= 400000) || $cliente[0]->nivel == 1){ $frontales = $redController->afterTen($id,$year,$month); if($frontales < 5){ $message = "Necesitas tus 5 frontales con venta para tus activos"; // $comision = 0; $comisionType = Helper::getComisionCountry($cliente[0]->pais); $firstLevel = Nivel::where('nivel', 'Primer')->first(); $comision = $frontales * $firstLevel->$comisionType; $ids = '"'.$id.'"'; $front = 1; for($i = 1; $i<= 2; $i++){ $red_first = $redes->red_first($ids,$i,$month,$year, $clientePais); if(isset($red_first)){ $ids = $redController->get_ids($red_first); foreach($red_first as $val){ if($val->total >= 4000){ if($front <= $frontales){ // $comision += $val->comision; $secondLevel = Nivel::where('nivel', 'Segundo')->first(); $comision += $val->nivel === 'Segundo' ? $secondLevel->$comisionType : 0; $front++; } } } $front = 1; } } } } if(!$compra) $message = 'NO TIENE DERECHO A ACTIVOS!'; $isr = new ISR(); $isr_porcentaje = $isr->get_isr($comision); return $data = ['total'=>$total,'comision'=>$comision, 'red_size'=>$red_size, 'isr'=>$isr_porcentaje, 'cliente'=>$cliente, 'red'=>$red, 'message'=>$message]; } public function newSheetVenta(){ $pdf = new Fpdf(); $pdf::AddPage('P',"Letter"); return $pdf; } public function venta($id,$id2 = null){ $ventas = new Venta(); $venta = $ventas->ventasAll($id); $pdf = $this->newSheetVenta(); $pdf::SetFont('Arial','',13); $pdf::SetXY(179,18); $fecha = explode("-",$venta[0]->fecha_venta); $pdf::Cell(11,4,$fecha[2],0,0,'C'); $pdf::Cell(15,4,$fecha[1],0,0,'C'); $pdf::Cell(11,4,$fecha[0],0,0,'C'); $pdf::SetXY(30,27); $pdf::Cell(130,4,ucwords(strtolower(utf8_decode($venta[0]->cliente." ".$venta[0]->ape_p." ".$venta[0]->ape_m)))." ".$venta[0]->lada." ".$venta[0]->tel,0,0); $pdf::SetXY(30,32.5); $pdf::Cell(165,4,ucwords(strtolower(utf8_decode($venta[0]->calle." ".$venta[0]->numero.", ".$venta[0]->colonia))),0,0); $pdf::Cell(20,4,utf8_decode($venta[0]->cp),0,0); $pdf::SetXY(30,38); $pdf::Cell(130,4,ucwords(strtolower(utf8_decode($venta[0]->delegacion.", ".$venta[0]->estado))),0,0); $pdf::SetXY(10,55); $pdf::SetFont('Arial','',13); $pdf::Cell(20,4,ucwords(strtolower(utf8_decode($venta[0]->cantidad))),0,0); $pdf::Cell(130,4,ucwords(strtolower(utf8_decode($venta[0]->descripcion))),0,0); $pdf::Cell(30,4,"$".number_format($venta[0]->costo_mx,2),0,0); $pdf::Cell(30,4,"$".number_format($venta[0]->total,2),0,0); if (strpos($venta[0]->comentario,"|")){ $comentObj = explode("|",$venta[0]->comentario); $y = 61; foreach($comentObj as $val){ $pdf::SetXY(35,$y); $pdf::Cell(110,4,utf8_decode($val),0,0); $y += 5; } }else{ $pdf::SetXY(35,61); $pdf::Cell(110,4,utf8_decode($venta[0]->comentario),0,0); } if($id2 != null){ $venta2 = $ventas->ventasAll($id2); $pdf::SetXY(10,90); $pdf::Cell(20,4,ucwords(strtolower(utf8_decode($venta2[0]->cantidad))),0,0); $pdf::Cell(130,4,ucwords(strtolower(utf8_decode($venta2[0]->descripcion))),0,0); $pdf::Cell(30,4,"$".number_format($venta2[0]->costo,2),0,0); $pdf::Cell(30,4,"$".number_format($venta2[0]->total,2),0,0); if (strpos($venta2[0]->comentario,"|")){ $comentObj = explode("|",$venta2[0]->comentario); $y = 96; foreach($comentObj as $val){ $pdf::SetXY(35,$y); $pdf::Cell(110,4,utf8_decode($val),0,0); $y += 5; } }else{ $pdf::SetXY(35,96); $pdf::Cell(110,4,utf8_decode($venta2[0]->comentario),0,0); } } $pdf::SetXY(25,123); $pdf::SetFont('Arial','',13); $pdf::Cell(165,4,ucwords(strtolower(NumeroALetras::convertir($venta[0]->total)))." pesos MN",0,0); $pdf::Cell(30,4,"$".number_format($venta[0]->total,2),0,0); $pdf::Output('I','Activos.pdf'); exit; //return $venta; } }