@@ -152,37 +152,39 @@ $app->map(['GET', 'POST'], "/order/{id}/create", function (Request $request, Res | |||
}; | |||
}); | |||
$app->get('/order/{id}', function (Request $request, Response $response, array $args) { | |||
$app->get('/order/{id}', \Shop\Controller\OrderID::class . ':orderID'); | |||
$db = new myDB(); | |||
// $app->get('/order/{id}', function (Request $request, Response $response, array $args) { | |||
// detail orderlijnen | |||
$sql = "SELECT * FROM order_lines o LEFT JOIN products p on o.product_id = p.id where o.order_id = " . $args['id']; | |||
$stmt = $db->prepare($sql); | |||
$res = $stmt->execute(); | |||
// $db = new myDB(); | |||
// detail order | |||
$db2 = new myDB(); | |||
$stmt = $db2->prepare("SELECT * FROM orders WHERE id = " . $args['id']); | |||
$res2 = $stmt->execute(); | |||
$a = $res2->fetchArray(SQLITE3_ASSOC); | |||
$response->getBody()->write('<a href="/order/' . $args['id'] . '/create">Add orderline</a>'); | |||
// // detail orderlijnen | |||
// $sql = "SELECT * FROM order_lines o LEFT JOIN products p on o.product_id = p.id where o.order_id = " . $args['id']; | |||
// $stmt = $db->prepare($sql); | |||
// $res = $stmt->execute(); | |||
// // detail order | |||
// $db2 = new myDB(); | |||
// $stmt = $db2->prepare("SELECT * FROM orders WHERE id = " . $args['id']); | |||
// $res2 = $stmt->execute(); | |||
// $a = $res2->fetchArray(SQLITE3_ASSOC); | |||
// $response->getBody()->write('<a href="/order/' . $args['id'] . '/create">Add orderline</a>'); | |||
$response->getBody()->write("<h1>ORDER DETAILS FOR ORDER " . $a['reference'] . "</h1>"); | |||
$response->getBody()->write('<hr/>'); | |||
$response->getBody()->write("<table>"); | |||
while ($row = $res->fetchArray(SQLITE3_ASSOC)) { | |||
// maak hier een deftige tabel van | |||
$response->getBody()->write("<tr><td>" . " " . $row['id'] . " " . $row["itemnumber"] . " " . $row['name'] . " " . $row['qty'] . " " . $row['subtotal'] . " " . $row['vat'] . " " . $row['total'] . "</td></tr>"); | |||
} | |||
$response->getBody()->write("</table>"); | |||
$response->getBody()->write('<hr/>'); | |||
$response->getBody()->write('<a href="/customers">Back to customer list</a> <a href="/orders">Back to order list</a>'); | |||
// $response->getBody()->write("<h1>ORDER DETAILS FOR ORDER " . $a['reference'] . "</h1>"); | |||
// $response->getBody()->write('<hr/>'); | |||
// $response->getBody()->write("<table>"); | |||
// while ($row = $res->fetchArray(SQLITE3_ASSOC)) { | |||
// // maak hier een deftige tabel van | |||
// $response->getBody()->write("<tr><td>" . " " . $row['id'] . " " . $row["itemnumber"] . " " . $row['name'] . " " . $row['qty'] . " " . $row['subtotal'] . " " . $row['vat'] . " " . $row['total'] . "</td></tr>"); | |||
// } | |||
// $response->getBody()->write("</table>"); | |||
// $response->getBody()->write('<hr/>'); | |||
return $response; | |||
}); | |||
// $response->getBody()->write('<a href="/customers">Back to customer list</a> <a href="/orders">Back to order list</a>'); | |||
// return $response; | |||
// }); | |||
$app->get('/customers', \Shop\Controller\Clients::class . ':clients'); |
@@ -11,6 +11,7 @@ class Clients | |||
{ | |||
protected $container; | |||
protected $twig; | |||
protected $vars; | |||
public function __construct(ContainerInterface $container) | |||
{ |
@@ -0,0 +1,37 @@ | |||
<?php | |||
namespace Shop\Controller; | |||
use Psr\Http\Message\ResponseInterface; | |||
use Psr\Http\Message\ServerRequestInterface; | |||
use Psr\Container\ContainerInterface; | |||
use Shop\DB\Order; | |||
class OrderID | |||
{ | |||
protected $container; | |||
protected $twig; | |||
protected $vars; | |||
public function __construct(ContainerInterface $container) | |||
{ | |||
$this->container = $container; | |||
} | |||
public function orderID(ServerRequestInterface $request, ResponseInterface $response, array $args) | |||
{ | |||
$container = $this->container; | |||
$twig = $container->get('twig'); | |||
$db = new Order($this->container); | |||
$orderLines = $db->getOrderLines($args['id']); | |||
$orderDetails = $db->getOrderDetail($args['id']); | |||
$vars = ["orderlines" => $orderLines, "orderdetails" => $orderDetails, "custid" => $args['id']]; | |||
$a = $twig->render('orderID.html.twig', $vars); | |||
$response->getBody()->write($a); | |||
return $response; | |||
} | |||
} |
@@ -8,19 +8,50 @@ use Shop\DB\myDB; | |||
class Order | |||
{ | |||
protected $container; | |||
protected $orderlines = []; | |||
protected $details = []; | |||
public function __construct($container) { | |||
$this->container = $container; | |||
} | |||
public function createOrder(OrderModel $data) | |||
public function getOrderLines($id) | |||
{ | |||
$db = $this->container->get('db'); | |||
$sql = "SELECT * FROM order_lines o LEFT JOIN products p on o.product_id = p.id where o.order_id = :id;"; | |||
$stmt = $db->prepare($sql); | |||
$stmt->bindValue(':id', $id, SQLITE3_INTEGER); | |||
$res = $stmt->execute(); | |||
while ($result = $res->fetchArray(SQLITE3_ASSOC)) { | |||
$orderLine = new OrderModel($this->container); | |||
$orderLine->setId($result['id']); | |||
$orderLine->setName($result['name']); | |||
$orderLine->setItemnumber($result['itemnumber']); | |||
$orderLine->setQty($result['qty']); | |||
$orderLine->setSubtotal($result['subtotal']); | |||
$orderLine->setVat($result['vat']); | |||
$orderLine->setTotal($result['total']); | |||
$this->orderlines[] = $orderLine; | |||
} | |||
return $this->orderlines; | |||
} | |||
public function getOrderDetail($id) { | |||
$db = $this->container->get('db'); | |||
$stmt = $db->prepare("SELECT * FROM orders WHERE id = :id"); | |||
$stmt->bindValue(':id', $id, SQLITE3_INTEGER); | |||
$res = $stmt->execute(); | |||
while ($result = $res->fetchArray(SQLITE3_ASSOC)) { | |||
$detail = new OrderModel($this->container); | |||
$detail->setReference($result['reference']); | |||
$this->details[] = $detail; | |||
} | |||
return $this->details; | |||
} | |||
public function getClient($id) | |||
{ | |||
$db = new myDB(); | |||
$db = $this->container->get('db'); | |||
$sql = "SELECT * FROM clients WHERE id = :id;"; | |||
$stmt = $db->prepare($sql); | |||
$stmt->bindValue(':id', $id, SQLITE3_INTEGER); |
@@ -10,6 +10,12 @@ class Order | |||
protected $container; | |||
protected $reference; | |||
protected $id; | |||
protected $itemnumber; | |||
protected $name; | |||
protected $qty; | |||
protected $subtotal; | |||
protected $vat; | |||
protected $total; | |||
public function __container($container) { | |||
$this->container = $container; | |||
@@ -25,9 +31,36 @@ class Order | |||
$this->id = $value; | |||
} | |||
public function order() { | |||
$db = new DBOrder($this->container); | |||
$db->createOrder($this); | |||
public function setItemnumber($value) | |||
{ | |||
$this->itemnumber = $value; | |||
} | |||
public function setName($value) | |||
{ | |||
$this->name = $value; | |||
} | |||
public function setQty($value) | |||
{ | |||
$this->qty = $value; | |||
} | |||
public function setSubtotal($value) | |||
{ | |||
$this->subtotal = $value; | |||
} | |||
public function setVat($value) | |||
{ | |||
$this->vat = $value; | |||
} | |||
public function setTotal($value) | |||
{ | |||
$this->total = $value; | |||
} | |||
} |
@@ -16,7 +16,7 @@ | |||
<th>State</th> | |||
<th>Country</th> | |||
</tr> | |||
{% for clients in clients%} | |||
{% for clients in clients %} | |||
<tr> | |||
<td> | |||
<a href="/orders/{{ clients.id }}">{{ clients.id }}</a> |
@@ -0,0 +1,29 @@ | |||
{% extends "base.html.twig" %} {% block main %} | |||
<a href="/order/{{ custid }}/create">Add orderline</a> | |||
<h1>ORDER DETAILS FOR ORDER {{ orderdetails.reference }}</h1> | |||
<hr /> | |||
<table> | |||
<tr> | |||
<th>id</th> | |||
<th>Itemnumber</th> | |||
<th>Name</th> | |||
<th>Quantity</th> | |||
<th>Subtotal</th> | |||
<th>VAT</th> | |||
<th>Total</th> | |||
</tr> | |||
{% for orderlines in orderlines %} | |||
<tr> | |||
<td>{{ orderlines.id }}</td> | |||
<td>{{ orderlines.itemnumber }}</td> | |||
<td>{{ orderlines.name }}</td> | |||
<td>{{ orderlines.qty }}</td> | |||
<td>{{ orderlines.subtotal }}</td> | |||
<td>{{ orderlines.vat }}</td> | |||
<td>{{ orderlines.total }}</td> | |||
</tr> | |||
{% endfor %} | |||
</table> | |||
<a href="/customers">Back to customer list</a> | |||
<a href="/orders">Back to order list</a> | |||
{% endblock %} |