Parcourir la source

opportunity view design started

robert2206 il y a 8 ans
Parent
commit
127f30bec3

+ 1 - 0
www/index.html

@@ -29,6 +29,7 @@
     <script src="js/controllers/sale.controller.js"></script>
     <script src="js/controllers/customer.controller.js"></script>
     <script src="js/controllers/lead.controller.js"></script>
+    <script src="js/controllers/opportunity.controller.js"></script>
     <script src="js/controllers/configuration.controller.js"></script>
     <script src="js/controllers/preferences.controller.js"></script>
 

+ 14 - 1
www/js/app.js

@@ -75,7 +75,8 @@ angular.module('odoo',['ionic', 'ngCordova', 'xml-rpc', 'jett.ionic.filter.bar']
     });
 })
 
-.config(function($stateProvider, $urlRouterProvider, $ionicFilterBarConfigProvider) {
+.config(function ($stateProvider, $urlRouterProvider, $ionicConfigProvider, $ionicFilterBarConfigProvider) {
+
     $stateProvider
         .state('app', {
             url: '/app',
@@ -122,6 +123,16 @@ angular.module('odoo',['ionic', 'ngCordova', 'xml-rpc', 'jett.ionic.filter.bar']
             }
         })
 
+        .state('app.opportunities', {
+            url: 'app/opportunities',
+            views: {
+                'content': {
+                    templateUrl: 'templates/sales/opportunities.html',
+                    controller: 'OpportunitiesController'
+                }
+            }
+        })
+
         .state('app.preferences', {
             url: 'app/preferences',
             views: {
@@ -140,6 +151,8 @@ angular.module('odoo',['ionic', 'ngCordova', 'xml-rpc', 'jett.ionic.filter.bar']
 
     $urlRouterProvider.otherwise('/configuration');
 
+    // $ionicConfigProvider.tabs.position('bottom');
+
     $ionicFilterBarConfigProvider.theme('positive');
     $ionicFilterBarConfigProvider.placeholder('Buscar');
 });

+ 19 - 3
www/js/controllers/lead.controller.js

@@ -8,6 +8,7 @@ angular.module('odoo')
     $ionicPopup,
     leadsRemoteFactory,
     leadsStorageFactory,
+    opportunitiesStorageFactory,
     sqlFactory
 ) {
     $scope.loading = false;
@@ -39,6 +40,7 @@ angular.module('odoo')
 
     $scope.$on('$destroy', function() {
         $scope.leadModal.remove();
+        $scope.leadToOpportunityModal.remove();
     });
 
     $scope.$on('modal.hidden', function() {
@@ -117,7 +119,7 @@ angular.module('odoo')
             if(confirmation) {
                 leadsStorageFactory.remove($scope.lead, function (affected) {
                     if (affected != 0) {
-                        var index = $scope.leads.indexOf($scope.customer);
+                        var index = $scope.leads.indexOf($scope.lead);
                         $scope.leads.splice(index, 1);
                         $scope.lead = {};
 
@@ -132,8 +134,22 @@ angular.module('odoo')
     }
 
     $scope.convertToOpportunity = function () {
-        console.log($scope.conversion);
-        $scope.leadToOpportunityModal.hide();
+        console.log('ok');
+        opportunitiesStorageFactory.save($scope.lead, function (opportunityId) {
+            $scope.leadToOpportunityModal.hide();
+
+            var index = $scope.leads.indexOf($scope.lead);
+            $scope.leads.splice(index, 1);
+            $scope.lead = {};
+
+            $scope.$apply();
+        }, function (saveErr) {
+            $scope.leadToOpportunityModal.hide();
+            $ionicPopup.alert({
+                title: 'No se puedo convertir la iniciativa',
+                template: JSON.stringify(saveErr)
+            });
+        });
     }
 
     $scope.toggleSearch = function () {

+ 4 - 4
www/js/factories/sales/lead.sync.factory.js

@@ -21,7 +21,7 @@ angular.module('odoo')
 
             } else {
 
-                odooInteroperabilityFactory.read('crm.lead', [['active', '=', true]], configuration, function (response) {
+                odooInteroperabilityFactory.read('crm.lead', [['type', '=', 'lead']], configuration, function (response) {
                     success(response);
                 }, function (odooErr) {
                     error(odooErr);
@@ -119,7 +119,7 @@ angular.module('odoo')
 
     // Send all new data from local to remote server
     var syncNewData = function (success, error) {
-        get("remote_id = 0 AND type = 'lead'", function (newLeads) {
+        get('remote_id = 0', function (newLeads) {
             asyncLoopFactory(newLeads.length, function (loop) {
                 var data = newLeads.item(loop.iteration());
 
@@ -140,7 +140,7 @@ angular.module('odoo')
 
     // Update all data from server
     var syncUpdatedData = function (success, error) {
-        get("remote_id != 0 AND modified = 1 AND type = 'lead'", function (updatedLeads) {
+        get("remote_id != 0 AND modified = 1", function (updatedLeads) {
             asyncLoopFactory(updatedLeads.length, function (loop) {
                 var data = updatedLeads.item(loop.iteration());
 
@@ -161,7 +161,7 @@ angular.module('odoo')
 
     // Delete all data
     var syncDeletedData = function (success, error) {
-        get("remote_id != 0 AND modified = 2 AND type = 'lead'", function (deletedLeads) {
+        get('remote_id != 0 AND modified = 2', function (deletedLeads) {
             asyncLoopFactory(deletedLeads.length, function (loop) {
                 var id = deletedLeads.item(loop.iteration()).remote_id;
 

+ 1 - 1
www/templates/sales/sales.html

@@ -3,7 +3,7 @@
         <ion-list>
             <ion-item class="item-icon-left" ui-sref="app.customers"><i class="ion-person-stalker positive" style="font-size:22px"></i> Clientes</ion-item>
             <ion-item class="item-icon-left" ui-sref="app.leads"><i class="ion-happy positive" style="font-size:22px"></i> Iniciativas</ion-item>
-            <ion-item class="item-icon-left" ui-sref="app.leads"><i class="ion-star positive" style="font-size:22px"></i> Oportunidades</ion-item>
+            <ion-item class="item-icon-left" ui-sref="app.opportunities"><i class="ion-star positive" style="font-size:22px"></i> Oportunidades</ion-item>
         </ion-list>
     </ion-content>
 </ion-view>