lead.storage.factory.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. angular.module('odoo')
  2. .factory('leadsStorageFactory', function () {
  3. // Save lead data to local storage
  4. var save = function (lead, success, error) {
  5. var values = [
  6. lead.remote_id ? lead.remote_id : 0,
  7. 1,
  8. lead.name ? lead.name : '',
  9. lead.description ? lead.description : '',
  10. lead.contact_name ? lead.contact_name : '',
  11. lead.phone ? lead.phone : '',
  12. lead.mobile ? lead.mobile : '',
  13. lead.fax ? lead.fax : '',
  14. lead.street ? lead.street : '',
  15. lead.street2 ? lead.street2 : '',
  16. lead.meeting_count ? lead.meeting_count : 0,
  17. lead.message_bounce ? lead.message_bounce : 0,
  18. lead.planned_cost ? lead.planned_cost : 0,
  19. lead.planned_revenue ? lead.planned_revenue : 0,
  20. lead.priority ? lead.priority : 2,
  21. lead.probability ? lead.probability : 0,
  22. lead.type ? lead.type : 'lead',
  23. lead.stage_id ? lead.stage_id : 0,
  24. lead.user_id ? lead.user_id : 0,
  25. lead.partner_id ? lead.partner_id : 0
  26. ];
  27. var sql = null;
  28. if (lead.id) {
  29. values.push(lead.id);
  30. sql = 'UPDATE lead SET ' +
  31. 'remote_id = ?,' +
  32. 'modified = ?,' +
  33. 'modifiedDate = CURRENT_TIMESTAMP,' +
  34. 'name = ?,' +
  35. 'description = ?,' +
  36. 'contact_name = ?,' +
  37. 'phone = ?,' +
  38. 'mobile = ?,' +
  39. 'fax = ?,' +
  40. 'street = ?,' +
  41. 'street2 = ?,' +
  42. 'meeting_count = ?,' +
  43. 'message_bounce = ?,' +
  44. 'planned_cost = ?,' +
  45. 'planned_revenue = ?,' +
  46. 'priority = ?,' +
  47. 'probability = ?,' +
  48. 'type = ?,' +
  49. 'stage_id = ?,' +
  50. 'user_id = ?,' +
  51. 'partner_id = ? ' +
  52. 'WHERE id = ?';
  53. } else {
  54. sql = 'INSERT INTO lead(' +
  55. 'remote_id,' +
  56. 'modified,' +
  57. 'name,' +
  58. 'description,' +
  59. 'contact_name,' +
  60. 'phone,' +
  61. 'mobile,' +
  62. 'fax,' +
  63. 'street,' +
  64. 'street2,' +
  65. 'meeting_count,' +
  66. 'message_bounce,' +
  67. 'planned_cost,' +
  68. 'planned_revenue,' +
  69. 'priority,' +
  70. 'probability,' +
  71. 'type,' +
  72. 'stage_id,' +
  73. 'user_id,' +
  74. 'partner_id) ' +
  75. 'VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)';
  76. }
  77. db.executeSql(sql, values, function (result) {
  78. success(sql.startsWith('INSERT') ? result.insertId : lead.id);
  79. }, function (err) {
  80. error(err);
  81. });
  82. }
  83. // Remove lead from local storage
  84. var remove = function (lead, success, error) {
  85. var values = [lead.id];
  86. var sql = null;
  87. if (lead.remote_id) {
  88. sql = 'UPDATE lead SET modified = 2 WHERE id = ?';
  89. } else {
  90. sql = 'DELETE FROM lead WHERE id = ?'
  91. }
  92. db.executeSql(sql, values, function (result) {
  93. success(result.rowsAffected);
  94. }, function(err) {
  95. error(err);
  96. });
  97. }
  98. var removeAll = function (success, error) {
  99. var sql = "DELETE FROM lead WHERE type = 'lead'";
  100. db.executeSql(sql, [], function(result) {
  101. success(result.rowsAffected);
  102. }, function(err) {
  103. error(err);
  104. });
  105. }
  106. return {
  107. save: save,
  108. remove: remove,
  109. removeAll: removeAll
  110. }
  111. });