浏览代码

fix: sale master

父节点
当前提交
0fa9c0bec3

+ 18
- 4
app/Http/Controllers/SalesController.php 查看文件

12
 use Illuminate\Database\QueryException;
12
 use Illuminate\Database\QueryException;
13
 use App\Http\Requests\Sales\StoreSaleRequest;
13
 use App\Http\Requests\Sales\StoreSaleRequest;
14
 use App\Http\Requests\Sales\UpdateSaleRequest;
14
 use App\Http\Requests\Sales\UpdateSaleRequest;
15
+use App\Models\Company;
16
+use App\Services\SaleService;
15
 use Barryvdh\DomPDF\Facade\Pdf;
17
 use Barryvdh\DomPDF\Facade\Pdf;
16
 
18
 
17
 class SalesController extends Controller
19
 class SalesController extends Controller
42
                         "phone" => $sale->customer->phone,
44
                         "phone" => $sale->customer->phone,
43
                         "email" => $sale->customer->email,
45
                         "email" => $sale->customer->email,
44
                         "price" => HelperService::rupiahFormat(
46
                         "price" => HelperService::rupiahFormat(
45
-                            $sale->saleDetail->sum("price")
47
+                            SaleService::totalPrice($sale)
46
                         ),
48
                         ),
47
                         "status" => $sale->status,
49
                         "status" => $sale->status,
48
                     ]
50
                     ]
74
                         fn($stockProduct) => [
76
                         fn($stockProduct) => [
75
                             "number" => $stockProduct->product_number,
77
                             "number" => $stockProduct->product_number,
76
                             "name" => $stockProduct->product->name,
78
                             "name" => $stockProduct->product->name,
77
-                            "price" => $stockProduct->price,
79
+                            "price" => $stockProduct->getRawOriginal("price"),
78
                             "ppn" => $stockProduct->ppn,
80
                             "ppn" => $stockProduct->ppn,
79
                             "qty" => $stockProduct->qty,
81
                             "qty" => $stockProduct->qty,
80
                             "unit" => $stockProduct->product->unit,
82
                             "unit" => $stockProduct->product->unit,
202
 
204
 
203
     public function invoice(Sale $sale)
205
     public function invoice(Sale $sale)
204
     {
206
     {
205
-        $pdf = Pdf::loadView("PDF.Sales.Invoice", compact("sale"));
207
+        $ppn = Ppn::first()->ppn;
208
+
209
+        $company = Company::first();
210
+
211
+        $pdf = Pdf::loadView(
212
+            "PDF.Sales.Invoice",
213
+            compact("sale", "company", "ppn")
214
+        );
215
+
206
         return $pdf->stream();
216
         return $pdf->stream();
207
     }
217
     }
208
 
218
 
209
     public function deliveryOrder(Sale $sale)
219
     public function deliveryOrder(Sale $sale)
210
     {
220
     {
211
-        $pdf = Pdf::loadView("PDF.Sales.Do", compact("sale"));
221
+        $company = Company::first();
222
+
223
+        $pdf = Pdf::loadView("PDF.Sales.Do", compact("sale", "company"));
224
+
212
         $pdf->setPaper("a3", "landscape");
225
         $pdf->setPaper("a3", "landscape");
226
+
213
         return $pdf->stream();
227
         return $pdf->stream();
214
     }
228
     }
215
 }
229
 }

+ 2
- 0
app/Models/Sale.php 查看文件

13
 
13
 
14
     protected $fillable = ["number", "ppn", "status", "customer_id", "user_id"];
14
     protected $fillable = ["number", "ppn", "status", "customer_id", "user_id"];
15
 
15
 
16
+    protected $with = ["saleDetail.product", "customer"];
17
+
16
     protected function updatedAt(): Attribute
18
     protected function updatedAt(): Attribute
17
     {
19
     {
18
         return Attribute::make(
20
         return Attribute::make(

+ 2
- 2
app/Models/SaleDetail.php 查看文件

20
                 $ppn = Ppn::first()->ppn;
20
                 $ppn = Ppn::first()->ppn;
21
 
21
 
22
                 return $this->sale->ppn
22
                 return $this->sale->ppn
23
-                    ? HelperService::ppn($value, $ppn) * $this->qty
24
-                    : $value * $this->qty;
23
+                    ? HelperService::ppn($value, $ppn)
24
+                    : $value;
25
             }
25
             }
26
         );
26
         );
