Code Duplication    Length = 10-15 lines in 5 locations

src/Eccube/Service/PurchaseFlow/PurchaseFlow.php 5 locations

@@ 148-162 (lines=15) @@
145
        }
146
    }
147
148
    protected function calculateSubTotal(ItemHolderInterface $itemHolder)
149
    {
150
        $total = $itemHolder->getItems()
151
            ->getProductClasses()
152
            ->reduce(function ($sum, ItemInterface $item) {
153
                $sum += $item->getPriceIncTax() * $item->getQuantity();
154
155
                return $sum;
156
            }, 0);
157
        // TODO
158
        if ($itemHolder instanceof \Eccube\Entity\Order) {
159
            // Order の場合は SubTotal をセットする
160
            $itemHolder->setSubTotal($total);
161
        }
162
    }
163
164
    /**
165
     * @param ItemHolderInterface $itemHolder
@@ 167-177 (lines=11) @@
164
    /**
165
     * @param ItemHolderInterface $itemHolder
166
     */
167
    protected function calculateDeliveryFeeTotal(ItemHolderInterface $itemHolder)
168
    {
169
        $total = $itemHolder->getItems()
170
            ->getDeliveryFees()
171
            ->reduce(function ($sum, ItemInterface $item) {
172
                $sum += $item->getPriceIncTax() * $item->getQuantity();
173
174
                return $sum;
175
            }, 0);
176
        $itemHolder->setDeliveryFeeTotal($total);
177
    }
178
179
    /**
180
     * @param ItemHolderInterface $itemHolder
@@ 182-193 (lines=12) @@
179
    /**
180
     * @param ItemHolderInterface $itemHolder
181
     */
182
    protected function calculateDiscount(ItemHolderInterface $itemHolder)
183
    {
184
        $total = $itemHolder->getItems()
185
            ->getDiscounts()
186
            ->reduce(function ($sum, ItemInterface $item) {
187
                $sum += $item->getPriceIncTax() * $item->getQuantity();
188
189
                return $sum;
190
            }, 0);
191
        // TODO 後方互換のため discount には正の整数を代入する
192
        $itemHolder->setDiscount($total * -1);
193
    }
194
195
    /**
196
     * @param ItemHolderInterface $itemHolder
@@ 198-208 (lines=11) @@
195
    /**
196
     * @param ItemHolderInterface $itemHolder
197
     */
198
    protected function calculateCharge(ItemHolderInterface $itemHolder)
199
    {
200
        $total = $itemHolder->getItems()
201
            ->getCharges()
202
            ->reduce(function ($sum, ItemInterface $item) {
203
                $sum += $item->getPriceIncTax() * $item->getQuantity();
204
205
                return $sum;
206
            }, 0);
207
        $itemHolder->setCharge($total);
208
    }
209
210
    /**
211
     * @param ItemHolderInterface $itemHolder
@@ 213-222 (lines=10) @@
210
    /**
211
     * @param ItemHolderInterface $itemHolder
212
     */
213
    protected function calculateTax(ItemHolderInterface $itemHolder)
214
    {
215
        $total = $itemHolder->getItems()
216
            ->reduce(function ($sum, ItemInterface $item) {
217
                $sum += ($item->getPriceIncTax() - $item->getPrice()) * $item->getQuantity();
218
219
                return $sum;
220
            }, 0);
221
        $itemHolder->setTax($total);
222
    }
223
224
    /**
225
     * @param ItemHolderInterface $itemHolder