public function getRegister($token, $id) { $user = new User(); $unitsIdsArray = array(); $query = Capsule::table('registers'); if (!$user->isUserHasRole($token, 'view:all:register')) { if (!$user->isUserHasRole($token, 'view:my:register')) { throw new \Exception("Brak uprawnień"); } else { $meId = $user->getMeId($token); $myUnitsIds = $user->getUserUnits($meId); foreach ($myUnitsIds as $unit) { array_push($unitsIdsArray, $unit->id); } $query->whereIn('registers.unit_id', $unitsIdsArray); } } try { $query->select('registers.id', 'registers.typeOfRegister', 'registers.code', 'registers.name', 'registers.description', 'units.id as unit_id', 'units.name as unitName', 'registers.dateFrom', 'registers.dateTo', 'registers.disabled')->join('units', 'registers.unit_id', '=', 'units.id')->where('registers.id', $id); $documents = $query->first(); $registerspositions = Capsule::table('registerspositions as rp')->select(Capsule::raw('rp.id as id, rp.dateIssue, rp.invoiceNumber, rp.contractorNIP, rp.contractorName, ROUND(SUM(rpv.netto),2) totalNetto, ROUND(SUM(rpv.netto * IF(rpv.tax=-1,0,rpv.tax) / 100),2) as totalVat, ROUND(SUM(rpv.netto * IF(rpv.tax=-1,0,rpv.tax) / 100 + netto),2) as totalBrutto, rp.year, rp.month, rp.position'))->leftJoin('registerspositionsvalues as rpv', 'rp.id', '=', 'rpv.registerId')->where('rp.register_id', $id)->groupBy('rp.id')->orderBy('position', 'asc')->orderBy('id', 'asc')->get(); $dateNow = date("Y-m-d"); if ($documents->dateFrom != null && $documents->dateFrom > $dateNow || $documents->dateTo != null && $documents->dateTo < $dateNow || $documents->disabled) { $documents->blanked = true; } else { $documents->blanked = false; } $documents->positions = $registerspositions; return $documents; } catch (\Exception $e) { throw new \Exception('Problem z probraniem dokumentów'); } return false; }