Muhammad Iqbal Afandi пре 3 година
родитељ
комит
6597b97de1

+ 44
- 29
app/Http/Controllers/MemberController.php Прегледај датотеку

184
      */
184
      */
185
     public function update(UpdateMemberRequest $request, Member $member)
185
     public function update(UpdateMemberRequest $request, Member $member)
186
     {
186
     {
187
-        if ($member->type_member_id !== $request->type_member_id) {
188
-            dd('type member changes');
189
-        } else {
190
-            dd('old member');
191
-        }
192
-        // DB::beginTransaction();
187
+        DB::beginTransaction();
193
 
188
 
194
-        // try {
195
-        //     $member->update($request->validated());
189
+        try {
190
+            if ($member->type_member_id !== $request->type_member_id) {
191
+                $member->update([
192
+                    'name' => $request->name,
193
+                    'phone' => $request->phone,
194
+                    'exp_date' => now()->addDays(30),
195
+                    'type_member_id' => $request->type_member_id,
196
+                ]);
196
 
197
 
197
-        //     foreach ($request->vehicles as $vehicle) {
198
-        //         $member->vehicles()->create([
199
-        //             'plat_number' => $vehicle['platNumber'],
200
-        //             'type_vehicle_id' => $vehicle['typeVehicleId'],
201
-        //         ]);
202
-        //     }
198
+                $member->vehicles()->delete();
203
 
199
 
204
-        //     $topUp = $member->topUps()->create([
205
-        //         'amount' => TypeMember::find($request->type_member_id)->getRawOriginal('price'),
206
-        //         'exp_date' => now()->addDays(30),
207
-        //         'user_id' => auth()->user()->id,
208
-        //     ]);
200
+                foreach ($request->vehicles as $vehicle) {
201
+                    $member->vehicles()->create([
202
+                        'plat_number' => $vehicle['platNumber'],
203
+                        'type_vehicle_id' => $vehicle['typeVehicleId'],
204
+                    ]);
205
+                }
209
 
206
 
210
-        //     $topUp->mutation()->create([
211
-        //         'type' => 1,
212
-        //         'amount' => TypeMember::find($request->type_member_id)->getRawOriginal('price'),
213
-        //     ]);
207
+                $topUp = $member->topUps()->create([
208
+                    'amount' => TypeMember::find($request->type_member_id)->getRawOriginal('price'),
209
+                    'exp_date' => now()->addDays(30),
210
+                    'user_id' => auth()->user()->id,
211
+                ]);
214
 
212
 
215
-        //     DB::commit();
213
+                $topUp->mutation()->create([
214
+                    'type' => 1,
215
+                    'amount' => TypeMember::find($request->type_member_id)->getRawOriginal('price'),
216
+                ]);
217
+            } else {
218
+                $member->update($request->validated());
216
 
219
 
217
-        //     return back()->with('success', __('messages.success.update.member'));
218
-        // } catch (QueryException $qe) {
219
-        //     DB::rollBack();
220
+                $member->vehicles()->delete();
220
 
221
 
221
-        //     return back()->with('error', __('messages.error.update'));
222
-        // }
222
+                foreach ($request->vehicles as $vehicle) {
223
+                    $member->vehicles()->create([
224
+                        'plat_number' => $vehicle['platNumber'],
225
+                        'type_vehicle_id' => $vehicle['typeVehicleId'],
226
+                    ]);
227
+                }
228
+            }
229
+
230
+            DB::commit();
231
+
232
+            return back()->with('success', __('messages.success.update.member'));
233
+        } catch (QueryException $qe) {
234
+            DB::rollBack();
235
+
236
+            return back()->with('error', __('messages.error.update'));
237
+        }
223
     }
238
     }
224
 
239
 
