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.

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