Files
admin-php-module/web/views/clients/index.html
miroman-afk fb46c8e739 v.2.27
Fixed reports
2023-05-02 15:21:54 +03:00

492 lines
28 KiB
HTML

<div id="container-floating">
<div class="nd1 nds" data-toggle="tooltip" data-placement="left" title="Сформировать файл"
ng-click="createClientFile()" style="background-color: #3c80f6" onmouseenter="$(this).tooltip('show')">
<i class="material-icons">cloud_download</i>
</div>
<div id="floating-button" data-toggle="tooltip" data-placement="left" title="Действия"
onmouseenter="$(this).tooltip('show')">
<p class="plus"><i class="material-icons">&#xE5D2;</i></p>
<p class="edit"><i class="material-icons">&#xE5CD;</i></p>
</div>
</div>
<div class="app-body-inner">
<div class="row-col row-col-xs b-b">
<div class="col-sm-3 b-r">
<div class="row-col">
<div class="row-row">
<div class="row-body scrollable hover">
<div class="row-inner">
<div class="nav nav-pills nav-stacked m-t-sm menus">
<a class="nav-link no_selection" ng-repeat="group in groups" sglclick="openGroup(group)"
ios-dblclick="editGroup(group)"
ng-class="group.id == currentGroup ? 'bold-line' : ''">
<span ng-class="group.id == currentGroup ? 'bold' : ''">{{ group.name }}</span>
</a>
</div>
</div>
</div>
</div>
<div class="p-a text-center">
<a class="btn btn-md btn-outline rounded b-info text-info" ng-click="openFormCreateGroup()">
<i class="fa fa-plus fa-fw m-r-xs"></i>Группа
</a>
<p></p>
<a class="btn btn-md btn-outline rounded b-info text-info" ng-click="openFormCreateBarcode()">
<i class="fa fa-plus fa-fw m-r-xs"></i>Дисконтные карты
</a>
</div>
</div>
</div>
<div class="col-sm-3 light bg b-r">
<div class="row-col">
<div class="p-a-xs b-b">
<div class="input-group">
<span class="input-group-addon no-border no-bg">
<i class="fa fa-search"></i>
</span>
<input type="text" class="form-control no-border no-bg" placeholder="Поиск гостей..."
ng-keyup="clientsSearch()"
ng-model="search.query">
<span class="input-group-addon no-border no-bg search-clear" ng-click="clearSearchInput()">
<i class="fa fa-times"></i>
</span>
</div>
</div>
<div class="row-row">
<div class="row-body scrollable hover">
<div class="row-inner">
<div class="list">
<div class="list-item pointer no_selection" ng-repeat="client in clients"
sglclick="openClientInfo(client)" ios-dblclick="editClient(client, currentGroup)"
ng-class="client.id == currentClientId ? 'active' : ''">
<div class="list-left">
<span class="w-30">
<i class="material-icons" style="font-size: 30px;">person</i>
</span>
</div>
<div class="list-body">
{{client.name}}
<small class="block text-muted">{{ client.phone }}</small>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="p-a text-center">
<div class="btn-group" role="group">
<a class="btn btn-md btn-outline rounded b-info text-info"
ng-class="{disabled:currentPage === 1}" ng-click="pager(currentPage=currentPage-1)"><</a>
<a class="btn btn-md btn-outline rounded b-info text-info" ng-class="{disabled:currentPage}">{{currentPage}}/{{pages}}</a>
<a class="btn btn-md btn-outline rounded b-info text-info"
ng-class="{disabled:currentPage === pages}" ng-click="pager(currentPage=currentPage+1)">></a>
</div>
</div>
<div class="text-center">
<a class="btn btn-md btn-outline rounded b-info text-info" ng-click="openFormCreateClient()">
<i class="fa fa-plus fa-fw m-r-xs"></i>Гость
</a>
<p></p>
</div>
</div>
</div>
<div class="col-sm-7">
<div class="padding" ng-if="currentClientId > 0">
<div class="box">
<div class="item">
<div class="p-a-md">
<div class="row m-t">
<div class="col-sm-12">
<div class="col-sm-11">
<a href="" class="pull-left m-r-md">
<span class="avatar w-96">
<img src="../views/clients/images/client.png">
<i class="on b-white"></i>
</span>
</a>
<div class="clear m-b">
<h3 class="m-0 m-b-xs">{{currentClient.name}} <span ng-if="currentClient.info.is_block">(КЛИЕНТ ЗАБЛОКИРОВАН)</span></h3>
<p class="text-muted">
<span class="m-r">
<i class="fa fa-phone m-r-sm text-muted"></i>{{currentClient.info.phone}}
</span>
<small>
<i class="fa fa-map-marker m-r-xs"></i>{{currentClient.info.address}}
</small>
</p>
</div>
</div>
<div class="col-sm-1">
<div class="dropdown inline">
<button class="btn white dropdown-toggle" data-toggle="dropdown"
aria-expanded="true"><i class="fa fa-bars"></i></button>
<div class="dropdown-menu dropdown-menu-scale pull-right">
<a class="dropdown-item" href="" ng-if="!currentClient.info.is_block" ng-click="lockClient(currentClient)">Заблокировать</a>
<a class="dropdown-item" href="" ng-if="currentClient.info.is_block" ng-click="unlockClient(currentClient)">Разблокировать</a>
<a class="dropdown-item" data-toggle="modal"
data-target="#client-confirm-delete">Удалить</a>
</div>
</div>
</div>
</div>
<div class="p-y text-center text-sm-center col-sm-12">
<a href="" class="inline p-x text-center">
<span class="h5 block m-0">{{currentClient.info.order_sum | curr}} BYN</span>
<small class="text-xs text-muted">Сумма заказов</small>
</a>
<a href="" class="inline p-x b-l text-center">
<span class="h5 block m-0">{{currentClient.info.order_count}}</span>
<small class="text-xs text-muted">Кол-во заказов</small>
</a>
<a href="" class="inline p-x b-l b-r text-center"
ng-if="currentClient.info.presale > 0">
<span class="h5 block m-0">{{currentClient.info.presale | curr}} BYN</span>
<small class="text-xs text-muted">Аванс</small>
</a>
<a href="" class="inline p-x text-center" ng-if="currentClient.info.bonus > 0">
<span class="h5 block m-0">{{currentClient.info.bonus}}</span>
<small class="text-xs text-muted">Бонусы</small>
</a>
</div>
</div>
</div>
</div>
<div class="dker p-x">
<div class="row">
<div class="col-lg-12 col-sm-9">
<div class="p-y-md clearfix nav-active-primary">
<ul class="nav nav-pills nav-sm" id="client_tab">
<li class="nav-item">
<a class="nav-link active" id="actions_tab" href="" data-toggle="tab" data-target="#actions"
aria-expanded="true">Журнал действий</a>
</li>
<li class="nav-item">
<a class="nav-link" id="orders_tab" href="" data-toggle="tab" data-target="#orders"
aria-expanded="false" ng-click="getOrders(currentClient.id)">Заказы</a>
</li>
<li class="nav-item">
<a class="nav-link" id="info_tab" href="" data-toggle="tab" data-target="#info"
aria-expanded="false">Информация</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="padding">
<div class="row">
<div class="col-sm-8 col-lg-12">
<div class="tab-content">
<div class="tab-pane p-v-sm active" id="actions" aria-expanded="true">
<div class="streamline b-l m-b m-l"
style="width:auto;max-height:350px;overflow-y: auto;"
ng-if="clientLogs.length > 0">
<div class="sl-item b-success" ng-repeat="clientLog in clientLogs">
<div class="sl-content">
<div class="sl-date text-muted">{{clientLog.time}}</div>
<p>{{clientLog.action}}</p>
</div>
</div>
</div>
<div class="streamline b-l m-b m-l"
style="width:auto;overflow-y: auto;" ng-if="clientLogs.length == 0">
<div class="sl-item">
<div class="sl-content">
<p>Действия отсутствуют</p>
</div>
</div>
</div>
</div>
<div class="tab-pane p-v-sm" id="orders" aria-expanded="true">
<div class="streamline b-l m-b m-l"
style="width:auto;max-height:350px;overflow-y: auto;"
ng-if="orders.length > 0">
<div class="sl-item b-success" ng-repeat="order in orders">
<div class="row align-items-center" style="margin-right: 0px;">
<div class="sl-content">
<div class="col-lg-12 col-sm-6">
<a ng-click="getItems(order.code, order.opened, order.closed)">
<div class="sl-date text-muted">Заказ открыт:
{{order.opened}}
</div>
<div class="sl-date text-muted"
ng-if="order.closed > '0000-00-00 00:00:00'">Заказ
закрыт:
{{order.closed}}
</div>
<p>Сумма заказа: {{order.order_sum | curr}} BYN <span
ng-if="order.discount > 0">(Скидка: {{order.sale_sum | curr}} BYN)</span>
</p>
</a>
</div>
</div>
</div>
</div>
</div>
<div class="streamline b-l m-b m-l"
style="width:auto;overflow-y: auto;" ng-if="orders.length == 0">
<div class="sl-item">
<div class="sl-content">
<p>Заказы отсутствуют</p>
</div>
</div>
</div>
</div>
<div class="tab-pane p-v-sm" id="info">
<div class="row m-b">
<div class="col-xs-10">
<small class="text-muted">Телефон:</small>
<p>{{currentClient.info.phone}}</p>
</div>
</div>
<div class="row m-b">
<div class="col-xs-10">
<small class="text-muted">Адрес:</small>
<p>{{currentClient.info.address}}</p>
</div>
</div>
<div class="row m-b">
<div class="col-xs-10">
<small class="text-muted">Email:</small>
<p>{{currentClient.info.email}}</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="padding" ng-if="isCreateNewGroup">
<div class="box">
<div class="box-header">
<h3>Создание новой группы</h3>
</div>
<div class="box-tool">
<div class="pull-right">
<a class="btn btn-sm white" ng-click="closeCard()">
<i class="material-icons">clear</i>
</a>
</div>
</div>
<form name="createGroupForm" ng-submit="createGroup()">
<div class="box-body">
<div class="form-group row">
<label class="col-sm-3 form-control-label">Название</label>
<div class="col-sm-9">
<input type="text" class="form-control" ng-model="newGroup.name" required>
</div>
</div>
</div>
<div class="dker p-a">
<div class="row">
<div class="col-sm-12">
<button type="submit" class="btn success p-x-md pull-right"
ng-disabled="createGroupForm.$invalid">Создать
</button>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="padding" ng-if="isCreateNewBarcode">
<div class="box">
<div class="box-header">
<h3>Создание дисконтных карт</h3>
</div>
<div class="box-tool">
<div class="pull-right">
<a class="btn btn-sm white" ng-click="closeCard()">
<i class="material-icons">clear</i>
</a>
</div>
</div>
<form name="createBarcodeForm" ng-submit="createBarcode()">
<div class="box-body">
<div class="form-group row">
<label class="col-sm-3 form-control-label">Выберите группу</label>
<div class="col-sm-9">
<select ng-model="newBarcode.group_id" class="form-control" ng-required="true">
<option ng-repeat="group in groups" value="{{ group.id }}">{{group.name}}
</option>
</select>
</div>
</div>
</div>
<div class="box-body">
<div class="form-group row">
<label class="col-sm-3 form-control-label">Первый штрих код</label>
<div class="col-sm-9">
<input type="text" class="form-control" ng-model="newBarcode.start"
placeholder="200000000001" required>
</div>
</div>
</div>
<div class="box-body">
<div class="form-group row">
<label class="col-sm-3 form-control-label">Последний штрих код</label>
<div class="col-sm-9">
<input type="text" class="form-control" ng-model="newBarcode.end"
placeholder="200000000999" required>
</div>
</div>
</div>
<div class="dker p-a">
<div class="row">
<div class="col-sm-12">
<button type="submit" class="btn success p-x-md pull-right"
ng-disabled="createBarcodeForm.$invalid">Создать
</button>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="padding" ng-if="isCreateNewClient">
<div class="box">
<div class="box-header">
<h3>Создание нового гостя</h3>
</div>
<div class="box-tool">
<div class="pull-right">
<a class="btn btn-sm white" ng-click="closeCard()">
<i class="material-icons">clear</i>
</a>
</div>
</div>
<form name="createClientForm" ng-submit="createClient()">
<div class="box-body">
<div class="form-group row">
<label class="col-sm-3 form-control-label">Имя</label>
<div class="col-sm-9">
<input type="text" class="form-control" ng-model="newClient.name" required>
</div>
</div>
<div class="form-group row">
<label class="col-sm-3 form-control-label">Телефон</label>
<div class="col-sm-9">
<input type="text" class="form-control" ng-model="newClient.phone"
ui-mask="+375 (99) 999-99-99">
</div>
</div>
<div class="form-group row">
<label class="col-sm-3 form-control-label">Адрес</label>
<div class="col-sm-9">
<input type="text" class="form-control" ng-model="newClient.address">
</div>
</div>
<div class="form-group row">
<label class="col-sm-3 form-control-label">Email</label>
<div class="col-sm-9">
<input type="text" class="form-control" ng-model="newClient.email">
</div>
</div>
<div class="form-group row">
<label class="col-sm-3 form-control-label">Штрих код</label>
<div class="col-sm-9">
<input type="text" class="form-control" ng-model="newClient.barcode">
</div>
</div>
<div class="form-group form-group-inline row">
<label class="col-sm-3 form-group-label" for="specialPriceCheck">Скидка по
себестоимости </label>
<div class="col-sm-9">
<input class="form-group-input" type="checkbox" value="" id="specialPriceCheck"
ng-model="newClient.special_price">
</div>
</div>
<div class="form-group form-group-inline row">
<label class="col-sm-3 form-group-label" for="employeeCheck">Сотрудник</label>
<div class="col-sm-9">
<input class="form-group-input" type="checkbox" value="" id="employeeCheck"
ng-model="newClient.employee">
</div>
</div>
</div>
<div class="dker p-a">
<div class="row">
<div class="col-sm-12">
<button type="submit" class="btn success p-x-md pull-right"
ng-disabled="createClientForm.$invalid">Создать
</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="edit-client" data-backdrop="true" ng-if="!readonlyMode">
<div ui-include="'../views/clients/edit_client.html'"></div>
</div>
<div class="modal fade" id="edit-group" data-backdrop="true" ng-if="!readonlyMode">
<div ui-include="'../views/clients/edit_group.html'"></div>
</div>
<div id="group-confirm-delete" class="modal confirm-box" data-backdrop="true" style="z-index: 1052">
<div class="bottom white b-b" style="height: 90px">
<div class="confirm-box-body p-lg">
<p>Вы действительно хотите удалить группу?</p>
</div>
<div class="confirm-box-footer">
<button type="button" class="btn dark-white p-x-md" data-dismiss="modal">Нет</button>
<button type="button" class="btn danger p-x-md" ng-click="removeGroup()">Да</button>
</div>
</div>
</div>
<div id="client-confirm-delete" class="modal confirm-box" data-backdrop="true" style="z-index: 1052">
<div class="bottom white b-b" style="height: 90px">
<div class="confirm-box-body p-lg">
<p>Вы действительно хотите удалить клиента?</p>
</div>
<div class="confirm-box-footer">
<button type="button" class="btn dark-white p-x-md" data-dismiss="modal">Нет</button>
<button type="button" class="btn danger p-x-md" ng-click="removeClient(currentClient)">Да</button>
</div>
</div>
</div>
<div class="modal fade" id="order" data-backdrop="true">
<div ui-include="'../views/clients/order.html'"></div>
</div>