Kaynağa Gözat

cancel/restore each row

Jad Meouchy 9 yıl önce
ebeveyn
işleme
8bf462a013

+ 1 - 1
db.php

@@ -147,7 +147,7 @@ function getRowsByCompany($id_company, $week_number = null)
 			ctns, weight, cube,
 			DATE_FORMAT(file_row.date_processed, '%m/%d/%Y') date_processed,
 			
-			driver.id_driver id_driver, trailer
+			driver.id_driver id_driver, trailer, date_canceled
 
 		FROM file_row
 		INNER JOIN file USING(id_file)

+ 9 - 0
www/api/updateRowImmediate.php

@@ -27,6 +27,15 @@ foreach($fields_to_check as $key)
 	}
 
 	
+if(isset($_REQUEST['date_canceled']))
+{
+	if(strlen($dynamic_fields) > 0)
+		$dynamic_fields .= ", ";
+
+	$dynamic_fields .= "date_canceled = " . ($_REQUEST['date_canceled'] ? 'NOW()' : 'NULL');
+}
+
+
 $sql = "UPDATE file_row
 	SET $dynamic_fields
 	WHERE id_file_row = :id_file_row";

+ 16 - 0
www/css/sd.css

@@ -26,4 +26,20 @@
 	text-align: center;
 	
 	margin-top: 1em;
+}
+
+
+table .date_canceled button
+{
+	padding: 0.1em 0.25em;
+}
+
+table .date_canceled button > img
+{
+	width: 1em;
+}
+
+table th.date_canceled.sorting
+{
+	background: none;
 }

+ 1 - 1
www/js/init.js

@@ -23,7 +23,7 @@ function loadApp()
 		if($("#show-completed").prop('checked'))
 			return true;
 		
-		return !row.time_pickup || !row.time_depart || !row.bol_delivered;
+		return (!row.time_pickup || !row.time_depart || !row.bol_delivered) && !row.date_canceled;
 	});
 	
 	$("#show-completed").change(function()

+ 60 - 2
www/js/routes.js

@@ -214,7 +214,22 @@ function createTable(id_company, table_dom)
 			{ 'title': 'Pickup Time', 'data': 'time_pickup', 'defaultContent': ' ', 'className': 'time_pickup' },
 			{ 'title': 'Depart Time', 'data': 'time_depart', 'defaultContent': ' ', 'className': 'time_depart' },
 			{ 'title': 'BOL Delivered', 'data': 'bol_delivered', 'defaultContent': ' ', 'className': 'bol_delivered' },
-			{ 'title': 'Acknowledged', 'data': 'date_processed', 'defaultContent': ' ', 'className': 'date_processed' }
+			{ 'title': 'Acknowledged', 'data': 'date_processed', 'defaultContent': ' ', 'className': 'date_processed' },
+			{ 'title': '', 'data': 'date_canceled', 'defaultContent': ' ', 'className': 'date_canceled',
+				'render': function(data, type, row)
+				{
+					//if the row is already completed, then don't show any buttons
+					if(row.time_pickup && row.time_depart && row.bol_delivered)
+						return '';
+					
+					//if it's been canceled, show the restore button
+					if(row.date_canceled)
+						return '<button class="restore"><img src="media/undo-variant.png"/></button>';
+					
+					//show the cancel button
+					return '<button class="cancel"><img src="media/close.png"/></button>';
+				}
+			}
 		],
 		'language':
 		{
@@ -227,7 +242,7 @@ function createTable(id_company, table_dom)
 		'fixedColumns':
 		{
 			'leftColumns': 0,
-			'rightColumns': 4
+			'rightColumns': 5
 		},
 		'pageLength': 200,
 /*		'buttons': [{
@@ -387,6 +402,49 @@ function createTable(id_company, table_dom)
 		editor.bubble(this, ['trailer', 'id_driver']);
 	});
 	
+	
+	$(table_dom).on('click', 'td.date_canceled button.cancel', function(e)
+	{
+		var row = table.row($(this).closest('tr')).data();
+		var id_file_row = row.id_file_row;
+		
+		if(confirm('Are you sure you want to cancel that row?'))
+		{
+			$.post('api/updateRowImmediate.php?id_file_row=' + id_file_row, { date_canceled: 1 })
+				.done(function(response)
+				{
+					row.date_canceled = new Date();
+					
+					table.rows().invalidate('data').draw(false);
+				})
+				.fail(function(err, xhr, text)
+				{
+					console.log(err['responseText']);
+				});
+		}
+	});
+	
+	$(table_dom).on('click', 'td.date_canceled button.restore', function(e)
+	{
+		var row = table.row($(this).closest('tr')).data();
+		var id_file_row = row.id_file_row;
+		
+		if(confirm('Are you sure you want to restore that canceled row?'))
+		{
+			$.post('api/updateRowImmediate.php?id_file_row=' + id_file_row, { date_canceled: 0 })
+				.done(function(response)
+				{
+					row.date_canceled = null;
+					
+					table.rows().invalidate('data').draw(false);
+				})
+				.fail(function(err, xhr, text)
+				{
+					console.log(err['responseText']);
+				});
+		}
+	});
+	
 	/*
 	$(table_dom).on('click', 'td.time_pickup, td.time_depart, td.bol_delivered', function(e) {
 		editor.bubble(this, [ 'time_pickup', 'time_depart', 'bol_delivered' ]);

BIN
www/media/close.png


BIN
www/media/undo-variant.png