|
|
|
@ -46,10 +46,14 @@ class Controller extends BaseController
|
|
|
|
|
|
|
|
|
|
protected function setCustomeDirectoryUpload($company_name) |
|
|
|
|
{ |
|
|
|
|
$pathImage = 'assets/' . $company_name . '/image/'; |
|
|
|
|
$pathDocument = 'assets/' . $company_name . '/file/project/'; |
|
|
|
|
$pathTmpImport = 'assets/' . $company_name . '/file/tmpimport/'; |
|
|
|
|
$pathActivityDocument = 'assets/' . $company_name . '/file/activity/'; |
|
|
|
|
$current_date = date('Y-m-d'); |
|
|
|
|
[$year, $month] = explode('-', $current_date); |
|
|
|
|
$yearMonth = $year.'-'.$month; |
|
|
|
|
|
|
|
|
|
$pathImage = 'assets/' . $company_name .'/'. $yearMonth . '/image/'; |
|
|
|
|
$pathDocument = 'assets/' . $company_name .'/'. $yearMonth . '/file/project/'; |
|
|
|
|
$pathTmpImport = 'assets/' . $company_name .'/'. $yearMonth . '/file/tmpimport/'; |
|
|
|
|
$pathActivityDocument = 'assets/' . $company_name .'/'. $yearMonth . '/file/activity/'; |
|
|
|
|
|
|
|
|
|
return [ |
|
|
|
|
'pathImage' => $pathImage, |
|
|
|
@ -118,75 +122,76 @@ class Controller extends BaseController
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected function setLimitsStorage($company, $dokumen, $name, $initPath, $destinatePath) |
|
|
|
|
protected function setLimitsStorage($company, $dokumen, $initPath, $destinatePath) |
|
|
|
|
{ |
|
|
|
|
$totalSize = 0; |
|
|
|
|
$sizeFile = $dokumen->getSize(); |
|
|
|
|
// Path |
|
|
|
|
$folderPath = $destinatePath['pathDocument']; |
|
|
|
|
$folderPathImage = $destinatePath['pathImage']; |
|
|
|
|
$folderPathTmpImport = $destinatePath['pathTmpImport']; |
|
|
|
|
$folderPathActivityDocument = $destinatePath['pathActivityDocument']; |
|
|
|
|
// Create Directory |
|
|
|
|
if (!file_exists($initPath)) { |
|
|
|
|
mkdir($initPath, 0777, true); |
|
|
|
|
} |
|
|
|
|
// Scanning & Existing Folder |
|
|
|
|
if (file_exists($folderPathImage)) { |
|
|
|
|
$files = scandir($folderPathImage); |
|
|
|
|
foreach ($files as $file) { |
|
|
|
|
if (is_file($folderPathImage . '/' . $file)) { |
|
|
|
|
$totalSize += filesize($folderPathImage . '/' . $file); |
|
|
|
|
$countCreate = false; |
|
|
|
|
DB::transaction(function() use($company, $dokumen, $initPath, $destinatePath, &$countCreate) { |
|
|
|
|
$totalSize = 0; |
|
|
|
|
$sizeFile = $dokumen->getSize(); |
|
|
|
|
// Path |
|
|
|
|
$folderPath = $destinatePath['pathDocument']; |
|
|
|
|
$folderPathImage = $destinatePath['pathImage']; |
|
|
|
|
$folderPathTmpImport = $destinatePath['pathTmpImport']; |
|
|
|
|
$folderPathActivityDocument = $destinatePath['pathActivityDocument']; |
|
|
|
|
// Create Directory |
|
|
|
|
if (!file_exists($initPath)) { |
|
|
|
|
mkdir($initPath, 0777, true); |
|
|
|
|
} |
|
|
|
|
// Scanning & Existing Folder |
|
|
|
|
if (file_exists($folderPathImage)) { |
|
|
|
|
$files = scandir($folderPathImage); |
|
|
|
|
foreach ($files as $file) { |
|
|
|
|
if (is_file($folderPathImage . '/' . $file)) { |
|
|
|
|
$totalSize += filesize($folderPathImage . '/' . $file); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (file_exists($folderPath)) { |
|
|
|
|
$filesImage = scandir($folderPath); |
|
|
|
|
foreach ($filesImage as $file) { |
|
|
|
|
if (is_file($folderPath . '/' . $file)) { |
|
|
|
|
$totalSize += filesize($folderPath . '/' . $file); |
|
|
|
|
if (file_exists($folderPath)) { |
|
|
|
|
$filesImage = scandir($folderPath); |
|
|
|
|
foreach ($filesImage as $file) { |
|
|
|
|
if (is_file($folderPath . '/' . $file)) { |
|
|
|
|
$totalSize += filesize($folderPath . '/' . $file); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (file_exists($folderPathTmpImport)) { |
|
|
|
|
$filesTmpImport = scandir($folderPathTmpImport); |
|
|
|
|
foreach ($filesTmpImport as $file) { |
|
|
|
|
if (is_file($folderPathTmpImport . '/' . $file)) { |
|
|
|
|
$totalSize += filesize($folderPathTmpImport . '/' . $file); |
|
|
|
|
if (file_exists($folderPathTmpImport)) { |
|
|
|
|
$filesTmpImport = scandir($folderPathTmpImport); |
|
|
|
|
foreach ($filesTmpImport as $file) { |
|
|
|
|
if (is_file($folderPathTmpImport . '/' . $file)) { |
|
|
|
|
$totalSize += filesize($folderPathTmpImport . '/' . $file); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (file_exists($folderPathActivityDocument)) { |
|
|
|
|
$filesActivityDocument = scandir($folderPathActivityDocument); |
|
|
|
|
foreach ($filesActivityDocument as $file) { |
|
|
|
|
if (is_file($folderPathActivityDocument . '/' . $file)) { |
|
|
|
|
$totalSize += filesize($folderPathActivityDocument . '/' . $file); |
|
|
|
|
if (file_exists($folderPathActivityDocument)) { |
|
|
|
|
$filesActivityDocument = scandir($folderPathActivityDocument); |
|
|
|
|
foreach ($filesActivityDocument as $file) { |
|
|
|
|
if (is_file($folderPathActivityDocument . '/' . $file)) { |
|
|
|
|
$totalSize += filesize($folderPathActivityDocument . '/' . $file); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// Logic |
|
|
|
|
$totalSize += $sizeFile; |
|
|
|
|
$transaction = ProductTransaction::query() |
|
|
|
|
->where('company_id', $company['id']); |
|
|
|
|
$cloneQueryTransaction = clone $transaction; |
|
|
|
|
$countCreate = false; |
|
|
|
|
if ($transaction->where([['type_paket', 'Basic'], ['amount', '!=', null]])->exists()) { |
|
|
|
|
$maximumSize = 500 * 1024 * 1024; |
|
|
|
|
$countCreate = true; |
|
|
|
|
} elseif ($cloneQueryTransaction->where([['type_paket', 'Free'], ['amount', 0]])->exists()) { |
|
|
|
|
$maximumSize = 50 * 1024 * 1024; |
|
|
|
|
$countCreate = true; |
|
|
|
|
} |
|
|
|
|
if ($countCreate) { |
|
|
|
|
if ($totalSize > $maximumSize) { |
|
|
|
|
return response()->json(['status' => 'failed', 'message' => 'Limited storage maximum!', 'code' => 500], 500); |
|
|
|
|
// Logic |
|
|
|
|
$totalSize += $sizeFile; |
|
|
|
|
$transaction = ProductTransaction::query() |
|
|
|
|
->where('company_id', $company['id']); |
|
|
|
|
$cloneQueryTransaction = clone $transaction; |
|
|
|
|
if ($transaction->where([['type_paket', 'Basic'], ['amount', '!=', null]])->exists()) { |
|
|
|
|
$maximumSize = 500 * 1024 * 1024; |
|
|
|
|
$countCreate = true; |
|
|
|
|
} elseif ($cloneQueryTransaction->where([['type_paket', 'Free'], ['amount', 0]])->exists()) { |
|
|
|
|
$maximumSize = 50 * 1024 * 1024; |
|
|
|
|
$countCreate = true; |
|
|
|
|
} else { |
|
|
|
|
$countCreate = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
$resultMove = $dokumen->move($initPath, $name); |
|
|
|
|
|
|
|
|
|
return [ |
|
|
|
|
'resultMove' => $resultMove |
|
|
|
|
]; |
|
|
|
|
if ($countCreate) { |
|
|
|
|
if (floatval($totalSize) > floatval($maximumSize)) { |
|
|
|
|
$countCreate = false; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
return $countCreate; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected function setUpPayload($condition, $tableSelf) |
|
|
|
@ -334,6 +339,10 @@ class Controller extends BaseController
|
|
|
|
|
$query = $query->whereIn($tableColumn . "." . $column, $value); |
|
|
|
|
} else if ($operator == "notin") { |
|
|
|
|
$query = $query->whereNotIn($tableColumn . "." . $column, $value); |
|
|
|
|
} else if ($operator == "isnull") { |
|
|
|
|
$query = $query->WhereNull($tableColumn . "." . $column); |
|
|
|
|
} else if ($operator == "notnull") { |
|
|
|
|
$query = $query->WhereNotNull($tableColumn . "." . $column); |
|
|
|
|
} else { |
|
|
|
|
$query = $query->where($tableColumn . "." . $column, $operator, $value); |
|
|
|
|
} |
|
|
|
|