KOKINIO - MANAGER
Edit File: ClienteController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Estado; use App\Rol; use App\Cliente; use Validator; use Uuid; use Auth; use App\Helper; use App\Pais; class ClienteController extends Controller { // public function index($id = null, $limit = null) { $clientesI = new Cliente(); $clientId = null; $pagination = null; $clientes_found = $clientesI->Clientes(); if (Helper::getRol() == Auth::user()->rol_id) { $clientes = $clientesI->ClientesWithLimit($id, $clientId, $limit); $clientesCount = $clientesI->ClientesCount($id); } else if (Helper::getRolOp() == Auth::user()->rol_id) { $clientes = $clientesI->ClientesWithLimit($id, Auth::user()->id, $clientId, $limit); $clientesCount = $clientesI->ClientesCount($id, Auth::user()->id); } else { $clientes = $clientesI->ClientesWithLimit(Auth::user()->id, $clientId, $limit); $clientesCount = $clientesI->ClientesCount(Auth::user()->id); } if ($clientesCount && $clientesCount[0]->total > 100) { $pagination = ceil($clientesCount[0]->total / 100); } $estado = new Estado(); $estados = $estado->estados(); $roles = Rol::all(); $paises = Pais::all(); return view('Catalogos.Cliente')->with(compact('clientes', 'estados', 'roles', 'clientes_found', 'paises', 'pagination')); } public function clientes(Request $request) { $search = $request->input('search'); $cliente = new Cliente(); return $cliente->ClientsSearchBar($search); // return Cliente::where('nombre', 'like', '%'.$search.'%') // ->orWhere('ape_p', 'like', '%'.$search.'%') // ->orWhere('ape_m', 'like', '%'.$search.'%') // ->orWhere('registro', 'like', '%'.$search.'%') // ->take(100) // ->get(); } public function guardar(Request $request) { $data = $request->all(); $cliente = Cliente::where('registro', '=', $data['registro'])->where('status_id', 0)->first(); if (isset($cliente)) { $data['id'] = $cliente->id; } if ($data['id'] == "0") { $validacion = Validator::make( $data, array( 'registro' => 'required|unique:cliente', 'pass' => 'required', 'nombre' => 'required', 'rol' => 'required' ), array( 'registro.required' => 'El nombre de la categoria es obligatorio', 'registro.unique' => 'El registro ya existe', 'pass.required' => 'El Password es obligatorio', 'nombre.required' => 'El Nombre es obligatorio', 'rol.required' => 'El Rol es obligatorio', ) ); } else { if ($data['pass_check']) { $validacion = Validator::make( $data, array( 'nombre' => 'required', 'rol' => 'required' ), array( 'nombre.required' => 'El Nombre es obligatorio', 'rol.required' => 'El Rol es obligatorio', ) ); } else { $validacion = Validator::make( $data, array( 'pass' => 'required', 'nombre' => 'required', 'rol' => 'required' ), array( 'pass.required' => 'El Password es obligatorio', 'nombre.required' => 'El Nombre es obligatorio', 'rol.required' => 'El Rol es obligatorio', ) ); } } if ($validacion->fails()) { return response()->json(['status' => false, 'message' => $validacion->messages()]); } if ($data['id'] == "0") { $cliente = new Cliente(); $cliente->id = Uuid::generate(); $mesage = "El Cliente ha sido creado exitosamente"; $cliente->password = bcrypt($data['pass']); } else { $cliente = Cliente::find($data['id']); $cliente->status_id = 1; $mesage = "El Cliente ha sido actualizada correctamente"; if ($data['pass_check'] == "false") { $cliente->password = bcrypt($data['pass']); } } $cliente->registro = $data['registro']; $cliente->nombre = $data['nombre']; $cliente->patrocinador = (isset($data['patrocinador'])) ? $data['patrocinador'] : null; $cliente->ape_p = $data['ape_p']; $cliente->ape_m = $data['ape_m']; $cliente->ine = $data['ine']; $cliente->rfc = $data['rfc']; $cliente->sexo = $data['sexo']; $cliente->fecha_nac = $data['fecha_nac']; $cliente->edo_civil = $data['edo_civil']; $cliente->profesion = $data['profesion']; $cliente->calle = $data['calle']; $cliente->numero = $data['no_casa']; $cliente->num_interior = $data['noi_casa']; $cliente->colonia = $data['colonia']; $cliente->delegacion = $data['delegacion']; $cliente->cp = $data['cp']; $cliente->pais_id = $data['pais']; $cliente->estado_id = $data['edo']; $cliente->lada = $data['lada']; $cliente->tel = $data['tel']; $cliente->whatsapp = $data['whats']; $cliente->email = $data['email']; $cliente->rol_id = $data['rol']; $cliente->cliente_id = Auth::user()->id; if ($cliente->save()) { return response()->json(['status' => true, 'message' => $mesage, 'data' => $data]); } else { return response()->json(['status' => false, 'message' => 'Error al insertar los datos']); } } public function update(Request $request) { $id = $request->input('id'); $clientes = new Cliente(); return $clientes->Clientes($id); //Cliente::find($id); } public function delete(Request $request) { $cliente = Cliente::Find($request->input('id')); $cliente->status_id = 0; if ($cliente->save()) { return response()->json(['status' => true, 'message' => 'Registro eliminado correctamente']); } else { return response()->json(['status' => false, 'message' => 'Error al eliminar registro']); } } public function change_pass(Request $request) { $data = $request->all(); $validacion = Validator::make( $data, array( 'pass' => 'required' ), array( 'pass.required' => 'El Password es obligatorio' ) ); if ($validacion->fails()) { return response()->json(['status' => false, 'message' => $validacion->messages()]); } $cliente = Cliente::find($data['id']); $cliente->password = bcrypt($data['pass']); $cliente->cliente_id = Auth::user()->id; if ($cliente->save()) { return response()->json(['status' => true, 'message' => "El cambio de contraseƱa fue exitoso", 'data' => $data]); } else { return response()->json(['status' => false, 'message' => 'Error al insertar los datos']); } } public function estados(Request $request) { $pais = $request->input('pais'); $estado = new Estado(); return $estado->estados($pais); } public function deactivateClientes() { $clientes = new Cliente(); $deactivate = $clientes->clientesToDeactivate(); $activate = $clientes->clientesToActivate(); return response()->json(['status' => true]); } public function storeSignature(Request $request) { $client_id = $request->input('client_id'); $contract_url = $request->input('contract_src'); $cliente = Cliente::find($client_id); $cliente->contract_url = $contract_url; if ($cliente->save()) { return response()->json(['status' => true, 'message' => "Firma guardada correctamente"]); } else { return response()->json(['status' => false, 'message' => 'Error al guardar la firma']); } } public function getContract($id) { $cliente = Cliente::find($id); if (!$cliente) return 'Error al cargar el contrato'; // $report = new ReportController(); $pdf = new \Fpdf(); $pdf::AddPage('P',"Letter"); $pdf::Image(__DIR__ . '/../../../public/img/reporte/contract.jpg', 0, 0, 216, 'JPEG'); $pdf::SetFont('Arial', '', 13); $pdf::SetXY(170, 55); $pdf::Cell(130, 4, $cliente->registro, 0, 0); $pdf::SetXY(30, 63); $pdf::Cell(130, 4, mb_convert_encoding($cliente->ape_p ." , " . $cliente->ape_m . ", " . $cliente->nombre, 'ISO-8859-1', 'UTF-8'), 0, 0); $pdf::SetXY(30, 73); $pdf::Cell(130, 4, $cliente->ine, 0, 0); $pdf::SetXY(100, 73); $pdf::Cell(130, 4, $cliente->rfc, 0, 0); $pdf::SetXY($cliente->sexo == 'M' ? 175 : 187, 73); $pdf::Cell(130, 4, 'X', 0, 0); $pdf::SetXY(20, 83); $pdf::Cell(130, 4, $cliente->fecha_nac, 0, 0); $edo_civil = 103; if ($cliente->edo_civil == "S") $edo_civil = 78; if ($cliente->edo_civil == "C") $edo_civil = 90; $pdf::SetXY($edo_civil, 83); $pdf::Cell(130, 4, "X", 0, 0); $pdf::SetXY(20, 95); $pdf::Cell(130, 4, mb_convert_encoding($cliente->calle, 'ISO-8859-1', 'UTF-8'). " ". $cliente->numero, 0, 0); $pdf::SetXY(20, 105); $pdf::Cell(130, 4, mb_convert_encoding($cliente->colonia, 'ISO-8859-1', 'UTF-8'), 0, 0); $pdf::SetXY(105, 105); $pdf::Cell(130, 4, $cliente->delegacion, 0, 0); $pdf::SetXY(20, 117); $pdf::Cell(130, 4, $cliente->cp, 0, 0); $pdf::SetXY(44, 117); $pdf::Cell(130, 4, mb_convert_encoding(Estado::find($cliente->estado_id)->estado, 'ISO-8859-1', 'UTF-8'), 0, 0); $pdf::SetXY(95, 117); $pdf::Cell(130, 4, $cliente->lada, 0, 0); $pdf::SetXY(110, 117); $pdf::Cell(130, 4, $cliente->tel, 0, 0); $pdf::SetXY(20, 128); $pdf::Cell(130, 4, $cliente->email, 0, 0); $pdf::SetXY(125, 128); $pdf::Cell(130, 4, $cliente->whatsapp, 0, 0); $patrocinador = Cliente::find($cliente->patrocinador); $pdf::SetXY(167, 142); $pdf::Cell(130, 4, $patrocinador->registro, 0, 0); $pdf::SetXY(20, 152); $pdf::Cell(130, 4, mb_convert_encoding($patrocinador->ape_p ." , " . $patrocinador->ape_m . ", " . $patrocinador->nombre, 'ISO-8859-1', 'UTF-8'), 0, 0); $pdf::SetXY(58, 253); $pdf::Cell(130, 4, date('d', strtotime($cliente->created_at)), 0, 0); $pdf::SetXY(69, 253); $pdf::Cell(130, 4, date('m', strtotime($cliente->created_at)), 0, 0); $pdf::SetXY(82, 253); $pdf::Cell(130, 4, date('Y', strtotime($cliente->created_at)), 0, 0); if ($cliente->contract_url) { $contract_url = str_replace('"', '', $cliente->contract_url); $image_url = __DIR__ . '/../../../public/img/signature.jpeg'; $ifp = fopen($image_url, 'wb' ); // split the string on commas // $data[ 0 ] == "data:image/png;base64" // $data[ 1 ] == <actual base64 string> $data = explode( ',', $contract_url ); // we could add validation here with ensuring count( $data ) > 1 fwrite( $ifp, base64_decode( $data[ 1 ] ) ); // clean up the file resource fclose( $ifp ); $pdf::Image($image_url, 150, 246, 20, 'JPEG'); } $pdf::AddPage('P', 'Legal'); $pdf::Image(__DIR__ . '/../../../public/img/reporte/contract2.jpg', 0, 0, 216, 'JPEG'); $pdf::Output('I', 'Contract.pdf'); } }