summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xincludes/classes/StockAssembly.php17
-rwxr-xr-xlist_assemblies.php1
-rwxr-xr-xtemplates/user_galleries.tpl67
3 files changed, 41 insertions, 44 deletions
diff --git a/includes/classes/StockAssembly.php b/includes/classes/StockAssembly.php
index c072c41..10a59d7 100755
--- a/includes/classes/StockAssembly.php
+++ b/includes/classes/StockAssembly.php
@@ -997,6 +997,16 @@ class StockAssembly extends StockBase {
$sortSql .= " ORDER BY ".$this->mDb->convertSortmode( $pListHash['sort_mode'] )." ";
}
$selectSql .= ", (SELECT COUNT(*) FROM `".BIT_DB_PREFIX."stock_assembly_map` sacmc WHERE sacmc.`assembly_content_id` = lc.`content_id`) AS `child_count`";
+ $X = BIT_DB_PREFIX;
+ $selectSql .= ", (SELECT FIRST 1 x.`xkey` FROM `{$X}liberty_xref` x WHERE x.`content_id` = lc.`content_id` AND x.`item` = '#SUP' ORDER BY x.`xorder`) AS `part_number`";
+ $selectSql .= ", (SELECT FIRST 1 x.`xkey` FROM `{$X}liberty_xref` x WHERE x.`content_id` = lc.`content_id` AND x.`item` = 'KLID') AS `klid`";
+ $selectSql .= ", (SELECT COUNT(*) FROM `{$X}liberty_xref` x WHERE x.`content_id` = lc.`content_id` AND x.`item` IN ('SGL','PRT','SHT','VOL')) AS `component_count`";
+ $selectSql .= ", (SELECT COALESCE(SUM(CAST(xasm.`xkey` AS DOUBLE PRECISION)), 0)
+ FROM `{$X}liberty_xref` xasm
+ INNER JOIN `{$X}liberty_content` mc ON mc.`content_id` = xasm.`content_id`
+ AND mc.`content_type_guid` = 'stockmovement' AND mc.`user_id` = lc.`user_id`
+ INNER JOIN `{$X}liberty_xref` xpbld ON xpbld.`content_id` = xasm.`content_id` AND xpbld.`item` = 'PBLD'
+ WHERE xasm.`item` = 'ASSEMBLY' AND xasm.`xref` = lc.`content_id`) AS `prebuild_count`";
if( !empty( $pListHash['stgrp'] ) ) {
$whereSql .= " AND EXISTS (SELECT 1 FROM `".BIT_DB_PREFIX."liberty_xref` sx WHERE sx.`content_id` = lc.`content_id` AND sx.`item` = ?)";
@@ -1033,6 +1043,13 @@ class StockAssembly extends StockBase {
foreach( array_keys( $data ) as $assemblyId ) {
$data[$assemblyId]['display_url'] = static::getDisplayUrlFromHash( $data[$assemblyId] );
$data[$assemblyId]['display_uri'] = static::getDisplayUriFromHash( $data[$assemblyId] );
+ if( !empty( $data[$assemblyId]['data'] ) ) {
+ $parseHash = [
+ 'data' => $data[$assemblyId]['data'],
+ 'format_guid' => $data[$assemblyId]['format_guid'] ?? 'bithtml',
+ ];
+ $data[$assemblyId]['parsed_data'] = LibertyContent::parseDataHash( $parseHash );
+ }
if( empty( $pListHash['no_thumbnails'] ) ) {
if( $thumbImage = $this->getThumbnailImage( $data[$assemblyId]['content_id'] ) ) {
$data[$assemblyId]['thumbnail_url'] = $thumbImage->getThumbnailUrl( $thumbsize );
diff --git a/list_assemblies.php b/list_assemblies.php
index 69e9db8..6f428f6 100755
--- a/list_assemblies.php
+++ b/list_assemblies.php
@@ -38,6 +38,7 @@ if (!empty($_REQUEST['user_id']) && is_numeric($_REQUEST['user_id'])) {
$galleryList = $gStockAssembly->getList( $_REQUEST );
$gStockAssembly->invokeServices( 'content_list_function', $_REQUEST );
$gBitSmarty->assign( 'listInfo', $_REQUEST['listInfo'] );
+
$gBitSmarty->assign( 'galleryList', $galleryList );
$gDefaultCenter = "bitpackage:stock/$template";
diff --git a/templates/user_galleries.tpl b/templates/user_galleries.tpl
index ddf4e4e..bda5520 100755
--- a/templates/user_galleries.tpl
+++ b/templates/user_galleries.tpl
@@ -1,66 +1,45 @@
{strip}
<div class="listing stock">
<header>
- <div class="floaticon">
+ <div class="floaticon hidden-print">
+ <button type="button" class="btn btn-link" onclick="window.print()">{biticon ipackage="icons" iname="document-print" iexplain="Print"}</button>
+ {if $gBitUser->mUserId eq $gQueryUserId}
+ {if $gBitUser->hasPermission('p_stock_create')}
+ <a href="{$smarty.const.STOCK_PKG_URL}add_prebuild.php">{biticon ipackage="icons" iname="package-x-generic" iexplain="Add Prebuild"}</a>
+ {/if}
+ <a href="{$smarty.const.STOCK_PKG_URL}list_stock.php?user_id={$gQueryUserId}">{biticon ipackage="icons" iname="view-form-table" iexplain="Stock Levels"}</a>
+ {/if}
{minifind prompt="Assemblies"}
</div>
- <h1>{tr}Assemblies{/tr}{if $gQueryUserId} {tr}by{/tr} {displayname user_id=$gQueryUserId}{/if}</h1>
+ <h1>{tr}Assemblies{/tr} {tr}by{/tr} {displayname user_id=$gQueryUserId}</h1>
+ <small><a href="{$smarty.const.STOCK_PKG_URL}list_assemblies.php">{tr}Assemblies{/tr}</a></small>
</header>
<section class="body">
- {if !$gQueryUserId}
- <ul class="list-inline sortby">
- <li>{biticon ipackage="icons" iname="go-next" iexplain="sort by" iforce="icon"}</li>
- {if $gBitSystem->isFeatureActive('stock_list_title')}
- <li>{smartlink ititle="Name" isort="title"}</li>
- {/if}
- {if $gBitSystem->isFeatureActive('stock_list_user')}
- <li>{smartlink ititle="Owner" isort=$gBitSystem->getConfig('users_display_name')}</li>
- {/if}
- {if $gBitSystem->isFeatureActive('stock_list_created')}
- <li>{smartlink ititle="Created" isort="created"}</li>
- {/if}
- {if $gBitSystem->isFeatureActive('stock_list_lastmodif')}
- <li>{smartlink ititle="Last Modified" isort="last_modified"}</li>
- {/if}
- {if $gBitSystem->isFeatureActive('stock_list_hits')}
- <li>{smartlink ititle="Hits" isort="hits"}</li>
- {/if}
- </ul>
- {/if}
-
<div class="row assemblies">
{foreach from=$galleryList key=galleryId item=gal}
- <div class="col-xs-6 col-sm-4 col-md-3">
+ <div class="col-xs-12 col-sm-6 col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">
<a href="{$gal.display_url|escape}">
- {if $gBitSystem->isFeatureActive('stock_list_title')}
- {$gal.title|truncate|escape}
- {else}
- {tr}Assembly{/tr} {$gal.content_id}
- {/if}
+ {$gal.title|truncate|escape}<br />
+ <small class="text-muted">{tr}Kitlocker{/tr}: {$gal.klid|escape}</small>
</a>
- {if $gal.is_hidden|default:'n' == 'y' || $gal.is_private|default:'n' == 'y' || $gal.access_answer|default:false}
- {biticon ipackage="icons" iname="lock" iexplain="Restricted"}
- {/if}
</h3>
</div>
<div class="panel-body">
- {if $gBitSystem->isFeatureActive('stock_list_user')}
- <small>{displayname hash=$gal nolink=true}</small>
- {/if}
- {if $gBitSystem->isFeatureActive('stock_list_created')}
- <div class="text-muted small">{$gal.created|bit_short_date}</div>
- {/if}
- {if $gBitSystem->isFeatureActive('stock_list_lastmodif')}
- <div class="text-muted small">{tr}Modified:{/tr} {$gal.last_modified|bit_short_date}</div>
+ {if $gal.parsed_data}
+ <div class="content">{$gal.parsed_data}</div>
{/if}
- {if $gBitSystem->isFeatureActive('stock_list_hits')}
- <div class="text-muted small">{tr}Hits:{/tr} {$gal.hits}</div>
- {/if}
- {include file="bitpackage:liberty/services_inc.tpl" serviceLocation='body' serviceHash=$gal}
+ </div>
+ <div class="panel-footer">
+ <dl class="dl-horizontal small" style="margin-bottom:0">
+ <dt>{tr}Components{/tr}</dt>
+ <dd>{$gal.component_count}</dd>
+ <dt>{tr}Prebuilt{/tr}</dt>
+ <dd>{$gal.prebuild_count|string_format:"%.0f"}</dd>
+ </dl>
</div>
</div>
</div>