private function csvToContact()

in app/Console/Commands/ImportCSV.php [121:219]


    private function csvToContact($data, $account_id, $gender_id)
    {
        $contact = new Contact();
        $contact->account_id = $account_id;
        $contact->gender_id = $gender_id;

        if (! empty($data[1])) {
            $contact->first_name = $data[1];    // Given Name
        }

        if (! empty($data[2])) {
            $contact->middle_name = $data[2];   // Additional Name
        }

        if (! empty($data[3])) {
            $contact->last_name = $data[3];     // Family Name
        }

        $street = null;
        if (! empty($data[49])) {
            $street = $data[49];       // address 1 street
        }

        $city = null;
        if (! empty($data[50])) {
            $city = $data[50];         // address 1 city
        }

        $province = null;
        if (! empty($data[52])) {
            $province = $data[52];     // address 1 region (state)
        }

        $postalCode = null;
        if (! empty($data[53])) {
            $postalCode = $data[53];  // address 1 postal code (zip) 53
        }

        if (! empty($data[66])) {
            $contact->job = $data[66];          // organization 1 name 66
        }

        $contact->setAvatarColor();
        $contact->save();

        if (! empty($data[28])) {
            // Email 1 Value
            ContactField::firstOrCreate([
                'account_id' => $contact->account_id,
                'contact_id' => $contact->id,
                'data' => $data[28],
                'contact_field_type_id' => $this->contactFieldEmailId(),
            ]);
        }

        if ($postalCode || $province || $street || $city) {
            $request = [
                'account_id' => $contact->account_id,
                'contact_id' => $contact->id,
                'street' => $street,
                'city' => $city,
                'province' => $province,
                'postal_code' => $postalCode,
            ];

            app(CreateAddress::class)->execute($request);
        }

        if (! empty($data[42])) {
            // Phone 1 Value
            ContactField::firstOrCreate([
                'account_id' => $contact->account_id,
                'contact_id' => $contact->id,
                'data' => $data[42],
                'contact_field_type_id' => $this->contactFieldPhoneId(),
            ]);
        }

        if (! empty($data[14])) {
            $birthdate = DateHelper::parseDate($data[14]);

            $specialDate = $contact->setSpecialDate('birthdate', $birthdate->year, $birthdate->month, $birthdate->day);

            app(CreateReminder::class)->execute([
                'account_id' => $contact->account_id,
                'contact_id' => $contact->id,
                'initial_date' => DateHelper::getDate($specialDate),
                'frequency_type' => 'year',
                'frequency_number' => 1,
                'title' => trans(
                    'people.people_add_birthday_reminder',
                    ['name' => $contact->first_name]
                ),
                'delible' => false,
            ]);
        }

        GetAvatarsFromInternet::dispatch($contact);
    }