Sales discount calculation implemented
This commit is contained in:
parent
abfb0fa102
commit
edec481f26
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddDiscountColumnsInInvoiceItemsTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('invoice_items', function (Blueprint $table) {
|
||||
$table->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) {
|
||||
//
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue