lead.storage.factory.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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('crm_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_count)
  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', typeof data.stage_id == 'object' ? data.stage_id[0] : data.stage_id)
  28. .set('user_id', data.user_id)
  29. .set('partner_id', data.partner_id)
  30. .where('id', data.id)
  31. .toParam();
  32. } else {
  33. query = squel.insert()
  34. .into('crm_lead')
  35. .set('remote_id', data.remote_id)
  36. .set('modified', data.modified)
  37. .set('name', data.name)
  38. .set('description', data.description)
  39. .set('contact_name', data.contact_name)
  40. .set('phone', data.phone)
  41. .set('mobile', data.mobile)
  42. .set('fax', data.fax)
  43. .set('street', data.street)
  44. .set('street2', data.street2)
  45. .set('meeting_count', data.meeting_count)
  46. .set('message_bounce', data.message_bounce)
  47. .set('planned_cost', data.planned_cost)
  48. .set('planned_revenue', data.street)
  49. .set('priority', data.priority)
  50. .set('probability', data.probability)
  51. .set('type', data.type)
  52. .set('stage_id', typeof data.stage_id == 'object' ? data.stage_id[0] : data.stage_id)
  53. .set('user_id', data.user_id)
  54. .set('partner_id', data.partner_id)
  55. .toParam();
  56. }
  57. db.executeSql(query.text, query.values, function (result) {
  58. console.log(result);
  59. success(query.text.startsWith('INSERT') ? result.insertId : data.id);
  60. }, function (err) {
  61. console.log(err);
  62. error(err);
  63. });
  64. }
  65. /**
  66. *
  67. */
  68. var remove = function (data, success, error) {
  69. var query = null;
  70. if (data.remote_id) {
  71. query = squel.update()
  72. .table('crm_lead')
  73. .set('modified', 2)
  74. .set('id', data.id);
  75. } else {
  76. query = squel.delete()
  77. from('crm_lead')
  78. .where('id', data.id);
  79. }
  80. query = query.toParam();
  81. db.executeSql(query.text, query.values, function (result) {
  82. success(result.rowsAffected);
  83. }, function(err) {
  84. error(err);
  85. });
  86. }
  87. /**
  88. *
  89. */
  90. var removeAll = function (success, error) {
  91. var query = squel.delete()
  92. .from('crm_lead')
  93. .where('type', 'lead')
  94. .toParam();
  95. db.executeSql(query.text, query.values, function (result) {
  96. success(result.rowsAffected);
  97. }, function(err) {
  98. error(err);
  99. });
  100. }
  101. return {
  102. save: save,
  103. remove: remove,
  104. removeAll: removeAll
  105. }
  106. });