소스 검색

non-working order/{id} controller

controller
부모
커밋
3e284cf162
7개의 변경된 파일163개의 추가작업 그리고 30개의 파일을 삭제
  1. 26
    24
      public/index.php
  2. 1
    0
      src/Controller/Clients.php
  3. 37
    0
      src/Controller/OrderID.php
  4. 33
    2
      src/DB/Order.php
  5. 36
    3
      src/Model/Order.php
  6. 1
    1
      templates/clients.html.twig
  7. 29
    0
      templates/orderID.html.twig

+ 26
- 24
public/index.php 파일 보기

@@ -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');

+ 1
- 0
src/Controller/Clients.php 파일 보기

@@ -11,6 +11,7 @@ class Clients
{
protected $container;
protected $twig;
protected $vars;

public function __construct(ContainerInterface $container)
{

+ 37
- 0
src/Controller/OrderID.php 파일 보기

@@ -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;
}

}

+ 33
- 2
src/DB/Order.php 파일 보기

@@ -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);

+ 36
- 3
src/Model/Order.php 파일 보기

@@ -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;
}



}

+ 1
- 1
templates/clients.html.twig 파일 보기

@@ -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>

+ 29
- 0
templates/orderID.html.twig 파일 보기

@@ -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 %}

Loading…
취소
저장