diff --git a/app/Http/Controllers/ExpenseController.php b/app/Http/Controllers/ExpenseController.php index 61c8188..f4cd56f 100644 --- a/app/Http/Controllers/ExpenseController.php +++ b/app/Http/Controllers/ExpenseController.php @@ -65,15 +65,18 @@ class ExpenseController extends Controller 'description' => ['required'], 'date_expense' => ['required', 'date'], 'amount' => ['required', 'numeric'], - 'is_paid' => ['required', 'in:0,1,2,3'], + 'is_paid' => ['required', 'in:0,1,2,3,4'], 'isIncome' => ['required', 'in:0,1'], ]); + $is_paid = $request->is_paid; if ($request->isIncome === 0) { $request->validate([ 'name' => ['required'], 'job_number' => ['required'], ]); + } else { + $is_paid = Expense::IS_PAID_PAID; } Expense::create([ @@ -82,7 +85,7 @@ class ExpenseController extends Controller 'job_number' => $request->job_number, 'date_expense' => Carbon::parse($request->date_expense)->toDateString(), 'amount' => $request->amount, - 'is_paid' => $request->is_paid, + 'is_paid' => $is_paid, 'isIncome' => $request->isIncome, ]); @@ -95,15 +98,18 @@ class ExpenseController extends Controller 'description' => ['required'], 'date_expense' => ['required', 'date'], 'amount' => ['required', 'numeric'], - 'is_paid' => ['required', 'in:0,1,2,3'], + 'is_paid' => ['required', 'in:0,1,2,3,4'], 'isIncome' => ['required', 'in:0,1'], ]); + $is_paid = $request->is_paid; if ($request->isIncome === 0) { $request->validate([ 'name' => ['required'], 'job_number' => ['required'], ]); + } else { + $is_paid = Expense::IS_PAID_PAID; } $expense->update([ @@ -112,7 +118,7 @@ class ExpenseController extends Controller 'job_number' => $request->job_number, 'date_expense' => Carbon::parse($request->date_expense)->toDateString(), 'amount' => $request->amount, - 'is_paid' => $request->is_paid, + 'is_paid' => $is_paid, 'isIncome' => $request->isIncome, ]); diff --git a/app/Models/Expense.php b/app/Models/Expense.php index c65faf9..0d64591 100644 --- a/app/Models/Expense.php +++ b/app/Models/Expense.php @@ -9,11 +9,11 @@ class Expense extends Model { use HasFactory; - const IS_PAID_DRAFT = 0; const IS_PAID_UNPAID = 0; const IS_PAID_PAID = 1; const IS_PAID_APPROVE = 2; const IS_PAID_REJECT = 3; + const IS_PAID_DRAFT = 4; /** * The attributes that are mass assignable. @@ -37,6 +37,7 @@ class Expense extends Model { return [ self::IS_PAID_DRAFT => 'Draft', + self::IS_PAID_UNPAID => 'Unpaid', self::IS_PAID_PAID => 'Paid', self::IS_PAID_APPROVE => 'Approve', self::IS_PAID_REJECT => 'Reject', diff --git a/resources/js/Pages/Expense/DetailModal.jsx b/resources/js/Pages/Expense/DetailModal.jsx index 8f64d6a..95f80f0 100644 --- a/resources/js/Pages/Expense/DetailModal.jsx +++ b/resources/js/Pages/Expense/DetailModal.jsx @@ -15,7 +15,7 @@ export default function FormModal(props) { date_expense: new Date(), amount: "", isIncome: 0, - is_paid: 0, + is_paid: 4, status: "" }) diff --git a/resources/js/Pages/Expense/FormModal.jsx b/resources/js/Pages/Expense/FormModal.jsx index 0d121e2..96116a5 100644 --- a/resources/js/Pages/Expense/FormModal.jsx +++ b/resources/js/Pages/Expense/FormModal.jsx @@ -17,7 +17,7 @@ export default function FormModal(props) { date_expense: new Date(), amount: "", isIncome: 0, - is_paid: 0, + is_paid: 4, }) const setType = (type) => { @@ -166,7 +166,8 @@ export default function FormModal(props) { value={data.is_paid} onChange={handleOnChange} > - + + diff --git a/resources/js/Pages/Expense/Index.jsx b/resources/js/Pages/Expense/Index.jsx index 35087b0..9a400ea 100644 --- a/resources/js/Pages/Expense/Index.jsx +++ b/resources/js/Pages/Expense/Index.jsx @@ -262,6 +262,7 @@ export default function Dashboard(props) { {expense.description} + {+expense.isIncome === 1 ? '+' : '-'} {formatIDR(expense.amount)}