HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.30
System: Linux iZj6c1151k3ad370bosnmsZ 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64
User: root (0)
PHP: 7.4.30
Disabled: NONE
Upload Files
File: /var/www/html/inventory.breadsecret.com/class/Controller/transaction.php
<?php
namespace Controller;

use Responses\Message, Responses\Action, Responses\Data;
use Database\Sql, Database\Listable;
use Pages\Page, Pages\ListPage, Pages\FormPage;
use Routing\Route;
use Utility\WebSystem;
use Controller\documentHelper, Controller\formLayout;

class transaction {
	
	public static function find($id, $fetchMode=\PDO::FETCH_OBJ, $includePW=false) {
		$sql = Sql::select("transaction")->where(['id', '=', $id]);
		$stm = $sql->prepare();
		$stm->execute();
		$obj = $stm->fetch($fetchMode);
		if ($obj === false) return null;
		return $obj;
	}

	public function list($request) {
		if (!user::checklogin()) return new Action('redirect', WebSystem::path(Route::getRouteByName('page.login')->path(), false, false)); 

		$obj = null;
		return new FormPage('transaction/list', $obj);
	}

    public static function info($request) {

        if (!user::checklogin()) return new Data(['success'=>false, 'message'=>L('login.signInMessage'), 'note'=>'signIn']);
      
		if (!isset($request->get->id) || empty($request->get->id)) 
			return new Data(['success'=>false, 'message'=>L('error.transactionEmptyID')]);

        $transactionObj = self::find($request->get->id);
        if(is_null($transactionObj)) return new Data(['success'=>false, 'message'=>L('error.transactionNotFound')]);

		
        $itemObj = item::find($transactionObj->itemID);
        $itemTypeObj = itemType::find($itemObj->itemTypeID);
        $supplierObj = supplier::find($itemObj->supplierID);

        $unitObj = unit::find($itemObj->unitID);

        //$content = "<div class='row'>";
		/*
        $content .= formLayout::rowDisplayLineNew(L('stock.date'),$transactionObj->transactionDate);
		$content .= formLayout::rowDisplayLineNew(L('stock.type'),$transactionObj->action);
        $content .= formLayout::rowDisplayLineNew(L('stock.item'),$itemObj->name);
        $content .= formLayout::rowDisplayLineNew(L('stock.itemType'),$itemTypeObj->name);
        $content .= formLayout::rowDisplayLineNew(L('stock.supplier'),$supplierObj->name);

        $content .= formLayout::rowDisplayLineNew(L('stock.fromLocation'),$transactionObj->fromStorageAreaID==0?" - ":storageLocationArea::find($transactionObj->fromStorageAreaID)->name);
        $content .= formLayout::rowDisplayLineNew(L('stock.fromArea'),$transactionObj->fromStorageAreaID==0?" - ":storageLocation::find(storageLocationArea::find($transactionObj->fromStorageAreaID)->storageLocationID)->name);

		$content .= formLayout::rowDisplayLineNew(L('stock.toLocation'),$transactionObj->toStorageAreaID==0?" - ":storageLocationArea::find($transactionObj->toStorageAreaID)->name);
        $content .= formLayout::rowDisplayLineNew(L('stock.toArea'),$transactionObj->toStorageAreaID==0?" - ":storageLocation::find(storageLocationArea::find($transactionObj->toStorageAreaID)->storageLocationID)->name);

		$content .= formLayout::rowDisplayLineNew(L('stock.batchNo'),$transactionObj->batchNo);

        $content .= formLayout::rowDisplayLineNew(L('stock.qty'),$transactionObj->qty);
        $content .= formLayout::rowDisplayLineNew(L('stock.unit'),$unitObj->name);
		$content .= formLayout::rowDisplayLineNew(L('stock.purchaseUnitCost'),$transactionObj->purchaseUnitCost);
        $content .= formLayout::rowDisplayLineNew(L('stock.value'),$transactionObj->purchaseUnitCost*$transactionObj->qty);

		$content .= formLayout::rowDisplayLineNew(L('stock.remark'),$transactionObj->remark);
        */
        $content = "<div class='row'>";
        $content .= formLayout::rowInputNew(L('stock.date'),'', '', 'text',  4, [], ['disabled'], $transactionObj->transactionDate);
        $content .= formLayout::rowInputNew(L('stock.type'),'', '', 'text',  4, [], ['disabled'], $transactionObj->action);
        $content .= "</div>";	

        $content .= "<div class='row'>";
        $content .= formLayout::rowInputNew(L('stock.item'),'', '', 'text',  4, [], ['disabled'], $itemObj->name);
        $content .= formLayout::rowInputNew(L('stock.itemType'),'', '', 'text',  4, [], ['disabled'], $itemTypeObj->name);
        $content .= formLayout::rowInputNew(L('stock.supplier'),'', '', 'text',  4, [], ['disabled'], $supplierObj->name);
        $content .= "</div>";	

        $content .= "<div class='row'>";
        $content .= formLayout::rowInputNew(L('stock.fromLocation'),'', '', 'text',  6, [], ['disabled'], $transactionObj->fromStorageAreaID==0?" - ":storageLocation::find(storageLocationArea::find($transactionObj->fromStorageAreaID)->storageLocationID)->name);
        $content .= formLayout::rowInputNew(L('stock.fromArea'),'', '', 'text',  6, [], ['disabled'], $transactionObj->fromStorageAreaID==0?" - ":storageLocationArea::find($transactionObj->fromStorageAreaID)->name);                
        $content .= formLayout::rowInputNew(L('stock.toLocation'),'', '', 'text',  6, [], ['disabled'], $transactionObj->toStorageAreaID==0?" - ":storageLocation::find(storageLocationArea::find($transactionObj->toStorageAreaID)->storageLocationID)->name);
        $content .= formLayout::rowInputNew(L('stock.toArea'),'', '', 'text',  6, [], ['disabled'], $transactionObj->toStorageAreaID==0?" - ":storageLocationArea::find($transactionObj->toStorageAreaID)->name);        
        $content .= "</div>";	

        $content .= "<div class='row'>";
        $content .= formLayout::rowInputNew(L('stock.batchNo'),'', '', 'text',  4, [], ['disabled'], $transactionObj->batchNo);
        $content .= formLayout::rowInputNew(L('stock.qty'),'', '', 'text',  4, [], ['disabled'], $transactionObj->qty);
        $content .= formLayout::rowInputNew(L('stock.unit'),'', '', 'text',  4, [], ['disabled'], $unitObj->name);       
        $content .= formLayout::rowInputNew(L('stock.purchaseUnitCost'),'', '', 'text',  4, [], ['disabled'], $transactionObj->purchaseUnitCost);
        $content .= formLayout::rowInputNew(L('stock.value'),'', '', 'text',  4, [], ['disabled'], $transactionObj->purchaseUnitCost*$transactionObj->qty);
        $content .= "</div>";	

        $content .= "<div class='row'>";
        $content .= formLayout::rowTextAreaNew(L('stock.remark'),'', '', 12, [], ['disabled'], $transactionObj->remark);
        $content .= "</div>";	

        //$content .= formLayout::rowSeparatorLineNew(12);        

        return new Data(['success'=>true, 'message'=>$content]);


    }	

