1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
public function addAddressBookAction(ParamFetcher $paramFetcher)
{
$dataResponse = array();
// Check token
$userToken = $paramFetcher->get('user_token');
$userId = $paramFetcher->get('user_id');
$repo = $this->globalManager()->compteTokenRepo;
$checkToken = $repo->checkToken($userToken, $userId);
if ($checkToken) {
$addressManager = $this->get('sm_rest.address.manager');
$type = (int) $paramFetcher->get('type');
$userId = (int) $paramFetcher->get('user_id');
$compteRepo = $this->globalManager()->compteRepo;
$user = $compteRepo->find($userId);
$addressData = array(
'name' => $paramFetcher->get('name'),
'firstName' => $paramFetcher->get('first_name'),
'buildingTypology' => $paramFetcher->get('building_typology'),
'noWay' => $paramFetcher->get('no_way'),
'firstLine' => $paramFetcher->get('address_line1'),
'secondLine' => $paramFetcher->get('address_line2'),
'postcode' => $paramFetcher->get('postal_code'),
'longitude' => $paramFetcher->get('longitude'),
'latitude' => $paramFetcher->get('latitude'),
'ville' => $paramFetcher->get('city'),
'mobilePhone' => $paramFetcher->get('mobile_phone'),
'phone' => $paramFetcher->get('phone'),
'email' => $paramFetcher->get('email'),
'compagny' => $paramFetcher->get('compagny'),
'siret' => $paramFetcher->get('siret'),
'etat' => Configs::DEFAULT_ADDRESS_STATUS,
'type' => Configs::ADDRESS_TYPE_BOTH,
'cetat' => Configs::CARNET_ADDRESS_ETAT_INVALIDATE_GOOGLE,
'ctype' => Configs::CARNET_ADDRESS_TYPE_BOTH,
'compte' => $user
);
switch ($type) {
case Configs::CARNET_ADDRESS_ACTION_YES:
// When user click yes
// Create address book as Locataire/propriétaire
$carnetAddress = $addressManager->createCarnetAddress($addressData);
if ($carnetAddress['status']) {
if (is_array($carnetAddress['data']) && count($carnetAddress['data'])) {
$addressBook = array_shift($carnetAddress['data']);
} else {
$addressBook = $carnetAddress['data'];
}
$carnetAddressId = $addressBook->getIdCarnetAdresse();
$addressManager->updateRelationIdForAddressBook($carnetAddressId, $carnetAddressId);
$idCarnetAdresse = $addressBook->getIdCarnetAdresse();
$dataResponse = array(
'address_book_id' => $idCarnetAdresse,
'intervention_address' => array(
'name' => $addressData['name'],
'first_name' => $addressData['firstName'],
'address' => $addressBook->getAdresseCompl(),
'postal_code' => $addressBook->getAdresseCodePostale(),
'city' => $addressBook->getAdresseVille(),
'no_way' => $addressBook->getAdresseNum(),
'address_line1' => $addressBook->getAdresseRue(),
'address_line2' => $addressBook->getAdresseRueCompl(),
'longitude' => $addressBook->getLongitude(),
'latitude' => $addressBook->getLatitude(),
'compagny' => $addressBook->getCompagny(),
'siret' => $addressBook->getSiret()
)
);
} else {
$message = (isset($carnetAddress['message']) && $carnetAddress['message']) ? $carnetAddress['message'] : $this->globalManager()->__(Messages::CREATE_ADDRESS_FAILED);
return $this->setErrorResponse($message);
}
break;
case Configs::CARNET_ADDRESS_ACTION_NO:
// When user click no
$interventionAddressInput = json_decode($paramFetcher->get('intervention_address'));
if (!empty($interventionAddressInput)) {
$interventionAddressData = array(
'name' => $interventionAddressInput->name,
'firstName' => $interventionAddressInput->first_name,
'buildingTypology' => $interventionAddressInput->building_typology,
'noWay' => '',
'firstLine' => $interventionAddressInput->address_line1,
'secondLine' => isset($interventionAddressInput->address_line2) ? $interventionAddressInput->address_line2 : '',
'longitude' => isset($interventionAddressInput->longitude) ? $interventionAddressInput->longitude : '',
'latitude' => isset($interventionAddressInput->latitude) ? $interventionAddressInput->latitude : '',
'postcode' => $interventionAddressInput->postal_code,
'ville' => $interventionAddressInput->city,
'compagny' => $interventionAddressInput->compagny,
'siret' => $interventionAddressInput->siret,
'mobilePhone' => $interventionAddressInput->mobile_phone,
'phone' => isset($interventionAddressInput->phone) ? $interventionAddressInput->phone : '',
'email' => $interventionAddressInput->email,
'cetat' => Configs::CARNET_ADDRESS_ETAT_INVALIDATE_GOOGLE,
'ctype' => Configs::CARNET_ADDRESS_TYPE_BOTH,
'compte' => $user
);
$fullAddress = (trim($addressData['noWay']) != '') ? trim($addressData['noWay']) . ' ' . trim($addressData['firstLine']) : trim($addressData['firstLine']);
$fullAddress = (trim($addressData['secondLine']) != '') ? $fullAddress . ' ' . trim($addressData['secondLine']) : $fullAddress;
$addressBookRepo = $this->globalManager()->carnetAddresseRepo;
$existedAddress = $addressBookRepo->findBy(array(
'adresseCompl' => $fullAddress,
'adresseCodePostale' => $addressData['postcode'],
'adresseVille' => $addressData['ville'],
'idCompte' => $user));
if (isset($existedAddress) && count($existedAddress)) {
$responseData = array(
'status' => false,
'message' => $this->globalManager()->__(Messages::EXIST_ADDRESS),
'data' => $existedAddress
);
return $responseData;
} |
Partager