Merge branch 'master' of https://e.coding.net/jikimo-hn/jikimo_sfs/jikimo_sf into release/release1.0
# Conflicts: # sf_base/__init__.py # sf_base/__manifest__.py # sf_base/commons/__init__.py # sf_base/commons/common.py # sf_base/models/__init__.py # sf_base/models/base.py # sf_base/models/common.py # sf_base/security/group_security.xml # sf_base/security/ir.model.access.csv # sf_base/views/base_view.xml # sf_base/views/common_view.xml # sf_base/views/menu_view.xml # sf_bf_connect/__init__.py # sf_bf_connect/__manifest__.py # sf_bf_connect/controllers/__init__.py # sf_bf_connect/controllers/controllers.py # sf_bf_connect/models/__init__.py # sf_bf_connect/models/http.py # sf_bf_connect/models/models.py # sf_bf_connect/models/process_status.py # sf_bf_connect/views/res_partner_view.xml # sf_dlm/__manifest__.py # sf_dlm/data/product_data.xml # sf_dlm/models/__init__.py # sf_dlm/models/product_supplierinfo.py # sf_dlm/views/product_template_view.xml # sf_machine_connect/__init__.py # sf_machine_connect/__manifest__.py # sf_machine_connect/models/__init__.py # sf_machine_connect/models/ftp_client.py # sf_machine_connect/models/ftp_operate.py # sf_machine_connect/models/py2opcua.py # sf_machine_connect/security/ir.model.access.csv # sf_machine_connect/views/SfWorkOrderBarcodes.xml # sf_machine_connect/views/WorkCenterBarcodes.xml # sf_machine_connect/views/compensation.xml # sf_machine_connect/views/default_delivery.xml # sf_machine_connect/views/delivery_record.xml # sf_machine_connect/views/ftp_button.xml # sf_machine_connect/views/machine_info_present.xml # sf_machine_connect/views/machine_monitor.xml # sf_machine_connect/wizard/__init__.py # sf_machine_connect/wizard/action_up.py # sf_manufacturing/__init__.py # sf_manufacturing/__manifest__.py # sf_manufacturing/models/__init__.py # sf_manufacturing/models/model_type.py # sf_manufacturing/models/mrp_maintenance.py # sf_manufacturing/models/mrp_production.py # sf_manufacturing/models/mrp_routing_workcenter.py # sf_manufacturing/models/mrp_workcenter.py # sf_manufacturing/models/mrp_workorder.py # sf_manufacturing/models/res_user.py # sf_manufacturing/models/stock.py # sf_manufacturing/security/group_security.xml # sf_manufacturing/security/ir.model.access.csv # sf_manufacturing/views/model_type_view.xml # sf_manufacturing/views/mrp_routing_workcenter_view.xml # sf_manufacturing/views/mrp_workcenter_views.xml # sf_manufacturing/views/mrp_workorder_view.xml # sf_mrs_connect/__init__.py # sf_mrs_connect/__manifest__.py # sf_mrs_connect/controllers/controllers.py # sf_mrs_connect/data/ir_cron_data.xml # sf_mrs_connect/models/__init__.py # sf_mrs_connect/models/ftp_operate.py # sf_mrs_connect/models/res_config_setting.py # sf_mrs_connect/models/sync_common.py # sf_mrs_connect/views/res_config_settings_views.xml # sf_sale/__init__.py # sf_sale/__manifest__.py # sf_sale/models/__init__.py # sf_sale/models/sale_order.py # sf_sale/views/sale_order_view.xml # yizuo_login_background_and_styles/__manifest__.py # yizuo_login_background_and_styles/controllers/main.py # yizuo_login_background_and_styles/models/login_image.py # yizuo_login_background_and_styles/models/res_config_settings.py
This commit is contained in:
82
sf_machine_connect/static/src/js/test.js
Normal file
82
sf_machine_connect/static/src/js/test.js
Normal file
@@ -0,0 +1,82 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import { browser } from "@web/core/browser/browser";
|
||||
import { Dialog } from "@web/core/dialog/dialog";
|
||||
import { _lt } from "@web/core/l10n/translation";
|
||||
import { useChildRef, useOwnedDialogs, useService } from "@web/core/utils/hooks";
|
||||
import { sprintf } from "@web/core/utils/strings";
|
||||
import { isMobileOS } from "@web/core/browser/feature_detection";
|
||||
import * as BarcodeScanner from "@web/webclient/barcode/barcode_scanner";
|
||||
|
||||
const {xml, Component} = owl;
|
||||
import { standardFieldProps } from "@web/views/fields/standard_field_props";
|
||||
// Import the registry
|
||||
import {registry} from "@web/core/registry";
|
||||
|
||||
|
||||
export class CodeField extends Component {
|
||||
setup() {
|
||||
super.setup();
|
||||
}
|
||||
async onBarcodeBtnClick() {
|
||||
const barcode = await BarcodeScanner.scanBarcode();
|
||||
if (barcode) {
|
||||
await this.onBarcodeScanned(barcode);
|
||||
if ("vibrate" in browser.navigator) {
|
||||
browser.navigator.vibrate(100);
|
||||
}
|
||||
} else {
|
||||
this.notification.add(this.env._t("Please, scan again !"), {
|
||||
type: "warning",
|
||||
});
|
||||
}
|
||||
}
|
||||
async search(barcode) {
|
||||
const results = await this.orm.call("sf.tray", "name_search", [code], {
|
||||
name: barcode,
|
||||
args: this.getDomain(),
|
||||
operator: "ilike",
|
||||
limit: 2, // If one result we set directly and if more than one we use normal flow so no need to search more
|
||||
context: this.context,
|
||||
});
|
||||
return results.map((result) => {
|
||||
const [id, displayName] = result;
|
||||
return {
|
||||
id,
|
||||
name: displayName,
|
||||
};
|
||||
});
|
||||
}
|
||||
async onBarcodeScanned(barcode) {
|
||||
const results = await this.search(barcode);
|
||||
const records = results.filter((r) => !!r.id);
|
||||
if (records.length === 1) {
|
||||
this.update([{ id: records[0].id, name: records[0].name }]);
|
||||
} else {
|
||||
const searchInput = this.autocompleteContainerRef.el.querySelector("input");
|
||||
searchInput.value = barcode;
|
||||
searchInput.dispatchEvent(new Event("input"));
|
||||
if (this.env.isSmall) {
|
||||
searchInput.click();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CodeField.template = xml`
|
||||
<button
|
||||
t-on-click="onBarcodeBtnClick"
|
||||
type="button"
|
||||
class="btn ms-3 o_barcode"
|
||||
tabindex="-1"
|
||||
draggable="false"
|
||||
aria-label="Scan barcode"
|
||||
title="Scan barcode"
|
||||
data-tooltip="Scan barcode"
|
||||
/>
|
||||
`;
|
||||
// CodeField.template = 'sf_machine_connect.CodeField';
|
||||
CodeField.props = standardFieldProps;
|
||||
|
||||
// Add the field to the correct category
|
||||
registry.category("fields").add("code", CodeField);
|
||||
Reference in New Issue
Block a user