    public static function genTableHeader() {
        $htmlContent = "";

        $htmlContent .= "<thead class='thead-dark'>";
            $htmlContent .= "<tr>";
                $htmlContent .= "<th>".L('stock.date')."</th>";
                $htmlContent .= "<th>".L('stock.type')."</th>";
				$htmlContent .= "<th>".L('stock.item')."</th>";
				$htmlContent .= "<th>".L('stock.supplier')."</th>";
				$htmlContent .= "<th>".L('stock.fromLocation')."</th>";
				$htmlContent .= "<th>".L('stock.fromArea')."</th>";
				$htmlContent .= "<th>".L('stock.toLocation')."</th>";
				$htmlContent .= "<th>".L('stock.toArea')."</th>";
                $htmlContent .= "<th>".L('stock.batchNo')."</th>";
                $htmlContent .= "<th>".L('stock.qty')."</th>";
                $htmlContent .= "<th>".L('stock.unit')."</th>";
                $htmlContent .= "<th>".L('stock.value')."</th>";                
                $htmlContent .= "<th>".L('Actions')."</th>";
            $htmlContent .= "</tr>";
        $htmlContent .= "</thead>";

        return $htmlContent;
    }

    public static function genTableFooter() {
        $htmlContent = "";

        $htmlContent .= "<tfoot>";
                $htmlContent .= "<tr>";
                $htmlContent .= "<th>".L('stock.date')."</th>";
                $htmlContent .= "<th>".L('stock.type')."</th>";
				$htmlContent .= "<th>".L('stock.item')."</th>";
				$htmlContent .= "<th>".L('stock.supplier')."</th>";
				$htmlContent .= "<th>".L('stock.fromLocation')."</th>";
				$htmlContent .= "<th>".L('stock.fromArea')."</th>";
				$htmlContent .= "<th>".L('stock.toLocation')."</th>";
				$htmlContent .= "<th>".L('stock.toArea')."</th>";
                $htmlContent .= "<th>".L('stock.batchNo')."</th>";
                $htmlContent .= "<th>".L('stock.qty')."</th>";
                $htmlContent .= "<th>".L('stock.unit')."</th>";
                $htmlContent .= "<th>".L('stock.value')."</th>";             
                $htmlContent .= "<th></th>";
            $htmlContent .= "</tr>";
        $htmlContent .= "</tfoot>";

        return $htmlContent;
    }	

