orderBy('commission_earned')->oldest('commission_date')->get(); } public function getMonthlyUpdate($id){ return MonthlyUpdateMaster::where(['products_id' => $id, 'holding_status' => 'Holding', 'status' => true])->get(); } public function getProduct($id){ return Product::where('id', $id)->first(); } public function getInvestmentValue($commission){ if ($commission->categories == 'Alternative Investment Fund') { $investmentValue = MonthlyUpdateAlternativeInvestmentFund::where('custom_id', $commission->custom_id)->first()->getRawOriginal('commitment_amount'); } elseif ($commission->categories == 'Fractional Real Estate') { $investmentValue = MonthlyUpdateFractionalRealEstate::where('custom_id', $commission->custom_id)->first()->getRawOriginal('total_value_of_the_property'); } else { $investmentValue = MonthlyUpdateIndianFinancialAssets::where('custom_id', $commission->custom_id)->first()->getRawOriginal('amount_invested'); } return $investmentValue; } public function commissionCalculation($product,$investmentValue){ $grossCommissionedEarned = ($investmentValue * $product->trail_rate) / 100; $gst = ($grossCommissionedEarned * $product->gst) / 100; $tds = ($grossCommissionedEarned * $product->tds) / 100; return [ 'gross-commission-earned' => $grossCommissionedEarned, 'gst' => $gst, 'tds' => $tds, ]; } public function updateProductTrailCommission($id,$trailId){ return ProductTrailCommission::where(['products_id' => $id,'id' => $trailId])->update(['commission_earned' => 'Yes']); } public function storeMonthlyCommission($product,$commission,$investmentValue,$commissionCalculation){ return MonthlyUpdateMasterCommission::create([ 'monthly_id' => $commission->id, 'total_investment_or_commitment_amount' => $investmentValue, 'applicable_rate' => $product->trail_rate, 'type_of_commission' => $product->commission_type =='Trail Commission'?'Trail Commission':"Hybrid Commission(Trail)", // 'gross_commissioned_earned_inr' => $grossCommissionedEarned, 'gross_commissioned_earned_inr' => $commissionCalculation['gross-commission-earned'], 'gst' => $commissionCalculation['gst'], 'tds' => $commissionCalculation['tds'], 'net_commission_received' => $commissionCalculation['gross-commission-earned'] + $commissionCalculation['gst'] - $commissionCalculation['tds'], ]); } }