211 lines
6.6 KiB
PHP
211 lines
6.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Response;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Validator;
|
|
use Hidehalo\Nanoid\Client as Nanoid;
|
|
use Hidehalo\Nanoid\GeneratorInterface as NanoidInterface;
|
|
use App\Responses;
|
|
use App\Helper;
|
|
use App\Models\ConfRates;
|
|
use App\Models\ConfTruckTypes;
|
|
use App\Models\Vehicles;
|
|
|
|
class ConfDistributionController extends Controller
|
|
{
|
|
/**
|
|
* View
|
|
*/
|
|
|
|
public function view_distribution_category(Request $req)
|
|
{
|
|
$data = [];
|
|
|
|
return view("menu_v1.configs.distribution_category", $data);
|
|
}
|
|
|
|
/**
|
|
* API
|
|
*/
|
|
|
|
public function api_add_distribution_category(Request $req)
|
|
{
|
|
try {
|
|
$now = time();
|
|
// new or edit
|
|
$tipe = $req->tipe ?? "new";
|
|
|
|
$input = [
|
|
"dc_code" => $req->dc_code,
|
|
"dc_name" => $req->dc_name,
|
|
];
|
|
$rulesInput = [
|
|
"dc_code" => "required|string|max:10",
|
|
"dc_name" => "required|string|max:100",
|
|
];
|
|
|
|
// validasi input
|
|
$isValidInput = Validator::make($input, $rulesInput);
|
|
if (!$isValidInput->passes()) {
|
|
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
}
|
|
|
|
if($tipe == "new"){
|
|
$uniqCode = DB::select("SELECT * FROM t_conf_distribution_category WHERE dc_code = ?", [$req->dc_code]);
|
|
}
|
|
if($tipe == "edit"){
|
|
$uniqCode = DB::select("SELECT * FROM t_conf_distribution_category WHERE dc_code = ? AND id != ?", [$req->dc_code, $req->id]);
|
|
}
|
|
if (count($uniqCode) > 0) {
|
|
$apiResp = Responses::bad_request("type code has been used");
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
}
|
|
|
|
DB::beginTransaction();
|
|
|
|
$insD = [
|
|
"dc_code" => $req->dc_code,
|
|
"dc_name" => $req->dc_name,
|
|
"crt" => $now,
|
|
"crt_by" => $req->auth->uid,
|
|
"updt" => $now,
|
|
"updt_by" => $req->auth->uid,
|
|
];
|
|
// $insQ = DB::insert("INSERT
|
|
// INTO t_conf_distribution_category (dc_code, dc_name, crt, crt_by, updt, updt_by)
|
|
// VALUES (?, ?, ?, ?, ?, ?)
|
|
// ", array_values($insD));
|
|
$insQ = DB::insert("INSERT into t_conf_distribution_category set
|
|
dc_code = ?,
|
|
dc_name = ?,
|
|
crt = ?,
|
|
crt_by = ?,
|
|
updt = ?,
|
|
updt_by = ?
|
|
on duplicate key update
|
|
dc_code = values(dc_code),
|
|
dc_name = values(dc_name),
|
|
updt = values(updt),
|
|
updt_by = values(updt_by)
|
|
", array_values($insD));
|
|
|
|
|
|
$apiResp = Responses::created("success " . ($tipe == "new" ? "add new" : "edit") . " distribution category");
|
|
|
|
DB::commit();
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
$apiResp = Responses::error($e->getMessage());
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
}
|
|
}
|
|
|
|
public function api_list_distribution_category(Request $req)
|
|
{
|
|
try {
|
|
$now = time();
|
|
|
|
$list = DB::select("SELECT * FROM t_conf_distribution_category WHERE dlt IS NULL ORDER BY dc_code ASC");
|
|
foreach ($list as $key => $row) {
|
|
$list[$key]->DT_RowIndex = $key + 1;
|
|
$list[$key]->action = "-";
|
|
}
|
|
|
|
$apiResp = Responses::success("success list distribution category");
|
|
$apiResp["count"] = count($list);
|
|
$apiResp["data"] = $list;
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
} catch (\Exception $e) {
|
|
$apiResp = Responses::error($e->getMessage());
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
}
|
|
}
|
|
|
|
public function api_show_distribution_category(Request $req, $id)
|
|
{
|
|
try {
|
|
$input = [
|
|
"id" => $id,
|
|
];
|
|
$rulesInput = [
|
|
"id" => "required|integer|not_in:0",
|
|
];
|
|
|
|
// validasi input
|
|
$isValidInput = Validator::make($input, $rulesInput);
|
|
if (!$isValidInput->passes()) {
|
|
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
}
|
|
|
|
$dtl = DB::select("SELECT * FROM t_conf_distribution_category WHERE id = ? AND dlt IS NULL limit 1", [$id]);
|
|
if (count($dtl) < 1) {
|
|
$apiResp = Responses::not_found("truck type not found");
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
}
|
|
|
|
$apiResp = Responses::success("success get detail vehicle type");
|
|
$apiResp["data"] = $dtl[0];
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
} catch (\Exception $e) {
|
|
$apiResp = Responses::error($e->getMessage());
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
}
|
|
}
|
|
|
|
|
|
public function api_del_distribution_category(Request $req, $id)
|
|
{
|
|
try {
|
|
$now = time();
|
|
|
|
$input = [
|
|
"id" => $id,
|
|
];
|
|
$rulesInput = [
|
|
"id" => "required|integer|not_in:0",
|
|
];
|
|
|
|
// validasi input
|
|
$isValidInput = Validator::make($input, $rulesInput);
|
|
if (!$isValidInput->passes()) {
|
|
$apiResp = Responses::bad_input($isValidInput->messages()->first());
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
}
|
|
|
|
$dtl = DB::select("SELECT * FROM t_conf_distribution_category WHERE id = ? AND dlt IS NULL limit 1", [$id]);
|
|
if (count($dtl) < 1) {
|
|
$apiResp = Responses::not_found("vehicle type not found");
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
}
|
|
|
|
DB::beginTransaction();
|
|
|
|
$updtQ = DB::update("UPDATE t_conf_distribution_category
|
|
SET
|
|
dlt = ?,
|
|
dlt_by = ?,
|
|
updt = ?,
|
|
updt_by = ?
|
|
WHERE id = ? AND dlt IS NULL
|
|
", [1, $req->user()->id, $now, $req->user()->id, $id]);
|
|
|
|
DB::commit();
|
|
|
|
$apiResp = Responses::success("success delete vehicle type");
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
} catch (\Exception $e) {
|
|
DB::rollBack();
|
|
$apiResp = Responses::error($e->getMessage());
|
|
return new Response($apiResp, $apiResp["meta"]["code"]);
|
|
}
|
|
}
|
|
}
|