예제 #1
0
 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;
 }