/home/dvjjulio/softtrash/app/Http/Controllers/ClienteController.php
<?php
namespace Trash\Http\Controllers;
use Illuminate\Http\Request;
use Trash\Http\Requests;
use Trash\Http\Controllers\Controller;
use Trash\Clientes;
use Trash\Cuotas;
use Trash\Unidades;
use Trash\Giro;
use Trash\Peso;
use Trash\Ruta;
use Auth;
class ClienteController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$cuotas = Cuotas::all();
$unidades = Unidades::all();
$giros = Giro::all();
$rutas = Ruta::all();
return view('catalogo.cliente')->with(compact('cuotas','unidades','giros','rutas'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function saveCliente()
{
//
$data = \Input::all();
$validator = $this->get_validate($data);
if( $validator->fails() )
return response()->json( array( 'status' => false, 'message' => $validator->errors()->all() ));
return response()->json( $this->store($data));
}
public function get_validate( $data ){
$array_rules = array(
'cliente' => 'required',
'nombre_comercial' => 'required',
'fecha_alta' => 'required',
'latitude' => 'required',
'longitude' => 'required',
'semades' => 'required',
'cuota' => 'required',
'ruta' => 'required',
'unidad' => 'required',
//'peso' => 'required',
'inorganicos' => 'required|integer',
'organicos' => 'required|integer',
'sanitarios' => 'required|integer',
'giro' => 'required',
'cont_fact' => 'string'
);
$messages = array(
'cliente.required' => 'Por favor ingrese el Cliente',
'nombre_comercial.required' => 'Por favor ingrese el Nombre Comercial',
'fecha_alta.required' => 'Por favor ingrese la Fecha de Alta',
'latitude.required' => 'Por favor ingrese la Latitude',
'longitude.required' => 'Por favor ingrese la Longitude',
'semades.required' => 'Por favor ingrese el No. SEMADES',
'cuota.required' => 'Por favor seleccione la Cuota',
'ruta.required' => 'Por favor seleccione la Ruta',
'unidad.required' => 'Por favor seleccione la Unidada',
// 'peso.required' => 'Por favor ingrese el peso',
'inorganicos.required' => 'Por favor ingrese los Inorganicos',
'inorganicos.integer' => 'El formato no ingresado no coincide en Inorganicos',
'organicos.required' => 'Por favor ingrese los Organicos',
'organicos.integer' => 'El formato no ingresado no coincide en Organicos',
'sanitarios.required' => 'Por favor ingrese los Sanitarios',
'sanitarios.integer' => 'El formato no ingresado no coincide en Sanitarios',
'giro.required' => 'Por favor seleccione el Giro del Cliente',
);
return \Validator::make( $data, $array_rules, $messages );
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store($data, Clientes $c = null)
{
//
try{
\DB::beginTransaction();
if( $data[ 'id' ] != 'undefined'){
$cliente = Clientes::find($data['id']);
}
else {
$cliente = new Clientes();
$existCliente=$this->checkCliete($data);
if( $existCliente==false )throw new \Exception('Ya existe cliente: '.$data['nombre_comercial']);
}
/*if($_COOKIE['id'] == null){ throw new \Exception('La sessión ha caducado vuelve a iniciar');
URL:To('/');
}*/
$cliente->cliente = $data['cliente'];
$cliente->nombre_comercial = $data['nombre_comercial'];
$cliente->latitude = $data['latitude'];
$cliente->longitude = $data['longitude'];
$cliente->alta = $data['fecha_alta'];
$cliente->semades = $data['semades'];
$cliente->cuota_id = $data['cuota'];
$cliente->ruta_id = $data['ruta'];
$cliente->unidad_id = $data['unidad'];
//$cliente->cantidad = $data['cantidad'];
//$cliente->peso = $data['peso'];
$cliente->pu = $data['pu'];
$cliente->ret = $data['ret'];
$cliente->inorganicos = $data['inorganicos'];
$cliente->organicos = $data['organicos'];
$cliente->sanitarios = $data['sanitarios'];
$cliente->giro_id = $data['giro'];
$cliente->contacto_factura = $data['cont_fact'];
$cliente->email_factura = $data['email_fact'];
$cliente->contacto_cobranza = $data['cont_cobr'];
$cliente->email_cobranza = $data['email_cobr'];
$cliente->rfc = $data['rfc'];
$cliente->direccion = $data['direccion'];
$cliente->telefono = $data['tel'];
$cliente->municipio = $data['municipio'];
$cliente->colonia = $data['colonia'];
$cliente->cp = $data['cp'];
$cliente->modo_pago = $data['pago'];
$cliente->factura_entrega = $data['entrega'];
$cliente->cuenta_bancaria = $data['cuenta'];
$cliente->fiscal = $data['fiscal'];
$cliente->ultima_facturada = $data['ultima_fact'];
$cliente->observaciones = $data['observaciones'];
$cliente->status_id = ($data['status_id']!='') ? $data['status_id'] : 1;
$cliente->user_created = Auth::user()->id;
$cliente->save();
/* if($data['pu']!=''){
$importe = $data['cantidad']*$data['pu'];
$iva = $importe * (.16);
$total = $importe + $iva;
$cliente->importe = $importe;
$cliente->iva = $iva;
$cliente->total = $total;
}
if($data['ret']==1){
$retencion = $importe * (.04);
$total_gral = $total - $retencion;
$cliente->retencion = $retencion;
$cliente->total_gral = $total_gral;
}else{
$cliente->retencion = 0;
$cliente->total_gral = $total;
}*/
/* for ($i=1; $i <= 12; $i++) {
if($data[ 'id' ] != 'undefined'){
$peso = Peso::where('cliente_id','=',$cliente->id)->where('mes_id','=',$i)->get();
$peso[$i] = Peso::find( $peso[0]->id);
}else{
$peso[$i] = new Peso();
}
$peso[$i]->cliente_id = $cliente->id;
$peso[$i]->peso = ($data['peso_'.$i]=='')? 0 : $data['peso_'.$i];
$peso[$i]->mes_id = $i;
$peso[$i]->user_created = 1;
$peso[$i]->save();
}*/
} catch( \Exception $e ){
\DB::rollback();
return array( 'status' => false, 'message' => $e->getMessage() );
}
\DB::commit();
return array( 'status' => true , 'data' => $cliente );
}
public function checkCliete($data){
$exist = Clientes::where('nombre_comercial','=',$data['nombre_comercial'])->get();
if( count( $exist ) < 1){
return true;
}else{
return false;
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function showClientes()
{
//
$clientes = new Clientes();
$cliente = $clientes->getClientes();
$cuotas = Cuotas::all();
$unidades = Unidades::all();
$giros = Giro::all();
$rutas = Ruta::all();
return view('catalogo.clienteAll')->with(compact('cliente','cuotas','unidades','giros','rutas'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function getCliente()
{
//
$data = \Input::all();
$clientes = new Clientes();
return $cliente = $clientes->getCliente($data['id']);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}