From 3ec8cff73fb5becaa8d122fc5a653f85a1be13c7 Mon Sep 17 00:00:00 2001 From: Ulung32 <13521122@mahasiswa.itb.ac.id> Date: Fri, 17 Nov 2023 01:08:32 +0700 Subject: [PATCH] add getTrackDetail (call from soap) --- src/components/template/PesananCard.php | 20 ++++++ src/components/track/Track.php | 31 ++++++--- src/components/track/TrackDetail.php | 69 +++++++++++++++++++ src/controller/track/TrackController.php | 1 + .../track/TrackDetailController.php | 20 ++++++ src/soap/DetailPesananSoap.php | 4 +- src/soap/PesananSoap.php | 15 +++- 7 files changed, 149 insertions(+), 11 deletions(-) create mode 100644 src/components/template/PesananCard.php create mode 100644 src/controller/track/TrackDetailController.php diff --git a/src/components/template/PesananCard.php b/src/components/template/PesananCard.php new file mode 100644 index 0000000..f1967f8 --- /dev/null +++ b/src/components/template/PesananCard.php @@ -0,0 +1,20 @@ +<?php +function pesanan_card_template($namaPesanan, $harga, $status, $idPesanan) { + $href = "href='/trackDetail/$idPesanan'"; + $redirectText = "Detail Pesanan"; + + $html = <<<"EOT" + <article> + <a $href> + <div class="article-preview"> + <h2>$namaPesanan</h2> + <h4>$harga</h4> + <p>$status</p> + <h1>$redirectText</h1> + </div> + </a> + </article> +EOT; + + echo $html; +} \ No newline at end of file diff --git a/src/components/track/Track.php b/src/components/track/Track.php index 79037b2..c72001e 100644 --- a/src/components/track/Track.php +++ b/src/components/track/Track.php @@ -20,20 +20,35 @@ <span class="centering"> <ul> <?php - include_once(dirname(__DIR__) . "/template/HistoryCard.php"); + include_once(dirname(__DIR__) . "/template/PesananCard.php"); ?> <section class="articles"> <?php $index = 1; - foreach ($this->data['pesanan'] as $pesanan) { - history_card_template( - "Pesanan".$index, - $pesanan['price'], - $pesanan['status'], - $pesanan['id']); - $index++; + + + // var_dump(count($this->data['pesanan'])); + if(is_array($this->data['pesanan']->return)){ + foreach ($this->data['pesanan']->return as $pesanan) { + pesanan_card_template( + "Pesanan".$index, + $pesanan->harga, + $pesanan->status, + $pesanan->id); + $index++; + } + }else{ + foreach ($this->data['pesanan'] as $pesanan) { + pesanan_card_template( + "Pesanan".$index, + $pesanan->harga, + $pesanan->status, + $pesanan->id); + $index++; + } } + ?> </section> </ul> diff --git a/src/components/track/TrackDetail.php b/src/components/track/TrackDetail.php index e69de29..d0fefc3 100644 --- a/src/components/track/TrackDetail.php +++ b/src/components/track/TrackDetail.php @@ -0,0 +1,69 @@ +<!DOCTYPE html> +<html lang="en"> + +<head> + <meta charset="UTF-8"> + <title>Track detail</title> + <link rel="stylesheet" href="../../styles/Global.css"> + <link rel="stylesheet" href="../../styles/history/HistoryDetail.css"> +</head> + +<body> + <?php + include(dirname(__DIR__) . '/template/Navbar.php'); + ?> + <div> + <h1>Detail Pesanan</h1> + <div class="container"> + <label>Nama Kurir : </label> + <p><?=$this->data['pesanan']->return->alamat?></p> + <label>Biaya ongkir : </label> + <p><?=$this->data['pesanan']->return->biaya_pengiriman?></p> + <label>Status : </label> + <p><?=$this->data['pesanan']->return->status?></p> + <label>Keterangan : </label> + <p><?=$this->data['pesanan']->return->keterangan?></p> + <label>Biaya ongkir : </label> + <p><?=$this->data['pesanan']->return->biaya_pengiriman?></p> + <label>Alamat : </label> + <p><?=$this->data['pesanan']->return->alamat?></p> + + <h3>Pesanan Details</h3> + <table> + <tr> + <th>Product Name</th> + <th>Quantity</th> + </tr> + <?php + $temp = ""; + if(is_array($this->data['detailpesanan']->return)){ + foreach ($this->data['detailpesanan']->return as $product) { + $namaproduk = $product->nama_product; + $quantity = $product->quantity; + $temp .=" + <tr> + <td>$namaproduk</td> + <td>$quantity</td> + </tr> + "; + } + }else{ + // var_dump($this->data['detailpesanan']); + $namaproduk = $this->data['detailpesanan']->return->nama_product; + $quantity = $this->data['detailpesanan']->return->quantity; + $temp .=" + <tr> + <td>$namaproduk</td> + <td>$quantity</td> + </tr> + "; + } + echo $temp; + ?> + </table> + + + </div> + </div> +</body> +</html> \ No newline at end of file diff --git a/src/controller/track/TrackController.php b/src/controller/track/TrackController.php index ba4461d..b5181fb 100644 --- a/src/controller/track/TrackController.php +++ b/src/controller/track/TrackController.php @@ -7,6 +7,7 @@ class TrackController extends Controller{ $userId = $_SESSION['user_id']; PesananSoap::setSoapClient("pesanan"); $result = PesananSoap::getPesanan($userId); + $data = [ 'pesanan' => $result diff --git a/src/controller/track/TrackDetailController.php b/src/controller/track/TrackDetailController.php new file mode 100644 index 0000000..6d3332d --- /dev/null +++ b/src/controller/track/TrackDetailController.php @@ -0,0 +1,20 @@ +<?php +require_once __DIR__ . '/../../Soap/DetailPesananSoap.php'; +require_once __DIR__ . '/../../Soap/PesananSoap.php'; +class TrackDetailController extends Controller{ + public function index($id = 0) { + PesananSoap::setSoapClient("pesanan"); + $pesanan = PesananSoap::getPesananByIdPesanan($id); + DetailPesananSoap::setSoapClient("detailPesanan"); + $detail = DetailPesananSoap::getDetailPesanan($id); + + $data = [ + 'pesanan' => $pesanan, + 'detailpesanan' => $detail + ]; + $this->render($data); + + + $this->render(); + } +} \ No newline at end of file diff --git a/src/soap/DetailPesananSoap.php b/src/soap/DetailPesananSoap.php index 591e655..b5d63f3 100644 --- a/src/soap/DetailPesananSoap.php +++ b/src/soap/DetailPesananSoap.php @@ -1,7 +1,7 @@ <?php require_once __DIR__ . '/BaseSoap.php'; -class PesananSoap extends BaseSoap{ +class DetailPesananSoap extends BaseSoap{ public static SoapClient $client; public static string $service; @@ -18,7 +18,7 @@ class PesananSoap extends BaseSoap{ public static function getDetailPesanan(int $idPesanan){ $result = static::$client->__soapCall('getDetailPesanan', array( - 'addPesanan' => array( + 'getDetailPesanan' => array( 'arg0' => $idPesanan ) )); diff --git a/src/soap/PesananSoap.php b/src/soap/PesananSoap.php index d6c25e5..e6c7cc0 100644 --- a/src/soap/PesananSoap.php +++ b/src/soap/PesananSoap.php @@ -38,13 +38,26 @@ class PesananSoap extends BaseSoap{ } public static function getPesanan($userId){ - var_dump($userId); $result = static::$client->__soapCall('getPesananByIdUser', array( 'getPesananByIdUser' => array( 'arg0' => $userId, ) )); + + if(empty((array) $result)){ + return null; + } + + return $result; + } + public static function getPesananByIdPesanan($pesananId){ + $result = static::$client->__soapCall('getPesananByIdPesanan', array( + 'getPesananByIdPesanan' => array( + 'arg0' => $pesananId, + ) + )); + if(empty((array) $result)){ return null; } -- GitLab