KOKINIO - MANAGER
Edit File: RedController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Cliente; use App\Venta; use Auth; use App\helpers; use App\Helper; use App\Comision; class RedController extends Controller { // public function index() { $clientesI = new Cliente(); $clientes = $clientesI->Clientes(); //return $data['cliente']; $cliente_id = Auth::user()->id; $ids = '"' . $cliente_id . '"'; $cliente = $clientesI->Clientes($cliente_id); $comisionCliente = Comision::where('cliente_id', $cliente_id)->where('ano', date('Y'))->where('mes', date('m'))->first(); $clientePais = 'Mexico'; if (isset($cliente[0]->pais)) $clientePais = $cliente[0]->pais; $moneda = [ 'Mexico' => 'Peso MX', 'USA' => 'Dolar USD', 'Canada' => 'Dolar C', 'Guatemala' => 'Quetzal Q' ]; $moneda_abrev = [ 'Mexico' => 'MX', 'USA' => 'USD', 'Canada' => 'C', 'Guatemala' => 'Q' ]; $redes = new Venta(); $red = []; $total = 0; $comision = 0; $red_size = 0; for ($i = 1; $i <= 4; $i++) { $red_first = $redes->red_first($ids, $i, null, null, $clientePais); if (isset($red_first)) { $ids = $this->get_ids($red_first); $red[$i] = $red_first; foreach ($red_first as $val) { if ($val->total < 4000 | !$val->comisiona) { $comision += 0; } else { $comision += $val->comision; } $red_size++; $total += $val->total; } } else { break; } } $years = $redes->monthYearVenta(); $year = date('Y'); $month = date('m'); // $months = $redes->monthYearVenta(date('Y')); $months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; $compra = $redes->cliente_compra($cliente_id, $year, $month); $data = [ 'total' => $total, 'comision' => $comision, 'red_size' => $red_size, 'years' => $years, 'months' => $months, 'compra' => $compra, 'year' => $year, 'month' => $month, 'moneda' => $moneda[$clientePais], 'moneda_abrev' => $moneda_abrev[$clientePais] ]; return view('Catalogos.Red')->with(compact('red', 'data', 'cliente', 'clientes', 'comisionCliente')); } public function getRed(Request $request) { $data = $request->all(); //return $data['cliente']; $ids = '"' . $data['cliente'] . '"'; $clientId = null; $clientesI = new Cliente(); $cliente = $clientesI->Clientes($data['cliente']); $clientePais = 'Mexico'; if (isset($cliente[0]->pais)) $clientePais = $cliente[0]->pais; $moneda = [ 'Mexico' => 'Peso MX', 'USA' => 'Dolar USD', 'Guatemala' => 'Quetzal Q' ]; $moneda_abrev = [ 'Mexico' => 'MX', 'USA' => 'USD', 'Guatemala' => 'Q' ]; $year = $data['year'] ?? date('Y'); $month = $data['month'] ?? date('m'); $comisionCliente = Comision::where('cliente_id', $data['cliente'])->where('ano', $year)->where('mes', $month)->first(); $redes = new Venta(); $red = []; $total = 0; $comision = 0; $red_size = 0; $message = ""; for ($i = 1; $i <= 4; $i++) { $red_first = $redes->red_first($ids, $i, $month, $year, $clientePais); if (isset($red_first)) { $ids = $this->get_ids($red_first); $red[$i] = $red_first; foreach ($red_first as $val) { if ($val->total < 4000 | !$val->comisiona) { $comision += 0; } else { $comision += $val->comision; } $red_size++; $total += $val->total; } } else { break; } } if ($total >= 400000 || $cliente[0]->nivel == 2) { $this->checkLevel($cliente[0]->id, 2); $frontales = $this->afterTen($data['cliente'], $data['year'], $data['month']); if ($frontales < 10) { $message = "Necesitas tus 10 frontales con venta para tu comisión completa"; $comision = 0; $ids = '"' . $data['cliente'] . '"'; $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 = $this->get_ids($red_first); foreach ($red_first as $val) { if ($val->total >= 4000) { if ($front <= $frontales) { $comision += $val->comision; $front++; } } } $front = 1; } } } } else if ($comision >= 10000 || $cliente[0]->nivel == 1) { $this->checkLevel($cliente[0]->id, 1); $frontales = $this->afterTen($data['cliente'], $data['year'], $data['month']); if ($frontales < 5) { $message = "Necesitas tus 5 frontales con venta para tu comisión completa"; $comision = 0; $ids = '"' . $data['cliente'] . '"'; $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 = $this->get_ids($red_first); foreach ($red_first as $val) { if ($val->total >= 4000) { if ($front <= $frontales) { $comision += $val->comision; $front++; } } } $front = 1; } } } } $compra = $redes->cliente_compra($data['cliente'], $year, $month); $data = [ 'total' => $total, 'comision' => $comision, 'red_size' => $red_size, 'compra' => $compra, 'year' => $year, 'month' => $month, 'message' => $message, 'moneda' => $moneda[$clientePais], 'moneda_abrev' => $moneda_abrev[$clientePais] ]; return View('Catalogos.sectionRed')->with(compact('red', 'data', 'cliente', 'comisionCliente')); } public function checkLevel($id, $level) { $customer = Cliente::find($id); if (!$customer->nivel) { $customer->nivel = $level; if ($customer->save()) { return response()->json(['status' => true]); } else { return response()->json(['status' => true]); } } else { return response()->json(['status' => true]); } } public function afterTen($id, $year = null, $month = null) { $ids = '"' . $id . '"'; $redes = new Venta(); $frontales = 0; $red_first = $redes->red_first($ids, 1, $month, $year); if (isset($red_first)) { foreach ($red_first as $key => $value) { if ($value->total >= 4000) { $frontales++; } } } return $frontales; } public function get_ids($red_first) { $ids = ""; foreach ($red_first as $key => $value) { $ids .= '"' . $value->id . '",'; } return substr($ids, 0, -1); } public function getMonths(Request $request) { $year = $request->input('year'); $redes = new Venta(); $months = $redes->monthYearVenta($year); $months_select = "<option value=''>Selecciona</option>"; foreach ($months as $month) { $months_select .= "<option value='" . $month->mes . "'>" . Helper::month($month->mes) . "</option>"; } return $months_select; } }