This commit is contained in:
2024-04-27 09:23:34 +02:00
commit 11e713ca6f
11884 changed files with 3263371 additions and 0 deletions

View File

@@ -0,0 +1,160 @@
<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-ui/themes/base/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue2.css"/>
<!-- Tablesorter -->
<script type="text/javascript" src="include/jQuery/tablesorter-master/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.widgets.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/kosztProdukcji.js"></script>
{*<script type="text/javascript" src="https://www.google.com/jsapi"></script>*}
<style type="text/css">
{literal}
thead, tfoot {font-weight: bold;}
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;
}
.element{
position:fixed;
bottom: 0%;
width: 97%;
padding:10px;
font-family:Arial;
background-color: white;
border:1px solid black;
}
{/literal}
</style>
<script>
{literal}
function showHide(id) {
$('[name=child_' + id + ']').toggle(0);
if ($('#span_' + id).html() == '[+]') {
$('#span_' + id).html('[-]');
} else {
$('#span_' + id).html('[+]');
}
}
{/literal}
</script>
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>Raport kart pracy - produkty</h2>
</td>
</tr>
</table>
<br>
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">Wyszukiwanie</a>
</li>
</ul>
<form action="index.php" method="get" name="where" id="where">
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="KosztProdukcjiWgPracownikow" />
<input type="hidden" name="parentTab" value="Produkcja"/>
<input type="hidden" name="to_pdf" value="0" id="to_pdf"/>
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="white-space: nowrap">Wybierz miesiąc
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" title="Data od" value="{$date}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" alt="Enter Date" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
Calendar.setup({ldelim}
inputField: "date_from",
daFormat: "%d.%m.%Y",
button: "date_from_trigger",
singleClick: true,
dateStr: "",
step: 1
{rdelim}
);
</script>
</td>
<td style="white-space: nowrap">{$MOD.LBL_DATE_TO}
</td>
</tr>
</table>
</form>
<input class="button" value="Wykonaj" type="submit" id='submit' form="where">
<input class="button" value="Wyczyść" type="button" onclick="location.href = 'index.php?module=EcmReports&action=KosztProdukcjiWgPracownikow&amp;parentTab=Raporty';">
<input class="button" name="pdf" value="Generuj PDF" type="button" onclick="$('#where').attr('target','_blank');$('#to_pdf').val(1);$('#submit').click();">
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="5%" style = "text-align: left">Kod produktu</th>
<th width="40%" style = "text-align: left">Nazwa produktu</th>
<th width="11%" style = "text-align: right">Ilość PW</th>
<th width="11%" style = "text-align: right">Ilość godzin</th>
<th width="11%" style = "text-align: right">Koszt</th>
<th width="11%" style = "text-align: right">Sztuk na godzine</th>
<th width="11%" style = "text-align: right">Koszt jednostkowy</th>
</tr>
</thead>
<tbody>
{foreach from=$data item=rekord key=kl}
<tr>
<td onclick="showHide('{$rekord.indeks}');"><b>[+]</b> {$rekord.code}</td>
<td onclick="showHide('{$rekord.indeks}');">{$rekord.name}</td>
<td onclick="showHide('{$rekord.indeks}');" style = "text-align: right" data-value="{$rekord.pw_quantity}">{$rekord.pw_quantity|number_format:2:".":"" } </td>
<td onclick="showHide('{$rekord.indeks}');" style = "text-align: right" data-value="{$rekord.hours}">{$rekord.hours|number_format:2:".":"" } </td>
<td onclick="showHide('{$rekord.indeks}');" style = "text-align: right" data-value="{$rekord.cost}">{$rekord.cost|number_format:2:",":"." } </td>
<td onclick="showHide('{$rekord.indeks}');" style = "text-align: right" data-value="{$rekord.pw_quantity/$rekord.hours}">{$rekord.pw_quantity/$rekord.hours|number_format:2:",":"." } </td>
<td onclick="showHide('{$rekord.indeks}');" style = "text-align: right" data-value="{$rekord.cost/$record.pw_quantity}">{$rekord.cost/$record.pw_quantity|number_format:2:",":"." } </td>
</tr>
{foreach from=$rekord.workers key=klucz item=pracownik}
<tr name="child_{$rekord.indeks}" style="display: none;background-color:#F6F6F6;border: 1px solid;" class="invisible-table-row">
<td onclick="showHide('{$pracownik.indeks}');" style="text-align: left;background-color:#F6F6F6;" colspan="2">{$pracownik.name}</td>
<td onclick="showHide('{$pracownik.indeks}');" style="text-align: right;background-color:#F6F6F6;">0</td>
<td onclick="showHide('{$pracownik.indeks}');" style="text-align: right;background-color:#F6F6F6;">{$pracownik.hours|number_format:2:",":"."}</td>
<td onclick="showHide('{$pracownik.indeks}');" style="text-align: right;background-color:#F6F6F6;">{$pracownik.cost|number_format:2:",":"."}</td>
<td onclick="showHide('{$pracownik.indeks}');" style="text-align: right;background-color:#F6F6F6;">0</td>
<td onclick="showHide('{$pracownik.indeks}');" style="text-align: right;background-color:#F6F6F6;">0</td>
</tr>
{/foreach}
{/foreach}
</tbody>
<tfoot style="background-color: #E8E8E8;">
<tr>
<td style="text-align: left;background-color: #E8E8E8; border: 1px solid #E8E8E8;">Razem</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;"></td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$totalQuantityPw|number_format:2:",":"."}</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$totalh|number_format:2:",":"."}</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$totalc|number_format:2:",":"."}</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">0</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">0</td>
</tr>
</tfoot>
</table>

View File

