Przeglądaj źródła

observaciones, css

David 9 lat temu
rodzic
commit
375eedc6cc

+ 7 - 7
back/db.py

@@ -34,7 +34,7 @@ class db():
 
 	def get_pedido(self, clientid, pedidoid):
 		cur = self.get_cursor()
-		cur.execute( "SELECT id, cant_productos, subtotal, fecha, estado FROM pedidos where cliente = %s and id = %s", (int(clientid),pedidoid) )
+		cur.execute( "SELECT id, cant_productos, subtotal, fecha, estado, observaciones FROM pedidos where cliente = %s and id = %s", (int(clientid),pedidoid) )
 		pedido = cur.fetchone()
 		pedido["fecha"] = pedido["fecha"].isoformat() #strftime("%Y-%m-%d %H:%M")
 
@@ -54,7 +54,7 @@ class db():
 	def pedidos(self, clientid):
 		ret=[]
 		cur = self.get_cursor()
-		cur.execute( "SELECT id, cant_productos, subtotal, fecha, estado FROM pedidos where cliente = %s", (int(clientid),) )
+		cur.execute( "SELECT id, cant_productos, subtotal, fecha, estado, observaciones FROM pedidos where cliente = %s", (int(clientid),) )
 		for row in cur.fetchall():
 			row["fecha"] = row["fecha"].isoformat() #strftime("%Y-%m-%d %H:%M")
 			ret.append(row)
@@ -74,7 +74,7 @@ class db():
 
 		return ret
 
-	def update_pedido(self, productos, _hash, id_pedido):
+	def update_pedido(self, productos, _hash, obs, id_pedido):
 		clienteID = int(self.client(_hash)["id"])
 		cur = self.get_cursor()
 
@@ -87,21 +87,21 @@ class db():
 		subtotal = sum([ p["precio"]*p["cantidad"] for p in productos])
 		cantidad = sum([ p["cantidad"] for p in productos])
 
-		cur.execute("UPDATE pedidos SET cant_productos = %s, subtotal = %s, fecha=NOW() WHERE id = %s", ( cantidad, subtotal, id_pedido ))
+		cur.execute("UPDATE pedidos SET cant_productos = %s, subtotal = %s, observaciones = %s, fecha=NOW() WHERE id = %s", ( cantidad, subtotal, obs, id_pedido ))
 
 		lista_productos = [ (id_pedido,p["id"],p["cantidad"]) for p in productos ]
 		cur.executemany("insert into productos_pedido(id_pedido,id_producto,cantidad) values (%s, %s, %s)", lista_productos)
 		self.conn.commit()
 
-	def create_pedido(self, productos, _hash):
+	def create_pedido(self, productos, _hash, obs):
 		clienteID = int(self.client(_hash)["id"])
 
 		cur = self.get_cursor()
 		subtotal = sum([ p["precio"]*p["cantidad"] for p in productos])
-		params = ( clienteID, sum([ p["cantidad"] for p in productos]), subtotal )
+		params = ( clienteID, sum([ p["cantidad"] for p in productos]), subtotal, obs )
 
 		#CREADO, CONFIRMADO, ARMADO, ENVIADO
-		ex  = cur.execute("insert into pedidos (cliente,cant_productos,subtotal,fecha,estado) values (%s, %s, %s, NOW(), 'CREADO')", params)
+		ex  = cur.execute("insert into pedidos (cliente,cant_productos,subtotal,fecha,estado) values (%s, %s, %s, %s, NOW(), 'CREADO')", params)
 		_id = cur.lastrowid
 		lista_productos = [ (_id,p["id"],p["cantidad"]) for p in productos ]
 		cur.executemany("insert into productos_pedido(id_pedido,id_producto,cantidad) values (%s, %s, %s)", lista_productos)

+ 3 - 2
back/web.py

@@ -41,11 +41,12 @@ def pedido():
 	r = request.get_json()
 	productos = r["pedido"]["productos"]
 	cliente = r["pedido"]["cliente"]
+	obs = r["pedido"]["observaciones"]
 
 	if "id" in r["pedido"]:
-		d.update_pedido(productos,cliente, r["pedido"]["id"])
+		d.update_pedido(productos, cliente, obs, r["pedido"]["id"])
 	else:
-		d.create_pedido(productos,cliente)
+		d.create_pedido(productos, cliente, obs)
 
 	return "{}"
 

+ 14 - 0
controllers/createPedidoCtrl.js

