/**
  *
  *@return SQLQuery
  **/
 public function apply(DataQuery $query)
 {
     $this->model = $query->applyRelation($this->relation);
     $value = $this->getValue();
     $billingAddressesIDs = array(-1 => -1);
     $billingAddresses = BillingAddress::get()->where("\r\n\t\t\t\"FirstName\" LIKE '%{$value}%' OR\r\n\t\t\t\"Surname\" LIKE '%{$value}%' OR\r\n\t\t\t\"Email\" LIKE '%{$value}%' OR\r\n\t\t\t\"Address\" LIKE '%{$value}%' OR\r\n\t\t\t\"Address2\" LIKE '%{$value}%' OR\r\n\t\t\t\"City\" LIKE '%{$value}%' OR\r\n\t\t\t\"PostalCode\" LIKE '%{$value}%' OR\r\n\t\t\t\"Phone\" LIKE '%{$value}%'\r\n\t\t");
     if ($billingAddresses->count()) {
         $billingAddressesIDs = $billingAddresses->map("ID", "ID")->toArray();
     }
     $where[] = "\"BillingAddressID\" IN (" . implode(",", $billingAddressesIDs) . ")";
     $shippingAddressesIDs = array(-1 => -1);
     $shippingAddresses = ShippingAddress::get()->where("\r\n\t\t\t\"ShippingFirstName\" LIKE '%{$value}%' OR\r\n\t\t\t\"ShippingSurname\" LIKE '%{$value}%' OR\r\n\t\t\t\"ShippingAddress\" LIKE '%{$value}%' OR\r\n\t\t\t\"ShippingAddress2\" LIKE '%{$value}%' OR\r\n\t\t\t\"ShippingCity\" LIKE '%{$value}%' OR\r\n\t\t\t\"ShippingPostalCode\" LIKE '%{$value}%' OR\r\n\t\t\t\"ShippingPhone\" LIKE '%{$value}%'\r\n\t\t");
     if ($shippingAddresses->count()) {
         $shippingAddressesIDs = $shippingAddresses->map("ID", "ID")->toArray();
     }
     $where[] = "\"ShippingAddressID\" IN (" . implode(",", $shippingAddressesIDs) . ")";
     $memberIDs = array(-1 => -1);
     $members = Member::get()->where("\r\n\t\t\t\"FirstName\" LIKE '%{$value}%' OR\r\n\t\t\t\"Surname\" LIKE '%{$value}%' OR\r\n\t\t\t\"Email\" LIKE '%{$value}%'\r\n\t\t");
     if ($members->count()) {
         $memberIDs = $members->map("ID", "ID")->toArray();
     }
     $where[] = "\"MemberID\" IN (" . implode(",", $memberIDs) . ")";
     $query = $query->where("(" . implode(") OR (", $where) . ")");
     return $query;
 }
Exemplo n.º 2
0
 /**
  *
  *@return GridField
  **/
 protected function getShippingAddressField()
 {
     $this->CreateOrReturnExistingAddress("ShippingAddress");
     $gridFieldConfig = GridFieldConfig::create()->addComponents(new GridFieldToolbarHeader(), new GridFieldSortableHeader(), new GridFieldDataColumns(), new GridFieldPaginator(10), new GridFieldEditButton(), new GridFieldDetailForm());
     //$source = $this->ShippingAddress();
     $source = ShippingAddress::get()->filter(array("OrderID" => $this->ID));
     return new GridField("ShippingAddress", _t("BillingAddress.SINGULARNAME", "Shipping Address"), $source, $gridFieldConfig);
 }
 /**
  * Standard SS method
  * @param Member $member
  * @return Boolean
  */
 function canDelete($member = null)
 {
     if (ShippingAddress::get()->filter(array("ShippingCountry" => $this->Code))->count()) {
         return false;
     }
     if (BillingAddress::get()->filter(array("Country" => $this->Code))->count()) {
         return false;
     }
     if (Permission::checkMember($member, Config::inst()->get("EcommerceRole", "admin_permission_code"))) {
         return true;
     }
     return parent::canEdit($member);
 }