Search 1.9 billion lines of Odoo code on GitHub

base_phone_search

Author: Datadialog
License: no license
Branch: dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/hosted-git-info-2.8.9
Repository: OpenAT/online
Dependencies: contacts
Other branches: dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/cached-path-relative-1.1.0, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/decode-uri-component-0.2.2, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/lodash-4.17.21, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/node-sass-7.0.0, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/path-parse-1.0.7, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/qs-6.5.3, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/shell-quote-1.7.3, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/tar-2.2.2, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/ua-parser-js-0.7.24, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/ua-parser-js-0.7.33, dependabot/npm_and_yarn/addons-own/fso_base_website/static/lib/outdated-browser-rework-master/undefsafe-2.0.5, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/aws-sdk-2.1030.0, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/cached-path-relative-1.1.0, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/css-what-2.1.3, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/hosted-git-info-2.8.9, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/i-0.3.7, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/node-sass-4.14.1, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/shell-quote-1.7.3, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/tar-2.2.2, dependabot/npm_and_yarn/addons-own/fso_website_email/static/src/lib/textversionjs-master/xmldom-0.5.0, dependabot/pip/TOOLS/babel-2.9.1, dependabot/pip/TOOLS/lxml-4.6.5, dependabot/pip/TOOLS/lxml-4.9.1, dependabot/pip/TOOLS/mako-1.2.2, dependabot/pip/TOOLS/pillow-8.3.2, dependabot/pip/TOOLS/pillow-9.0.1, dependabot/pip/TOOLS/pillow-9.3.0, dependabot/pip/TOOLS/python-ldap-3.4.0, dependabot/pip/TOOLS/reportlab-3.5.55, dependabot/pip/TOOLS/requests-2.20.0, dependabot/pip/TOOLS/werkzeug-2.2.3, dependabot/pip/addons-own/fso_rest_api/sphinx_doc/babel-2.9.1, dependabot/pip/addons-own/fso_rest_api/sphinx_doc/certifi-2022.12.7, dependabot/pip/addons-own/fso_rest_api/sphinx_doc/urllib3-1.26.5, dependabot/pip/babel-2.9.1, dependabot/pip/certifi-2022.12.7, dependabot/pip/lxml-4.6.5, dependabot/pip/lxml-4.9.1, dependabot/pip/mako-1.2.2, dependabot/pip/pillow-8.3.2, dependabot/pip/pillow-9.0.1, dependabot/pip/pillow-9.3.0, dependabot/pip/reportlab-3.5.55, dependabot/pip/urllib3-1.26.5, dependabot/pip/werkzeug-2.2.3, fso-api-payments, google_tag_manager, o8, o8r436-patch, product-gui-update, and worflow_per_subscription

<h1>base<em>phone</em>search</h1> <p>Provides the method search<em>phone</em>fuzzy() for res.partner.</p> <pre><code>This method will search the &#39;phone&#39; and &#39;mobile&#39; fields of res.partner for the given phone number. It will by default ignore all non digit characters and will search from right to left. e.g.: &#39;+43 (0)660 1234 - 567 &#39; will be converted to &#39;7654321066034&#39; When we search for a phone number by self.env[&#39;res.partner&#39;].search_phone_fuzzy(&#39;(0)660 12 34 567&#39;) we search for 1.) Search for partner where &#39;phone&#39; or &#39;mobile&#39; ends with &#39;234567&#39; 2.) Use the phonenumbers Python Library to further narrow down the results 3.) Return an record set with the found partner </code></pre> <h2>Database search optimization</h2> <pre><code># SELECT reverse(regexp_replace(regexp_replace(&#39;0043 (0) 3160 123-45-67 &#39;, &#39;[^0-9]&#39;, &#39;&#39;, &#39;g&#39;), &#39;00*&#39;, &#39;&#39;)) # CREATE OR REPLACE FUNCTION phone_clean_reverse(text) RETURNS text AS $$ # SELECT concat(left(reverse(regexp_replace(regexp_replace($1, &#39;[^0-9]&#39;, &#39;&#39;, &#39;g&#39;), &#39;^000*&#39;, &#39;&#39;)), 6)); # $$ LANGUAGE &#39;sql&#39; IMMUTABLE STRICT; # # DROP INDEX idx_phone_reverse; # CREATE INDEX idx_phone_reverse ON res_partner(phone_clean_reverse(phone)); # # DROP INDEX idx_mobile_reverse; # CREATE INDEX idx_mobile_reverse ON res_partner(phone_clean_reverse(mobile)); # # select &quot;id&quot;, firstname, lastname, phone # from res_partner # where phone_clean_reverse(phone) = phone_clean_reverse(&#39;+43 (0) 7478-327&#39;); # # select &quot;id&quot;, firstname, lastname, mobile # from res_partner # where phone_clean_reverse(mobile) = phone_clean_reverse(&#39;+43 (0) 7478-327&#39;); # # select &quot;id&quot;, firstname, lastname, phone, mobile # from res_partner # where phone_clean_reverse(mobile) = phone_clean_reverse(&#39;+43 (0) 7478-327&#39;) # or phone_clean_reverse(phone) = phone_clean_reverse(&#39;+43 (0) 7478-327&#39;); </code></pre>