225
     /**
240
     /**

+ 1
- 1
app/Models/TransactionOut.php Прегледај датотеку

13
         'plat_number',
13
         'plat_number',
14
         'price',
14
         'price',
15
         'transaction_in_id',
15
         'transaction_in_id',
16
-        'type_vehicle_id',
16
+        'parking_fee_id',
17
         'user_id',
17
         'user_id',
18
     ];
18
     ];
19
 }
19
 }

+ 1
- 0
app/Models/Vehicle.php Прегледај датотеку

13
     protected $fillable = [
13
     protected $fillable = [
14
         'plat_number',
14
         'plat_number',
15
         'member_id',
15
         'member_id',
16
+        'transaction_out_id',
16
         'type_vehicle_id',
17
         'type_vehicle_id',
17
     ];
18
     ];
18
 
19
 

+ 1
- 0
database/migrations/2022_04_23_130215_create_vehicles_table.php Прегледај датотеку

17
             $table->id();
17
             $table->id();
18
             $table->string('plat_number');
18
             $table->string('plat_number');
19
             $table->foreignId('member_id')->constrained();
19
             $table->foreignId('member_id')->constrained();
20
+            $table->foreignId('transaction_out_id')->constrained();
20
             $table->foreignId('type_vehicle_id')->constrained();
21
             $table->foreignId('type_vehicle_id')->constrained();
21
             $table->timestamps();
22
             $table->timestamps();
22
         });
23
         });

+ 2
- 1
designs/diagrams/database.puml Прегледај датотеку

13
   * plat_number
13
   * plat_number
14
   price
14
   price
15
   * transaction_in_id
15
   * transaction_in_id
16
-  type_vehicle_id
17
   * user_id
16
   * user_id
18
 }
17
 }
19
 
18
 
62
   __
61
   __
63
   * plat_number
62
   * plat_number
64
   * member_id
63
   * member_id
64
+  * transaction_out_id
65
+  * parking_fee_id
65
   * type_vehicle_id
66
   * type_vehicle_id
66
 }
67
 }
67
 
68
 

BIN
designs/diagrams/database/Database.png Прегледај датотеку


+ 26
- 21
public/js/resources_js_pages_member_Create_vue.js Прегледај датотеку

628
     });
628
     });
629
     var confirm = (0,primevue_useconfirm__WEBPACK_IMPORTED_MODULE_3__.useConfirm)();
629
     var confirm = (0,primevue_useconfirm__WEBPACK_IMPORTED_MODULE_3__.useConfirm)();
630
 
630
 
631
+    var formSent = function formSent() {
632
+      form.transform(function (data) {
633
+        return {
634
+          name: data.name,
635
+          phone: data.phone,
636
+          vehicles: listPlatNumber,
637
+          type_member_id: data.type_member_id
638
+        };
639
+      }).post(route('members.store'), {
640
+        onError: function onError() {
641
+          _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_1__.Inertia.reload({
642
+            only: ['typeMember'],
643
+            data: {
644
+              id: form.type_member_id
645
+            }
646
+          });
647
+        },
648
+        onSuccess: function onSuccess() {
649
+          listPlatNumberClear();
650
+          form.reset();
651
+        }
652
+      });
653
+    };
654
+
631
     var submit = function submit() {
655
     var submit = function submit() {
632
       confirm.require({
656
       confirm.require({
633
         message: "Tagihan dikenakan untuk member baru sebesar ".concat(props.typeMember.price),
657
         message: "Tagihan dikenakan untuk member baru sebesar ".concat(props.typeMember.price),
635
         acceptLabel: 'Bayar dan simpan',
659
         acceptLabel: 'Bayar dan simpan',
636
         rejectLabel: 'Batalkan',
660
         rejectLabel: 'Batalkan',
637
         accept: function accept() {
661
         accept: function accept() {
638
-          form.transform(function (data) {
639
-            return {
640
-              name: data.name,
641
-              phone: data.phone,
642
-              vehicles: listPlatNumber,
643
-              type_member_id: data.type_member_id
644
-            };
645
-          }).post(route('members.store'), {
646
-            onError: function onError() {
647
-              _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_1__.Inertia.reload({
648
-                only: ['typeMember'],
649
-                data: {
650
-                  id: form.type_member_id
651
-                }
652
-              });
653
-            },
654
-            onSuccess: function onSuccess() {
655
-              listPlatNumberClear();
656
-              form.reset();
657
-            }
658
-          });
662
+          formSent();
659
         },
663
         },
660
         reject: function reject() {
664
         reject: function reject() {
661
           console.info('transaksi digagalkan');
665
           console.info('transaksi digagalkan');
673
       addPlatNumber: addPlatNumber,
677
       addPlatNumber: addPlatNumber,
674
       form: form,
678
       form: form,
675
       confirm: confirm,
679
       confirm: confirm,
680
+      formSent: formSent,
676
       submit: submit,
681
       submit: submit,
677
       computed: vue__WEBPACK_IMPORTED_MODULE_0__.computed,
682
       computed: vue__WEBPACK_IMPORTED_MODULE_0__.computed,
678
       watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,
683
       watch: vue__WEBPACK_IMPORTED_MODULE_0__.watch,

+ 1
- 1
public/js/vue.js Прегледај датотеку

58380
 /******/ 		// This function allow to reference async chunks
