|
|
@@ -10,7 +10,7 @@ use App\ApiResources\Dolibarr\DolibarrContractLine;
|
|
|
|
|
|
class DolibarrAccountCreator
|
|
|
{
|
|
|
- const PRODUCT_MAPPING = [
|
|
|
+ public const PRODUCT_MAPPING = [
|
|
|
1 => 'PRODUCT_ARTIST', # OT Artist
|
|
|
2 => 'PRODUCT_ARTIST_PREMIUM', # OT Artist Premium
|
|
|
3 => 'PRODUCT_SCHOOL', # OT School Standard
|
|
|
@@ -19,25 +19,26 @@ class DolibarrAccountCreator
|
|
|
];
|
|
|
|
|
|
public function __construct(
|
|
|
- private DolibarrApiService $dolibarrApiService,
|
|
|
+ private DolibarrService $dolibarrService,
|
|
|
)
|
|
|
{}
|
|
|
|
|
|
public function getDolibarrAccount(int $id): DolibarrAccount {
|
|
|
|
|
|
// Get dolibarr account (society)
|
|
|
- $accountData = $this->dolibarrApiService->getSociety($id);
|
|
|
+ $accountData = $this->dolibarrService->getSociety($id);
|
|
|
$dolibarrAccount = $this->createDolibarrAccount($id, $accountData);
|
|
|
|
|
|
// Get active contract and services
|
|
|
- $contractData = $this->dolibarrApiService->getActiveContract($dolibarrAccount->getSocId());
|
|
|
+ $contractData = $this->dolibarrService->getActiveContract($dolibarrAccount->getSocId());
|
|
|
+
|
|
|
if ($contractData !== null) {
|
|
|
$contract = $this->createDolibarrContract($contractData);
|
|
|
$dolibarrAccount->setContract($contract);
|
|
|
}
|
|
|
|
|
|
// get bills
|
|
|
- $billsData = $this->dolibarrApiService->getBills($dolibarrAccount->getSocId());
|
|
|
+ $billsData = $this->dolibarrService->getBills($dolibarrAccount->getSocId());
|
|
|
foreach ($billsData as $billData) {
|
|
|
$bill = $this->createDolibarrBill($billData);
|
|
|
$dolibarrAccount->addBill($bill);
|
|
|
@@ -52,7 +53,7 @@ class DolibarrAccountCreator
|
|
|
->setSocId((int)$accountData['id'])
|
|
|
->setClientNumber($accountData['code_client']);
|
|
|
|
|
|
- if ($accountData['array_options']['options_2iopen_software_used']) {
|
|
|
+ if (!empty($accountData['array_options']['options_2iopen_software_used'])) {
|
|
|
$dolibarrAccount->setProduct(
|
|
|
self::PRODUCT_MAPPING[(int)$accountData['array_options']['options_2iopen_software_used']]
|
|
|
);
|
|
|
@@ -62,7 +63,7 @@ class DolibarrAccountCreator
|
|
|
|
|
|
public function createDolibarrContract(array $contractData): DolibarrContract {
|
|
|
$contract = new DolibarrContract();
|
|
|
- $contract->setRef($contractData['ref'])
|
|
|
+ $contract->setRef($contractData['ref'] ?? '')
|
|
|
->setSocId((int)$contractData['socid']);
|
|
|
|
|
|
foreach ($contractData['lines'] as $lineData) {
|
|
|
@@ -75,18 +76,12 @@ class DolibarrAccountCreator
|
|
|
|
|
|
public function createDolibarrContractLine(array $lineData): DolibarrContractLine {
|
|
|
$line = new DolibarrContractLine();
|
|
|
- $line->setId((int)$lineData['id'])
|
|
|
- ->setContractId((int)$lineData['fk_contrat'])
|
|
|
- ->setServiceRef($lineData['product_ref'])
|
|
|
- ->setServiceLabel($lineData['product_label']);
|
|
|
-
|
|
|
- if(!empty($lineData['date_start'])){
|
|
|
- $line->setDateStart(new \DateTime(date('c', $lineData['date_start'])));
|
|
|
- }
|
|
|
- if(!empty($lineData['date_end'])){
|
|
|
- $line->setDateEnd(new \DateTime(date('c', $lineData['date_end'])));
|
|
|
- }
|
|
|
- return $line;
|
|
|
+ return $line->setId((int)$lineData['id'])
|
|
|
+ ->setContractId((int)$lineData['fk_contrat'])
|
|
|
+ ->setServiceRef($lineData['product_ref'])
|
|
|
+ ->setServiceLabel($lineData['product_label'])
|
|
|
+ ->setDateStart(new \DateTime(date('c', $lineData['date_start'])))
|
|
|
+ ->setDateEnd(new \DateTime(date('c', $lineData['date_end'])));
|
|
|
}
|
|
|
|
|
|
public function createDolibarrBill(array $billData): DolibarrBill {
|