Code Duplication    Length = 10-15 lines in 5 locations

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

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