Add html files

This commit is contained in:
2025-05-12 15:45:02 +00:00
parent 82d5804ac4
commit 7ddd15c4fa
1224 changed files with 277606 additions and 0 deletions

View File

@@ -0,0 +1,416 @@
<!-- Tablesorter -->
<script type="text/javascript" src="include/jQuery/jquery-ui-lite/jquery-1.12.4.js"></script>
<link class="theme" rel="stylesheet" href="include/jQuery/jquery-ui-lite/jquery-ui.css">
<script type="text/javascript" src="include/jQuery/jquery-ui-lite/jquery-ui.js"></script>
<script src="modules/EcmReports/TableSorterNew/js/jquery.tablesorter.js"></script>
<script src="modules/EcmReports/TableSorterNew/js/jquery.tablesorter.widgets.js"></script>
<link class="theme" rel="stylesheet" href="modules/EcmReports/TableSorterNew/css/theme.blue.css">
<script type="text/javascript" src="modules/EcmReports/javascript/RaportZamowien.js"></script>
<style type="text/css">
{literal}
thead, tfoot {font-weight: bold;}
.additionalColumn {
background-color: #87CCED;
border-top: 1px solid black;
}
.groupActive {
border-top: 1px solid black;
border-bottom: 1px solid black;
border-left: 1px solid black;
background-color: #87CCED;
}
.sumRow {
background-color: #BDC7B5;
}
.sumAll td{
background-color: #BDC7B5;
}
table.tablesorter tbody tr:hover td {
background: #E8E8E8;
color: #343432;
}
/* Extra selectors needed to override the default styling */
table.tablesorter tbody tr.normal-row td {
background: #EFEFF1;
color: #343432;
}
table.tablesorter tbody tr.alt-row td {
background: #FFF;
color: #343432;
}
/* Extra selectors needed to override the default styling */
table.tablesorter tbody tr.normal-row:hover td {
background: #E8E8E8;
color: #343432;
}
table.tablesorter tbody tr.alt-row:hover td {
background: #E8E8E8;
color: #343432;
}
table.tablesorter tbody tr.sumAll td {
background: #EBEBED;
color: black;
}
table.tablesorter tbody tr.sumAll:hover td {
background: #E0E0E2;
color: black;
font-weight: bold;
}
table.tablesorter .sumRow, .oddListRowS1 {
text-align: right;
}
table.tablesorter .alignLeft {
text-align: left;
}
table.tablesorter .subcategory .alignLeft {
padding-left: 20px;
}
table.tablesorter .contractor .alignLeft {
padding-left: 40px;
}
.plusStyle {
color: #abc3d7;
text-decoration: none;
cursor: pointer;
}
.green-text{
color:#2E8B57;
}
.fix {
position: absolute;
margin-left: -50px;
width: 100px;
}
.outer {
position: relative;
}
.inner {
overflow-x: scroll;
overflow-y: visible;
width: auto;
margin-left: 100px;
}
@media screen and (max-width: 1920px) {
.inner {
overflow-x: scroll;
overflow-y: visible;
width: 1720px;
margin-left: 100px;
}
}
@media screen and (max-width: 1680px) {
.inner {
overflow-x: scroll;
overflow-y: visible;
width: 1520px;
margin-left: 100px;
}
}
@media screen and (max-width: 1600px) {
.inner {
overflow-x: scroll;
overflow-y: visible;
width: 1460px;
margin-left: 100px;
}
}
@media screen and (max-width: 1440px) {
.inner {
overflow-x: scroll;
overflow-y: visible;
width: 1220px;
margin-left: 100px;
}
}
{/literal}
</style>
<script>
// call the tablesorter plugin
{literal}
$(document).ready(function(){
$("table").tablesorter({
// extra css class applied to the table row containing the filters & the inputs within that row
filter_cssFilter : '',
// If there are child rows in the table (rows with class name from "cssChildRow" option)
// and this option is true and a match is found anywhere in the child row, then it will make that row
// visible; default is false
filter_childRows : false,
// if true, filters are collapsed initially, but can be revealed by hovering over the grey bar immediately
// below the header row. Additionally, tabbing through the document will open the filter row when an input gets focus
filter_hideFilters : false,
// Set this option to false to make the searches case sensitive
filter_ignoreCase : true,
// jQuery selector string of an element used to reset the filters
filter_reset : '.reset',
// Use the $.tablesorter.storage utility to save the most recent filters
filter_saveFilters : true,
// Delay in milliseconds before the filter widget starts searching; This option prevents searching for
// every character while typing and should make searching large tables faster.
filter_searchDelay : 300,
// Set this option to true to use the filter to find text from the start of the column
// So typing in "a" will find "albert" but not "frank", both have a's; default is false
filter_startsWith : false,
// if false, filters are collapsed initially, but can be revealed by hovering over the grey bar immediately
// below the header row. Additionally, tabbing through the document will open the filter row when an input gets focus
filter_hideFilters : false,
theme: 'blue',
// initialize zebra striping of the table
widthFixed : false,
// initialize zebra striping of the table
widgets: ['zebra','stickyHeaders'],
// change the default striping class names
// updated in v2.1 to use widgetOptions.zebra = ["even", "odd"]
// widgetZebra: { css: [ "normal-row", "alt-row" ] } still works
widgetOptions : {
zebra : [ "normal-row", "alt-row" ]
},
headers : {
6 : { sorter: 'number' },
7 : { sorter: 'number' },
},
sortList: [[0,0]]
});
});
$( function() {
$("#selectallcomponents").on('change',function(){
if($("#selectallcomponents").prop("checked")==true){
$( "input[name='compid[]']" ).prop("checked",true);
} else {
$( "input[name='compid[]']" ).prop("checked",false);
}
});
$( document ).tooltip({
items: "[title]",
content: function() {
var element = $( this );
if ( element.is( "[title]" ) ) {
return element.attr( "title" );
}
}});
} );
function getSelectedCheckboxes(){
$('#GeneratePDFComponentsinputs').html(null);
var selected=$( "input[name='compid[]']:checked" );
$.each( selected, function( key, value ) {
$('#GeneratePDFComponentsinputs').append($(value).clone( true ));
});
}
function submitFormComponent(){
$("#action").val("ComponentsList");
$("#module").val("EcmSales");
$("#to_pdf").val("1");
if($( "input[name='compid[]']:checked" ).length==0){alert("Proszę zaznaczyć chociaż jeden komponent!");return false;} else {$('#submitComponentPDF').click();}
}
function submitFormOrder(){
$("#action").val("EditView");
$("#module").val("EcmPurchaseOrders");
$("#to_pdf").val("0");
if($( "input[name='compid[]']:checked" ).length==0){alert("Proszę zaznaczyć chociaż jeden komponent!");return false;} else {$('#submitComponentPDF').click();}
}
{/literal}
</script>
<table cellspacing="0" cellpadding="0" border="0">
</table>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><img src="themes/Sugar/images/EcmProducts.gif"
style="margin-top: 3px; margin-right: 3px;" alt="EcmProducts"
width="16" border="0" height="16"></td>
<td><h2>Zamówienie sprzedaży: Lista komponentów</h2></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Ilość zamówień: {$orderSize}</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>Numery zamówień: {$orderNo}</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" style="width:100%;" id="myTable" class="tablesorter">
<thead>
<tr>
<th width="5%"><input type="checkbox" name="selectallcomponents" id="selectallcomponents"></th>
<th width="10%">{$MOD.LBL_LISTNEWSALES_PRODUCTCODE}</th>
<th width="25%">{$MOD.LBL_LISTNEWSALES_PRODUCTNAME}</th>
<th width="15%">{$MOD.LBL_LISTNEWSALES_CATEGORY}</th>
<th width="5%">{$MOD.LBL_LISTNEWSALES_GROUP_KS}</th>
<th width="5%">J.M.</th>
<th width="12%">{$MOD.LBL_LISTNEWSALES_QUANTITY}</th>
<th width="12%">{$MOD.LBL_LISTNEWSALES_STOCK}</th></tr>
</thead>
<tbody>
{foreach from=$components_list key="key" item="item" name="components"}
<tr style="vertical-align:top;">
<td style="text-align:center;"><input type="checkbox" value="{$item.id}" class="make_pdf_component" id="make_pdf_{$item.position}" name="compid[]"></td>
<td ><a href="index.php?module=EcmProducts&action=DetailView&record={$item.id}" target="_blank">{$item.code}</a></td>
<td >{$item.name}</td>
<td>{$item.product_category_name}</td>
<td >{$item.group_ks_name}</td>
<td>{$item.unit_name}</td>
{if $item.quantity>$item.stock}
<td style="text-align: right;color:red;" data-value="{$item.quantity}">{$item.quantity|number_format:6:".":""}</td>
<td style="text-align: right;color:red;" data-value="{$item.stock}">{$item.stock|number_format:6:".":""}</td>
{else}
<td style="text-align: right;" data-value="{$item.quantity}">{$item.quantity|number_format:6:".":""}</td>
<td style="text-align: right;" data-value="{$item.stock}">{$item.stock|number_format:6:".":""}</td>
{/if}
</tr>
{/foreach}
</tbody><tr>
<td widtd="5%"></td>
<td widtd="20%"></td>
<td widtd="20%"></td>
<td widtd="40%" style="text-align: right;"><b>{$MOD.LBL_LISTNEWSALES_SUMMARY}</b></td>
<td widtd="5%"></td>
<td widtd="5%"></td>
<td widtd="15%" style="text-align: right;"><b>{$total_components|number_format:6:".":""}</b></td>
<td widtd="15%" style="text-align: right;"><b>{$total_in_stock|number_format:6:".":""}</b></td></tr></table>
<form action="index.php" method="post" name="GeneratePDFComponents" id="GeneratePDFComponents" target="_blank">
<input type="hidden" name="action" id="action" value="ComponentsList">
<input type="hidden" name="module" id="module" value="EcmSales">
<input type="hidden" name="to_pdf" id="to_pdf" value="1">
{foreach from=$mass key="key" item="item" name="mass_list"}
<input type="hidden" name="mass[]" value="{$item}">
{/foreach}
<div id="GeneratePDFComponentsinputs" style="display:none;">
</div>
<input type="button" name="button" value="PDF" onclick="getSelectedCheckboxes();submitFormComponent();">
<input type="button" name="button" value="Utwórz zamówienie" onclick="getSelectedCheckboxes();submitFormOrder();">
<input type="submit" name="submit" id="submitComponentPDF" style="display:none;" value="PDF">
</form>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><img src="themes/Sugar/images/EcmProducts.gif"
style="margin-top: 3px; margin-right: 3px;" alt="EcmProducts"
width="16" border="0" height="16"></td>
<td><h2>Zamówienie sprzedaży: Lista produktów bez komponentów</h2></td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" style="width:100%;" id="myTable" class="tablesorter">
<thead>
<tr>
<th width="5%"><input type="checkbox" name="selectall" id="selectall"></th>
<th width="10%">{$MOD.LBL_LISTNEWSALES_PRODUCTCODE}</th>
<th width="35%">{$MOD.LBL_LISTNEWSALES_PRODUCTNAME}</th>
<th width="15%">{$MOD.LBL_LISTNEWSALES_CATEGORY}</th>
<th width="5%">{$MOD.LBL_LISTNEWSALES_GROUP_KS}</th>
<th width="5%">J.M.</th>
<th width="12%">{$MOD.LBL_LISTNEWSALES_QUANTITY}</th>
<th width="12%">{$MOD.LBL_LISTNEWSALES_STOCK}</th></tr>
</thead>
<tbody>
{foreach from=$products key="key" item="item" name="components"}
<tr style="vertical-align:top;">
<td style="text-align:center;"><input type="checkbox" value="{$item.id}" class="make_pdf" id="make_pdf_{$item.position}" name="selectedid[]"></td>
<td ><a href="index.php?module=EcmProducts&action=DetailView&record={$item.id}" target="_blank">{$item.code}</a></td>
<td >{$item.name}</td>
<td>{$item.product_category_name}</td>
<td >{$item.group_ks_name}</td>
<td>{$item.unit_name}</td>
{if $item.quantity>$item.stock}
<td style="text-align: right;color:red;" data-value="{$item.quantity}">{$item.quantity|number_format:2:".":""}</td>
<td style="text-align: right;color:red;" data-value="{$item.stock}">{$item.stock|number_format:2:".":""}</td>
{else}
<td style="text-align: right;" data-value="{$item.quantity}">{$item.quantity|number_format:2:".":""}</td>
<td style="text-align: right;" data-value="{$item.stock}">{$item.stock|number_format:2:".":""}</td>
{/if}
</tr>
{/foreach}
</tbody><tr>
<td widtd="5%"></td>
<td widtd="20%"></td>
<td widtd="20%"></td>
<td widtd="40%" style="text-align: right;"><b>{$MOD.LBL_LISTNEWSALES_SUMMARY}</b></td>
<td widtd="5%"></td>
<td widtd="5%"></td>
<td widtd="15%" style="text-align: right;"><b>{$total|number_format:2:".":""}</b></td>
<td widtd="15%" style="text-align: right;"><b>{$total_in_stock2|number_format:2:".":""}</b></td></tr></table>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td><img src="themes/Sugar/images/EcmProducts.gif"
style="margin-top: 3px; margin-right: 3px;" alt="EcmProducts"
width="16" border="0" height="16"></td>
<td><h2>Zamówienie sprzedaży: Lista potrzebnych kartonów i palet</h2></td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" style="width:100%;" id="myTable" class="tablesorter">
<thead>
<tr>
<th width="5%"><input type="checkbox" name="selectall" id="selectall"></th>
<th width="40%">Karton</th>
<th width="5%">{$MOD.LBL_LISTNEWSALES_GROUP_KS}</th>
<th width="12%">Ilość kartonów</th>
<th width="12%">Ilość palet</th></tr>
</thead>
<tbody>
{foreach from=$packing key="key" item="item" name="components"}
<tr style="vertical-align:top;">
<td style="text-align:center;"><input type="checkbox" value="{$item.id}" class="make_pdf" id="make_pdf_{$item.position}" name="selectedid[]"></td>
<td >{$item.name}</td>
<td >{$item.group_ks_name}</td>
<td style="text-align: right;" data-value="{$item.box}">{$item.box|ceil}</td>
<td style="text-align: right;" data-value="{$item.palet}">{$item.palet|ceil}</td>
</tr>
{/foreach}
</tbody><tr>
<td widtd="5%"></td>
<td widtd="20%"></td>
<td widtd="5%"></td>
<td widtd="15%" style="text-align: right;"><b>{$total_box|number_format:2:".":""}</b></td>
<td widtd="15%" style="text-align: right;"><b>{$total_palet|number_format:2:".":""}</b></td></tr>
</table>