	public static function genTableContentData() {
		$sql = Sql::select('transaction');
        $stm = $sql->prepare();
        $stm->execute();
        return $stm;
    }

	public static function genTableBodyRow($listObj) {

        $htmlContent = "";
        $htmlContent .= "<tr>";
            $htmlContent .= "<td>".$listObj['transactionDate']."</td>";
            $htmlContent .= "<td>".$listObj['action']."</td>";

			$htmlContent .= "<td>".item::find($listObj['itemID'])->name."</td>";			
			$htmlContent .= "<td>".supplier::find(item::find($listObj['itemID'])->supplierID)->name."</td>";

			$htmlContent .= "<td>".($listObj['fromStorageAreaID']==0?" - ":storageLocation::find(storageLocationArea::find($listObj['fromStorageAreaID'])->storageLocationID)->name)."</td>";
			$htmlContent .= "<td>".($listObj['fromStorageAreaID']==0?" - ":storageLocationArea::find($listObj['fromStorageAreaID'])->name)."</td>";
			$htmlContent .= "<td>".($listObj['toStorageAreaID']==0?" - ":storageLocation::find(storageLocationArea::find($listObj['toStorageAreaID'])->storageLocationID)->name)."</td>";
            $htmlContent .= "<td>".($listObj['toStorageAreaID']==0?" - ":storageLocationArea::find($listObj['toStorageAreaID'])->name)."</td>";

            $htmlContent .= "<td>".$listObj['batchNo']."</td>";
            $htmlContent .= "<td>".$listObj['qty']."</td>";

            $htmlContent .= "<td>".unit::find(item::find($listObj['itemID'])->unitID)->name."</td>";

            $htmlContent .= "<td>".number_format($listObj['purchaseUnitCost']*$listObj['qty'],2)."</td>";
            $htmlContent .= "<td>";                
				$htmlContent .= "<div class='btn-group' role='group' aria-label=''>";
					$htmlContent .= "<button class='btn btn-sm btn-dark btnView' type='button' data-bs-toggle='tooltip' data-bs-placement='top' title='".L('menu.inventoryMain')."' data-id='".$listObj['id']."'><i class='fas fa-sm fa-th'></i></button>";	
					//$htmlContent .= "<button class='btn btn-sm btn-success btnEdit' type='button' data-bs-toggle='tooltip' data-bs-placement='top' title='".L('Edit')."' data-id='".$listObj['id']."'><i class='fas fa-sm fa-edit'></i></button>";
					//$htmlContent .= "<button class='btn btn-sm btn-danger btnDel' type='button' data-bs-toggle='tooltip' data-bs-placement='top' title='".L('Delete')."' data-id='".$listObj['id']."'><i class='fas fa-sm fa-trash-alt'></i></button>";
		 		$htmlContent .= "</div>";
            $htmlContent .= "</td>";
        $htmlContent .= "</tr>";

        return $htmlContent;
    }					
	
}