Muhammad Iqbal Afandi преди 3 години
родител
ревизия
27c350ac37

+ 21
- 4
app/Http/Controllers/PurchaseController.php Целия файл

@@ -15,6 +15,8 @@ use Illuminate\Support\Facades\DB;
15 15
 use Illuminate\Database\QueryException;
16 16
 use App\Http\Requests\Purchase\StorePurchaseRequest;
17 17
 use App\Http\Requests\Purchase\UpdatePurchaseRequest;
18
+use App\Models\Company;
19
+use App\Services\PurchaseService;
18 20
 
19 21
 class PurchaseController extends Controller
20 22
 {
@@ -43,8 +45,8 @@ class PurchaseController extends Controller
43 45
                         "name" => $purchase->supplier->name,
44 46
                         "phone" => $purchase->supplier->phone,
45 47
                         "email" => $purchase->supplier->email,
46
-                        "price" => HelperService::setRupiahFormat(
47
-                            $purchase->purchaseDetail->sum("price")
48
+                        "price" => HelperService::rupiahFormat(
49
+                            PurchaseService::totalPrice($purchase)
48 50
                         ),
49 51
                         "status" => $purchase->status,
50 52
                     ]
@@ -323,14 +325,29 @@ class PurchaseController extends Controller
323 325
 
324 326
     public function invoice(Purchase $purchase)
325 327
     {
326
-        $pdf = Pdf::loadView("PDF.Purchases.Invoice", compact("purchase"));
328
+        $ppn = Ppn::first()->ppn;
329
+
330
+        $company = Company::first();
331
+
332
+        $pdf = Pdf::loadView(
333
+            "PDF.Purchases.Invoice",
334
+            compact("purchase", "company", "ppn")
335
+        );
336
+
327 337
         return $pdf->stream();
328 338
     }
329 339
 
330 340
     public function deliveryOrder(Purchase $purchase)
331 341
     {
332
-        $pdf = Pdf::loadView("PDF.Purchases.Do", compact("purchase"));
342
+        $company = Company::first();
343
+
344
+        $pdf = Pdf::loadView(
345
+            "PDF.Purchases.Do",
346
+            compact("purchase", "company")
347
+        );
348
+
333 349
         $pdf->setPaper("a3", "landscape");
350
+
334 351
         return $pdf->stream();
335 352
     }
336 353
 }

+ 1
- 1
app/Http/Controllers/SalesController.php Целия файл

@@ -41,7 +41,7 @@ class SalesController extends Controller
41 41
                         "name" => $sale->customer->name,
42 42
                         "phone" => $sale->customer->phone,
43 43
                         "email" => $sale->customer->email,
44
-                        "price" => HelperService::setRupiahFormat(
44
+                        "price" => HelperService::rupiahFormat(
45 45
                             $sale->saleDetail->sum("price")
46 46
                         ),
47 47
                         "status" => $sale->status,

+ 1
- 1
app/Http/Controllers/StockProductController.php Целия файл

@@ -31,7 +31,7 @@ class StockProductController extends Controller
31 31
                         "id" => $stockProduct->id,
32 32
                         "updatedAt" => $stockProduct->updated_at,
33 33
                         "name" => $stockProduct->product->name,
34
-                        "price" => HelperService::setRupiahFormat(
34
+                        "price" => HelperService::rupiahFormat(
35 35
                             $stockProduct->price
36 36
                         ),
37 37
                         "qty" => $stockProduct->qty,

+ 2
- 0
app/Models/Purchase.php Целия файл

@@ -13,6 +13,8 @@ class Purchase extends Model
13 13
 
14 14
     protected $fillable = ["number", "ppn", "status", "supplier_id", "user_id"];
15 15
 
16
+    protected $with = ["purchaseDetail.product", "supplier"];
17
+
16 18
     protected function updatedAt(): Attribute
17 19
     {
18 20
         return Attribute::make(

+ 2
- 2
app/Models/PurchaseDetail.php Целия файл

@@ -20,8 +20,8 @@ class PurchaseDetail extends Model
20 20
                 $ppn = Ppn::first()->ppn;
21 21
 
22 22
                 return $this->purchase->ppn
23
-                    ? HelperService::addPPN($value, $ppn) * $this->qty
24
-                    : $value * $this->qty;
23
+                    ? HelperService::ppn($value, $ppn)
24
+                    : $value;
25 25
             }
26 26
         );
27 27
     }

+ 1
- 1
app/Models/SaleDetail.php Целия файл

@@ -20,7 +20,7 @@ class SaleDetail extends Model
20 20
                 $ppn = Ppn::first()->ppn;
21 21
 
22 22
                 return $this->sale->ppn
23
-                    ? HelperService::addPPN($value, $ppn) * $this->qty
23
+                    ? HelperService::ppn($value, $ppn) * $this->qty
24 24
                     : $value * $this->qty;
25 25
             }
