function getUnidades($id_area = null, $id_flota = null, $status = null, $id_empresa = null)
 {
     // 	  status_unidad, estatus, id_flota,id_operador,id_area,id_status
     // 	  $conditions['MssqlPersonalPersonalTbk.id_area'] = $id_area;
     if (empty($id_empresa)) {
         $id_empresa = $_SESSION['Auth']['User']['id_empresa'];
     }
     $config = array('personal', 'unidades');
     $fields = array($config['0'] => array('1' => 'MssqlPersonalPersonalTbk.id_personal', '2' => 'MssqlPersonalPersonalTbk.id_area', '3' => 'MssqlPersonalPersonalTbk.id_empresa', '4' => 'MssqlPersonalPersonalTbk.nombre'));
     $conditions = array('MssqlPersonalPersonalTbk.id_categoria' => unitConfig()[$id_empresa]['categoriaOperador'], 'MssqlPersonalPersonalTbk.estado' => 'A');
     $getPersonal = $this->MssqlPersonalPersonalTbk->find('all', array('fields' => array($fields[$config['0']]['1'], $fields[$config['0']]['2'], $fields[$config['0']]['3'], $fields[$config['0']]['4']), 'conditions' => $conditions));
     foreach ($getPersonal as $upKey => $Data) {
         $getPersonal = Set::combine($getPersonal, '{n}.' . $fields[$config['0']]['1'], '{n}');
     }
     // 		$tiposUnidad = array('TiposUnidad'=>array('9','1'));
     $tiposUnidad = unitConfig();
     $field = array('fields' => array('id_unidad', 'tipo_unidad', 'status_unidad', 'estatus', 'id_flota', 'id_operador', 'id_area', 'id_status'));
     $conditionsUnits['MssqlUnidadesAsignadasTbk.tipo_unidad'] = $tiposUnidad[$id_empresa]['TiposUnidad'];
     $conditionsUnits['MssqlUnidadesAsignadasTbk.estatus'] = 'A';
     $conditionsUnits['MssqlUnidadesAsignadasTbk.id_unidad <>'] = $tiposUnidad[$id_empresa]['id_unidad'];
     // 		$conditionsUnits = array('MssqlUnidadesAsignadasTbk.tipo_unidad'=>array($tiposUnidad[$id_empresa]['TiposUnidad']));
     // 		$conditionsUnits = array('MssqlUnidadesAsignadasTbk.estatus'=>array('A'));
     // 		$conditionsUnits = array('NOT' => array('MssqlUnidadesAsignadasTbk.id_unidad'=>array('TT300')));
     if (!empty($status)) {
         $conditionsUnits['MssqlUnidadesAsignadasTbk.id_status'] = $status;
     }
     if (!empty($id_flota)) {
         $conditionsUnits['MssqlUnidadesAsignadasTbk.id_flota'] = $id_flota;
     }
     if (!empty($id_area)) {
         $conditionsUnits['MssqlUnidadesAsignadasTbk.id_area'] = $id_area;
     }
     $getUnidades = $this->find('all', array('fields' => $field['fields'], 'conditions' => $conditionsUnits, 'order' => 'id_status'));
     $allUnits = count($getUnidades);
     $operCount = null;
     foreach ($getUnidades as $upKey => $Data) {
         if (!isset($getUnidades[$upKey]['MssqlUnidadesAsignadasTbk']['nombre_operador'])) {
             $getUnidades[$upKey]['MssqlUnidadesAsignadasTbk']['nombre_operador'] = null;
         }
         if (isset($getPersonal[$getUnidades[$upKey]['MssqlUnidadesAsignadasTbk']['id_operador']]['MssqlPersonalPersonalTbk']['nombre'])) {
             $getUnidades[$upKey]['MssqlUnidadesAsignadasTbk']['nombre_operador'] = utf8_encode($getPersonal[$getUnidades[$upKey]['MssqlUnidadesAsignadasTbk']['id_operador']]['MssqlPersonalPersonalTbk']['nombre']);
         }
         if (isset($getPersonal[$getUnidades[$upKey]['MssqlUnidadesAsignadasTbk']['id_operador']]['MssqlPersonalPersonalTbk']['nombre'])) {
             $operCount++;
         }
     }
     $unidades['personalCount'] = $operCount;
     $unidades['allUnits'] = $allUnits;
     $unidades['unidades'] = $getUnidades;
     return $unidades;
 }
 function getPersonal($id_area = null, $id_empresa = null)
 {
     if (empty($id_empresa)) {
         $id_empresa = $_SESSION['Auth']['User']['id_empresa'];
     }
     $config = array('personal', 'unidades');
     $fields = array($config['0'] => array('1' => 'MssqlPersonalPersonalAtm.id_personal', '2' => 'MssqlPersonalPersonalAtm.id_area', '3' => 'MssqlPersonalPersonalAtm.id_empresa', '4' => 'MssqlPersonalPersonalAtm.nombre'));
     $conditions = array('MssqlPersonalPersonalAtm.id_categoria' => unitConfig()[$id_empresa]['categoriaOperador'], 'MssqlPersonalPersonalAtm.estado' => 'A');
     if (!empty($id_area)) {
         $conditions['MssqlPersonalPersonalAtm.id_area'] = $id_area;
     }
     $getPersonal = $this->find('all', array('fields' => array($fields[$config['0']]['1'], $fields[$config['0']]['2'], $fields[$config['0']]['3'], $fields[$config['0']]['4']), 'conditions' => $conditions));
     return $getPersonal;
 }
 function getMssqlTraficoViaje($id_area = null, $no_viaje = null, $fecha = null, $id_empresa = null)
 {
     /** Define some variables 
      */
     if (!isset($no_guia)) {
         $no_guia = null;
     }
     if (empty($id_empresa)) {
         $id_empresa = $_SESSION['Auth']['User']['id_empresa'];
     }
     if (empty($id_area)) {
         $id_area = '1';
     }
     if (empty($fecha)) {
         $fecha = date('Y-m-d');
     }
     $getDate = explode('-', $fecha);
     // 		var_dump($getDate);
     $fieldTraficoViaje = array('MssqlViajesRtTei.no_viaje');
     $conditions['MssqlViajesRtTei.id_area'] = $id_area;
     // 		$conditions['MssqlViajesRtTei.no_viaje'] = $no_viaje;
     $conditions['YEAR(MssqlViajesRtTei.f_despachado)'] = $getDate['0'];
     $conditions['MONTH(MssqlViajesRtTei.f_despachado)'] = $getDate['1'];
     $conditions['DAY(MssqlViajesRtTei.f_despachado)'] = $getDate['2'];
     // 		$conditions['DAY(MssqlViajesRtTei.f_despachado)'] = '20';
     $fieldsTraficoViaje = array('id_area', 'no_viaje', 'f_despachado', 'id_personal', 'id_unidad', 'status_viaje', 'id_configuracionviaje', 'id_origen');
     $getTraficoViaje = $this->find('all', array('fields' => $fieldsTraficoViaje, 'conditions' => $conditions));
     // 		pr($getTraficoViaje);
     // exit();
     foreach ($getTraficoViaje as $upKey => $Data) {
         $getTraficoViaje = Set::combine($getTraficoViaje, '{n}.' . $fieldTraficoViaje['0'], '{n}');
     }
     $traficoViaje['trafico_viaje'] = $getTraficoViaje;
     foreach ($getTraficoViaje as $numero_viaje => $viajeContents) {
         $no_viaje[] = $numero_viaje;
     }
     // 		pr($getTraficoViaje);
     // 		pr($no_viaje);
     // exit();
     $fieldTraficoRengloViaje = array('MssqlTraficoRenglonViajeTei.no_viaje');
     $conditionsTraficoRenglonViaje['MssqlTraficoRenglonViajeTei.id_area'] = $id_area;
     $conditionsTraficoRenglonViaje['MssqlTraficoRenglonViajeTei.no_viaje'] = $no_viaje;
     $fieldsTraficoRenglonViaje = array('MssqlTraficoRenglonViajeTei.id_area', 'MssqlTraficoRenglonViajeTei.no_viaje', 'MssqlTraficoRenglonViajeTei.no_guia');
     App::import('model', 'MssqlTraficoRenglonViajeTei');
     $TraficoRenglonViaje = new MssqlTraficoRenglonViajeTei();
     $getTraficoRenglonViaje = $TraficoRenglonViaje->find('all', array('conditions' => $conditionsTraficoRenglonViaje, 'fields' => $fieldsTraficoRenglonViaje));
     foreach ($getTraficoRenglonViaje as $upKey => $Data) {
         $getTraficoRenglonViaje = Set::combine($getTraficoRenglonViaje, '{n}.' . $fieldTraficoRengloViaje['0'], '{n}');
     }
     $traficoViaje['traficoRenglonViaje'] = $getTraficoRenglonViaje;
     // 		pr($getTraficoRenglonViaje);
     foreach ($getTraficoRenglonViaje as $numeroViaje => $ViajeContent) {
         $no_guia[] = $ViajeContent['MssqlTraficoRenglonViajeTei']['no_guia'];
     }
     if (!isset($no_guia)) {
         return null;
         break;
     }
     $fieldTraficoRenglonGuia = array('MssqlTraficoRenglonGuiaTei.no_guia');
     $conditionsTraficoRenglonGuia['MssqlTraficoRenglonGuiaTei.id_area'] = $id_area;
     if (isset($no_guia) or empty($no_guia)) {
         $conditionsTraficoRenglonGuia['MssqlTraficoRenglonGuiaTei.no_guia'] = $no_guia;
     }
     $fieldsTraficoRenglonGuia = array('MssqlTraficoRenglonGuiaTei.no_guia', 'MssqlTraficoRenglonGuiaTei.id_area', 'MssqlTraficoRenglonGuiaTei.id_fraccion', 'MssqlTraficoRenglonGuiaTei.peso', 'MssqlTraficoRenglonGuiaTei.peso_estimado', 'MssqlTraficoRenglonGuiaTei.descripcion_producto');
     App::import('model', 'MssqlTraficoRenglonGuiaTei');
     $TraficoRenglonGuia = new MssqlTraficoRenglonGuiaTei();
     $getTraficoRenglonGuia = $TraficoRenglonGuia->find('all', array('conditions' => $conditionsTraficoRenglonGuia, 'fields' => $fieldsTraficoRenglonGuia));
     foreach ($getTraficoRenglonGuia as $upKey => $Data) {
         $getTraficoRenglonGuia = Set::combine($getTraficoRenglonGuia, '{n}.' . $fieldTraficoRenglonGuia['0'], '{n}');
     }
     // 		pr($getTraficoRenglonGuia);
     // 		exit();
     $traficoViaje['traficoRenglonGuia'] = $getTraficoRenglonGuia;
     $fieldTraficoGuia = array('MssqlTraficoGuiaTei.no_guia');
     $conditionsTraficoGuia['MssqlTraficoGuiaTei.no_guia'] = $no_guia;
     $conditionsTraficoGuia['MssqlTraficoGuiaTei.id_area'] = $id_area;
     $conditionsTraficoGuia['MssqlTraficoGuiaTei.no_viaje'] = $no_viaje;
     // 		$conditionsTraficoGuia['MssqlTraficoGuiaTei.prestamo'] = 'N';
     $conditionsTraficoGuia['MssqlTraficoGuiaTei.status_guia <>'] = 'B';
     $fieldsTraficoGuia = array('MssqlTraficoGuiaTei.no_guia', 'MssqlTraficoGuiaTei.id_area', 'MssqlTraficoGuiaTei.tipo_doc', 'MssqlTraficoGuiaTei.status_guia', 'MssqlTraficoGuiaTei.id_fraccion', 'MssqlTraficoGuiaTei.num_guia', 'MssqlTraficoGuiaTei.id_unidad', 'MssqlTraficoGuiaTei.no_viaje', 'MssqlTraficoGuiaTei.id_fraccion', 'MssqlTraficoGuiaTei.prestamo');
     App::import('model', 'MssqlTraficoGuiaTei');
     $TraficoGuia = new MssqlTraficoGuiaTei();
     // 		exit();
     $getTraficoGuia = $TraficoGuia->find('all', array('conditions' => $conditionsTraficoGuia, 'fields' => $fieldsTraficoGuia));
     // 		pr($getTraficoGuia);
     foreach ($getTraficoGuia as $upKey => $Data) {
         $getTraficoGuia = Set::combine($getTraficoGuia, '{n}.' . $fieldTraficoGuia['0'], '{n}');
     }
     // 		pr($getTraficoGuia);
     $traficoViaje['traficoGuia'] = $getTraficoGuia;
     /** NOTE set the tons according with is no of viaje remenber they have a id_configuracionviaje but ....**/
     /** NOTE don't forget commit this **/
     foreach ($traficoViaje['traficoGuia'] as $numero_no_de_guia => $sqlTraficoGuia) {
         // 		  pr($sqlTraficoGuia);
         $no_of_guia['MssqlTraficoRenglonGuiaTei.no_guia'][] = $sqlTraficoGuia['MssqlTraficoGuiaTei']['no_guia'];
         $noOfGuia['no_guia'][$sqlTraficoGuia['MssqlTraficoGuiaTei']['no_viaje']][] = $sqlTraficoGuia['MssqlTraficoGuiaTei']['no_guia'];
     }
     $no_of_guia['MssqlTraficoRenglonGuiaTei.id_area'] = $id_area;
     // 		pr($no_of_guia);
     // 		pr($noOfGuia);
     $peso = $TraficoRenglonGuia->find('all', array('conditions' => $no_of_guia, 'fields' => $fieldsTraficoRenglonGuia));
     foreach ($peso as $idCount => $tonsContent) {
         if (!isset($toneladas[$tonsContent['MssqlTraficoRenglonGuiaTei']['no_guia']])) {
             $toneladasNoOfGuia[$tonsContent['MssqlTraficoRenglonGuiaTei']['no_guia']] = null;
         }
         $toneladasNoOfGuia[$tonsContent['MssqlTraficoRenglonGuiaTei']['no_guia']] += $tonsContent['MssqlTraficoRenglonGuiaTei']['peso'] + $tonsContent['MssqlTraficoRenglonGuiaTei']['peso_estimado'];
     }
     // 		pr($toneladasNoOfGuia);
     foreach ($noOfGuia['no_guia'] as $noViaje => $noGuiaContent) {
         foreach ($noGuiaContent as $inx => $noGuia) {
             if (!isset($toneladas[$noViaje])) {
                 $toneladas[$noViaje] = null;
             }
             $toneladas[$noViaje] += $toneladasNoOfGuia[$noGuia];
         }
     }
     // // // // // // // // // // // // // // // // // // // // // // // // //
     App::import('model', 'MssqlMttoUnidadesTei');
     $MttoUnidades = new MssqlMttoUnidadesTei();
     // 		  pr(unitConfig()[$id_empresa]['id_unidad']);
     $fieldMttoUnidades = array('MssqlMttoUnidadesTei.id_unidad');
     $conditionsMttoUnidades['MssqlMttoUnidadesTei.id_area'] = $id_area;
     $conditionsMttoUnidades['MssqlMttoUnidadesTei.tipo_unidad'] = unitConfig()[$id_empresa]['TiposUnidad'];
     $conditionsMttoUnidades['MssqlMttoUnidadesTei.estatus'] = 'A';
     $conditionsMttoUnidades['MssqlMttoUnidadesTei.id_unidad <>'] = unitConfig()[$id_empresa]['id_unidad'];
     $fieldsMttoUnidades = array('MssqlMttoUnidadesTei.id_unidad', 'MssqlMttoUnidadesTei.id_area', 'MssqlMttoUnidadesTei.id_flota', 'MssqlMttoUnidadesTei.tipo_unidad', 'MssqlMttoUnidadesTei.status_unidad', 'MssqlMttoUnidadesTei.id_operador', 'MssqlMttoUnidadesTei.id_status', 'MssqlMttoUnidadesTei.estatus');
     $getMttoUnidades = $MttoUnidades->find('all', array('conditions' => $conditionsMttoUnidades, 'fields' => $fieldsMttoUnidades));
     foreach ($getMttoUnidades as $Key => $Dato) {
         $getMttoUnidad = Set::combine($getMttoUnidades, '{n}.' . $fieldMttoUnidades['0'], '{n}');
     }
     // 		pr($getMttoUnidad);
     // 		exit();
     // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // // //
     // 		$fields['camps'] = array('id_fraccion',);
     foreach ($traficoViaje['trafico_viaje'] as $numero_de_viaje => $mssqlViajesTei) {
         $traficoViaje['viajes'][$numero_de_viaje] = $mssqlViajesTei['MssqlViajesRtTei'];
         foreach ($mssqlViajesTei['MssqlViajesRtTei'] as $fieldDescription => $fieldData) {
             //NOTE add offset null
             $guia = $getTraficoRenglonViaje[$numero_de_viaje]['MssqlTraficoRenglonViajeTei']['no_guia'];
             // 			pr($guia);
             $traficoViaje['viajes'][$numero_de_viaje]['no_guia'] = $guia;
             if (isset($getTraficoRenglonGuia[$guia])) {
                 $traficoViaje['viajes'][$numero_de_viaje]['id_fraccion'] = $getTraficoRenglonGuia[$guia]['MssqlTraficoRenglonGuiaTei']['id_fraccion'];
                 $traficoViaje['viajes'][$numero_de_viaje]['peso'] = $getTraficoRenglonGuia[$guia]['MssqlTraficoRenglonGuiaTei']['peso'];
                 $traficoViaje['viajes'][$numero_de_viaje]['peso_estimado'] = $getTraficoRenglonGuia[$guia]['MssqlTraficoRenglonGuiaTei']['peso_estimado'];
                 $traficoViaje['viajes'][$numero_de_viaje]['descripcion_producto'] = $getTraficoRenglonGuia[$guia]['MssqlTraficoRenglonGuiaTei']['descripcion_producto'];
             }
             if (isset($getTraficoGuia[$guia])) {
                 $traficoViaje['viajes'][$numero_de_viaje]['tipo_doc'] = $getTraficoGuia[$guia]['MssqlTraficoGuiaTei']['tipo_doc'];
                 $traficoViaje['viajes'][$numero_de_viaje]['status_guia'] = $getTraficoGuia[$guia]['MssqlTraficoGuiaTei']['status_guia'];
                 $traficoViaje['viajes'][$numero_de_viaje]['num_guia'] = $getTraficoGuia[$guia]['MssqlTraficoGuiaTei']['num_guia'];
                 $traficoViaje['viajes'][$numero_de_viaje]['id_unidad'] = $getTraficoGuia[$guia]['MssqlTraficoGuiaTei']['id_unidad'];
                 $traficoViaje['viajes'][$numero_de_viaje]['prestamo'] = $getTraficoGuia[$guia]['MssqlTraficoGuiaTei']['prestamo'];
             }
             if (!empty($guia)) {
                 $traficoViaje['viajes'][$numero_de_viaje]['id_flota'] = $getMttoUnidad[$getTraficoGuia[$guia]['MssqlTraficoGuiaTei']['id_unidad']]['MssqlMttoUnidadesTei']['id_flota'];
                 $traficoViaje['viajes_count'][$getMttoUnidad[$getTraficoGuia[$guia]['MssqlTraficoGuiaTei']['id_unidad']]['MssqlMttoUnidadesTei']['id_flota']][$numero_de_viaje] = $getMttoUnidad[$getTraficoGuia[$guia]['MssqlTraficoGuiaTei']['id_unidad']]['MssqlMttoUnidadesTei']['id_flota'];
                 $traficoViaje['toneladas'][$getMttoUnidad[$getTraficoGuia[$guia]['MssqlTraficoGuiaTei']['id_unidad']]['MssqlMttoUnidadesTei']['id_flota']][$numero_de_viaje] = $toneladas[$numero_de_viaje];
             }
         }
     }
     // 		pr($traficoViaje['viajes']);
     return $traficoViaje;
 }