Sales discount calculation implemented

This commit is contained in:
jitendra 2019-05-23 17:00:11 +05:30
parent abfb0fa102
commit edec481f26
3 changed files with 49 additions and 4 deletions

View File

@ -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) {
//
});
}
}

View File

@ -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();

View File

@ -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();