26 26
         );

+ 1
- 3
app/Models/StockProduct.php Целия файл

@@ -30,9 +30,7 @@ class StockProduct extends Model
30 30
             get: function ($value) {
31 31
                 $ppn = Ppn::first()->ppn;
32 32
 
33
-                return $this->ppn
34
-                    ? HelperService::addPPN($value, $ppn)
35
-                    : $value;
33
+                return $this->ppn ? HelperService::ppn($value, $ppn) : $value;
36 34
             }
37 35
         );
38 36
     }

+ 2
- 2
app/Services/HelperService.php Целия файл

@@ -19,7 +19,7 @@ class HelperService
19 19
         return $i;
20 20
     }
21 21
 
22
-    public static function setRupiahFormat(int $num, bool $sign = true)
22
+    public static function rupiahFormat(int $num, bool $sign = true)
23 23
     {
24 24
         if ($sign) {
25 25
             if ($num < 0) {
@@ -36,7 +36,7 @@ class HelperService
36 36
         }
37 37
     }
38 38
 
39
-    public static function addPPN(int $price, int $ppn)
39
+    public static function ppn(int $price, int $ppn)
40 40
     {
41 41
         return $price + $price * ($ppn / 100);
42 42
     }

+ 15
- 0
app/Services/PurchaseService.php Целия файл

@@ -0,0 +1,15 @@
1
+<?php
2
+
3
+namespace App\Services;
4
+
5
+use App\Models\Purchase;
6
+
7
+class PurchaseService
8
+{
9
+    public static function totalPrice(Purchase $purchase)
10
+    {
11
+        return $purchase->purchaseDetail->sum(function ($purchaseDetail) {
12
+            return $purchaseDetail->price * $purchaseDetail->qty;
13
+        });
14
+    }
15
+}

+ 1
- 1
app/Services/SaleService.php Целия файл

@@ -14,7 +14,7 @@ class SaleService
14 14
             $ppn = Ppn::first()->ppn;
15 15
 
16 16
             return $sale->ppn
17
-                ? HelperService::addPPN($saleDetail->price, $ppn)
17
+                ? HelperService::ppn($saleDetail->price, $ppn)
18 18
                 : $saleDetail->price;
19 19
         });
20 20
     }

+ 14
- 12
resources/views/PDF/Purchases/Do.blade.php Целия файл

@@ -54,7 +54,7 @@
54 54
         }
55 55
     </style>
56 56
 
57
-    <title>Sale Delivery Order</title>
57
+    <title>Purchase Delivery Order</title>
58 58
 </head>
59 59
 
60 60
 <body>
@@ -72,10 +72,10 @@
72 72
                             <td style="padding: 0;">
73 73
                                 <table style="border-spacing: 0;">
74 74
                                     <tr>
75
-                                        <td>XXXXXXXXXXXX</td>
75
+                                        <td>{{ $purchase->supplier->name }}</td>
76 76
                                     </tr>
77 77
                                     <tr>
78
-                                        <td>XXXXXXXXXXXX</td>
78
+                                        <td>{{ $purchase->supplier->address }}</td>
79 79
                                     </tr>
80 80
                                 </table>
81 81
                             </td>
@@ -97,7 +97,7 @@
97 97
                             <td style="padding: 0">
98 98
                                 <table style="border-spacing: 0">
99 99
                                     <tr>
100
-                                        <td>XXXXXXXXXXXX</td>
100
+                                        <td>{{ $purchase->supplier->phone }}</td>
101 101
                                     </tr>
102 102
                                 </table>
103 103
                             </td>
@@ -117,12 +117,12 @@
117 117
                                     <tr>
