/home/dvjjulio/softtrash/app/Http/Controllers/ReciclableController.php
<?php
namespace Trash\Http\Controllers;
use Illuminate\Http\Request;
use Trash\Http\Requests;
use Trash\Http\Controllers\Controller;
use Trash\Ordenes;
use Trash\Clientes;
use Trash\Reciclables;
use Trash\CostoReciclable;
use Helper;
use Auth;
class ReciclableController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
return view('catalogo.reciclable');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function saveReciclable()
{
//
$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(
'reciclable' => 'required',
'clasificacion' => 'required',
);
$messages = array(
'reciclable.required' => 'Por favor ingrese el Reciclable',
'clasificacion.required' => 'Por favor ingrese la clasificacion',
);
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, Reciclables $r = null)
{
try{
\DB::beginTransaction();
if( $data[ 'id' ] != 'undefined'){
$reciclable = Reciclables::find($data['id']);
}
else {
$reciclable = new Reciclables();
$existReciclable=$this->checkReciclable($data);
if( $existReciclable==false )throw new \Exception('Ya existe reciclable: '.$data['reciclable']);
}
$reciclable->reciclable = $data['reciclable'];
$reciclable->clasificacion = $data['clasificacion'];
$reciclable->status_id = 1;
$reciclable->user_created = Auth::user()->username;
$reciclable->save();
} catch( \Exception $e ){
\DB::rollback();
return array( 'status' => false, 'message' => $e->getMessage() );
}
\DB::commit();
return array( 'status' => true , 'data' => $reciclable );
}
public function checkReciclable($data){
$exist = Reciclables::where('reciclable','=',$data['reciclable'])->get();
if( count( $exist ) < 1){
return true;
}else{
return false;
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function showReciclable()
{
//
$reciclable = Reciclables::all();
return view('catalogo.reciclableAll')->with(compact('reciclable'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function getReciclable()
{
//
$data = \Input::all();
$reciclable = Reciclables::find($data['id']);
return response()->json(array('status'=> true, 'data'=>$reciclable));
}
public function costo_reciclable()
{
$c_reciclables = new Ordenes();
$costo_reciclable = $c_reciclables->getReciclableCosto();
return View('catalogo.costo_reciclable')->with(compact('costo_reciclable'));
}
public function tableReciclable(Request $request){
$date1 = $request->input('date1');
$date2 = $request->input('date2');
$c_reciclables = new Ordenes();
$costo_reciclable = $c_reciclables->getReciclableCosto($date1, $date2);
return View('catalogo.costo_reciclable_table')->with(compact('costo_reciclable'));
}
public function savePayReciclable(Request $request)
{
//
$data = $request->all();
$validator = $this->get_validateCosto($data);
if( $validator->fails() )
return response()->json( array( 'status' => false, 'message' => $validator->errors()->all() ));
return response()->json( $this->storeCost($data));
}
public function get_validateCosto( $data ){
$array_rules = array(
'reciclable' => 'required',
'cliente' => 'required',
'year' => 'required',
'month' => 'required',
);
$messages = array(
'reciclable.required' => 'Por favor seleccione el Reciclable',
'cliente.required' => 'Por favor seleccione un Cliente',
'year.required' => 'Por favor seleccione un Año',
'month.required' => 'Por favor seleccione un Mes',
);
return \Validator::make( $data, $array_rules, $messages );
}
public function storeCost($data, Reciclables $r = null)
{
try{
\DB::beginTransaction();
if( $data[ 'id' ] != '0'){
$costo_reciclable = CostoReciclable::find($data['id']);
}
else {
$costo_reciclable = new CostoReciclable();
$costo_r = $costo_reciclable->checkCostReciclable($data);
if( isset($costo_r) ){
if($costo_r[0]->status_id == 1){
throw new \Exception('Ya existe esta combinación de costo reciclable. ');
}else{
$costo_reciclable = CostoReciclable::find($costo_r[0]->id);
}
}
}
$costo_reciclable->reciclable_id = $data['reciclable'];
$costo_reciclable->cliente_id = $data['cliente'];
$costo_reciclable->ano = $data['year'];
$costo_reciclable->mes = $data['month'];
$costo_reciclable->pago_cliente = $data['pay_customer'];
$costo_reciclable->pago_chofer = $data['pay_driver'];
$costo_reciclable->status_id = 1;
$costo_reciclable->created_by = Auth::user()->id;
$costo_reciclable->save();
} catch( \Exception $e ){
\DB::rollback();
return array( 'status' => false, 'message' => $e->getMessage() );
}
\DB::commit();
return array( 'status' => true , 'data' => $costo_reciclable );
}
public function getCostReciclable()
{
//
$data = \Input::all();
$costo_reciclable = CostoReciclable::find($data['id']);
return response()->json(array('status'=> true, 'data'=>$costo_reciclable));
}
public function deleteCost(Request $request){
$id = $request->input('id');
$costo_rec = CostoReciclable::find($id);
$costo_rec->status_id = 0;
if($costo_rec->save()){
return response()->json(['status'=>true,'message'=>'Eliminado Correctamente!','type'=>'success']);
}else{
return response()->json(['status'=>false,'message'=>'Error al Eliminar!','type'=>'danger']);
}
}
public function editReciclableCosto(Request $request){
$data = $request->all();
$ordenes = new Ordenes();
$ordenes_ids = $ordenes->getOrdenesCosto($data['user_id'],$data['reciclable_id'],$data['fecha'],$data['cliente']);
if(isset($ordenes_ids)){
$ids = "";
foreach($ordenes_ids as $val){
$ids .= $val->id.",";
}
$ids = substr($ids,0,-1);
}
$query = $ordenes->updateCostoOrden($ids,$data['costo'],$data['type']);
if($query->getData()->status){
return response()->json(['status'=> true, 'message'=> 'Reciclable Actualizado', 'type'=> 'success']);
}else{
return response()->json(['status'=> false, 'message'=> 'Error al guardar el costo pago', 'type'=> 'danger']);
}
}
}