diff options
| author | Lester Caine <lester@lsces.co.uk> | 2026-06-06 10:15:47 +0100 |
|---|---|---|
| committer | Lester Caine <lester@lsces.co.uk> | 2026-06-06 10:15:47 +0100 |
| commit | b2ae92f41dc18de0a212e579ee4b1e3362e5a4a6 (patch) | |
| tree | cb36db6525c42c4227f7fcc386843db1824697f3 | |
| parent | ccb6c9dfdcee8d10fe845b08cea9f76fd3530a70 (diff) | |
| download | stock-b2ae92f41dc18de0a212e579ee4b1e3362e5a4a6.tar.gz stock-b2ae92f41dc18de0a212e579ee4b1e3362e5a4a6.tar.bz2 stock-b2ae92f41dc18de0a212e579ee4b1e3362e5a4a6.zip | |
Refactor xref display to LibertyXrefGroup path throughout
- StockBase/StockAssembly/StockMovement: add loadXrefInfo() overrides
to enrich supplier group with contact titles and BOM group with
component titles, descriptions and pack sizes
- display_stock_assembly_inc, view/edit_component, view/edit_assembly,
view_movement: replace getXrefGroupList() with loadXrefInfo() +
assign gXrefInfo; edit pages pass allow_edit=true
- All view/edit templates: switch {section} over stockXxx_types arrays
to {foreach $gXrefInfo->mGroups as $xrefGroup} object path
- BOM and supplier group templates rewritten: $xrefGroup object,
column widths, class="table", conditional colspan
- All BOM/supplier item templates: $gContent->mInfo.$source[xref].x
-> $xrefInfo.x; $source ne 'history' -> $isHistory
- Dead code removed: list_xref_stock.tpl, view_xref_pck_item.tpl
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
23 files changed, 217 insertions, 233 deletions
diff --git a/edit_assembly.php b/edit_assembly.php index 22e5012..d4a59fc 100755 --- a/edit_assembly.php +++ b/edit_assembly.php @@ -162,7 +162,8 @@ if( $gContent->isValid() ) { $gBitSmarty->assign( 'sortMode', $sortMode ); } -$gContent->mInfo['stockassembly_types'] = $gContent->getXrefGroupList(); +$gContent->loadXrefInfo(); +$gBitSmarty->assign( 'gXrefInfo', $gContent->mXrefInfo ); $gContent->invokeServices( 'content_edit_function' ); diff --git a/edit_component.php b/edit_component.php index 92a48d7..f75be10 100755 --- a/edit_component.php +++ b/edit_component.php @@ -78,7 +78,8 @@ if( !$gContent->isValid() && !empty( $_REQUEST['title'] ) ) { $gContent->mInfo['title'] = trim( $_REQUEST['title'] ); } -$gContent->mInfo['stockcomponent_types'] = $gContent->getXrefGroupList(); +$gContent->loadXrefInfo(); +$gBitSmarty->assign( 'gXrefInfo', $gContent->mXrefInfo ); $gContent->invokeServices( 'content_edit_function' ); diff --git a/includes/classes/StockAssembly.php b/includes/classes/StockAssembly.php index 762c89b..c8b2367 100755 --- a/includes/classes/StockAssembly.php +++ b/includes/classes/StockAssembly.php @@ -88,6 +88,32 @@ class StockAssembly extends StockBase { } } + public function loadXrefInfo(): void { + parent::loadXrefInfo(); + if( empty( $this->mXrefInfo ) ) return; + $bomGroup = $this->mXrefInfo->mGroups['quantity'] ?? null; + if( !$bomGroup || empty( $bomGroup->mXrefs ) ) return; + usort( $bomGroup->mXrefs, fn($a,$b) => ( $a['xorder'] <=> $b['xorder'] ) ?: strcmp( $a['item'], $b['item'] ) ); + $componentIds = array_values( array_unique( array_filter( array_column( $bomGroup->mXrefs, 'xref' ) ) ) ); + if( !$componentIds ) return; + $components = $this->mDb->getAssoc( + "SELECT lc.`content_id`, lc.`title`, lc.`data`, pck.`xkey` AS `pack_size`, pck.`xkey_ext` AS `pack_size_ext` + FROM `".BIT_DB_PREFIX."liberty_content` lc + LEFT JOIN `".BIT_DB_PREFIX."liberty_xref` pck ON pck.`content_id` = lc.`content_id` AND pck.`item` = 'PCK' + WHERE lc.`content_id` IN (".implode( ',', array_fill( 0, count( $componentIds ), '?' ) ).")", + $componentIds + ); + foreach( $bomGroup->mXrefs as &$row ) { + if( !empty( $row['xref'] ) && isset( $components[$row['xref']] ) ) { + $row['xref_title'] = $components[$row['xref']]['title']; + $row['xref_data'] = $components[$row['xref']]['data']; + $row['pack_size'] = $components[$row['xref']]['pack_size']; + $row['pack_size_ext'] = $components[$row['xref']]['pack_size_ext']; + } + } + unset( $row ); + } + public function loadXrefList(): void { parent::loadXrefList(); if( !empty( $this->mInfo['quantity'] ) ) { diff --git a/includes/classes/StockBase.php b/includes/classes/StockBase.php index 6f90752..1de52a7 100755 --- a/includes/classes/StockBase.php +++ b/includes/classes/StockBase.php @@ -55,6 +55,25 @@ abstract class StockBase extends LibertyContent } } + public function loadXrefInfo(): void { + parent::loadXrefInfo(); + if( empty( $this->mXrefInfo ) ) return; + $supplierGroup = $this->mXrefInfo->mGroups['supplier'] ?? null; + if( !$supplierGroup || empty( $supplierGroup->mXrefs ) ) return; + $contactIds = array_values( array_unique( array_filter( array_column( $supplierGroup->mXrefs, 'xref' ) ) ) ); + if( !$contactIds ) return; + $contacts = $this->mDb->getAssoc( + "SELECT lc.`content_id`, lc.`title` FROM `".BIT_DB_PREFIX."liberty_content` lc WHERE lc.`content_id` IN (".implode( ',', array_fill( 0, count( $contactIds ), '?' ) ).")", + $contactIds + ); + foreach( $supplierGroup->mXrefs as &$row ) { + if( !empty( $row['xref'] ) && isset( $contacts[$row['xref']] ) ) { + $row['xref_title'] = $contacts[$row['xref']]; + } + } + unset( $row ); + } + public function enrichXrefDisplay( array &$pXrefInfo ): void { if( !empty( $pXrefInfo['xref'] ) && ( $pXrefInfo['x_group'] ?? '' ) === 'supplier' ) { if( $contact = $this->mDb->getRow( diff --git a/includes/classes/StockMovement.php b/includes/classes/StockMovement.php index 6754650..ec70203 100644 --- a/includes/classes/StockMovement.php +++ b/includes/classes/StockMovement.php @@ -131,6 +131,26 @@ class StockMovement extends LibertyContent { return true; } + public function loadXrefInfo(): void { + parent::loadXrefInfo(); + if( empty( $this->mXrefInfo ) ) return; + $bomGroup = $this->mXrefInfo->mGroups['quantity'] ?? null; + if( !$bomGroup || empty( $bomGroup->mXrefs ) ) return; + $componentIds = array_values( array_unique( array_filter( array_column( $bomGroup->mXrefs, 'xref' ) ) ) ); + if( !$componentIds ) return; + $components = $this->mDb->getAssoc( + "SELECT lc.`content_id`, lc.`title`, lc.`data` FROM `".BIT_DB_PREFIX."liberty_content` lc WHERE lc.`content_id` IN (".implode( ',', array_fill( 0, count( $componentIds ), '?' ) ).")", + $componentIds + ); + foreach( $bomGroup->mXrefs as &$row ) { + if( !empty( $row['xref'] ) && isset( $components[$row['xref']] ) ) { + $row['xref_title'] = $components[$row['xref']]['title']; + $row['xref_data'] = $components[$row['xref']]['data']; + } + } + unset( $row ); + } + public function loadXrefList(): void { parent::loadXrefList(); if( !empty( $this->mInfo['quantity'] ) ) { diff --git a/includes/display_stock_assembly_inc.php b/includes/display_stock_assembly_inc.php index 0e684ad..54fbb6f 100755 --- a/includes/display_stock_assembly_inc.php +++ b/includes/display_stock_assembly_inc.php @@ -14,7 +14,8 @@ $listHash['max_records'] = $gContent->mInfo["images_per_page"] ?? $max_records; $gContent->loadComponents( $listHash ); $gContent->loadParentAssemblies(); -$gContent->mInfo['stockassembly_types'] = $gContent->getXrefGroupList(); +$gContent->loadXrefInfo(); +$gBitSmarty->assign( 'gXrefInfo', $gContent->mXrefInfo ); $gContent->addHit(); $gBitSmarty->assign( 'listInfo', $listHash['listInfo'] ); diff --git a/templates/edit_assembly.tpl b/templates/edit_assembly.tpl index e071901..8639370 100755 --- a/templates/edit_assembly.tpl +++ b/templates/edit_assembly.tpl @@ -30,15 +30,14 @@ {/forminput} </div> - {if $gContent->mInfo.stockassembly_types} + {if $gXrefInfo->mGroups} {jstabs} - {section name=xrefGroup loop=$gContent->mInfo.stockassembly_types} - {include file=$gContent->getXrefListTemplate($gContent->mInfo.stockassembly_types[xrefGroup].template) - source=$gContent->mInfo.stockassembly_types[xrefGroup].source - source_title=$gContent->mInfo.stockassembly_types[xrefGroup].title - group=$gContent->mInfo.stockassembly_types[xrefGroup].sort_order - allow_add=true} - {/section} + {foreach $gXrefInfo->mGroups as $xrefGroup} + {include file=$gContent->getXrefListTemplate($xrefGroup->mTemplate) + xrefGroup=$xrefGroup + allow_add=true + allow_edit=true} + {/foreach} {/jstabs} {/if} diff --git a/templates/edit_component.tpl b/templates/edit_component.tpl index 5ff6f6e..a3c15c2 100755 --- a/templates/edit_component.tpl +++ b/templates/edit_component.tpl @@ -27,15 +27,14 @@ {include file="bitpackage:liberty/edit_services_inc.tpl" serviceFile="content_edit_mini_tpl"} - {if $gContent->mInfo.stockcomponent_types} + {if $gXrefInfo->mGroups} {jstabs} - {section name=xrefGroup loop=$gContent->mInfo.stockcomponent_types} - {include file=$gContent->getXrefListTemplate($gContent->mInfo.stockcomponent_types[xrefGroup].template) - source=$gContent->mInfo.stockcomponent_types[xrefGroup].source - source_title=$gContent->mInfo.stockcomponent_types[xrefGroup].title - group=$gContent->mInfo.stockcomponent_types[xrefGroup].sort_order - allow_add=true} - {/section} + {foreach $gXrefInfo->mGroups as $xrefGroup} + {include file=$gContent->getXrefListTemplate($xrefGroup->mTemplate) + xrefGroup=$xrefGroup + allow_add=true + allow_edit=true} + {/foreach} {/jstabs} {/if} diff --git a/templates/list_xref_stock.tpl b/templates/list_xref_stock.tpl deleted file mode 100644 index e40794a..0000000 --- a/templates/list_xref_stock.tpl +++ /dev/null @@ -1,56 +0,0 @@ - {assign var=xrefcnt value=$gContent->mInfo.$source|default:[]|@count} - {jstab title="$source_title ($xrefcnt)"} - {legend legend=$source_title} - <div class="form-group table-responsive"> - <table> - <thead> - <tr> - <th>{tr}Source{/tr}</th> - <th>{tr}Data{/tr}</th> - {if $source ne 'history'} - <th>{tr}Started{/tr}</th> - {else} - <th>{tr}Ended{/tr}</th> - {/if} - <th>{tr}Updated{/tr}</th> - <th>{tr}Edit{/tr}</th> - </tr> - </thead> - <tbody> - {section name=xref loop=$gContent->mInfo.$source} - <tr class="{cycle values="even,odd"}"> - <td>{$gContent->mInfo.$source[xref].source_title|escape}</td> - <td> - {if $gContent->mInfo.$source[xref].xref} - <a href="{$smarty.const.CONTACT_PKG_URL}?content_id={$gContent->mInfo.$source[xref].xref}">{$gContent->mInfo.$source[xref].data|escape}</a> - {else} - {$gContent->mInfo.$source[xref].data|escape} - {/if} - </td> - {if $source ne 'history'} - <td>{$gContent->mInfo.$source[xref].start_date|bit_short_date}</td> - {else} - <td>{$gContent->mInfo.$source[xref].end_date|bit_short_date}</td> - {/if} - <td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td> - <td> - {if $gBitUser->hasPermission('p_stock_update')} - {smartlink ititle="Edit" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id} - {/if} - </td> - </tr> - {sectionelse} - <tr class="norecords"> - <td colspan="5">{tr}No {$source_title} records found{/tr}</td> - </tr> - {/section} - </tbody> - </table> - </div> - {if $gBitUser->hasPermission('p_stock_update') && $source ne 'history'} - <div> - {smartlink ititle="Add record" ifile="add_xref.php" biticon="list-add" content_id=$gContent->mInfo.content_id group=$group} - </div> - {/if} - {/legend} - {/jstab} diff --git a/templates/stockassembly/view_xref_bom_group.tpl b/templates/stockassembly/view_xref_bom_group.tpl index e8b3904..77b9101 100644 --- a/templates/stockassembly/view_xref_bom_group.tpl +++ b/templates/stockassembly/view_xref_bom_group.tpl @@ -1,30 +1,32 @@ -{assign var=xrefcnt value=$gContent->mInfo.$source|default:[]|@count} -{assign var=xrefAllowEdit value=$allow_edit|default:true} -{jstab title="$source_title ($xrefcnt)"} -{legend legend=$source_title} +{assign var=xrefAllowEdit value=$allow_edit|default:false} +{assign var=isHistory value=($xrefGroup->mXGroup eq 'history')} +{jstab title="`$xrefGroup->mTitle` ({$xrefGroup->mXrefs|@count})"} +{legend legend=$xrefGroup->mTitle} <div class="form-group table-responsive"> - <table> + <table class="table"> <thead> <tr> - <th>{tr}Component{/tr}</th> - <th>{tr}Description{/tr}</th> - <th>{tr}Qty{/tr}</th> - <th>{tr}Ref{/tr}</th> + <th style="width:30%">{tr}Component{/tr}</th> + <th style="width:25%">{tr}Description{/tr}</th> + <th style="width:15%">{tr}Qty{/tr}</th> + <th style="width:30%">{tr}Ref{/tr}</th> {if $xrefAllowEdit}<th>{tr}Added{/tr}</th><th>{tr}Updated{/tr}</th><th>{tr}Edit{/tr}</th>{/if} </tr> </thead> <tbody> - {section name=xref loop=$gContent->mInfo.$source} - {include file=$gContent->getXrefRecordTemplate($gContent->mInfo.$source[xref].template)} - {sectionelse} + {if $xrefGroup->mXrefs} + {foreach $xrefGroup->mXrefs as $xrefInfo} + {include file=$gContent->getXrefRecordTemplate($xrefInfo.template)} + {/foreach} + {else} <tr class="norecords"> - <td colspan="8">{tr}No parts list found{/tr}</td> + <td colspan="{if $xrefAllowEdit}7{else}4{/if}">{tr}No parts list found{/tr}</td> </tr> - {/section} + {/if} </tbody> </table> </div> -{if $allow_add && $gContent->isValid() && $gContent->hasUpdatePermission() && $source ne 'history'} +{if $allow_add && $gContent->isValid() && $gContent->hasUpdatePermission() && !$isHistory} <div> {smartlink ititle="Add component" ipackage="stock" ifile="add_component.php" biticon="list-add" content_id=$gContent->mInfo.content_id} </div> diff --git a/templates/stockassembly/view_xref_bom_item.tpl b/templates/stockassembly/view_xref_bom_item.tpl index 39dca2a..1ed0a95 100644 --- a/templates/stockassembly/view_xref_bom_item.tpl +++ b/templates/stockassembly/view_xref_bom_item.tpl @@ -1,33 +1,33 @@ {strip} <tr class="{cycle values="even,odd"}"> <td> - {if $gContent->mInfo.$source[xref].xref > 0} - <a href="{$smarty.const.STOCK_PKG_URL}view_component.php?content_id={$gContent->mInfo.$source[xref].xref|escape}">{$gContent->mInfo.$source[xref].xref_title|default:$gContent->mInfo.$source[xref].xref|escape}</a> + {if $xrefInfo.xref > 0} + <a href="{$smarty.const.STOCK_PKG_URL}view_component.php?content_id={$xrefInfo.xref|escape}">{$xrefInfo.xref_title|default:$xrefInfo.xref|escape}</a> {else} {/if} </td> - <td>{$gContent->mInfo.$source[xref].xref_data|escape}</td> - <td>{$gContent->mInfo.$source[xref].xkey|escape}</td> - <td>{$gContent->mInfo.$source[xref].xkey_ext|escape}</td> + <td>{$xrefInfo.xref_data|escape}</td> + <td>{$xrefInfo.xkey|escape}</td> + <td>{$xrefInfo.xkey_ext|escape}</td> {if $xrefAllowEdit} - <td>{$gContent->mInfo.$source[xref].start_date|bit_short_date}</td> - <td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td> + <td>{$xrefInfo.start_date|bit_short_date}</td> + <td>{$xrefInfo.last_update_date|bit_short_date}</td> <td> <span class="actionicon"> - {if $gContent->hasUpdatePermission() && $source ne 'history'} - {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id} + {if $gContent->hasUpdatePermission() && !$isHistory} + {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$xrefInfo.xref_id} {/if} {if $gContent->hasExpungePermission()} - {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" biticon="user-trash" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1} + {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" biticon="user-trash" content_id=$gContent->mInfo.content_id xref_id=$xrefInfo.xref_id expunge=1} {/if} </span> </td> {/if} </tr> -{if $gContent->mInfo.$source[xref].data} +{if $xrefInfo.data} <tr> - <td colspan="8" class="xref-note">{$gContent->mInfo.$source[xref].data|escape}</td> + <td colspan="{if $xrefAllowEdit}7{else}4{/if}" class="xref-note">{$xrefInfo.data|escape}</td> </tr> {/if} {/strip} diff --git a/templates/stockassembly/view_xref_bompck_item.tpl b/templates/stockassembly/view_xref_bompck_item.tpl index e0de6c7..85dd7ac 100644 --- a/templates/stockassembly/view_xref_bompck_item.tpl +++ b/templates/stockassembly/view_xref_bompck_item.tpl @@ -1,33 +1,33 @@ {strip} <tr class="{cycle values="even,odd"}"> <td> - {if $gContent->mInfo.$source[xref].xref > 0} - <a href="{$smarty.const.STOCK_PKG_URL}view_component.php?content_id={$gContent->mInfo.$source[xref].xref|escape}">{$gContent->mInfo.$source[xref].xref_title|default:$gContent->mInfo.$source[xref].xref|escape}</a> + {if $xrefInfo.xref > 0} + <a href="{$smarty.const.STOCK_PKG_URL}view_component.php?content_id={$xrefInfo.xref|escape}">{$xrefInfo.xref_title|default:$xrefInfo.xref|escape}</a> {else} {/if} </td> - <td>{$gContent->mInfo.$source[xref].xref_data|escape}</td> - <td>{$gContent->mInfo.$source[xref].xkey|escape}{if $gContent->mInfo.$source[xref].pack_size} of {$gContent->mInfo.$source[xref].pack_size|escape}{if $gContent->mInfo.$source[xref].pack_size_ext} {$gContent->mInfo.$source[xref].pack_size_ext|escape}{/if}{/if}</td> - <td>{$gContent->mInfo.$source[xref].xkey_ext|escape}</td> + <td>{$xrefInfo.xref_data|escape}</td> + <td>{$xrefInfo.xkey|escape}{if $xrefInfo.pack_size} of {$xrefInfo.pack_size|escape}{if $xrefInfo.pack_size_ext} {$xrefInfo.pack_size_ext|escape}{/if}{/if}</td> + <td>{$xrefInfo.xkey_ext|escape}</td> {if $xrefAllowEdit} - <td>{$gContent->mInfo.$source[xref].start_date|bit_short_date}</td> - <td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td> + <td>{$xrefInfo.start_date|bit_short_date}</td> + <td>{$xrefInfo.last_update_date|bit_short_date}</td> <td> <span class="actionicon"> - {if $gContent->hasUpdatePermission() && $source ne 'history'} - {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id} + {if $gContent->hasUpdatePermission() && !$isHistory} + {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$xrefInfo.xref_id} {/if} {if $gContent->hasExpungePermission()} - {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" biticon="user-trash" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1} + {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" biticon="user-trash" content_id=$gContent->mInfo.content_id xref_id=$xrefInfo.xref_id expunge=1} {/if} </span> </td> {/if} </tr> -{if $gContent->mInfo.$source[xref].data} +{if $xrefInfo.data} <tr> - <td colspan="8" class="xref-note">{$gContent->mInfo.$source[xref].data|escape}</td> + <td colspan="{if $xrefAllowEdit}7{else}4{/if}" class="xref-note">{$xrefInfo.data|escape}</td> </tr> {/if} {/strip} diff --git a/templates/stockcomponent/view_xref_pck_item.tpl b/templates/stockcomponent/view_xref_pck_item.tpl deleted file mode 100644 index a33eaeb..0000000 --- a/templates/stockcomponent/view_xref_pck_item.tpl +++ /dev/null @@ -1,26 +0,0 @@ -{strip} -<tr class="{cycle values="even,odd"}"> - <td>{$gContent->mInfo.$source[xref].source_title|escape}</td> - <td> </td> - <td>{$gContent->mInfo.$source[xref].xkey|escape}</td> - <td>{$gContent->mInfo.$source[xref].xkey_ext|escape}</td> - <td>{if $source ne 'history'}{$gContent->mInfo.$source[xref].start_date|bit_short_date}{else}{$gContent->mInfo.$source[xref].end_date|bit_short_date}{/if}</td> - <td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td> - {if $xrefAllowEdit|default:true} - <td> - <span class="actionicon"> - {if $gContent->hasUpdatePermission() && $source ne 'history'} - {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id} - {/if} - {if $gContent->hasExpungePermission()} - {if $source eq 'history'} - {smartlink ititle="Restore" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=-1} - {else} - {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" biticon="user-trash" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1} - {/if} - {/if} - </span> - </td> - {/if} -</tr> -{/strip} diff --git a/templates/stockcomponent/view_xref_sup_group.tpl b/templates/stockcomponent/view_xref_sup_group.tpl index 53ad9ba..ad3ca0b 100644 --- a/templates/stockcomponent/view_xref_sup_group.tpl +++ b/templates/stockcomponent/view_xref_sup_group.tpl @@ -1,31 +1,32 @@ -{assign var=xrefcnt value=$gContent->mInfo.$source|default:[]|@count} -{assign var=xrefAllowEdit value=$allow_edit|default:true} -{jstab title="$source_title ($xrefcnt)"} -{legend legend=$source_title} +{assign var=xrefAllowEdit value=$allow_edit|default:false} +{assign var=isHistory value=($xrefGroup->mXGroup eq 'history')} +{jstab title="`$xrefGroup->mTitle` ({$xrefGroup->mXrefs|@count})"} +{legend legend=$xrefGroup->mTitle} <div class="form-group table-responsive"> - <table> + <table class="table"> <thead> <tr> - <th>{tr}Supplier{/tr}</th> - <th>{tr}Part No.{/tr}</th> - <th>{tr}Price{/tr}</th> - <th>{tr}Note{/tr}</th> + <th style="width:30%">{tr}Supplier{/tr}</th> + <th style="width:20%">{tr}Part No.{/tr}</th> + <th style="width:20%">{tr}Price{/tr}</th> + <th style="width:30%">{tr}Note{/tr}</th> {if $xrefAllowEdit}<th>{tr}Added{/tr}</th><th>{tr}Updated{/tr}</th><th>{tr}Edit{/tr}</th>{/if} </tr> </thead> <tbody> - {section name=xref loop=$gContent->mInfo.$source} - {assign var=_rowTpl value=$gContent->mInfo.$source[xref].template} - {include file=$gContent->getXrefRecordTemplate($_rowTpl)} - {sectionelse} + {if $xrefGroup->mXrefs} + {foreach $xrefGroup->mXrefs as $xrefInfo} + {include file=$gContent->getXrefRecordTemplate($xrefInfo.template)} + {/foreach} + {else} <tr class="norecords"> - <td colspan="7">{tr}No supplier records found{/tr}</td> + <td colspan="{if $xrefAllowEdit}7{else}4{/if}">{tr}No supplier records found{/tr}</td> </tr> - {/section} + {/if} </tbody> </table> </div> -{if $allow_add && $gContent->isValid() && $gContent->hasUpdatePermission() && $source ne 'history'} +{if $allow_add && $gContent->isValid() && $gContent->hasUpdatePermission() && !$isHistory} <div> {smartlink ititle="Add supplier" ipackage="stock" ifile="add_supplier.php" biticon="list-add" content_id=$gContent->mInfo.content_id} </div> diff --git a/templates/stockcomponent/view_xref_sup_item.tpl b/templates/stockcomponent/view_xref_sup_item.tpl index 19ac5cf..811c077 100644 --- a/templates/stockcomponent/view_xref_sup_item.tpl +++ b/templates/stockcomponent/view_xref_sup_item.tpl @@ -1,30 +1,28 @@ {strip} <tr class="{cycle values="even,odd"}"> <td> - {if $gContent->mInfo.$source[xref].xref > 0} - <a href="{$smarty.const.CONTACT_PKG_URL}display_contact.php?content_id={$gContent->mInfo.$source[xref].xref|escape}">{$gContent->mInfo.$source[xref].xref_title|default:$gContent->mInfo.$source[xref].xref|escape}</a> + {if $xrefInfo.xref > 0} + <a href="{$smarty.const.CONTACT_PKG_URL}display_contact.php?content_id={$xrefInfo.xref|escape}">{$xrefInfo.xref_title|default:$xrefInfo.xref|escape}</a> {else} {/if} </td> - <td>{$gContent->mInfo.$source[xref].xkey|escape}</td> - <td>{$gContent->mInfo.$source[xref].xkey_ext|escape}</td> - <td>{$gContent->mInfo.$source[xref].data|escape}</td> - {if $xrefAllowEdit} - <td>{$gContent->mInfo.$source[xref].start_date|bit_short_date}</td> - <td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td> - {/if} + <td>{$xrefInfo.xkey|escape}</td> + <td>{$xrefInfo.xkey_ext|escape}</td> + <td>{$xrefInfo.data|escape}</td> {if $xrefAllowEdit} + <td>{$xrefInfo.start_date|bit_short_date}</td> + <td>{$xrefInfo.last_update_date|bit_short_date}</td> <td> <span class="actionicon"> - {if $gContent->hasUpdatePermission() && $source ne 'history'} - {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id} + {if $gContent->hasUpdatePermission() && !$isHistory} + {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$xrefInfo.xref_id} {/if} {if $gContent->hasExpungePermission()} - {if $source eq 'history'} - {smartlink ititle="Restore" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=-1} + {if $isHistory} + {smartlink ititle="Restore" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$xrefInfo.xref_id expunge=-1} {else} - {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" biticon="user-trash" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1} + {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" biticon="user-trash" content_id=$gContent->mInfo.content_id xref_id=$xrefInfo.xref_id expunge=1} {/if} {/if} </span> diff --git a/templates/stockmovement/view_xref_bom_group.tpl b/templates/stockmovement/view_xref_bom_group.tpl index e8be5ea..a2c47c3 100644 --- a/templates/stockmovement/view_xref_bom_group.tpl +++ b/templates/stockmovement/view_xref_bom_group.tpl @@ -1,32 +1,34 @@ -{assign var=xrefcnt value=$gContent->mInfo.$source|default:[]|@count} -{assign var=xrefAllowEdit value=$allow_edit|default:true} -{jstab title="$source_title ($xrefcnt)"} -{legend legend=$source_title} +{assign var=xrefAllowEdit value=$allow_edit|default:false} +{assign var=isHistory value=($xrefGroup->mXGroup eq 'history')} +{jstab title="`$xrefGroup->mTitle` ({$xrefGroup->mXrefs|@count})"} +{legend legend=$xrefGroup->mTitle} <div class="form-group table-responsive"> - <table> + <table class="table"> <thead> <tr> - <th>{tr}Component{/tr}</th> - <th>{tr}Description{/tr}</th> - <th>{tr}Qty{/tr}</th> - <th>{tr}Ref{/tr}</th> + <th style="width:20%">{tr}Component{/tr}</th> + <th style="width:40%">{tr}Description{/tr}</th> + <th style="width:15%">{tr}Qty{/tr}</th> + <th style="width:25%">{tr}Ref{/tr}</th> {if $xrefAllowEdit}<th>{tr}Added{/tr}</th><th>{tr}Updated{/tr}</th><th>{tr}Edit{/tr}</th>{/if} </tr> </thead> <tbody> - {section name=xref loop=$gContent->mInfo.$source} - {include file=$gContent->getXrefRecordTemplate($gContent->mInfo.$source[xref].template)} - {sectionelse} + {if $xrefGroup->mXrefs} + {foreach $xrefGroup->mXrefs as $xrefInfo} + {include file=$gContent->getXrefRecordTemplate($xrefInfo.template)} + {/foreach} + {else} <tr class="norecords"> - <td colspan="8">{tr}No parts list found{/tr}</td> + <td colspan="{if $xrefAllowEdit}7{else}4{/if}">{tr}No parts list found{/tr}</td> </tr> - {/section} + {/if} </tbody> </table> </div> -{if $allow_add && $gContent->isValid() && $gContent->hasUpdatePermission() && $source ne 'history'} +{if $allow_add && $gContent->isValid() && $gContent->hasUpdatePermission() && !$isHistory} <div> - {smartlink ititle="Add record" ipackage="liberty" ifile="add_xref.php" biticon="list-add" content_id=$gContent->mInfo.content_id group=$group} + {smartlink ititle="Add record" ipackage="liberty" ifile="add_xref.php" biticon="list-add" content_id=$gContent->mInfo.content_id group=$xrefGroup->mSortOrder} </div> {/if} {/legend} diff --git a/templates/stockmovement/view_xref_bom_item.tpl b/templates/stockmovement/view_xref_bom_item.tpl index 39dca2a..1ed0a95 100644 --- a/templates/stockmovement/view_xref_bom_item.tpl +++ b/templates/stockmovement/view_xref_bom_item.tpl @@ -1,33 +1,33 @@ {strip} <tr class="{cycle values="even,odd"}"> <td> - {if $gContent->mInfo.$source[xref].xref > 0} - <a href="{$smarty.const.STOCK_PKG_URL}view_component.php?content_id={$gContent->mInfo.$source[xref].xref|escape}">{$gContent->mInfo.$source[xref].xref_title|default:$gContent->mInfo.$source[xref].xref|escape}</a> + {if $xrefInfo.xref > 0} + <a href="{$smarty.const.STOCK_PKG_URL}view_component.php?content_id={$xrefInfo.xref|escape}">{$xrefInfo.xref_title|default:$xrefInfo.xref|escape}</a> {else} {/if} </td> - <td>{$gContent->mInfo.$source[xref].xref_data|escape}</td> - <td>{$gContent->mInfo.$source[xref].xkey|escape}</td> - <td>{$gContent->mInfo.$source[xref].xkey_ext|escape}</td> + <td>{$xrefInfo.xref_data|escape}</td> + <td>{$xrefInfo.xkey|escape}</td> + <td>{$xrefInfo.xkey_ext|escape}</td> {if $xrefAllowEdit} - <td>{$gContent->mInfo.$source[xref].start_date|bit_short_date}</td> - <td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td> + <td>{$xrefInfo.start_date|bit_short_date}</td> + <td>{$xrefInfo.last_update_date|bit_short_date}</td> <td> <span class="actionicon"> - {if $gContent->hasUpdatePermission() && $source ne 'history'} - {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id} + {if $gContent->hasUpdatePermission() && !$isHistory} + {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$xrefInfo.xref_id} {/if} {if $gContent->hasExpungePermission()} - {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" biticon="user-trash" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1} + {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" biticon="user-trash" content_id=$gContent->mInfo.content_id xref_id=$xrefInfo.xref_id expunge=1} {/if} </span> </td> {/if} </tr> -{if $gContent->mInfo.$source[xref].data} +{if $xrefInfo.data} <tr> - <td colspan="8" class="xref-note">{$gContent->mInfo.$source[xref].data|escape}</td> + <td colspan="{if $xrefAllowEdit}7{else}4{/if}" class="xref-note">{$xrefInfo.data|escape}</td> </tr> {/if} {/strip} diff --git a/templates/stockmovement/view_xref_bompck_item.tpl b/templates/stockmovement/view_xref_bompck_item.tpl index e0de6c7..85dd7ac 100644 --- a/templates/stockmovement/view_xref_bompck_item.tpl +++ b/templates/stockmovement/view_xref_bompck_item.tpl @@ -1,33 +1,33 @@ {strip} <tr class="{cycle values="even,odd"}"> <td> - {if $gContent->mInfo.$source[xref].xref > 0} - <a href="{$smarty.const.STOCK_PKG_URL}view_component.php?content_id={$gContent->mInfo.$source[xref].xref|escape}">{$gContent->mInfo.$source[xref].xref_title|default:$gContent->mInfo.$source[xref].xref|escape}</a> + {if $xrefInfo.xref > 0} + <a href="{$smarty.const.STOCK_PKG_URL}view_component.php?content_id={$xrefInfo.xref|escape}">{$xrefInfo.xref_title|default:$xrefInfo.xref|escape}</a> {else} {/if} </td> - <td>{$gContent->mInfo.$source[xref].xref_data|escape}</td> - <td>{$gContent->mInfo.$source[xref].xkey|escape}{if $gContent->mInfo.$source[xref].pack_size} of {$gContent->mInfo.$source[xref].pack_size|escape}{if $gContent->mInfo.$source[xref].pack_size_ext} {$gContent->mInfo.$source[xref].pack_size_ext|escape}{/if}{/if}</td> - <td>{$gContent->mInfo.$source[xref].xkey_ext|escape}</td> + <td>{$xrefInfo.xref_data|escape}</td> + <td>{$xrefInfo.xkey|escape}{if $xrefInfo.pack_size} of {$xrefInfo.pack_size|escape}{if $xrefInfo.pack_size_ext} {$xrefInfo.pack_size_ext|escape}{/if}{/if}</td> + <td>{$xrefInfo.xkey_ext|escape}</td> {if $xrefAllowEdit} - <td>{$gContent->mInfo.$source[xref].start_date|bit_short_date}</td> - <td>{$gContent->mInfo.$source[xref].last_update_date|bit_short_date}</td> + <td>{$xrefInfo.start_date|bit_short_date}</td> + <td>{$xrefInfo.last_update_date|bit_short_date}</td> <td> <span class="actionicon"> - {if $gContent->hasUpdatePermission() && $source ne 'history'} - {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id} + {if $gContent->hasUpdatePermission() && !$isHistory} + {smartlink ititle="Edit" ipackage="liberty" ifile="edit_xref.php" biticon="edit" content_id=$gContent->mInfo.content_id xref_id=$xrefInfo.xref_id} {/if} {if $gContent->hasExpungePermission()} - {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" biticon="user-trash" content_id=$gContent->mInfo.content_id xref_id=$gContent->mInfo.$source[xref].xref_id expunge=1} + {smartlink ititle="Delete" ipackage="liberty" ifile="edit_xref.php" biticon="user-trash" content_id=$gContent->mInfo.content_id xref_id=$xrefInfo.xref_id expunge=1} {/if} </span> </td> {/if} </tr> -{if $gContent->mInfo.$source[xref].data} +{if $xrefInfo.data} <tr> - <td colspan="8" class="xref-note">{$gContent->mInfo.$source[xref].data|escape}</td> + <td colspan="{if $xrefAllowEdit}7{else}4{/if}" class="xref-note">{$xrefInfo.data|escape}</td> </tr> {/if} {/strip} diff --git a/templates/view_assembly.tpl b/templates/view_assembly.tpl index 564f97f..b1ef284 100755 --- a/templates/view_assembly.tpl +++ b/templates/view_assembly.tpl @@ -13,14 +13,12 @@ {/if} {include file="`$smarty.const.STOCK_PKG_PATH`assembly_views/`$galLayout`/stock_`$galLayout`_inc.tpl"} -{if $gContent->mInfo.stockassembly_types} +{if $gXrefInfo->mGroups} {jstabs} - {section name=xrefGroup loop=$gContent->mInfo.stockassembly_types} - {include file=$gContent->getXrefListTemplate($gContent->mInfo.stockassembly_types[xrefGroup].template) - source=$gContent->mInfo.stockassembly_types[xrefGroup].source - source_title=$gContent->mInfo.stockassembly_types[xrefGroup].title - group=$gContent->mInfo.stockassembly_types[xrefGroup].sort_order + {foreach $gXrefInfo->mGroups as $xrefGroup} + {include file=$gContent->getXrefListTemplate($xrefGroup->mTemplate) + xrefGroup=$xrefGroup allow_edit=false} - {/section} + {/foreach} {/jstabs} {/if} diff --git a/templates/view_component.tpl b/templates/view_component.tpl index 251314c..f0b3c8a 100755 --- a/templates/view_component.tpl +++ b/templates/view_component.tpl @@ -26,14 +26,12 @@ {/if} {jstabs} - {if $gContent->mInfo.stockcomponent_types} - {section name=xrefGroup loop=$gContent->mInfo.stockcomponent_types} - {include file=$gContent->getXrefListTemplate($gContent->mInfo.stockcomponent_types[xrefGroup].template) - source=$gContent->mInfo.stockcomponent_types[xrefGroup].source - source_title=$gContent->mInfo.stockcomponent_types[xrefGroup].title - group=$gContent->mInfo.stockcomponent_types[xrefGroup].sort_order + {if $gXrefInfo->mGroups} + {foreach $gXrefInfo->mGroups as $xrefGroup} + {include file=$gContent->getXrefListTemplate($xrefGroup->mTemplate) + xrefGroup=$xrefGroup allow_edit=false} - {/section} + {/foreach} {/if} {jstab title="{tr}Stock{/tr}"} diff --git a/templates/view_movement.tpl b/templates/view_movement.tpl index 41b6b19..72932b2 100644 --- a/templates/view_movement.tpl +++ b/templates/view_movement.tpl @@ -42,15 +42,12 @@ {/if} </dl> - {assign var=movXrefGroups value=$gContent->getXrefGroupList()} - {if $movXrefGroups} + {if $gXrefInfo->mGroups} {jstabs} - {foreach from=$movXrefGroups item=xrefGroup} - {if $xrefGroup.x_group neq 'reference'} - {include file=$gContent->getXrefListTemplate($xrefGroup.template) - source=$xrefGroup.source - source_title=$xrefGroup.title - group=$xrefGroup.sort_order + {foreach $gXrefInfo->mGroups as $xrefGroup} + {if $xrefGroup->mXGroup neq 'reference'} + {include file=$gContent->getXrefListTemplate($xrefGroup->mTemplate) + xrefGroup=$xrefGroup allow_add=false allow_edit=false} {/if} diff --git a/view_component.php b/view_component.php index de1958a..82f7c18 100755 --- a/view_component.php +++ b/view_component.php @@ -34,7 +34,8 @@ if( is_object( $gGallery ) && $gGallery->isCommentable() ) { $gContent->addHit(); -$gContent->mInfo['stockcomponent_types'] = $gContent->getXrefGroupList(); +$gContent->loadXrefInfo(); +$gBitSmarty->assign( 'gXrefInfo', $gContent->mXrefInfo ); // Stock levels for this component, calculated from movement xrefs if( $gContent->isValid() ) { diff --git a/view_movement.php b/view_movement.php index 1b97407..43327ae 100644 --- a/view_movement.php +++ b/view_movement.php @@ -21,4 +21,7 @@ if( !$gContent->isValid() ) { $gBitSystem->setCanonicalLink( $gContent->getDisplayUrl() ); +$gContent->loadXrefInfo(); +$gBitSmarty->assign( 'gXrefInfo', $gContent->mXrefInfo ); + $gBitSystem->display( 'bitpackage:stock/view_movement.tpl', $gContent->getTitle() ); |