118 118
                                         <td>DATE</td>
119 119
                                         <td>:</td>
120
-                                        <td>XXXXXXXXXXXX</td>
120
+                                        <td>{{ $purchase->updated_at }}</td>
121 121
                                     </tr>
122 122
                                     <tr>
123 123
                                         <td>PO NO</td>
124 124
                                         <td>:</td>
125
-                                        <td>XXXXXXXXXXXX</td>
125
+                                        <td>{{ $purchase->number }}</td>
126 126
                                     </tr>
127 127
                                     <tr>
128 128
                                         <td>TTB NO</td>
@@ -158,15 +158,16 @@
158 158
                 </tr>
159 159
             </thead>
160 160
             <tbody style="text-align: center;">
161
-                @for ($i = 0; $i < 150; $i++)
161
+                @foreach ($purchase->purchaseDetail as $purchaseDetail)
162 162
                     <tr>
163 163
                         <td style="border-left: 1px solid black;">1</td>
164
-                        <td style="border-left: 1px solid black; text-align: left;">IMPORTA KURSI OFFICE</td>
165
-                        <td style="border-left: 1px solid black;">1</td>
164
+                        <td style="border-left: 1px solid black; text-align: left;">
165
+                            {{ $purchaseDetail->product->name }}</td>
166
+                        <td style="border-left: 1px solid black;">{{ $purchaseDetail->qty }}</td>
166 167
                         <td style="border-left: 1px solid black;">UNIT</td>
167 168
                         <td style="border-left: 1px solid black;"></td>
168 169
                     </tr>
169
-                @endfor
170
+                @endforeach
170 171
             </tbody>
171 172
         </table>
172 173
 
@@ -183,7 +184,8 @@
183 184
                                         <td></td>
184 185
                                         <td></td>
185 186
                                         <td colspan="1">
186
-                                            <p style="margin-bottom: 75px; margin-top: 70px;">XXXXXXXXXXXX</p>
187
+                                            <p style="margin-bottom: 75px; margin-top: 70px;">
188
+                                                {{ $company->name ?? '-' }}</p>
187 189
                                         </td>
188 190
                                     </tr>
189 191
                                 </thead>
@@ -200,7 +202,7 @@
200 202
                                         </td>
201 203
                                         <td>
202 204
                                             <span
203
-                                                style="border-top: 1px solid black; width: 150px;display: inline-block; text-align: center;">XXXXXXXXXXXX</span>
205
+                                                style="border-top: 1px solid black; width: 150px;display: inline-block; text-align: center;"></span>
204 206
                                         </td>
205 207
                                     </tr>
206 208
                                 </tbody>

+ 31
- 15
resources/views/PDF/Purchases/Invoice.blade.php Целия файл

@@ -54,7 +54,7 @@
54 54
         }
55 55
     </style>
56 56
 
57
-    <title>Sale Invoice</title>
57
+    <title>Purchase Invoice</title>
58 58
 </head>
59 59
 
60 60
 <body>
@@ -72,10 +72,10 @@
72 72
                             <td style="padding: 0;">
73 73
                                 <table style="border-spacing: 0;">
74 74
                                     <tr>
75
-                                        <td>XXXXXXXXXXXX</td>
75
+                                        <td>{{ $purchase->supplier->name }}</td>
76 76
                                     </tr>
77 77
                                     <tr>
78
-                                        <td>XXXXXXXXXXXX</td>
78
+                                        <td>{{ $purchase->supplier->address }}</td>
79 79
                                     </tr>
80 80
                                 </table>
81 81
                             </td>
@@ -86,7 +86,7 @@
86 86
                             <td style="padding: 0">
87 87
                                 <table style="border-spacing: 0">
88 88
                                     <tr>
89
-                                        <td>XXXXXXXXXXXX</td>
89
+                                        <td>{{ $purchase->supplier->npwp }}</td>
90 90
                                     </tr>
91 91
                                 </table>
92 92
                             </td>
@@ -101,7 +101,7 @@
101 101
                                     <tr>
102 102
                                         <td>NPWP</td>
103 103
                                         <td>:</td>
104
-                                        <td>XXXXXXXXXXXXXXX</td>
104
+                                        <td>{{ $company->npwp ?? '-' }}</td>
105 105
                                     </tr>
