angular.module('odoo') .factory('leadsStorageFactory', function () { // Save lead data to local storage var save = function (lead, success, error) { var values = [lead.remote_id ? lead.remote_id : 0, 1, lead.name ? lead.name : '', lead.description ? lead.description : '', lead.contact_name ? lead.contact_name : '', lead.phone ? lead.phone : '', lead.mobile ? lead.mobile : '', lead.fax ? lead.fax : '', lead.street ? lead.street : '', lead.street2 ? lead.street2 : '', lead.meeting_count ? lead.meeting_count : 0, lead.message_bounce ? lead.message_bounce : 0, lead.planned_cost ? lead.planned_cost : 0, lead.planned_revenue ? lead.planned_revenue : 0, lead.priority ? lead.priority : 2, lead.probability ? lead.probability : 0, lead.type ? lead.type : 'lead', lead.partner_id ? lead.partner_id : 0]; var sql = null; if (lead.id) { values.push(lead.id); sql = 'UPDATE lead SET remote_id = ?, modified = ?, modifiedDate = CURRENT_TIMESTAMP, name = ?, description = ?, contact_name = ?, phone = ?, mobile = ?, fax = ?, street = ?, street2 = ?, meeting_count = ?, message_bounce = ?, planned_cost = ?, planned_revenue = ?, priority = ?, probability = ?, type = ?, partner_id = ? WHERE id = ?'; } else { sql = 'INSERT INTO lead(remote_id, modified, name, description, contact_name, phone, mobile, fax, street, street2, meeting_count, message_bounce, planned_cost, planned_revenue, priority, probability, type, partner_id) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'; } db.executeSql(sql, values, function (result) { success(sql.startsWith('INSERT') ? result.insertId : lead.id); }, function (err) { error(err); }); } // Remove lead from local storage var remove = function (lead, success, error) { var values = [lead.id]; var sql = null; if (lead.remote_id) { sql = 'UPDATE lead SET modified = 2 WHERE id = ?'; } else { sql = 'DELETE FROM lead WHERE id = ?' } db.executeSql(sql, values, function (result) { success(result.rowsAffected); }, function(err) { error(err); }); } var removeAll = function (success, error) { var sql = 'DELETE FROM lead'; db.executeSql(sql, [], function(result) { success(result.rowsAffected); }, function(err) { error(err); }); } return { save: save, remove: remove, removeAll: removeAll } });