customer.storage.factory.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. angular.module('odoo')
  2. /**
  3. * -----------------------------------------------------------------------------
  4. * Description: Local storage manager for customers data
  5. * -----------------------------------------------------------------------------
  6. */
  7. .factory('customersStorageFactory', function ($localStorage) {
  8. var configuration = $localStorage;
  9. /**
  10. *
  11. */
  12. var save = function (data, success, error) {
  13. var query = null;
  14. if (data.id) {
  15. query = squel.update()
  16. .table('partner')
  17. .set('remote_id', data.remote_id ? data.remote_id : 0)
  18. .set('modified', 1)
  19. .set('name', data.name)
  20. .set('city', data.city ? data.city : null)
  21. .set('mobile', data.mobile ? data.mobile : null)
  22. .set('phone', data.phone ? data.phone : null)
  23. .set('fax', data.fax ? data.fax : null)
  24. .set('email', data.email ? data.email : null)
  25. .set('street', data.street ? data.street : null)
  26. .set('street2', data.street2 ? data.street2 : null)
  27. .set('image_medium', data.image_medium ? data.image_medium : null)
  28. .set('image_small', data.image_small ? data.image_small : null)
  29. .set('comment', data.comment ? data.comment : null)
  30. .set('customer', 1)
  31. .set('employee', 0)
  32. .set('is_company', 0)
  33. .set('partner_latitude', data.partner_latitude ? data.partner_latitude : 0)
  34. .set('partner_longitude', data.partner_longitude ? data.partner_longitude : 0)
  35. .set('date_localization', data.date_localization ? data.date_localization : null)
  36. .where('id = ?', data.id)
  37. .toParam();
  38. } else {
  39. query = squel.insert()
  40. .into('partner')
  41. .set('remote_id', data.remote_id ? data.remote_id : 0)
  42. .set('name', data.name)
  43. .set('city', data.city ? data.city : null)
  44. .set('mobile', data.mobile ? data.mobile : null)
  45. .set('phone', data.phone ? data.phone : null)
  46. .set('fax', data.fax ? data.fax : null)
  47. .set('email', data.email ? data.email : null)
  48. .set('street', data.street ? data.street : null)
  49. .set('street2', data.street2 ? data.street2 : null)
  50. .set('image_medium', data.image_medium ? data.image_medium : null)
  51. .set('image_small', data.image_small ? data.image_small : null)
  52. .set('comment', data.comment ? data.comment : null)
  53. .set('customer', 1)
  54. .set('employee', 0)
  55. .set('is_company', 0)
  56. .set('debit', data.debit)
  57. .set('debit_limit', data.debit_limit)
  58. .set('opportunity_count', data.opportunity_count)
  59. .set('contracts_count', data.contracts_count)
  60. .set('journal_item_count', data.journal_item_count)
  61. .set('meeting_count', data.meeting_count)
  62. .set('phonecall_count', data.phonecall_count)
  63. .set('sale_order_count', data.sale_order_count)
  64. .set('total_invoiced', data.total_invoiced)
  65. .set('type', data.type ? data.type : 'contact')
  66. .set('active', data.active ? data.active : 1)
  67. .set('partner_latitude', data.partner_latitude ? data.partner_latitude : 0)
  68. .set('partner_longitude', data.partner_longitude ? data.partner_longitude : 0)
  69. .set('date_localization', data.date_localization ? data.date_localization : null)
  70. .set('company_id', angular.isArray(data.company_id) ? data.company_id[0] : configuration.company_id)
  71. .set('create_uid', angular.isArray(data.create_uid) ? data.create_uid[0] : configuration.id)
  72. .toParam();
  73. }
  74. db.executeSql(query.text, query.values, function (result) {
  75. success(query.text.startsWith('INSERT') ? result.insertId : data.id);
  76. }, function (err) {
  77. console.log(err);
  78. error(err);
  79. });
  80. };
  81. /**
  82. *
  83. */
  84. var get = function (id, success, error) {
  85. var query = squel.select()
  86. .from('partner')
  87. .where('id = ?', id)
  88. .toParam();
  89. db.executeSql(query.text, query.values, function (result) {
  90. if (result.rows.length == 0) {
  91. return success({});
  92. }
  93. success(result.rows.item(0));
  94. }, function (err) {
  95. error(err);
  96. })
  97. }
  98. /**
  99. *
  100. */
  101. var getAll = function (success, error) {
  102. var query = squel.select()
  103. .from('partner')
  104. .toParam();
  105. db.executeSql(query.text, query.values, function (result) {
  106. var data = [];
  107. for (var i = 0; i < result.rows.length; i++) {
  108. data.push(result.rows.item(i));
  109. }
  110. success(data);
  111. }, function (err) {
  112. error(err);
  113. });
  114. }
  115. /**
  116. *
  117. */
  118. var remove = function (data, success, error) {
  119. var query = null;
  120. if (data.remote_id) {
  121. query = squel.update()
  122. .table('partner')
  123. .set('modified', 2)
  124. .where('id = ?', data.id)
  125. .toParam();
  126. } else {
  127. query = squel.delete()
  128. .from('partner')
  129. .where('id = ?', data.id)
  130. .toParam();
  131. }
  132. db.executeSql(query.text, query.values, function (result) {
  133. success(result.rowsAffected);
  134. }, function (err) {
  135. error(err);
  136. });
  137. };
  138. /**
  139. *
  140. */
  141. var removeAll = function (success, error) {
  142. var query = squel.delete()
  143. .from('partner')
  144. .where('customer = ?', 1)
  145. .toParam();
  146. db.executeSql(query.text, query.values, function (result) {
  147. success(result.rowsAffected);
  148. }, function (err) {
  149. error(err);
  150. });
  151. };
  152. return {
  153. save: save,
  154. get: get,
  155. getAll: getAll,
  156. remove: remove,
  157. removeAll: removeAll
  158. }
  159. });