58380
 /******/ 		// This function allow to reference async chunks
58381
 /******/ 		__webpack_require__.u = (chunkId) => {
58381
 /******/ 		__webpack_require__.u = (chunkId) => {
58382
 /******/ 			// return url for filenames based on template
58382
 /******/ 			// return url for filenames based on template
58383
-/******/ 			return "js/" + chunkId + ".js?id=" + {"node_modules_chart_js_auto_auto_esm_js":"10c6b388645ceb22","resources_js_pages_auth_ForgotPassword_vue":"5b9f0529bda25a9b","resources_js_pages_auth_Login_vue":"61b9c9ae1ae9da32","resources_js_pages_auth_ResetPassword_vue":"b091193a1e114ce8","resources_js_pages_auth_VerifyEmail_vue":"a7b9a99e5a331088","resources_js_pages_expense_Create_vue":"1772093ec9ad8e1f","resources_js_pages_expense_Index_vue":"bb79e50a3f9cc936","resources_js_pages_expense_Show_vue":"6200e318fe2f7fed","resources_js_pages_expense_TableHeader_js":"eed3f0613f167cfd","resources_js_pages_home_Index_vue":"6cd0224828ac8129","resources_js_pages_member_Create_vue":"65532cf5d3ca8ed2","resources_js_pages_member_Edit_vue":"8953f866891a3551","resources_js_pages_member_Index_vue":"4c8d34b88ca81ceb","resources_js_pages_member_TableHeader_js":"51dbf053f7ddd45c","resources_js_pages_topup_Create_vue":"24940afcdac09553","resources_js_pages_topup_Edit_vue":"258c3b0746574dc0","resources_js_pages_topup_Index_vue":"0733ef204a4ec33e","resources_js_pages_topup_Show_vue":"cb35ad21e9ce163f","resources_js_pages_topup_TableHeader_js":"c0dc89df0e3b8b7d","resources_js_pages_typemember_Create_vue":"e9028dd632c51636","resources_js_pages_typemember_Edit_vue":"c51c01c7afe7241d","resources_js_pages_typemember_Index_vue":"f9b93dac2e59fcc5","resources_js_pages_typemember_TableHeader_js":"ac1d31a59f8d464e","resources_js_pages_typevehicle_Create_vue":"0f937d93865a1ea2","resources_js_pages_typevehicle_Edit_vue":"edba97a3715ba957","resources_js_pages_typevehicle_Index_vue":"a150bdc8e5ca38d8","resources_js_pages_typevehicle_TableHeader_js":"a40378918fbe74e1","resources_js_pages_user_Create_vue":"361bf2589467f820","resources_js_pages_user_Edit_vue":"fdb844cf830ec11c","resources_js_pages_user_Index_vue":"28306eabc84a84d1","resources_js_pages_user_Show_vue":"138fd92d6ae36518","resources_js_pages_user_TableHeader_js":"0d87fd422fe40491"}[chunkId] + "";
58383
+/******/ 			return "js/" + chunkId + ".js?id=" + {"node_modules_chart_js_auto_auto_esm_js":"10c6b388645ceb22","resources_js_pages_auth_ForgotPassword_vue":"5b9f0529bda25a9b","resources_js_pages_auth_Login_vue":"61b9c9ae1ae9da32","resources_js_pages_auth_ResetPassword_vue":"b091193a1e114ce8","resources_js_pages_auth_VerifyEmail_vue":"a7b9a99e5a331088","resources_js_pages_expense_Create_vue":"1772093ec9ad8e1f","resources_js_pages_expense_Index_vue":"bb79e50a3f9cc936","resources_js_pages_expense_Show_vue":"6200e318fe2f7fed","resources_js_pages_expense_TableHeader_js":"eed3f0613f167cfd","resources_js_pages_home_Index_vue":"6cd0224828ac8129","resources_js_pages_member_Create_vue":"440e3a52f7012f02","resources_js_pages_member_Edit_vue":"8953f866891a3551","resources_js_pages_member_Index_vue":"4c8d34b88ca81ceb","resources_js_pages_member_TableHeader_js":"51dbf053f7ddd45c","resources_js_pages_topup_Create_vue":"24940afcdac09553","resources_js_pages_topup_Edit_vue":"258c3b0746574dc0","resources_js_pages_topup_Index_vue":"0733ef204a4ec33e","resources_js_pages_topup_Show_vue":"cb35ad21e9ce163f","resources_js_pages_topup_TableHeader_js":"c0dc89df0e3b8b7d","resources_js_pages_typemember_Create_vue":"e9028dd632c51636","resources_js_pages_typemember_Edit_vue":"c51c01c7afe7241d","resources_js_pages_typemember_Index_vue":"f9b93dac2e59fcc5","resources_js_pages_typemember_TableHeader_js":"ac1d31a59f8d464e","resources_js_pages_typevehicle_Create_vue":"0f937d93865a1ea2","resources_js_pages_typevehicle_Edit_vue":"edba97a3715ba957","resources_js_pages_typevehicle_Index_vue":"a150bdc8e5ca38d8","resources_js_pages_typevehicle_TableHeader_js":"a40378918fbe74e1","resources_js_pages_user_Create_vue":"361bf2589467f820","resources_js_pages_user_Edit_vue":"fdb844cf830ec11c","resources_js_pages_user_Index_vue":"28306eabc84a84d1","resources_js_pages_user_Show_vue":"138fd92d6ae36518","resources_js_pages_user_TableHeader_js":"0d87fd422fe40491"}[chunkId] + "";
58384
 /******/ 		};
58384
 /******/ 		};
