콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
2 답글
5313 화면

Hello, I am getting the above error when I click on IsCustomButton button in POS Payment screen. 


Here is the full list of the error:
TypeError: utils.getComponent(...).IsCustomButton is not a function
at extra.handlers.click__1043__ (eval at _compile (http://localhost:8011/web/assets/1158- 26a83f0/ web.assets_common.min.js:1014:178), :350:174)
at invokeHandler (http://localhost:8011/web/assets/1158-26a83f0/ web.assets_common.min.js:838:144 )
at handleEvent (http://localhost:8011/web/assets/1158-26a83f0/ web.assets_common.min.js:842:92)
at HTMLDivElement.handler (http://localhost:8011/web/assets/1158 -26a83f0/ web.assets_common.min.js:844:58)

Here is the JS code:

odoo.define( 'pos_custom_buttons.PaymentScreenButton' , function (require) {
'use strict' ;
const { Gui } = require( 'point_of_sale.Gui' );
const PosComponent = require( 'point_of_sale.PosComponent' );
const { posbus } = require( 'point_of_sale.utils' );
const ProductScreen = require( 'point_of_sale.ProductScreen' );
const { useListener } = require( 'web.custom_hooks' );
const Registries = require( 'point_of_sale.Registries' );
const PaymentScreen = require( 'point_of_sale.PaymentScreen');
const CustomButtonPaymentScreen = (PaymentScreen) =>
class extends PaymentScreen {
constructor() {
super(...arguments);
}
IsCustomButton() {
let partnerId = this .rpc({
model: 'model.model' ,
method: 'do_payment' ,
args: [event.detail.processedChanges],
});

var phone = prompt( "Enter the Customer phone number" );
var send_phone = "1" + String(parseInt(phone))
alert( "Request sent to: " + send_phone)

console.log(phone)
// Gui.showPopup("ErrorPopup", {
// title: this.env._t('Send request'),
// body: this. env._t('Send request'),
// });
}
};
Registries.Component.extend(PaymentScreen, CustomButtonPaymentScreen);
return CustomButtonPaymentScreen;
});

아바타
취소
작성자 베스트 답변

Hi Cybrosys Techno Solutions Pvt.Ltd.

Thanks a lot for replying however, after updating my code with the code you provided above, I am getting this error now.
Kindly, what could be the issue?

Error:
OwlError: Invalid handler (expected a function, received: 'undefined')

아바타
취소
베스트 답변

Hi, 

The issue is that the IsCustomButton() function is not being added to the PaymentScreen component properly. Instead of extending the PaymentScreen class with the CustomButtonPaymentScreen class, you need to create a new component that inherits from the PaymentScreen component and add the IsCustomButton() function to it.

odoo.define('pos_custom_buttons.PaymentScreenButton', function(require) {'use strict';
const {Gui} = require('point_of_sale.Gui');
const {posbus} = require('point_of_sale.utils');
const {useListener} = require('web.custom_hooks');
const Registries = require('point_of_sale.Registries');
const PaymentScreen = require('point_of_sale.PaymentScreen');
const CustomButtonPaymentScreen = PaymentScreen => class extends PaymentScreen {
constructor() {
super(...arguments);
}
IsCustomButton() {

let partnerId = this.rpc({
model: 'model.model',
method: 'do_payment',
args: [event.detail.processedChanges],
});

var phone = prompt("Enter the Customer phone number");
var send_phone = "1" + String(parseInt(phone))
alert("Request sent to: " + send_phone)
console.log(phone)
}
}
Registries.Component.add(CustomButtonPaymentScreen);
return CustomButtonPaymentScreen;
});

Regards

아바타
취소
작성자

Hi Cybrosys Techno Solutions Pvt.Ltd.

Thanks a lot for replying however, after updating my code with the code you provided above, I am getting this error now.
Kindly, what could be the issue?

Error:
OwlError: Invalid handler (expected a function, received: 'undefined')at Object.mainEventHandler (http://localhost:8011/web/assets/debug/web.assets_common.js:21602:23) (/web/static/lib/owl/owl.js:5432)
at HTMLDivElement.listener (http://localhost:8011/web/assets/debug/web.assets_common.js:16501:20) (/web/static/lib/owl/owl.js:331)

관련 게시물 답글 화면 활동
1
4월 24
2133
0
1월 24
1702
1
9월 23
3142
2
1월 23
7790
get the model in js 해결 완료
3
3월 25
3718