Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. namespace Shop;
  3. use DI\Container;
  4. use Psr\Http\Message\ResponseInterface as Response;
  5. use Psr\Http\Message\ServerRequestInterface as Request;
  6. use Slim\Factory\AppFactory;
  7. use Shop\DB\DB;
  8. use Shop\View\Twig;
  9. require __DIR__ . '/../vendor/autoload.php';
  10. $container = new Container();
  11. AppFactory::setContainer($container);
  12. $app = AppFactory::create();
  13. $container->set('twig', function () {
  14. $twig = new Twig('../templates');
  15. return $twig;
  16. });
  17. $container->set('db', function() {
  18. $db = new DB();
  19. return $db;
  20. });
  21. $app->map(['GET', 'POST'], "/orders/{client}/create", \Shop\Controller\ClientCreate::class . ':getClientCreate');
  22. // $app->map(['GET', 'POST'], "/orders/{client}/create", function (Request $request, Response $response, array $args) {
  23. // $db2 = new Client();
  24. // $client = $args['client'];
  25. // $a = $db2->getClientName($client);
  26. // if ($request->getMethod() == "GET") {
  27. // $vars = ['clients' => $a, 'args' => $args['client']];
  28. // $twig = $this->get('twig');
  29. // $b = $twig->render('clientcreate.html.twig',$vars);
  30. // $response->getBody()->write($b);
  31. // return $response;
  32. // } else {
  33. // $db2 = new Products();
  34. // $ref = $request->getParsedBody()['reference'];
  35. // $client = $args['client'];
  36. // $db2->getProductId($client, $ref);
  37. // return $response->withHeader('Location', '/orders/' . $args['client']);
  38. // };
  39. // });
  40. // Route with optional parameters, see https://www.slimframework.com/docs/v4/objects/routing.html#how-to-create-routes section Optional segments
  41. $app->get('/orders[/{client}]', \Shop\Controller\Orders::class . ':getOrders');
  42. // $app->get('/orders[/{client}]', function (Request $request, Response $response, array $args) {
  43. // $db = new Orders();
  44. // if ($args['client']) {
  45. // // orders 1 client
  46. // $client = $args['client'];
  47. // $res = $db->getOrderOneClient($client);
  48. // // naam van de klant
  49. // $db2 = new Client();
  50. // $a = $db2->getClientName($client);
  51. // $response->getBody()->write('<a href="/orders/' . $args['client'] . '/create">Create order</a>');
  52. // $response->getBody()->write("<h1>ORDERS LIST FOR CLIENT " . $a['firstname'] . " " . $a['lastname'] . "</h1>");
  53. // $response->getBody()->write('<hr/>');
  54. // $response->getBody()->write("<table>");
  55. // } else {
  56. // // alle klanten
  57. // $response->getBody()->write("<h1>ORDERS LIST FOR ALL CLIENTS </h1>");
  58. // $response->getBody()->write('<hr/>');
  59. // $response->getBody()->write("<table>");
  60. // $client = $args['client'];
  61. // $res = $db->getOrderAllClients();
  62. // }
  63. // // toon de orders van 1 of alle klanten
  64. // while ($row = $res->fetchArray(SQLITE3_ASSOC)) {
  65. // // maak hier een deftige tabel van
  66. // $response->getBody()->write("<tr><td>" . " <a href=\"/order/" . $row['id'] . "\">" . $row["reference"] . "</a> " . $row['subtotal'] . " " . $row['vat'] . " " . $row['total'] . "</td></tr>");
  67. // }
  68. // $response->getBody()->write("</table>");
  69. // $response->getBody()->write('<hr/>');
  70. // $response->getBody()->write('<a href="/customers">Back to customer list</a> <a href="/orders">Back to order list</a>');
  71. // return $response;
  72. // });
  73. $app->map(['GET', 'POST'], "/order/{id}/create", \Shop\Controller\IdCreate::class . ':getPostIdCreate');
  74. // $app->map(['GET', 'POST'], "/order/{id}/create", function (Request $request, Response $response, array $args) {
  75. // if ($request->getMethod() == "GET") {
  76. // $db2 = new Orders();
  77. // $id = $args['id'];
  78. // $a = $db2->getReferenceOrders($id);
  79. // $response->getBody()->write("<h1>Create orderline for" . $a['reference'] . "</h1><hr/>");
  80. // $response->getBody()->write('<form action="/order/' . $args['id'] . '/create" method="post">');
  81. // $response->getBody()->write('<label for="id">product: </label>');
  82. // $response->getBody()->write('<input type="text" name="id">');
  83. // $response->getBody()->write('<label for="qty">qty: </label>');
  84. // $response->getBody()->write('<input type="text" name="qty">');
  85. // $response->getBody()->write('<input type="submit">');
  86. // $response->getBody()->write('</form>');
  87. // $response->getBody()->write('<hr/>');
  88. // $response->getBody()->write('<a href="/customers">Back to customer list</a> <a href="/orders">Back to order list</a>');
  89. // return $response;
  90. // } else {
  91. // $productid = $request->getParsedBody()['id'];
  92. // $qty = $request->getParsedBody()['qty'];
  93. // $db2 = new Products();
  94. // // vraag details van het product op
  95. // $product = $db2->getDetailsproduct($productid);
  96. // $order_id = $args['id'];
  97. // $unitprice = $product['unitprice'];
  98. // $vatperc = $product['vatperc'];
  99. // // bereken de prijs van de lijn
  100. // $subtotal = $qty * $unitprice;
  101. // $vat = $subtotal * $vatperc / 100;
  102. // $total = $subtotal + $vat;
  103. // // voeg orderlijn toe
  104. // $db3 = new Order_lines();
  105. // $db3->getOrderLines($order_id, $productid, $qty, $subtotal, $vat, $total);
  106. // // update het order met nieuwe totalen
  107. // $db4 = new Orders();
  108. // $db4->updateOrder($order_id, $subtotal, $vat, $total);
  109. // return $response->withHeader('Location', '/order/' . $args['id'] . '/create');
  110. // };
  111. // });
  112. $app->get('/order/{id}',\Shop\Controller\OrderId::class . ':getOrderId');
  113. // $app->get('/order/{id}', function (Request $request, Response $response, array $args) {
  114. // $db = new Order_lines();
  115. // // detail orderlijnen
  116. // $id = $args['id'];
  117. // $res = $db->getDetailsOrderLines($id);
  118. // // detail order
  119. // $db2 = new Orders();
  120. // $a = $db2->getDetailsOrders($id);
  121. // $response->getBody()->write('<a href="/order/' . $args['id'] . '/create">Add orderline</a>');
  122. // $response->getBody()->write("<h1>ORDER DETAILS FOR ORDER " . $a['reference'] . "</h1>");
  123. // $response->getBody()->write('<hr/>');
  124. // $response->getBody()->write("<table>");
  125. // while ($row = $res->fetchArray(SQLITE3_ASSOC)) {
  126. // // maak hier een deftige tabel van
  127. // $response->getBody()->write("<tr><td>" . " " . $row['id'] . " " . $row["itemnumber"] . " " . $row['name'] . " " . $row['qty'] . " " . $row['subtotal'] . " " . $row['vat'] . " " . $row['total'] . "</td></tr>");
  128. // }
  129. // $response->getBody()->write("</table>");
  130. // $response->getBody()->write('<hr/>');
  131. // $response->getBody()->write('<a href="/customers">Back to customer list</a> <a href="/orders">Back to order list</a>');
  132. // return $response;
  133. // });
  134. $app->get('/customers',\Shop\Controller\Customers::class . ':getCustomers');
  135. // $app->get('/customers', function (Request $request, Response $response, array $args) {
  136. // $db = new Client();
  137. // $res = $db->getClients();
  138. // $response->getBody()->write("<h1>CUSTOMERS LIST </h1>");
  139. // $response->getBody()->write('<hr/>');
  140. // $response->getBody()->write("<table>");
  141. // while ($row = $res->fetchArray(SQLITE3_ASSOC)) {
  142. // // maak hier een deftige tabel van
  143. // $response->getBody()->write("<tr><td>" . " " . " <a href=\"/orders/" . $row['id'] . "\">" . $row["id"] . "</a> " . " " . $row['firstname'] . " " . $row['lastname'] . " " . $row['street'] . " " . $row['street2'] . " " . $row['zipcode'] . " " . $row['city'] . " " . $row['country'] . "</td></tr>");
  144. // }
  145. // $response->getBody()->write("</table>");
  146. // return $response;
  147. // });
  148. $app->run();