public static function getProcessedVehiclesSum($start, $end) { $processedList = DB::select(DB::raw("SELECT e_v.vehicle_fk, COUNT(*) as quantity\n FROM employees_vehicles AS e_v, invoices AS inv\n WHERE inv.date >= '{$start}'\n AND inv.date <= '{$end}'\n AND inv.id = e_v.invoice_fk\n AND inv.deleted_at IS NULL\n AND e_v.deleted_at IS NULL\n GROUP BY e_v.vehicle_fk")); $totalSum = 0; foreach ($processedList as $process) { $price = Vehicle::getEmployeesCut($process->vehicle_fk); $total = $price * $process->quantity; $totalSum += $total; } return $totalSum; }
public function displayEmployeeWages() { // If the start date is defined, get the salaries for that certain period, otherwise, get the total amount. if (null !== Input::get('startDate')) { $start = date("Y-m-d", strtotime(Input::get('startDate'))); $end = date("Y-m-d", strtotime(Input::get('endDate'))); } else { $start = "1970-01-01"; $end = "3000-01-01"; } $wageList = []; $processedVehiclesList = Employee::getTotalSalaries($start, $end); $employeesList = Employee::getEmployeesList(); $totalEmployeeWagesSum = 0; foreach ($processedVehiclesList as $processed) { // Initiliaze if not set. if (!isset($wageList[$processed->employee_fk])) { $wageList[$processed->employee_fk] = 0; } $price = Vehicle::getEmployeesCut($processed->vehicle_fk); $total = $price * $processed->quantity; $wageList[$processed->employee_fk] += $total; $totalEmployeeWagesSum += $total; } // $employeeWages = []; foreach ($wageList as $employeeId => $wage) { foreach ($employeesList as $id => $name) { if ($id == $employeeId) { $employeeWages[$name] = $wage; } if (!array_key_exists($id, $wageList)) { $employeeWages[$name] = 0; } } } arsort($employeeWages); $startDate = date("d/m/Y", strtotime($start)); $endDate = date("d/m/Y", strtotime($end)); return View::make('employee.table')->with(['employeeWages' => $employeeWages, 'totalEmployeeWages' => $totalEmployeeWagesSum, 'startDate' => $startDate, 'endDate' => $endDate]); }