Code Duplication    Length = 10-15 lines in 5 locations

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

@@ 119-133 (lines=15) @@
116
        }
117
    }
118
119
    protected function calculateSubTotal(ItemHolderInterface $itemHolder)
120
    {
121
        $total = $itemHolder->getItems()
122
            ->getProductClasses()
123
            ->reduce(function ($sum, ItemInterface $item) {
124
                $sum += $item->getPriceIncTax() * $item->getQuantity();
125
126
                return $sum;
127
            }, 0);
128
        // TODO
129
        if ($itemHolder instanceof \Eccube\Entity\Order) {
130
            // Order の場合は SubTotal をセットする
131
            $itemHolder->setSubTotal($total);
132
        }
133
    }
134
135
    /**
136
     * @param ItemHolderInterface $itemHolder
@@ 138-148 (lines=11) @@
135
    /**
136
     * @param ItemHolderInterface $itemHolder
137
     */
138
    protected function calculateDeliveryFeeTotal(ItemHolderInterface $itemHolder)
139
    {
140
        $total = $itemHolder->getItems()
141
            ->getDeliveryFees()
142
            ->reduce(function ($sum, ItemInterface $item) {
143
                $sum += $item->getPriceIncTax() * $item->getQuantity();
144
145
                return $sum;
146
            }, 0);
147
        $itemHolder->setDeliveryFeeTotal($total);
148
    }
149
150
    /**
151
     * @param ItemHolderInterface $itemHolder
@@ 153-164 (lines=12) @@
150
    /**
151
     * @param ItemHolderInterface $itemHolder
152
     */
153
    protected function calculateDiscount(ItemHolderInterface $itemHolder)
154
    {
155
        $total = $itemHolder->getItems()
156
            ->getDiscounts()
157
            ->reduce(function ($sum, ItemInterface $item) {
158
                $sum += $item->getPriceIncTax() * $item->getQuantity();
159
160
                return $sum;
161
            }, 0);
162
        // TODO 後方互換のため discount には正の整数を代入する
163
        $itemHolder->setDiscount($total * -1);
164
    }
165
166
    /**
167
     * @param ItemHolderInterface $itemHolder
@@ 169-179 (lines=11) @@
166
    /**
167
     * @param ItemHolderInterface $itemHolder
168
     */
169
    protected function calculateCharge(ItemHolderInterface $itemHolder)
170
    {
171
        $total = $itemHolder->getItems()
172
            ->getCharges()
173
            ->reduce(function ($sum, ItemInterface $item) {
174
                $sum += $item->getPriceIncTax() * $item->getQuantity();
175
176
                return $sum;
177
            }, 0);
178
        $itemHolder->setCharge($total);
179
    }
180
181
    /**
182
     * @param ItemHolderInterface $itemHolder
@@ 184-193 (lines=10) @@
181
    /**
182
     * @param ItemHolderInterface $itemHolder
183
     */
184
    protected function calculateTax(ItemHolderInterface $itemHolder)
185
    {
186
        $total = $itemHolder->getItems()
187
            ->reduce(function ($sum, ItemInterface $item) {
188
                $sum += ($item->getPriceIncTax() - $item->getPrice()) * $item->getQuantity();
189
190
                return $sum;
191
            }, 0);
192
        $itemHolder->setTax($total);
193
    }
194
195
    /**
196
     * @param ItemHolderInterface $itemHolder