27
     }
27
     }

+ 2
- 6
app/Services/SaleService.php 查看文件

10
 {
10
 {
11
     public static function totalPrice(Sale $sale)
11
     public static function totalPrice(Sale $sale)
12
     {
12
     {
13
-        return $sale->saleDetail->sum(function ($saleDetail) use ($sale) {
14
-            $ppn = Ppn::first()->ppn;
15
-
16
-            return $sale->ppn
17
-                ? HelperService::ppn($saleDetail->price, $ppn)
18
-                : $saleDetail->price;
13
+        return $sale->saleDetail->sum(function ($saleDetail) {
14
+            return $saleDetail->price * $saleDetail->qty;
19
         });
15
         });
20
     }
16
     }
21
 }
17
 }

+ 2
- 2
resources/views/PDF/Purchases/Do.blade.php 查看文件

158
                 </tr>
158
                 </tr>
159
             </thead>
159
             </thead>
160
             <tbody style="text-align: center;">
160
             <tbody style="text-align: center;">
161
-                @foreach ($purchase->purchaseDetail as $purchaseDetail)
161
+                @foreach ($purchase->purchaseDetail as $key => $purchaseDetail)
162
                     <tr>
162
                     <tr>
163
-                        <td style="border-left: 1px solid black;">1</td>
163
+                        <td style="border-left: 1px solid black;">{{ $key + 1 }}</td>
164
                         <td style="border-left: 1px solid black; text-align: left;">
164
                         <td style="border-left: 1px solid black; text-align: left;">
165
                             {{ $purchaseDetail->product->name }}</td>
165
                             {{ $purchaseDetail->product->name }}</td>
166
                         <td style="border-left: 1px solid black;">{{ $purchaseDetail->qty }}</td>
166
                         <td style="border-left: 1px solid black;">{{ $purchaseDetail->qty }}</td>

+ 4
- 4
resources/views/PDF/Purchases/Invoice.blade.php 查看文件

153
                 </tr>
153
                 </tr>
154
             </thead>
154
             </thead>
155
             <tbody style="text-align: center;">
155
             <tbody style="text-align: center;">
156
-                @foreach ($purchase->purchaseDetail as $purchaseDetail)
156
+                @foreach ($purchase->purchaseDetail as $key => $purchaseDetail)
157
                     <tr>
157
                     <tr>
158
-                        <th>1</th>
158
+                        <th>{{ $key + 1 }}</th>
159
                         <td style="text-align: left;">{{ $purchaseDetail->product->name }}</td>
159
                         <td style="text-align: left;">{{ $purchaseDetail->product->name }}</td>
160
                         <td>{{ $purchaseDetail->qty }}</td>
160
                         <td>{{ $purchaseDetail->qty }}</td>
161
                         <td>UNIT</td>
161
                         <td>UNIT</td>
193
             </tfoot>
193
             </tfoot>
194
         </table>
194
         </table>
195
 
195
 
196
-        <p style="margin: 0; font-size: x-small; font-weight: bold; text-align: right;">Semua produk dikenapan ppn
197
-            sebebar
196
+        <p style="margin: 0; font-size: x-small; font-weight: bold; text-align: right;">Semua produk dikenakan ppn
197
+            sebesar
198
             {{ $purchase->ppn ? $ppn : 0 }} %
198
             {{ $purchase->ppn ? $ppn : 0 }} %
199
         </p>
199
         </p>
200
 
200
 

+ 13
- 12
resources/views/PDF/Sales/Do.blade.php 查看文件

72
                             <td style="padding: 0;">
72
                             <td style="padding: 0;">
73
                                 <table style="border-spacing: 0;">
73
                                 <table style="border-spacing: 0;">
74
                                     <tr>
74
                                     <tr>