@@ -0,0 +1,313 @@
<!-- jQuery -->
<script type="text/javascript" src="modules/EcmReports/javascript/jquery.js"></script>
<!-- Tablesorter script: required -->
<script src="modules/EcmReports/TableSorterNew/js/jquery.tablesorter.js"></script>
<script src="modules/EcmReports/TableSorterNew/js/jquery.tablesorter.widgets.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/jquery.blockUI.js"></script>
<!-- Tablesorter: theme -->
<link class="theme" rel="stylesheet" href="modules/EcmReports/TableSorterNew/css/theme.blue.css">
<script type="text/javascript" src="modules/EcmReports/javascript/ListDailySales.js"></script>
<style type="text/css">
{literal}
thead, tfoot {font-weight: bold;}
{/literal}
{literal}
.additionalColumn {
background-color: #87CCED;
border-top: 1px solid black;
}
.sumRow {
background-color: #BDC7B5;
}
/* 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.sumTr td {
background: #EBEBED;
color: black;
}
table.tablesorter tbody tr.sumTr:hover td {
background: #E0E0E2;
color: black;
font-weight: bold;
}
table.tablesorter thead th.groupActiveG {
border-top: 1px solid black;
border-bottom: 1px solid black;
border-left: 1px solid #687783;
background-color: #ABC3D7;
}
table.tablesorter thead th.groupActiveGL {
border-right: 1px solid black;
border-top: 1px solid black;
border-bottom: 1px solid black;
border-left: 1px solid #687783;
background-color: #ABC3D7;
}
table.tablesorter thead th.groupActive {
border-left: 1px solid black;
border-top: 1px solid black;
border-bottom: 1px solid black;
background-color: #ABC3D7;
}
table.tablesorter th.alignRight {
text-align: right;
}
{/literal}
</style>
<table id="table" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>{$MOD.LBL_REPORT} {$MOD.LBL_SUBPANEL_TITLE} </h2>
</td>
</tr>
</table>
<br />
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">Podstawowe wyszukiwanie</a>
</li>
</ul>
<form action="index.php" method="get" name="searchDailyReports">
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="ListDailySales" />
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tr>
{* Search by date_from *}
<td class="dataLabel" width="5%" nowrap="nowrap"> Data od </td>
<td class="dataField" width="10%" nowrap="nowrap">
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" title="" value="{$date_from}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" alt="Enter Date" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_from",
daFormat : "{$dateFormat}",
button : "date_from_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
</td>
{* Search by date_to *}
<td class="dataLabel" width="10%" nowrap="nowrap">Data do</td>
<td class="dataField" width="30%" nowrap="nowrap">
<input autocomplete="off" name="date_to" id="date_to" value="{$date_to}" title="" tabindex="" size="11" maxlength="10" type="text">
<img src="themes/default/images/jscalendar.gif" alt="Enter Date" id="date_to_trigger" align="absmiddle" border="0">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_to",
daFormat : "{$dateFormat}",
button : "date_to_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
{* Search by contractor *}
<td class="dataLabel" width="10%" nowrap="nowrap">{$MOD.LBL_CONTRACTOR}</td>
<td class="dataField" width="30%" nowrap="nowrap">
<input id="account_name" type="text" title="" value="{$contractorName}" size="" tabindex="" name="account_name">
<input id="account_id" type="hidden" value="{$contractorId}" name="account_id">
<input class="button" type="button" value="Wybierz" accesskey="T" title="Select [Alt+T]" tabindex="" value="{$contractorName}" name="btn_account_name" onClick="getContractor()">
{* Open popup window to select contractor *}
<script language="JavaScript" type="text/javascript">
function getContractor(){ldelim}
open_popup("Accounts", 600, 400, "", true, false,
{ldelim}
"call_back_function":"set_return","form_name":"searchDailyReports","field_to_name_array":
{ldelim}"id":"account_id","name":"account_name"{rdelim}
{rdelim}, "single", true);
{rdelim};
</script>
</td>
<td class="dataLabel" width="10%" nowrap="nowrap">Typ dokumentu</td>
<td class="dataField" width="30%" nowrap="nowrap">
<select name="type">
<option value="" { if $searchByType==""} selected="true" {/if} >normalny i korekta</option>
<option value="normal" { if $searchByType=="normal"} selected {/if} >normalny</option>
<option value="correct" { if $searchByType=="correct"} selected {/if} >korekta</option>
</select>
</td>
<td class="dataLabel" width="10%" nowrap="nowrap">Rodzaj faktury:</td>
<td class="dataField" width="30%" nowrap="nowrap">
<select name="pdfType[]" multiple="multiple">
<option value="K" {if $pdfTypeK} selected="true"{/if}>Kraj</option>
<option value="U" {if $pdfTypeU} selected="true"{/if}>Unia</option>
<option value="E" {if $pdfTypeE} selected="true"{/if}>Eksport</option>
</select>
</td>
</tbody>
</table>
<input class="button" name="submit" value="{$MOD.LBL_EXECUTE}" type="submit">
<input class="button" name="clear" value="Wyczyść" type="button" onclick="location.href='index.php?module=EcmReports&action=ListDailySales';">
<input id="showGroupButton" class="button" name="clear" value="{$MOD.BTN_SHOW_GROUP_DIVISION}" type="button">
<input id="showVatButton" class="button" name="clear" value="{$MOD.BTN_SHOW_VAT_DIVISION}" type="button">
<input id="excelEksport" class="button" name="importToExcel" value="{$MOD.BTN_EXCEL_EXPORT}" type="button">
<input id="pdfEksport" class="button" name="importToPDF" value="{$MOD.BTN_PDF_EXPORT}" type="button">
<br>
<br>
{* Table headers *}
<table id="myTable" class="tablesorter-blue">
<thead>
<tr>
<th>{$MOD.LBL_CONTRACTOR}</th>
<th>{$MOD.LBL_INVOICE_NUMBER}</th>
<th>{$MOD.LBL_TYPE}</th>
<th>{$MOD.LBL_REGISTER_DATE}</th>
<th>{$MOD.LBL_PDF_TYPE}</th>
<th class="nettoValue nettoValueVat sorter-saas">{$MOD.LBL_NET_VALUE}</th>
<th class="nettoValueG columnSpectrum sorter-saas">TH1</th>
<th class="nettoValueG columnSpectrum sorter-saas">WG1</th>
<th class="nettoValueG columnSpectrum sorter-saas">PP1</th>
<th class="nettoValueGL columnSpectrum sorter-saas">TR1</th>
<!-- Vat count -->
<th class="vataValue columnVatSpectrum sorter-saas">0%</th>
<th class="vatbValue columnVatSpectrum sorter-saas">22%</th>
<th class="vatcValue columnVatSpectrum sorter-saas">23%</th>
<!-- end vat count -->
<th class="sorter-saas">{$MOD.LBL_GROSS_VALUE}</th>
<th class="nettoValue sorter-saas">{$MOD.LBL_COST}</th>
<th class="nettoValueG columnSpectrum sorter-saas">TH2</th>
<th class="nettoValueG columnSpectrum sorter-saas">WG2</th>
<th class="nettoValueG columnSpectrum sorter-saas">PP2</th>
<th class="nettoValueGL columnSpectrum sorter-saas">TR2</th>
<th class="sorter-saas">{$MOD.LBL_MARGIN}</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="5"></th>
<th class="alignRight">{$SUM.subtotalSum|number_format:2:",":"." }</th>
<th class="columnSpectrum alignRight">{$SUM.subPriceGroupKS1Sum|number_format:2:",":"." }</th>
<th class="columnSpectrum alignRight">{$SUM.subPriceGroupKS2Sum|number_format:2:",":"." }</th>
<th class="columnSpectrum alignRight">{$SUM.subPriceGroupKS3Sum|number_format:2:",":"." }</th>
<th class="columnSpectrum alignRight">{$SUM.subPriceGroupKS4Sum|number_format:2:",":"." }</th>
<th class="columnVatSpectrum alignRight">{$SUM.vataSum|number_format:2:",":"." }</th>
<th class="columnVatSpectrum alignRight">{$SUM.vatbSum|number_format:2:",":"." }</th>
<th class="columnVatSpectrum alignRight">{$SUM.vatcSum|number_format:2:",":"." }</th>
<th class="alignRight">{$SUM.totalSum|number_format:2:",":"." }</th>
<th class="alignRight">{$SUM.costSum|number_format:2:",":"." }</th>
<th class="columnSpectrum alignRight">{$SUM.purchasePriceGroupKS1Sum|number_format:2:",":"." }</th>
<th class="columnSpectrum alignRight">{$SUM.purchasePriceGroupKS2Sum|number_format:2:",":"." }</th>
<th class="columnSpectrum alignRight">{$SUM.purchasePriceGroupKS3Sum|number_format:2:",":"." }</th>
<th class="columnSpectrum alignRight">{$SUM.purchasePriceGroupKS4Sum|number_format:2:",":"." }</th>
<th class="alignRight">{$SUM.marginSum|number_format:2:",":"." }%</th>
</tr>
</tfoot>
<tbody aria-live="polite" aria-relevant="all">
{foreach from=$DATA item=ROW name=loop}
{if $smarty.foreach.loop.index % 2 == 1}
<tr>
{else}
<tr style="background-color: #e6e6e6;" role="row">
{/if}
<td style="text-align:left;">
<a target="new" href="index.php?module=Accounts&return_module=Accounts&action=DetailView&record={$ROW.id}">
{$ROW.contractorName}
</a>
</td>
<td style="text-align:right;">
<a target="new" href="index.php?module=EcmInvoiceOuts&action=DetailView&record={$ROW.invoiceoutId}">
{$ROW.document_no}
</a>
<td style="text-align:right;">{if $ROW.type == 'normal'}
{$MOD.LBL_PDF_TYPE_NORMAL}
{else if $ROW.type == 'correct'}
{$MOD.LBL_PDF_TYPE_CORRECT}
{/if}
</td>
<td style="text-align:right;">{$ROW.register_date|date_format:"%d.%m.%Y"}</td>
<td style="text-align:right;">{if $ROW.pdf_type == 'U'}
{$MOD.LBL_PDF_TYPE_U}
{/if}
{if $ROW.pdf_type == 'K'}
{$MOD.LBL_PDF_TYPE_K}
{/if}
{if $ROW.pdf_type == 'E'}
{$MOD.LBL_PDF_TYPE_E}
{/if}
</td>
<td class="gs" style="text-align:right;">{$ROW.subtotal|number_format:2:",":"." }</td>
<td class="columnSpectrum" style="text-align:right;border-left: 1px solid #687783;">{$ROW.subPriceGroupKS1|number_format:2:",":"." }</td>
<td class="columnSpectrum" style="text-align:right;">{$ROW.subPriceGroupKS2|number_format:2:",":"." }</td>
<td class="columnSpectrum" style="text-align:right; padding-right: 4px;">{$ROW.subPriceGroupKS3|number_format:2:",":"." }</td>
<td class="columnSpectrum" style="text-align:right; border-right: 1px solid #687783; padding-right: 4px;">{$ROW.subPriceGroupKS4|number_format:2:",":"." }</td>
<!-- Vat values -->
<td class="columnVatSpectrum" style="text-align:right;border-left: 1px solid #687783; border-right: 1px solid #687783; padding-right: 4px;">{$ROW.vata|number_format:2:",":"." }</td>
<td class="columnVatSpectrum" style="text-align:right; border-right: 1px solid #687783; padding-right: 4px;">{$ROW.vatb|number_format:2:",":"." }</td>
<td class="columnVatSpectrum" style="text-align:right; border-right: 1px solid #687783; padding-right: 4px;">{$ROW.vatc|number_format:2:",":"." }</td>
<!-- end vat values -->
<td style="text-align:right;">{$ROW.total|number_format:2:",":"." }</td>
<td class="gc" style="text-align:right;">{$ROW.cost|number_format:2:",":"." }</td>
<td class="columnSpectrum" style="text-align:right;border-left: 1px solid #687783;">{$ROW.purchasePriceGroupKS1|number_format:2:",":"." }</td>
<td class="columnSpectrum" style="text-align:right;">{$ROW.purchasePriceGroupKS2|number_format:2:",":"." }</td>
<td class="columnSpectrum" style="text-align:right; padding-right: 4px;">{$ROW.purchasePriceGroupKS3|number_format:2:",":"." }</td>
<td class="columnSpectrum" style="text-align:right; border-right: 1px solid #687783; padding-right: 4px;">{$ROW.purchasePriceGroupKS4|number_format:2:",":"." }</td>
<td style="text-align:right;">{$ROW.margin|number_format:2:",":"." }%</td>
{/foreach}
</tr>
</tbody>
</table>

View File

@@ -0,0 +1,306 @@
<style type="text/css">
{literal}
body {
font-size: 7px;
}
/* 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: #000;
background-color: #E6F2EE;
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 {
/* black (unsorted) double arrow */
/* white (unsorted) double arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); */
/* image */
/* background-image: url(images/black-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;
/* black asc arrow */
/* white asc arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); */
/* image */
/* background-image: url(images/black-asc.gif); */
}
.tablesorter-blue .headerSortDown,
.tablesorter-blue .tablesorter-headerSortDown,
.tablesorter-blue .tablesorter-headerDesc {
background-color: #E7E7E9;
/* black desc arrow */
/* white desc arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); */
/* image */
/* background-image: url(images/black-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; */
}
/* 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 {
}
#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 style="width:100%;vertical-align:top;">
<tr>
<td style="width:50%;text-align;left"><h1>Raport kart pracy - produkty</h1></td>
<td style="width:25%;text-align;right;vertical-align:top;">
Raport za: {$dateformat}<br>
</td>
<td style="width:25%;text-align;right;vertical-align:top;">
</td>
</tr>
</table>
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="5%" style = "text-align: left">Kod produktu</th>
<th width="40%" style = "text-align: left">Nazwa produktu</th>
<th width="11%" style = "text-align: right">Ilość PW</th>
<th width="11%" style = "text-align: right">Ilość godzin</th>
<th width="11%" style = "text-align: right">Koszt</th>
<th width="11%" style = "text-align: right">Sztuk na godz.</th>
<th width="11%" style = "text-align: right">Koszt jend.</th>
</tr>
</thead>
<tbody>
{foreach from=$data item=rekord key=kl}
<tr>
<td onclick="showHide('{$rekord.indeks}');">{$rekord.code}</td>
<td onclick="showHide('{$rekord.indeks}');">{$rekord.name}</td>
<td onclick="showHide('{$rekord.indeks}');" style = "text-align: right" data-value="{$rekord.pw_quantity}">{$rekord.pw_quantity|number_format:2:".":"" } </td>
<td onclick="showHide('{$rekord.indeks}');" style = "text-align: right" data-value="{$rekord.hours}">{$rekord.hours|number_format:2:".":"" } </td>
<td onclick="showHide('{$rekord.indeks}');" style = "text-align: right" data-value="{$rekord.cost}">{$rekord.cost|number_format:2:",":"." } </td>
<td onclick="showHide('{$rekord.indeks}');" style = "text-align: right" data-value="{$rekord.pw_quantity/$rekord.hours}">{$rekord.pw_quantity/$rekord.hours|number_format:2:",":"." } </td>
<td onclick="showHide('{$rekord.indeks}');" style = "text-align: right" data-value="{$rekord.cost/$record.pw_quantity}">{$rekord.cost/$record.pw_quantity|number_format:2:",":"." } </td>
</tr>
{/foreach}
</tbody>
<tfoot style="background-color: #E8E8E8;">
<tr>
<td style="text-align: left;background-color: #E8E8E8; border: 1px solid #E8E8E8;">Razem</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;"></td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$totalQuantityPw|number_format:2:",":"."}</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$totalh|number_format:2:",":"."}</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$totalc|number_format:2:",":"."}</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">0</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">0</td>
</tr>
</tfoot>
</table>
<br/>

View File

@@ -0,0 +1,298 @@
<style type="text/css">
{literal}
thead, tfoot {font-weight: bold;}
{/literal}
{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 {
/* black (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/black-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;
/* black 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/black-asc.gif); */
}
.tablesorter-blue .headerSortDown,
.tablesorter-blue .tablesorter-headerSortDown,
.tablesorter-blue .tablesorter-headerDesc {
background-color: #E7E7E9;
/* black 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/black-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 tfoot th {
text-align: right;
}
{/literal}
</style>
<h1>{$MOD.LBL_REPORT} {$MOD.LBL_SUBPANEL_TITLE} </h1>
{* Table headers *}
<table id="myTable" class="tablesorter-blue">
<thead>
<tr>
<th>{$MOD.LBL_CONTRACTOR}</th>
<th>{$MOD.LBL_INVOICE_NUMBER}</th>
<th>{$MOD.LBL_TYPE}</th>
<th>{$MOD.LBL_REGISTER_DATE}</th>
<th>{$MOD.LBL_PDF_TYPE}</th>
<th>{$MOD.LBL_NET_VALUE}</th>
<th class="sorter-saas">{$MOD.LBL_GROSS_VALUE}</th>
<th class="nettoValue sorter-saas">{$MOD.LBL_COST}</th>
<th class="sorter-saas">{$MOD.LBL_MARGIN}</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="5"></th>
<th>{$SUM.subtotalSum|number_format:2:",":"." }</th>
<th>{$SUM.totalSum|number_format:2:",":"." }</th>
<th>{$SUM.costSum|number_format:2:",":"." }</th>
<th>{$SUM.marginSum|number_format:2:",":"." }%</th>
</tr>
</tfoot>
<tbody aria-live="polite" aria-relevant="all">
{foreach from=$DATA item=ROW name=loop}
{if $smarty.foreach.loop.index % 2 == 1}
<tr>
{else}
<tr style="background-color: #e6e6e6;" role="row">
{/if}
<td style="text-align:left;">{$ROW.contractorName}</td>
<td style="text-align:right;">{$ROW.document_no}</td>
<td style="text-align:right;">{if $ROW.type == 'normal'}
{$MOD.LBL_PDF_TYPE_NORMAL}
{else if $ROW.type == 'correct'}
{$MOD.LBL_PDF_TYPE_CORRECT}
{/if}
</td>
<td style="text-align:right;">{$ROW.register_date|date_format:"%d.%m.%Y"}</td>
<td style="text-align:right;">{if $ROW.pdf_type == 'U'}
{$MOD.LBL_PDF_TYPE_U}
{/if}
{if $ROW.pdf_type == 'K'}
{$MOD.LBL_PDF_TYPE_K}
{/if}
{if $ROW.pdf_type == 'E'}
{$MOD.LBL_PDF_TYPE_E}
{/if}
</td>
<td class="gs" style="text-align:right;">{$ROW.subtotal|number_format:2:",":"." }</td>
<td style="text-align:right;">{$ROW.total|number_format:2:",":"." }</td>
<td class="gc" style="text-align:right;">{$ROW.cost|number_format:2:",":"." }</td>
<td style="text-align:right;">{$ROW.margin|number_format:2:",":"." }%</td>
{/foreach}
</tr>
</tbody>
</table>

View File

@@ -0,0 +1,316 @@
<style type="text/css">
{literal}
body {
font-size: 7px;
}
/* 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: #000;
background-color: #E6F2EE;
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 {
/* black (unsorted) double arrow */
/* white (unsorted) double arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); */
/* image */
/* background-image: url(images/black-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;
/* black asc arrow */
/* white asc arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); */
/* image */
/* background-image: url(images/black-asc.gif); */
}
.tablesorter-blue .headerSortDown,
.tablesorter-blue .tablesorter-headerSortDown,
.tablesorter-blue .tablesorter-headerDesc {
background-color: #E7E7E9;
/* black desc arrow */
/* white desc arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); */
/* image */
/* background-image: url(images/black-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; */
}
/* 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 {
}
#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 style="width:100%;vertical-align:top;">
<tr>
<td style="width:50%;text-align;left"><h1>Raport zamówien sprzedaży</h1></td>
<td style="width:25%;text-align;right;vertical-align:top;">
Data raportu od: {$date_from}<br>
{if $order_type eq ''}
Typ zamówienia: Wszystkie<br>
{else}
Typ zamówienia: {if $order_type eq 'K'} Okresowe {/if}
{if $order_type eq 'E'} Normalne {/if}<br>
{/if}
</td>
<td style="width:25%;text-align;right;vertical-align:top;">
Data raportu do: {$date_to}<br>
{if $product_category_name_basic!=""}
Kategoria produktu: {$product_category_name_basic}<br>
{/if}
{if $product_group_name_basic!=""}
Grupa produktowa: {$product_group_name_basic}<br>
{/if}
</td>
</tr>
</table>
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th>Indeks</th>
<th>Nazwa</th>
<th>Ilość na mag.</th>
<th>Ilość zam.</th>
</tr>
</thead>
{foreach from=$DATA item=item key=key name=loop}
{* Table headers *}
<tbody>
<tr class="category">
<td class="oddListRowS1 alignLeft"><b> {$item.code}</b></td>
<td class="oddListRowS1 alignLeft"><b> {$item.name}</b></td>
<td class="sumRow" ><b>{$item.state|number_format:0:",":"" }</b></td>
<td class="sumRow" ><b>{$item.total|number_format:2:",":"" }</b></td>
</tr>
</tbody>
{/foreach}
<tfoot>
<tr class="category">
<th colspan=2 style="text-align:right;">Razem:</th>
<th colspan=2 class="sumRow " style="text-align:right;">{$total|number_format:2:",":"" }</th>
</tr>
</tfoot>
</table>
<br/>

View File

@@ -0,0 +1,409 @@
{literal}
<html>
<head>
<style>
@page {
size: auto;
odd-header-name: html_MyHeader1;
odd-footer-name: html_MyFooter1;
}
@page chapter2 {
odd-header-name: html_MyHeader2;
odd-footer-name: html_MyFooter2;
}
@page noheader {
odd-header-name: _blank;
odd-footer-name: _blank;
}
div.chapter2 {
page-break-before: always;
page: chapter2;
}
div.noheader {
page-break-before: always;
page: noheader;
}
#newpage
{
padding-top: 80px;
}
body {
font-size: 10px;
}
/* overall */
.tablesorter-blue {
width: 100%;
background-color: #fff;
margin: 100px 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;
border-bottom: 1px solid black;
}
/* header */
.tablesorter-blue th,
.tablesorter-blue thead td {
font: bold 10px/18px Arial, Sans-serif;
color: #000;
background-color: #fff;
padding: 4px;
border-top: 2px solid red;
}
.tablesorter-blue tbody td,
.tablesorter-blue tfoot th,
.tablesorter-blue tfoot td {
padding: 4px;
vertical-align: top;
}
.tablesorter-blue .header,
.tablesorter-blue .tablesorter-header {
/* black (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/black-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;
/* black 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/black-asc.gif); */
}
.tablesorter-blue .headerSortDown,
.tablesorter-blue .tablesorter-headerSortDown,
.tablesorter-blue .tablesorter-headerDesc {
background-color: #E7E7E9;
/* black 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/black-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;
}
/* 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;
}
#table tfoot th {
text-align: right;
}
</style>
</head>
<body>
<htmlpageheader name="MyHeader1">
{/literal}
<div style="text-align: left; border-bottom: 1px solid #000000; font-weight: bold; font-size: 7pt;">
<table>
<tr>
<td style="font-size: 25px; font-weight: bold">Rejestr zakupu</td>
</tr>
<tr>
<td style="font-size: 12px; font-weight: bold">{$company_name}</td>
</tr>
<tr>
<td style="font-size: 12px; font-weight: bold">Data wygenerowania: {$current_date_formatted}</td>
</tr>
<tr>
<td style="font-size: 12px; font-weight: bold">Rejestr od: {$date_from} do: {$date_to}</td>
</tr>
</table>
</div>
{literal}
</htmlpageheader>
<htmlpagefooter name="MyFooter1">
<table width="100%" style="vertical-align: bottom; font-family: serif; font-size: 8pt;
color: #000000; font-weight: bold; font-style: italic;"><tr>
<td width="33%"><span style="font-weight: bold; font-style: italic;">{DATE j.m.Y}</span></td>
<td width="33%" align="center" style="font-weight: bold; font-style: italic;">{PAGENO}/{nbpg}</td>
<td width="33%" style="text-align: right; ">Rejestr zakupu</td>
</tr></table>
</htmlpagefooter>
<htmlpagefooter name="MyFooter2">
<table width="100%" style="vertical-align: bottom; font-family: serif; font-size: 8pt;
color: #000000; font-weight: bold; font-style: italic;"><tr>
<td width="33%"><span style="font-weight: bold; font-style: italic;">SAAS-SYSTEMS</span></td>
<td width="33%" align="center" style="font-weight: bold; font-style: italic;">{PAGENO}/{nbpg}</td>
<td width="33%" style="text-align: right; ">{DATE j-m-Y}</td>
</tr></table>
</htmlpagefooter>
{/literal}
<div>
{assign var=counter value=1}
{foreach from=$dataPart key=klucz item=data name=data}
<table id="myTable" class="tablesorter-blue">
<thead>
<tr>
<th style="border-left: 1px solid black; border-top: 1px solid black; font-weight: bold; font-size: 7pt;">Lp</th>
<th style="border-left: 1px solid black; border-top: 1px solid black; font-weight: bold; font-size: 7pt;">{$MOD.LBL_DOC_NUMBER}</th>
<th style="border-left: 1px solid black; border-top: 1px solid black; font-weight: bold; font-size: 7pt;">{$MOD.LBL_CREATE_LAB}</th>
<th style="border-left: 1px solid black; border-top: 1px solid black; font-weight: bold; font-size: 7pt;">{$MOD.LBL_SALE_DATE}</th>
<th style="border-left: 1px solid black; border-top: 1px solid black; font-weight: bold; font-size: 7pt;">{$MOD.LBL_SALES_NIP}</th>
<th style="border-left: 1px solid black; border-top: 1px solid black; font-weight: bold; font-size: 7pt;">{$MOD.LBL_LIST_SUBJECT}</th>
<th style="border-left: 1px solid black; border-top: 1px solid black; font-weight: bold; font-size: 7pt;">{$MOD.LBL_BUYER_VALUE_BRUTTO}</th>
{foreach from= $vat_value key= t item= w}
<th style="border-left: 1px solid black; border-top: 1px solid black; font-weight: bold; font-size: 7pt;">{$MOD.LBL_BUYER_VALUE_NETTO} {$t}</th>
{if $w.sumavat != NULL}
<th style="border-left: 1px solid black; border-top: 1px solid black; font-weight: bold; font-size: 7pt;">{$MOD.LBL_VAT} {$t}</th>
{/if}
{/foreach}
<th style="border-left: 1px solid black; border-top: 1px solid black; font-weight: bold; font-size: 7pt; ">{$MOD.LBL_SUM_VAT}</th>
</tr>
</thead>
<tbody>
{foreach from= $data key= k item= i}
<tr>
<td>{$counter}</td>
<td> {$i.document_number}</td>
<td>{$i.document_date|date_format:"%d.%m.%Y"}</td>
<td>{$i.register_date|date_format:"%d.%m.%Y"}</td>
<td>{$i.to_vatid}</td>
<td>{$i.name}</td>
<td style = "text-align: right">{$i.value|number_format:2:",":"."}</td>
{foreach from=$vat_value key=o item=j}
{assign var=prawdafalsz value=false}
{foreach from=$i.vaty item = e}
{if $o == $e.vat_value}
{assign var=prawdafalsz value=true}
{assign var=prawdafalszvat value=$e.vat}
{assign var=prawdafalsznetto value=$e.netto}
{/if}
{/foreach}
{if $prawdafalsz == true }
<td style = "text-align: right">{$prawdafalsznetto|number_format:2:",":"."}</td>
{if $j.sumavat != NULL}
<td style = "text-align: right">{$prawdafalszvat|number_format:2:",":"."}</td>
{/if}
{else}
<td style = "text-align: right">0,00</td>
{if $j.sumavat != NULL}
<td style = "text-align: right">0,00</td>
{/if}
{/if}
{/foreach}
<td style = "text-align: right">{$i.vatsumapozycja|number_format:2:",":"."}</td>
</tr>
{assign var=counter value=$counter+1}
{/foreach}
</tbody>
<tfoot>
<tr>
<td style="text-align: right; font-weight: bold; font-size: 7pt;" colspan="6">{$MOD.LBL_PAGE_SUM}</td>
<td style="text-align: right; font-weight: bold; font-size: 7pt;">{$pageBruttoVat[$klucz].brutto|number_format:2:",":"."}</td>
{foreach from=$pageVatSum[$klucz] key =vatName item=vatValue}
<td style="text-align: right; font-weight: bold; font-size: 7pt;">{$vatValue.netto|number_format:2:",":"."}</td>
{if $vatValue.vat != 'null' || $vatValue.vat=='0'}
<td style="text-align: right; font-weight: bold; font-size: 7pt;">{$vatValue.vat|number_format:2:",":"."}</td>
{/if}
{/foreach}
<td style="text-align: right; font-weight: bold; font-size: 7pt; ">{$pageBruttoVat[$klucz].vat|number_format:2:",":"."}</td>
</tr>
<tr>
<td style="text-align: right; font-weight: bold; font-size: 7pt;" colspan="6">{$MOD.LBL_TRANSFER_SUM}</td>
<td style="text-align: right; font-weight: bold; font-size: 7pt;">{$partialBruttoVat[$klucz].brutto-$pageBruttoVat[$klucz].brutto|number_format:2:",":"."}</td>
{if $klucz>0}
{assign var='dupa' value=$klucz-1}
{foreach from=$partialVatSum[$dupa] key =vatName item=vatValue}
<td style="text-align: right; font-weight: bold; font-size: 7pt;">{$vatValue.netto|number_format:2:",":"."}</td>
{if $vatValue.vat != 'null' || $vatValue.vat=='0'}
<td style="text-align: right; font-weight: bold; font-size: 7pt;">{$vatValue.vat|number_format:2:",":"."}</td>
{/if}
{/foreach}
{else}
{foreach from=$partialVatSum[$klucz] key =vatName item=vatValue}
<td style="text-align: right; font-weight: bold; font-size: 7pt;">0,00</td>
{if $vatValue.vat != 'null' || $vatValue.vat=='0'}
<td style="text-align: right; font-weight: bold; font-size: 7pt;">0,00</td>
{/if}
{/foreach}
{/if}
<td style="text-align: right; font-weight: bold; font-size: 7pt; ">{$partialBruttoVat[$klucz].vat-$pageBruttoVat[$klucz].vat|number_format:2:",":"."}</td>
</tr>
<tr>
<td style="text-align: right; font-weight: bold; font-size: 7pt;" colspan="6">{$MOD.LBL_VALUE}</td>
<td style="text-align: right; font-weight: bold; font-size: 7pt;">{$partialBruttoVat[$klucz].brutto|number_format:2:",":"."}</td>
{foreach from=$partialVatSum[$klucz] key =vatName item=vatValue}
<td style="text-align: right; font-weight: bold; font-size: 7pt;">{$vatValue.netto|number_format:2:",":"."}</td>
{if $vatValue.vat != 'null' || $vatValue.vat=='0'}
<td style="text-align: right; font-weight: bold; font-size: 7pt;">{$vatValue.vat|number_format:2:",":"."}</td>
{/if}
{/foreach}
<td style="text-align: right; font-weight: bold; font-size: 7pt; ">{$partialBruttoVat[$klucz].vat|number_format:2:",":"."}</td>
</tr>
</tfoot>
</table>
{if !$smarty.foreach.data.last}
<newpage>
{/if}
{/foreach}
</div>
</body>
</html>

View File

@@ -0,0 +1,46 @@
<link class="theme" rel="stylesheet" href="modules/EcmReports/tpls/PDF/css/style.css">
<h1>{$MOD.LBL_REPORT} {$MOD.LBL_REPORT_ECMWORKCARDS}</h2>
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="15%" style = "border-bottom: 1px solid black;text-align: left">{$MOD.LBL_WORKER_NAME}</th>
<th width="7%" style = "border-bottom: 1px solid black;text-align: left">{$MOD.LBL_ACTION_CODE}</th>
<th width="30%" style = "border-bottom: 1px solid black;text-align: left">{$MOD.LBL_ACTION}</th>
<th width="5%" style = "border-bottom: 1px solid black;text-align: left">{$MOD.LBL_QUANTITY}</th>
<th width="7%" style = "border-bottom: 1px solid black;text-align: left">{$MOD.LBL_PRODUCT_CODE}</th>
<th width="40%" style = "border-bottom: 1px solid black;text-align: left">{$MOD.LBL_PRODUCTS}</th>
<th width="10%" style = "border-bottom: 1px solid black;text-align: right">{$MOD.LBL_SUM_NETTO}</th>
<th width="10%" style = "border-bottom: 1px solid black;text-align: right">{$MOD.LBL_SUM_BRUTTO}</th>
</tr>
</thead>
<tbody>
{foreach from=$data item=rekord key=kl}
<tr id="parent_{$kl}" class="{$rekord.class}">
<td style = "border-top: 1px solid black;border-left: 1px solid black;">{$rekord.work_name}</td>
<td colspan="5" style = "border-top: 1px solid black;"></td>
<td style = "border-top: 1px solid black;text-align: right">{$rekord.netto}</td>
<td style = "border-top: 1px solid black;border-right: 1px solid black;text-align: right">{$rekord.brutto}</td>
</tr>
{foreach from=$rekord.actions item=czynnosc}
<tr style="background-color: #e6e6e6;">
<td style = "border-left: 1px solid black;text-align: left"></td>
<td style = "text-align: left">{$czynnosc.actioncode}</td>
<td style = "text-align: left">{$czynnosc.actionname}</td>
<td style = "text-align: right">{$czynnosc.quantity}</td>
<td style = "text-align: left">{$czynnosc.productcode}</td>
<td style = "text-align: left">{$czynnosc.productname}</td>
<td style = "text-align: right">{$czynnosc.netto}</td>
<td style = "border-right: 1px solid black;text-align: right">{$czynnosc.brutto}</td>
</tr>
{/foreach}
{/foreach}
</tbody>
<tfoot>
<tr>
<th style="text-align: left;">{$MOD.LBL_SUM}</th>
<th colspan="5"></th>
<th style="text-align: right">{$suma.netto}</th>
<th style="text-align: right">{$suma.brutto}</th>
</tr>
</tfoot>
</table>

View File

@@ -0,0 +1,49 @@
<link class="theme" rel="stylesheet" href="modules/EcmReports/tpls/PDF/css/style.css">
<h1>{$MOD.LBL_REPORT} {$MOD.LBL_REPORT_ECMWORKCARDS_PRODUCTS} </h1>
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="40%" style = "border-bottom: 1px solid black;text-align: left">{$MOD.LBL_PRODUCTS}</th>
<th width="15%" style = "border-bottom: 1px solid black;text-align: left">{$MOD.LBL_WORKER_NAME}</th>
<th width="7%" style = "border-bottom: 1px solid black;text-align: left">{$MOD.LBL_ACTION_CODE}</th>
<th width="30%" style = "border-bottom: 1px solid black;text-align: left">{$MOD.LBL_ACTION}</th>
<th width="5%" style = "border-bottom: 1px solid black;text-align: left">{$MOD.LBL_QUANTITY}</th>
<th width="5%" style = "border-bottom: 1px solid black;text-align: left">{$MOD.LBL_PW_QUANTITY}</th>
<th width="11%" style = "border-bottom: 1px solid black;text-align: right">{$MOD.LBL_SUM_NETTO}</th>
<th width="11%" style = "border-bottom: 1px solid black;text-align: right">{$MOD.LBL_SUM_BRUTTO}</th>
</tr>
</thead>
<tbody>
{foreach from=$data item=rekord key=kl}
<tr id="parent_{$rekord.indeks}">
<td style = "border-top: 1px solid black;border-left: 1px solid black;">{$rekord.code} {$rekord.name}</td>
<td colspan="4" style = "border-top: 1px solid black;"></td>
<td style = "border-top: 1px solid black;text-align: right">{$rekord.pw}</td>
<td style = "border-top: 1px solid black;text-align: right">{$rekord.netto|number_format:2:",":"."}</td>
<td style = "border-top: 1px solid black;border-right: 1px solid black;text-align: right">{$rekord.brutto|number_format:2:",":"."}</td>
</tr>
{foreach from=$rekord.actions key=klucz item=pracownik}
{foreach from=$pracownik item=czynnosc}
<tr name="child_{$rekord.indeks}" style="background-color: #e6e6e6;" role="row">
<td style = "border-left: 1px solid black;text-align: left"></td>
<td style = "text-align: left">{$klucz}</td>
<td style = "text-align: left">{$czynnosc.actioncode}</td>
<td style = "text-align: left">{$czynnosc.actionname}</td>
<td style = "text-align: right">{$czynnosc.quantity}</td>
<td style = "text-align: right">{$rekord.pw}</td>
<td style = "text-align: right">{$czynnosc.netto|number_format:2:",":"."}</td>
<td style = "border-right: 1px solid black;text-align: right">{$czynnosc.brutto|number_format:2:",":"."}</td>
</tr>
{/foreach}
{/foreach}
{/foreach}
</tbody>
<tfoot>
<tr>
<th style="text-align: left;">{$MOD.LBL_SUM}</th>
<th colspan="5"></th>
<th style="text-align: right;">{$suma.netto|number_format:2:",":"."}</th>
<th style="text-align: right;">{$suma.brutto|number_format:2:",":"."}</th>
</tr>
</tfoot>
</table>

View File

@@ -0,0 +1,357 @@
<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 {
/* black (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/black-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;
/* black 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/black-asc.gif); */
}
.tablesorter-blue .headerSortDown,
.tablesorter-blue .tablesorter-headerSortDown,
.tablesorter-blue .tablesorter-headerDesc {
background-color: #E7E7E9;
/* black 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/black-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 tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th>{$MOD.LBL_PRODUCTS}</th>
{if $searchBy=="product"}
<th>Indeks</th>
{/if}
<th>{$MOD.LBL_SOLD_AMOUNT}</th>
<th>{$MOD.LBL_VALUE_SALES}</th>
{*<th>Wartość sprzedaży bez korekt</th>*}
<th>{$MOD.LBL_AVERAGE_PRICE}</th>
<th>{$MOD.LBL_COST}</th>
<th>{$MOD.LBL_MARGIN}</th>
{if $searchBy=="none"}
<th>{$MOD.LBL_STOCK_STATES}</th>
<th>{$MOD.LBL_STOCK_VALUE}</th>
{/if}
</tr>
</thead>
{foreach from=$DATA item=CAT key=CATNAME name=loop}
{* Table headers *}
<tbody>
<tr class="category">
{if $CATNAME != ""}
<td class="oddListRowS1 alignLeft"><b> {$CATNAME}</b></td>
{/if}
{if $searchBy=="product"}
<td class="oddListRowS1" ></td>
{/if}
<td class="sumRow" ><b>{$DATA.$CATNAME.IloscSum|number_format:0:",":"." }</b></td>
<td class="sumRow" ><b>{$DATA.$CATNAME.SoldSum|number_format:2:",":"." }</b></td>
{* <td class="sumRow" ><b><span class='green-text'>{$DATA.$CATNAME.SoldSumNormal|number_format:2:",":"." }</span></b></td>*}
<td class="sumRow" ><b>{$DATA.$CATNAME.SredniaSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$DATA.$CATNAME.KosztSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$DATA.$CATNAME.MarzaSum|number_format:2:",":"." }%</b></td>
{if $searchBy=="none"}
<td class="sumRow" ><b>{$DATA.$CATNAME.StanSum|number_format:0:",":"." }</b></td>
<td class="sumRow" ><b>{$DATA.$CATNAME.WartoscSum|number_format:2:",":"." }</b></td>
{/if}
</tr>
</tbody>
{foreach from=$CAT item=CAT2 key=CAT2NAME name=loop}
{if $CAT2NAME!="IloscSum" && $CAT2NAME!="SoldSum" && $CAT2NAME!="SoldSumNormal" && $CAT2NAME!="IloscNormal" && $CAT2NAME!="SredniaSum" && $CAT2NAME!="KosztSum" && $CAT2NAME!="MarzaSum" && $CAT2NAME!="StanSum" && $CAT2NAME!="WartoscSum"}
<tbody>
<tr>
<td class="subcategory alignLeft"><b> {$CAT2NAME}</b></td>
{if $searchBy=="product"}
<td></td>
{/if}
<td class="sumRow" ><b>{$CAT.$CAT2NAME.IloscSum2|number_format:0:",":"." }</b></td>
<td class="sumRow" ><b>{$CAT.$CAT2NAME.SoldSum2|number_format:2:",":"." }</b></td>
{*<td class="sumRow" ><b><span class='green-text'>{$CAT.$CAT2NAME.SoldSumNormal2|number_format:2:",":"." }</span></b></td>*}
<td class="sumRow" ><b>{$CAT.$CAT2NAME.SredniaSum2|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$CAT.$CAT2NAME.KosztSum2|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$CAT.$CAT2NAME.MarzaSum2|number_format:2:",":"." }%</b></td>
</tr>
</tbody>
<tbody aria-live="polite" aria-relevant="all">
{foreach from=$CAT2 item=ROW name=loop}
{if $ROW.name!="IloscSum" && $ROW.name!="SoldSum" && $ROW.name!="SredniaSum" && $ROW.name!="KosztSum" && $ROW.name!="MarzaSum" && $CAT2NAME!="StanSum" && $CAT2NAME!="WartoscSum" && $ROW.name!=""}
<tr role="row">
<td class="alignLeft product" style="text-align:left;">
{$ROW.name}
</td>
{if $searchBy=="product"}
<td class="oddListRowS1 alignLeft" >{$ROW.code}</td>
{/if}
<td class="oddListRowS1" >{$ROW.ilosc|number_format:0:",":"."}</td>
<td class="oddListRowS1" >{$ROW.netto|number_format:2:",":"."}</td>
{* <td class="oddListRowS1" ><span class='green-text'>{$ROW.nettoNormal|number_format:2:",":"." }</span></td>*}
<td class="oddListRowS1" >{$ROW.srednia|number_format:2:",":"."}</td>
<td class="oddListRowS1" >{$ROW.koszt|number_format:2:",":"."}</td>
<td class="oddListRowS1" >{$ROW.marza|number_format:2:",":"."}%</td>
</tr>
{/if}
{/foreach}
</tbody>
<tbody id="stopRows"></tbody>
{/if}
{/foreach}
<tbody id="stopTables"></tbody>
{/foreach}
<tbody id="functions-core" class="tablesorter-infoOnly">
<tr class="sumAll">
<td class="oddListRowS1 alignLeft"><b>{$MOD.LBL_SUM}:</b></td>
{if $searchBy=="product"}
<td class="oddListRowS1" ></td>
{/if}
<td class="oddListRowS1 sumRow" ><b>{$SUM.IloscSumSum|number_format:0:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.SoldSumSum|number_format:2:",":"." }</b></td>
{* <td class="oddListRowS1 sumRow" ><b><span class='green-text'>{$SUM.SoldSumSumNormal|number_format:2:",":"." }</span></b></td>*}
<td class="oddListRowS1 sumRow" ><b>{$SUM.SredniaSumSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.KosztSumSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.MarzaSumSum|number_format:2:",":"." }%</b></td>
</tr>
</tbody>
</table>
<br/>

View File

@@ -0,0 +1,343 @@
<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 {
/* black (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/black-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;
/* black 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/black-asc.gif); */
}
.tablesorter-blue .headerSortDown,
.tablesorter-blue .tablesorter-headerSortDown,
.tablesorter-blue .tablesorter-headerDesc {
background-color: #E7E7E9;
/* black 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/black-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.category {
padding-left: 15px;
}
#myTable tbody tr td.subcategory {
padding-left: 30px;
}
#myTable tbody tr td.product {
padding-left: 55px;
}
#myTable tbody tr.contractor {
background-color: #96FF7C;
}
#myTable tbody tr.sumAll td {
background-color: #242424;
color: #ffffff;
}
#myTable tbody tr td.sumRow, #myTable tbody tr td.oddListRowS1 {
text-align: right;
}
{/literal}
</style>
<table id="myTable" class="tablesorter-blue">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th>{$MOD.LBL_CONTRACTOR}</th>
<th>Indeks</th>
<th>{$MOD.LBL_SOLD_AMOUNT}</th>
<th>{$MOD.LBL_VALUE_SALES}</th>
<th>{$MOD.LBL_AVERAGE_PRICE}</th>
<th>{$MOD.LBL_COST}</th>
<th>{$MOD.LBL_MARGIN}</th>
</tr>
</thead>
{foreach from=$ContractorData item=DATA key=CONNAME name=loop}
{if $CONNAME!=""}
<tbody>
<tr class="contractor">
<td class="alignLeft"><b> {$CONNAME}</b></td>
<td class="sumRow" ></td>
<td class="sumRow" ><b>{$ContractorData.$CONNAME.IloscSum|number_format:0:",":"." }</b></td>
<td class="sumRow" ><b>{$ContractorData.$CONNAME.SoldSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$ContractorData.$CONNAME.SredniaSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$ContractorData.$CONNAME.KosztSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$ContractorData.$CONNAME.MarzaSum|number_format:2:",":"." }%</b></td>
</tr>
</tbody>
{foreach from=$DATA item=CAT key=CATNAME name=loop}
{if $CATNAME!="IloscSum" && $CATNAME!="SoldSum" && $CATNAME!="SredniaSum" && $CATNAME!="KosztSum" && $CATNAME!="MarzaSum" && $CATNAME!="StanSum" && $CATNAME!="WartoscSum"}
<tbody>
<tr>
<td class="alignLeft category"><b> {$CATNAME}</b></td>
<td class="sumRow" ></td>
<td class="sumRow" ><b>{$DATA.$CATNAME.IloscSum|number_format:0:",":"." }</b></td>
<td class="sumRow" ><b>{$DATA.$CATNAME.SoldSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$DATA.$CATNAME.SredniaSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$DATA.$CATNAME.KosztSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$DATA.$CATNAME.MarzaSum|number_format:2:",":"." }%</b></td>
</tr>
</tbody>
{foreach from=$CAT item=CAT2 key=CAT2NAME name=loop}
{if $CAT2NAME!="IloscSum" && $CAT2NAME!="SoldSum" && $CAT2NAME!="SoldSumNormal" && $CAT2NAME!="IloscNormal" && $CAT2NAME!="SredniaSum" && $CAT2NAME!="KosztSum" && $CAT2NAME!="MarzaSum" && $CAT2NAME!="StanSum" && $CAT2NAME!="WartoscSum"}
<tbody>
<tr>
<td class="alignLeft subcategory"><b> {$CAT2NAME}</b></td>
<td class="sumRow"></td>
<td class="sumRow" ><b>{$CAT.$CAT2NAME.IloscSum|number_format:0:",":"." }</b></td>
<td class="sumRow" ><b>{$CAT.$CAT2NAME.SoldSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$CAT.$CAT2NAME.SredniaSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$CAT.$CAT2NAME.KosztSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$CAT.$CAT2NAME.MarzaSum|number_format:2:",":"." }%</b></td>
</tr>
</tbody>
<tbody aria-live="polite" aria-relevant="all" class="rowShowHide">
{foreach from=$CAT2 item=ROW name=loop}
{if $ROW.name!="IloscSum" && $ROW.name!="SoldSum" && $ROW.name!="SredniaSum" && $ROW.name!="KosztSum" && $ROW.name!="MarzaSum" && $CAT2NAME!="StanSum" && $CAT2NAME!="WartoscSum" && $ROW.name!=""}
{if $smarty.foreach.loop.index % 2 == 1}
<tr role="row" class="products">
{else}
<tr role="row">
{/if}
<td class="oddListRowS1 alignLeft product" style="text-align:left;">
{$ROW.name}
</td>
<td class="oddListRowS1" >{$ROW.code}</td>
<td class="oddListRowS1" >{$ROW.ilosc|number_format:0:",":"."}</td>
<td class="oddListRowS1" >{$ROW.netto|number_format:2:",":"."}</td>
<td class="oddListRowS1" >{$ROW.srednia|number_format:2:",":"."}</td>
<td class="oddListRowS1" >{$ROW.koszt|number_format:2:",":"."}</td>
<td class="oddListRowS1" >{$ROW.marza|number_format:2:",":"."}%</td>
</tr>
{/if}
{/foreach}
</tbody>
<tbody id="stopRows"></tbody>
{/if}
{/foreach}
<tbody id="stopTables"></tbody>
{/if}
{/foreach}
<tbody id="stopCategory"></tbody>
{/if}
{/foreach}
<tbody id="functions-core" class="tablesorter-infoOnly">
<tr class="sumAll">
<td class="alignLeft"><b>{$MOD.LBL_SUM}:</b></td>
<td></td>
<td class="sumRow" ><b>{$SUM.IloscSumSum|number_format:0:",":"." }</b></td>
<td class="sumRow" ><b>{$SUM.SoldSumSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$SUM.SredniaSumSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$SUM.KosztSumSum|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$SUM.MarzaSumSum|number_format:2:",":"." }%</b></td>
</tr>
</tbody>
</table>
<br/>

View File

@@ -0,0 +1,332 @@
<style type="text/css">
{literal}
body {
font-size: 7px;
}
/* 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: #000;
background-color: #E6F2EE;
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 {
/* black (unsorted) double arrow */
/* white (unsorted) double arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAJAIAAAP///////yH5BAEAAAEALAAAAAAVAAkAAAIXjI+AywnaYnhUMoqt3gZXPmVg94yJVQAAOw==); */
/* image */
/* background-image: url(images/black-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;
/* black asc arrow */
/* white asc arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjI8Bya2wnINUMopZAQA7); */
/* image */
/* background-image: url(images/black-asc.gif); */
}
.tablesorter-blue .headerSortDown,
.tablesorter-blue .tablesorter-headerSortDown,
.tablesorter-blue .tablesorter-headerDesc {
background-color: #E7E7E9;
/* black desc arrow */
/* white desc arrow */
/* background-image: url(data:image/gif;base64,R0lGODlhFQAEAIAAAP///////yH5BAEAAAEALAAAAAAVAAQAAAINjB+gC+jP2ptn0WskLQA7); */
/* image */
/* background-image: url(images/black-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; */
}
/* 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 {
}
#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 style="width:100%;vertical-align:top;">
<tr>
<td style="width:50%;text-align;left"><h1>Raport sprzedaży z podziałem na grupy produktów</h1></td>
<td style="width:25%;text-align;right;vertical-align:top;">
Data raportu od: {$date_from}<br>
</td>
<td style="width:25%;text-align;right;vertical-align:top;">
Data raportu do: {$date_to}<br>
{if $product_category_name_basic!=""}
Kategoria produktu: {$product_category_name_basic}<br>
{/if}
{if $product_group_name_basic!=""}
Grupa produktowa: {$product_group_name_basic}<br>
{/if}
</td>
</tr>
</table>
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th>Nr dok</th>
<th>Data dok</th>
<th>Typ dok</th>
<th>Nabywca</th>
<th>Wart netto</th>
<th>Wart VAT</th>
<th>Wart brutto</th>
<th>Wart TH</th>
<th>Wart WG</th>
<th>Wart S</th>
<th>Wart t</th>
</tr>
</thead>
{foreach from=$DATA item=item key=key name=loop}
{* Table headers *}
<tbody>
<tr class="category">
<td class="oddListRowS1 alignLeft"><b> {$item.document_no}</b></td>
<td class="oddListRowS1 alignLeft"><b> {$item.register_date|date_format:"%d.%m.%Y"}</b></td>
<td class="oddListRowS1 alignLeft"><b> {$item.type}</b></td>
<td class="oddListRowS1 alignLeft"><b> {$item.parent_name}</b></td>
<td class="sumRow" ><b>{$item.total_netto|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$item.total_vat|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$item.total_brutto|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$item.TH|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$item.WG|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$item.S|number_format:2:",":"." }</b></td>
<td class="sumRow" ><b>{$item.T|number_format:2:",":"." }</b></td>
</tr>
</tbody>
{/foreach}
<tfoot>
<tr class="category">
<th colspan=4 style="text-align:right;">Razem:</th>
<th class="sumRow " style="text-align:right;">{$totals.total_netto|number_format:2:",":"." }</th>
<th class="sumRow " style="text-align:right;">{$totals.total_vat|number_format:2:",":"." }</th>
<th class="sumRow " style="text-align:right;">{$totals.total_brutto|number_format:2:",":"." }</th>
<th class="sumRow " style="text-align:right;">{$totals.TH|number_format:2:",":"." }</th>
<th class="sumRow " style="text-align:right;">{$totals.WG|number_format:2:",":"." }</th>
<th class="sumRow " style="text-align:right;">{$totals.S|number_format:2:",":"." }</th>
<th class="sumRow " style="text-align:right;">{$totals.T|number_format:2:",":"." }</th>
</tr>
</tfoot>
</table>
<br/>

View File

@@ -0,0 +1,293 @@
<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 {
/* black (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/black-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;
/* black 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/black-asc.gif); */
}
.tablesorter-blue .headerSortDown,
.tablesorter-blue .tablesorter-headerSortDown,
.tablesorter-blue .tablesorter-headerDesc {
background-color: #E7E7E9;
/* black 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/black-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">
<thead>
<tr>
<th width="1%" style="border:1pt solid black">L.p.</th>
<th width="15%" style="border:1pt solid black">{$MOD.LBL_INDEX}/{$MOD.LBL_NAME}</th>
<th width="8%" style="border:1pt solid black">Stan {$date_from}</th>
<th width="8%" style="border:1pt solid black" >Przychód</th>
<th width="8%" style="border:1pt solid black">Rozchód</th>
<th width="8%" style="border:1pt solid black">Stan {$date_to}</th>
</tr>
</thead>
<tbody aria-live="polite" aria-relevant="all">
{assign var="number" value=1}
{foreach from=$DATA key="key" item="item" name=loop}
<tr>
<td style="border-bottom:1pt solid black;"><b>{$number}{assign var="number" value=$number+1}</b></td>
<td style="text-align:left;border-bottom:1pt solid black;" rowspan="{$currow}" ><b>{$item.product_code}</b><br><b>{$item.product_name}</b></td>
<td style="border-bottom:1pt solid black;text-align:right">{$item.total_quantity_old|number_format:$item.unit_precision:",":"."} {$item.unit_id}<br>{$item.total_price_old|number_format:2:",":"." }</td>
<td style="border-bottom:1pt solid black;text-align:right">{$item.przychod_q|number_format:$item.unit_precision:",":"."} {$item.unit_id}<br>{$item.przychod_w|number_format:2:",":"." }</td>
<td style="border-bottom:1pt solid black;text-align:right">{$item.rozchod_q|number_format:$item.unit_precision:",":"."} {$item.unit_id}<br>{$item.rozchod_w|number_format:2:",":"." }</td>
<td style="border-bottom:1pt solid black;text-align:right">{$item.total_quantity_now|number_format:$item.unit_precision:",":"."} {$item.unit_id}<br>{$item.total_price_now|number_format:2:",":"." }</td>
</tr>
{/foreach}
</tbody>
<tr>
<td></td>
<td style="text-align:right;"><b>Razem ilość:</b></td>
<td class="oddListRowS1 sumRow" style="text-align:right"><b>{$TOTAL_QUANTITY_OLD|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" style="text-align:right"><b>{$przychod_q|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" style="text-align:right"><b>{$rozchod_q|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" style="text-align:right"><b>{$TOTAL_QUANTITY_NOW|number_format:2:",":"." }</b></td>
</tr>
<tr>
<td></td>
<td style="text-align:right;"><b>Razem wartość:</b></td>
<td class="oddListRowS1 sumRow" style="text-align:right"><b>{$TOTAL_VALUE_OLD|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" style="text-align:right"><b>{$przychod_w|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" style="text-align:right"><b>{$rozchod_w|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" style="text-align:right"><b>{$TOTAL_VALUE_NOW|number_format:2:",":"." }</b></td>
</tr>
</table>

View File

@@ -0,0 +1,95 @@
{*
/**
* SugarCRM is a customer relationship management program developed by
* SugarCRM, Inc. Copyright (C) 2004 - 2007 SugarCRM Inc.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License version 3 as published by the
* Free Software Foundation with the addition of the following permission added
* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
* IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, see http://www.gnu.org/licenses or write to the Free
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*
* You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
* SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU General Public License version 3.
*
* In accordance with Section 7(b) of the GNU General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "Powered by
* SugarCRM" logo. If the display of the logo is not reasonably feasible for
* technical reasons, the Appropriate Legal Notices must display the words
* "Powered by SugarCRM".
*/
*}
<form name="ecmreportsQuickCreate" id="ecmreportsQuickCreate" method="POST" action="index.php">
<input type="hidden" name="module" value="EcmReports">
<input type="hidden" name="email_id" value="{$REQUEST.email_id}">
<input type="hidden" name="account_id" value="{$REQUEST.account_id}">
<input type="hidden" name="case_id" value="{$REQUEST.acase_id}">
<input type="hidden" name="contact_id" value="{$REQUEST.contact_id}">
<input type="hidden" name="return_action" value="{$REQUEST.return_action}">
<input type="hidden" name="return_module" value="{$REQUEST.return_module}">
<input type="hidden" name="return_id" value="{$REQUEST.return_id}">
<input type="hidden" name="action" value='Save'>
<input type="hidden" name="duplicate_parent_id" value="{$REQUEST.duplicate_parent_id}">
<input type="hidden" name="to_pdf" value='1'>
<input id='assigned_user_id' name='assigned_user_id' type="hidden" value="{$ASSIGNED_USER_ID}" />
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="left" style="padding-bottom: 2px;">
<input title="{$APP.LBL_SAVE_BUTTON_TITLE}" accessKey="{$APP.LBL_SAVE_BUTTON_KEY}" class="button" type="submit" name="button" {$saveOnclick|default:"onclick=\"return check_form('EcmReportsQuickCreate');\""} value=" {$APP.LBL_SAVE_BUTTON_LABEL} " >
<input title="{$APP.LBL_CANCEL_BUTTON_TITLE}" accessKey="{$APP.LBL_CANCEL_BUTTON_KEY}" class="button" type="submit" name="button" {$cancelOnclick|default:"onclick=\"this.form.action.value='$RETURN_ACTION'; this.form.module.value='$RETURN_MODULE'; this.form.record.value='$RETURN_ID'\""} value=" {$APP.LBL_CANCEL_BUTTON_LABEL} ">
<input title="{$APP.LBL_FULL_FORM_BUTTON_TITLE}" accessKey="{$APP.LBL_FULL_FORM_BUTTON_KEY}" class="button" type="submit" name="button" onclick="this.form.to_pdf.value='0';this.form.action.value='EditView'; this.form.module.value='EcmReports';" value=" {$APP.LBL_FULL_FORM_BUTTON_LABEL} "></td>
<td align="right" nowrap><span class="required">{$APP.LBL_REQUIRED_SYMBOL}</span> {$APP.NTC_REQUIRED}</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="tabForm">
<tr>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<th align="left" class="dataLabel" colspan="4"><h4 class="dataLabel"><slot>{$MOD.LBL_ECMREPORT_INFORMATION}</slot></h4></th>
</tr>
<tr>
<td valign="top" class="dataLabel" width="15%"><slot>{$MOD.LBL_SUBJECT} <span class="required">{$APP.LBL_REQUIRED_SYMBOL}</span></slot></td>
<td width="35%"><slot><textarea name='name' cols="40" tabindex='1' rows="1">{$NAME}</textarea></slot></td>
<td class="dataLabel" width="15%"><slot>{$MOD.LBL_TYPE}</slot></td>
<td width="35%"><slot><select tabindex='2' name='type'>{$TYPE_OPTIONS}</select></slot></td>
</tr>
<tr>
<td valign="top" class="dataLabel" rowspan="2" width="15%"><slot>{$MOD.LBL_DESCRIPTION}</slot></td>
<td rowspan="2" width="35%"><slot><textarea name='description' tabindex='1' cols="40" rows="4">{$DESCRIPTION}</textarea></slot></td>
<td class="dataLabel" width="15%"><slot>{$MOD.LBL_PRIORITY}</slot></td>
<td class="dataField" nowrap width="35%"><slot><select tabindex='2' name='priority'>{$PRIORITY_OPTIONS}</select></slot></td>
</tr>
<tr>
<td class="dataLabel" width="15%"><slot>{$MOD.LBL_STATUS}</slot></td>
<td width="35%"><slot><select tabindex='2' name='status'>{$STATUS_OPTIONS}</select></slot></td>
</tr>
</table>
</form>
<script>
{$additionalScripts}
</script>

