feat: Add online share functionality for secretaries
- Introduced `online_share_enabled` and `online_share_percent` fields in the `doctor_secretaries` table to manage secretary shares from online appointments. - Added `bank_account` field in the `profiles` table to store user-level IBANs for settlements. - Created `secretary_earnings` table to track earnings per secretary from online appointments, including a foreign key relationship with `financial_breakdowns`. - Implemented `SecretaryEarning` entity and repository for managing secretary earnings. - Developed `SecretaryShareResolver` service to determine which secretaries earn from online payments. - Added `UserIbanResolver` service to handle user IBAN retrieval and management. - Created `HasIbansTrait` for entities to manage IBANs in a JSON format. - Implemented tests for secretary earnings and API endpoints for managing secretary shares and IBANs.
This commit is contained in:
@@ -57,6 +57,13 @@ class FinancialBreakdown
|
||||
#[ORM\Column(name: 'system_share_rials', type: 'integer')]
|
||||
private int $systemShareRials;
|
||||
|
||||
/**
|
||||
* مجموع سهم منشیها از همین پرداخت. تفکیک هر منشی در
|
||||
* {@see \App\Secretary\Entity\SecretaryEarning} ذخیره میشود (قابل کوئری برای گزارش).
|
||||
*/
|
||||
#[ORM\Column(name: 'secretary_share_rials', type: 'integer', options: ['default' => 0])]
|
||||
private int $secretaryShareRials = 0;
|
||||
|
||||
#[ORM\Column(name: 'representation_id', type: 'integer', nullable: true)]
|
||||
private ?int $representationId = null;
|
||||
|
||||
@@ -112,6 +119,8 @@ class FinancialBreakdown
|
||||
public function getPayment(): Payment { return $this->payment; }
|
||||
public function getSource(): string { return $this->source; }
|
||||
public function getRepresentationId(): ?int { return $this->representationId; }
|
||||
public function getSecretaryShareRials(): int { return $this->secretaryShareRials; }
|
||||
public function setSecretaryShareRials(int $v): self { $this->secretaryShareRials = $v; return $this; }
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
@@ -127,6 +136,7 @@ class FinancialBreakdown
|
||||
'net_after_tax_rials' => $this->netAfterTaxRials,
|
||||
'commission_percent' => $this->commissionPercent,
|
||||
'representation_share_rials' => $this->representationShareRials,
|
||||
'secretary_share_rials' => $this->secretaryShareRials,
|
||||
'system_share_rials' => $this->systemShareRials,
|
||||
'representation_id' => $this->representationId,
|
||||
'doctor_id' => $this->doctorId,
|
||||
|
||||
Reference in New Issue
Block a user