lead.storage.factory.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. angular.module('odoo')
  2. .factory('leadsStorageFactory', function () {
  3. /**
  4. *
  5. */
  6. var save = function (data, success, error) {
  7. var query = null;
  8. if (data.id) {
  9. query = squel.update()
  10. .table('lead')
  11. .set('remote_id', data.remote_id)
  12. .set('name', data.name)
  13. .set('description', data.description)
  14. .set('contact_name', data.contact_name)
  15. .set('phone', data.phone)
  16. .set('mobile', data.mobile)
  17. .set('fax', data.fax)
  18. .set('street', data.street)
  19. .set('street2', data.street2)
  20. .set('meeting_count', data.meeting_coun)
  21. .set('message_bounce', data.message_bounce)
  22. .set('planned_cost', data.planned_cost)
  23. .set('planned_revenue', data.planned_revenue)
  24. .set('priority', data.priority)
  25. .set('probability', data.probability)
  26. .set('type', data.type)
  27. .set('stage_id', data.stage_id)
  28. .set('user_id', data.user_id)
  29. .set('partner_id', data.partner_id)
  30. .where('id', data.id);
  31. } else {
  32. query = squel.insert()
  33. .into('lead')
  34. .set('remote_id', data.remote_id)
  35. .set('modified', data.modified)
  36. .set('name', data.name)
  37. .set('description', data.description)
  38. .set('contact_name', data.contact_name)
  39. .set('phone', data.phone)
  40. .set('mobile', data.mobile)
  41. .set('fax', data.fax)
  42. .set('street', data.street)
  43. .set('street2', data.street2)
  44. .set('meeting_count', data.meeting_count)
  45. .set('message_bounce', data.message_bounce)
  46. .set('planned_cost', data.planned_cost)
  47. .set('planned_revenue', data.street)
  48. .set('priority', data.priority)
  49. .set('probability', data.probability)
  50. .set('type', data.type)
  51. .set('stage_id', typeof data.stage_id == 'number' ? data.stage_id : parseInt(data.stage_id.split(',')[0]))
  52. .set('user_id', data.user_id)
  53. .set('partner_id', data.partner_id);
  54. }
  55. query = query.toParam();
  56. db.executeSql(query.text, query.values, function (result) {
  57. success(query.text.startsWith('INSERT') ? result.insertId : lead.id);
  58. }, function (err) {
  59. error(err);
  60. });
  61. }
  62. /**
  63. *
  64. */
  65. var remove = function (data, success, error) {
  66. var query = null;
  67. if (data.remote_id) {
  68. query = squel.update()
  69. .table('lead')
  70. .set('modified', 2)
  71. .set('id', data.id);
  72. } else {
  73. query = squel.delete()
  74. from('lead')
  75. .where('id', data.id);
  76. }
  77. query = query.toParam();
  78. db.executeSql(query.text, query.values, function (result) {
  79. success(result.rowsAffected);
  80. }, function(err) {
  81. error(err);
  82. });
  83. }
  84. /**
  85. *
  86. */
  87. var removeAll = function (success, error) {
  88. var query = squel.delete()
  89. .from('lead')
  90. .where('type', 'lead')
  91. .toParam();
  92. db.executeSql(query.text, query.values, function(result) {
  93. success(result.rowsAffected);
  94. }, function(err) {
  95. error(err);
  96. });
  97. }
  98. return {
  99. save: save,
  100. remove: remove,
  101. removeAll: removeAll
  102. }
  103. });