View File

@@ -0,0 +1,442 @@
<!-- Tablesorter -->
<script type="text/javascript" src="https://mottie.github.io/tablesorter/docs/js/jquery-latest.min.js"></script>
<link class="theme" rel="stylesheet" href="https://mottie.github.io/tablesorter/docs/css/jquery-ui.min.css">
<script type="text/javascript" src="https://mottie.github.io/tablesorter/docs/js/jquery-ui.min.js"></script>
<script src="https://mottie.github.io/tablesorter/js/jquery.tablesorter.js"></script>
<script src="https://mottie.github.io/tablesorter/js/jquery.tablesorter.widgets.js"></script>
<script src="https://mottie.github.io/tablesorter/js/widgets/widget-scroller.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;
}
/*
table#myTable-sticky th:first-child {
display:none;
}
*/
.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;
}
.ui-widget-content{
opacity: 0.9 !important;
}
#back2Top {
width: 40px;
line-height: 40px;
overflow: hidden;
z-index: 999;
display: block;
cursor: pointer;
position: fixed;
bottom: 50px;
right: 0;
background-color: #DDD;
color: #555;
text-align: center;
font-size: 30px;
text-decoration: none;
}
#back2Top:hover {
background-color: #DDF;
color: #000;
}
{/literal}
</style>
<script>
// call the tablesorter plugin
{literal}
$(document).ready(function(){
var startFixedColumns=1;
$("table").tablesorter({
showProcessing: true,
headerTemplate : '{content} {icon}',
widgets: [ 'zebra', 'scroller','stickyHeaders' ],
widgetOptions : {
scroller_height : '100%',
// set number of columns to fix
scroller_fixedColumns : startFixedColumns,
// add a fixed column overlay for styling
scroller_addFixedOverlay : false,
// add hover highlighting to the fixed column (disable if it causes slowing)
scroller_rowHighlight : 'hover',
// bar width is now calculated; set a value to override
scroller_barWidth : null,
stickyHeaders : '',
stickyHeaders_appendTo: $(".outer"),
// number or jquery selector targeting the position:fixed element
stickyHeaders_offset : 0,
// added to table ID, if it exists
stickyHeaders_cloneId : '-sticky',
// trigger "resize" event on headers
stickyHeaders_addResizeEvent : true,
// if false and a caption exist, it won't be included in the sticky header
stickyHeaders_includeCaption : true,
// The zIndex of the stickyHeaders, allows the user to adjust this to their needs
stickyHeaders_zIndex : 2,
// jQuery selector or object to attach sticky header to
stickyHeaders_attachTo : null
},
});
$($('.tablesorter-headerRow')[0]).children().click();
// update column value display
$( '.fixed-columns' ).text( startFixedColumns )
});
{/literal}
</script>
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>Raport zamówień sprzedaży</h2>
</td>
</tr>
</table>
<br />
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">Podstawowe wyszukiwanie</a>
</li>
</ul>
<form action="index.php" method="get" name="searchReportSales" id='searchReportSales'>
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="RaportZamowien" />
<input type="hidden" name="to_pdf" id="to_pdf" value="" />
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tr>
{* Search by date_from *}
<td class="dataLabel" width="5%" nowrap="nowrap"> Data od </td>
<td class="dataField" width="10%" nowrap="nowrap">
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" value="{$date_from}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_from",
daFormat : "{$dateFormat}",
button : "date_from_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
</td>
{* Search by date_to *}
<td class="dataLabel" width="5%" nowrap="nowrap">Data do</td>
<td class="dataField" width="10%" nowrap="nowrap">
<input autocomplete="off" name="date_to" id="date_to" value="{$date_to}" tabindex="" size="11" maxlength="10" type="text">
<img src="themes/default/images/jscalendar.gif" id="date_to_trigger" align="absmiddle" border="0">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_to",
daFormat : "{$dateFormat}",
button : "date_to_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
</tr>
<tr>
{* Search by date_send_from *}
<td class="dataLabel" width="5%" nowrap="nowrap">Wybierz datę:</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="date_type" name="date_type">
<option value="delivery_date" { if $date_type eq 'delivery_date' } selected="selected" {/if} >dostawy</option>
<option value="send_date" {if $date_type eq 'send_date'} selected="selected" {/if}>wysyłki</option>
</select>
</td>
</td>
</tr>
<tr>
<td class="dataLabel" width="5%" nowrap="nowrap">Typ zamówienia</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="pdf_type" name="order_type">
<option value="" { if $order_type eq '' } selected="selected" {/if} >Wszystkie</option>
<option value="K" {if $order_type eq 'K'} selected="selected" {/if}>Okresowe</option>
<option value="E" {if $order_type eq 'E'} selected="selected" {/if}>Normalne</option>
</select>
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Status</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="status" multiple name="status[]">
{foreach from=$STATUS_ARRAY item=item name=loop key="key}
<option value="{$key}" {if $key|in_array:$status_selected}selected="selected"{/if}>{$item}</option>
{/foreach}
</select>
</td>
</tr><tr>
<td class="dataLabel" width="5%" nowrap="nowrap">Kategoria produktu</td>
<td class="dataField" width="10%" nowrap="nowrap">
<input name="product_category_name_basic" class="sqsEnabled" tabindex="" id="product_category_name_basic" size="" value="{$product_category_name_basic}" title="" autocomplete="off" type="text">
<input name="product_category_id_basic" id="product_category_id_basic" value="{$product_category_id_basic}" type="hidden">
<span class="id-ff multiple">
<button type="button" name="btn_product_category_name_basic" tabindex="" title="Wybierz [Alt+T]"
accesskey="T" class="button firstChild" value="Wybierz"
onclick="{literal}open_popup('EcmProductCategories', 600, 400, '', true, false, {'call_back_function':'set_return','form_name':'searchReportSales','field_to_name_array':{'id':'product_category_id_basic','name':'product_category_name_basic'}}, 'single', true);{/literal}"><img src='themes/default/images/id-ff-select.png?s=bed8cd35065048ceebdc639ebe305e2c&amp;c=1'>
</button><button type="button" name="btn_clr_product_category_name_basic" tabindex="" title="Wyczyść[Alt+C]" accesskey="C" class="button lastChild" onclick="this.form.product_category_name_basic.value = ''; this.form.product_category_id_basic.value = '';" value="Wyczyść"><img src="themes/default/images/id-ff-clear.png?s=bed8cd35065048ceebdc639ebe305e2c&amp;c=1"></button>
</span>
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Bez dokumentu WZ</td>
<td class="dataField" width="10%" nowrap="nowrap"><input type="checkbox" name="no_wz" id='no_wz' {if $checked==1}checked="checked"{/if}></td>
</tr>
<tr>
<td class="dataLabel" width="5%" nowrap="nowrap">Grupa produktowa</td>
<td class="dataField" width="10%" nowrap="nowrap">
<input name="product_group_name_basic" class="sqsEnabled" tabindex="" id="product_group_name_basic" size="" value="{$product_group_name_basic}" title="" autocomplete="off" type="text">
<input name="product_group_id_basic" id="product_group_id_basic" value="{$product_group_id_basic}" type="hidden">
<span class="id-ff multiple">
<button type="button" name="btn_product_group_name_basic" tabindex="" title="Wybierz [Alt+T]"
accesskey="T" class="button firstChild" value="Wybierz"
onclick="{literal}open_popup('EcmProductGroups', 600, 400, '', true, false, {'call_back_function':'set_return','form_name':'searchReportSales','field_to_name_array':{'id':'product_group_id_basic','name':'product_group_name_basic'}}, 'single', true);{/literal}"><img src='themes/default/images/id-ff-select.png?s=bed8cd35065048ceebdc639ebe305e2c&amp;c=1'>
</button><button type="button" name="btn_clr_product_group_name_basic" tabindex="" title="Wyczyść[Alt+C]" accesskey="C" class="button lastChild" onclick="this.form.product_group_name_basic.value = ''; this.form.product_group_id_basic.value = '';" value="Wyczyść"><img src="themes/default/images/id-ff-clear.png?s=bed8cd35065048ceebdc639ebe305e2c&amp;c=1"></button>
</span>
</td>
</tr>
</tbody>
</table>
<input type="hidden" value="" name="excel" id="excel">
<input class="button" name="pdf" value="Wykonaj" type="button" onclick="$('#searchReportSales').attr('target',null);$('#excel').val(null);$('#to_pdf').val(null);$('#submit').click();">
<input class="button" name="submit" id="submit" value="{$MOD.LBL_EXECUTE}" type="submit" style="display:none;">
<input class="button" name="clear" value="{$MOD.LBL_CLEAR}" type="button" onclick="location.href='index.php?module=EcmReports&action=RaportZamowien';">
<input class="button" name="pdf" value="Generuj PDF" type="button" onclick="$('#searchReportSales').attr('target','_blank');$('#to_pdf').val(1);$('#excel').val(null);$('#submit').click();">
<input class="button" name="pdf" value="Generuj CSV" type="button" onclick="$('#searchReportSales').attr('target','_blank');$('#excel').val(1);$('#to_pdf').val(null);$('#submit').click();">
<br>
<br>
</form>
{if $DATA!=NULL}
<div class="outer">
<div class="inner">
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="10%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Produkt</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Stan</th>
{foreach from=$DATE_RANGE item=item name=loop}
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">{$item}</th>
{/foreach}
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Razem</th>
</tr>
<tr>
<th></th>
<th></th>
{foreach from=$DATE_RANGE item=item name=loop}
<th>
<a target="_blank" onclick="setUrl(this,'{$item}.{$smarty.now|date_format:"%Y"}','{$item}.{$smarty.now|date_format:"%Y"}')"><img src="modules/EcmQuotes/images/search.gif" border="0"></a>
</th>
{/foreach}
<th>
</th>
</tr>
</thead>
<tbody>
{foreach from=$DATA item=item name=loop key=id}
<tr>
<td class="oddListRowS1" style="text-align:left;"><a target="_blank" href="index.php?module=EcmProducts&action=DetailView&record={$item.id}"><span title="{$item.name}">{$item.code}</span></a></td>
<td class="oddListRowS1" style="text-align:right;color:blue;" data-value="{$item.state}">{$item.state|number_format:2:".":""}</td>
{foreach from=$item.array item=value key=key name=loop}
<td class="oddListRowS1" data-value="{$value}" ><span data-content="" id="{$item.id}{$key}" data-status="hidden" onclick="getProductOrders('{$id}','{$key}','{$item.id}{$key}');"style="color:{if $value>0}green;{else}red;{/if}">{$value|number_format:2:".":""}</span></td>
{/foreach}
<td class="oddListRowS1" style="text-align:right;" data-value="{$item.total}">{$item.total|number_format:2:".":""}</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
</div>
<div id="back2Top">
<span onclick="moveLeft();"><</span>
<span onclick="moveRight();">></span>
<script>
{literal}
$(document).ready(function(){
$( '.inner' ).css('width',$( window ).width()-100);
$( window ).resize(function() {
$( '.inner' ).css('width',$( window ).width()-100);
});
var el = $($('.tablesorter-headerRow')[6]).children()[0];
$(el).css('display','none');
var el = $($('.tablesorter-headerRow')[7]).children()[0];
$(el).css('display','none');
});
function moveRight(){
var el = $($('.tablesorter-scroller-table')[1]);
var maxWidth = el.width();
console.log(maxWidth);
var procent = maxWidth*0.1;
console.log(procent);
var current=el.scrollLeft();
el.scrollLeft(current+procent);
}
function moveLeft(){
var el = $($('.tablesorter-scroller-table')[1]);
var maxWidth = el.width();
console.log(maxWidth);
var procent = maxWidth*0.1;
console.log(procent);
var current=el.scrollLeft();
el.scrollLeft(current-procent);
}
function setUrl(el,date1,date2){
if($('#date_type').val()=='delivery_date'){
var url='index.php?module=EcmSales&action=ListNewSales&date_from='+date1+'&date_to='+date2+'&submit=Szukaj&wz='+($('#no_wz').prop('checked')?'1':'0');
$(el).attr("href",url);
} else {
var url='index.php?module=EcmSales&action=ListNewSales&date_send_from='+date1+'&date_send_to='+date2+'&submit=Szukaj&wz='+($('#no_wz').prop('checked')?'1':'0');
$(el).attr("href",url);
}
}
{/literal}
</script>
<br/>
{/if}

View File

@@ -0,0 +1,405 @@
<!-- Tablesorter -->
<script type="text/javascript" src="https://mottie.github.io/tablesorter/docs/js/jquery-latest.min.js"></script>
<link class="theme" rel="stylesheet" href="https://mottie.github.io/tablesorter/docs/css/jquery-ui.min.css">
<script type="text/javascript" src="https://mottie.github.io/tablesorter/docs/js/jquery-ui.min.js"></script>
<script src="https://mottie.github.io/tablesorter/js/jquery.tablesorter.js"></script>
<script src="https://mottie.github.io/tablesorter/js/jquery.tablesorter.widgets.js"></script>
<script src="https://mottie.github.io/tablesorter/js/widgets/widget-scroller.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;
}
/*
table#myTable-sticky th:first-child {
display:none;
}
*/
.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;
}
.ui-widget-content{
opacity: 0.9 !important;
}
#back2Top {
width: 40px;
line-height: 40px;
overflow: hidden;
z-index: 999;
display: block;
cursor: pointer;
position: fixed;
bottom: 50px;
right: 0;
background-color: #DDD;
color: #555;
text-align: center;
font-size: 30px;
text-decoration: none;
}
#back2Top:hover {
background-color: #DDF;
color: #000;
}
{/literal}
</style>
<script>
// call the tablesorter plugin
{literal}
$(document).ready(function(){
var startFixedColumns=1;
$("table").tablesorter({
showProcessing: true,
headerTemplate : '{content} {icon}',
widgets: [ 'zebra', 'scroller','stickyHeaders' ],
widgetOptions : {
scroller_height : '100%',
// set number of columns to fix
scroller_fixedColumns : startFixedColumns,
// add a fixed column overlay for styling
scroller_addFixedOverlay : false,
// add hover highlighting to the fixed column (disable if it causes slowing)
scroller_rowHighlight : 'hover',
// bar width is now calculated; set a value to override
scroller_barWidth : null,
stickyHeaders : '',
stickyHeaders_appendTo: $(".outer"),
// number or jquery selector targeting the position:fixed element
stickyHeaders_offset : 0,
// added to table ID, if it exists
stickyHeaders_cloneId : '-sticky',
// trigger "resize" event on headers
stickyHeaders_addResizeEvent : true,
// if false and a caption exist, it won't be included in the sticky header
stickyHeaders_includeCaption : true,
// The zIndex of the stickyHeaders, allows the user to adjust this to their needs
stickyHeaders_zIndex : 2,
// jQuery selector or object to attach sticky header to
stickyHeaders_attachTo : null
},
});
$($('.tablesorter-headerRow')[0]).children().click();
// update column value display
$( '.fixed-columns' ).text( startFixedColumns )
});
{/literal}
</script>
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>Raport zamówień sprzedaży</h2>
</td>
</tr>
</table>
<br />
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">Podstawowe wyszukiwanie</a>
</li>
</ul>
<form action="index.php" method="get" name="searchReportSales" id='searchReportSales'>
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="RaportZamowien" />
<input type="hidden" name="to_pdf" id="to_pdf" value="" />
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tr>
{* Search by date_from *}
<td class="dataLabel" width="5%" nowrap="nowrap"> Data od </td>
<td class="dataField" width="10%" nowrap="nowrap">
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" value="{$date_from}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_from",
daFormat : "{$dateFormat}",
button : "date_from_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
</td>
{* Search by date_to *}
<td class="dataLabel" width="5%" nowrap="nowrap">Data do</td>
<td class="dataField" width="10%" nowrap="nowrap">
<input autocomplete="off" name="date_to" id="date_to" value="{$date_to}" tabindex="" size="11" maxlength="10" type="text">
<img src="themes/default/images/jscalendar.gif" id="date_to_trigger" align="absmiddle" border="0">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_to",
daFormat : "{$dateFormat}",
button : "date_to_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
</tr><tr>
<td class="dataLabel" width="5%" nowrap="nowrap">Typ zamówienia</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="pdf_type" name="order_type">
<option value="" { if $order_type eq '' } selected="selected" {/if} >Wszystkie</option>
<option value="K" {if $order_type eq 'K'} selected="selected" {/if}>Okresowe</option>
<option value="E" {if $order_type eq 'E'} selected="selected" {/if}>Normalne</option>
</select>
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Status</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="status" multiple name="status[]">
{foreach from=$STATUS_ARRAY item=item name=loop key="key}
<option value="{$key}" {if $key|in_array:$status_selected}selected="selected"{/if}>{$item}</option>
{/foreach}
</select>
</td>
</tr><tr>
<td class="dataLabel" width="5%" nowrap="nowrap">Kategoria produktu</td>
<td class="dataField" width="10%" nowrap="nowrap">
<input name="product_category_name_basic" class="sqsEnabled" tabindex="" id="product_category_name_basic" size="" value="{$product_category_name_basic}" title="" autocomplete="off" type="text">
<input name="product_category_id_basic" id="product_category_id_basic" value="{$product_category_id_basic}" type="hidden">
<span class="id-ff multiple">
<button type="button" name="btn_product_category_name_basic" tabindex="" title="Wybierz [Alt+T]"
accesskey="T" class="button firstChild" value="Wybierz"
onclick="{literal}open_popup('EcmProductCategories', 600, 400, '', true, false, {'call_back_function':'set_return','form_name':'searchReportSales','field_to_name_array':{'id':'product_category_id_basic','name':'product_category_name_basic'}}, 'single', true);{/literal}"><img src='themes/default/images/id-ff-select.png?s=bed8cd35065048ceebdc639ebe305e2c&amp;c=1'>
</button><button type="button" name="btn_clr_product_category_name_basic" tabindex="" title="Wyczyść[Alt+C]" accesskey="C" class="button lastChild" onclick="this.form.product_category_name_basic.value = ''; this.form.product_category_id_basic.value = '';" value="Wyczyść"><img src="themes/default/images/id-ff-clear.png?s=bed8cd35065048ceebdc639ebe305e2c&amp;c=1"></button>
</span>
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Bez dokumentu WZ</td>
<td class="dataField" width="10%" nowrap="nowrap"><input type="checkbox" name="no_wz" id='no_wz' {if $checked==1}checked="checked"{/if}></td>
</tr>
<tr>
<td class="dataLabel" width="5%" nowrap="nowrap">Grupa produktowa</td>
<td class="dataField" width="10%" nowrap="nowrap">
<input name="product_group_name_basic" class="sqsEnabled" tabindex="" id="product_group_name_basic" size="" value="{$product_group_name_basic}" title="" autocomplete="off" type="text">
<input name="product_group_id_basic" id="product_group_id_basic" value="{$product_group_id_basic}" type="hidden">
<span class="id-ff multiple">
<button type="button" name="btn_product_group_name_basic" tabindex="" title="Wybierz [Alt+T]"
accesskey="T" class="button firstChild" value="Wybierz"
onclick="{literal}open_popup('EcmProductGroups', 600, 400, '', true, false, {'call_back_function':'set_return','form_name':'searchReportSales','field_to_name_array':{'id':'product_group_id_basic','name':'product_group_name_basic'}}, 'single', true);{/literal}"><img src='themes/default/images/id-ff-select.png?s=bed8cd35065048ceebdc639ebe305e2c&amp;c=1'>
</button><button type="button" name="btn_clr_product_group_name_basic" tabindex="" title="Wyczyść[Alt+C]" accesskey="C" class="button lastChild" onclick="this.form.product_group_name_basic.value = ''; this.form.product_group_id_basic.value = '';" value="Wyczyść"><img src="themes/default/images/id-ff-clear.png?s=bed8cd35065048ceebdc639ebe305e2c&amp;c=1"></button>
</span>
</td>
</tr>
</tbody>
</table>
<input class="button" name="submit" id="submit" value="{$MOD.LBL_EXECUTE}" type="submit">
<input class="button" name="clear" value="{$MOD.LBL_CLEAR}" type="button" onclick="location.href='index.php?module=EcmReports&action=RaportZamowien';">
<input class="button" name="pdf" value="Generuj PDF" type="button" onclick="$('#searchReportSales').attr('target','_blank');$('#to_pdf').val(1);$('#submit').click();">
<br>
<br>
</form>
{if $DATA!=NULL}
<div class="outer">
<div class="inner">
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="10%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Produkt</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Stan</th>
{foreach from=$DATE_RANGE item=item name=loop}
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">{$item}</th>
{/foreach}
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Razem</th>
</tr>
</thead>
<tbody>
{foreach from=$DATA item=item name=loop key=id}
<tr>
<td class="oddListRowS1" style="text-align:left;"><a target="_blank" href="index.php?module=EcmProducts&action=DetailView&record={$item.id}"><span title="{$item.name}">{$item.code}</span></a></td>
<td class="oddListRowS1" style="text-align:right;color:blue;" data-value="{$item.state}">{$item.state|number_format:2:".":""}</td>
{foreach from=$item.array item=value key=key name=loop}
<td class="oddListRowS1" data-value="{$value}" ><span data-content="" id="{$item.id}" data-status="hidden" onclick="getProductOrders('{$id}','{$key}','{$item.id}');"style="color:{if $value>0}green;{else}red;{/if}">{$value|number_format:2:".":""}</span></td>
{/foreach}
<td class="oddListRowS1" style="text-align:right;" data-value="{$item.total}">{$item.total|number_format:2:".":""}</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
</div>
<div id="back2Top">
<span onclick="moveLeft();"><</span>
<span onclick="moveRight();">></span>
<script>
{literal}
$(document).ready(function(){
$( '.inner' ).css('width',$( window ).width()-100);
$( window ).resize(function() {
$( '.inner' ).css('width',$( window ).width()-100);
});
var el = $($('.tablesorter-headerRow')[3]).children()[0];
$(el).css('display','none');
});
function moveRight(){
var el = $($('.tablesorter-scroller-table')[1]);
var maxWidth = el.width();
var procent = maxWidth*0.1;
var current=el.scrollLeft();
el.scrollLeft(current+procent);
}
function moveLeft(){
var el = $($('.tablesorter-scroller-table')[1]);
var maxWidth = el.width();
var procent = maxWidth*0.1;
var current=el.scrollLeft();
el.scrollLeft(current-procent);
}
function setUrl(el,date1,date2){
var url='index.php?module=EcmSales&action=ListNewSales&date_from='+date1+'&date_to='+date2+'&submit=Szukaj&wz='+($('#no_wz').prop('checked')?'1':'0');
$(el).attr("href",url);
}
{/literal}
</script>
<br/>
{/if}

View File

@@ -0,0 +1,198 @@
<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-ui/themes/base/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue2.css"/>
<!-- Tablesorter -->
<script type="text/javascript" src="include/jQuery/tablesorter-master/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.widgets.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/ReportBuyesByVat.js"></script>
{*<script type="text/javascript" src="https://www.google.com/jsapi"></script>*}
<style type="text/css">
{literal}
thead, tfoot {font-weight: bold;}
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;
}
.element{
position:fixed;
bottom: 0%;
width: 97%;
padding:10px;
font-family:Arial;
background-color: white;
border:1px solid black;
}
{/literal}
</style>
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>{$MOD.LBL_REPORT} Rejestr zakupu VAT</h2>
</td>
</tr>
</table>
<br>
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">{$MOD.LBL_SEARCH}</a>
</li>
</ul>
<form action="index.php" method="get" name="where" id="where">
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="ReportBuyesByVat" />
<input type="hidden" name="parentTab" value="Raporty"/>
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="white-space: nowrap">{$MOD.LBL_DATE_FROM}
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" title="Data od" value="{$date_from}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" alt="Enter Date" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
{* console.log('dupa');*}
Calendar.setup({ldelim}
inputField: "date_from",
daFormat: "{$dateFormat}",
button: "date_from_trigger",
singleClick: true,
dateStr: "",
step: 1
{rdelim}
);
</script>
</td>
<td style="white-space: nowrap">{$MOD.LBL_DATE_TO}
<input autocomplete="off" name="date_to" id="date_to" value="{$date_to}" title="Data do" tabindex="" size="11" maxlength="10" type="text">
<img src="themes/default/images/jscalendar.gif" alt="Enter Date" id="date_to_trigger" align="absmiddle" border="0">
<script language="JavaScript" type="text/javascript">
Calendar.setup({ldelim}
inputField: "date_to",
daFormat: "{$dateFormat}",
button: "date_to_trigger",
singleClick: true,
dateStr: "",
step: 1
{rdelim}
);
</script>
</td>
<td class="dataLabel" width="10%" nowrap="nowrap">Kategoria dokumentu</td>
<td class="dataField" width="30%" nowrap="nowrap">
<select name="category[]" multiple="multiple">
{foreach from=$category item=c key=k }
<option value="{$k}" {if @in_array($k, $category_selected) } selected="true" {/if}>{$c}</option>
{/foreach}
</select>
</td>
</tr>
</table>
</form>
<input class="button" value="{$MOD.LBL_EXECUTE}" type="submit" form="where">
<input class="button" value="{$MOD.LBL_CLEAR}" type="button" onclick="location.href = 'index.php?module=EcmReports&action=ReportBuyesByVat&amp;parentTab=Raporty';">
<!-- <input id="excelEksport" class="button" name="importToExcel" value="{$MOD.BTN_EXCEL_EXPORT}" type="button" onclick="excelExport();"> -->
<input id="pdfEksport" class="button" name="importToPDF" value="{$MOD.BTN_PDF_EXPORT}" type="button" >
<table class="tablesorter tablesorter-blue" role="grid" id='table'>
<thead>
<tr class="tablesorter-headerRow" role="row">
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort width="9%" style = "text-align: left">{$MOD.LBL_DOC_NUMBER}</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="1" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort width="6%" style = "text-align: left">{$MOD.LBL_CREATE_LAB}</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="2" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort width="6%" style = "text-align: left">{$MOD.LBL_SALE_DATE}</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="3" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort width="8%" style = "text-align: left">{$MOD.LBL_SALES_NIP}</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="4" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort width="13%" style = "text-align: left">{$MOD.LBL_LIST_SUBJECT}</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="5" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort width="8%" style = "text-align: left">{$MOD.LBL_ADDRESS}</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="6" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort width="5%" style = "text-align: left">{$MOD.LBL_BUYER_VALUE_BRUTTO}</th>
{foreach from= $vat_value key= t item= w}
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="7" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort width="4%" style = "text-align: left">{$MOD.LBL_BUYER_VALUE_NETTO} {$t}</th>
{if $w.sumavat != NULL}
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="8" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort width="4%" style = "text-align: left">{$MOD.LBL_VAT} {$t}</th>
{/if}
{/foreach}
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="9" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort width="4%" style = "text-align: left">{$MOD.LBL_SUM_VAT}</th>
</tr>
</thead>
<tbody>
{foreach from= $data key= k item= i}
<tr>
<td> <a target="new" href="index.php?module=Documents&offset=35&stamp=1429090400048670400&return_module=Documents&action=DetailView&record={$i.document_id}">{$i.document_number}</a></td>
<td>{$i.document_date|date_format:"%d.%m.%Y"}</td>
<td>{$i.register_date|date_format:"%d.%m.%Y"}</td>
<td>{$i.to_vatid}</td>
<td><a target="new" href="index.php?module=Accounts&return_module=Accounts&action=DetailView&record={$i.id}">{$i.name}</a></td>
<td>{$i.register_address_postalcode} {$i.register_address_city}</td>
<td style = "text-align: right">{$i.value|number_format:2:",":"."}</td>
{foreach from=$vat_value key=o item=j}
{assign var=prawdafalsz value=false}
{foreach from=$i.vaty item = e}
{if $o == $e.vat_value}
{assign var=prawdafalsz value=true}
{assign var=prawdafalszvat value=$e.vat}
{assign var=prawdafalsznetto value=$e.netto}
{/if}
{/foreach}
{if $prawdafalsz == true }
<td style = "text-align: right">{$prawdafalsznetto|number_format:2:",":"."}</td>
{if $j.sumavat != NULL}
<td style = "text-align: right">{$prawdafalszvat|number_format:2:",":"."}</td>
{/if}
{else}
<td style = "text-align: right">0,00</td>
{if $j.sumavat != NULL}
<td style = "text-align: right">0,00</td>
{/if}
{/if}
{/foreach}
<td style = "text-align: right">{$i.vatsumapozycja|number_format:2:",":"."}</td>
</tr>
{/foreach}
</tbody>
<tfoot style="background-color: #E8E8E8;">
<tr>
<td style="text-align: left;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$MOD.LBL_SUM}</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;" colspan="5"></td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$SumaBrutto|number_format:2:",":"."}</td>
{foreach from=$vat_value key =o item=j}
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$j.sumanetto|number_format:2:",":"."}</td>
{if $j.sumavat != NULL}
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$j.sumavat|number_format:2:",":"."}</td>
{/if}
{/foreach}
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$SumaVat|number_format:2:",":"."}</td>
</tr>
</tfoot>
</table>

