/home/dvjjulio/softtrash/app/Http/Controllers/PolizaController.php
<?php
namespace Trash\Http\Controllers;
use Illuminate\Http\Request;
use Trash\Http\Requests;
use Trash\Http\Controllers\Controller;
use Trash\Poliza;
use Trash\Cuenta;
use Trash\SubCuenta;
use Auth;
use Input;
use Validator;
class PolizaController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$cuentas = Cuenta::where('status_id', '=', 1)->get();
$subcuentas = SubCuenta::where('status_id', '=', 1)->get();
return view('egreso.poliza')->with(compact('cuentas', 'subcuentas'));
}
public function polizaTable() {
$poliza = new Poliza();
$polizas = $poliza->getPolizas();
$total = 0;
$total_p = 0;
$total_np = 0;
foreach($polizas as $_poliza) {
if ($_poliza->status == 'Pagado') $total_p += $_poliza->total;
else if ($_poliza->status == 'No pagado') $total_np += $_poliza->total;
}
$total = $total_p + $total_np;
return view('egreso.polizaTable')->with(compact('polizas', 'total', 'total_p','total_np'));
}
public function savePoliza()
{
//
$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(
'cuenta_id' => 'required',
'subcuenta_id' => 'required',
'nombre' => 'required',
'referencia' => 'required',
'estado' => 'required',
);
$messages = array(
'cuenta_id.required' => 'Por favor seleccione una Cuenta',
'subcuenta_id.required' => 'Por favor seleccione una SubCuenta',
'nombre.required' => 'Por favor ingrese el Nombre',
'referencia.required' => 'Por favor ingrese la Referencia',
'estado.required' => 'Por favor selecion el estado',
);
return Validator::make( $data, $array_rules, $messages );
}
public function store($data, Poliza $c = null)
{
try{
\DB::beginTransaction();
if( isset($data[ 'id' ]) && $data[ 'id' ] != 'undefined'){
$poliza = Poliza::find($data['id']);
// $existCuenta=$this->checkCuenta($data);
// if( $existCuenta==false )throw new \Exception('Ya existe cuenta: '.$data['cuenta']);
}
else {
$poliza = new Poliza();
// $existPoliza=$this->checkPoliza($data);
// if( $existCuenta==false )throw new \Exception('Ya existe cuenta: '.$data['cuenta']);
}
$poliza->cuenta_id = $data['cuenta_id'];
$poliza->subcuenta_id = $data['subcuenta_id'];
$poliza->nombre = $data['nombre'];
$poliza->referencia = $data['referencia'];
$poliza->status = $data['estado'];
$poliza->fecha_vencimiento = $data['vencimiento'];
$poliza->importe = $data['importe'];
$poliza->iva = $data['iva'];
$poliza->total = $data['total'];
$poliza->created_by = Auth::user()->id;
$poliza->status_id = 1;
$poliza->save();
} catch( \Exception $e ){
\DB::rollback();
return array( 'status' => false, 'message' => $e->getMessage() );
}
\DB::commit();
return array( 'status' => true , 'data' => $poliza );
}
public function checkPoliza($data){
$exist = Poliza::where('status_id', '=', 1)->where('referencia','=',$data['referencia'])->get();
if( count( $exist ) < 1){
return true;
}else{
return false;
}
}
public function getPoliza()
{
//
$data = \Input::all();
$poliza = Poliza::find($data['id']);
return response()->json(array('status'=> true, 'data'=> $poliza));
}
public function deletePoliza(Request $request){
$id = $request->input('id');
$poliza = Poliza::find($id);
$poliza->status_id = 0;
if($cuenta->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 getSubCuenta(Request $request) {
$id = $request->input('id');
$subcuentas = SubCuenta::where('cuenta_id', '=', $id)->where('status_id', 1)->get();
return view('egreso.subcuentaFiltered')->with(compact('subcuentas'));
}
public function filterEgreso(Request $request) {
$data = $request->all();
$poliza = new Poliza();
$polizas = $poliza->getPolizas($data['data']);
$total = 0;
$total_p = 0;
$total_np = 0;
foreach($polizas as $_poliza) {
if ($_poliza->status == 'Pagado') $total_p += $_poliza->total;
else if ($_poliza->status == 'No pagado') $total_np += $_poliza->total;
}
$total = $total_p + $total_np;
return view('egreso.polizaTable')->with(compact('polizas', 'total', 'total_p','total_np'));
}
}