customer.storage.factory.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. angular.module('odoo')
  2. /**
  3. * -----------------------------------------------------------------------------
  4. * Description: Local storage manager for customers data
  5. * -----------------------------------------------------------------------------
  6. */
  7. .factory('customersStorageFactory', function () {
  8. /**
  9. *
  10. */
  11. var save = function (data, success, error) {
  12. var query = null;
  13. if (data.id) {
  14. query = squel.update()
  15. .table('partner')
  16. .set('remote_id', data.remote_id)
  17. .set('modified', 1)
  18. .set('modifiedDate', 'CURRENT_TIMESTAMP', { dontQuote: true })
  19. .set('name', data.name)
  20. .set('city', data.city)
  21. .set('mobile', data.mobile)
  22. .set('phone', data.phone)
  23. .set('fax', data.fax)
  24. .set('email', data.email)
  25. .set('street', data.street)
  26. .set('street2', data.street2)
  27. .set('image_medium', data.image_medium)
  28. .set('image_small', data.image_small)
  29. .set('comment', data.comment)
  30. .set('customer', data.customer)
  31. .set('employee', data.employee)
  32. .set('is_company', data.is_company)
  33. .set('debit', data.debit)
  34. .set('debit_limit', data.debit_limit)
  35. .set('opportunity_count', data.opportunity_count)
  36. .set('contracts_count', data.contracts_count)
  37. .set('journal_item_count', data.journal_item_count)
  38. .set('meeting_count', data.meeting_count)
  39. .set('phonecall_count', data.phonecall_count)
  40. .set('sale_order_count', data.sale_order_count)
  41. .set('total_invoiced', data.total_invoiced)
  42. .where('id', data.id);
  43. } else {
  44. query = squel.insert()
  45. .into('partner')
  46. .set('remote_id', data.remote_id)
  47. .set('modified', 0)
  48. .set('modifiedDate', 'CURRENT_TIMESTAMP', { dontQuote: true })
  49. .set('name', data.name)
  50. .set('city', data.city)
  51. .set('mobile', data.mobile)
  52. .set('phone', data.phone)
  53. .set('fax', data.fax)
  54. .set('email', data.email)
  55. .set('street', data.street)
  56. .set('street2', data.street2)
  57. .set('image_medium', data.image_medium)
  58. .set('image_small', data.image_small)
  59. .set('comment', data.comment)
  60. .set('customer', data.customer)
  61. .set('employee', data.employee)
  62. .set('is_company', data.is_company)
  63. .set('debit', data.debit)
  64. .set('debit_limit', data.debit_limit)
  65. .set('opportunity_count', data.opportunity_count)
  66. .set('contracts_count', data.contracts_count)
  67. .set('journal_item_count', data.journal_item_count)
  68. .set('meeting_count', data.meeting_count)
  69. .set('phonecall_count', data.phonecall_count)
  70. .set('sale_order_count', data.sale_order_count)
  71. .set('total_invoiced', data.total_invoiced);
  72. }
  73. query = query.toParam();
  74. db.executeSql(query.text, query.values, function (result) {
  75. success(query.text.startsWith('INSERT') ? result.insertId : customer.id);
  76. }, function (err) {
  77. error(err);
  78. });
  79. };
  80. /**
  81. *
  82. */
  83. var remove = function (data, success, error) {
  84. if (!data.id) {
  85. error('Customer cannot delete without provide an id');
  86. }
  87. var query = null;
  88. if (data.remote_id) {
  89. query = squel.update()
  90. .table('partner')
  91. .set('modified', 2)
  92. .where('id', data.id)
  93. .toParam();
  94. } else {
  95. query = squel.delete()
  96. .from('partner')
  97. .where('id', data.id)
  98. .toParam();
  99. }
  100. query = query.toParam();
  101. db.executeSql(query.text, query.values, function (result) {
  102. success(result.rowsAffected);
  103. }, function (err) {
  104. error(err);
  105. });
  106. };
  107. /**
  108. *
  109. */
  110. var removeAll = function (success, error) {
  111. var query = squel.delete()
  112. .from('partner')
  113. .where('customer', 1)
  114. .toParam();
  115. db.executeSql(query.text, query.values, function (result) {
  116. success(result.rowsAffected);
  117. }, function (err) {
  118. error(err);
  119. });
  120. };
  121. return {
  122. save: save,
  123. remove: remove,
  124. removeAll: removeAll
  125. }
  126. });