View File

@@ -0,0 +1,171 @@
<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-ui/themes/base/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue2.css"/>
<!-- Tablesorter -->
<script type="text/javascript" src="include/jQuery/tablesorter-master/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.widgets.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/ReportEcmWorkCards.js"></script>
{*<script type="text/javascript" src="https://www.google.com/jsapi"></script>*}
<style type="text/css">
{literal}
thead, tfoot {font-weight: bold;}
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;
}
.element{
position:fixed;
bottom: 0%;
width: 97%;
padding:10px;
font-family:Arial;
background-color: white;
border:1px solid black;
}
{/literal}
</style>
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>{$MOD.LBL_REPORT_ECMWORKCARDS}</h2>
</td>
</tr>
</table>
<br>
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">{$MOD.LBL_SEARCH}</a>
</li>
</ul>
<form action="index.php" method="get" name="where" id="where">
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="ReportEcmWorkCards" />
<input type="hidden" name="parentTab" value="Produkcja"/>
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="white-space: nowrap">{$MOD.LBL_DATE_FROM}
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" title="Data od" value="{$date_from}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" alt="Enter Date" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
Calendar.setup({ldelim}
inputField: "date_from",
daFormat: "{$dateFormat}",
button: "date_from_trigger",
singleClick: true,
dateStr: "",
step: 1
{rdelim}
);
</script>
</td>
<td style="white-space: nowrap">{$MOD.LBL_DATE_TO}
<input autocomplete="off" name="date_to" id="date_to" value="{$date_to}" title="Data do" tabindex="" size="11" maxlength="10" type="text">
<img src="themes/default/images/jscalendar.gif" alt="Enter Date" id="date_to_trigger" align="absmiddle" border="0">
<script language="JavaScript" type="text/javascript">
Calendar.setup({ldelim}
inputField: "date_to",
daFormat: "{$dateFormat}",
button: "date_to_trigger",
singleClick: true,
dateStr: "",
step: 1
{rdelim}
);
</script>
</td>
</tr>
</table>
</form>
<input class="button" value="{$MOD.LBL_EXECUTE}" type="submit" form="where">
<input class="button" value="{$MOD.LBL_CLEAR}" type="button" onclick="location.href = 'index.php?module=EcmReports&action=ReportEcmWorkCards&amp;parentTab=Raporty';">
<input id="excelEksport" class="button" name="importToExcel" value="{$MOD.BTN_EXCEL_EXPORT}" type="button" onclick="excelExport();">
<input id="pdfEksport" class="button" name="importToPDF" value="{$MOD.BTN_PDF_EXPORT}" type="button" onclick="pdfExport();">
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="15%" style = "text-align: left">{$MOD.LBL_WORKER_NAME}</th>
<th width="7%" style = "text-align: left">{$MOD.LBL_ACTION_CODE}</th>
<th width="30%" style = "text-align: left">{$MOD.LBL_ACTION}</th>
<th width="7%" style = "text-align: left">{$MOD.LBL_PRODUCT_CODE}</th>
<th width="40%" style = "text-align: left">{$MOD.LBL_PRODUCTS}</th>
<th width="5%" style = "text-align: left">{$MOD.LBL_QUANTITY}</th>
<th width="10%" style = "text-align: right">{$MOD.LBL_SUM_NETTOJ}</th>
<th width="10%" style = "text-align: right">{$MOD.LBL_SUM_BRUTTOJ}</th>
<th width="10%" style = "text-align: right">{$MOD.LBL_SUM_NETTO}</th>
<th width="10%" style = "text-align: right">{$MOD.LBL_SUM_BRUTTO}</th>
</tr>
</thead>
<tbody>
{foreach from=$data item=rekord key=kl}
<tr id="parent_{$kl}" class="{$rekord.class}">
<td onclick="showHide({$kl});"><span id="span_{$kl}" class="plusStyle">[+]</span> {$rekord.work_name}</td>
<td onclick="showHide({$kl});"></td>
<td onclick="showHide({$kl});"></td>
<td onclick="showHide({$kl});"></td>
<td onclick="showHide({$kl});"></td>
<td onclick="showHide({$kl});" style = "text-align: right">{$rekord.sumquantity}</td>
<td onclick="showHide({$kl});" style = "text-align: right">{$rekord.averageNetto}</td>
<td onclick="showHide({$kl});" style = "text-align: right">{$rekord.averageBrutto}</td>
<td onclick="showHide({$kl});" style = "text-align: right">{$rekord.netto} </td>
<td onclick="showHide({$kl});" style = "text-align: right">{$rekord.brutto} </td>
</tr>
{foreach from=$rekord.actions item=czynnosc}
<tr name="child_{$kl}" class="{$czynnosc.class}" style="display: none;">
<td onclick="showHide({$kl});" style = "text-align: left"></td>
<td onclick="showHide({$kl});" style = "text-align: left">{$czynnosc.actioncode}</td>
<td onclick="showHide({$kl});" style = "text-align: left">{$czynnosc.actionname}</td>
<td onclick="showHide({$kl});" style = "text-align: left">{$czynnosc.productcode}</td>
<td onclick="showHide({$kl});" style = "text-align: left">{$czynnosc.productname}</td>
<td onclick="showHide({$kl});" style = "text-align: right">{$czynnosc.quantity}</td>
<td onclick="showHide({$kl});" style = "text-align: right">{$czynnosc.nettoJ}</td>
<td onclick="showHide({$kl});" style = "text-align: right">{$czynnosc.bruttoJ}</td>
<td onclick="showHide({$kl});" style = "text-align: right">{$czynnosc.netto}</td>
<td onclick="showHide({$kl});" style = "text-align: right">{$czynnosc.brutto}</td>
</tr>
{/foreach}
{/foreach}
</tbody>
<tfoot style="background-color: #E8E8E8;">
<tr>
<td style="text-align: left;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$MOD.LBL_SUM}</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;"></td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;"></td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;"></td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;"></td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;"></td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;"></td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;"></td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$suma.netto}</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$suma.brutto}</td>
</tr>
</tfoot>
</table>