75
-                                        <td>XXXXXXXXXXXX</td>
75
+                                        <td>{{ $sale->customer->name }}</td>
76
                                     </tr>
76
                                     </tr>
77
                                     <tr>
77
                                     <tr>
78
-                                        <td>XXXXXXXXXXXX</td>
78
+                                        <td>{{ $sale->customer->address }}</td>
79
                                     </tr>
79
                                     </tr>
80
                                 </table>
80
                                 </table>
81
                             </td>
81
                             </td>
97
                             <td style="padding: 0">
97
                             <td style="padding: 0">
98
                                 <table style="border-spacing: 0">
98
                                 <table style="border-spacing: 0">
99
                                     <tr>
99
                                     <tr>
100
-                                        <td>XXXXXXXXXXXX</td>
100
+                                        <td>{{ $sale->customer->phone }}</td>
101
                                     </tr>
101
                                     </tr>
102
                                 </table>
102
                                 </table>
103
                             </td>
103
                             </td>
117
                                     <tr>
117
                                     <tr>
118
                                         <td>DATE</td>
118
                                         <td>DATE</td>
119
                                         <td>:</td>
119
                                         <td>:</td>
120
-                                        <td>XXXXXXXXXXXX</td>
120
+                                        <td>{{ $sale->updated_at }}</td>
121
                                     </tr>
121
                                     </tr>
122
                                     <tr>
122
                                     <tr>
123
                                         <td>PO NO</td>
123
                                         <td>PO NO</td>
124
                                         <td>:</td>
124
                                         <td>:</td>
125
-                                        <td>XXXXXXXXXXXX</td>
125
+                                        <td>{{ $sale->number }}</td>
126
                                     </tr>
126
                                     </tr>
127
                                     <tr>
127
                                     <tr>
128
                                         <td>TTB NO</td>
128
                                         <td>TTB NO</td>
158
                 </tr>
158
                 </tr>
159
             </thead>
159
             </thead>
160
             <tbody style="text-align: center;">
160
             <tbody style="text-align: center;">
161
-                @for ($i = 0; $i < 150; $i++)
161
+                @foreach ($sale->saleDetail as $key => $saleDetail)
162
                     <tr>
162
                     <tr>
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>
163
+                        <td style="border-left: 1px solid black;">{{ $key + 1 }}</td>
164
+                        <td style="border-left: 1px solid black; text-align: left;">{{ $saleDetail->product->name }}
165
+                        </td>
166
+                        <td style="border-left: 1px solid black;">{{ $saleDetail->qty }}</td>
166
                         <td style="border-left: 1px solid black;">UNIT</td>
167
                         <td style="border-left: 1px solid black;">UNIT</td>
167
                         <td style="border-left: 1px solid black;"></td>
168
                         <td style="border-left: 1px solid black;"></td>
168
                     </tr>
169
                     </tr>
169
-                @endfor
170
+                @endforeach
170
             </tbody>
171
             </tbody>
171
         </table>
172
         </table>
172
 
173
 
183
                                         <td></td>
184
                                         <td></td>
184
                                         <td></td>
185
                                         <td></td>
185
                                         <td colspan="1">
186
                                         <td colspan="1">
186
-                                            <p style="margin-bottom: 75px; margin-top: 70px;">XXXXXXXXXXXX</p>
187
+                                            <p style="margin-bottom: 75px; margin-top: 70px;">{{ $company->name }}</p>
187
                                         </td>
188
                                         </td>
188
                                     </tr>
189
                                     </tr>
189
                                 </thead>
190
                                 </thead>
200
                                         </td>
201
                                         </td>
201
                                         <td>
202
                                         <td>
202
                                             <span
203
                                             <span
203
-                                                style="border-top: 1px solid black; width: 150px;display: inline-block; text-align: center;">XXXXXXXXXXXX</span>
204
+                                                style="border-top: 1px solid black; width: 150px;display: inline-block; text-align: center;"></span>
204
                                         </td>
205
                                         </td>
205
                                     </tr>
206
                                     </tr>
206
                                 </tbody>
207
                                 </tbody>

+ 29
- 15
resources/views/PDF/Sales/Invoice.blade.php 查看文件

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