/** * @param IQuerySpecification $specification * @return IQueryResult */ public function handle(IQuerySpecification $specification) { $params = $specification->getSpecificationParams(); $current_date = @$params['name_pattern']; $current_date = Convert::raw2sql($current_date); $sql = <<<SQL SELECT TrainingCourseSchedule.City, TrainingCourseSchedule.State, TrainingCourseSchedule.Country FROM TrainingCourse INNER JOIN CompanyService ON CompanyService.ID = TrainingCourse.TrainingServiceID AND CompanyService.ClassName='TrainingService' INNER JOIN TrainingCourseSchedule ON TrainingCourseSchedule.CourseID = TrainingCourse.ID LEFT JOIN TrainingCourseScheduleTime ON TrainingCourseScheduleTime.LocationID = TrainingCourseSchedule.ID WHERE CompanyService.Active = 1 AND ( ((DATE('{$current_date}') < TrainingCourseScheduleTime.StartDate AND DATE('{$current_date}') < TrainingCourseScheduleTime.EndDate) OR (TrainingCourse.Online=1 AND TrainingCourseScheduleTime.StartDate IS NULL AND TrainingCourseScheduleTime.EndDate IS NULL)) ) GROUP BY TrainingCourseSchedule.City, TrainingCourseSchedule.State, TrainingCourseSchedule.Country ORDER BY TrainingCourseSchedule.City, TrainingCourseSchedule.State, TrainingCourseSchedule.Country ASC; SQL; $results = DB::query($sql); $locations = array(); for ($i = 0; $i < $results->numRecords(); $i++) { $record = $results->nextRecord(); $city = $record['City']; $state = $record['State']; $country = Geoip::countryCode2name($record['Country']); if (!empty($state)) { $value = sprintf('%s, %s, %s', $city, $state, $country); } else { $value = sprintf('%s, %s', $city, $country); } array_push($locations, new SearchDTO($value, $value)); } return new OpenStackImplementationNamesQueryResult($locations); }
function __construct($name, $title, $value = '') { if (!$value) { $value = Geoip::visitor_country(); } parent::__construct($name, $title, Geoip::getCountryDropDown(), $value); }
function testSetDefaultCountry() { Geoip::set_default_country_code('DE'); Geoip::set_enabled(false); $this->assertEquals('DE', Geoip::visitor_country()); $this->assertEquals('DE', Geoip::get_default_country_code()); }
function __construct($controller, $name) { Requirements::javascript(ECOMMERCE_DIR . '/javascript/OrderFormWithShippingAddress.js'); parent::__construct($controller, $name); if (self::$fixed_country_code) { $defaultCountry = self::$fixed_country_code; } else { $defaultCountry = EcommerceRole::find_country(); } $countryField = new DropdownField('ShippingCountry', 'Country', Geoip::getCountryDropDown(), $defaultCountry, $this); $shippingFields = new Tab("ShippingDetails", new HeaderField('Delivery Address', 3, $this), new LiteralField('ShippingNote', '<p class="warningMessage"><em>Your goods will be sent to the address below.</em></p>'), new TextField('ShippingName', 'Name', null, 100, $this), new TextField('ShippingAddress', 'Address', null, 100, $this), new TextField('ShippingAddress2', '', null, 100, $this), new TextField('ShippingCity', 'City', null, 100, $this), $countryField); //$this->fields->push($shippingFields); $this->fields->addFieldToTab("", new CheckboxField("UseShippingAddress", "Use Alternative Delivery Address")); $this->fields->addFieldToTab("", $shippingFields); foreach ($this->fields->dataFields() as $i => $child) { if (is_object($child)) { $name = $child->Name(); switch ($name) { case "Address": $child->setTitle('Address'); break; default: break; } } } }
function Field() { $source = $this->getSource(); if ($this->defaultToVisitorCountry && !$this->value || !isset($source[$this->value])) { $this->value = ($vc = Geoip::visitor_country()) ? $vc : Geoip::$default_country_code; } return parent::Field(); }
/** * Returns the country code, for the current visitor */ static function visitor_country() { if (ereg('^dev(\\.|$)', $_SERVER['HTTP_HOST']) && isset($_GET['country'])) { return $_GET['country']; } else { return Geoip::ip2country($_SERVER['REMOTE_ADDR'], true); } }
public function getCountryName() { $country = ''; if ($this->Country) { $country = Geoip::countryCode2name($this->Country); } return $country; }
/** * * @return String (Country Code - e.g. NZ, AU, or AF) */ public function getCountry() { if (class_exists("Geoip")) { return Geoip::visitor_country(); } else { return Config::inst()->get("EcommerceCountry", "default_country_code"); } }
public function getTableTitle() { if ($this->Country) { $countryList = Geoip::getCountryDropDown(); return _t("SimpleShippingModifier.SHIPPINGTO", "Shipping to") . " " . $countryList[$this->Country]; } else { return _t("SimpleShippingModifier.SHIPPING", "Shipping"); } }
/** * @TODO Add i18n entities to the text. * @return string */ function TableTitle() { if ($this->Country()) { $countryList = Geoip::getCountryDropDown(); return "Shipping to {$countryList[$this->Country()]}"; } else { return 'Shipping'; } }
public function getCMSFields_forPopup() { $sponsors_manager = new DataObjectManager($this, 'CleanUpSponsors', 'CleanUpSponsor', array('Name' => 'Name', 'Weblink' => 'Weblink', 'getDOMThumbnail' => 'Logo Image')); $sponsors_manager->addPermission("duplicate"); $sponsors_manager->setConfirmDelete(true); $source = DataObject::get('Member'); $members_manager = new MultiSelectField("Members", "CleanUpGroup", $source->map('ID', 'Title')); $oCountryField = new DropdownField('Country', 'Country', Geoip::getCountryDropDown(), 'NZ'); return new FieldSet(new CheckboxField('TopEvent', 'Top Event'), new TextField('Title', 'Title'), new TextField('Subtitle', 'Subtitle'), new TextField('Organisation', 'Organistaion'), new DatePickerField('Date', 'OLD - Event Date'), new DatePickerField('FromDate', 'From'), new DatePickerField('ToDate', 'To'), new TextField('FromTime', 'From time'), new TextField('ToTime', 'To time'), $oCountryField, new TextField('Region', 'Event Region'), new TextField('LocationAddress', 'Location Address'), new GoogleMapSelectableMapField('Location', "Location of the Event", "{$this->LocationLatitude}", "{$this->LocationLongitude}", "575px", "250px", "6"), new TextField('LocationLongitude', 'Longitude (don\'t edit, for reference only)'), new TextField('LocationLatitude', 'Latitude (don\'t edit, for reference only)'), new CheckboxField('LocationShowDetails', 'Show Location Details'), new TextField('LocationDetails', 'Location Meeting Point Details'), new TextField('FacebookLink', 'FacebookLink'), new SimpleHTMLEditorField('Description', 'Description', array('css' => 'mysite/css/my_simple_stylesheet.css', 'insertUnorderedList' => true, 'copy' => true, 'justifyCenter' => false), 30), new CheckboxField('Private', 'Private Event'), new CheckboxField('Agree', 'Agreed to T&C'), new TextField('JoinedCount', 'Number of participants'), new ImageUploadField('EventImage', 'Main Event Image, Only shown for Top Events'), $sponsors_manager, $members_manager); }
function run($request) { $count = 0; $array = Geoip::getCountryDropDown(); foreach ($array as $key => $value) { if (!DataObject::get_one("EcommerceCountry", "\"Code\" = '" . Convert::raw2sql($key) . "'")) { $obj = new EcommerceCountry(); $obj->Code = $key; $obj->Name = $value; $obj->write(); DB::alteration_message("adding {$value} to Ecommerce Country", "created"); $count++; } } DB::alteration_message("{$count} countries created"); }
/** * @param IQuerySpecification $specification * @return IQueryResult */ public function handle(IQuerySpecification $specification) { $params = $specification->getSpecificationParams(); $filter = ''; if (!empty($term)) { $term = @$params['name_pattern']; $term = Convert::raw2sql($term); $countries = Geoip::getCountryDropDown(); $matched_countries = array_filter($countries, function ($el) use($term) { return strpos(strtolower($el), strtolower($term)) !== false; }); $country_filter = ''; if (count($matched_countries)) { foreach ($matched_countries as $code => $name) { $country_filter .= " OR Country = '{$code}' "; } } else { $country_filter = " OR Country LIKE '%{$term}%' "; } $filter = "AND City LIKE '%{$term}%' {$country_filter}"; } $locations = array(); $class_name = $this->getClassName(); $sql = <<<SQL SELECT City,Country,State FROM DataCenterLocation INNER JOIN CompanyService ON CompanyService.ID = DataCenterLocation.CloudServiceID \t\tWHERE CompanyService.ClassName = '{$class_name}' \t\t{$filter} \t\tGROUP BY City,Country,State \t\tORDER BY City,State, Country ASC SQL; $results = DB::query($sql); for ($i = 0; $i < $results->numRecords(); $i++) { $record = $results->nextRecord(); $city = $record['City']; $state = $record['State']; $country = Geoip::countryCode2name($record['Country']); if (!empty($state)) { $value = sprintf('%s, %s, %s', $city, $state, $country); } else { $value = sprintf('%s, %s', $city, $country); } array_push($locations, new SearchDTO($value, $value)); } return new OpenStackImplementationNamesQueryResult($locations); }
/** * Constructor * * @param object $controller The controller class * @param string $name The name of the form class * @return object The form */ function __construct($controller, $name) { //FILTER BLOCK 1 : WHERE ARE YOU // Create new group $oFilterField1 = new CompositeField(); // Set the field group ID $oFilterField1->setID('Group1'); // Add fields to the group $oFilterField1->push(new LiteralField('Group1Title', '<div class="filter-title-block">Where are you?</div>')); $oFilterField1->push(new DropdownField('Country', '', Geoip::getCountryDropDown(), 'NZ')); //FILTER BLOCK 2: UPLOAD IMAGE // Create new group $oFilterField2 = new CompositeField(); // Set the field group ID $oFilterField2->setID('Group2'); // Add fields to the group $oFilterField2->push(new LiteralField('Group2Title', '<div class="filter-title-block">When can you help?</div>')); //Set Date Defaults $tToday = mktime(0, 0, 0, date("m"), date("d"), date("Y")); $dToday = date("d/m/Y", $tToday); $tNextMonth = mktime(0, 0, 0, date("m") + 2, date("d"), date("Y")); $dNextMonth = date("d/m/Y", $tNextMonth); //Check if Dates are Set otherwise use Defaults $sFromDate = $this->sFromDate != '' ? $this->sFromDate : $dToday; $sToDate = $this->sToDate != '' ? $this->sToDate : $dNextMonth; //Date Fields $oFromDate = new DatePickerField('FromDate', 'From', $sFromDate); $oToDate = new DatePickerField('ToDate', 'To', $sToDate); $oFilterField2->push($oFromDate); $oFilterField2->push($oToDate); DatePickerField::$showclear = false; // Create new fieldset $oFields = new FieldSet(); // Add the groups to the fieldset $oFields->push($oFilterField1); $oFields->push($oFilterField2); // Create the form action $oAction = new FieldSet(new FormAction('SubmitFilter', 'Find events')); // Add custom jQuery validation script for requred fields Requirements::customScript(' '); // Construct the form parent::__construct($controller, $name, $oFields, $oAction); }
/** * Add some fields for managing Members in the CMS. * * @return FieldSet */ public function getCMSFields() { $fields = parent::getCMSFields(); $fields->addFieldToTab('Root.Address', new TextField('Address', _t('Customer.ADDRESS', "Address"))); $fields->addFieldToTab('Root.Address', new TextField('AddressLine2', '')); $fields->addFieldToTab('Root.Address', new TextField('City', _t('Customer.CITY', "City"))); $fields->addFieldToTab('Root.Address', new TextField('State', _t('Customer.STATE', "State"))); $fields->addFieldToTab('Root.Address', new TextField('PostalCode', _t('Customer.POSTAL_CODE', "Postal Code"))); $fields->addFieldToTab('Root.Address', new DropdownField('Country', _t('Customer.COUNTRY', "Country"), Geoip::getCountryDropDown())); $fields->removeByName('Street'); $fields->removeByName('Suburb'); $fields->removeByName('CityTown'); $fields->removeByName('DateFormat'); $fields->removeByName('TimeFormat'); $fields->removeByName('Notes'); $fields->removeByName('Orders'); $fields->removeByName('Addresses'); $fields->removeByName('Groups'); $fields->removeByName('Permissions'); return $fields; }
/** * Calculates the extra charges from the order based on the weight attribute of a product * ASSUMPTION -> weight in grams */ function LiveAmount() { $order = $this->Order(); $orderItems = $order->Items(); // Calculate the total weight of the order if ($orderItems) { foreach ($orderItems as $orderItem) { $totalWeight += $orderItem->Weight * $orderItem->quantity; } } // Check if UseShippingAddress is true and if ShippingCountry exists and use that if it does if ($order->UseShippingAddress && $order->ShippingCountry) { $shippingCountry = $order->ShippingCountry; } // if there is a shipping country then check whether it is national or international if ($shippingCountry) { if ($shippingCountry == 'NZ') { return $this->nationalCost($totalWeight); } else { return $this->internationalCost($totalWeight, $shippingCountry); } } else { if ($order->MemberID && ($member = DataObject::get_by_id('Member', $order->MemberID))) { if ($member->Country) { $country = $member->Country; } else { $country = Geoip::visitor_country(); } } if (!$country) { $country = 'NZ'; } if ($country == 'NZ') { return $this->nationalCost($totalWeight); } else { return $this->internationalCost($totalWeight, $country); } } }
public function getDataCenterLocationsJson() { $locations = array(); $query = new QueryObject(); $query->addAndCondition(QueryCriteria::equal("Active", true)); list($list, $size) = $this->public_cloud_repository->getAll($query, 0, 1000); foreach ($list as $public_cloud) { foreach ($public_cloud->getDataCentersLocations() as $location) { $json_data = array(); $json_data['color'] = $location->getDataCenterRegion()->getColor(); $json_data['country'] = Geoip::countryCode2name($location->getCountry()); $json_data['city'] = $location->getCity(); $json_data['lat'] = $location->getLat(); $json_data['lng'] = $location->getLng(); $json_data['product_name'] = $public_cloud->getName(); $json_data['product_url'] = $this->buildCloudLink($public_cloud->getCompany()->URLSegment . '/' . strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $public_cloud->getName())))); $json_data['owner'] = $public_cloud->getCompany()->getName(); array_push($locations, $json_data); } } return json_encode($locations); }
public static function getDataCenterLocationsJson(ICloudService $cloud) { $locations = array(); foreach ($cloud->getDataCentersLocations() as $location) { $json_data = array(); $json_data['country'] = Geoip::countryCode2name($location->getCountry()); $json_data['city'] = $location->getCity(); $json_data['lat'] = $location->getLat(); $json_data['lng'] = $location->getLng(); $json_data['color'] = $location->getDataCenterRegion()->getColor(); $json_data['endpoint'] = $location->getDataCenterRegion()->getEndpoint(); $json_data['zone'] = $location->getDataCenterRegion()->getName(); $json_data['availability_zones'] = array(); $json_data['product_name'] = $cloud->getName(); $json_data['owner'] = $cloud->getCompany()->getName(); foreach ($location->getAvailabilityZones() as $az) { $json_data_az = array(); $json_data_az['name'] = $az->getName(); array_push($json_data['availability_zones'], $json_data_az); } array_push($locations, $json_data); } return json_encode($locations); }
public function getCountryFriendlyName() { return Geoip::countryCode2name($this->getCountry()); }
/** * Give the two letter code to resolve the title of the country. * * @param string $code Country code * @return string|boolean String if country found, boolean FALSE if nothing found */ static function findCountryTitle($code) { $countries = Geoip::getCountryDropDown(); // check if code was provided, and is found in the country array if ($code && $countries[$code]) { return $countries[$code]; } else { return false; } }
/** * Give the two letter code to resolve the title of the country. * * @param string $code Country code * @return string|boolean String if country found, boolean FALSE if nothing found */ function getEcommerceFields() { $fields = new FieldSet(new HeaderField(_t('EcommerceRole.PERSONALINFORMATION', 'Personal Information'), 3), new TextField('FirstName', _t('EcommerceRole.FIRSTNAME', 'First Name')), new TextField('Surname', _t('EcommerceRole.SURNAME', 'Surname')), new TextField('HomePhone', _t('EcommerceRole.HOMEPHONE', 'Phone')), new TextField('MobilePhone', _t('EcommerceRole.MOBILEPHONE', 'Mobile')), new EmailField('Email', _t('EcommerceRole.EMAIL', 'Email')), new TextField('Address', _t('EcommerceRole.ADDRESS', 'Address')), new TextField('AddressLine2', _t('EcommerceRole.ADDRESSLINE2', ' ')), new TextField('City', _t('EcommerceRole.CITY', 'City')), new TextField('PostalCode', _t('EcommerceRole.POSTALCODE', 'Postal Code')), new DropdownField('Country', _t('EcommerceRole.COUNTRY', 'Country'), Geoip::getCountryDropDown(), self::find_country())); $this->owner->extend('augmentEcommerceFields', $fields); return $fields; }
public function moveCreditCardsFromJoomlaToSS() { die('test2'); error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('max_execution_time', 0); ini_set('memory_limit', '-1'); $countries = Geoip::getCountryDropDown(); $mysqli = $this->getDbConnection(); $result = $mysqli->query("SELECT *, u.id uid FROM jos_users u\n\t\tINNER JOIN jos_aw_creditcard c ON u.id = c.creditcard_userid\n\t\tLEFT JOIN jos_aw_iscontacts ic ON c.creditcard_userid = ic.member_id\n\t\tLEFT JOIN jos_osemsc_billinginfo bi ON c.creditcard_userid = bi.user_id"); $totalRec = 0; while ($obj = $result->fetch_object()) { $ssMember = $this->getSSMember($obj->email); if (!$ssMember) { continue; } $creditCard = new CreditCard(); $creditCard->Created = $obj->creditcard_date; $creditCard->LastEdited = $obj->creditcard_date; $creditCard->CreditCardType = strtolower($obj->creditcard_type); $creditCard->NameOnCard = $obj->creditcard_name; $creditCard->CreditCardNumber = $obj->creditcard_number; $creditCard->CreditCardCVV = $obj->creditcard_cvv; $creditCard->ExpiryMonth = $obj->creditcard_month; $creditCard->ExpiryYear = $obj->creditcard_year; $creditCard->Company = $obj->company; $creditCard->StreetAddress1 = $obj->street1; $creditCard->StreetAddress2 = $obj->street2; $creditCard->City = $obj->city; $creditCard->State = $obj->state_id; $creditCard->PostalCode = $obj->postcode; $countryCode = array_search($obj->country_id, $countries); $creditCard->Country = $countryCode; if ($this->joomlaCurrentCreditCard($obj->creditcard_number, $obj->uid)) { $creditCard->Current = 1; } if ($this->joomlaTrialCreditCard($obj->creditcard_number)) { $creditCard->UsedForTrial = 1; } if ($obj->is_contact_id && ($ccID = $this->joomlaGetISCreditCardId($obj->creditcard_number, $obj->is_contact_id))) { $creditCard->ISCCID = $ccID; } $creditCard->MemberID = $ssMember->ID; $creditCard->write(); $totalRec++; } $mysqli->close(); echo "Total Cards moved: {$totalRec}"; }
public function search() { $output = ''; if (!$this->isJson()) { return $this->httpError(500, 'Content Type not allowed'); } try { $search_params = json_decode($this->request->getBody(), true); $query = new QueryObject(new Consultant()); $query->addAlias(QueryAlias::create('Company')); $query->addAndCondition(QueryCriteria::equal("Active", true)); $location = @explode(',', @$search_params['location_term']); $name = @$search_params['name_term']; $service = @$search_params['service_term']; if (!empty($name)) { $query->addAndCondition(QueryCompoundCriteria::compoundOr(array(QueryCriteria::like('CompanyService.Name', $name), QueryCriteria::like('CompanyService.Overview', $name), QueryCriteria::like('Company.Name', $name)))); } if (!empty($service)) { $query->addAlias(QueryAlias::create('ConsultantServiceOfferedType')); $query->addAndCondition(QueryCriteria::like("ConsultantServiceOfferedType.Type", $service)); } if (is_array($location) && !empty($location[0])) { $query->addAlias(QueryAlias::create('Office')); $query->addAndCondition(QueryCriteria::like("Office.City", $location[0])); } $countries = array_flip(Geoip::getCountryDropDown()); if (is_array($location) && count($location) == 2) { $country = trim($location[1]); if (!empty($country) && array_key_exists($country, $countries)) { $query->addAndCondition(QueryCriteria::like("Office.Country", $countries[$country])); } } else { if (is_array($location) && count($location) == 3) { $state = trim($location[1]); $country = trim($location[2]); if (!empty($country) && array_key_exists($country, $countries)) { $query->addAndCondition(QueryCriteria::like("Office.Country", $countries[$country])); } if (!empty($state)) { $query->addAndCondition(QueryCriteria::like("Office.State", $state)); } } } list($list, $size) = $this->consultants_repository->getAll($query, 0, 1000); foreach ($list as $public_cloud) { $output .= $public_cloud->renderWith('ConsultantsDirectoryPage_CloudBox', array('ConsultantLink' => $this->Link())); } } catch (Exception $ex) { return $this->httpError(500, 'Server Error'); } return empty($output) ? $this->httpError(404, '') : $output; }
/** * Attempt to find out the country from a user who * is not logged into the website using GeoIP. * * @return string */ public function findCountry() { return Geoip::visitor_country(); }
/** * @return Array * e.g. * "NZ" => "New Zealand" * @return Array */ public static function get_country_dropdown($showAllCountries = true) { if (class_exists("Geoip") && $showAllCountries) { return Geoip::getCountryDropDown(); } if ($showAllCountries) { $objects = EcommerceCountry::get(); } else { $objects = EcommerceCountry::get()->filter(array("DoNotAllowSales" => 0)); } if ($objects && $objects->count()) { return $objects->map("Code", "Name")->toArray(); } return array(); }
public function UpdateBillingAddress($data, $form) { $member = Member::currentUser(); $isConID = $member->ISContactID; //Get InfusionSoft Api $creditCardType = Controller::curr()->getISCreditCardType($data['CreditCardType']); $app = Controller::curr()->getInfusionSoftApi(); if (!isset($data['CreditCardNumber']) || $data['CreditCardNumber'] != $data['CreditCardNumberCopy'] && !is_numeric($data['CreditCardNumber'])) { Controller::curr()->setMessage('Error', 'The credit card is invalid!'); return Controller::curr()->redirect(Controller::curr()->Link('#tabs-2')); } if ($data['CreditCardNumber'] == $data['CreditCardNumberCopy']) { $cardNumber = $data['CreditCardNumberCur']; } else { $cardNumber = $data['CreditCardNumber']; } // Validate credit card $card = array('CardType' => $creditCardType, 'ContactId' => $isConID, 'CardNumber' => $cardNumber, 'ExpirationMonth' => sprintf("%02s", $data['ExpiryMonth']), 'ExpirationYear' => $data['ExpiryYear'], 'CVV2' => $data['CreditCardCVV']); $result = $app->validateCard($card); if ($result['Valid'] != 'true') { Controller::curr()->setMessage('Error', 'The credit card is invalid!'); return Controller::curr()->redirect(Controller::curr()->Link('#tabs-2')); } // Get country text from code $country = Geoip::countryCode2name($data['Country']); if ($data['CreditCardNumber'] == $data['CreditCardNumberCopy']) { //Get the credit card $creditCard = CreditCard::get()->filter(array('CreditCardNumber' => $data['CreditCardNumberCur'], 'MemberID' => $member->ID))->First(); //Update the credit card on InfusionSoft $ccData = array('FirstName' => $data['FirstName'], 'LastName' => $data['LastName'], 'BillAddress1' => $data['StreetAddress1'], 'BillAddress2' => $data['StreetAddress2'], 'BillCity' => $data['City'], 'BillState' => $data['State'], 'BillZip' => $data['PostalCode'], 'BillCountry' => $country, 'CardType' => $creditCardType, 'NameOnCard' => $data['NameOnCard'], 'CVV2' => $data['CreditCardCVV'], 'ExpirationMonth' => sprintf("%02s", $data['ExpiryMonth']), 'ExpirationYear' => $data['ExpiryYear']); $app->dsUpdate("CreditCard", $creditCard->ISCCID, $ccData); //Update the credit card on site $creditCard->CreditCardType = $data['CreditCardType']; $creditCard->NameOnCard = $data['NameOnCard']; $creditCard->CreditCardCVV = $data['CreditCardCVV']; $creditCard->ExpiryMonth = $data['ExpiryMonth']; $creditCard->ExpiryYear = $data['ExpiryYear']; $creditCard->Company = $data['Company']; $creditCard->StreetAddress1 = $data['StreetAddress1']; $creditCard->StreetAddress2 = $data['StreetAddress2']; $creditCard->City = $data['City']; $creditCard->State = $data['State']; $creditCard->PostalCode = $data['PostalCode']; $creditCard->Country = $data['Country']; $creditCard->Current = 1; $creditCard->write(); } else { //Find if the credit card exist $creditCard = CreditCard::get()->filter(array('CreditCardNumber' => $data['CreditCardNumber'], 'MemberID' => $member->ID))->First(); if ($creditCard) { //Get current credit card, un-mark it as current Controller::curr()->unsetCurrentCreditCard($member->ID); $ccID = $creditCard->ISCCID; //Update the credit card on InfusionSoft $ccData = array('FirstName' => $data['FirstName'], 'LastName' => $data['LastName'], 'BillAddress1' => $data['StreetAddress1'], 'BillAddress2' => $data['StreetAddress2'], 'BillCity' => $data['City'], 'BillState' => $data['State'], 'BillZip' => $data['PostalCode'], 'BillCountry' => $country, 'CardType' => $creditCardType, 'NameOnCard' => $data['NameOnCard'], 'CVV2' => $data['CreditCardCVV'], 'ExpirationMonth' => sprintf("%02s", $data['ExpiryMonth']), 'ExpirationYear' => $data['ExpiryYear']); $app->dsUpdate("CreditCard", $ccID, $ccData); //Update the credit card on site $creditCard->CreditCardType = $data['CreditCardType']; $creditCard->NameOnCard = $data['NameOnCard']; $creditCard->CreditCardCVV = $data['CreditCardCVV']; $creditCard->ExpiryMonth = $data['ExpiryMonth']; $creditCard->ExpiryYear = $data['ExpiryYear']; $creditCard->Company = $data['Company']; $creditCard->StreetAddress1 = $data['StreetAddress1']; $creditCard->StreetAddress2 = $data['StreetAddress2']; $creditCard->City = $data['City']; $creditCard->State = $data['State']; $creditCard->PostalCode = $data['PostalCode']; $creditCard->Country = $data['Country']; $creditCard->Current = 1; $creditCard->write(); } else { // Add the credit card on InfusionSoft $ccData = array('ContactId' => $isConID, 'FirstName' => $data['FirstName'], 'LastName' => $data['LastName'], 'BillAddress1' => $data['StreetAddress1'], 'BillAddress2' => $data['StreetAddress2'], 'BillCity' => $data['City'], 'BillState' => $data['State'], 'BillZip' => $data['PostalCode'], 'BillCountry' => $country, 'CardType' => $creditCardType, 'NameOnCard' => $data['NameOnCard'], 'CardNumber' => $data['CreditCardNumber'], 'CVV2' => $data['CreditCardCVV'], 'ExpirationMonth' => sprintf("%02s", $data['ExpiryMonth']), 'ExpirationYear' => $data['ExpiryYear']); $ccID = $app->dsAdd("CreditCard", $ccData); //Get current credit card un-mark it as current Controller::curr()->unsetCurrentCreditCard($member->ID); // Store Credit card on site and mark it as current $newCreditCard = new CreditCard(); $newCreditCard->CreditCardType = $data['CreditCardType']; $newCreditCard->CreditCardNumber = $data['CreditCardNumber']; $newCreditCard->NameOnCard = $data['NameOnCard']; $newCreditCard->CreditCardCVV = $data['CreditCardCVV']; $newCreditCard->ExpiryMonth = $data['ExpiryMonth']; $newCreditCard->ExpiryYear = $data['ExpiryYear']; $newCreditCard->Company = $data['Company']; $newCreditCard->StreetAddress1 = $data['StreetAddress1']; $newCreditCard->StreetAddress2 = $data['StreetAddress2']; $newCreditCard->City = $data['City']; $newCreditCard->State = $data['State']; $newCreditCard->PostalCode = $data['PostalCode']; $newCreditCard->Country = $data['Country']; $newCreditCard->Current = 1; $newCreditCard->ISCCID = $ccID; $newCreditCard->MemberID = $member->ID; $newCreditCard->write(); } //Update the user active Infusionsoft subscription Credit Card $subscription = Subscription::get()->filter(array('MemberID' => $member->ID, 'Status' => 1))->first(); if ($subscription) { $subData = array('CC1' => $ccID); $app->dsUpdate("RecurringOrder", $subscription->SubscriptionID, $subData); } } //Update Member $member->FirstName = $data['FirstName']; $member->Surname = $data['LastName']; $member->write(); // Update billing address on InfusionSoft $conDat = array('FirstName' => $data['FirstName'], 'LastName' => $data['LastName'], 'Company' => $data['Company'], 'StreetAddress1' => $data['StreetAddress1'], 'StreetAddress2' => $data['StreetAddress2'], 'City' => $data['City'], 'State' => $data['State'], 'PostalCode' => $data['PostalCode'], 'Country' => $country); $conID = $app->updateCon($isConID, $conDat); Controller::curr()->setMessage('Success', 'Credit Card and Billing Address successfully updated.'); return Controller::curr()->redirect(Controller::curr()->Link('#tabs-2')); }
function EwayURL() { // 1) Main Informations $order = $this->Order(); //$items = $order->Items(); $member = $order->Member(); // 2) Main Settings if ($this->config()->get('test_mode') == 'yes') { $inputs['CustomerID'] = $this->config()->get('test_customer_id'); $inputs['UserName'] = $this->config()->get('test_customer_username'); } else { $inputs['CustomerID'] = $this->config()->get('customer_id'); $inputs['UserName'] = $this->config()->get('customer_username'); } if ($this->config()->get('test_mode') == 'yes' && isset($_REQUEST["PaymentTypeTest"])) { $amount = round($this->Amount->getAmount()) + intval($_REQUEST["PaymentTypeTest"]) / 100; } else { $amount = $this->Amount->getAmount(); } $inputs['Amount'] = number_format($amount, 2, '.', ''); //$decimals = 2, $decPoint = '.' , $thousands_sep = '' $inputs['Currency'] = $this->Amount->getCurrency(); $inputs['ReturnURL'] = $inputs['CancelURL'] = Director::absoluteBaseURL() . EwayPayment_Handler::complete_link($this); $inputs['CompanyName'] = $this->config()->get('company_name'); $inputs['MerchantReference'] = $inputs['MerchantInvoice'] = $order->ID; //$inputs['InvoiceDescription'] = $inputs['PageTitle'] = $this->config()->get('page_title'); $inputs['PageDescription'] = 'Please fill the details below to complete your order.'; if ($logo = $this->config()->get('company_logo')) { $inputs['CompanyLogo'] = Director::absoluteBaseURL() . $logo; } // 7) Prepopulating Customer Informations $address = $this->Order()->BillingAddress(); $inputs['CustomerFirstName'] = $address->FirstName; $inputs['CustomerLastName'] = $address->Surname; $inputs['CustomerAddress'] = "{$address->Address} {$address->Address2}"; $inputs['CustomerPostCode'] = $address->PostalCode; $inputs['CustomerCity'] = $address->City; $inputs['CustomerCountry'] = class_exists("Geoip") ? Geoip::countryCode2name($address->Country) : $address->Country; $inputs['CustomerPhone'] = $address->Phone; $inputs['CustomerEmail'] = $address->Email; $inputs['CustomerState'] = $address->RegionCode; if ($this->config()->get('test_mode') == 'yes') { $inputs['CompanyName'] = "TEST FOR " . $inputs['CompanyName']; debug::log(print_r($inputs, 1)); debug::log($this->config()->get('url')); } return $this->config()->get('url') . '?' . http_build_query($inputs); }
/** * @fn last_n_visits * @short Action method that shows the last <em>N</em> hosts that have visited the website. */ public function last_n_visits($n) { $conn = Db::get_connection(); $conn->prepare("SELECT `ip_addr`, `params`, COUNT(*) AS `weight` " . "FROM `visits` " . "GROUP BY CONCAT(`ip_addr`, `user_agent`) " . "ORDER BY `date` DESC " . "LIMIT {1}", $n * 3); $conn->exec(); $this->hosts = array(); if ($conn->num_rows() > 0) { $i = 0; while ($line = $conn->fetch_assoc()) { $host = Geoip::by_ip_addr($line['ip_addr'], $line['params']); $host->weight = $line['weight']; if (!(empty($host->latitude) && empty($host->longitude))) { $this->hosts[] = $host; $i++; } if ($i >= $n) { break; } } } Db::close_connection($conn); $this->render(array('action' => 'hits_by_host')); }
/** * Run the Country code through a converter to get the proper Country Name */ function FullCountry() { return isset($this->owner->Country) && !is_null($this->owner->Country) ? Geoip::countryCode2name($this->owner->Country) : ""; }
function doPrepaidSignup() { $data = $_POST; //Check for existing member email address if ($member = DataObject::get_one("Member", "`Email` = '" . Convert::raw2sql($data['Email']) . "'")) { return "inlineMsg1"; } $currentYear = date('Y'); $currentMonth = date('n'); //Stop sign-up when the credit card is expired if ($data['ExpirationYear'] < $currentYear) { return "inlineMsg6"; } if ($data['ExpirationYear'] == $currentYear) { if ($data['ExpirationMonth'] < $currentMonth) { return "inlineMsg6"; } } //Get InfusionSoft Api $app = $this->getInfusionSoftApi(); // Get country text from code $country = Geoip::countryCode2name($data['Country']); // Create IndusionSoft contact $returnFields = array('Id'); $conInfo = $app->findByEmail($data['Email'], $returnFields); if (count($conInfo)) { $isConID = $conInfo[0]['Id']; } else { $conDat = array('FirstName' => $data['FirstName'], 'LastName' => $data['LastName'], 'Company' => $data['Company'], 'StreetAddress1' => $data['StreetAddress1'], 'StreetAddress2' => $data['StreetAddress2'], 'City' => $data['City'], 'State' => $data['State'], 'PostalCode' => $data['PostalCode'], 'Country' => $country, 'Email' => $data['Email']); $isConID = $app->addCon($conDat); } // Locate existing credit card $ccID = $app->locateCard($isConID, substr($data['CreditCardNumber'], -4, 4)); $creditCardType = $this->getISCreditCardType($data['CreditCardType']); if (!$ccID) { //Validate the credit card $card = array('CardType' => $creditCardType, 'ContactId' => $isConID, 'CardNumber' => $data['CreditCardNumber'], 'ExpirationMonth' => sprintf("%02s", $data['ExpirationMonth']), 'ExpirationYear' => $data['ExpirationYear'], 'CVV2' => $data['CVVCode']); $result = $app->validateCard($card); if ($result['Valid'] == 'false') { return "inlineMsg5"; } $ccData = array('ContactId' => $isConID, 'FirstName' => $data['FirstName'], 'LastName' => $data['LastName'], 'BillAddress1' => $data['StreetAddress1'], 'BillAddress2' => $data['StreetAddress2'], 'BillCity' => $data['City'], 'BillState' => $data['State'], 'BillZip' => $data['PostalCode'], 'BillCountry' => $country, 'CardType' => $creditCardType, 'NameOnCard' => $data['NameOnCard'], 'CardNumber' => $data['CreditCardNumber'], 'CVV2' => $data['CVVCode'], 'ExpirationMonth' => sprintf("%02s", $data['ExpirationMonth']), 'ExpirationYear' => $data['ExpirationYear']); $ccID = $app->dsAdd("CreditCard", $ccData); } // Create AttentionWizard member $member = new Member(); $member->FirstName = $data['FirstName']; $member->Surname = $data['LastName']; $member->Email = $data['Email']; $member->Password = $data['Password']['_Password']; $member->ISContactID = $isConID; $memberID = $member->write(); //Find or create the 'user' group if (!($userGroup = DataObject::get_one('Group', "Code = 'customers'"))) { $userGroup = new Group(); $userGroup->Code = "customers"; $userGroup->Title = "Customers"; $userGroup->Write(); } //Add member to user group $userGroup->Members()->add($member); //Get the current date $curdate = $app->infuDate(date('j-n-Y')); $product = Product::get()->byID(7); // Store credit card info $creditCard = new CreditCard(); $creditCard->CreditCardType = $data['CreditCardType']; $creditCard->CreditCardNumber = $data['CreditCardNumber']; $creditCard->NameOnCard = $data['NameOnCard']; $creditCard->CreditCardCVV = $data['CVVCode']; $creditCard->ExpiryMonth = $data['ExpirationMonth']; $creditCard->ExpiryYear = $data['ExpirationYear']; $creditCard->Company = $data['Company']; $creditCard->StreetAddress1 = $data['StreetAddress1']; $creditCard->StreetAddress2 = $data['StreetAddress2']; $creditCard->City = $data['City']; $creditCard->State = $data['State']; $creditCard->PostalCode = $data['PostalCode']; $creditCard->Country = $data['Country']; $creditCard->Current = 1; $creditCard->ISCCID = $ccID; $creditCard->MemberID = $memberID; $creditCardID = $creditCard->write(); // Create an Infusionsoft order $config = SiteConfig::current_site_config(); $invoiceId = $app->blankOrder($isConID, $product->Name, $curdate, 0, 0); $orderItem = $app->addOrderItem($invoiceId, $this->getNonExpiringIsProductId(7), 3, floatval($data['Price']), intval($data['Quantity']), $product->Name, $product->Name); $result = $app->chargeInvoice($invoiceId, $product->Name, $ccID, $config->MerchantAccount, false); // Create an order $order = new Order(); $order->OrderStatus = 'P'; $order->Amount = $data['Price'] * $data['Quantity']; $order->MemberID = $memberID; $order->ProductID = 7; $order->CreditCardID = $creditCardID; $orderID = $order->write(); $returnFields = array('_AttentionWizard', 'Leadsource'); $conDat1 = $app->loadCon($isConID, $returnFields); if ($result['Successful']) { // Add tag Paid member - prepaid $app->grpAssign($isConID, 2290); $conDat = array('ContactType' => 'AW Customer'); if (!isset($conDat1['_AttentionWizard'])) { $conDat['_AttentionWizard'] = 'Prepaid only - no subscription'; } if (isset($conDat1['_AttentionWizard']) && $conDat1['_AttentionWizard'] != 'Paid and Current' && $conDat1['_AttentionWizard'] != 'Free') { $conDat['_AttentionWizard'] = 'Prepaid only - no subscription'; } if (!isset($conDat1['Leadsource']) || !$conDat1['Leadsource']) { $conDat['Leadsource'] = 'AttentionWizard'; } $conID = $app->updateCon($isConID, $conDat); // Note is added $conActionDat = array('ContactId' => $isConID, 'ActionType' => 'UPDATE', 'ActionDescription' => "Purchased AW Prepaid Credits", 'CreationDate' => $curdate, 'ActionDate' => $curdate, 'CompletionDate' => $curdate, 'UserID' => 1); $conActionID = $app->dsAdd("ContactAction", $conActionDat); // Update order $order->OrderStatus = 'c'; $order->write(); // Create a Subscription record $subscription = new Subscription(); $subscription->StartDate = date("Y-m-d H:i:s"); $subscription->MemberID = $memberID; $subscription->ProductID = 7; $subscription->OrderID = $orderID; $subscription->write(); // Create a MemberCredits record $memberCredits = new MemberCredits(); $memberCredits->Credits = $product->Credits * $data['Quantity']; $memberCredits->MemberID = $memberID; $memberCredits->ProductID = 7; $memberCredits->SubscriptionID = $subscription->ID; $memberCredits->write(); $member->logIn(); $this->setMessage('Success', 'Purchased non-expiring heatmaps successfully.'); return 'url1'; } else { //Update Infusionsoft contact $conDat = array('_AttentionWizard' => 'Unsuccessful prepaid sign-up', 'ContactType' => 'AW Prospect'); if (!isset($conDat1['Leadsource'])) { $conDat['Leadsource'] = 'AttentionWizard'; } $app->updateCon($isConID, $conDat); // Add an AW prospect tag $app->grpAssign($isConID, $this->getISTagIdByPaymentCode(strtoupper($result['Code']))); // Add a note $conActionDat = array('ContactId' => $isConID, 'ActionType' => 'UPDATE', 'ActionDescription' => "Unsuccessful attempt to sign-up prepaid plan", 'CreationDate' => $curdate, 'ActionDate' => $curdate, 'CompletionDate' => $curdate, 'UserID' => 1); $conActionID = $app->dsAdd("ContactAction", $conActionDat); $member->logIn(); $this->setMessage('Error', 'Sorry,the payment failed due to some reason.please update your credit card.'); return 'url2'; } }