Skip to content
Snippets Groups Projects
ShowTransaction.js 1.54 KiB
Newer Older
  • Learn to ignore specific revisions
  • meskio's avatar
    meskio committed
    import React, { useState } from "react";
    
    import { useParams, Navigate } from "react-router-dom";
    
    import { Row, Col } from "react-bootstrap";
    
    meskio's avatar
    meskio committed
    import Fetcher from "../Fetcher";
    import ShowPurchase from "../purchase/ShowPurchase";
    
    meskio's avatar
    meskio committed
    import { printMoney, printDate, printTransactionID } from "../util";
    
    meskio's avatar
    meskio committed
    
    function ShowTransaction() {
    
    meskio's avatar
    meskio committed
      const { id } = useParams();
    
      const [transaction, setTransaction] = useState({ ID: 0 });
    
    meskio's avatar
    meskio committed
    
    
    meskio's avatar
    meskio committed
      let show_list;
      switch (transaction.type) {
        case "purchase":
          show_list = <ShowPurchase purchase={transaction.purchase} />;
          break;
        case "topup":
          show_list = <p>{transaction.topup.comment}</p>;
          break;
    
        case "order":
    
          return <Navigate to={"/order/" + transaction.order.ID} />;
    
        case "refund":
    
          return <Navigate to={"/order/" + transaction.refund.ID} />;
    
    meskio's avatar
    meskio committed
        case "dues":
          return <Navigate to={"/dues"} />;
    
    meskio's avatar
    meskio committed
        default:
          show_list = null;
      }
    
    meskio's avatar
    meskio committed
    
    
    meskio's avatar
    meskio committed
      return (
        <Fetcher url={"/api/transaction/" + id} onFetch={setTransaction}>
    
          {show_list}
          <Row>
            <Col>
              <h3>Total: {printMoney(transaction.total)}</h3>
    
    meskio's avatar
    meskio committed
              {transaction.member && <p>{transaction.member.name}</p>}
    
            </Col>
            <Col>
              <p className="text-right">
    
    meskio's avatar
    meskio committed
                {printDate(transaction.date)} {printTransactionID(transaction)}
    
                {transaction.proxy && (
                  <span>
                    <br />
                    por: {transaction.proxy.name}
                  </span>
                )}
              </p>
            </Col>
          </Row>
    
    meskio's avatar
    meskio committed
        </Fetcher>
      );
    
    meskio's avatar
    meskio committed
    }
    
    export default ShowTransaction;