View File

@@ -0,0 +1,295 @@
<style type="text/css">
{literal}
body {
font-size: 8px;
}
/* overall */
.tablesorter-blue {
width: 100%;
background-color: #fff;
margin: 10px 0 15px;
text-align: left;
border-spacing: 0;
border: #fff 1px solid;
border-width: 1px 0 0 1px;
}
.tablesorter-blue th,
.tablesorter-blue td {
border: #fff 1px solid;
border-width: 0 1px 1px 0;
}
/* header */
.tablesorter-blue th,
.tablesorter-blue thead td {
font: bold 10px/18px Arial, Sans-serif;
color: #fff;
background-color: #252525;
border-collapse: collapse;
padding: 4px;
border-top: 2px solid #ABC3D7;
}
.tablesorter-blue tbody td,
.tablesorter-blue tfoot th,
.tablesorter-blue tfoot td {
padding: 4px;
vertical-align: top;
}
.tablesorter-blue .header,
.tablesorter-blue .tablesorter-header {
/* #f2f2f2 (unsorted) double arrow */
background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==);
/* white (unsorted) double arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); */
/* image */
/* background-image: url(images/#f2f2f2-unsorted.gif); */
background-repeat: no-repeat;
background-position: center right;
padding: 3px 18px 3px 3px;
white-space: normal;
cursor: pointer;
}
.tablesorter-blue .headerSortUp,
.tablesorter-blue .tablesorter-headerSortUp,
.tablesorter-blue .tablesorter-headerAsc {
background-color: #E7E7E9;
/* #f2f2f2 asc arrow */
background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7);
/* white asc arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); */
/* image */
/* background-image: url(images/#f2f2f2-asc.gif); */
}
.tablesorter-blue .headerSortDown,
.tablesorter-blue .tablesorter-headerSortDown,
.tablesorter-blue .tablesorter-headerDesc {
background-color: #E7E7E9;
/* #f2f2f2 desc arrow */
background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAACMtMP///yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7);
/* white desc arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); */
/* image */
/* background-image: url(images/#f2f2f2-desc.gif); */
}
.tablesorter-blue thead .sorter-false {
background-image: none;
padding: 4px;
}
/* tfoot */
.tablesorter-blue tfoot .tablesorter-headerSortUp,
.tablesorter-blue tfoot .tablesorter-headerSortDown,
.tablesorter-blue tfoot .tablesorter-headerAsc,
.tablesorter-blue tfoot .tablesorter-headerDesc {
/* remove sort arrows from footer */
background-image: none;
}
/* tbody */
.tablesorter-blue td {
color: #3d3d3d;
background-color: #fff;
padding: 0px;
vertical-align: top;
}
/* hovered row colors
you'll need to add additional lines for
rows with more than 2 child rows
*/
.tablesorter-blue tbody > tr:hover > td,
.tablesorter-blue tbody > tr:hover + tr.tablesorter-childRow > td,
.tablesorter-blue tbody > tr:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td,
.tablesorter-blue tbody > tr.even:hover > td,
.tablesorter-blue tbody > tr.even:hover + tr.tablesorter-childRow > td,
.tablesorter-blue tbody > tr.even:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
background: #d9d9d9;
}
.tablesorter-blue tbody > tr.odd:hover > td,
.tablesorter-blue tbody > tr.odd:hover + tr.tablesorter-childRow > td,
.tablesorter-blue tbody > tr.odd:hover + tr.tablesorter-childRow + tr.tablesorter-childRow > td {
background: #bfbfbf;
}
/* table processing indicator */
.tablesorter-blue .tablesorter-processing {
background-position: center center !important;
background-repeat: no-repeat !important;
/* background-image: url(../addons/pager/icons/loading.gif) !important; */
background-image: url('data:image/gif;base64,R0lGODlhFAAUAKEAAO7u7lpaWgAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQBCgACACwAAAAAFAAUAAACQZRvoIDtu1wLQUAlqKTVxqwhXIiBnDg6Y4eyx4lKW5XK7wrLeK3vbq8J2W4T4e1nMhpWrZCTt3xKZ8kgsggdJmUFACH5BAEKAAIALAcAAAALAAcAAAIUVB6ii7jajgCAuUmtovxtXnmdUAAAIfkEAQoAAgAsDQACAAcACwAAAhRUIpmHy/3gUVQAQO9NetuugCFWAAAh+QQBCgACACwNAAcABwALAAACE5QVcZjKbVo6ck2AF95m5/6BSwEAIfkEAQoAAgAsBwANAAsABwAAAhOUH3kr6QaAcSrGWe1VQl+mMUIBACH5BAEKAAIALAIADQALAAcAAAIUlICmh7ncTAgqijkruDiv7n2YUAAAIfkEAQoAAgAsAAAHAAcACwAAAhQUIGmHyedehIoqFXLKfPOAaZdWAAAh+QQFCgACACwAAAIABwALAAACFJQFcJiXb15zLYRl7cla8OtlGGgUADs=') !important;
}
/* Zebra Widget - row alternating colors */
.tablesorter-blue tbody tr.odd td {
background-color: #ebf2fa;
}
.tablesorter-blue tbody tr.even td {
background-color: #fff;
}
/* Column Widget - column sort colors */
.tablesorter-blue td.primary,
.tablesorter-blue tr.odd td.primary {
background-color: #99b3e6;
}
.tablesorter-blue tr.even td.primary {
background-color: #c2d1f0;
}
.tablesorter-blue td.secondary,
.tablesorter-blue tr.odd td.secondary {
background-color: #c2d1f0;
}
.tablesorter-blue tr.even td.secondary {
background-color: #d6e0f5;
}
.tablesorter-blue td.tertiary,
.tablesorter-blue tr.odd td.tertiary {
background-color: #d6e0f5;
}
.tablesorter-blue tr.even td.tertiary {
background-color: #ebf0fa;
}
/* caption */
caption {
background: #fff;
}
/* filter widget */
.tablesorter-blue .tablesorter-filter-row td {
background: #eee;
line-height: normal;
text-align: center; /* center the input */
-webkit-transition: line-height 0.1s ease;
-moz-transition: line-height 0.1s ease;
-o-transition: line-height 0.1s ease;
transition: line-height 0.1s ease;
}
/* optional disabled input styling */
.tablesorter-blue .tablesorter-filter-row .disabled {
opacity: 0.5;
filter: alpha(opacity=50);
cursor: not-allowed;
}
/* hidden filter row */
.tablesorter-blue .tablesorter-filter-row.hideme td {
/*** *********************************************** ***/
/*** change this padding to modify the thickness ***/
/*** of the closed filter row (height = padding x 2) ***/
padding: 2px;
/*** *********************************************** ***/
margin: 0;
line-height: 0;
cursor: pointer;
}
.tablesorter-blue .tablesorter-filter-row.hideme .tablesorter-filter {
height: 1px;
min-height: 0;
border: 0;
padding: 0;
margin: 0;
/* don't use visibility: hidden because it disables tabbing */
opacity: 0;
filter: alpha(opacity=0);
}
/* filters */
.tablesorter-blue .tablesorter-filter {
width: 98%;
height: auto;
margin: 0;
padding: 4px;
background-color: #fff;
border: 1px solid #bbb;
color: #333;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-transition: height 0.1s ease;
-moz-transition: height 0.1s ease;
-o-transition: height 0.1s ease;
transition: height 0.1s ease;
}
/* ajax error row */
.tablesorter .tablesorter-errorRow td {
cursor: pointer;
background-color: #e6bf99;
}
#myTable tbody tr td.subcategory {
padding-left: 30px;
}
#myTable tbody tr td.product {
padding-left: 55px;
}
#myTable tbody tr.category td {
background-color: #96FF7C;
}
#myTable tbody tr.sumAll td{
background-color: #242424;
color: #fff;
}
#myTable tbody tr td.sumRow {
text-align: right;
}
#myTable tbody tr td.oddListRowS1 {
text-align: right;
}
#myTable tbody tr td.alignLeft {
text-align: left;
}
{/literal}
</style>
<table id="myTable" class="tablesorter-blue" role="grid">
<tr>
<th style="border: 1px solid #f2f2f2;background-color: #f2f2f2; color:black;font-weight: bold; font-size: 8pt;" width="5%">L.p.</th>
<th style="border: 1px solid #f2f2f2; background-color: #f2f2f2; color:black;font-weight: bold; font-size: 8pt;" width="10%">{$MOD.LBL_LISTNEWSALES_PRODUCTCODE}</th>
<th style="border: 1px solid #f2f2f2; background-color: #f2f2f2; color:black;font-weight: bold; font-size: 8pt;" width="25%">{$MOD.LBL_LISTNEWSALES_PRODUCTNAME}</th>
<th style="border: 1px solid #f2f2f2; background-color: #f2f2f2; color:black;font-weight: bold; font-size: 8pt;" width="15%">{$MOD.LBL_LISTNEWSALES_CATEGORY}</th>
<th style="border: 1px solid #f2f2f2; background-color: #f2f2f2; color:black;font-weight: bold; font-size: 8pt;" width="5%">J.M.</th>
<th style="border: 1px solid #f2f2f2; background-color: #f2f2f2; color:black;font-weight: bold; font-size: 8pt;" width="12%">{$MOD.LBL_LISTNEWSALES_QUANTITY}</th>
</tr>
</thead>
<tbody aria-live="polite" aria-relevant="all" >
{assign var="no" value=1}
{foreach from=$components_list key="key" item="item" name="components"}
<tr style="vertical-align:top;">
<td style="text-align:center;border-bottom: 0.1px solid black;">{$no}</td>
<td style="border-bottom: 0.1px solid black;" ><a href="index.php?module=EcmProducts&action=DetailView&record={$item.id}" target="_blank">{$item.code}</a></td>
<td style="border-bottom: 0.1px solid black;">{$item.name}</td>
<td style="border-bottom: 0.1px solid black;text-align:center;">{$item.product_category_name}</td>
<td style="text-align:right;border-bottom: 0.1px solid black;">{$item.unit_name}</td>
{if $item.quantity>$item.stock}
<td style="text-align: right;color:red;border-bottom: 0.1px solid black;" data-value="{$item.quantity}">{$item.quantity|number_format:6:".":""}</td>
{else}
<td style="text-align: right;border-bottom: 0.1px solid black;" data-value="{$item.quantity}">{$item.quantity|number_format:6:".":""}</td>
{/if}
</tr>
{assign var="no" value=$no+1}
{/foreach}
</tbody><tr>
<td widtd="5%"></td>
<td widtd="20%"></td>
<td widtd="20%"></td>
<td widtd="40%" style="text-align: right;"><b>{$MOD.LBL_LISTNEWSALES_SUMMARY}</b></td>
<td widtd="5%"></td>
<td widtd="15%" style="text-align: right;"><b>{$total_components|number_format:6:".":""}</b></td>
</tr></table>
<br/>