/** * Upload Pdf to s3 and create contracts * * @param $key */ public function uploadPdfToS3AndCreateContracts($key) { $contracts = $this->getJsonData($key); foreach ($contracts as $contract) { $this->updateContractJsonByID($key, $contract->id, ['create_status' => static::CREATE_PROCESSING], 2); try { $this->storage->disk('s3')->put($contract->file, $this->filesystem->get($this->getFilePath($key, $contract->file))); } catch (Exception $e) { $this->logger->error(sprintf('File could not be uploaded : %s', $e->getMessage())); continue; } $data = ['file' => $contract->file, 'filehash' => $contract->filehash, 'user_id' => $contract->user_id, 'metadata' => $contract->metadata]; try { $con = $this->contract->save($data); $this->logger->activity('contract.log.save', ['contract' => $con->id], $con->id, $con->user_id); $this->updateContractJsonByID($key, $contract->id, ['create_status' => static::CREATE_COMPLETED], 2); if ($con) { $this->queue->push('App\\Nrgi\\Services\\Queue\\ProcessDocumentQueue', ['contract_id' => $con->id]); } $this->logger->info('Contract successfully created.', ['Contract Title' => $con->title]); } catch (Exception $e) { $this->logger->error($e->getMessage()); if ($this->storage->disk('s3')->exists($contract->file)) { $this->storage->disk('s3')->delete($contract->file); } $this->updateContractJsonByID($key, $contract->id, ['create_remarks' => trans('contract.save_fail'), 'create_status' => static::CREATE_FAILED], 2); } $this->deleteFile($key, $contract->file); } }
/** * Get Unique Resources * * @return array */ public function getUniqueResources() { $resources = $this->contract->getUniqueResources(); $data = []; foreach ($resources as $re) { $data[$re['resource']] = $re['resource']; } asort($data); return $data; }
/** * Get the supporting Contracts * * @param $id * @return array */ public function getSupportingDocuments($id) { $supportingContracts = $this->contract->getSupportingDocument($id); if (empty($supportingContracts)) { return []; } $contractsId = []; foreach ($supportingContracts as $contractId) { array_push($contractsId, $contractId['supporting_contract_id']); } $contracts = $this->getcontracts($contractsId); return $contracts; }
/** * Return the status count of OCR status * * @return array */ public function getOcrStatusCount() { $ocrDefault = ['acceptable' => 0, 'editing' => 0, 'transcription' => 0, 'non' => 0]; $ocrRaw = $this->contract->statusCount('textType'); $ocrStatusCount = []; foreach ($ocrRaw as $ocr) { if ($ocr['status'] == "") { $ocr['status'] = "non"; } if ($ocr['status'] == 1) { $ocr['status'] = "acceptable"; } if ($ocr['status'] == 2) { $ocr['status'] = "editing"; } if ($ocr['status'] == 3) { $ocr['status'] = "transcription"; } $ocrStatusCount[$ocr['status']] = $ocr['count']; } return array_merge($ocrDefault, $ocrStatusCount); }
/** * Get the total contract count * * @return int */ public function getTotalContractCount() { return $this->contract->getTotalContractCount(); }