@@ -1,6 +1,8 @@
 app.controller('createPedidoCtrl', function ($scope, $http, $routeParams, notify, $location, $timeout) {
 	$scope.cero=true;
 	$scope.total=0;
+	$scope.observaciones = "-";
+	$scope.fecha = new Date();
 
 	$scope.modificar = function() {
 		$scope.cero=true;
@@ -9,6 +11,10 @@ app.controller('createPedidoCtrl', function ($scope, $http, $routeParams, notify
 		$scope.cero=false;
 	};
 	$scope.update = function() {
+		$http.get('back/cliente/' + $routeParams.hash).success(function(data) {
+	   		$scope.userdata = data.data; 
+		});
+
 		$http.get('back/productos/' + $routeParams.hash).success(function(data) {
 	   		$scope.listaproductos = data; 
 		}).error(function(data) {
@@ -22,6 +28,13 @@ app.controller('createPedidoCtrl', function ($scope, $http, $routeParams, notify
 			return item.cantidad > 0;
 		};
 		
+	};
+	$scope.validateKeypress = function(e) {
+		if ( [46, 8, 9, 27, 13, 37, 39, 116].indexOf(e.keyCode) > -1 )
+			return;
+		if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
+            e.preventDefault();
+        }
 	};
 	$scope.updateTotal = function() {
 		var total=0;
@@ -52,6 +65,7 @@ app.controller('createPedidoCtrl', function ($scope, $http, $routeParams, notify
 
 		pedido.productos = filtrados;
 		pedido.cliente = $routeParams.hash;
+		pedido.observaciones = $scope.observaciones;
 
 		$http.post('back/pedido', { pedido: pedido } )
 	        .success(function(data, status, headers, config) {

+ 8 - 0
controllers/editPedidoCtrl.js

@@ -1,6 +1,8 @@
 app.controller('editPedidoCtrl', function ($scope, $http, $routeParams, notify, $location, $timeout) {
 	$scope.cero=true;
 	$scope.total=0;
+	$scope.observaciones="";
+	$scope.fecha = new Date();
 
 	$scope.modificar = function() {
 		$scope.cero=true;
@@ -11,9 +13,14 @@ app.controller('editPedidoCtrl', function ($scope, $http, $routeParams, notify,
 	};
 
 	$scope.update = function() {
+		$http.get('back/cliente/' + $routeParams.hash).then(function(data) {
+	   		$scope.userdata = data.data; 
+		});
+
 		$http.get('back/pedido/'+$routeParams.hash+'/'+$routeParams.id).then(
 		function(data) {
 	   		$scope.listaproductos = data.data.productos; 
+			$scope.observaciones = data.data.observaciones || "";
 			$scope.updateTotal();
 		},
 		function(data) {
@@ -68,6 +75,7 @@ app.controller('editPedidoCtrl', function ($scope, $http, $routeParams, notify,
 		pedido.productos = filtrados;
 		pedido.cliente = $routeParams.hash;
 		pedido.id = $routeParams.id;
+		pedido.observaciones = $scope.observaciones;
 
 		$http.post('back/pedido', { pedido: pedido } )
 	        .success(function(data, status, headers, config) {

+ 7 - 1
views/createOrEditPedido.html

@@ -1,7 +1,7 @@
 <div class="row">
 	<div class="col-md-12">
 		<label>
-			<h3>Pedido {{userdata.nombre}} {{userdata.apellido}}</h3>
+			<h3>Pedido {{userdata.nombre}} {{userdata.apellido}} - {{fecha | date: 'dd/MM/yyyy'}}</h3>
 		</label>
 	</div>
 </div>
@@ -43,6 +43,12 @@
 			${{total}}
 		</div>
 	</div>
+	<div class="row">
+		<div class="col-md-12">
+			<label>Observaciones:</label>
+			<textarea class="form-control" ng-model="observaciones" multiline="true" style="max-width:100%;max-height:200px;"> </textarea>
+		</div>
+	</div>
 	<div class="row">
 		<div class="col-md-12">
 			<button ng-show="cero==true" class="css-button" ng-click="confirmar()">Confirmar</button>

+ 11 - 4
views/main.html

@@ -11,23 +11,30 @@
 		</div>
 		<div class="col-md-3">
 			<a ng-href="/create/{{userdata.hash}}">
-				<button class="btn">Crear</button>
+				<button class="btn">Generar Pedido</button>
 			</a>
 		</div>
 	</div>
 
-	<div class="col-md-6 col-md-offset-3 col-sm-12 col-xs-12">
-		<table class="table table-striped">
+	<div class="col-md-8 col-md-offset-2 col-sm-12 col-xs-12">
+		<div ng-if="pedidos == null || pedidos.length == 0">
+			No hay pedidos creados.
+		</div>
+		<table ng-if="pedidos && pedidos.length > 0" class="table table-striped">
 			<tr>
 				<th>Fecha</th>
+				<th># Pedido</th>
 				<th># Productos</th>
-				<th>subtotal</th>
+				<th>Observaciones</th>
+				<th>Subtotal</th>
 				<th>Estado</th>
 				<th>Acciones</th>
 			</tr>
 			<tr ng-repeat="p in pedidos">
 				<td>{{p.fecha | date: 'dd/MM/yyyy HH:mm'}}</td>
+				<td>{{p.id}}</td>
 				<td>{{p.cant_productos}}</td>
+				<td>{{p.observaciones}}</td>
 				<td>${{p.subtotal}}</td>
 				<td>{{p.estado}}</td>
 				<td>