Fixes for migration

This commit is contained in:
David Bomba 2020-10-31 11:46:00 +11:00
parent a18b1b431e
commit afcbb870bf
3 changed files with 27 additions and 134 deletions

View File

@ -474,7 +474,7 @@ class Import implements ShouldQueue
unset($modified['id']); unset($modified['id']);
unset($modified['contacts']); unset($modified['contacts']);
$client = $vendor_repository->save( $vendor = $vendor_repository->save(
$modified, $modified,
VendorFactory::create( VendorFactory::create(
$this->company->id, $this->company->id,
@ -482,29 +482,29 @@ class Import implements ShouldQueue
) )
); );
$client->contacts()->forceDelete(); $vendor->contacts()->forceDelete();
if (array_key_exists('contacts', $resource)) { // need to remove after importing new migration.json if (array_key_exists('contacts', $resource)) { // need to remove after importing new migration.json
$modified_contacts = $resource['contacts']; $modified_contacts = $resource['contacts'];
foreach ($modified_contacts as $key => $client_contacts) { foreach ($modified_contacts as $key => $vendor_contacts) {
$modified_contacts[$key]['company_id'] = $this->company->id; $modified_contacts[$key]['company_id'] = $this->company->id;
$modified_contacts[$key]['user_id'] = $this->processUserId($resource); $modified_contacts[$key]['user_id'] = $this->processUserId($resource);
$modified_contacts[$key]['client_id'] = $client->id; $modified_contacts[$key]['client_id'] = $vendor->id;
$modified_contacts[$key]['password'] = 'mysuperpassword'; // @todo, and clean up the code.. $modified_contacts[$key]['password'] = 'mysuperpassword'; // @todo, and clean up the code..
unset($modified_contacts[$key]['id']); unset($modified_contacts[$key]['id']);
} }
$saveable_contacts['contacts'] = $modified_contacts; $saveable_contacts['contacts'] = $modified_contacts;
$contact_repository->save($saveable_contacts, $client); $contact_repository->save($saveable_contacts, $vendor);
} }
$key = "vendors_{$resource['id']}"; $key = "vendors_{$resource['id']}";
$this->ids['vendors'][$key] = [ $this->ids['vendors'][$key] = [
'old' => $resource['id'], 'old' => $resource['id'],
'new' => $client->id, 'new' => $vendor->id,
]; ];
} }
@ -1052,10 +1052,18 @@ class Import implements ShouldQueue
$modified['company_id'] = $this->company->id; $modified['company_id'] = $this->company->id;
$modified['user_id'] = $this->transformId('users', $resource['user_id']); $modified['user_id'] = $this->transformId('users', $resource['user_id']);
$modified['client_id'] = $this->transformId('clients', $resource['client_id']);
$modified['invoice_id'] = $this->transformId('invoices', $resource['invoice_id']); if(isset($modified['client_id']))
$modified['project_id'] = $this->transformId('projects', $resource['project_id']); $modified['client_id'] = $this->transformId('clients', $resource['client_id']);
$modified['status_id'] = $this->transformId('task_statuses', $resource['status_id']);
if(isset($modified['invoice_id']))
$modified['invoice_id'] = $this->transformId('invoices', $resource['invoice_id']);
if(isset($modified['project_id']))
$modified['project_id'] = $this->transformId('projects', $resource['project_id']);
if(isset($modified['status_id']))
$modified['status_id'] = $this->transformId('task_statuses', $resource['status_id']);
$task = Task::Create($modified); $task = Task::Create($modified);
@ -1085,7 +1093,9 @@ class Import implements ShouldQueue
$modified['company_id'] = $this->company->id; $modified['company_id'] = $this->company->id;
$modified['user_id'] = $this->transformId('users', $resource['user_id']); $modified['user_id'] = $this->transformId('users', $resource['user_id']);
$modified['client_id'] = $this->transformId('clients', $resource['client_id']);
if(isset($modified['client_id']))
$modified['client_id'] = $this->transformId('clients', $resource['client_id']);
$project = Project::Create($modified); $project = Project::Create($modified);

View File

@ -26,11 +26,14 @@ class VendorContactRepository extends BaseRepository
public function save($contacts, Vendor $vendor) : void public function save($contacts, Vendor $vendor) : void
{ {
/* Convert array to collection */ if (isset($data['contacts'])) {
$contacts = collect($contacts); $contacts = collect($data['contacts']);
} else {
$contacts = collect();
}
/* Get array of IDs which have been removed from the contacts array and soft delete each contact */ /* Get array of IDs which have been removed from the contacts array and soft delete each contact */
collect($vendor->contacts->pluck('id'))->diff($contacts->pluck('id'))->each(function ($contact) { $vendor->contacts->pluck('id')->diff($contacts->pluck('id'))->each(function ($contact) {
VendorContact::destroy($contact); VendorContact::destroy($contact);
}); });

View File

@ -1373,12 +1373,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 1, "id": 1,
@ -1425,12 +1419,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 2, "id": 2,
@ -1477,12 +1465,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 3, "id": 3,
@ -1529,12 +1511,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 4, "id": 4,
@ -1581,12 +1557,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 5, "id": 5,
@ -1633,12 +1603,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 6, "id": 6,
@ -1685,12 +1649,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 7, "id": 7,
@ -1737,12 +1695,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 8, "id": 8,
@ -1789,12 +1741,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 9, "id": 9,
@ -1841,12 +1787,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 10, "id": 10,
@ -1893,12 +1833,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 11, "id": 11,
@ -1945,12 +1879,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 12, "id": 12,
@ -1997,12 +1925,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 13, "id": 13,
@ -2049,12 +1971,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 14, "id": 14,
@ -2101,12 +2017,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 15, "id": 15,
@ -2153,12 +2063,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 16, "id": 16,
@ -2205,12 +2109,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 17, "id": 17,
@ -2257,12 +2155,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 18, "id": 18,
@ -2309,12 +2201,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 19, "id": 19,
@ -2361,12 +2247,6 @@
"custom_value3": "", "custom_value3": "",
"custom_value4": "", "custom_value4": "",
"transaction_name": "", "transaction_name": "",
"shipping_address1": null,
"shipping_address2": null,
"shipping_city": null,
"shipping_state": null,
"shipping_postal_code": null,
"shipping_country_id": null,
"contacts": [ "contacts": [
{ {
"id": 20, "id": 20,