106 106
                                     <tr>
107 107
                                         <td>Invoice No</td>
@@ -111,12 +111,12 @@
111 111
                                     <tr>
112 112
                                         <td>Date</td>
113 113
                                         <td>:</td>
114
-                                        <td>XXXXXXXXXXXX</td>
114
+                                        <td>{{ $purchase->updated_at }}</td>
115 115
                                     </tr>
116 116
                                     <tr>
117 117
                                         <td>PO No</td>
118 118
                                         <td>:</td>
119
-                                        <td>XXXXXXXXXXXX</td>
119
+                                        <td>{{ $purchase->number }}</td>
120 120
                                     </tr>
121 121
                                     <tr>
122 122
                                         <td>DO No</td>
@@ -153,19 +153,29 @@
153 153
                 </tr>
154 154
             </thead>
155 155
             <tbody style="text-align: center;">
156
-                @for ($i = 0; $i < 150; $i++)
156
+                @foreach ($purchase->purchaseDetail as $purchaseDetail)
157 157
                     <tr>
158 158
                         <th>1</th>
159
-                        <td style="text-align: left;">IMPORT KURSI OFFICE</td>
160
-                        <td>1</td>
159
+                        <td style="text-align: left;">{{ $purchaseDetail->product->name }}</td>
160
+                        <td>{{ $purchaseDetail->qty }}</td>
161 161
                         <td>UNIT</td>
162
-                        <td style="text-align: right;">800.000</td>
163
-                        <td style="text-align: right;">800.000</td>
162
+                        <td style="text-align: right;">
163
+                            {{ App\Services\HelperService::rupiahFormat($purchaseDetail->price) }}
164
+                        </td>
165
+                        <td style="text-align: right;">
166
+                            {{ App\Services\HelperService::rupiahFormat($purchaseDetail->price * $purchaseDetail->qty) }}
167
+                        </td>
164 168
                     </tr>
165
-                @endfor
169
+                @endforeach
166 170
             </tbody>
167 171
             <tfoot style="border-top: 1px solid black; border-bottom: 1px solid black; text-align: right;">
168 172
                 <tr>
173
+                    <td colspan="4"></td>
174
+                    <td>TOTAL</td>
175
+                    <td>{{ App\Services\HelperService::rupiahFormat(App\Services\PurchaseService::totalPrice($purchase)) }}
176
+                    </td>
177
+                </tr>
178
+                {{-- <tr>
169 179
                     <td colspan="4"></td>
170 180
                     <td>SUB. TOTAL</td>
171 181
                     <td>800.000</td>
@@ -179,10 +189,15 @@
179 189
                     <td colspan="4"></td>
180 190
                     <td>TOTAL IDR</td>
181 191
                     <td>888.000</td>
182
-                </tr>
192
+                </tr> --}}
183 193
             </tfoot>
184 194
         </table>
185 195
 
196
+        <p style="margin: 0; font-size: x-small; font-weight: bold; text-align: right;">Semua produk dikenapan ppn
197
+            sebebar
198
+            {{ $purchase->ppn ? $ppn : 0 }} %
199
+        </p>
200
+
186 201
         <div style="position: absolute; bottom: 0; left: 0; right: 0;">
187 202
             <table>
188 203
                 <tbody>
@@ -194,7 +209,8 @@
194 209
                                     <tr>
195 210
                                         <td></td>
196 211
                                         <td colspan="1">
197
-                                            <p style="margin-bottom: 75px; margin-top: 70px;">XXXXXXXXXXXX</p>
212
+                                            <p style="margin-bottom: 75px; margin-top: 70px;">
213
+                                                {{ $company->name ?? '-' }}</p>
198 214
                                         </td>
199 215
                                     </tr>
200 216
                                 </thead>

+ 1
- 1
routes/web.php Целия файл

@@ -61,7 +61,7 @@ Route::middleware(["auth", "verified", "checkBlocked"])->group(function () {
61 61
         "invoice",
62 62
     ])->name("purchases.invoice");
63 63
 
64
-    Route::get("/purchases/pdf/do/{sale}", [
64
+    Route::get("/purchases/pdf/do/{purchase}", [
65 65
         PurchaseController::class,
66 66
         "deliveryOrder",
67 67
     ])->name("purchases.do");