From ce14557e92331228a2e4c0b89f36da7f240766d3 Mon Sep 17 00:00:00 2001 From: koala-v <1904579228@qq.com> Date: Tue, 28 Jun 2016 17:43:13 +0800 Subject: [PATCH 1/2] update: 1. change to check the Driver Code from Todr1. 2. (From Time,To Time) Use EstimateDeliveryDateTime field 3. JobListing->Job->JobConfirm --- TMS/package.json | 5 +- TMS/www/js/app.js | 54 ++- TMS/www/js/base.js | 23 +- TMS/www/js/config.js | 1 + TMS/www/view/acceptjob/acceptjob.js | 117 ++--- TMS/www/view/joblisting/confirm.html | 16 +- TMS/www/view/joblisting/detail.html | 124 ++---- TMS/www/view/joblisting/joblisting.js | 416 +++++++++++++----- TMS/www/view/login/login.js | 51 ++- TMS/www/view/main/main.js | 78 ++-- TMS/www/view/menu/menu.js | 33 +- TMS/www/view/setting/setting.js | 141 +++--- .../API.ServiceInterface/TMS/LoginService.cs | 11 +- WebApi/API/API.ServiceModel/TMS/Tms_Login.cs | 42 +- WebApi/API/API.ServiceModel/TMS/Tobk.cs | 35 +- WebApi/API/API.ServiceModel/Tables/Tobk1.cs | 8 + .../API/Properties/PublishProfiles/API.pubxml | 2 +- 17 files changed, 737 insertions(+), 420 deletions(-) diff --git a/TMS/package.json b/TMS/package.json index 5340dc6..1802738 100644 --- a/TMS/package.json +++ b/TMS/package.json @@ -43,9 +43,10 @@ "cordova-plugin-vibration", "cordova-sms-plugin", "cordova-plugin-crosswalk-webview", - "https://github.com/phonegap/phonegap-plugin-barcodescanner.git" + "https://github.com/phonegap/phonegap-plugin-barcodescanner.git", + "https://github.com/litehelpers/Cordova-sqlite-storage" ], "cordovaPlatforms": [ "android" ] -} +} \ No newline at end of file diff --git a/TMS/www/js/app.js b/TMS/www/js/app.js index f0be9e2..13897cf 100644 --- a/TMS/www/js/app.js +++ b/TMS/www/js/app.js @@ -6,6 +6,7 @@ var app = angular.module('TMS', [ 'ionic.ion.headerShrink', 'ionMdInput', 'ngMessages', + 'ngCordova', 'ngCordova.plugins.sms', 'ngCordova.plugins.toast', 'ngCordova.plugins.dialogs', @@ -23,14 +24,61 @@ var app = angular.module('TMS', [ 'TMS.services', 'TMS.factories' ]); -app.run(['ENV', '$ionicPlatform', '$rootScope', '$state', '$location', '$timeout', '$ionicHistory', '$ionicLoading', '$cordovaToast', '$cordovaKeyboard', '$cordovaFile', - function(ENV, $ionicPlatform, $rootScope, $state, $location, $timeout, $ionicHistory, $ionicLoading, $cordovaToast, $cordovaKeyboard, $cordovaFile) { +app.run(['ENV', '$ionicPlatform', '$rootScope', '$state', '$location', '$timeout', '$ionicHistory', '$ionicLoading', '$cordovaToast', '$cordovaKeyboard', '$cordovaFile', '$cordovaSQLite', + function(ENV, $ionicPlatform, $rootScope, $state, $location, $timeout, $ionicHistory, $ionicLoading, $cordovaToast, $cordovaKeyboard, $cordovaFile, $cordovaSQLite) { $ionicPlatform.ready(function() { if (window.cordova) { ENV.fromWeb = false; $cordovaKeyboard.hideAccessoryBar(true); $cordovaKeyboard.disableScroll(true); + //sqlLite // + if (!ENV.fromWeb) { + $cordovaKeyboard.hideAccessoryBar(true); + $cordovaKeyboard.disableScroll(true); + try { + db = $cordovaSQLite.openDB({ + name: 'AppTms.db', + location: 'default' + }); + } catch (error) {} + $cordovaSQLite.execute(db, 'CREATE TABLE IF NOT EXISTS Users (id INTEGER PRIMARY KEY AUTOINCREMENT, uid TEXT)'); + $cordovaSQLite.execute(db, 'CREATE TABLE IF NOT EXISTS sqlLite_Tobk1(BookingNo TEXT,JobNo TEXT,JobType TEXT,CustomerCode TEXT,CustomerName TEXT,CustomerRefNo TEXT,CompletedFlag TEXT,DeliveryEndDateTime TEXT,EstimateDeliveryDateTime TEXT,FromPostalCode TEXT,FromName TEXT,FromAddress1 TEXT,FromAddress2 TEXT,FromAddress3 TEXT,FromAddress4 TEXT,TotalPcs INTEGER,ToPostalCode TEXT,ToName TEXT,ToAddress1 TEXT,ToAddress2 TEXT,ToAddress3 TEXT,ToAddress4 TEXT,UomCode TEXT,TotalGrossWeight INTEGER,NoOfPallet INTEGER,TotalVolume INTEGER,DescriptionOfGoods1 TEXT,Description TEXT,Note TEXT)'); + + $rootScope.sqlLite_add_Tobk1 = function(Tobk1) { + if (db) { + var sql = 'INSERT INTO sqlLite_Tobk1(BookingNo,JobNo,JobType,CustomerCode,CustomerName,CustomerRefNo,CompletedFlag,DeliveryEndDateTime,TotalPcs,ToAddress1,ToAddress2,ToAddress3,ToAddress4,UomCode,TotalGrossWeight,NoOfPallet,TotalVolume,DescriptionOfGoods1,Description,Note,EstimateDeliveryDateTime,FromPostalCode,FromName,FromAddress1,FromAddress2,FromAddress3,FromAddress4,ToPostalCode,ToName) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)'; + $cordovaSQLite.execute(db, sql, [Tobk1.BookingNo, Tobk1.JobNo, Tobk1.JobType, Tobk1.CustomerCode, Tobk1.CustomerName, Tobk1.CustomerRefNo, Tobk1.CompletedFlag, Tobk1.DeliveryEndDateTime, Tobk1.TotalPcs, Tobk1.ToAddress1, Tobk1.ToAddress2, Tobk1.ToAddress3, Tobk1.ToAddress4, Tobk1.UomCode, Tobk1.TotalGrossWeight, Tobk1.NoOfPallet, Tobk1.TotalVolume, Tobk1.DescriptionOfGoods1, Tobk1.Description, Tobk1.Note, Tobk1.EstimateDeliveryDateTime, Tobk1.FromPostalCode, Tobk1.FromName, Tobk1.FromAddress1, Tobk1.FromAddress2, Tobk1.FromAddress3, Tobk1.FromAddress4, Tobk1.ToPostalCode, Tobk1.ToName]) + .then(function(result) {}, function(error) {}); + } + }; + + $rootScope.sqlLite_add_Users = function(Todr1) { + if (db) { + var sql = 'INSERT INTO Users(uid) values(?)'; + $cordovaSQLite.execute(db, sql, [Todr1.uid]) + .then(function(result) {}, function(error) {}); + } + }; + + $rootScope.sqlLite_update_tobk1_Note = function(Tobk1) { + if (db) { + var sql = 'Update sqlLite_Tobk1 set Note=? where BookingNo=?'; + $cordovaSQLite.execute(db, sql, [Tobk1.Note, Tobk1.BookingNo]) + .then(function(result) {}, function(error) {}); + } + }; + + $rootScope.sqlLite_update_tobk1_CompletedFlag = function(Tobk1) { + if (db) { + var sql = 'Update sqlLite_Tobk1 set CompletedFlag=? where BookingNo=?'; + $cordovaSQLite.execute(db, sql, [Tobk1.CompletedFlag, Tobk1.BookingNo]) + .then(function(result) {}, function(error) {}); + } + }; + } + + //sqlLite var data = 'website=' + ENV.website + '##api=' + ENV.api + '##ssl=' + ENV.ssl; var path = cordova.file.externalRootDirectory; var directory = ENV.rootPath; @@ -220,7 +268,7 @@ app.config(['ENV', '$stateProvider', '$urlRouterProvider', '$ionicConfigProvider controller: 'driverCodeCtrl' }) .state('jobListingConfirm', { - url: '/joblisting/confirm/:BookingNo/:JobNo', + url: '/joblisting/confirm/:BookingNo/:JobNo/:Packages', cache: 'false', templateUrl: 'view/joblisting/confirm.html', controller: 'JoblistingConfirmCtrl' diff --git a/TMS/www/js/base.js b/TMS/www/js/base.js index 6cb3d3a..7ea5339 100644 --- a/TMS/www/js/base.js +++ b/TMS/www/js/base.js @@ -1,3 +1,5 @@ +var db; + var appendProtocol = function(url, blnSSL, portNo) { if (url.length > 0 && url.toUpperCase().indexOf('HTTPS://') < 0 && url.toUpperCase().indexOf('HTTP://') < 0) { if (blnSSL) { @@ -28,7 +30,9 @@ var checkDatetime = function(datetime) { datetime = ''; } if (is.not.empty(datetime)) { - datetime = moment(datetime).format('DD-MMM-YYYY'); + datetime1 = moment(datetime).format('HH:mm'); + datetime2=moment(datetime).add(2,'hours').format('HH:mm'); + datetime=datetime1+' - '+datetime2; } return datetime; }; @@ -65,7 +69,7 @@ if (dbTms) { dbTms.transaction(function(tx) { dbSql = 'DROP TABLE if exists Tobk1_Accept'; tx.executeSql(dbSql, [], null, dbError); - dbSql = "CREATE TABLE Tobk1_Accept (BookingNo TEXT, JobNo TEXT, JobType TEXT,CustomerCode TEXT,CustomerName TEXT,CustomerRefNo TEXT,CompletedFlag TEXT,DeliveryEndDateTime TEXT,TotalPcs int,ToAddress1 TEXT,ToAddress2 TEXT,ToAddress3 TEXT,ToAddress4 TEXT,UomCode TEXT)"; + dbSql = "CREATE TABLE Tobk1_Accept (BookingNo TEXT,JobNo TEXT,JobType TEXT,CustomerCode TEXT,CustomerName TEXT,CustomerRefNo TEXT,CompletedFlag TEXT,DeliveryEndDateTime TEXT,EstimateDeliveryDateTime TEXT,FromPostalCode TEXT,FromName TEXT,FromAddress1 TEXT,FromAddress2 TEXT,FromAddress3 TEXT,FromAddress4 TEXT,TotalPcs int,ToPostalCode TEXT,ToName TEXT,ToAddress1 TEXT,ToAddress2 TEXT,ToAddress3 TEXT,ToAddress4 TEXT,UomCode TEXT,TotalGrossWeight int,NoOfPallet int,TotalVolume int,DescriptionOfGoods1 TEXT,Description TEXT,Note TEXT)"; tx.executeSql(dbSql, [], null, dbError); }); } @@ -78,12 +82,12 @@ var db_del_Tobk1_Accept = function() { } } var db_add_Tobk1_Accept = function(Tobk1) { + console.log(Tobk1); if (dbTms) { dbTms.transaction(function(tx) { Tobk1 = repalceObj(Tobk1); - dbSql = 'INSERT INTO Tobk1_Accept(BookingNo,JobNo,JobType,CustomerCode,CustomerName,CustomerRefNo,CompletedFlag,DeliveryEndDateTime,TotalPcs,ToAddress1,ToAddress2,ToAddress3,ToAddress4,UomCode) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)'; - tx.executeSql(dbSql, [Tobk1.BookingNo, Tobk1.JobNo, Tobk1.JobType, Tobk1.CustomerCode, Tobk1.CustomerName, Tobk1.CustomerRefNo, Tobk1.CompletedFlag, Tobk1.DeliveryEndDateTime, Tobk1.TotalPcs, Tobk1.ToAddress1, Tobk1.ToAddress2, Tobk1.ToAddress3, Tobk1.ToAddress4, Tobk1.UomCode], null, dbError); - + dbSql = 'INSERT INTO Tobk1_Accept(BookingNo,JobNo,JobType,CustomerCode,CustomerName,CustomerRefNo,CompletedFlag,DeliveryEndDateTime,TotalPcs,ToAddress1,ToAddress2,ToAddress3,ToAddress4,UomCode,TotalGrossWeight,NoOfPallet,TotalVolume,DescriptionOfGoods1,Description,Note,EstimateDeliveryDateTime,FromPostalCode,FromName,FromAddress1,FromAddress2,FromAddress3,FromAddress4,ToPostalCode,ToName) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)'; + tx.executeSql(dbSql, [Tobk1.BookingNo,Tobk1.JobNo,Tobk1.JobType,Tobk1.CustomerCode,Tobk1.CustomerName,Tobk1.CustomerRefNo,Tobk1.CompletedFlag,Tobk1.DeliveryEndDateTime,Tobk1.TotalPcs,Tobk1.ToAddress1,Tobk1.ToAddress2,Tobk1.ToAddress3,Tobk1.ToAddress4,Tobk1.UomCode,Tobk1.TotalGrossWeight,Tobk1.NoOfPallet,Tobk1.TotalVolume,Tobk1.DescriptionOfGoods1,Tobk1.Description,Tobk1.Note,Tobk1.EstimateDeliveryDateTime,Tobk1.FromPostalCode,Tobk1.FromName,Tobk1.FromAddress1,Tobk1.FromAddress2,Tobk1.FromAddress3,Tobk1.FromAddress4,Tobk1.ToPostalCode,Tobk1.ToName], null, dbError); }); } } @@ -96,3 +100,12 @@ var db_update_Tobk1_Accept = function(Tobk1) { }); } } + +var db_update_tobk1_Note = function(Tobk1) { + if (dbTms) { + dbTms.transaction(function(tx) { + dbSql = 'Update Tobk1_Accept set Note=? where BookingNo=?'; + tx.executeSql(dbSql, [Tobk1.Note, Tobk1.BookingNo], null, dbError); + }); + } +} diff --git a/TMS/www/js/config.js b/TMS/www/js/config.js index e43f519..eb658cd 100644 --- a/TMS/www/js/config.js +++ b/TMS/www/js/config.js @@ -3,6 +3,7 @@ var appConfig = angular.module('TMS.config',[]); appConfig.constant('ENV', { 'website': 'www.sysfreight.net/app/tms/sysfreight', 'api': 'www.sysfreight.net/apis/tms/sysfreight', + // 'api':'http://localhost:2979', 'port': '8081', // http port no 'debug': true, 'mock': false, diff --git a/TMS/www/view/acceptjob/acceptjob.js b/TMS/www/view/acceptjob/acceptjob.js index 94ff091..dfd3c6c 100644 --- a/TMS/www/view/acceptjob/acceptjob.js +++ b/TMS/www/view/acceptjob/acceptjob.js @@ -1,6 +1,6 @@ 'use strict'; -app.controller( 'AcceptJobCtrl', [ '$scope', '$state', '$ionicPopup', '$cordovaKeyboard', '$cordovaBarcodeScanner', 'ACCEPTJOB_ORM', 'ApiService', - function( $scope, $state, $ionicPopup, $cordovaKeyboard, $cordovaBarcodeScanner, ACCEPTJOB_ORM, ApiService ) { +app.controller('AcceptJobCtrl', ['$scope', '$state', '$ionicPopup', '$cordovaKeyboard', '$cordovaBarcodeScanner', 'ACCEPTJOB_ORM', 'ApiService', + function($scope, $state, $ionicPopup, $cordovaKeyboard, $cordovaBarcodeScanner, ACCEPTJOB_ORM, ApiService) { var alertPopup = null, dataResults = new Array(); $scope.Search = { @@ -50,97 +50,98 @@ app.controller( 'AcceptJobCtrl', [ '$scope', '$state', '$ionicPopup', '$cordovaK } ]; */ - var showPopup = function( title, type ) { - if ( alertPopup === null ) { - alertPopup = $ionicPopup.alert( { + var showPopup = function(title, type) { + if (alertPopup === null) { + alertPopup = $ionicPopup.alert({ title: title, okType: 'button-' + type - } ); + }); } else { alertPopup.close(); alertPopup = null; } }; - var showList = function(){ - if ( is.not.empty(ACCEPTJOB_ORM.LIST.Tobk1s) ) { - dataResults = dataResults.concat( ACCEPTJOB_ORM.LIST.Tobk1s ); - $scope.jobs = dataResults; - } + var showList = function() { + if (is.not.empty(ACCEPTJOB_ORM.LIST.Tobk1s)) { + dataResults = dataResults.concat(ACCEPTJOB_ORM.LIST.Tobk1s); + $scope.jobs = dataResults; + } }; - var showTobk = function( bookingNo ) { - if ( is.not.empty( bookingNo ) ) { + var showTobk = function(bookingNo) { + if (is.not.empty(bookingNo)) { var strUri = '/api/tms/tobk1?BookingNo=' + bookingNo; - ApiService.GetParam( strUri, true ).then( function success( result ) { + ApiService.GetParam(strUri, true).then(function success(result) { var results = result.data.results; - if(is.not.empty(results)){ - var tobk1 = { - action: 'Collect', - amt: results[ 0 ].TotalPcs + ' ' + results[ 0 ].UomCode, - time: checkDatetime(results[ 0 ].DeliveryEndDateTime), - code: ' ', - customer: { - name: results[ 0 ].CustomerName, - address: results[ 0 ].ToAddress1 + results[ 0 ].ToAddress2 + results[ 0 ].ToAddress3 + results[ 0 ].ToAddress4 - } - }; - for ( var i = 0; i < results.length; i++ ) { - db_add_Tobk1_Accept( results[ i ] ); + if (is.not.empty(results)) { + var tobk1 = { + action: 'Collect', + amt: results[0].TotalPcs + ' ' + results[0].UomCode, + time: checkDatetime(results[0].DeliveryEndDateTime), + code: ' ', + customer: { + name: results[0].CustomerName, + address: results[0].ToAddress1 + results[0].ToAddress2 + results[0].ToAddress3 + results[0].ToAddress4 } - dataResults = dataResults.concat( tobk1 ); - $scope.jobs = dataResults; - ACCEPTJOB_ORM.LIST._setTobk( $scope.jobs ); + }; + for (var i = 0; i < results.length; i++) { + db_add_Tobk1_Accept(results[i]); + } + dataResults = dataResults.concat(tobk1); + $scope.jobs = dataResults; + ACCEPTJOB_ORM.LIST._setTobk($scope.jobs); } $scope.Search.BookingNo = ''; - $( '#div-list' ).focus(); - } ); + $('#div-list').focus(); + }); } else { - showPopup( 'Wrong Booking No', 'assertive' ); + showPopup('Wrong Booking No', 'assertive'); } }; $scope.returnMain = function() { - $state.go( 'index.main', {}, { + $state.go('index.main', {}, { reload: true - } ); + }); }; $scope.save = function() { - if(is.not.empty($scope.jobs)){ - $state.go( 'jobListingList', {}, {} ); - }else{ - showPopup( 'No Job Accepted', 'calm' ); - } + if (is.not.empty($scope.jobs)) { + $state.go('jobListingList', {}, {}); + } else { + showPopup('No Job Accepted', 'calm'); + } }; $scope.clear = function() { - dataResults = new Array(); - $scope.jobs = dataResults; - ACCEPTJOB_ORM.LIST._setTobk( $scope.jobs ); - $scope.Search.BookingNo = ''; + dataResults = new Array(); + $scope.jobs = dataResults; + ACCEPTJOB_ORM.LIST._setTobk($scope.jobs); + $scope.Search.BookingNo = ''; }; $scope.openCam = function() { - $cordovaBarcodeScanner.scan().then( function( imageData ) { + $cordovaBarcodeScanner.scan().then(function(imageData) { $scope.Search.BookingNo = imageData.text; - showTobk( $scope.Search.BookingNo ); - }, function( error ) { - $cordovaToast.showShortBottom( error ); - } ); + showTobk($scope.Search.BookingNo); + }, function(error) { + $cordovaToast.showShortBottom(error); + }); }; $scope.clearInput = function() { - if ( is.not.empty( $scope.Search.BookingNo ) ) { + if (is.not.empty($scope.Search.BookingNo)) { $scope.Search.BookingNo = ''; - $( '#txt-bookingno' ).select(); + $('#txt-bookingno').select(); } }; - $( '#txt-bookingno' ).on( 'keydown', function( e ) { - if ( e.which === 9 || e.which === 13 ) { - if ( window.cordova ) { + $('#txt-bookingno').on('keydown', function(e) { + if (e.which === 9 || e.which === 13) { + if (window.cordova) { $cordovaKeyboard.close(); } - if ( alertPopup === null ) { - showTobk( $scope.Search.BookingNo ); + if (alertPopup === null) { + showTobk($scope.Search.BookingNo); } else { alertPopup.close(); alertPopup = null; } } - } ); + }); showList(); - }] ); + } +]); diff --git a/TMS/www/view/joblisting/confirm.html b/TMS/www/view/joblisting/confirm.html index a3fe871..2ef5a46 100644 --- a/TMS/www/view/joblisting/confirm.html +++ b/TMS/www/view/joblisting/confirm.html @@ -3,7 +3,7 @@
-

Job Confirmation

+

Job Confirmation

@@ -11,20 +11,12 @@

Job Confirmation

Please sign below to confirm that the

following was collected/delivered :

-
-
-

Amount

-
-
-

0

-
-

Packages

-

0

+

0

@@ -40,7 +32,7 @@

0

-
+
diff --git a/TMS/www/view/joblisting/detail.html b/TMS/www/view/joblisting/detail.html index e39c346..317f409 100644 --- a/TMS/www/view/joblisting/detail.html +++ b/TMS/www/view/joblisting/detail.html @@ -5,120 +5,82 @@

Collection

- +
- - -
-
- - -
-
-
- Box Size -
-
- No Of Boxes -
-
- Collected -
-
-
- -
-
- JU MBO - -
-
- 11 - -
-
- 22 - -
-
-
- - -
-
- -
-
+
- Deposit - + Pcs:
-

+

 

- Balance + Plt:
-

+

- Discount + Weight:
-

+

- Collected + Volume:
- 0 +

+ +
+

Cargo Description:

+ + +
+
+

Special Instructions:

+ + +
+ +
+

Remark:

+ + +
- - + + + +