View File

@@ -0,0 +1,158 @@
<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-ui/themes/base/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue2.css"/>
<!-- Tablesorter -->
<script type="text/javascript" src="include/jQuery/tablesorter-master/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.widgets.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/ReportEcmWorkCardsEcmProduct.js"></script>
{*<script type="text/javascript" src="https://www.google.com/jsapi"></script>*}
<style type="text/css">
{literal}
thead, tfoot {font-weight: bold;}
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;
}
.element{
position:fixed;
bottom: 0%;
width: 97%;
padding:10px;
font-family:Arial;
background-color: white;
border:1px solid black;
}
{/literal}
</style>
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>{$MOD.LBL_REPORT_ECMWORKCARDS_PRODUCTS}</h2>
</td>
</tr>
</table>
<br>
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">{$MOD.LBL_SEARCH}</a>
</li>
</ul>
<form action="index.php" method="get" name="where" id="where">
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="ReportEcmWorkCardsEcmProduct" />
<input type="hidden" name="parentTab" value="Produkcja"/>
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="white-space: nowrap">{$MOD.LBL_DATE_FROM}
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" title="Data od" value="{$date_from}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" alt="Enter Date" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
Calendar.setup({ldelim}
inputField: "date_from",
daFormat: "{$dateFormat}",
button: "date_from_trigger",
singleClick: true,
dateStr: "",
step: 1
{rdelim}
);
</script>
</td>
<td style="white-space: nowrap">{$MOD.LBL_DATE_TO}
<input autocomplete="off" name="date_to" id="date_to" value="{$date_to}" title="Data do" tabindex="" size="11" maxlength="10" type="text">
<img src="themes/default/images/jscalendar.gif" alt="Enter Date" id="date_to_trigger" align="absmiddle" border="0">
<script language="JavaScript" type="text/javascript">
Calendar.setup({ldelim}
inputField: "date_to",
daFormat: "{$dateFormat}",
button: "date_to_trigger",
singleClick: true,
dateStr: "",
step: 1
{rdelim}
);
</script>
</td>
</tr>
</table>
</form>
<input class="button" value="{$MOD.LBL_EXECUTE}" type="submit" form="where">
<input class="button" value="{$MOD.LBL_CLEAR}" type="button" onclick="location.href = 'index.php?module=EcmReports&action=ReportEcmWorkCards&amp;parentTab=Raporty';">
<input id="excelEksport" class="button" name="importToExcel" value="{$MOD.BTN_EXCEL_EXPORT}" type="button" onclick="excelExport();">
<input id="pdfEksport" class="button" name="importToPDF" value="{$MOD.BTN_PDF_EXPORT}" type="button" onclick="pdfExport();">
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="40%" style = "text-align: left">{$MOD.LBL_PRODUCTS}</th>
<th width="15%" style = "text-align: left">{$MOD.LBL_WORKER_NAME}</th>
<th width="7%" style = "text-align: left">{$MOD.LBL_ACTION_CODE}</th>
<th width="30%" style = "text-align: left">{$MOD.LBL_ACTION}</th>
<th width="5%" style = "text-align: left">{$MOD.LBL_QUANTITY}</th>
<th width="5%" style = "text-align: left">{$MOD.LBL_PW_QUANTITY}</th>
<th width="10%" style = "text-align: right">{$MOD.LBL_SUM_NETTO}</th>
<th width="10%" style = "text-align: right">{$MOD.LBL_SUM_BRUTTO}</th>
</tr>
</thead>
<tbody>
{foreach from=$data item=rekord key=kl}
<tr id="parent_{$rekord.indeks}">
<td onclick="showHide({$rekord.indeks});"><span id="span_{$rekord.indeks}" class="plusStyle">[+]</span> {$rekord.code} {$rekord.name}</td>
<td colspan="4" onclick="showHide({$rekord.indeks});"></td>
<td onclick="showHide({$rekord.indeks});" style = "text-align: right">{$rekord.pw}</td>
<td onclick="showHide({$rekord.indeks});" style = "text-align: right">{$rekord.netto|number_format:2:",":"."}</td>
<td onclick="showHide({$rekord.indeks});" style = "text-align: right">{$rekord.brutto|number_format:2:",":"."}</td>
</tr>
{foreach from=$rekord.actions key=klucz item=pracownik}
{foreach from=$pracownik item=czynnosc}
<tr name="child_{$rekord.indeks}" style="display: none;">
<td onclick="showHide('{$rekord.indeks}');" style = "text-align: left"></td>
<td onclick="showHide({$rekord.indeks});" style = "text-align: left">{$klucz}</td>
<td onclick="showHide({$rekord.indeks});" style = "text-align: left">{$czynnosc.actioncode}</td>
<td onclick="showHide({$rekord.indeks});" style = "text-align: left">{$czynnosc.actionname}</td>
<td onclick="showHide({$rekord.indeks});" style = "text-align: right">{$czynnosc.quantity}</td>
<td onclick="showHide({$rekord.indeks});" style = "text-align: right">{$rekord.pw}</td>
<td onclick="showHide({$rekord.indeks});" style = "text-align: right">{$czynnosc.netto|number_format:2:",":"."}</td>
<td onclick="showHide({$rekord.indeks});" style = "text-align: right">{$czynnosc.brutto|number_format:2:",":"."}</td>
</tr>
{/foreach}
{/foreach}
{/foreach}
</tbody>
<tfoot style="background-color: #E8E8E8;">
<tr>
<td style="text-align: left;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$MOD.LBL_SUM}</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;" colspan="5"></td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$suma.netto|number_format:2:",":"."}</td>
<td style="text-align: right;background-color: #E8E8E8; border: 1px solid #E8E8E8;">{$suma.brutto|number_format:2:",":"."}</td>
</tr>
</tfoot>
</table>

View File

@@ -0,0 +1,362 @@
<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-table/jquery.appendGrid-1.3.1.css"/>
<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-ui/themes/base/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue2.css"/>
<!-- Tablesorter -->
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.staticrow.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.widgets.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/jquery.blockUI.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/ReportSales.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;
}
{/literal}
</style>
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>{$MOD.LBL_RAPORT_SALES} </h2>
</td>
</tr>
</table>
<br />
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">Podstawowe wyszukiwanie</a>
</li>
</ul>
<form action="index.php" method="get" name="searchReportSales">
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="ReportSales" />
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tr>
{* Search by date_from *}
<td class="dataLabel" width="5%" nowrap="nowrap"> Data od </td>
<td class="dataField" width="10%" nowrap="nowrap">
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" title="" value="{$date_from}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" alt="Enter Date" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_from",
daFormat : "{$dateFormat}",
button : "date_from_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
</td>
{* Search by date_to *}
<td class="dataLabel" width="5%" nowrap="nowrap">Data do</td>
<td class="dataField" width="10%" nowrap="nowrap">
<input autocomplete="off" name="date_to" id="date_to" value="{$date_to}" title="" tabindex="" size="11" maxlength="10" type="text">
<img src="themes/default/images/jscalendar.gif" alt="Enter Date" id="date_to_trigger" align="absmiddle" border="0">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_to",
daFormat : "{$dateFormat}",
button : "date_to_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">{$MOD.LBL_GORUP_BY}</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select name="groupByProducentsOrProducts">
<option value="product" { if $searchBy==""} selected="true" {/if} >produkt</option>
<option value="contractor" { if $searchBy=="contractor"} selected {/if} >kontrahent</option>
</select>
</td>
{* Open popup window to select contractor *}
<script language="JavaScript" type="text/javascript">
function getContractor(){ldelim}
open_popup("Accounts", 600, 400, "", true, false,
{ldelim}
"call_back_function":"set_return","form_name":"searchDailyReports","field_to_name_array":
{ldelim}"id":"account_id","name":"account_name"{rdelim}
{rdelim}, "single", true);
{rdelim};
</script>
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Typ dokumentu</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="type" name="type">
<option value="%" { if $searchByType=="%"} selected="true" {/if} >normalny i korekta</option>
<option value="normal" { if $searchByType=="normal"} selected {/if} >normalny</option>
<option value="correct" { if $searchByType=="correct"} selected {/if} >korekta</option>
</select>
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Handlowiec</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="user" name="selectUser">
<option value="" { if $selectUser==""} selected="true" {/if} >Wszyscy</option>
{foreach from=$USERS item=USER key=count name=loop}
<option value="{$USER.id}" { if $selectUser==$USER.id} selected="true" {/if} >{$USER.first} {$USER.last}</option>
{/foreach}
</select>
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Grupa księgowa</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="group_ks" name="group_ks">
<option value="%">Wszystkie</option>
{foreach from=$all_groups_ks item=GROUP key=COUNT name=loop}
<option value="{$COUNT}" { if $group_ks==$COUNT} selected="true" {/if} >{$GROUP}</option>
{/foreach}
</select>
</td>
<td class="dataLabel" width="15%" nowrap="nowrap"></td>
</tr><tr>
<td class="dataLabel" width="5%" nowrap="nowrap">Typ sprzedaży</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="pdf_type" name="selectPdfType">
<option value="" { if $selectedPdfType eq '' } selected="selected" {/if} >Wszystkie</option>
<option value="K" {if $selectedPdfType eq 'K'} selected="selected" {/if}>Kraj</option>
<option value="U" {if $selectedPdfType eq 'U'} selected="selected" {/if}>Unia</option>
<option value="E" {if $selectedPdfType eq 'E'} selected="selected" {/if}>Eksport</option>
</select>
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Twinpol</td>
<td class="dataField" width="10%" nowrap="nowrap">
<input type="checkbox" name="twinpol" value="1" {if $twinpol =='1'} checked="checked" {elseif $twinpol == null && $searchByType == null} checked="checked" {/if}>
</td>
</tr>
</tbody>
</table>
<input class="button" name="submit" value="{$MOD.LBL_EXECUTE}" type="submit">
<input class="button" name="clear" value="{$MOD.LBL_CLEAR}" type="button" onclick="location.href='index.php?module=EcmReports&action=ReportSales';">
<input id="excelEksport" class="button" name="importToExcel" value="{$MOD.BTN_EXCEL_EXPORT}" type="button">
<input id="pdfEksport" class="button" name="importToPDF" value="{$MOD.BTN_PDF_EXPORT}" type="button">
<br>
<br>
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="30%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_PRODUCTS}</th>
{if $searchBy=="product"}
<th width="10%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="1" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Indeks</th>
{/if}
<th width="10%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="2" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_SOLD_AMOUNT}</th>
<th width="10%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="3" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_VALUE_SALES}</th>
{*<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="4" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Wartość sprzedaży bez korekt</th>*}
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="5" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_AVERAGE_PRICE}</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="6" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_COST}</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="7" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_MARGIN}</th>
{if $searchBy=="none"}
<th width="10%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="8" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_STOCK_STATES}</th>
<th width="10%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="9" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_STOCK_VALUE}</th>
{/if}
</tr>
</thead>
{foreach from=$DATA item=CAT key=CATNAME name=loop}
{* Table headers *}
<tbody id="functions-core" class="tablesorter-infoOnly">
<tr class="static category">
{if $CATNAME != ""}
<td class="oddListRowS1 alignLeft "><a class="plusStyle showTables">[+]</a><b> {$CATNAME}</b></td>
{/if}
{if $searchBy=="product"}
<td class="oddListRowS1 alignLeft" ></td>
{/if}
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.IloscSum|number_format:0:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.SoldSum|number_format:2:",":"." }</b></td>
{* <td class="oddListRowS1 sumRow" ><b><span class='green-text'>{$DATA.$CATNAME.SoldSumNormal|number_format:2:",":"." }</span></b></td>*}
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.SredniaSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.KosztSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.MarzaSum|number_format:2:",":"." }%</b></td>
{if $searchBy=="none"}
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.StanSum|number_format:0:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.WartoscSum|number_format:2:",":"." }</b></td>
{/if}
</tr>
</tbody>
{foreach from=$CAT item=CAT2 key=CAT2NAME name=loop}
{if $CAT2NAME!="IloscSum" && $CAT2NAME!="SoldSum" && $CAT2NAME!="SoldSumNormal" && $CAT2NAME!="IloscNormal" && $CAT2NAME!="SredniaSum" && $CAT2NAME!="KosztSum" && $CAT2NAME!="MarzaSum" && $CAT2NAME!="StanSum" && $CAT2NAME!="WartoscSum"}
<tbody id="functions-core" class="tablesorter-infoOnly tablesShowHide">
<tr class="subcategory">
<td class="oddListRowS1 alignLeft"><a class="showRows" style="color: cadetblue; text-decoration: none; cursor: pointer;">[+]</a><b> {$CAT2NAME}</b></td>
{if $searchBy=="product"}
<td class="oddListRowS1 alignLeft" ></td>
{/if}
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.IloscSum2|number_format:0:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.SoldSum2|number_format:2:",":"." }</b></td>
{*<td class="oddListRowS1 sumRow" ><b><span class='green-text'>{$CAT.$CAT2NAME.SoldSumNormal2|number_format:2:",":"." }</span></b></td>*}
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.SredniaSum2|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.KosztSum2|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.MarzaSum2|number_format:2:",":"." }%</b></td>
</tr>
</tbody>
<tbody aria-live="polite" aria-relevant="all" class="rowShowHide">
{foreach from=$CAT2 item=ROW name=loop}
{if $ROW.name!="IloscSum" && $ROW.name!="SoldSum" && $ROW.name!="SredniaSum" && $ROW.name!="KosztSum" && $ROW.name!="MarzaSum" && $CAT2NAME!="StanSum" && $CAT2NAME!="WartoscSum" && $ROW.name!=""}
{if $smarty.foreach.loop.index % 2 == 1}
<tr role="row" class="contractor">
{else}
<tr class="contractor" role="row">
{/if}
{if $searchBy=="contractor"}
<td class="oddListRowS1 alignLeft" style="text-align:left;">
{if $CAT2NAME!="Reszta"}
<img category="{$CATNAME}" subcategory="{$CAT2NAME}" class="showProducts" style="color: graytext; text-decoration: none; cursor: pointer;" src="modules/EcmReports/images/search.gif" />
{/if}
<a href="index.php?module=Accounts&return_module=Accounts&action=DetailView&record={if $ROW.name != 'Media Saturn Holding'}{$ROW.parent_id}{else}1249{/if}" {if $ROW.name != 'Media Saturn Holding' }contractor="{$ROW.parent_id}"{else} contractor="1249" {/if} target="new">{$ROW.name}</a>
</td>
{else}
<td class="oddListRowS1 alignLeft" style="text-align:left;">
<img src="modules/EcmReports/images/search.gif" class="showContractors" style="color: graytext; text-decoration: none; cursor: pointer;" data-productid="{$ROW.id}" />
<a target="new" href="index.php?module=EcmProducts&action=index&return_module=EcmProducts&action=DetailView&record={$ROW.id}">
{$ROW.name}
</a>
</td>
{/if}
{if $searchBy=="product"}
<td class="oddListRowS1 alignLeft" >{$ROW.code}</td>
{/if}
<td class="oddListRowS1" >{$ROW.ilosc|number_format:0:",":"."}</td>
<td class="oddListRowS1" >{$ROW.netto|number_format:2:",":"."}</td>
{* <td class="oddListRowS1" ><span class='green-text'>{$ROW.nettoNormal|number_format:2:",":"." }</span></td>*}
<td class="oddListRowS1" >{$ROW.srednia|number_format:2:",":"."}</td>
<td class="oddListRowS1" >{$ROW.koszt|number_format:2:",":"."}</td>
<td class="oddListRowS1" >{$ROW.marza|number_format:2:",":"."}%</td>
</tr>
{/if}
{/foreach}
</tbody>
<tbody id="stopRows"></tbody>
{/if}
{/foreach}
<tbody id="stopTables"></tbody>
{/foreach}
<tbody id="functions-core" class="tablesorter-infoOnly">
<tr class="static category sumAll">
<td class="oddListRowS1 alignLeft"><b>{$MOD.LBL_SUM}:</b></td>
{if $searchBy=="product"}
<td class="oddListRowS1" ></td>
{/if}
<td class="oddListRowS1 sumRow" ><b>{$SUM.IloscSumSum|number_format:0:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.SoldSumSum|number_format:2:",":"." }</b></td>
{* <td class="oddListRowS1 sumRow" ><b><span class='green-text'>{$SUM.SoldSumSumNormal|number_format:2:",":"." }</span></b></td>*}
<td class="oddListRowS1 sumRow" ><b>{$SUM.SredniaSumSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.KosztSumSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.MarzaSumSum|number_format:2:",":"." }%</b></td>
</tr>
</tbody>
</table>
<br/>

View File

@@ -0,0 +1,308 @@
<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-table/jquery.appendGrid-1.3.1.css"/>
<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-ui/themes/base/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue2.css"/>
<!-- Tablesorter -->
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.staticrow.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.widgets.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/jquery.blockUI.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/ReportSalesByContractor.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;
}
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 .alignLeft {
text-align: left;
}
table.tablesorter .sumRow, .oddListRowS1 {
text-align: right;
}
table.tablesorter .subcategory .alignLeft {
padding-left: 20px;
}
table.tablesorter .category .alignLeft {
padding-left: 10px;
}
table.tablesorter .products .alignLeft {
padding-left: 40px;
}
.plusStyle {
color: #abc3d7;
text-decoration: none;
cursor: pointer;
}
.sumAll td{
background-color: #BDC7B5;
}
{/literal}
</style>
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>{$MOD.LBL_RAPORT_SALES_BY_CONTRACTOR} </h2>
</td>
</tr>
</table>
<br />
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">Podstawowe wyszukiwanie</a>
</li>
</ul>
<form action="index.php" method="get" name="searchReportSales">
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="ReportSalesByContractor" />
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tr>
{* Search by date_from *}
<td class="dataLabel" width="5%" nowrap="nowrap"> Data od </td>
<td class="dataField" width="10%" nowrap="nowrap">
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" title="" value="{$date_from}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" alt="Enter Date" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_from",
daFormat : "{$dateFormat}",
button : "date_from_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
</td>
{* Search by date_to *}
<td class="dataLabel" width="5%" nowrap="nowrap">Data do</td>
<td class="dataField" width="10%" nowrap="nowrap">
<input autocomplete="off" name="date_to" id="date_to" value="{$date_to}" title="" tabindex="" size="11" maxlength="10" type="text">
<img src="themes/default/images/jscalendar.gif" alt="Enter Date" id="date_to_trigger" align="absmiddle" border="0">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_to",
daFormat : "{$dateFormat}",
button : "date_to_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
<td class="dataLabel" width="5%" nowrap="nowrap">Typ dokumentu</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="type" name="type">
<option value="%" { if $searchByType==""} selected="true" {/if} >normalny i korekta</option>
<option value="normal" { if $searchByType=="normal"} selected {/if} >normalny</option>
<option value="correct" { if $searchByType=="correct"} selected {/if} >korekta</option>
</select>
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Handlowiec</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="user" name="selectUser">
<option value="" { if $selectedUser eq '' } selected="selected" {/if} >wszyscy</option>
{foreach from=$USERS item=USER key=count name=loop}
<option value="{$USER.id}" {if $selectedUser eq $USER.id} selected="selected" {/if}>{$USER.first} {$USER.last}</option>
{/foreach}
</select>
</td>
<td class="dataLabel" width="15%" nowrap="nowrap">
Grupuj "Media Saturn Holding" <input type="checkbox" value="enabled" name="group_media_saturn_holding" {if $group_media_saturn_holding == 'enabled'}checked{/if}>
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Typ sprzedaży</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="pdf_type" name="selectPdfType">
<option value="" { if $selectedPdfType eq '' } selected="selected" {/if} >Wszystkie</option>
<option value="K" {if $selectedPdfType eq 'K'} selected="selected" {/if}>Kraj</option>
<option value="U" {if $selectedPdfType eq 'U'} selected="selected" {/if}>Unia</option>
<option value="E" {if $selectedPdfType eq 'E'} selected="selected" {/if}>Eksport</option>
</select>
</td>
</tbody>
</table>
<input class="button" name="submit" value="{$MOD.LBL_EXECUTE}" type="submit">
<input class="button" name="clear" value="{$MOD.LBL_CLEAR}" type="button" onclick="location.href='index.php?module=EcmReports&action=ReportSalesByContractor';">
<input id="excelEksport" class="button" name="importToExcel" value="{$MOD.BTN_EXCEL_EXPORT}" type="button">
<input id="pdfEksport" class="button" name="importToPDF" value="{$MOD.BTN_PDF_EXPORT}" type="button">
<br />
<br />
<table id="myTable" class="ablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="30%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_CONTRACTOR}</th>
<th width="10%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="1" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Indeks</th>
<th width="10%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="1" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_SOLD_AMOUNT}</th>
<th width="10%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="2" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_VALUE_SALES}</th>
<th width="10%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="3" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_AVERAGE_PRICE}</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="4" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_COST}</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="5" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_MARGIN}</th>
</tr>
</thead>
{foreach from=$ContractorData item=DATA key=CONNAME name=loop}
{if $CONNAME!=""}
<tbody id="functions-core" class="tablesorter-infoOnly">
<tr class="static contractor">
<td class="oddListRowS1 alignLeft"><a class="plusStyle showTablesContractor">[+]</a><b> {$CONNAME}</b></td>
<td class="oddListRowS1 sumRow" ></td>
<td class="oddListRowS1 sumRow" ><b>{$ContractorData.$CONNAME.IloscSum|number_format:0:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$ContractorData.$CONNAME.SoldSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$ContractorData.$CONNAME.SredniaSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$ContractorData.$CONNAME.KosztSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$ContractorData.$CONNAME.MarzaSum|number_format:2:",":"." }%</b></td>
</tr>
</tbody>
{foreach from=$DATA item=CAT key=CATNAME name=loop}
{if $CATNAME!="IloscSum" && $CATNAME!="SoldSum" && $CATNAME!="SredniaSum" && $CATNAME!="KosztSum" && $CATNAME!="MarzaSum" && $CATNAME!="StanSum" && $CATNAME!="WartoscSum"}
<tbody id="functions-core" class="tablesorter-infoOnly categoryShowHide">
<tr class="static category">
<td class="oddListRowS1 alignLeft "><a class="plusStyle showTables">[+]</a><b> {$CATNAME}</b></td>
<td class="oddListRowS1 sumRow" ></td>
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.IloscSum|number_format:0:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.SoldSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.SredniaSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.KosztSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.MarzaSum|number_format:2:",":"." }%</b></td>
</tr>
</tbody>
{foreach from=$CAT item=CAT2 key=CAT2NAME name=loop}
{if $CAT2NAME!="IloscSum" && $CAT2NAME!="SoldSum" && $CAT2NAME!="SoldSumNormal" && $CAT2NAME!="IloscNormal" && $CAT2NAME!="SredniaSum" && $CAT2NAME!="KosztSum" && $CAT2NAME!="MarzaSum" && $CAT2NAME!="StanSum" && $CAT2NAME!="WartoscSum"}
<tbody id="functions-core" class="tablesorter-infoOnly tablesShowHide">
<tr class="subcategory">
<td class="oddListRowS1 alignLeft"><a class="showRows" style="color: cadetblue; text-decoration: none; cursor: pointer;">[+]</a><b> {$CAT2NAME}</b></td>
<td class="oddListRowS1 sumRow"></td>
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.IloscSum|number_format:0:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.SoldSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.SredniaSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.KosztSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.MarzaSum|number_format:2:",":"." }%</b></td>
</tr>
</tbody>
<tbody aria-live="polite" aria-relevant="all" class="rowShowHide">
{foreach from=$CAT2 item=ROW name=loop}
{if $ROW.name!="IloscSum" && $ROW.name!="SoldSum" && $ROW.name!="SredniaSum" && $ROW.name!="KosztSum" && $ROW.name!="MarzaSum" && $CAT2NAME!="StanSum" && $CAT2NAME!="WartoscSum" && $ROW.name!=""}
{if $smarty.foreach.loop.index % 2 == 1}
<tr role="row" class="products">
{else}
<tr class="products" role="row">
{/if}
<td class="oddListRowS1 alignLeft" style="text-align:left;">
<a target="new" href="index.php?module=EcmProducts&action=index&return_module=EcmProducts&action=DetailView&record={$ROW.id}">{$ROW.name}</a>
</td>
<td class="oddListRowS1" >{$ROW.code}</td>
<td class="oddListRowS1" >{$ROW.ilosc|number_format:0:",":"."}</td>
<td class="oddListRowS1" >{$ROW.netto|number_format:2:",":"."}</td>
<td class="oddListRowS1" >{$ROW.srednia|number_format:2:",":"."}</td>
<td class="oddListRowS1" >{$ROW.koszt|number_format:2:",":"."}</td>
<td class="oddListRowS1" >{$ROW.marza|number_format:2:",":"."}%</td>
</tr>
{/if}
{/foreach}
</tbody>
<tbody id="stopRows"></tbody>
{/if}
{/foreach}
<tbody id="stopTables"></tbody>
{/if}
{/foreach}
<tbody id="stopCategory"></tbody>
{/if}
{/foreach}
<tbody id="functions-core" class="tablesorter-infoOnly">
<tr class="static sumAll">
<td class="oddListRowS1 alignLeft"><b>{$MOD.LBL_SUM}:</b></td>
<td class="oddListRowS1" ></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.IloscSumSum|number_format:0:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.SoldSumSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.SredniaSumSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.KosztSumSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.MarzaSumSum|number_format:2:",":"." }%</b></td>
</tr>
</tbody>
</table>
<br/>

View File

@@ -0,0 +1,364 @@
<!-- Tablesorter -->
<script type="text/javascript" src="https://mottie.github.io/tablesorter/docs/js/jquery-latest.min.js"></script>
<link class="theme" rel="stylesheet" href="https://mottie.github.io/tablesorter/docs/css/jquery-ui.min.css">
<script type="text/javascript" src="https://mottie.github.io/tablesorter/docs/js/jquery-ui.min.js"></script>
<script src="https://mottie.github.io/tablesorter/js/jquery.tablesorter.js"></script>
<script src="https://mottie.github.io/tablesorter/js/jquery.tablesorter.widgets.js"></script>
<script src="https://mottie.github.io/tablesorter/js/widgets/widget-scroller.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;
}
/*
table#myTable-sticky th:first-child {
display:none;
}
*/
.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;
}
.ui-widget-content{
opacity: 0.9 !important;
}
#back2Top {
width: 40px;
line-height: 40px;
overflow: hidden;
z-index: 999;
display: block;
cursor: pointer;
position: fixed;
bottom: 50px;
right: 0;
background-color: #DDD;
color: #555;
text-align: center;
font-size: 30px;
text-decoration: none;
}
#back2Top:hover {
background-color: #DDF;
color: #000;
}
{/literal}
</style>
<script>
// call the tablesorter plugin
{literal}
$(document).ready(function(){
var startFixedColumns=1;
$("table").tablesorter({
showProcessing: true,
headerTemplate : '{content} {icon}',
widgets: [ 'zebra', 'scroller','stickyHeaders' ],
widgetOptions : {
scroller_height : '100%',
// set number of columns to fix
scroller_fixedColumns : startFixedColumns,
// add a fixed column overlay for styling
scroller_addFixedOverlay : false,
// add hover highlighting to the fixed column (disable if it causes slowing)
scroller_rowHighlight : 'hover',
// bar width is now calculated; set a value to override
scroller_barWidth : null,
stickyHeaders : '',
stickyHeaders_appendTo: $(".outer"),
// number or jquery selector targeting the position:fixed element
stickyHeaders_offset : 0,
// added to table ID, if it exists
stickyHeaders_cloneId : '-sticky',
// trigger "resize" event on headers
stickyHeaders_addResizeEvent : true,
// if false and a caption exist, it won't be included in the sticky header
stickyHeaders_includeCaption : true,
// The zIndex of the stickyHeaders, allows the user to adjust this to their needs
stickyHeaders_zIndex : 2,
// jQuery selector or object to attach sticky header to
stickyHeaders_attachTo : null
},
headers: {
4: {
sorter: 'number'
},
5: {
sorter: 'number'
},
6: {
sorter: 'number'
},
7: {
sorter: 'number'
},
8: {
sorter: 'number'
},
9: {
sorter: 'number'
},
10: {
sorter: 'number'
}
}
});
$($('.tablesorter-headerRow')[0]).children().click();
// update column value display
$( '.fixed-columns' ).text( startFixedColumns )
});
{/literal}
</script>
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>Raport sprzedaży z podziałem na grupy produktów</h2>
</td>
</tr>
</table>
<br />
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">Podstawowe wyszukiwanie</a>
</li>
</ul>
<form action="index.php" target="" method="get" name="searchReportSales" id='searchReportSales'>
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="ReportSalesByProductGroups" />
<input type="hidden" name="to_pdf" id="to_pdf" value="0" />
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tr>
{* Search by date_from *}
<td class="dataLabel" width="5%" nowrap="nowrap"> Data od </td>
<td class="dataField" width="10%" nowrap="nowrap">
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" value="{$date_from}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_from",
daFormat : "{$dateFormat}",
button : "date_from_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
</td>
{* Search by date_to *}
<td class="dataLabel" width="5%" nowrap="nowrap">Data do</td>
<td class="dataField" width="10%" nowrap="nowrap">
<input autocomplete="off" name="date_to" id="date_to" value="{$date_to}" tabindex="" size="11" maxlength="10" type="text">
<img src="themes/default/images/jscalendar.gif" id="date_to_trigger" align="absmiddle" border="0">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_to",
daFormat : "{$dateFormat}",
button : "date_to_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
</tr>
</tbody>
</table>
<input class="button" name="submit" id="wykonaj" value="Wykonaj" onclick="$('#to_pdf').val(0);$('#searchReportSales').attr('target',null);$('#submit').click();" type="button">
<input class="button" name="submit" id="submit" value="" type="submit" style="display:none;">
<input class="button" name="submit" id="pdf" value="PDF" onclick="$('#to_pdf').val(1);$('#searchReportSales').attr('target','_blank');$('#submit').click();" type="button">
<input class="button" name="submit" id="clear" value="Wyczyść" onclick="window.location='index.php?module=EcmReports&action=ReportSalesByProductGroups';" type="button">
<br>
<br>
</form>
{if $DATA!=NULL}
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="10%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Nr dokumentu</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Data dokumentu</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Typ dokumentu</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Nabywca</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Wartość netto</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Wartość VAT</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Wartość brutto</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Wartość TH</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Wartość WG</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Wartość S</th>
<th class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0"
tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="">Wartość T</th>
</tr>
</thead>
<tbody>
{foreach from=$DATA item=item name=loop key=id}
<tr>
<td class="oddListRowS1" style="text-align:left;"><a target="_blank" href="index.php?module=EcmInvoiceOuts&action=DetailView&record={$item.id}"><span title="{$item.name}">{$item.document_no}</span></a></td>
<td class="oddListRowS1" style="text-align:left;" >{$item.register_date|date_format:"%d.%m.%Y"}</td>
<td class="oddListRowS1" style="text-align:left;" >{$item.type}</td>
<td class="oddListRowS1" style="text-align:left;"><a target="_blank" href="index.php?module=Accounts&action=DetailView&record={$item.parent_id}">{$item.parent_name}</a></td>
<td class="oddListRowS1" style="text-align:right;color:blue;" data-value="{$item.total_netto}">{$item.total_netto|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;color:blue;" data-value="{$item.total_vat}">{$item.total_vat|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;color:blue;" data-value="{$item.total_brutto}">{$item.total_brutto|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;color:blue;" data-value="{$item.TH}">{$item.TH|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;color:blue;" data-value="{$item.WG}">{$item.WG|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;color:blue;" data-value="{$item.S}">{$item.S|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;color:blue;" data-value="{$item.T}">{$item.T|number_format:2:",":"."}</td>
</tr>
{/foreach}
</tbody>
<tfoot>
<tr>
<td class="oddListRowS1" style="text-align:right;"></td>
<td class="oddListRowS1" style="text-align:right;"></td>
<td class="oddListRowS1" style="text-align:right;"></td>
<td class="oddListRowS1" style="text-align:right;">Razem:</td>
<td class="oddListRowS1" style="text-align:right;color:blue;" >{$totals.total_netto|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;color:blue;">{$totals.total_vat|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;color:blue;">{$totals.total_brutto|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;color:blue;">{$totals.TH|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;color:blue;" >{$totals.WG|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;color:blue;">{$totals.S|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;color:blue;" >{$totals.T|number_format:2:",":"."}</td>
</tfoot>
</table>
{/if}

View File

@@ -0,0 +1,85 @@
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td>
<img src="themes/Sugar/images/EcmProducts.gif" style="margin-top: 3px; margin-right: 3px;" width="16" border="0" height="16">
</td>
<td>
<h2 id="raport_name">Rejestr sprzedaży VAT</h2>
</td>
</tr>
</table>
<ul class="tablist" style="width:100%;"></ul>
<form target="_blank" action="index.php" method="get" name="ReportSalesVatSales">
<input type="hidden" id="module" name="module" value="EcmReports"/>
<input type="hidden" id="action" name="action" value="ReportSalesVatSales"/>
<input type="hidden" id="process" name="process" value="1"/>
<input type="hidden" id="to_xls" name="to_xls" value="0"/>
<input type="hidden" id="to_pdf" name="to_pdf" value="1"/>
<table class="tabForm" cellspacing="0" cellpadding="0" border="0" style="border-top: 0px none; margin-bottom: 4px;width:100%">
<tr>
<td class="dataLabel" width="5%" nowrap="nowrap">Magazyn: </td>
<td class="dataField" width="8%" nowrap="nowrap">
{$STOCKS}
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Typ dokumentu: </td>
<td class="dataField" width="8%" nowrap="nowrap">
{$TYPES}
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Rodzaj: </td>
<td class="dataField" width="8%" nowrap="nowrap">
{$KINDS}
</td>
<td class="dataLabel" width="5%" nowrap="nowrap">Kategoria: </td>
<td class="dataField" width="8%" nowrap="nowrap">
{$CATEGORIES}
</td>
</tr>
<tr>
<td class="dataLabel" width="5%" nowrap="nowrap">Grupuj kontrahentów: </td>
<td class="dataField" width="8%" nowrap="nowrap">
<input type="checkbox" name="group_accounts" id="group_accounts" {if $GROUP_ACCOUNTS == '1'} checked {/if}/>
</td>
</tr>
<tr>
<td class="dataLabel" width="5%" nowrap="nowrap">Data od: </td>
<td class="dataField" width="8%" nowrap="nowrap">
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" title="" value="{$DATE_FROM}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" alt="Enter Date" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_from",
daFormat : "%d.%m.%Y",
button : "date_from_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
</tr>
<tr>
<td class="dataLabel" width="5%" nowrap="nowrap">Data do: </td>
<td class="dataField" width="8%" nowrap="nowrap">
<input autocomplete="off" name="date_to" id="date_to" value="{$DATE_TO}" title="" tabindex="" size="11" maxlength="10" type="text">
<img src="themes/default/images/jscalendar.gif" alt="Enter Date" id="date_to_trigger" align="absmiddle" border="0">
<script language="JavaScript" type="text/javascript">
Calendar.setup ({ldelim}
inputField : "date_to",
daFormat : "%d.%m.%Y",
button : "date_to_trigger",
singleClick : true,
dateStr : "",
step : 1
{rdelim}
);
</script>
</td>
</tr>
</table>
<input type="submit" class="button" onclick="$('#to_xls').val(0);$('#to_pdf').val(1);" value="Wykonaj"/>
<!--<input type="submit" class="button" onclick="$('#to_xls').val(1);" value="XLS"/> -->
<input type="button" class="button" value="Wyczyść" onClick = "window.location='index.php?module=EcmReports&action=ReportSalesVatSales'"/>
</form>

View File

@@ -0,0 +1,196 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
{literal}
@page {
size: auto;
odd-header-name: html_Header;
}
#MainTable {
width: 100%;
font-size: 8pt;
border-collapse: collapse;
}
#MainTable .text-left {
text-align: left;
}
#MainTable .text-right {
text-align: right;
}
#MainTable .border-bottom {
border-collapse: collapse;
border-bottom: 1px solid black;
}
#MainTable .border-top {
border-collapse: collapse;
border-top: 1px solid black;
}
{/literal}
</style>
</head>
<body>
<htmlpageheader name="Header">
<div style="text-align: left; font-weight: bold; font-size: 10pt;">
<table style="width: 100%">
<tr><td style="width: 50%">
<table>
<tr>
<td style="font-size: 12px; font-weight: bold">{$COMPANY_NAME}</td>
</tr>
<tr>
<td style="font-size: 12px; font-weight: bold">Data wydruku: {$CUR_DATE}</td>
</tr>
<tr>
<td style="font-size: 12px; font-weight: bold">Rejestr sprzedaży VAT za okres od {$DATE_FROM} do {$DATE_TO}</td>
</tr>
<tr>
<td style="font-size: 12px; font-weight: bold">Strona {literal}{PAGENO} z {nbpg}{/literal}</td>
</tr>
</table>
</td><td style="text-align: right; vertical-align: top; font-size: 8pt;">
Ustawienia raportu:<br>
Magazyn: {$S_STOCK}<br>
Rodzaj: {$S_KIND}<br>
Kategoria: {$S_CATEGORY}<br>
Typ: {$S_TYPE}
</td></tr>
</table>
</div>
</htmlpageheader>
<div>
{foreach from=$PAGES item=PAGE name=page"}
{assign var=pagesCount value=$PAGES|@count}
{assign var=vatColSize value=0}
{math
assign="vatColSize"
equation="round(57/($vatsCount))"
}
<table id="MainTable">
<thead>
<tr>
<th class="border-top border-bottom" style="width: 3%;" rowspan="2">Lp.</th>
<th class="text-left border-top" style="width: 20%;">Nr dok.</th>
<th class="text-left border-top" style="width: 10%;">Data wyst.</th>
<th class="text-left border-top" colspan="{$vatsCount+2}">Odbiorca - NIP,Konto KS, Nazwa, Adres</th>
</tr>
<tr>
<th class="text-right border-bottom" style="width: 10%;">Sprz. brutto</th>
<th class="text-right border-bottom" style="width: 10%;">Sprz. netto</th>
{foreach from=$VATS key=vat_name item=i}
<th class="text-right border-bottom" style="width: {$vatColSize}%;">Netto {$vat_name}</th>
{if $i=='2'}
<th class="text-right border-bottom" style="width: {$vatColSize}%;">VAT {$vat_name}</th>
{/if}
{/foreach}
<th class="text-right border-bottom" style="width: 10%;">VAT Razem</th>
<th class="text-right border-bottom" style="width: 10%;">Koszt</th>
</tr>
</thead>
<tbody>
{foreach from=$PAGE.rows item=row}
{if $row.is_summary!=1}
<tr>
<td class="text-left border-bottom" rowspan="2">{$row.lp}</td>
<td class="text-left">{$row.document_no}</td>
<td class="text-left">{$row.register_date}</td>
<td class="text-left" colspan="{$vatsCount+2}">{$row.parent_info}</td>
</tr>
<tr>
<td class="text-right border-bottom">{$row.brutto|number_format:2:",":"."}</td>
<td class="text-right border-bottom">{$row.netto|number_format:2:",":"."}</td>
{foreach from=$row.vats item=v key=k}
<td class="text-right border-bottom">{$v[0]|number_format:2:",":"."}</td>
{if $VATS.$k == '2'}
<td class="text-right border-bottom">{$v[1]|number_format:2:",":"."}</td>
{/if}
{/foreach}
<td class="text-right border-bottom">{$row.vat|number_format:2:",":"."}</td>
<td class="text-right border-bottom">{$row.purchase|number_format:2:",":"."}</td>
</tr>
{else}
<tr>
<td class="text-left" colspan="{$vatsCount+5}"><b>Razem - {$row.index}</b></td>
</tr>
<tr>
<td class="text-right border-bottom">&nbsp;</td>
<td class="text-right border-bottom" >{$row.total_brutto|number_format:2:",":"."}</td>
<td class="text-right border-bottom" >{$row.total_netto|number_format:2:",":"."}</td>
{foreach from=$row.vats item=v key=k}
<td class="text-right border-bottom">{$v[0]|number_format:2:",":"."}</td>
{if $VATS.$k == '2'}
<td class="text-right border-bottom">{$v[1]|number_format:2:",":"."}</td>
{/if}
{/foreach}
<td class="text-right border-bottom" >{$row.total_vat|number_format:2:",":"."}</td>
<td class="text-right border-bottom" >{$row.total_purchase|number_format:2:",":"."}</td>
</tr>
{/if}
{/foreach}
<tr>
<td class="text-left" colspan="{$vatsCount+6}">Suma strony:</td>
</tr>
<tr>
<td class="border-bottom">&nbsp;</td>
<td class="text-right border-bottom">{$PAGE.site_brutto|number_format:2:",":"."}</td>
<td class="text-right border-bottom">{$PAGE.site_netto|number_format:2:",":"."}</td>
{foreach from=$PAGE.site_vats item=v key=k}
<td class="text-right border-bottom">{$v[0]|number_format:2:",":"."}</td>
{if $VATS.$k == '2'}
<td class="text-right border-bottom">{$v[1]|number_format:2:",":"."}</td>
{/if}
{/foreach}
<td class="text-right border-bottom">{$PAGE.site_vat|number_format:2:",":"."}</td>
<td class="text-right border-bottom">{$PAGE.site_purchase|number_format:2:",":"."}</td>
</tr>
<tr>
<td class="text-left" colspan="{$vatsCount+6}">Suma z przeniesienia:</td>
</tr>
<tr>
<td class="border-bottom">&nbsp;</td>
<td class="text-right border-bottom">{$PAGE.moved_brutto|number_format:2:",":"."}</td>
<td class="text-right border-bottom">{$PAGE.moved_netto|number_format:2:",":"."}</td>
{foreach from=$PAGE.moved_vats item=v key=k}
<td class="text-right border-bottom">{$v[0]|number_format:2:",":"."}</td>
{if $VATS.$k == '2'}
<td class="text-right border-bottom">{$v[1]|number_format:2:",":"."}</td>
{/if}
{/foreach}
<td class="text-right border-bottom">{$PAGE.moved_vat|number_format:2:",":"."}</td>
<td class="text-right border-bottom">{$PAGE.moved_purchase|number_format:2:",":"."}</td>
</tr>
<tr>
<td class="text-left" colspan="{$vatsCount+6}">Suma razem:</td>
</tr>
<tr>
<td class="border-bottom">&nbsp;</td>
<td class="text-right border-bottom">{$PAGE.total_brutto|number_format:2:",":"."}</td>
<td class="text-right border-bottom">{$PAGE.total_netto|number_format:2:",":"."}</td>
{foreach from=$PAGE.total_vats item=v key=k}
<td class="text-right border-bottom">{$v[0]|number_format:2:",":"."}</td>
{if $VATS.$k == '2'}
<td class="text-right border-bottom">{$v[1]|number_format:2:",":"."}</td>
{/if}
{/foreach}
<td class="text-right border-bottom">{$PAGE.total_vat|number_format:2:",":"."}</td>
<td class="text-right border-bottom">{$PAGE.total_purchase|number_format:2:",":"."}</td>
</tr>
</tbody>
</table>
{if $smarty.foreach.page.index != $pagesCount-1 }
<newpage>
{/if}
{/foreach}
<p style="font-size: 8pt;">
KONIEC WYDRUKU
</p>
</div>
</body>
</html>

View File

@@ -0,0 +1,302 @@
<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/ReportStockDocMoves.js"></script>
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>Obroty wg dokumentów</h2>
</td>
</tr>
</table>
<br>
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">Wyszukiwanie</a>
</li>
</ul>
<form action="index.php" method="get" name="ReportStockDocMoves">
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="ReportStockDocMoves" />
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="dataField" width="10%" nowrap="nowrap">
<span id="stockSelectedspan">{$MOD.LBL_STOCK}</span>
<select multiple="multiple" name="stockSelected[]">
{foreach from=$stocksList key="key" item="item"}
<option value="{$key}" {if @in_array($key, $stockSelected) } selected="true" {/if}>{$item}</option>
{/foreach}
</select>
</td>
<td class="dataField" width="10%" nowrap="nowrap">
Dokument
{html_options name=documentsSelected options=$documentList selected=$documentSelected}
</td>
<td class="dataField" width="10%" nowrap="nowrap">
Widok:
{html_options name=viewSelected options=$viewList selected=$viewSelected}
</td>
<td class="dataField" width="10%" nowrap="nowrap">
<!--
<span class="changebox kartotekamaterialowa">
Kartoteka materiałowa
<select multiple name="stockIndexSelected[]">
<option value="NULL" {if @in_array('NULL', $stockIndexSelected) } selected="true" {/if}></option>
{foreach from=$stockIndexList key="key" item="item"}
<option value="{$key}" {if @in_array($key, $stockIndexSelected) } selected="true" {/if}>{$item}</option>
{/foreach}
</select>
</span>
-->
<span class="changebox magazyndocelowy">
Do magazynu
<select multiple="multiple" name="mmSelected[]">
{foreach from=$stocksList key="key" item="item"}
<option value="{$key}" {if @in_array($key, $mmSelected) } selected="true" {/if}>{$item}</option>
{/foreach}
</select>
</span>
<span class="changebox kontrahent">
{$MOD.LBL_CONTRACTOR}
<input type="text" id="accountName" name="accountName" value="{$accountName}">
<input type="hidden" id="accountId" name="accountId" value="{$accountId}">
<button
type="button"
id="selectAccount"
value="{$APP.LBL_ADD_BUTTON}"
title="Wybierz kontrahenta">
<img src="{sugar_getimagepath file="id-ff-select.png"}">
</button>
<button
type="button"
id="clear"
value="Wyczyść"
title="Wyczyść">
<img src="{sugar_getimagepath file="id-ff-clear.png"}">
</button>
</span>
<!--
<span class="changebox kategoriawz">
Kategoria
{html_options name=wz_category options=$kategorie_wz selected=$wz_category_selected}
</span>
-->
</td>
</tr>
<tr>
<td class="dataLabel" width="10%" nowrap="nowrap">
Data od
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" title="Data od" value="{$date_from}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" alt="Enter Date" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
Calendar.setup({ldelim}
inputField: "date_from",
daFormat: "%d.%m.%Y",
button: "date_from_trigger",
singleClick: true,
dateStr: "",
step: 1
{rdelim}
);
</script>
</td>
<td class="dataLabel" width="10%" nowrap="nowrap">
Data do
<input autocomplete="off" name="date_to" id="date_to" value="{$date_to}" title="Data do" tabindex="" size="11" maxlength="10" type="text">
<img src="themes/default/images/jscalendar.gif" alt="Enter Date" id="date_to_trigger" align="absmiddle" border="0">
<script language="JavaScript" type="text/javascript">
Calendar.setup({ldelim}
inputField: "date_to",
daFormat: "%d.%m.%Y",
button: "date_to_trigger",
singleClick: true,
dateStr: "",
step: 1
{rdelim}
);
</script>
</td>
<td class="dataField" width="10%" nowrap="nowrap">
Kategoria produktu
<input type="text" id="productCategoryName" name="productCategoryName" value="{$productCategoryName}">
<input type="hidden" id="productCategoryId" name="productCategoryId" value="{$productCategoryId}">
<button
type="button"
id="selectProductCategory"
value="{$APP.LBL_ADD_BUTTON}"
title="Wybierz kategorię">
<img src="{sugar_getimagepath file="id-ff-select.png"}">
</button>
<button
type="button"
id=clearCat
value="Wyczyść"
title="Wyczyść">
<img src="{sugar_getimagepath file="id-ff-clear.png"}">
</button>
</td>
</tr>
</tbody>
</table>
<input type="submit" value="{$MOD.LBL_EXECUTE}">
<input class="button" name="clear" value="{$MOD.LBL_CLEAR}" type="button" onclick="location.href = 'index.php?module=EcmReports&action=ReportStockDocMoves';">
<input id="pdf" class="button" name="pdf" value="PDF" onClick="pdfExport();" type="button">
<!-- <input id="pdf" class="button" name="pdf" value="XLS" onClick="xlsExport();" type="button"> -->
</form>
<br>
<div class="content" style="text-align:center">
{if $viewSelected eq 'documents'}
<table id="myTable" class="tablesorter">
<thead>
<tr>
<th >Numer dokumentu</th>
<th>Data</th>
{if $documentSelected eq 'EcmStockDocMoves'}
<th>Magazyn docelowy </th>
{elseif $documentSelected eq 'EcmStockDocIns'}
<th>Dostawca </th>
{elseif $documentSelected eq 'EcmStockDocOuts'}
<th> Odbiorca</th>
{elseif $documentSelected eq 'EcmInvoiceOuts'}
<th>Kontrahent</th>
{/if}
<th>Opis dokumentu</th>
<th>Wartość</th>
<th>Magazyn</th>
</tr>
</thead>
<tbody aria-live="polite" aria-relevant="all">
{foreach from=$DATA.doc key="key" item="item" name=loop}
<tr>
<td>
<a href="index.php?module={$documentSelected}&action=DetailView&record={$item.id}">{$item.numer}</a>
</td>
<td>
{$item.data}
</td>
{if $documentSelected eq 'EcmStockDocMoves'}
<td>{$item.magazynIn} </td>
{elseif $documentSelected eq 'EcmStockDocIns' or $documentSelected eq 'EcmStockDocOuts' or $documentSelected eq 'EcmInvoiceOuts' }
<td><a href="index.php?module=Accounts&action=DetailView&record={$item.accountId}">{$item.accountNazwa}</a> </td>
{/if}
<td>
{if $item.typ=='KS'}
{if $item.otyp==0}
Przychód
{/if}
{if $item.otyp==1}
Rozchód
{/if}
{else}
{$item.nazwa}
{/if}
</td>
<td style="text-align: right" data-value="{$item.wartosc}">
{assign var=suma value=$suma+$item.wartosc}
{$item.wartosc|number_format:2:",":"."}
</td>
<td style="text-align: left">
{$item.magazyn}
</td>
</tr>
{/foreach}
</tbody>
<tfoot>
<tr>
<th colspan='3' style="text-align:left;">Suma:</th>
<th style="text-align:right;">{$suma|number_format:2:",":"." }</th>
<th ></th>
{if $documentSelected eq 'EcmStockDocOuts'}
<th></th>
{/if}
</tr>
</tfoot>
</table>
{elseif $viewSelected eq 'positions'}
<table id="myTable" class="tablesorter">
<thead>
<tr>
<th>Indeks</th>
<th>Nazwa</th>
<th>Jm</th>
<th>Ilość</th>
<th>Wartość</th>
{if $documentSelected eq 'EcmStockDocInsideIns'}
<th>Koszt robocizny </th>
{/if}
</tr>
</thead>
<tbody aria-live="polite" aria-relevant="all">
{foreach from=$DATA.prod key="key" item="item" name=loop}
<tr>
<td>
<a href="index.php?module=EcmProducts&action=DetailView&record={$item.id}">{$item.kod} </a>
</td>
<td>
<a href="index.php?module=EcmProducts&action=DetailView&record={$item.id}">{$item.nazwa} </a>
</td>
<td>
{$item.jm}
</td>
<td style="text-align: right" data-value="{$item.ilosc}">
{assign var=sumaIlosci value=$sumaIlosci+$item.ilosc}
{$item.ilosc|number_format:2:",":"."}
</td>
<td style="text-align: right" data-value="{$item.wartosc}">
{assign var=suma value=$suma+$item.wartosc}
{$item.wartosc|number_format:2:",":"."}
</td>
{if $documentSelected eq 'EcmStockDocInsideIns'}
<td style="text-align: right" data-value="{$item.wartosc}">
{assign var=robocizna value=$robocizna+$item.work_price}
{$item.work_price|number_format:2:",":"."}
</td>
{/if}
</tr>
{/foreach}
</tbody>
<tfoot>
<tr>
<th colspan='3' style="text-align:left;">Suma:</th>
<th colspan='1' style="text-align:right;">{$sumaIlosci|number_format:2:",":"." }</th>
<th colspan='1' style="text-align:right;">{$suma|number_format:2:",":"." }</th>
{if $documentSelected eq 'EcmStockDocInsideIns'}
<th colspan='1' style="text-align:right;">{$robocizna|number_format:2:",":"." }</th>
{/if}
</tr>
</tfoot>
</table>
{/if}
<span id="info">Strona w budowie :)</span>
</div>

View File

@@ -0,0 +1,133 @@
{if $viewSelected eq 'documents'}
<table id="myTable" style="font-size: 8pt; width:100%">
<thead>
<tr>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt;">Lp.</th>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt; width:10%">Numer dokumentu</th>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt; width:10%">Data</th>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt;">
{if $documentSelected eq 'EcmStockDocInsideOuts' or $documentSelected eq 'EcmStockDocInsideIns' or $documentSelected eq 'EcmStockDocCorrects'}
Kartoteka materiałowa
{elseif $documentSelected eq 'EcmStockDocMoves'}
Magazyn docelowy
{elseif $documentSelected eq 'EcmStockDocIns'}
Dostawca
{elseif $documentSelected eq 'EcmStockDocOuts'}
Odbiorca
{elseif $documentSelected eq 'EcmInvoiceOuts'}
Kontrahent
{/if}
</th>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt;">Opis dokumentu</th>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt;">Wartość</th>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt;">Magazyn</th>
{if $documentSelected eq 'EcmStockDocOuts'}
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt;">Kategoria</th>
{/if}
</tr>
</thead>
<tbody >
{foreach from=$DATA.doc key="key" item="item" name=loop}
<tr>
<td>{assign var=pozycja value=$pozycja+1}{$pozycja}</td>
<td>
{$item.numer}
</td>
<td>
{$item.data}
</td>
<td>
{if $documentSelected eq 'EcmStockDocInsideOuts' or $documentSelected eq 'EcmStockDocInsideIns' or $documentSelected eq 'EcmStockDocCorrects'}
{$item.kartoteka}
{elseif $documentSelected eq 'EcmStockDocMoves'}
{$item.magazynIn}
{elseif $documentSelected eq 'EcmStockDocIns' or $documentSelected eq 'EcmStockDocOuts' or $documentSelected eq 'EcmInvoiceOuts' }
{$item.accountNazwa}
{/if}
</td>
<td>
{if $item.typ=='KS'}
{if $item.otyp==0}
Przychód
{/if}
{if $item.otyp==1}
Rozchód
{/if}
{else}
{$item.nazwa}
{/if}
</td>
<td style="text-align: right">
{assign var=suma value=$suma+$item.wartosc}
{$item.wartosc|number_format:2:",":"."}
</td>
<td style="text-align: left">
{$item.magazyn}
</td>
{if $documentSelected eq 'EcmStockDocOuts'}
<td style="text-align: left">
{$item.doccategory}
</td>
{/if}
</tr>
{/foreach}
</tbody>
<tfoot>
<tr>
<th colspan='5' style="border-top: 1px solid black;text-align:left;">Suma:</th>
<th style="border-top: 1px solid black;text-align:right;">{$suma|number_format:2:",":"." }</th>
<th style="border-top: 1px solid black;"></th>
{if $documentSelected eq 'EcmStockDocOuts'}
<th style="border-top: 1px solid black;"></th>
{/if}
</tr>
</tfoot>
</table>
{elseif $viewSelected eq 'positions'}
<table id="myTable" style="font-size: 8pt; width:100%">
<thead>
<tr>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt;">Lp.</th>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt;">Indeks</th>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt;">Nazwa</th>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt;">Jm</th>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt;">Ilość</th>
<th style="border: 1px solid black; font-weight: bold; font-size: 8pt;">Wartość</th>
</tr>
</thead>
<tbody aria-live="polite" aria-relevant="all">
{foreach from=$DATA.prod key="key" item="item" name=loop}
<tr>
<td>{assign var=pozycja value=$pozycja+1}{$pozycja}</td>
<td>
{$item.kod}
</td>
<td>
{$item.nazwa}
</td>
<td>
{$item.jm}
</td>
<td style="text-align: right">
{assign var=sumaIlosci value=$sumaIlosci+$item.ilosc}
{$item.ilosc|number_format:2:",":"."}
</td>
<td style="text-align: right">
{assign var=suma value=$suma+$item.wartosc}
{$item.wartosc|number_format:2:",":"."}
</td>
</tr>
{/foreach}
</tbody>
<tfoot>
<tr>
<th colspan='4' style="border-top: 1px solid black;text-align:left;">Suma:</th>
<th colspan='1' style="border-top: 1px solid black;text-align:right;">{$sumaIlosci|number_format:2:",":"." }</th>
<th colspan='1' style="border-top: 1px solid black;text-align:right;">{$suma|number_format:2:",":"." }</th>
</tr>
</tfoot>
</table>
{/if}

View File

@@ -0,0 +1,263 @@
<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-table/jquery.appendGrid-1.3.1.css"/>
<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-ui/themes/base/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue2.css"/>
<!-- Tablesorter -->
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.staticrow.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.widgets.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/jquery.blockUI.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/ReportStocks.js"></script>
<script type="text/javascript">
{literal}
function pdfExport() {
var url = $(location).attr('href');
url = url + "&toPDF=1&to_pdf=1";
window.open(url,'_blank');
}
{/literal}
</script>
<style type="text/css">
{literal}
thead, tfoot {font-weight: bold;}
.additionalColumn {
background-color: #87CCED;
border-top: 1px solid black;
}
.line {
border-top: 1px solid black !important;;
}
.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: #B8E8E8;
color: #343432;
font-weight: bold;
}
table.tablesorter tbody tr.alt-row:hover td {
background: #B8E8E8;
color: #343432;
font-weight: bold;
}
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;
}
{/literal}
</style>
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>Raport magazynowy - Stany magazynowe za okres</h2>
</td>
</tr>
</table>
<br />
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">Wyszukiwanie</a>
</li>
</ul>
<form action="index.php" method="get" name="searchReportStocks">
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="ReportStockNew" />
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="dataLabel" width="5%" nowrap="nowrap">{$MOD.LBL_STOCK}</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="stock" name="selectStock">
<option value="" { if $selectStock==""} selected="true" {/if} >{$MOD.LBL_ALL_STOCKS}</option>
{foreach from=$STOCKS item=STOCK key=count name=loop}
<option value="{$STOCK.id}" { if $selectStock==$STOCK.id} selected="true" {/if} >{$STOCK.name}</option>
{/foreach}
</select>
</td>
<td class="dataLabel" width="10%" nowrap="nowrap"></td>
<td class="dataLabel" width="5%" nowrap="nowrap">Ukryj stany zerowe</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="productActive" name="selectProductActive">
<option value="" { if $selectProductActive==""} selected="true" {/if} ></option>
<option value="1" { if $selectProductActive=="1"} selected="true" {/if} >{$MOD.LBL_YES}</option>
</select>
</td>
<td class="dataLabel" width="10%" nowrap="nowrap"></td>
</tr>
<tr>
<td class="dataLabel" width="10%" nowrap="nowrap">Data od</td>
<td class="dataLabel" width="10%" nowrap="nowrap">
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" tabindex="" title="Data od" value="{$date_from}" autocomplete="off">
<img id="date_from_trigger" border="0" align="absmiddle" alt="Enter Date" src="themes/default/images/jscalendar.gif">
<script language="JavaScript" type="text/javascript">
{* console.log('dupa');*}
Calendar.setup({ldelim}
inputField: "date_from",
daFormat: "%d.%m.%Y",
button: "date_from_trigger",
singleClick: true,
dateStr: "",
step: 1
{rdelim}
);
</script>
</td>
<td class="dataLabel" width="10%" nowrap="nowrap">Data do</td>
<td class="dataLabel" width="10%" nowrap="nowrap">
<input autocomplete="off" name="date_to" id="date_to" value="{$date_to}" title="Data do" tabindex="" size="11" maxlength="10" type="text">
<img src="themes/default/images/jscalendar.gif" alt="Enter Date" id="date_to_trigger" align="absmiddle" border="0">
<script language="JavaScript" type="text/javascript">
Calendar.setup({ldelim}
inputField: "date_to",
daFormat: "%d.%m.%Y",
button: "date_to_trigger",
singleClick: true,
dateStr: "",
step: 1
{rdelim}
);
</script>
</td>
<td class="dataLabel" width="60%" nowrap="nowrap"></td>
</tr>
</tbody>
</table>
<input class="button" name="submit" value="{$MOD.LBL_EXECUTE}" type="submit">
<input class="button" name="clear" value="{$MOD.LBL_CLEAR}" type="button" onclick="location.href='index.php?module=EcmReports&action=ReportStockNew';">
<input id="pdf" class="button" name="pdf" value="PDF" onClick="pdfExport();" type="button">
<br>
<br>
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="1%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">L.p.</th>
<th width="15%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="1" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_INDEX}/{$MOD.LBL_NAME}</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="5" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Stan {$date_from}</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="5" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Przychód</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="6" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Rozchód</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="6" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Stan {$date_to}</th>
</tr>
</thead>
<tbody aria-live="polite" aria-relevant="all">
{assign var="max_precision" value=0}
{assign var="number" value=$number+1}
{foreach from=$DATA key="key" item="item" name=loop}
{if $max_precision < $item.unit_precision }
{assign var="max_precision" value=$item.unit_precision}
{/if}
<tr>
<td class="oddListRowS1 alignLeft"><b>{$number}</b></td>
<td class="oddListRowS1" style="text-align:left;" rowspan="{$currow}"><b>{$item.product_code}</b><br><b>{$item.product_name}</b></td>
<td class="oddListRowS1 sumRow" >{$item.total_quantity_old|number_format:$item.unit_precision:",":"."} {$item.unit_id}<br>{$item.total_price_old|number_format:2:",":"." }</td>
<td class="oddListRowS1 sumRow" >{$item.przychod_q|number_format:$item.unit_precision:",":"."} {$item.unit_id}<br>{$item.przychod_w|number_format:2:",":"." }</td>
<td class="oddListRowS1 sumRow" >{$item.rozchod_q|number_format:$item.unit_precision:",":"."} {$item.unit_id}<br>{$item.rozchod_w|number_format:2:",":"." }</td>
<td class="oddListRowS1 sumRow" >{$item.total_quantity_now|number_format:$item.unit_precision:",":"."} {$item.unit_id}<br>{$item.total_price_now|number_format:2:",":"." }</td>
{assign var="number" value=$number+1}
</tr>
<tr>
<td class='line'></td>
<td class='line'></td>
<td class='line'></td>
<td class='line'></td>
<td class='line'></td>
<td class='line'></td>
</tr>
{/foreach}
</tbody>
<tr><td></td><td style="text-align:right;"><b>Razem ilość:</b></td><td class="oddListRowS1 sumRow"><b>{$TOTAL_QUANTITY_OLD|number_format:2:",":"." }</b></td><td class="oddListRowS1 sumRow"><b>{$przychod_q|number_format:2:",":"." }</b>
</td><td class="oddListRowS1 sumRow"><b>{$rozchod_q|number_format:2:",":"." }</b></td><td class="oddListRowS1 sumRow"><b>{$TOTAL_QUANTITY_NOW|number_format:2:",":"." }</b></td></tr>
<tr><td></td><td style="text-align:right;"><b>Razem wartość:</b></td><td class="oddListRowS1 sumRow"><b>{$TOTAL_VALUE_OLD|number_format:2:",":"." }</b></td><td class="oddListRowS1 sumRow"><b>{$przychod_w|number_format:2:",":"." }</b>
</td><td class="oddListRowS1 sumRow"><b>{$rozchod_w|number_format:2:",":"." }</b></td><td class="oddListRowS1 sumRow"><b>{$TOTAL_VALUE_NOW|number_format:2:",":"." }</b></td></tr>
</table>
<br/>

View File

@@ -0,0 +1,262 @@
<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-table/jquery.appendGrid-1.3.1.css"/>
<link rel="stylesheet" type="text/css" href="include/jQuery/jquery-ui/themes/base/jquery-ui.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue.css"/>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/TableSorter/css/theme.blue2.css"/>
<!-- Tablesorter -->
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.staticrow.min.js"></script>
<script type="text/javascript" src="modules/EcmReports/TableSorter/js/jquery.tablesorter.widgets.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/jquery.blockUI.js"></script>
<script type="text/javascript" src="modules/EcmReports/javascript/ReportStocks.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;
}
{/literal}
</style>
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<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>{$MOD.LBL_REPORT_STOCKS} </h2>
</td>
</tr>
</table>
<br />
<ul class="tablist" style="width:100%;">
<li>
<a class="current" href="#">Podstawowe wyszukiwanie</a>
</li>
</ul>
<form action="index.php" method="get" name="searchReportStocks">
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="ReportStocks" />
<table style="border-top: 0px none; margin-bottom: 4px;width:100%" class="tabForm" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="dataLabel" width="5%" nowrap="nowrap">{$MOD.LBL_STOCK}</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="stock" name="selectStock">
<option value="" { if $selectStock==""} selected="true" {/if} >{$MOD.LBL_ALL_STOCKS}</option>
{foreach from=$STOCKS item=STOCK key=count name=loop}
<option value="{$STOCK.id}" { if $selectStock==$STOCK.id} selected="true" {/if} >{$STOCK.name}</option>
{/foreach}
</select>
</td>
<td class="dataLabel" width="25%" nowrap="nowrap"></td>
<td class="dataLabel" width="5%" nowrap="nowrap">{$MOD.LBL_PRODUCT_ACTIVE}</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="productActive" name="selectProductActive">
<option value="" { if $selectProductActive==""} selected="true" {/if} >{$MOD.LBL_YES}/{$MOD.LBL_NO}</option>
<option value="1" { if $selectProductActive=="1"} selected="true" {/if} >{$MOD.LBL_YES}</option>
<option value="0" { if $selectProductActive=="0"} selected="true" {/if} >{$MOD.LBL_NO}</option>
</select>
</td>
<td class="dataLabel" width="25%" nowrap="nowrap"></td>
<td class="dataLabel" width="5%" nowrap="nowrap">End of line</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="productEol" name="selectProductEol">
<option value="" { if $selectProductEol==""} selected="true" {/if} >{$MOD.LBL_YES}/{$MOD.LBL_NO}</option>
<option value="1" { if $selectProductEol=="1"} selected="true" {/if} >{$MOD.LBL_YES}</option>
<option value="0" { if $selectProductEol=="0"} selected="true" {/if} >{$MOD.LBL_NO}</option>
</select>
</td>
<td class="dataLabel" width="25%" nowrap="nowrap"></td>
<td class="dataLabel" width="5%" nowrap="nowrap">Grupa księgowa</td>
<td class="dataField" width="10%" nowrap="nowrap">
<select id="productKS" name="productKS">
<option value="" { if $selectKS==""} selected="true" {/if} >Wszystkie</option>
{foreach from=$KSGROUPS item=GROUP key=count name=loop}
<option value="{$GROUP.id}" { if $selectKS==$GROUP.id} selected="true" {/if} >{$GROUP.name}</option>
{/foreach}
</select>
</td>
<td class="dataLabel" width="25%" nowrap="nowrap"></td>
<td class="dataLabel" width="5%" nowrap="nowrap"></td>
<td class="dataField" width="10%" nowrap="nowrap">
</td>
<td class="dataLabel" width="25%" nowrap="nowrap"></td>
<td class="dataLabel" width="5%" nowrap="nowrap"></td>
<td class="dataField" width="10%" nowrap="nowrap">
</td>
<td class="dataLabel" width="25%" nowrap="nowrap"></td>
</tr>
</tbody>
</table>
<input class="button" name="submit" value="{$MOD.LBL_EXECUTE}" type="submit">
<input class="button" name="clear" value="{$MOD.LBL_CLEAR}" type="button" onclick="location.href='index.php?module=EcmReports&action=ReportSales';">
<input id="excelEksport" class="button" name="importToExcel" value="{$MOD.BTN_EXCEL_EXPORT}" type="button">
<br>
<br>
<table id="myTable" class="tablesorter tablesorter-blue" role="grid">
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="30%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_PRODUCTS}</th>
<th width="10%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="1" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_INDEX}</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="5" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_QUANTITY}</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="6" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">{$MOD.LBL_VALUE}</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="6" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Średnia Cena</th>
</tr>
</thead>
{foreach from=$DATA item=CAT key=CATNAME name=loop}
{* Table headers *}
<tbody id="functions-core" class="tablesorter-infoOnly">
<tr class="static category">
{if $CATNAME != ""}
<td class="oddListRowS1 alignLeft"><a class="plusStyle showTables">[+]</a><b> {$CATNAME}</b></td>
{/if}
<td class="oddListRowS1" ></td>
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.QuantitySum|number_format:4:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.PriceSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$DATA.$CATNAME.PriceSum/$DATA.$CATNAME.QuantitySum|number_format:2:",":"." }</b></td>
</tr>
</tbody>
{foreach from=$CAT item=CAT2 key=CAT2NAME name=loop}
{if $CAT2NAME!="QuantitySum" && $CAT2NAME!="PriceSum"}
<tbody id="functions-core" class="tablesorter-infoOnly tablesShowHide">
<tr class="subcategory">
<td class="oddListRowS1 alignLeft"><a class="showRows" style="color: cadetblue; text-decoration: none; cursor: pointer;">[+]</a><b> {$CAT2NAME}</b></td>
<td class="oddListRowS1" ></td>
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.QuantitySum2|number_format:4:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.PriceSum2|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$CAT.$CAT2NAME.PriceSum2/$CAT.$CAT2NAME.QuantitySum2|number_format:2:",":"." }</b></td>
</tr>
</tbody>
<tbody aria-live="polite" aria-relevant="all" class="rowShowHide">
{foreach from=$CAT2 item=ROW name=loop}
{if $CAT2NAME!="AvgPriceSum" && $CAT2NAME!="QuantitySum" && $ROW.name!=""}
{if $smarty.foreach.loop.index % 2 == 1}
<tr role="row" class="contractor">
{else}
<tr class="contractor" role="row">
{/if}
<td class="oddListRowS1 alignLeft" style="text-align:left;">
<a target="new" href="index.php?module=EcmProducts&action=index&return_module=EcmProducts&action=DetailView&record={$ROW.id}">
{$ROW.name}
</a>
</td>
<td class="oddListRowS1 alignLeft" >{$ROW.code}</td>
<td class="oddListRowS1" >{$ROW.quantity|number_format:4:",":"."}</td>
<td class="oddListRowS1" >{$ROW.price|number_format:2:",":"."}</td>
<td class="oddListRowS1" >{$ROW.price/$ROW.quantity|number_format:2:",":"."}</td>
</tr>
{/if}
{/foreach}
</tbody>
<tbody id="stopRows"></tbody>
{/if}
{/foreach}
<tbody id="stopTables"></tbody>
{/foreach}
<tbody id="functions-core" class="tablesorter-infoOnly">
<tr class="static category sumAll">
<td class="oddListRowS1 alignLeft"><b>{$MOD.LBL_SUM}:</b></td>
<td class="oddListRowS1" ></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.QuantitySumSum|number_format:4:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.PriceSumSum|number_format:2:",":"." }</b></td>
<td class="oddListRowS1 sumRow" ><b>{$SUM.PriceSumSum/$SUM.QuantitySumSum|number_format:2:",":"." }</b></td>
</tr>
</tbody>
</table>
<br/>

View File

@@ -0,0 +1,30 @@
<script type="text/javascript" src="modules/EcmReports/javascript/detailProducts.js"></script>
<table class="productsTable" class="tablesorter tablesorter-blue2" role="grid" >
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="30%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Kontrahent</th>
<th width="9%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="2" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Sprzedana ilość</th>
<th width="10%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="3" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Wartość sprzedaży</th>
<th width="10%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="4" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Średnia cena</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="5" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Koszt</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="6" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Marża</th>
</tr>
</thead>
<tbody aria-live="polite" aria-relevant="all">
{foreach from=$data item=ROW name=loop}
<tr style="background-color: #e6e6e6;" role="row">
<td class="oddListRowS1" style="text-align:left;">
<a target="new" href="index.php?module=Accounts&return_module=Accounts&action=DetailView&record={$ROW.id}">
{$ROW.name}
</a>
</td>
<td class="oddListRowS1" style="text-align:right;">{$ROW.ilosc|number_format:0:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;">{$ROW.netto|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;">{$ROW.srednia|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;">{$ROW.koszt|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;">{$ROW.marza|number_format:2:",":"."}%</td>
</tr>
{/foreach}
</tbody>
</table>

View File

@@ -0,0 +1,32 @@
<script type="text/javascript" src="modules/EcmReports/javascript/detailProducts.js"></script>
<table class="productsTable" class="tablesorter tablesorter-blue2" role="grid" >
<thead>
<tr class="tablesorter-headerRow" role="row">
<th width="30%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="0" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Produkty</th>
<th width="8%" class="sorter-text tablesorter-header tablesorter-headerUnSorted" data-column="1" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Indeks</th>
<th width="9%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="2" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Sprzedana ilość</th>
<th width="10%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="3" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Wartość sprzedaży</th>
<th width="10%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="4" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Średnia cena</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="5" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Koszt</th>
<th width="8%" class="sorter-saas tablesorter-header tablesorter-headerUnSorted" data-column="6" tabindex="0" scope="col" role="columnheader" aria-disabled="false" unselectable="on" style="-moz-user-select: none;" aria-sort="none" aria-label="Name: No sort applied, activate to apply an ascending sort">Marża</th>
</tr>
</thead>
<tbody aria-live="polite" aria-relevant="all">
{foreach from=$data item=ROW name=loop}
<tr style="background-color: #e6e6e6;" role="row">
<td class="oddListRowS1" style="text-align:left;">
<a target="new" href="index.php?module=EcmProducts&action=index&return_module=EcmProducts&action=DetailView&record={$ROW.id}">
{$ROW.name}
</a>
</td>
<td class="oddListRowS1" >{$ROW.code}</td>
<td class="oddListRowS1" style="text-align:right;">{$ROW.ilosc|number_format:0:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;">{$ROW.netto|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;">{$ROW.srednia|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;">{$ROW.koszt|number_format:2:",":"."}</td>
<td class="oddListRowS1" style="text-align:right;">{$ROW.marza|number_format:2:",":"."}%</td>
</tr>
{/foreach}
</tbody>
</table>

View File

@@ -0,0 +1,220 @@
<html>
<head>
<style>
{literal}
.edit tr td{
vertical-align : middle;
}
.money ,.quantity{
text-align : right;
}
table.tablesorter {
font-family:arial;
background-color: #CDCDCD;
margin:10px 0pt 15px;
font-size: 8pt;
width: 100%;
text-align: left;
}
table.tablesorter thead tr th, table.tablesorter tfoot tr th {
background-color: #e6EEEE;
border: 1px solid #FFF;
font-size: 8pt;
padding: 4px;
}
table.tablesorter thead tr .header {
background-image: url(bg.gif);
background-repeat: no-repeat;
background-position: center right;
cursor: pointer;
}
table.tablesorter tbody td {
color: #3D3D3D;
padding: 4px;
background-color: #FFF;
vertical-align: top;
}
table.tablesorter tbody tr.odd td {
background-color:#F0F0F6;
}
table.tablesorter thead tr .headerSortUp {
background-image: url(asc.gif);
}
table.tablesorter thead tr .headerSortDown {
background-image: url(desc.gif);
}
table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
background-color: #8dbdd8;
}
{/literal}
</style>
</head>
<body>
<table style="width:100%;font-size:10px">
<thead>
<tr>
<td colspan='4'>
<p style="font-size:15px"><b>Raport ilościowy zakupu</b></p>
e5 Polska Sp. z o.o.
</td>
<td style="text-align:right">
Data wygenerowania raportu:<br>
{$smarty.now|date_format:"%d.%m.%Y %H:%M:%S"}
</td>
</tr>
</thead>
<tbody>
<tr>
<td >
{$MOD.LBL_DATE_FROM} {$date_from_value}<br>
{$MOD.LBL_DATE_TO} {$date_to_value}
</td>
<td >
<table>
<tr>
<td>
Grupa:
</td>
<td>
{if @count($PRODUCT_GROUP_SELECTED) == 0}
{foreach from=$APP_LIST_STRINGS.ecmproducts_group_ks_dom key="key" item="item"}
{$item}<br>
{/foreach}
{else}
{foreach from=$APP_LIST_STRINGS.ecmproducts_group_ks_dom key="key" item="item"}
{if @in_array($key, $PRODUCT_GROUP_SELECTED) } {$item}<br>{/if}
{/foreach}
{/if}
</td>
</tr>
</table>
</td>
<td >
<table>
<tr>
<td>
{$MOD.LBL_STOCK}:
</td>
<td>
{if @count($STOCK_SELECTED) == 0}
{foreach from=$STOCK_LIST key="key" item="item"}
{$item}<br>
{/foreach}
{else}
{foreach from=$STOCK_LIST key="key" item="item"}
{if @in_array($key, $STOCK_SELECTED) } {$item}<br>{/if}
{/foreach}
{/if}
</td>
</tr>
</table>
</td>
<td >
Handlowiec:
{if $TRADER_SELECTED ==''}
Wszyscy
{else}
{foreach from=$TRADERS_LIST key="key" item="item"}
{if @in_array($key, $TRADER_SELECTED) } {$item}<br>{/if}
{/foreach}
{/if}
</td>
</tr>
<tr>
{if $PRODUCT_CATEGORY_ID!=""}
<td >
Kategoria:
</td>
<td>
{$PRODUCT_CATEGORY_NAME}
</td>
{/if}
</tr>
</tbody>
</table>
<table id="myTable" class="tablesorter">
<thead>
<tr>
<th>
Indeks
</th>
<th>
{$MOD.LBL_NAME}
</th>
<th width="10%">
{$MOD.LBL_QUANTITY}
</th>
<th width="5%">
{$MOD.LBL_JM}
</th>
<th width="10%">
Zakup Netto
</th>
<th width="10%">
Waga jedn. netto
</th>
<th width="10%">
Waga ogółem netto
</th>
</tr>
</thead>
<tbody>
{foreach from=$DATA item=item key=item_name}
{if $item.quantity eq 0}
{else}
<tr>
<td >
{$item.code}
</td>
<td>
{$item.name}
</td>
<td class="quantity" style="text-align:right;">
{$item.quantity|number_format:2:",":""}
</td>
<td>
{$item.jm_name}
</td>
<td class="money" style="text-align:right;">
{$item.total_netto|number_format:2:",":"."}
{assign var=summary_netto value=$summary_netto+$item.total_netto}
</td>
<td class="quantity" style="text-align:right;">
{$item.position_weight|number_format:6:",":""}
</td>
<td class="quantity" style="text-align:right;">
{$item.position_total_weight|number_format:6:",":""}
</td>
</tr>
{/if}
{/foreach}
</tbody>
<tfoot>
<tr>
<td colspan="2">
{$MOD.LBL_SUMMARY}
</td>
<td class="money">
{$TOTAL3|number_format:2:",":""}
</td>
<td class="money">
</td>
<td class="money">
{$summary_netto|number_format:2:",":"."}
</td>
<td class="money">
</td>
<td class="money">
{$TOTAL4|number_format:6:",":""}
</td>
</tr>
</tfoot>
</table>
</body>
</html>

View File

@@ -0,0 +1,252 @@
<script type="text/javascript" src="modules/EcmReports/javascript/mzVatPurchases.js"></script>
<link rel="stylesheet" type="text/css" href="modules/EcmReports/css/SearchTable.css"/>
<script src="include/jQuery/tablesorter/jquery.tablesorter.min.js"></script>
<link class="theme" rel="stylesheet" href="include/jQuery/tablesorter/themes/blue/style.css">
<table id="tableMenu" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td>
<img src="themes/Sugar/images/EcmProducts.gif" style="margin-top: 3px; margin-right: 3px;" width="16" border="0" height="16">
</td>
<td>
<h2 id="raport_name">Raport ilościowy zakupu</h2>
</td>
</tr>
</table>
<form action="index.php" method="get" name="ReportSalesByProduct">
<input type="hidden" name="module" value="EcmReports" />
<input type="hidden" name="action" value="mzVatPurchases"/>
<input type="hidden" name="parentTab" value="Raporty" />
<table style="width:100%" class="edit view" id="SearchTable">
<tbody>
<tr>
<td>
{$MOD.LBL_DATE_FROM}:
<input id="date_from" name="date_from" type="text" maxlength="10" size="11" title="{$MOD.LBL_DATE_FROM}" value="{$date_from_value}">
<img id="date_from_trigger" src="themes/default/images/jscalendar.gif">
</td>
<td rowspan='2'>
<table>
<tr>
<td>
Grupa:
</td>
<td>
<select multiple name="product_group[]" title="{$MOD.TIP_MULTIPLE}" size="6">
{foreach from=$APP_LIST_STRINGS.ecmproducts_group_ks_dom key="key" item="item"}
<option
value="{$key}"
{if @in_array($key, $PRODUCT_GROUP_SELECTED) } selected="true" {/if}>
{$item}
</option>
{/foreach}
</select>
</td>
</tr>
</table>
</td>
<td rowspan='2'>
<table>
<tr>
<td>
Grupa 2:
</td>
<td>
<select multiple name="product_group_2[]" title="{$MOD.TIP_MULTIPLE}" size="6">
{foreach from=$APP_LIST_STRINGS.ecmproducts_group2_ks_dom key="key" item="item"}
<option
value="{$key}"
{if @in_array($key, $PRODUCT_GROUP_SELECTED_2) } selected="true" {/if}>
{$item}
</option>
{/foreach}
</select>
</td>
</tr>
</table>
</td>
<td rowspan='2'>
<table>
<tr>
<td>
{$MOD.LBL_STOCK}:
</td>
<td>
<select multiple name="stocks[]" title="{$MOD.TIP_MULTIPLE}" size="6">
{foreach from=$STOCK_LIST key="key" item="item"}
<option
value="{$key}"
{if @in_array($key, $STOCK_SELECTED) } selected="true" {/if}>
{$item}
</option>
{/foreach}
</select>
</td>
</tr>
</table>
<br>
<p>
Kategoria produktu:
<input type="hidden" id="product_category_id" name="product_category_id" value="{$PRODUCT_CATEGORY_ID}">
<input type="text" id="product_category_name" name="product_category_name" value="{$PRODUCT_CATEGORY_NAME}">
<button
type="button"
id="selectProduct"
value="{$APP.LBL_ADD_BUTTON}"
title="{$MOD.TIP_CHOOSE_ACCOUNT}">
<img src="{sugar_getimagepath file="id-ff-select.png"}">
</button>
<button
type="button"
id="clearProduct"
value="{$MOD.LBL_CLEAR}"
title="{$MOD.LBL_CLEAR}">
<img src="{sugar_getimagepath file='id-ff-clear.png'}">
</button>
</p>
</td>
<td rowspan='2'>
<table>
<tr>
<td>
Typ:
</td>
<td>
<select multiple name="account_type[]" title="{$MOD.TIP_MULTIPLE}" size="6">
{foreach from=$ACCOUNT_LIST key="key" item="item"}
<option
value="{$key}"
{if @in_array($key, $ACCOUNT_SELECTED) } selected="true" {/if}>
{$item}
</option>
{/foreach}
</select>
</td>
</tr>
</table>
</td>
<td rowspan='2'>
<p>
Handlowiec:
{html_options id=trader name=trader[] multiple=true options=$TRADERS_LIST selected=$TRADER_SELECTED}
</p><br>
<p>
{$MOD.LBL_CONTRACTOR}:
<input type="hidden" id="account_id" name="account_id" value="{$ACCOUNT_ID}">
<input type="text" id="account_name" name="account_name" value="{$ACCOUNT_NAME}">
<button
type="button"
id="selectAccount"
value="{$APP.LBL_ADD_BUTTON}"
title="{$MOD.TIP_CHOOSE_ACCOUNT}">
<img src="{sugar_getimagepath file="id-ff-select.png"}">
</button>
<button
type="button"
id="clearAccount"
value="{$MOD.LBL_CLEAR}"
title="{$MOD.LBL_CLEAR}">
<img src="{sugar_getimagepath file='id-ff-clear.png'}">
</button>
</p>
</td>
</tr>
<tr>
<td> {$MOD.LBL_DATE_TO}:
<input id="date_to" name="date_to" type="text" maxlength="10" size="11" title="{$MOD.LBL_DATE_TO}" value="{$date_to_value}">
<img id="date_to_trigger" src="themes/default/images/jscalendar.gif">
</td>
</tr>
</tbody>
</table>
<input class="button" name="submit" value="{$MOD.LBL_EXECUTE}" type="submit">
<input class="button" name="clear" value="{$MOD.LBL_CLEAR}" type="button" onclick="location.href='index.php?module=EcmReports&action=mzVatPurchases';">
<input id="pdf" class="button" name="pdf" value="PDF" type="button" onclick="generatePDF()">
<!-- <input id="pdf" class="button" name="pdf" value="XLS" type="button" onclick="generateXLS()"> -->
</form>
<table id="myTable" class="tablesorter">
<thead>
<tr>
<th class='sortby'>
Indeks
</th>
<th class='sortby'>
{$MOD.LBL_NAME}
</th>
<th width="10%" class='sortby'>
{$MOD.LBL_QUANTITY}
</th>
<th width="5%" class='sortby'>
{$MOD.LBL_JM}
</th>
<th width="10%" class='sortby'>
Zakup Netto
</th>
<th width="10%" class='sortby'>
Waga jedn. netto
</th>
<th width="10%" class='sortby'>
Waga ogółem netto
</th>
</tr>
</thead>
<tbody>
{foreach from=$DATA item=item key=item_name}
{if $item.quantity eq 0}
{else}
<tr>
<td >
{$item.code}
</td>
<td >
{$item.name}
</td>
<td class="quantity" style="text-align:right;">
{$item.quantity|number_format:2:",":""}
</td>
<td>
{$item.jm_name}
</td>
<td class="money" style="text-align:right;">
{$item.total_netto|number_format:2:",":"."}
</td>
<td class="" style="text-align:right;">
{$item.position_weight|number_format:6:",":""}
</td>
<td class="" style="text-align:right;">
{$item.position_total_weight|number_format:6:",":""}
</td>
</tr>
{/if}
{/foreach}
</tbody>
<tfoot>
<tr>
<td colspan="2">
{$MOD.LBL_SUMMARY}
</td>
<td colspan="1" class="money" style="text-align:right;">
{$TOTAL3|number_format:2:",":""}
</td>
<td colspan="1">
</td>
<td class="money" style="text-align:right;">
{$TOTAL|number_format:6:",":"."}
</td>
<td class="money">
</td>
<td class="money" style="text-align:right;">
{$TOTAL4|number_format:6:",":""}
</td>
</tr>
</tfoot>
</table>

File diff suppressed because it is too large Load Diff