diff --git a/packages/Webkul/Sales/src/Database/Migrations/2019_05_23_155520_add_discount_columns_in_invoice_items_table.php b/packages/Webkul/Sales/src/Database/Migrations/2019_05_23_155520_add_discount_columns_in_invoice_items_table.php new file mode 100644 index 000000000..d707ccd96 --- /dev/null +++ b/packages/Webkul/Sales/src/Database/Migrations/2019_05_23_155520_add_discount_columns_in_invoice_items_table.php @@ -0,0 +1,34 @@ +decimal('discount_percent', 12, 4)->default(0)->nullable(); + $table->decimal('discount_amount', 12, 4)->default(0)->nullable(); + $table->decimal('base_discount_amount', 12, 4)->default(0)->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('invoice_items', function (Blueprint $table) { + // + }); + } +} diff --git a/packages/Webkul/Sales/src/Repositories/InvoiceRepository.php b/packages/Webkul/Sales/src/Repositories/InvoiceRepository.php index f408d0a61..d596e5342 100755 --- a/packages/Webkul/Sales/src/Repositories/InvoiceRepository.php +++ b/packages/Webkul/Sales/src/Repositories/InvoiceRepository.php @@ -121,6 +121,8 @@ class InvoiceRepository extends Repository 'base_total' => $orderItem->base_price * $qty, 'tax_amount' => ( ($orderItem->tax_amount / $orderItem->qty_ordered) * $qty ), 'base_tax_amount' => ( ($orderItem->base_tax_amount / $orderItem->qty_ordered) * $qty ), + 'discount_amount' => ( ($orderItem->discount_amount / $orderItem->qty_ordered) * $qty ), + 'base_discount_amount' => ( ($orderItem->base_discount_amount / $orderItem->qty_ordered) * $qty ), 'product_id' => $orderItem->product_id, 'product_type' => $orderItem->product_type, 'additional' => $orderItem->additional, @@ -142,6 +144,8 @@ class InvoiceRepository extends Repository 'base_total' => $childOrderItem->base_price * $qty, 'tax_amount' => 0, 'base_tax_amount' => 0, + 'discount_amount' => 0, + 'base_discount_amount' => 0, 'product_id' => $childOrderItem->product_id, 'product_type' => $childOrderItem->product_type, 'additional' => $childOrderItem->additional, @@ -177,6 +181,7 @@ class InvoiceRepository extends Repository { $subTotal = $baseSubTotal = 0; $taxAmount = $baseTaxAmount = 0; + $discountAmount = $baseDiscountAmount = 0; foreach ($invoice->items as $invoiceItem) { $subTotal += $invoiceItem->total; @@ -184,6 +189,9 @@ class InvoiceRepository extends Repository $taxAmount += $invoiceItem->tax_amount; $baseTaxAmount += $invoiceItem->base_tax_amount; + + $discountAmount += $invoiceItem->discount_amount; + $baseDiscountAmount += $invoiceItem->base_discount_amount; } $shippingAmount = $invoice->order->shipping_amount; @@ -207,8 +215,8 @@ class InvoiceRepository extends Repository $invoice->tax_amount = $taxAmount; $invoice->base_tax_amount = $baseTaxAmount; - $invoice->grand_total = $subTotal + $taxAmount + $shippingAmount; - $invoice->base_grand_total = $baseSubTotal + $baseTaxAmount + $baseShippingAmount; + $invoice->grand_total = $subTotal + $taxAmount + $shippingAmount - $discountAmount; + $invoice->base_grand_total = $baseSubTotal + $baseTaxAmount + $baseShippingAmount - $baseDiscountAmount; $invoice->save(); diff --git a/packages/Webkul/Sales/src/Repositories/OrderRepository.php b/packages/Webkul/Sales/src/Repositories/OrderRepository.php index 769c24d20..1d8b87e4e 100755 --- a/packages/Webkul/Sales/src/Repositories/OrderRepository.php +++ b/packages/Webkul/Sales/src/Repositories/OrderRepository.php @@ -262,10 +262,13 @@ class OrderRepository extends Repository $order->tax_amount_invoiced += $invoice->tax_amount; $order->base_tax_amount_invoiced += $invoice->base_tax_amount; + + $order->discount_invoiced += $invoice->discount_amount; + $order->base_discount_invoiced += $invoice->base_discount_amount; } - $order->grand_total_invoiced = $order->sub_total_invoiced + $order->shipping_invoiced + $order->tax_amount_invoiced; - $order->base_grand_total_invoiced = $order->base_sub_total_invoiced + $order->base_shipping_invoiced + $order->base_tax_amount_invoiced; + $order->grand_total_invoiced = $order->sub_total_invoiced + $order->shipping_invoiced + $order->tax_amount_invoiced - $order->discount_invoiced; + $order->base_grand_total_invoiced = $order->base_sub_total_invoiced + $order->base_shipping_invoiced + $order->base_tax_amount_invoiced - $order->base_discount_invoiced; $order->save();