/** * Try to find this person in the database. * If we cannot find them, create a new person record. * * @return Person */ public static function findPerson($post) { $search = array(); // Translates Open311 parameters into PersonList search parameters // open311 => personList $fields = array('first_name' => 'firstname', 'last_name' => 'lastname', 'email' => 'email', 'phone' => 'phoneNumber', 'device_id' => 'phoneDeviceId'); foreach ($fields as $open311Field => $crmField) { if (!empty($post[$open311Field])) { $search[$crmField] = $post[$open311Field]; } } // If the user provided any personal info, do a person search if (count($search)) { $table = new PersonTable(); $list = $table->find($search); // When we find one and only one record, use the record we found if (count($list) == 1) { $person = $list->current(); } else { $p = array(); foreach ($fields as $key => $field) { if (!empty($post[$key])) { $p[$field] = $post[$key]; } } if (count($p)) { $person = new Person(); try { $person->handleUpdate($p); $person->save(); if (!empty($post['email'])) { $email = new Email(); $email->setPerson($person); $email->setEmail($post['email']); $email->save(); } if (!empty($post['phone']) || !empty($post['device_id'])) { $phone = new Phone(); $phone->setPerson($person); if (!empty($post['phone'])) { $phone->setNumber($post['phone']); } if (!empty($post['device_id'])) { $phone->setDeviceId($post['device_id']); } $phone->save(); } } catch (\Exception $e) { unset($person); } } } } return isset($person) ? $person : null; }
/** * Sets the sender phone * @param String $areaCode * @param String $number */ public function setPhone($areaCode, $number = null) { $param = $areaCode; if ($param instanceof Phone) { $this->phone = $param; } elseif ($number) { $phone = new Phone(); $phone->setAreaCode($areaCode); $phone->setNumber($number); $this->phone = $phone; } }
public static function readTransaction($str_xml) { // Parser $parser = new xmlParser($str_xml); // <transaction> $data = $parser->getResult('transaction'); $transaction = new Transaction(); // <transaction> <lastEventDate> if (isset($data["lastEventDate"])) { $transaction->setLastEventDate($data["lastEventDate"]); } // <transaction> <date> if (isset($data["date"])) { $transaction->setDate($data["date"]); } // <transaction> <code> if (isset($data["code"])) { $transaction->setCode($data["code"]); } // <transaction> <reference> if (isset($data["reference"])) { $transaction->setReference($data["reference"]); } // <transaction> <type> if (isset($data["type"])) { $transaction->setType(new TransactionType($data["type"])); } // <transaction> <status> if (isset($data["status"])) { $transaction->setStatus(new TransactionStatus($data["status"])); } if (isset($data["paymentMethod"]) && is_array($data["paymentMethod"])) { // <transaction> <paymentMethod> $paymentMethod = new PaymentMethod(); // <transaction> <paymentMethod> <type> if (isset($data["paymentMethod"]['type'])) { $paymentMethod->setType(new PaymentMethodType($data["paymentMethod"]['type'])); } // <transaction> <paymentMethod> <code> if (isset($data["paymentMethod"]['code'])) { $paymentMethod->setCode(new PaymentMethodCode($data["paymentMethod"]['code'])); } $transaction->setPaymentMethod($paymentMethod); } // <transaction> <grossAmount> if (isset($data["grossAmount"])) { $transaction->setGrossAmount($data["grossAmount"]); } // <transaction> <discountAmount> if (isset($data["discountAmount"])) { $transaction->setDiscountAmount($data["discountAmount"]); } // <transaction> <feeAmount> if (isset($data["feeAmount"])) { $transaction->setFeeAmount($data["feeAmount"]); } // <transaction> <netAmount> if (isset($data["netAmount"])) { $transaction->setNetAmount($data["netAmount"]); } // <transaction> <extraAmount> if (isset($data["extraAmount"])) { $transaction->setExtraAmount($data["extraAmount"]); } // <transaction> <installmentCount> if (isset($data["installmentCount"])) { $transaction->setInstallmentCount($data["installmentCount"]); } if (isset($data["items"]['item']) && is_array($data["items"]['item'])) { $items = array(); $i = 0; if (isset($data["items"]['item'][0])) { foreach ($data["items"]['item'] as $key => $value) { $item = self::parseTransactionItem($value); $items[$i] = $item; $i++; } } else { $items[0] = self::parseTransactionItem($data["items"]['item']); } // <transaction> <items> $transaction->setItems($items); } if (isset($data["sender"])) { // <transaction> <sender> $sender = new Sender(); // <transaction> <sender> <name> if (isset($data["sender"]["name"])) { $sender->setName($data["sender"]["name"]); } // <transaction> <sender> <email> if (isset($data["sender"]["email"])) { $sender->setEmail($data["sender"]["email"]); } if (isset($data["sender"]["phone"])) { // <transaction> <sender> <phone> $phone = new Phone(); // <transaction> <sender> <phone> <areaCode> if (isset($data["sender"]["phone"]["areaCode"])) { $phone->setAreaCode($data["sender"]["phone"]["areaCode"]); } // <transaction> <sender> <phone> <number> if (isset($data["sender"]["phone"]["number"])) { $phone->setNumber($data["sender"]["phone"]["number"]); } $sender->setPhone($phone); } $transaction->setSender($sender); } if (isset($data["shipping"]) && is_array($data["shipping"])) { // <transaction> <shipping> $shipping = new Shipping(); // <transaction> <shipping> <type> if (isset($data["shipping"]["type"])) { $shipping->setType(new ShippingType($data["shipping"]["type"])); } // <transaction> <shipping> <cost> if (isset($data["shipping"]["cost"])) { $shipping->setCost($data["shipping"]["cost"]); } if (isset($data["shipping"]["address"]) && is_array($data["shipping"]["address"])) { // <transaction> <shipping> <address> $address = new Address(); // <transaction> <shipping> <address> <street> if (isset($data["shipping"]["address"]["street"])) { $address->setStreet($data["shipping"]["address"]["street"]); } // <transaction> <shipping> <address> <number> if (isset($data["shipping"]["address"]["number"])) { $address->setNumber($data["shipping"]["address"]["number"]); } // <transaction> <shipping> <address> <complement> if (isset($data["shipping"]["address"]["complement"])) { $address->setComplement($data["shipping"]["address"]["complement"]); } // <transaction> <shipping> <address> <city> if (isset($data["shipping"]["address"]["city"])) { $address->setCity($data["shipping"]["address"]["city"]); } // <transaction> <shipping> <address> <state> if (isset($data["shipping"]["address"]["state"])) { $address->setState($data["shipping"]["address"]["state"]); } // <transaction> <shipping> <address> <district> if (isset($data["shipping"]["address"]["district"])) { $address->setDistrict($data["shipping"]["address"]["district"]); } // <transaction> <shipping> <address> <postalCode> if (isset($data["shipping"]["address"]["postalCode"])) { $address->setPostalCode($data["shipping"]["address"]["postalCode"]); } // <transaction> <shipping> <address> <country> if (isset($data["shipping"]["address"]["country"])) { $address->setCountry($data["shipping"]["address"]["country"]); } $shipping->setAddress($address); } // <transaction> <shipping> $transaction->setShipping($shipping); } return $transaction; }
/** * Tests Phone->setNumber() */ public function testSetNumber() { $this->Phone->setNumber('NUMBER'); $this->assertEquals('NUMBER', $this->Phone->number); }