58385
 /******/ 	})();
58385
 /******/ 	})();
58386
 /******/ 	
58386
 /******/ 	

+ 21
- 17
resources/js/pages/member/Create.vue Прегледај датотеку

108
 
108
 
109
 const confirm = useConfirm()
109
 const confirm = useConfirm()
110
 
110
 
111
+const formSent = () => {
112
+  form
113
+    .transform((data) => ({
114
+      name: data.name,
115
+      phone: data.phone,
116
+      vehicles: listPlatNumber,
117
+      type_member_id: data.type_member_id,
118
+    }))
119
+    .post(route('members.store'), {
120
+      onError: () => {
121
+        Inertia.reload({ only: ['typeMember'], data: { id: form.type_member_id } })
122
+      },
123
+      onSuccess: () => {
124
+        listPlatNumberClear()
125
+
126
+        form.reset()
127
+      },
128
+    })
129
+}
130
+
111
 const submit = () => {
131
 const submit = () => {
112
   confirm.require({
132
   confirm.require({
113
     message: `Tagihan dikenakan untuk member baru sebesar ${props.typeMember.price}`,
133
     message: `Tagihan dikenakan untuk member baru sebesar ${props.typeMember.price}`,
115
     acceptLabel: 'Bayar dan simpan',
135
     acceptLabel: 'Bayar dan simpan',
116
     rejectLabel: 'Batalkan',
136
     rejectLabel: 'Batalkan',
117
     accept: () => {
137
     accept: () => {
118
-      form
119
-        .transform((data) => ({
120
-          name: data.name,
121
-          phone: data.phone,
122
-          vehicles: listPlatNumber,
123
-          type_member_id: data.type_member_id,
124
-        }))
125
-        .post(route('members.store'), {
126
-          onError: () => {
127
-            Inertia.reload({ only: ['typeMember'], data: { id: form.type_member_id } })
128
-          },
129
-          onSuccess: () => {
130
-            listPlatNumberClear()
131
-
132
-            form.reset()
133
-          },
134
-        })
138
+      formSent()
135
     },
139
     },
136
     reject: () => {
140
     reject: () => {
137
       console.info('transaksi digagalkan')
141
       console.info('transaksi digagalkan')