Fix issue by removing entity manager clear #572
This commit is contained in:
parent
6a075bd46b
commit
5830ad0c09
1 changed files with 50 additions and 49 deletions
|
|
@ -110,30 +110,8 @@ class ImportCarClubCustomerDataCommand extends Command
|
||||||
$contact_number = trim($fields[SELF::F_CONTACT_NUM]);
|
$contact_number = trim($fields[SELF::F_CONTACT_NUM]);
|
||||||
|
|
||||||
// check customer tag
|
// check customer tag
|
||||||
// find the customer tag for club
|
$cust_tag = $this->findCustomerTag($car_club);
|
||||||
$tag_name = $this->normalizeClubName($car_club);
|
|
||||||
error_log($tag_name);
|
|
||||||
$cust_tag = null;
|
|
||||||
if (!isset($this->cust_tag_hash[$tag_name]))
|
|
||||||
{
|
|
||||||
error_log('customer tag not in hash...');
|
|
||||||
// create the customer tag
|
|
||||||
$new_cust_tag = new CustomerTag();
|
|
||||||
$tag_details = json_decode('{"type":"car club"}', true);
|
|
||||||
$new_cust_tag->setID($tag_name)
|
|
||||||
->setName(strtoupper($car_club))
|
|
||||||
->setTagDetails($tag_details);
|
|
||||||
$this->em->persist($new_cust_tag);
|
|
||||||
|
|
||||||
// need to flush before adding to hash
|
|
||||||
$this->em->flush();
|
|
||||||
|
|
||||||
$this->cust_tag_hash[$tag_name] = $new_cust_tag;
|
|
||||||
|
|
||||||
}
|
|
||||||
$cust_tag = $this->cust_tag_hash[$tag_name];
|
|
||||||
|
|
||||||
// check in case of multiple numbers
|
|
||||||
// check contact number if mobile or not
|
// check contact number if mobile or not
|
||||||
// check for spaces, slash, and forward slash
|
// check for spaces, slash, and forward slash
|
||||||
$contact_num_array = [];
|
$contact_num_array = [];
|
||||||
|
|
@ -189,9 +167,10 @@ class ImportCarClubCustomerDataCommand extends Command
|
||||||
$clean_number = '';
|
$clean_number = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
$customers = $this->findCustomerByNumber($c_num);
|
$customer = $this->findCustomerByNumber($c_num);
|
||||||
|
|
||||||
if (empty($customers))
|
// if no customer found, create one
|
||||||
|
if ($customer == null)
|
||||||
{
|
{
|
||||||
error_log('Creating customer...');
|
error_log('Creating customer...');
|
||||||
error_log('cust tag id ' . $cust_tag->getID());
|
error_log('cust tag id ' . $cust_tag->getID());
|
||||||
|
|
@ -216,7 +195,6 @@ class ImportCarClubCustomerDataCommand extends Command
|
||||||
$this->em->flush();
|
$this->em->flush();
|
||||||
// get customer id of new customer here
|
// get customer id of new customer here
|
||||||
$cust_id = $new_cust->getId();
|
$cust_id = $new_cust->getId();
|
||||||
$this->em->clear();
|
|
||||||
|
|
||||||
// add info to output array
|
// add info to output array
|
||||||
$output_info[] = $this->addCustomerInfoEntry($timestamp, $dpa, $fname, $mname, $lname, $birthdate, $address, $city,
|
$output_info[] = $this->addCustomerInfoEntry($timestamp, $dpa, $fname, $mname, $lname, $birthdate, $address, $city,
|
||||||
|
|
@ -227,30 +205,28 @@ class ImportCarClubCustomerDataCommand extends Command
|
||||||
{
|
{
|
||||||
error_log('Updating customer...');
|
error_log('Updating customer...');
|
||||||
// add customer tag to existing customer
|
// add customer tag to existing customer
|
||||||
foreach ($customers as $customer)
|
|
||||||
{
|
|
||||||
$cust_id = $customer->getID();
|
|
||||||
// need to check if customer tag already exists for customer
|
|
||||||
$tag_exists = $customer->getCustomerTag($cust_tag->getID());
|
|
||||||
if ($tag_exists == null)
|
|
||||||
{
|
|
||||||
$customer->addCustomerTag($cust_tag);
|
|
||||||
|
|
||||||
// add info to output array
|
$cust_id = $customer->getID();
|
||||||
$output_info[] = $this->addCustomerInfoEntry($timestamp, $dpa, $fname, $mname, $lname, $birthdate, $address, $city,
|
// need to check if customer tag already exists for customer
|
||||||
$region, $car_club, $position, $member_number, $vehicle, $vehicle_excel, $batt_size, $replace_sked,
|
$tag_exists = $customer->getCustomerTag($cust_tag->getID());
|
||||||
$dealer_visit, $contact_number, $bwi_location, $sap_code, $sku, $qty, 'UPDATED', '', $cust_id);
|
if ($tag_exists == null)
|
||||||
}
|
{
|
||||||
else
|
$customer->addCustomerTag($cust_tag);
|
||||||
{
|
|
||||||
// add info to output array
|
// add info to output array
|
||||||
$output_info[] = $this->addCustomerInfoEntry($timestamp, $dpa, $fname, $mname, $lname, $birthdate, $address, $city,
|
$output_info[] = $this->addCustomerInfoEntry($timestamp, $dpa, $fname, $mname, $lname, $birthdate, $address, $city,
|
||||||
$region, $car_club, $position, $member_number, $vehicle, $vehicle_excel, $batt_size, $replace_sked,
|
$region, $car_club, $position, $member_number, $vehicle, $vehicle_excel, $batt_size, $replace_sked,
|
||||||
$dealer_visit, $contact_number, $bwi_location, $sap_code, $sku, $qty, 'NOT CREATED/UPDATED', 'CUSTOMER AND TAG ALREADY EXIST', $cust_id);
|
$dealer_visit, $contact_number, $bwi_location, $sap_code, $sku, $qty, 'UPDATED', '', $cust_id);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// add info to output array
|
||||||
|
$output_info[] = $this->addCustomerInfoEntry($timestamp, $dpa, $fname, $mname, $lname, $birthdate, $address, $city,
|
||||||
|
$region, $car_club, $position, $member_number, $vehicle, $vehicle_excel, $batt_size, $replace_sked,
|
||||||
|
$dealer_visit, $contact_number, $bwi_location, $sap_code, $sku, $qty, 'NOT CREATED/UPDATED', 'CUSTOMER AND TAG ALREADY EXIST', $cust_id);
|
||||||
|
}
|
||||||
|
|
||||||
$this->em->flush();
|
$this->em->flush();
|
||||||
$this->em->clear();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -266,8 +242,8 @@ class ImportCarClubCustomerDataCommand extends Command
|
||||||
|
|
||||||
protected function findCustomerByNumber($number)
|
protected function findCustomerByNumber($number)
|
||||||
{
|
{
|
||||||
$customers = $this->em->getRepository(Customer::class)->findBy(['phone_mobile' => $number]);
|
$customer = $this->em->getRepository(Customer::class)->findOneBy(['phone_mobile' => $number]);
|
||||||
return $customers;
|
return $customer;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function addCustomerInfoEntry($timestamp, $dpa, $fname, $mname, $lname, $birthdate, $address, $city,
|
protected function addCustomerInfoEntry($timestamp, $dpa, $fname, $mname, $lname, $birthdate, $address, $city,
|
||||||
|
|
@ -384,4 +360,29 @@ class ImportCarClubCustomerDataCommand extends Command
|
||||||
|
|
||||||
return $tag_name;
|
return $tag_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function findCustomerTag($car_club)
|
||||||
|
{
|
||||||
|
// find the customer tag for club
|
||||||
|
$tag_name = $this->normalizeClubName($car_club);
|
||||||
|
error_log($tag_name);
|
||||||
|
if (isset($this->cust_tag_hash[$tag_name]))
|
||||||
|
return $this->cust_tag_hash[$tag_name];
|
||||||
|
|
||||||
|
error_log('customer tag not in hash...');
|
||||||
|
// create the customer tag
|
||||||
|
$new_cust_tag = new CustomerTag();
|
||||||
|
$tag_details = json_decode('{"type":"car club"}', true);
|
||||||
|
$new_cust_tag->setID($tag_name)
|
||||||
|
->setName(strtoupper($car_club))
|
||||||
|
->setTagDetails($tag_details);
|
||||||
|
$this->em->persist($new_cust_tag);
|
||||||
|
|
||||||
|
// need to flush before adding to hash
|
||||||
|
$this->em->flush();
|
||||||
|
|
||||||
|
$this->cust_tag_hash[$tag_name] = $new_cust_tag;
|
||||||
|
|
||||||
|
return $new_cust_tag;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue