Commit 445032b5 by liuyingkang

feat: 添加已贴票金额字段并优化贴票金额计算逻辑

在LawyerCostController、LawyerCostListController和LawyerCost模型中添加了`posting_tickets_fee_the`字段,用于记录已贴票金额。同时,优化了贴票金额的计算逻辑,确保在计算已支付款项时减去已贴票金额,并添加了详细的日志记录以便调试。
parent 087443c6
...@@ -273,6 +273,7 @@ protected function form() ...@@ -273,6 +273,7 @@ protected function form()
$form->text('annuity'); $form->text('annuity');
$form->text('assistant_fee'); $form->text('assistant_fee');
$form->text('office_rental_fee'); $form->text('office_rental_fee');
$form->text('posting_tickets_fee_theory', '已贴票金额');
$form->text('noticket_cost')->readOnly(); $form->text('noticket_cost')->readOnly();
$form->text('advance_fee'); $form->text('advance_fee');
$form->text('personal_income_tax')->required(); $form->text('personal_income_tax')->required();
......
...@@ -58,6 +58,7 @@ protected function grid() ...@@ -58,6 +58,7 @@ protected function grid()
} }
return ModelLawyerCost::getPostingTicketsMoney($this->lawyer_id, $year, $lawyerObj->commission_rate, $lawyerObj->ticket_ratio); return ModelLawyerCost::getPostingTicketsMoney($this->lawyer_id, $year, $lawyerObj->commission_rate, $lawyerObj->ticket_ratio);
}); });
$grid->column('posting_tickets_fee_the', '已贴票金额');
$grid->column('assistant_fee', '助理律师成本'); $grid->column('assistant_fee', '助理律师成本');
$grid->column('office_rental_fee', '办公租赁成本'); $grid->column('office_rental_fee', '办公租赁成本');
$grid->column('noticket_cost', '无票成本'); $grid->column('noticket_cost', '无票成本');
...@@ -216,6 +217,7 @@ protected function form() ...@@ -216,6 +217,7 @@ protected function form()
$form->text('annuity')->required(); $form->text('annuity')->required();
$form->text('assistant_fee')->required(); $form->text('assistant_fee')->required();
$form->text('office_rental_fee')->required(); $form->text('office_rental_fee')->required();
$form->text('posting_tickets_fee_the', '已贴票金额');
$form->text('noticket_cost')->readOnly(); $form->text('noticket_cost')->readOnly();
$form->text('advance_fee'); $form->text('advance_fee');
$form->text('personal_income_tax')->readOnly(); $form->text('personal_income_tax')->readOnly();
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use App\Command\Log;
class LawyerCost extends Model class LawyerCost extends Model
{ {
...@@ -41,6 +42,7 @@ class LawyerCost extends Model ...@@ -41,6 +42,7 @@ class LawyerCost extends Model
['field' => 'annual_inspection_fee', 'name' => '律所年检费'], ['field' => 'annual_inspection_fee', 'name' => '律所年检费'],
['field' => 'annuity', 'name' => '律所年金'], ['field' => 'annuity', 'name' => '律所年金'],
['field' => 'posting_tickets_fee', 'name' => '贴票成本'], ['field' => 'posting_tickets_fee', 'name' => '贴票成本'],
['field' => 'posting_tickets_fee_the', 'name' => '已贴票成本'],
['field' => 'assistant_fee', 'name' => '助理律师成本'], ['field' => 'assistant_fee', 'name' => '助理律师成本'],
['field' => 'office_rental_fee', 'name' => '办公室租赁成本'], ['field' => 'office_rental_fee', 'name' => '办公室租赁成本'],
['field' => 'noticket_cost', 'name' => '无票成本'], ['field' => 'noticket_cost', 'name' => '无票成本'],
...@@ -172,7 +174,7 @@ public static function getPaidAmount($lawyer_id, $year = 0, $month = 0) ...@@ -172,7 +174,7 @@ public static function getPaidAmount($lawyer_id, $year = 0, $month = 0)
$list = self::where($where)->get(); $list = self::where($where)->get();
if ($list->toArray()) { if ($list->toArray()) {
$basic_salary = $special_additional = $social_company_fee = $accumulation_fund_company_fee = 0; $basic_salary = $special_additional = $social_company_fee = $accumulation_fund_company_fee = 0;
$annual_inspection_fee = $annuity = $office_rental_fee = $assistant_fee = 0; $annual_inspection_fee = $annuity = $office_rental_fee = $assistant_fee = $posting_tickets_fee_the = 0;
foreach ($list as $item) { foreach ($list as $item) {
$basic_salary += $item->basic_salary; $basic_salary += $item->basic_salary;
$special_additional += $item->special_additional; $special_additional += $item->special_additional;
...@@ -182,8 +184,26 @@ public static function getPaidAmount($lawyer_id, $year = 0, $month = 0) ...@@ -182,8 +184,26 @@ public static function getPaidAmount($lawyer_id, $year = 0, $month = 0)
$annuity += $item->annuity; $annuity += $item->annuity;
$office_rental_fee += $item->office_rental_fee; $office_rental_fee += $item->office_rental_fee;
$assistant_fee += $item->assistant_fee; $assistant_fee += $item->assistant_fee;
$posting_tickets_fee_the += $item->posting_tickets_fee_the; //已贴票金额[要减去已贴票金额]
}
$paid_amount = $basic_salary + $special_additional + $social_company_fee
+ $accumulation_fund_company_fee + $annual_inspection_fee + $annuity
+ $office_rental_fee + $assistant_fee - $posting_tickets_fee_the;
if ($lawyer_id == '5') {
Log::add('已支付款项', [
'basic_salary' => $basic_salary,
'special_additional' => $special_additional,
'social_company_fee' => $social_company_fee,
'accumulation_fund_company_fee' => $accumulation_fund_company_fee,
'annual_inspection_fee' => $annual_inspection_fee,
'annuity' => $annuity,
'office_rental_fee' => $office_rental_fee,
'assistant_fee' => $assistant_fee,
'posting_tickets_fee_the' => $posting_tickets_fee_the, //已贴票金额
'paid_amount' => $paid_amount, //已贴票金额
]);
} }
$paid_amount = $basic_salary + $special_additional + $social_company_fee + $accumulation_fund_company_fee + $annual_inspection_fee + $annuity + $office_rental_fee + $assistant_fee;
} }
return $paid_amount; return $paid_amount;
} }
...@@ -199,6 +219,16 @@ public static function getPostingTicketsMoney($lawyer_id, $year, $commission_rat ...@@ -199,6 +219,16 @@ public static function getPostingTicketsMoney($lawyer_id, $year, $commission_rat
$received_money = CovenantReceivePayment::getReceivedMoney($lawyer_id, $year, $month); //创收已收款 $received_money = CovenantReceivePayment::getReceivedMoney($lawyer_id, $year, $month); //创收已收款
$paid_amount = LawyerCost::getPaidAmount($lawyer_id, $year, $month); //已支付款项 $paid_amount = LawyerCost::getPaidAmount($lawyer_id, $year, $month); //已支付款项
$commission = $received_money * ($commission_rate / 100); //提成 $commission = $received_money * ($commission_rate / 100); //提成
Log::add('贴票金额', [
'received_money' => $received_money,
'paid_amount' => $paid_amount,
'commission' => $commission,
'ticket_ratio' => $ticket_ratio,
'commission_rate' => $commission_rate,
'ticket' => $ticket,
]);
if ($commission_rate == 80) { if ($commission_rate == 80) {
if ($commission > 300000) { if ($commission > 300000) {
$ticket = ($commission - $paid_amount) * ($ticket_ratio / 100); $ticket = ($commission - $paid_amount) * ($ticket_ratio / 100);
...@@ -214,12 +244,37 @@ public static function getPostingTicketsMoney($lawyer_id, $year, $commission_rat ...@@ -214,12 +244,37 @@ public static function getPostingTicketsMoney($lawyer_id, $year, $commission_rat
} }
} }
Log::add('贴票金额2', [
'received_money' => $received_money,
'paid_amount' => $paid_amount,
'commission' => $commission,
'ticket_ratio' => $ticket_ratio,
'ticket' => $ticket,
]);
return $ticket; return $ticket;
} }
/** /**
* 律师贴票金额含全部 * 律师贴票金额含全部
*/ */
/**
* 计算律师全年贴票金额
*
* 计算规则:
* 1. 根据律师的提成比例和贴票比例计算
* 2. 不同提成比例对应不同的计算条件:
* - 80%提成:当月提成金额 > 300,000 时计算贴票
* - 85%提成:当月提成金额 > 200,000 时计算贴票
* - 88%或90%提成:当月提成金额 > 120,000 时计算贴票
* 3. 贴票金额 = (当月提成金额 - 已支付款项) * 贴票比例
* 4. 全年贴票金额为各月贴票金额之和
*
* @param int $lawyer_id 律师ID
* @param int $year 年份
* @return float 全年贴票金额
*/
public static function getAllPostingTicketsMoney($lawyer_id, $year) public static function getAllPostingTicketsMoney($lawyer_id, $year)
{ {
$total = 0; $total = 0;
...@@ -229,9 +284,15 @@ public static function getAllPostingTicketsMoney($lawyer_id, $year) ...@@ -229,9 +284,15 @@ public static function getAllPostingTicketsMoney($lawyer_id, $year)
$monthArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; $monthArr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
foreach ($monthArr as $m) { foreach ($monthArr as $m) {
$ticket = 0; $ticket = 0;
$received_money = CovenantReceivePayment::getReceivedMoney($lawyer_id, $year, $m); //创收已收款 //创收已收款
$paid_amount = LawyerCost::getPaidAmount($lawyer_id, $year, $m); //已支付款项 $received_money = CovenantReceivePayment::getReceivedMoney($lawyer_id, $year, $m);
$commission = $received_money * ($commission_rate / 100); //提成
//已支付款项
$paid_amount = LawyerCost::getPaidAmount($lawyer_id, $year, $m);
//提成=创收已收款*提成比例
$commission = $received_money * ($commission_rate / 100);
if ($commission_rate == 80) { if ($commission_rate == 80) {
if ($commission > 300000) { if ($commission > 300000) {
$ticket = ($commission - $paid_amount) * ($ticket_ratio / 100); $ticket = ($commission - $paid_amount) * ($ticket_ratio / 100);
...@@ -245,9 +306,38 @@ public static function getAllPostingTicketsMoney($lawyer_id, $year) ...@@ -245,9 +306,38 @@ public static function getAllPostingTicketsMoney($lawyer_id, $year)
$ticket = ($commission - $paid_amount) * ($ticket_ratio / 100); $ticket = ($commission - $paid_amount) * ($ticket_ratio / 100);
} }
} }
$total += $ticket; $total += $ticket;
if ($lawyerObj->name == '周志强'&&$m<4) {
//我说怎么一直计算不对,加了贴票金额但是总得不变,原来是有的月份根本不计算贴票金额,没达标
Log::add('全年贴票金额' . $m, [
'name' => $lawyerObj->name,
'lawyer_id' => $lawyer_id,
'received_money' => $received_money,
'paid_amount每月:' => $paid_amount,
'commission' => $commission,
'ticket_ratio' => $ticket_ratio,
'commission_rate' => $commission_rate,
'ticket' => $ticket,
'total' => $total,
]);
}
} }
if ($lawyerObj->name == '周志强') {
Log::add('全年贴票金额' . $m, [
'name' => $lawyerObj->name,
'received_money' => $received_money,
'paid_amount' => $paid_amount,
'commission' => $commission,
'ticket_ratio' => $ticket_ratio,
'commission_rate' => $commission_rate,
'total' => $total,
]);
}
return $total; return $total;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment