use yii_app\records\AdminPayroll;
use yii_app\records\AdminPayrollValues;
use yii_app\records\AdminPayrollValuesDict;
+use yii_app\records\Sales;
class IndexAction extends Action
{
$partUrl = '&YearMonthSearchForm[year]=' . $yearSelect . '&YearMonthSearchForm[month]=' . $monthSelect;
+ $monthSelectPad0 = $monthSelect < 10 ? '0' . $monthSelect : $monthSelect;
+ $t = date('t', strtotime(date($yearSelect . '-' . $monthSelectPad0 . '-01')));
+ $dateSelectMonthStart = date($yearSelect . '-' . $monthSelectPad0 . '-01 00:00:00');
+ $dateSelectMonthEnd = date($yearSelect . '-' . $monthSelectPad0 . '-' . $t .' 23:59:59');
+ $salesOffline = Sales::find()->alias('s')
+ ->select(['SUM(s.summ - s.skidka) as total', 's.store_id'])
+ ->joinWith('saleCheck')
+ ->andWhere(['between' , 's.date', $dateSelectMonthStart, $dateSelectMonthEnd])
+ ->andWhere(['s.operation' => Sales::OPERATION_SALE])
+ ->andWhere([
+ 'and',
+ ['s.order_id' => ['', '0']],
+ [
+ 'or',
+ 'sc.order_id IS NULL',
+ ['sc.order_id' => ['', '0']]
+ ]
+ ])
+ ->groupBy(['s.store_id'])
+ ->indexBy('store_id')
+ ->asArray()->all();
+
+ $salesOfflineReturn = Sales::find()->alias('s')
+ ->select(['SUM(s.summ - s.skidka) as total', 's.store_id'])
+ ->joinWith('saleCheck')
+ ->andWhere(['between' , 's.date', $dateSelectMonthStart, $dateSelectMonthEnd])
+ ->andWhere(['s.operation' => Sales::OPERATION_RETURN])
+ ->andWhere([
+ 'and',
+ ['s.order_id' => ['', '0']],
+ [
+ 'or',
+ 'sc.order_id IS NULL',
+ ['sc.order_id' => ['', '0']]
+ ]
+ ])
+ ->groupBy(['s.store_id'])
+ ->indexBy('store_id')
+ ->asArray()->all();
+
+ $salesOnline = Sales::find()->select(['SUM(summ - skidka) as total', 'store_id'])
+ ->andWhere(['between' , 'date', $dateSelectMonthStart, $dateSelectMonthEnd])
+ ->andWhere(['operation' => Sales::OPERATION_SALE])
+ ->groupBy(['store_id'])
+ ->indexBy('store_id')
+ ->asArray()->all();
+
+ $salesOnlineReturn = Sales::find()->select(['SUM(summ - skidka) as total', 'store_id'])
+ ->andWhere(['between' , 'date', $dateSelectMonthStart, $dateSelectMonthEnd])
+ ->andWhere(['operation' => Sales::OPERATION_RETURN])
+ ->groupBy(['store_id'])
+ ->indexBy('store_id')
+ ->asArray()->all();
return $this->controller->render('/payroll/index', [
'payrollStore' => $payrollStore,
'sumColumnByAlias' => $sumColumnByAlias,
'monthNameSelect' => $monthNameSelect,
'partUrl' => $partUrl,
+ 'salesOffline' => $salesOffline,
+ 'salesOfflineReturn' => $salesOfflineReturn,
+ 'salesOnline' => $salesOnline,
+ 'salesOnlineReturn' => $salesOnlineReturn,
]);
}
}
\ No newline at end of file
/* @var $monthNameSelect string */
/* @var $partUrl string */
/* @var $yearMonthSearchForm YearMonthSearchForm*/
-
+/* @var $salesOffline array */
+/* @var $salesOfflineReturn array */
+/* @var $salesOnline array */
+/* @var $salesOnlineReturn array */
$this->title = 'Зарплаты по магазинам за ' . $monthNameSelect;
$this->params['breadcrumbs'][] = $this->title;
<thead>
<th>№</th>
<th>Магазин</th>
+ <th>Продажи за месяц без доставки</th>
+ <th>Продажи за месяц с доставкой</th>
';
$keyNumHead = 0;
foreach ($payrollStoreColumn as $key => $row) {
echo "<th class='toggle-column-" . $keyNumHead . "'>" . $row . "</th>";
$keyNumHead++;
+ if ($keyNumHead == 1) {
+ echo "<th class='toggle-column-" . $keyNumHead . "'>% ФОТ</th>";
+ $keyNumHead++;
+ echo "<th class='toggle-column-" . $keyNumHead . "'>% ФОТ с доставкой</th>";
+ $keyNumHead++;
+ }
}
echo '
echo "<tr>
<td>" . $num . " </td>
<td style='white-space: normal;' ><a href='/payroll/store?YearMonthSearchForm[store_id]=" . $payrollStoreRow['store']['id'] . $partUrl . "'>" . $payrollStoreRow['store']['name'] . " </a></td>";
+ $salesOfflineAndReturn = (isset($salesOffline[$key]) ? $salesOffline[$key]['total'] : 0) - (isset($salesOfflineReturn[$key]) ? $salesOfflineReturn[$key]['total'] : 0);
+ $salesOnlineAndReturn = (isset($salesOnline[$key]) ? $salesOnline[$key]['total'] : 0) - (isset($salesOnlineReturn[$key]) ? $salesOnlineReturn[$key]['total'] : 0);
+ echo " <td>" . HtmlHelper::getNumberFormat($salesOfflineAndReturn) . "</td>";
+ echo " <td>" . HtmlHelper::getNumberFormat($salesOnlineAndReturn) . "</td>";
$payrollStoreRowColumn = ArrayHelper::getValue($payrollStoreRow, 'column');
$keyNumBody = 0;
- foreach ($payrollStoreRowColumn as $columnValue) {
+ foreach ($payrollStoreRowColumn as $ind => $columnValue) {
echo "<td class='toggle-column-" . $keyNumBody . "'>" . HtmlHelper::getNumberFormat($columnValue) . "</td>";
$keyNumBody++;
+ if ($keyNumBody == 1){
+ $columnValue = $salesOfflineAndReturn > 0 ? $payrollStoreRowColumn['Зарплата сотрудника'] * 100 / $salesOfflineAndReturn : 0;
+ echo "<td class='toggle-column-" . $keyNumBody . "'>" . HtmlHelper::getNumberFormat($columnValue) . "</td>";
+ $keyNumBody++;
+ $columnValue = $salesOnlineAndReturn > 0 ? $payrollStoreRowColumn['Зарплата сотрудника'] * 100 / $salesOnlineAndReturn : 0;
+ echo "<td class='toggle-column-" . $keyNumBody . "'>" . HtmlHelper::getNumberFormat($columnValue) . "</td>";
+ $keyNumBody++;
+ }
}
echo "
</tr>";