You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.9 KiB

  1. odoo.define('pos_partner_firstname.screens', function (require) {
  2. "use strict";
  3. var Screens = require('point_of_sale.screens');
  4. var Model = require('web.Model');
  5. Screens.ClientListScreenWidget.include({
  6. partner_names_order: 'last_first',
  7. init: function(parent, options){
  8. var self = this;
  9. this._super(parent, options);
  10. var P = new Model('ir.config_parameter');
  11. P.call('get_param', ['partner_names_order']).then(function(partner_names_order) {
  12. if (partner_names_order != false) {
  13. self.partner_names_order = partner_names_order;
  14. }
  15. });
  16. },
  17. _update_client_name: function(checked){
  18. if (!checked) {
  19. var lastname = $('.lastname').val() || '';
  20. var firstname = $('.firstname').val() || '';
  21. var name = null;
  22. if (this.partner_names_order === 'last_first_comma') {
  23. name = lastname + ', ' + firstname;
  24. }
  25. else if (this.partner_names_order === 'first_last') {
  26. name = firstname + ' ' + lastname;
  27. }
  28. else
  29. {
  30. name = lastname + ' ' + firstname;
  31. }
  32. $('.client-name').val(name);
  33. }
  34. },
  35. display_client_details: function(visibility,partner,clickpos){
  36. var self = this;
  37. this._super.apply(self, arguments);
  38. if (visibility === 'edit') {
  39. if (!$('.is_company').is(':checked')) {
  40. $('.client-name').attr('readonly', true);
  41. }
  42. this.$('.person').off('keyup').on('keyup', function(event) {
  43. var checked = $('.is_company').is(':checked');
  44. $('.client-name').attr('readonly', !checked);
  45. if (!checked) {
  46. self._update_client_name(checked);
  47. }
  48. });
  49. this.$('.checkbox').off('change').on('change', function(event) {
  50. this.value = this.checked;
  51. if (this.name === 'is_company') {
  52. var checked = this.checked;
  53. $('.is_person').toArray().forEach(function(el) {
  54. $(el).css('display', !checked ? 'block' : 'none');
  55. });
  56. var clientname = $('.client-name');
  57. clientname.attr('readonly', !checked);
  58. if (!checked) {
  59. self._update_client_name(checked);
  60. }
  61. else
  62. {
  63. $('.lastname').val(clientname.val());
  64. $('.firstname').val('');
  65. }
  66. };
  67. });
  68. }
  69. },
  70. });
  71. });