work on ui part

This commit is contained in:
Deepak Singh Gusain 2021-12-31 18:27:34 +05:30
parent de746ed6b8
commit 7f3b71c0c0
36 changed files with 2506 additions and 2266 deletions

View File

@ -23,6 +23,7 @@
"dependencies": {
"laravel-echo": "^1.11.3",
"laravel-vue-pagination": "^2.3.1",
"moment": "^2.29.1",
"pusher-js": "^7.0.3",
"vee-validate": "^2.2.15"
}

View File

@ -5,7 +5,8 @@ import Vue from 'vue';
import VeeValidate from 'vee-validate';
import './bootstrap';
import Echo from 'laravel-echo';
import pagination from 'laravel-vue-pagination'
import pagination from 'laravel-vue-pagination';
import moment from 'moment';
/**
* Lang imports.
@ -45,6 +46,7 @@ window.eventBus = new Vue();
window.VeeValidate = VeeValidate;
window.Pusher = require('pusher-js');
window.Echo = Echo;
Vue.prototype.moment = moment;
/**
* Global components.

View File

@ -147,6 +147,7 @@ export default {
});
Echo.channel('notification').listen('.update-notification', (e) => {
console.log(e);
this.notifications.forEach((notification)=>{
if(notification.order_id == e.id){
notification.order.status = e.status;

View File

@ -261,7 +261,7 @@
}
tbody td {
color: rgba(255, 255, 255, 0.8);
border-bottom: 1px solid $seprator;
}
}
}
@ -316,10 +316,10 @@
}
ul{
li{
a:link{
a{
color: rgba(255,255,255,.8);
&:hover{
color: #0041FF;
color: #fff;
}
}
@ -461,18 +461,20 @@
}
.sale-container {
.sale-section {
.secton-title {
color: rgba(255,255,255,.8);
border-bottom: 1px solid #24384c;
}
.section-content {
.row {
.title {
color: rgba(255,255,255,.8);
}
.value {
color: rgba(255,255,255,.8);
.sale{
.sale-section {
.secton-title {
color: rgba(255,255,255,.8);
border-bottom: 1px solid #24384c;
}
.section-content {
.row {
.title {
color: rgba(255,255,255,.8);
}
.value {
color: rgba(255,255,255,.8);
}
}
}
}

View File

@ -760,7 +760,7 @@ body {
margin-bottom: 0;
margin-left: 0px;
padding: 0px;
margin-top: 35px;
margin-top: 16px;
}
.page-title {
@ -813,3 +813,63 @@ body {
width: 100%;
}
}
@media only screen and (max-width: 411px){
.content-container {
.content {
.page-header {
.control-group {
width: 385px;
display: block;
margin-bottom: 0;
margin-left: 0px;
padding: 0px;
margin-top: 16px;
}
}
}
}
}
@media only screen and (max-width: 385px){
.content-container {
.content {
.page-header {
.control-group {
width: 350px;
display: block;
margin-bottom: 0;
margin-left: 0px;
padding: 0px;
margin-top: 16px;
}
}
}
}
}
@media only screen and (max-width: 320px){
.content-container {
.content {
.page-header {
.control-group {
width: 295px;
display: block;
margin-bottom: 0;
margin-left: 0px;
padding: 0px;
margin-top: 16px;
}
}
}
}
}

View File

@ -1,38 +1,45 @@
.sale-container {
.sale-section {
font-size: 16px;
.secton-title {
font-size: 18px;
color: #8e8e8e;
padding: 15px 0;
border-bottom: 1px solid $border-color;
}
.sale{
display: flex;
column-gap: 20px;
.section-content {
display: block;
padding: 20px 0;
.row {
.sale-section {
font-size: 16px;
width: 50%;
.secton-title {
font-size: 18px;
color: #8e8e8e;
padding: 15px 0;
border-bottom: 1px solid $border-color;
}
.section-content {
display: block;
padding: 7px 0;
.title {
width: 200px;
color: $font-color;
letter-spacing: -0.26px;
display: inline-block;
}
.value {
color: $font-color;
letter-spacing: -0.26px;
display: inline-block;
padding: 20px 0;
.row {
display: block;
padding: 7px 0;
.title {
width: 200px;
color: $font-color;
letter-spacing: -0.26px;
display: inline-block;
}
.value {
color: $font-color;
letter-spacing: -0.26px;
display: inline-block;
}
}
}
}
}
}
.table {
.qty-row {
display: block;
@ -119,4 +126,29 @@
span {
margin-left: 2px;
}
}
@media only screen and (max-width: 768px){
.sale-container {
.sale{
display: block;
.sale-section {
width: 100%;
}
}
.summary-comment-container{
.comment-container{
width: 100%;
form{
.control-group{
width: 100%;
}
}
}
}
}
}

View File

@ -598,6 +598,7 @@ return [
'save' => 'Save',
'cancel' => 'Cancel',
'saved-inventory-message' => 'Product inventory saved successfully.',
'image-size' => 'Image resolution should be like 640px X 640px'
],
'attributes' => [
@ -700,6 +701,8 @@ return [
'image' => 'Image',
'filterable-attributes' => 'Filterable Attributes',
'attributes' => 'Attributes',
'image-size' => 'Image resolution should be like 300px X 168px',
'image-size-logo' => 'Image resolution should be like 20px X 20px'
],
],
@ -878,6 +881,8 @@ return [
'maintenance-mode' => 'Maintenance Mode',
'maintenance-mode-text' => 'Message',
'allowed-ips' => 'Allowed IPs',
'logo-size' => 'Image resolution should be like 192px X 50px',
'favicon-size' => 'Image resolution should be like 16px X 16px'
],
'sliders' => [
@ -898,6 +903,7 @@ return [
'delete-fail' => 'Slider item successfully deleted',
'expired-at' => 'Expire Date',
'sort-order' => 'Sort Order',
'image-size' => 'Image resolution should be like 1920px X 550px'
],
'tax-categories' => [
@ -1558,6 +1564,9 @@ return [
'set-order-status' => 'Set the order status after creating the invoice to',
'generate-invoice-applicable' => 'Applicable if automatic generate invoice is enabled',
'records-found' => 'Record(s) found',
'logo-size' => 'Image resolution should be like 112px X 41px',
'favicon-size' => 'Image resolution should be like 16px X 16px',
'invoice-logo-size' => 'Image resolution should be like 192px X 50px'
],
],

View File

@ -100,6 +100,8 @@
@php echo str_replace($key, 'Image', $message[0]); @endphp
@endforeach
</span>
<span class="control-info mt-10">{{ __('admin::app.catalog.categories.image-size') }}</span>
</div>
{!! view_render_event('bagisto.admin.catalog.category.create_form_accordian.description_images.controls.after') !!}

View File

@ -20,6 +20,8 @@
@endphp
@endforeach
</span>
<span class="control-info mt-10">{{ __('admin::app.catalog.products.image-size') }}</span>
</div>
{!! view_render_event('bagisto.admin.catalog.product.edit_form_accordian.images.controls.after', ['product' => $product]) !!}

View File

@ -7,7 +7,10 @@
@if (core()->getConfigData('general.design.admin_logo.logo_image', core()->getCurrentChannelCode()))
<img src="{{ \Illuminate\Support\Facades\Storage::url(core()->getConfigData('general.design.admin_logo.logo_image', core()->getCurrentChannelCode())) }}" alt="{{ config('app.name') }}" style="height: 40px; width: 110px;"/>
@else
<img src="{{ asset('vendor/webkul/ui/assets/images/logo.png') }}" alt="{{ config('app.name') }}"/>
<default-image
light-theme-image-url="{{ asset('vendor/webkul/ui/assets/images/logo.png') }}"
dark-theme-image-url="{{ asset('vendor/webkul/ui/assets/images/logo_light.png') }}"
></default-image>
@endif
</a>
</div>
@ -36,43 +39,7 @@
view-all-title="{{ __('admin::app.notification.view-all') }}"
get-read-all-url="{{ route('admin.notification.read-all') }}"
read-all-title="{{ __('admin::app.notification.read-all') }}">
</notification>
<div class="profile-info">
@php
$allLocales = core()->getAllLocales()->pluck('name', 'code');
$currentLocaleCode = core()->getRequestedLocaleCode('admin_locale');
@endphp
<div class="dropdown-toggle">
<div style="display: inline-block; vertical-align: middle;">
<span class="name">
{{ __('admin::app.datagrid.locale') }}
</span>
<span class="role">
{{ $allLocales[$currentLocaleCode] }}
</span>
</div>
<i class="icon arrow-down-icon active"></i>
</div>
<div class="dropdown-list bottom-right">
<div class="dropdown-container">
<ul>
@foreach ($allLocales as $code => $name)
<li>
<a href="{{ url()->current() . '?' . http_build_query(array_merge(request()->all(), ['admin_locale' => $code])) }}">
{{ $name }}
</a>
</li>
@endforeach
</ul>
</div>
</div>
</div>
</notification>
<div class="profile-info">
<div class="dropdown-toggle">
@ -94,9 +61,6 @@
<div class="dropdown-container">
<label>{{ __('admin::app.layouts.account-title') }}</label>
<ul>
<li>
<a href="{{ route('shop.home.index') }}" target="_blank">{{ __('admin::app.layouts.visit-shop') }}</a>
</li>
<li>
<a href="{{ route('admin.account.edit') }}">{{ __('admin::app.layouts.my-account') }}</a>
</li>

View File

@ -31,191 +31,193 @@
<accordian :title="'{{ __('admin::app.sales.orders.order-and-account') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.invoices.order-id') }}
</span>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $order->id) }}">#{{ $order->increment_id }}</a>
</span>
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.invoices.order-id') }}
</span>
<span class="value">
{{ $order->created_at }}
</span>
</div>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $order->id) }}">#{{ $order->increment_id }}</a>
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
<span class="value">
{{ $order->created_at }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
</div>
</div>
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.customer-name') }}
</span>
<span class="value">
{{ $order->customer_full_name }}
</span>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.email') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.customer-name') }}
</span>
<span class="value">
{{ $order->customer_email }}
</span>
<span class="value">
{{ $order->customer_full_name }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.email') }}
</span>
<span class="value">
{{ $order->customer_email }}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</accordian>
<accordian :title="'{{ __('admin::app.sales.orders.address') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
</div>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->billing_address])
</div>
</div>
@if ($order->shipping_address)
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
</div>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
@include ('admin::sales.address', ['address' => $order->billing_address])
</div>
</div>
@endif
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
</div>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
</div>
</div>
@endif
</div>
</div>
</accordian>
<accordian :title="'{{ __('admin::app.sales.orders.payment-and-shipping') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.payment-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.payment-method') }}
</span>
<span class="value">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.currency') }}
</span>
<span class="value">
{{ $order->order_currency_code }}
</span>
</div>
@php $additionalDetails = \Webkul\Payment\Payment::getAdditionalDetails($order->payment->method); @endphp
@if (! empty($additionalDetails))
<div class="row">
<span class="title">
{{ $additionalDetails['title'] }}
</span>
<span class="value">
{{ $additionalDetails['value'] }}
</span>
</div>
@endif
</div>
</div>
@if ($order->shipping_address)
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-info') }}</span>
<span>{{ __('admin::app.sales.orders.payment-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-method') }}
{{ __('admin::app.sales.orders.payment-method') }}
</span>
<span class="value">
{{ $order->shipping_title }}
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-price') }}
{{ __('admin::app.sales.orders.currency') }}
</span>
<span class="value">
{{ core()->formatBasePrice($order->base_shipping_amount) }}
{{ $order->order_currency_code }}
</span>
</div>
@php $additionalDetails = \Webkul\Payment\Payment::getAdditionalDetails($order->payment->method); @endphp
@if (! empty($additionalDetails))
<div class="row">
<span class="title">
{{ $additionalDetails['title'] }}
</span>
<span class="value">
{{ $additionalDetails['value'] }}
</span>
</div>
@endif
</div>
</div>
@endif
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-method') }}
</span>
<span class="value">
{{ $order->shipping_title }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-price') }}
</span>
<span class="value">
{{ core()->formatBasePrice($order->base_shipping_amount) }}
</span>
</div>
</div>
</div>
@endif
</div>
</div>
</accordian>
@ -223,55 +225,56 @@
<div slot="body">
<div class="table">
<table>
<thead>
<tr>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.invoices.qty-ordered') }}</th>
<th>{{ __('admin::app.sales.invoices.qty-to-invoice') }}</th>
</tr>
</thead>
<div class="table-responsive">
<table>
<thead>
<tr>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.invoices.qty-ordered') }}</th>
<th>{{ __('admin::app.sales.invoices.qty-to-invoice') }}</th>
</tr>
</thead>
<tbody>
<tbody>
@foreach ($order->items as $item)
@if ($item->qty_to_invoice > 0)
<tr>
<td>{{ $item->getTypeInstance()->getOrderedItem($item)->sku }}</td>
<td>
{{ $item->name }}
@foreach ($order->items as $item)
@if ($item->qty_to_invoice > 0)
<tr>
<td>{{ $item->getTypeInstance()->getOrderedItem($item)->sku }}</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ $item->qty_ordered }}</td>
<td>
<div class="control-group" :class="[errors.has('invoice[items][{{ $item->id }}]') ? 'has-error' : '']">
<input type="text" v-validate="'required|numeric|min:0'" class="control" id="invoice[items][{{ $item->id }}]" name="invoice[items][{{ $item->id }}]" value="{{ $item->qty_to_invoice }}" data-vv-as="&quot;{{ __('admin::app.sales.invoices.qty-to-invoice') }}&quot;"/>
<span class="control-error" v-if="errors.has('invoice[items][{{ $item->id }}]')">
@verbatim
{{ errors.first('invoice[items][<?php echo $item->id ?>]') }}
@endverbatim
</span>
</div>
@endif
</td>
<td>{{ $item->qty_ordered }}</td>
<td>
<div class="control-group" :class="[errors.has('invoice[items][{{ $item->id }}]') ? 'has-error' : '']">
<input type="text" v-validate="'required|numeric|min:0'" class="control" id="invoice[items][{{ $item->id }}]" name="invoice[items][{{ $item->id }}]" value="{{ $item->qty_to_invoice }}" data-vv-as="&quot;{{ __('admin::app.sales.invoices.qty-to-invoice') }}&quot;"/>
</td>
</tr>
@endif
@endforeach
<span class="control-error" v-if="errors.has('invoice[items][{{ $item->id }}]')">
@verbatim
{{ errors.first('invoice[items][<?php echo $item->id ?>]') }}
@endverbatim
</span>
</div>
</td>
</tr>
@endif
@endforeach
</tbody>
</table>
</tbody>
</table>
</div>
</div>
</div>
</accordian>

View File

@ -40,130 +40,131 @@
<div class="sale-container">
<accordian :title="'{{ __('admin::app.sales.orders.order-and-account') }}'" :active="true">
<div slot="body">
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.invoices.order-id') }}
</span>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $order->id) }}">#{{ $order->increment_id }}</a>
</span>
</div>
{!! view_render_event('sales.invoice.increment_id.after', ['order' => $order]) !!}
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
<span class="value">
{{ $order->created_at }}
</span>
</div>
{!! view_render_event('sales.invoice.created_at.after', ['order' => $order]) !!}
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
{!! view_render_event('sales.invoice.status_label.after', ['order' => $order]) !!}
<div class="row">
<span class="title">
{{ __('admin::app.sales.invoices.status') }}
</span>
<span class="value">
{{ $invoice->status_label }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
</div>
{!! view_render_event('sales.invoice.channel_name.after', ['order' => $order]) !!}
</div>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.invoices.order-id') }}
</span>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $order->id) }}">#{{ $order->increment_id }}</a>
</span>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
{!! view_render_event('sales.invoice.increment_id.after', ['order' => $order]) !!}
<div class="section-content">
<div class="row">
<span class="title">{{ __('admin::app.sales.orders.customer-name') }}</span>
<span class="value">{{ $invoice->order->customer_full_name }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
{!! view_render_event('sales.invoice.customer_name.after', ['order' => $order]) !!}
<span class="value">
{{ $order->created_at }}
</span>
<div class="row">
<span class="title">{{ __('admin::app.sales.orders.email') }}</span>
<span class="value">{{ $invoice->order->customer_email }}</span>
</div>
{!! view_render_event('sales.invoice.customer_email.after', ['order' => $order]) !!}
</div>
{!! view_render_event('sales.invoice.created_at.after', ['order' => $order]) !!}
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
{!! view_render_event('sales.invoice.status_label.after', ['order' => $order]) !!}
<div class="row">
<span class="title">
{{ __('admin::app.sales.invoices.status') }}
</span>
<span class="value">
{{ $invoice->status_label }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
</div>
{!! view_render_event('sales.invoice.channel_name.after', ['order' => $order]) !!}
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">{{ __('admin::app.sales.orders.customer-name') }}</span>
<span class="value">{{ $invoice->order->customer_full_name }}</span>
</div>
{!! view_render_event('sales.invoice.customer_name.after', ['order' => $order]) !!}
<div class="row">
<span class="title">{{ __('admin::app.sales.orders.email') }}</span>
<span class="value">{{ $invoice->order->customer_email }}</span>
</div>
{!! view_render_event('sales.invoice.customer_email.after', ['order' => $order]) !!}
</div>
</div>
</div>
</div>
</accordian>
@if ($order->billing_address || $order->shipping_address)
<accordian :title="'{{ __('admin::app.sales.orders.address') }}'" :active="true">
<div slot="body" style="display: flex; overflow:auto;">
<div slot="body">
<div class="sale">
@if ($order->billing_address)
<div class="sale-section">
<div class="secton-title" >
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
</div>
@if ($order->billing_address)
<div class="sale-section">
<div class="secton-title" style="width: 380px;">
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->billing_address])
{!! view_render_event('sales.invoice.billing_address.after', ['order' => $order]) !!}
</div>
</div>
@endif
<div class="section-content" style="width: 380px;">
@include ('admin::sales.address', ['address' => $order->billing_address])
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
</div>
{!! view_render_event('sales.invoice.billing_address.after', ['order' => $order]) !!}
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
{!! view_render_event('sales.invoice.shipping_address.after', ['order' => $order]) !!}
</div>
</div>
</div>
@endif
@if ($order->shipping_address)
<div class="sale-section" style="margin: 0 0 0 300px;">
<div class="secton-title" style="width: 400px;">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
</div>
<div class="section-content" style="width: 400px;">
@include ('admin::sales.address', ['address' => $order->shipping_address])
{!! view_render_event('sales.invoice.shipping_address.after', ['order' => $order]) !!}
</div>
</div>
@endif
@endif
</div>
</div>
</accordian>
@endif
@ -172,60 +173,62 @@
<div slot="body">
<div class="table">
<table>
<thead>
<tr>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.orders.price') }}</th>
<th>{{ __('admin::app.sales.orders.qty') }}</th>
<th>{{ __('admin::app.sales.orders.subtotal') }}</th>
<th>{{ __('admin::app.sales.orders.tax-amount') }}</th>
@if ($invoice->base_discount_amount > 0)
<th>{{ __('admin::app.sales.orders.discount-amount') }}</th>
@endif
<th>{{ __('admin::app.sales.orders.grand-total') }}</th>
</tr>
</thead>
<tbody>
@foreach ($invoice->items as $item)
<div class="table-responsive">
<table>
<thead>
<tr>
<td>{{ $item->getTypeInstance()->getOrderedItem($item)->sku }}</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ core()->formatBasePrice($item->base_price) }}</td>
<td>{{ $item->qty }}</td>
<td>{{ core()->formatBasePrice($item->base_total) }}</td>
<td>{{ core()->formatBasePrice($item->base_tax_amount) }}</td>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.orders.price') }}</th>
<th>{{ __('admin::app.sales.orders.qty') }}</th>
<th>{{ __('admin::app.sales.orders.subtotal') }}</th>
<th>{{ __('admin::app.sales.orders.tax-amount') }}</th>
@if ($invoice->base_discount_amount > 0)
<td>{{ core()->formatBasePrice($item->base_discount_amount) }}</td>
<th>{{ __('admin::app.sales.orders.discount-amount') }}</th>
@endif
<td>{{ core()->formatBasePrice($item->base_total + $item->base_tax_amount - $item->base_discount_amount) }}</td>
<th>{{ __('admin::app.sales.orders.grand-total') }}</th>
</tr>
@endforeach
</thead>
</tbody>
</table>
<tbody>
@foreach ($invoice->items as $item)
<tr>
<td>{{ $item->getTypeInstance()->getOrderedItem($item)->sku }}</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ core()->formatBasePrice($item->base_price) }}</td>
<td>{{ $item->qty }}</td>
<td>{{ core()->formatBasePrice($item->base_total) }}</td>
<td>{{ core()->formatBasePrice($item->base_tax_amount) }}</td>
@if ($invoice->base_discount_amount > 0)
<td>{{ core()->formatBasePrice($item->base_discount_amount) }}</td>
@endif
<td>{{ core()->formatBasePrice($item->base_total + $item->base_tax_amount - $item->base_discount_amount) }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<table class="sale-summary">

View File

@ -64,95 +64,97 @@
<accordian :title="'{{ __('admin::app.sales.orders.order-and-account') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
<span class="value">
{{ $order->created_at }}
</span>
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
{!! view_render_event('sales.order.created_at.after', ['order' => $order]) !!}
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
{!! view_render_event('sales.order.status_label.after', ['order' => $order]) !!}
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
</div>
{!! view_render_event('sales.order.channel_name.after', ['order' => $order]) !!}
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.customer-name') }}
</span>
<span class="value">
{{ $order->customer_full_name }}
</span>
</div>
{!! view_render_event('sales.order.customer_full_name.after', ['order' => $order]) !!}
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.email') }}
</span>
<span class="value">
{{ $order->customer_email }}
</span>
</div>
{!! view_render_event('sales.order.customer_email.after', ['order' => $order]) !!}
@if (! is_null($order->customer) && ! is_null($order->customer->group))
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.customers.customers.customer_group') }}
{{ __('admin::app.sales.orders.order-date') }}
</span>
<span class="value">
{{ $order->customer->group->name }}
{{ $order->created_at }}
</span>
</div>
@endif
{!! view_render_event('sales.order.customer_group.after', ['order' => $order]) !!}
{!! view_render_event('sales.order.created_at.after', ['order' => $order]) !!}
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
{!! view_render_event('sales.order.status_label.after', ['order' => $order]) !!}
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
</div>
{!! view_render_event('sales.order.channel_name.after', ['order' => $order]) !!}
</div>
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.customer-name') }}
</span>
<span class="value">
{{ $order->customer_full_name }}
</span>
</div>
{!! view_render_event('sales.order.customer_full_name.after', ['order' => $order]) !!}
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.email') }}
</span>
<span class="value">
{{ $order->customer_email }}
</span>
</div>
{!! view_render_event('sales.order.customer_email.after', ['order' => $order]) !!}
@if (! is_null($order->customer) && ! is_null($order->customer->group))
<div class="row">
<span class="title">
{{ __('admin::app.customers.customers.customer_group') }}
</span>
<span class="value">
{{ $order->customer->group->name }}
</span>
</div>
@endif
{!! view_render_event('sales.order.customer_group.after', ['order' => $order]) !!}
</div>
</div>
</div>
</div>
</accordian>
@ -160,35 +162,35 @@
@if ($order->billing_address || $order->shipping_address)
<accordian :title="'{{ __('admin::app.sales.orders.address') }}'" :active="true">
<div slot="body">
<div class="sale">
@if($order->billing_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
</div>
@if($order->billing_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->billing_address])
{!! view_render_event('sales.order.billing_address.after', ['order' => $order]) !!}
</div>
</div>
@endif
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->billing_address])
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
</div>
{!! view_render_event('sales.order.billing_address.after', ['order' => $order]) !!}
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
{!! view_render_event('sales.order.shipping_address.after', ['order' => $order]) !!}
</div>
</div>
</div>
@endif
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
</div>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
{!! view_render_event('sales.order.shipping_address.after', ['order' => $order]) !!}
</div>
</div>
@endif
@endif
</div>
</div>
</accordian>
@endif
@ -196,167 +198,171 @@
<accordian :title="'{{ __('admin::app.sales.orders.payment-and-shipping') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.payment-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.payment-method') }}
</span>
<span class="value">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.currency') }}
</span>
<span class="value">
{{ $order->order_currency_code }}
</span>
</div>
@php $additionalDetails = \Webkul\Payment\Payment::getAdditionalDetails($order->payment->method); @endphp
@if (! empty($additionalDetails))
<div class="row">
<span class="title">
{{ $additionalDetails['title'] }}
</span>
<span class="value">
{{ $additionalDetails['value'] }}
</span>
</div>
@endif
{!! view_render_event('sales.order.payment-method.after', ['order' => $order]) !!}
</div>
</div>
@if ($order->shipping_address)
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-info') }}</span>
<span>{{ __('admin::app.sales.orders.payment-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-method') }}
{{ __('admin::app.sales.orders.payment-method') }}
</span>
<span class="value">
{{ $order->shipping_title }}
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-price') }}
{{ __('admin::app.sales.orders.currency') }}
</span>
<span class="value">
{{ core()->formatBasePrice($order->base_shipping_amount) }}
{{ $order->order_currency_code }}
</span>
</div>
{!! view_render_event('sales.order.shipping-method.after', ['order' => $order]) !!}
@php $additionalDetails = \Webkul\Payment\Payment::getAdditionalDetails($order->payment->method); @endphp
@if (! empty($additionalDetails))
<div class="row">
<span class="title">
{{ $additionalDetails['title'] }}
</span>
<span class="value">
{{ $additionalDetails['value'] }}
</span>
</div>
@endif
{!! view_render_event('sales.order.payment-method.after', ['order' => $order]) !!}
</div>
</div>
@endif
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-method') }}
</span>
<span class="value">
{{ $order->shipping_title }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-price') }}
</span>
<span class="value">
{{ core()->formatBasePrice($order->base_shipping_amount) }}
</span>
</div>
{!! view_render_event('sales.order.shipping-method.after', ['order' => $order]) !!}
</div>
</div>
@endif
</div>
</div>
</accordian>
<accordian :title="'{{ __('admin::app.sales.orders.products-ordered') }}'" :active="true">
<div slot="body">
<div class="table">
<table>
<thead>
<tr>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.orders.price') }}</th>
<th>{{ __('admin::app.sales.orders.item-status') }}</th>
<th>{{ __('admin::app.sales.orders.subtotal') }}</th>
<th>{{ __('admin::app.sales.orders.tax-percent') }}</th>
<th>{{ __('admin::app.sales.orders.tax-amount') }}</th>
@if ($order->base_discount_amount > 0)
<th>{{ __('admin::app.sales.orders.discount-amount') }}</th>
@endif
<th>{{ __('admin::app.sales.orders.grand-total') }}</th>
</tr>
</thead>
<tbody>
@foreach ($order->items as $item)
<div class="table-responsive">
<table>
<thead>
<tr>
<td>
{{ $item->getTypeInstance()->getOrderedItem($item)->sku }}
</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ core()->formatBasePrice($item->base_price) }}</td>
<td>
<span class="qty-row">
{{ $item->qty_ordered ? __('admin::app.sales.orders.item-ordered', ['qty_ordered' => $item->qty_ordered]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_invoiced ? __('admin::app.sales.orders.item-invoice', ['qty_invoiced' => $item->qty_invoiced]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_shipped ? __('admin::app.sales.orders.item-shipped', ['qty_shipped' => $item->qty_shipped]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_refunded ? __('admin::app.sales.orders.item-refunded', ['qty_refunded' => $item->qty_refunded]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_canceled ? __('admin::app.sales.orders.item-canceled', ['qty_canceled' => $item->qty_canceled]) : '' }}
</span>
</td>
<td>{{ core()->formatBasePrice($item->base_total) }}</td>
<td>{{ $item->tax_percent }}%</td>
<td>{{ core()->formatBasePrice($item->base_tax_amount) }}</td>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.orders.price') }}</th>
<th>{{ __('admin::app.sales.orders.item-status') }}</th>
<th>{{ __('admin::app.sales.orders.subtotal') }}</th>
<th>{{ __('admin::app.sales.orders.tax-percent') }}</th>
<th>{{ __('admin::app.sales.orders.tax-amount') }}</th>
@if ($order->base_discount_amount > 0)
<td>{{ core()->formatBasePrice($item->base_discount_amount) }}</td>
<th>{{ __('admin::app.sales.orders.discount-amount') }}</th>
@endif
<td>{{ core()->formatBasePrice($item->base_total + $item->base_tax_amount - $item->base_discount_amount) }}</td>
<th>{{ __('admin::app.sales.orders.grand-total') }}</th>
</tr>
@endforeach
</table>
</thead>
<tbody>
@foreach ($order->items as $item)
<tr>
<td>
{{ $item->getTypeInstance()->getOrderedItem($item)->sku }}
</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ core()->formatBasePrice($item->base_price) }}</td>
<td>
<span class="qty-row">
{{ $item->qty_ordered ? __('admin::app.sales.orders.item-ordered', ['qty_ordered' => $item->qty_ordered]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_invoiced ? __('admin::app.sales.orders.item-invoice', ['qty_invoiced' => $item->qty_invoiced]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_shipped ? __('admin::app.sales.orders.item-shipped', ['qty_shipped' => $item->qty_shipped]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_refunded ? __('admin::app.sales.orders.item-refunded', ['qty_refunded' => $item->qty_refunded]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_canceled ? __('admin::app.sales.orders.item-canceled', ['qty_canceled' => $item->qty_canceled]) : '' }}
</span>
</td>
<td>{{ core()->formatBasePrice($item->base_total) }}</td>
<td>{{ $item->tax_percent }}%</td>
<td>{{ core()->formatBasePrice($item->base_tax_amount) }}</td>
@if ($order->base_discount_amount > 0)
<td>{{ core()->formatBasePrice($item->base_discount_amount) }}</td>
@endif
<td>{{ core()->formatBasePrice($item->base_total + $item->base_tax_amount - $item->base_discount_amount) }}</td>
</tr>
@endforeach
</table>
</div>
</div>
<div class="summary-comment-container">
<div class="comment-container">

View File

@ -30,83 +30,83 @@
<accordian :title="'{{ __('admin::app.sales.orders.order-and-account') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.refunds.order-id') }}
</span>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $order->id) }}">#{{ $order->increment_id }}</a>
</span>
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.refunds.order-id') }}
</span>
<span class="value">
{{ $order->created_at }}
</span>
</div>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $order->id) }}">#{{ $order->increment_id }}</a>
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
<span class="value">
{{ $order->created_at }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
</div>
</div>
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.customer-name') }}
</span>
<span class="value">
{{ $order->customer_full_name }}
</span>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.email') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.customer-name') }}
</span>
<span class="value">
{{ $order->customer_email }}
</span>
<span class="value">
{{ $order->customer_full_name }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.email') }}
</span>
<span class="value">
{{ $order->customer_email }}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</accordian>
@ -114,93 +114,95 @@
<accordian :title="'{{ __('admin::app.sales.orders.address') }}'" :active="true">
<div slot="body">
@if ($order->billing_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
<div class="sale">
@if ($order->billing_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
</div>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->billing_address])
</div>
</div>
@endif
<div class="section-content">
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
</div>
@include ('admin::sales.address', ['address' => $order->billing_address])
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
</div>
</div>
</div>
@endif
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
</div>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
</div>
</div>
@endif
@endif
</div>
</div>
</accordian>
@endif
<accordian :title="'{{ __('admin::app.sales.orders.payment-and-shipping') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.payment-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.payment-method') }}
</span>
<span class="value">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</span>
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.payment-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.currency') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.payment-method') }}
</span>
<span class="value">
{{ $order->order_currency_code }}
</span>
<span class="value">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.currency') }}
</span>
<span class="value">
{{ $order->order_currency_code }}
</span>
</div>
</div>
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-method') }}
</span>
<span class="value">
{{ $order->shipping_title }}
</span>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-price') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-method') }}
</span>
<span class="value">
{{ core()->formatBasePrice($order->base_shipping_amount) }}
</span>
<span class="value">
{{ $order->shipping_title }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-price') }}
</span>
<span class="value">
{{ core()->formatBasePrice($order->base_shipping_amount) }}
</span>
</div>
</div>
</div>
</div>
@ -225,94 +227,96 @@
<script type="text/x-template" id="refund-items-template">
<div>
<div class="table">
<table>
<thead>
<tr>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.orders.price') }}</th>
<th>{{ __('admin::app.sales.orders.item-status') }}</th>
<th>{{ __('admin::app.sales.orders.subtotal') }}</th>
<th>{{ __('admin::app.sales.orders.tax-amount') }}</th>
@if ($order->base_discount_amount > 0)
<th>{{ __('admin::app.sales.orders.discount-amount') }}</th>
@endif
<th>{{ __('admin::app.sales.orders.grand-total') }}</th>
<th>{{ __('admin::app.sales.refunds.qty-ordered') }}</th>
<th>{{ __('admin::app.sales.refunds.qty-to-refund') }}</th>
</tr>
</thead>
<tbody>
@foreach ($order->items as $item)
<div class="table-responsive">
<table>
<thead>
<tr>
<td>{{ Webkul\Product\Helpers\ProductType::hasVariants($item->type) ? $item->child->sku : $item->sku }}</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ core()->formatBasePrice($item->base_price) }}</td>
<td>
<span class="qty-row">
{{ $item->qty_ordered ? __('admin::app.sales.orders.item-ordered', ['qty_ordered' => $item->qty_ordered]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_invoiced ? __('admin::app.sales.orders.item-invoice', ['qty_invoiced' => $item->qty_invoiced]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_shipped ? __('admin::app.sales.orders.item-shipped', ['qty_shipped' => $item->qty_shipped]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_refunded ? __('admin::app.sales.orders.item-refunded', ['qty_refunded' => $item->qty_refunded]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_canceled ? __('admin::app.sales.orders.item-canceled', ['qty_canceled' => $item->qty_canceled]) : '' }}
</span>
</td>
<td>{{ core()->formatBasePrice($item->base_total) }}</td>
<td>{{ core()->formatBasePrice($item->base_tax_amount) }}</td>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.orders.price') }}</th>
<th>{{ __('admin::app.sales.orders.item-status') }}</th>
<th>{{ __('admin::app.sales.orders.subtotal') }}</th>
<th>{{ __('admin::app.sales.orders.tax-amount') }}</th>
@if ($order->base_discount_amount > 0)
<td>{{ core()->formatBasePrice($item->base_discount_amount) }}</td>
<th>{{ __('admin::app.sales.orders.discount-amount') }}</th>
@endif
<td>{{ core()->formatBasePrice($item->base_total + $item->base_tax_amount - $item->base_discount_amount) }}</td>
<td>{{ $item->qty_ordered }}</td>
<td>
<div class="control-group" :class="[errors.has('refund[items][{{ $item->id }}]') ? 'has-error' : '']">
<input type="text" v-validate="'required|numeric|min:0'" class="control" id="refund[items][{{ $item->id }}]" name="refund[items][{{ $item->id }}]" v-model="refund.items[{{ $item->id }}]" data-vv-as="&quot;{{ __('admin::app.sales.refunds.qty-to-refund') }}&quot;"/>
<span class="control-error" v-if="errors.has('refund[items][{{ $item->id }}]')">
@verbatim
{{ errors.first('refund[items][<?php echo $item->id ?>]') }}
@endverbatim
</span>
</div>
</td>
<th>{{ __('admin::app.sales.orders.grand-total') }}</th>
<th>{{ __('admin::app.sales.refunds.qty-ordered') }}</th>
<th>{{ __('admin::app.sales.refunds.qty-to-refund') }}</th>
</tr>
@endforeach
</tbody>
</table>
</thead>
<tbody>
@foreach ($order->items as $item)
<tr>
<td>{{ Webkul\Product\Helpers\ProductType::hasVariants($item->type) ? $item->child->sku : $item->sku }}</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ core()->formatBasePrice($item->base_price) }}</td>
<td>
<span class="qty-row">
{{ $item->qty_ordered ? __('admin::app.sales.orders.item-ordered', ['qty_ordered' => $item->qty_ordered]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_invoiced ? __('admin::app.sales.orders.item-invoice', ['qty_invoiced' => $item->qty_invoiced]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_shipped ? __('admin::app.sales.orders.item-shipped', ['qty_shipped' => $item->qty_shipped]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_refunded ? __('admin::app.sales.orders.item-refunded', ['qty_refunded' => $item->qty_refunded]) : '' }}
</span>
<span class="qty-row">
{{ $item->qty_canceled ? __('admin::app.sales.orders.item-canceled', ['qty_canceled' => $item->qty_canceled]) : '' }}
</span>
</td>
<td>{{ core()->formatBasePrice($item->base_total) }}</td>
<td>{{ core()->formatBasePrice($item->base_tax_amount) }}</td>
@if ($order->base_discount_amount > 0)
<td>{{ core()->formatBasePrice($item->base_discount_amount) }}</td>
@endif
<td>{{ core()->formatBasePrice($item->base_total + $item->base_tax_amount - $item->base_discount_amount) }}</td>
<td>{{ $item->qty_ordered }}</td>
<td>
<div class="control-group" :class="[errors.has('refund[items][{{ $item->id }}]') ? 'has-error' : '']">
<input type="text" v-validate="'required|numeric|min:0'" class="control" id="refund[items][{{ $item->id }}]" name="refund[items][{{ $item->id }}]" v-model="refund.items[{{ $item->id }}]" data-vv-as="&quot;{{ __('admin::app.sales.refunds.qty-to-refund') }}&quot;"/>
<span class="control-error" v-if="errors.has('refund[items][{{ $item->id }}]')">
@verbatim
{{ errors.first('refund[items][<?php echo $item->id ?>]') }}
@endverbatim
</span>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
<div style="width: 100%; display: inline-block">

View File

@ -27,180 +27,181 @@
<accordian :title="'{{ __('admin::app.sales.orders.order-and-account') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.refunds.order-id') }}
</span>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $order->id) }}">#{{ $order->increment_id }}</a>
</span>
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.refunds.order-id') }}
</span>
<span class="value">
{{ $order->created_at }}
</span>
</div>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $order->id) }}">#{{ $order->increment_id }}</a>
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
<span class="value">
{{ $order->created_at }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
</div>
</div>
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.customer-name') }}
</span>
<span class="value">
{{ $refund->order->customer_full_name }}
</span>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.email') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.customer-name') }}
</span>
<span class="value">
{{ $refund->order->customer_email }}
</span>
<span class="value">
{{ $refund->order->customer_full_name }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.email') }}
</span>
<span class="value">
{{ $refund->order->customer_email }}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</accordian>
@if ($order->billing_address || $order->shipping_address)
<accordian :title="'{{ __('admin::app.sales.orders.address') }}'" :active="true">
<div slot="body">
<div class="sale">
@if ($order->billing_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
</div>
@if ($order->billing_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->billing_address])
</div>
</div>
@endif
<div class="section-content">
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
</div>
@include ('admin::sales.address', ['address' => $order->billing_address])
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
</div>
</div>
</div>
@endif
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
</div>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
</div>
</div>
@endif
@endif
</div>
</div>
</accordian>
@endif
<accordian :title="'{{ __('admin::app.sales.orders.payment-and-shipping') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.payment-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.payment-method') }}
</span>
<span class="value">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</span>
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.payment-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.currency') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.payment-method') }}
</span>
<span class="value">
{{ $order->order_currency_code }}
</span>
<span class="value">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.currency') }}
</span>
<span class="value">
{{ $order->order_currency_code }}
</span>
</div>
</div>
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-method') }}
</span>
<span class="value">
{{ $order->shipping_title }}
</span>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-price') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-method') }}
</span>
<span class="value">
{{ core()->formatBasePrice($order->base_shipping_amount) }}
</span>
<span class="value">
{{ $order->shipping_title }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-price') }}
</span>
<span class="value">
{{ core()->formatBasePrice($order->base_shipping_amount) }}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</accordian>
@ -208,62 +209,65 @@
<div slot="body">
<div class="table">
<table>
<thead>
<tr>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.orders.price') }}</th>
<th>{{ __('admin::app.sales.orders.qty') }}</th>
<th>{{ __('admin::app.sales.orders.subtotal') }}</th>
<th>{{ __('admin::app.sales.orders.tax-amount') }}</th>
<th>{{ __('admin::app.sales.orders.discount-amount') }}</th>
<th>{{ __('admin::app.sales.orders.grand-total') }}</th>
</tr>
</thead>
<tbody>
@foreach ($refund->items as $item)
<div class="table-responsive">
<table>
<thead>
<tr>
<td>{{ $item->child ? $item->child->sku : $item->sku }}</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ core()->formatBasePrice($item->base_price) }}</td>
<td>{{ $item->qty }}</td>
<td>{{ core()->formatBasePrice($item->base_total) }}</td>
<td>{{ core()->formatBasePrice($item->base_tax_amount) }}</td>
<td>{{ core()->formatBasePrice($item->base_discount_amount) }}</td>
<td>{{ core()->formatBasePrice($item->base_total + $item->base_tax_amount - $item->base_discount_amount) }}</td>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.orders.price') }}</th>
<th>{{ __('admin::app.sales.orders.qty') }}</th>
<th>{{ __('admin::app.sales.orders.subtotal') }}</th>
<th>{{ __('admin::app.sales.orders.tax-amount') }}</th>
<th>{{ __('admin::app.sales.orders.discount-amount') }}</th>
<th>{{ __('admin::app.sales.orders.grand-total') }}</th>
</tr>
@endforeach
</thead>
@if (! $refund->items->count())
<tr>
<td class="empty" colspan="7">{{ __('admin::app.common.no-result-found') }}</td>
<tr>
@endif
<tbody>
</tbody>
</table>
@foreach ($refund->items as $item)
<tr>
<td>{{ $item->child ? $item->child->sku : $item->sku }}</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ core()->formatBasePrice($item->base_price) }}</td>
<td>{{ $item->qty }}</td>
<td>{{ core()->formatBasePrice($item->base_total) }}</td>
<td>{{ core()->formatBasePrice($item->base_tax_amount) }}</td>
<td>{{ core()->formatBasePrice($item->base_discount_amount) }}</td>
<td>{{ core()->formatBasePrice($item->base_total + $item->base_tax_amount - $item->base_discount_amount) }}</td>
</tr>
@endforeach
@if (! $refund->items->count())
<tr>
<td class="empty" colspan="7">{{ __('admin::app.common.no-result-found') }}</td>
<tr>
@endif
</tbody>
</table>
</div>
</div>
<table class="sale-summary">

View File

@ -30,183 +30,184 @@
<accordian :title="'{{ __('admin::app.sales.orders.order-and-account') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.shipments.order-id') }}
</span>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $order->id) }}">#{{ $order->increment_id }}</a>
</span>
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.shipments.order-id') }}
</span>
<span class="value">
{{ $order->created_at }}
</span>
</div>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $order->id) }}">#{{ $order->increment_id }}</a>
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
<span class="value">
{{ $order->created_at }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
</div>
</div>
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.customer-name') }}
</span>
<span class="value">
{{ $order->customer_full_name }}
</span>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.email') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.customer-name') }}
</span>
<span class="value">
{{ $order->customer_email }}
</span>
<span class="value">
{{ $order->customer_full_name }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.email') }}
</span>
<span class="value">
{{ $order->customer_email }}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</accordian>
<accordian :title="'{{ __('admin::app.sales.orders.address') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
</div>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->billing_address])
</div>
</div>
@if ($order->shipping_address)
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
</div>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
@include ('admin::sales.address', ['address' => $order->billing_address])
</div>
</div>
@endif
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
</div>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
</div>
</div>
@endif
</div>
</div>
</accordian>
<accordian :title="'{{ __('admin::app.sales.orders.payment-and-shipping') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.payment-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.payment-method') }}
</span>
<span class="value">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</span>
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.payment-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.currency') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.payment-method') }}
</span>
<span class="value">
{{ $order->order_currency_code }}
</span>
<span class="value">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.currency') }}
</span>
<span class="value">
{{ $order->order_currency_code }}
</span>
</div>
</div>
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-method') }}
</span>
<span class="value">
{{ $order->shipping_title }}
</span>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-price') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-method') }}
</span>
<span class="value">
{{ core()->formatBasePrice($order->base_shipping_amount) }}
</span>
</div>
<span class="value">
{{ $order->shipping_title }}
</span>
</div>
<div class="control-group" style="margin-top: 40px">
<label for="shipment[carrier_title]">{{ __('admin::app.sales.shipments.carrier-title') }}</label>
<input type="text" class="control" id="shipment[carrier_title]" name="shipment[carrier_title]"/>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-price') }}
</span>
<div class="control-group">
<label for="shipment[track_number]">{{ __('admin::app.sales.shipments.tracking-number') }}</label>
<input type="text" class="control" id="shipment[track_number]" name="shipment[track_number]"/>
<span class="value">
{{ core()->formatBasePrice($order->base_shipping_amount) }}
</span>
</div>
<div class="control-group" style="margin-top: 40px">
<label for="shipment[carrier_title]">{{ __('admin::app.sales.shipments.carrier-title') }}</label>
<input type="text" class="control" id="shipment[carrier_title]" name="shipment[carrier_title]"/>
</div>
<div class="control-group">
<label for="shipment[track_number]">{{ __('admin::app.sales.shipments.tracking-number') }}</label>
<input type="text" class="control" id="shipment[track_number]" name="shipment[track_number]"/>
</div>
</div>
</div>
</div>
@ -230,119 +231,118 @@
@push('scripts')
<script type="text/x-template" id="order-item-list-template">
<div>
<div class="control-group" :class="[errors.has('shipment[source]') ? 'has-error' : '']">
<label for="shipment[source]" class="required">{{ __('admin::app.sales.shipments.source') }}</label>
<div class="control-group" :class="[errors.has('shipment[source]') ? 'has-error' : '']">
<label for="shipment[source]" class="required">{{ __('admin::app.sales.shipments.source') }}</label>
<select v-validate="'required'" class="control" name="shipment[source]" id="shipment[source]" data-vv-as="&quot;{{ __('admin::app.sales.shipments.source') }}&quot;" v-model="source">
<option value="">{{ __('admin::app.sales.shipments.select-source') }}</option>
<select v-validate="'required'" class="control" name="shipment[source]" id="shipment[source]" data-vv-as="&quot;{{ __('admin::app.sales.shipments.source') }}&quot;" v-model="source">
<option value="">{{ __('admin::app.sales.shipments.select-source') }}</option>
@foreach ($order->channel->inventory_sources as $key => $inventorySource)
<option value="{{ $inventorySource->id }}">{{ $inventorySource->name }}</option>
@endforeach
</select>
<span class="control-error" v-if="errors.has('shipment[source]')">
@{{ errors.first('shipment[source]') }}
</span>
</div>
<div class="table">
<table>
<thead>
<tr>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.shipments.qty-ordered') }}</th>
<th>{{ __('admin::app.sales.shipments.qty-invoiced') }}</th>
<th>{{ __('admin::app.sales.shipments.qty-to-ship') }}</th>
<th>{{ __('admin::app.sales.shipments.available-sources') }}</th>
</tr>
</thead>
<tbody>
@foreach ($order->items as $item)
@if ($item->qty_to_ship > 0 && $item->product)
<tr>
<td>{{ $item->getTypeInstance()->getOrderedItem($item)->sku }}</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ $item->qty_ordered }}</td>
<td>{{ $item->qty_invoiced }}</td>
<td>{{ $item->qty_to_ship }}</td>
<td>
<table>
<thead>
<tr>
<th>{{ __('admin::app.sales.shipments.source') }}</th>
<th>{{ __('admin::app.sales.shipments.qty-available') }}</th>
<th>{{ __('admin::app.sales.shipments.qty-to-ship') }}</th>
</tr>
</thead>
<tbody>
@foreach ($order->channel->inventory_sources as $key => $inventorySource)
<tr>
<td>
{{ $inventorySource->name }}
</td>
<td>
@php
$product = $item->getTypeInstance()->getOrderedItem($item)->product;
$sourceQty = $product->type == 'bundle' ? $item->qty_ordered : $product->inventory_source_qty($inventorySource->id);
@endphp
{{ $sourceQty }}
</td>
<td>
@php
$inputName = "shipment[items][$item->id][$inventorySource->id]";
@endphp
<div class="control-group" :class="[errors.has('{{ $inputName }}') ? 'has-error' : '']">
<input type="text" v-validate="'required|numeric|min_value:0|max_value:{{$sourceQty}}'" class="control" id="{{ $inputName }}" name="{{ $inputName }}" value="{{ $item->qty_to_ship }}" data-vv-as="&quot;{{ __('admin::app.sales.shipments.qty-to-ship') }}&quot;" :disabled="source != '{{ $inventorySource->id }}'"/>
<span class="control-error" v-if="errors.has('{{ $inputName }}')">
@verbatim
{{ errors.first('<?php echo $inputName; ?>') }}
@endverbatim
</span>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</td>
</tr>
@endif
@foreach ($order->channel->inventory_sources as $key => $inventorySource)
<option value="{{ $inventorySource->id }}">{{ $inventorySource->name }}</option>
@endforeach
</tbody>
</table>
</div>
</div>
</select>
<span class="control-error" v-if="errors.has('shipment[source]')">
@{{ errors.first('shipment[source]') }}
</span>
</div>
<div class="table">
<div class="table-responsive">
<table>
<thead>
<tr>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.shipments.qty-ordered') }}</th>
<th>{{ __('admin::app.sales.shipments.qty-invoiced') }}</th>
<th>{{ __('admin::app.sales.shipments.qty-to-ship') }}</th>
<th>{{ __('admin::app.sales.shipments.available-sources') }}</th>
</tr>
</thead>
<tbody>
@foreach ($order->items as $item)
@if ($item->qty_to_ship > 0 && $item->product)
<tr>
<td>{{ $item->getTypeInstance()->getOrderedItem($item)->sku }}</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ $item->qty_ordered }}</td>
<td>{{ $item->qty_invoiced }}</td>
<td>{{ $item->qty_to_ship }}</td>
<td>
<table>
<thead>
<tr>
<th>{{ __('admin::app.sales.shipments.source') }}</th>
<th>{{ __('admin::app.sales.shipments.qty-available') }}</th>
<th>{{ __('admin::app.sales.shipments.qty-to-ship') }}</th>
</tr>
</thead>
<tbody>
@foreach ($order->channel->inventory_sources as $key => $inventorySource)
<tr>
<td>
{{ $inventorySource->name }}
</td>
<td>
@php
$product = $item->getTypeInstance()->getOrderedItem($item)->product;
$sourceQty = $product->type == 'bundle' ? $item->qty_ordered : $product->inventory_source_qty($inventorySource->id);
@endphp
{{ $sourceQty }}
</td>
<td>
@php
$inputName = "shipment[items][$item->id][$inventorySource->id]";
@endphp
<div class="control-group" :class="[errors.has('{{ $inputName }}') ? 'has-error' : '']">
<input type="text" v-validate="'required|numeric|min_value:0|max_value:{{$sourceQty}}'" class="control" id="{{ $inputName }}" name="{{ $inputName }}" value="{{ $item->qty_to_ship }}" data-vv-as="&quot;{{ __('admin::app.sales.shipments.qty-to-ship') }}&quot;" :disabled="source != '{{ $inventorySource->id }}'"/>
<span class="control-error" v-if="errors.has('{{ $inputName }}')">
@verbatim
{{ errors.first('<?php echo $inputName; ?>') }}
@endverbatim
</span>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</td>
</tr>
@endif
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</script>
<script>

View File

@ -26,212 +26,213 @@
<accordian :title="'{{ __('admin::app.sales.orders.order-and-account') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.shipments.order-id') }}
</span>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $order->id) }}">#{{ $order->increment_id }}</a>
</span>
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.order-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.shipments.order-id') }}
</span>
<span class="value">
{{ $order->created_at }}
</span>
</div>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $order->id) }}">#{{ $order->increment_id }}</a>
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-date') }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
<span class="value">
{{ $order->created_at }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.order-status') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
<span class="value">
{{ $order->status_label }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.channel') }}
</span>
<span class="value">
{{ $order->channel_name }}
</span>
</div>
</div>
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.customer-name') }}
</span>
<span class="value">
{{ $shipment->order->customer_full_name }}
</span>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.account-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.email') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.customer-name') }}
</span>
<span class="value">
{{ $shipment->order->customer_email }}
</span>
<span class="value">
{{ $shipment->order->customer_full_name }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.email') }}
</span>
<span class="value">
{{ $shipment->order->customer_email }}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</accordian>
@if ($order->billing_address || $order->shipping_address)
<accordian :title="'{{ __('admin::app.sales.orders.address') }}'" :active="true">
<div slot="body">
<div class="sale">
@if ($order->billing_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
</div>
@if ($order->billing_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.billing-address') }}</span>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->billing_address])
</div>
</div>
@endif
<div class="section-content">
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
</div>
@include ('admin::sales.address', ['address' => $order->billing_address])
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
</div>
</div>
</div>
@endif
@if ($order->shipping_address)
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-address') }}</span>
</div>
<div class="section-content">
@include ('admin::sales.address', ['address' => $order->shipping_address])
</div>
</div>
@endif
@endif
</div>
</div>
</accordian>
@endif
<accordian :title="'{{ __('admin::app.sales.orders.payment-and-shipping') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.payment-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.payment-method') }}
</span>
<span class="value">
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</span>
<div class="sale">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.payment-info') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.currency') }}
</span>
<span class="value">
{{ $order->order_currency_code }}
</span>
</div>
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-method') }}
</span>
<span class="value">
{{ $order->shipping_title }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-price') }}
</span>
<span class="value">
{{ core()->formatBasePrice($order->base_shipping_amount) }}
</span>
</div>
@if ($shipment->inventory_source || $shipment->inventory_source_name)
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.shipments.inventory-source') }}
{{ __('admin::app.sales.orders.payment-method') }}
</span>
<span class="value">
{{ $shipment->inventory_source ? $shipment->inventory_source->name : $shipment->inventory_source_name }}
{{ core()->getConfigData('sales.paymentmethods.' . $order->payment->method . '.title') }}
</span>
</div>
@endif
<div class="row">
<span class="title">
{{ __('admin::app.sales.shipments.carrier-title') }}
</span>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.currency') }}
</span>
<span class="value">
{{ $shipment->carrier_title }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.shipments.tracking-number') }}
</span>
<span class="value">
{{ $shipment->track_number }}
</span>
<span class="value">
{{ $order->order_currency_code }}
</span>
</div>
</div>
</div>
</div>
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.orders.shipping-info') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-method') }}
</span>
<span class="value">
{{ $order->shipping_title }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.orders.shipping-price') }}
</span>
<span class="value">
{{ core()->formatBasePrice($order->base_shipping_amount) }}
</span>
</div>
@if ($shipment->inventory_source || $shipment->inventory_source_name)
<div class="row">
<span class="title">
{{ __('admin::app.sales.shipments.inventory-source') }}
</span>
<span class="value">
{{ $shipment->inventory_source ? $shipment->inventory_source->name : $shipment->inventory_source_name }}
</span>
</div>
@endif
<div class="row">
<span class="title">
{{ __('admin::app.sales.shipments.carrier-title') }}
</span>
<span class="value">
{{ $shipment->carrier_title }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.shipments.tracking-number') }}
</span>
<span class="value">
{{ $shipment->track_number }}
</span>
</div>
</div>
</div>
</div>
</div>
</accordian>
@ -239,44 +240,44 @@
<div slot="body">
<div class="table">
<table>
<thead>
<tr>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.orders.qty') }}</th>
</tr>
</thead>
<tbody>
@foreach ($shipment->items as $item)
<div class="table-responsive">
<table>
<thead>
<tr>
<td>{{ $item->sku }}</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ $item->qty }}</td>
<th>{{ __('admin::app.sales.orders.SKU') }}</th>
<th>{{ __('admin::app.sales.orders.product-name') }}</th>
<th>{{ __('admin::app.sales.orders.qty') }}</th>
</tr>
@endforeach
</thead>
</tbody>
</table>
<tbody>
@foreach ($shipment->items as $item)
<tr>
<td>{{ $item->sku }}</td>
<td>
{{ $item->name }}
@if (isset($item->additional['attributes']))
<div class="item-options">
@foreach ($item->additional['attributes'] as $attribute)
<b>{{ $attribute['attribute_name'] }} : </b>{{ $attribute['option_label'] }}</br>
@endforeach
</div>
@endif
</td>
<td>{{ $item->qty }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</accordian>
</div>
</div>
</div>

View File

@ -24,81 +24,83 @@
<accordian :title="'{{ __('admin::app.sales.transactions.transaction-data') }}'" :active="true">
<div slot="body">
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.transactions.transaction-data') }}</span>
</div>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.transactions.transaction-id') }}
</span>
<span class="value">
{{ $transaction->transaction_id }}
</span>
<div class="sale">
<div class="sale-section" style="width:100%">
<div class="secton-title">
<span>{{ __('admin::app.sales.transactions.transaction-data') }}</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.transactions.order-id') }}
</span>
<div class="section-content">
<div class="row">
<span class="title">
{{ __('admin::app.sales.transactions.transaction-id') }}
</span>
<span class="value">
{{ $transaction->transaction_id }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.transactions.order-id') }}
</span>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $transaction->order_id)}}">
{{ $transaction->order_id }}
</a>
</span>
</div>
@if($transaction->invoice_id)
<div class="row">
<span class="title">
{{ __('admin::app.sales.transactions.invoice-id') }}
</span>
<span class="value">
<a href="{{ route('admin.sales.invoices.view', $transaction->invoice_id)}}">
{{ $transaction->invoice_id }}
</a>
</span>
</div>
@endif
<div class="row">
<span class="title">
{{ __('admin::app.sales.transactions.payment-method') }}
</span>
<span class="value">
{{ core()->getConfigData('sales.paymentmethods.' . $transaction->payment_method . '.title') }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.transactions.status') }}
</span>
<span class="value">
{{ $transaction->status }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.transactions.created-at') }}
</span>
<span class="value">
{{ $transaction->created_at }}
</span>
</div>
<span class="value">
<a href="{{ route('admin.sales.orders.view', $transaction->order_id)}}">
{{ $transaction->order_id }}
</a>
</span>
</div>
@if($transaction->invoice_id)
<div class="row">
<span class="title">
{{ __('admin::app.sales.transactions.invoice-id') }}
</span>
<span class="value">
<a href="{{ route('admin.sales.invoices.view', $transaction->invoice_id)}}">
{{ $transaction->invoice_id }}
</a>
</span>
</div>
@endif
<div class="row">
<span class="title">
{{ __('admin::app.sales.transactions.payment-method') }}
</span>
<span class="value">
{{ core()->getConfigData('sales.paymentmethods.' . $transaction->payment_method . '.title') }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.transactions.status') }}
</span>
<span class="value">
{{ $transaction->status }}
</span>
</div>
<div class="row">
<span class="title">
{{ __('admin::app.sales.transactions.created-at') }}
</span>
<span class="value">
{{ $transaction->created_at }}
</span>
</div>
</div>
</div>
</div>
</accordian>
@ -108,26 +110,29 @@
$transData = json_decode(json_encode(json_decode($transaction['data'])), true);
@endphp
<div class="sale-section">
<div class="secton-title">
<span>{{ __('admin::app.sales.transactions.transaction-details') }}</span>
<div class="sale">
<div class="sale-section" style="width: 100%;">
<div class="secton-title">
<span>{{ __('admin::app.sales.transactions.transaction-details') }}</span>
</div>
<div class="section-content">
@foreach ($transactionDeatilsData as $key => $data)
<div class="row">
<span class="title">
{{ $key }}
</span>
<span class="value">
{{ $data }}
</span>
</div>
@endforeach
</div>
</div>
<div class="section-content">
@foreach ($transactionDeatilsData as $key => $data)
<div class="row">
<span class="title">
{{ $key }}
</span>
<span class="value">
{{ $data }}
</span>
</div>
@endforeach
</div>
</div>
</div>
</accordian>

View File

@ -168,12 +168,16 @@
<label>{{ __('admin::app.settings.channels.logo') }}</label>
<image-wrapper :button-label="'{{ __('admin::app.catalog.products.add-image-btn-title') }}'" input-name="logo" :multiple="false"></image-wrapper>
<span class="control-info mt-10">{{ __('admin::app.settings.channels.logo-size') }}</span>
</div>
<div class="control-group">
<label>{{ __('admin::app.settings.channels.favicon') }}</label>
<image-wrapper :button-label="'{{ __('admin::app.catalog.products.add-image-btn-title') }}'" input-name="logo" :multiple="false"></image-wrapper>
<span class="control-info mt-10">{{ __('admin::app.settings.channels.favicon-size') }}</span>
</div>
</div>

View File

@ -205,12 +205,16 @@
<label>{{ __('admin::app.settings.channels.logo') }}</label>
<image-wrapper :button-label="'{{ __('admin::app.catalog.products.add-image-btn-title') }}'" input-name="logo" :multiple="false" :images='"{{ $channel->logo_url }}"'></image-wrapper>
<span class="control-info mt-10">{{ __('admin::app.settings.channels.logo-size') }}</span>
</div>
<div class="control-group">
<label>{{ __('admin::app.settings.channels.favicon') }}</label>
<image-wrapper :button-label="'{{ __('admin::app.catalog.products.add-image-btn-title') }}'" input-name="favicon" :multiple="false" :images='"{{ $channel->favicon_url }}"'></image-wrapper>
<span class="control-info mt-10">{{ __('admin::app.settings.channels.favicon-size') }}</span>
</div>
</div>

View File

@ -83,7 +83,8 @@
<div class="control-group {!! $errors->has('image.*') ? 'has-error' : '' !!}">
<label class="required">{{ __('admin::app.catalog.categories.image') }}</label>
<span class="control-info mt-10">{{ __('admin::app.settings.sliders.image-size') }}</span>
<image-wrapper :button-label="'{{ __('admin::app.settings.sliders.image') }}'" input-name="image" :multiple="false"></image-wrapper>
<span class="control-error" v-if="{!! $errors->has('image.*') !!}">

View File

@ -86,7 +86,8 @@
<div class="control-group {!! $errors->has('image.*') ? 'has-error' : '' !!}">
<label class="required">{{ __('admin::app.catalog.categories.image') }}</label>
<span class="control-info mt-10">{{ __('admin::app.settings.sliders.image-size') }}</span>
<image-wrapper :button-label="'{{ __('admin::app.settings.sliders.image') }}'" input-name="image" :multiple="false" :images='"{{ Storage::url($slider->path) }}"'></image-wrapper>
<span class="control-error" v-if="{!! $errors->has('image.*') !!}">

View File

@ -64,7 +64,7 @@ class NotificationController extends Controller
if(isset($params) && $params != NULL){
$searchResults = $this->notificationRepository->getParamsData($params);
}else{
$searchResults = $this->notificationRepository->with('order')->latest()->paginate(5);
$searchResults = $this->notificationRepository->with('order')->latest()->paginate(10);
}
return [

View File

@ -46,7 +46,8 @@ class Order
public function updateOrder($order)
{
$orderArray =[
'id' => $order->id
'id' => $order->id,
'status' => $order->status
];
event(new UpdateOrderNotification($orderArray));

View File

@ -28,17 +28,17 @@ class NotificationRepository extends Repository
$qry->whereHas('order',function ($q) use ($params) {
$q->where(['status' => $params['status']]);
});
})->where('order_id',$params['id'])->with('order')->paginate(5) : $this->model->where('order_id',$params['id'])->with('order')->paginate(5) ;
})->where('order_id',$params['id'])->with('order')->paginate(10) : $this->model->where('order_id',$params['id'])->with('order')->paginate(10) ;
}elseif (isset($params['status'])) {
return $params['status'] != 'All' ? $this->model->where(function($qry)use ($params){
$qry->whereHas('order',function ($q) use ($params) {
$q->where(['status' => $params['status']]);
});
})->with('order')->paginate(5): $this->model->with('order')->latest()->paginate(5);
})->with('order')->paginate(10): $this->model->with('order')->latest()->paginate(10);
}elseif(isset($params['limit'])){
return $this->model->limit($params['limit'])->with('order')->latest()->paginate(5);
return $this->model->limit($params['limit'])->with('order')->latest()->paginate(10);
}elseif(isset($params['id'])){
return $this->model->where('order_id',$params['id'])->with('order')->paginate(5);
return $this->model->where('order_id',$params['id'])->with('order')->paginate(10);
}
return [];

View File

@ -307,6 +307,8 @@ class OrderRepository extends Repository
*/
public function updateOrderStatus($order, $orderState = null)
{
Event::dispatch('sales.order.update-status.before', $order);
if (! empty($orderState)) {
$status = $orderState;
} else {
@ -325,6 +327,8 @@ class OrderRepository extends Repository
$order->status = $status;
$order->save();
Event::dispatch('sales.order.update-status.after', $order);
}
/**

View File

@ -13,6 +13,7 @@ import ImageWrapper from "./components/image/image-wrapper";
import Modal from "./components/modal";
import OverlayLoader from "./components/overlay-loader";
import SwatchPicker from "./components/swatch-picker";
import DefaultImage from "./components/default-image";
import Tab from "./components/tabs/tab";
import Tabs from "./components/tabs/tabs";
import TimeComponent from "./components/time";
@ -57,6 +58,7 @@ Vue.component("swatch-picker", SwatchPicker);
Vue.directive("debounce", Debounce);
Vue.component("overlay-loader", OverlayLoader);
Vue.component("multiselect", Multiselect);
Vue.component("default-image", DefaultImage);
/* filter section */
Vue.filter("truncate", function(value, limit, trail) {

View File

@ -0,0 +1,13 @@
<template>
<img :src="this.$root.isDarkMode ? darkThemeImageUrl: lightThemeImageUrl"/>
</template>
<script>
export default {
props: [
'lightThemeImageUrl',
'darkThemeImageUrl'
],
};
</script>

View File

@ -1243,6 +1243,14 @@ modal {
left: 10%;
margin-left: 0px;
}
.control-group {
width: 100%;
.control {
width: 100%;
}
}
}
.label {

View File

@ -1,71 +1,70 @@
@import 'main/mixins';
@import "main/mixins";
.grid-container {
display: block;
width: 100%;
}
.datagrid-filters {
display: inline-flex;
width: 100%;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
.grid-top {
display: grid;
grid-template-rows: auto auto auto;
row-gap: 8px;
align-items: center;
.filter-left {
float: left;
}
.datagrid-filters {
display: grid;
grid-template-columns: auto auto;
column-gap: 10px;
.filter-right {
float: right;
}
.grid-right {
justify-self: end;
display: grid;
grid-template-columns: auto auto;
column-gap: 10px;
align-items: end;
}
.dropdown-filters {
display: inline-block;
.dropdown-filters {
display: inline-block;
&.per-page {
margin-right: 10px;
&.per-page {
.control-group {
label {
margin-top: 7px;
margin-right: 10px;
flex: auto;
}
.control-group {
label {
width: auto;
float: left;
margin-top: 7px;
margin-right: 10px;
}
.control {
width: auto;
margin: 0;
.control {
width: 100%;
margin: 0;
flex: 1;
}
}
}
}
}
}
}
.records-count-container {
float: right;
padding: 10px;
}
@media only screen and (max-width: 1192px) {
.datagrid-filters {
margin-bottom: unset;
.filter-left {
margin-bottom: 10px;
}
display: grid;
grid-template-columns: auto auto;
column-gap: 10px;
align-items: end;
.filter-right {
margin-bottom: 10px;
}
}
}
justify-self: end;
display: grid;
grid-template-columns: auto auto;
column-gap: 10px;
align-items: end;
@media only screen and (max-width: 720px) {
.datagrid-filters {
.dropdown-filters {
margin-bottom: 5px;
.control-group{
.control{
margin-bottom: 0px;
}
}
}
}
}
@ -78,51 +77,52 @@
}
.search-filter {
border-radius: 3px;
height: 36px;
max-width: 300px;
.control {
font-size: 15px;
border: 2px solid $control-border-color;
border: 1px solid $control-border-color;
border-right: none;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
height: 36px;
width: 280px;
width: calc(100% - 36px);
padding-left: 10px;
-webkit-appearance: none;
}
&:hover {
box-shadow: 0px 0px 0px 1px $selection-color;
}
.contorl:focus {
border-color: $brand-color;
}
.icon-wrapper {
border: 2px solid $control-border-color;
border: 1px solid $control-border-color;
border-radius: 3px;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
height: 36px;
width: 36px;
padding: 3px;
padding: 5px;
float: right;
}
}
@media only screen and (max-width: 720px) {
.search-filter {
.control {
width: 100px;
}
}
}
.grid-dropdown-header {
display: inline-flex;
justify-content: space-between;
align-items: center;
height: 36px;
width: 200px;
border: 2px solid $control-border-color;
width: 100%;
min-width: 200px;
border: 1px solid $control-border-color;
border-radius: 3px;
color: #8e8e8e;
background-color: $white-color;
padding: 0px 5px 0px 5px;
.arrow-icon-down {
@ -139,7 +139,13 @@
li {
.control-group {
margin-bottom: 15px;
display: block;
.control{
margin-bottom: 15px;
}
}
}
}
@ -148,6 +154,11 @@
width: 100%;
}
}
.filter-advance{
display: flex;
justify-content: space-between;
}
.filter-tag {
display: flex;
@ -160,36 +171,44 @@
margin-right: 20px;
.wrapper {
margin-left: 10px;
padding: 5px 10px 5px 10px;
margin-left: 4px;
padding: 5px 10px 5px 16px;
display: flex;
flex-direction: row;
align-items: center;
background: #e7e7e7;
background: #E7E7E7;
border: 1px solid #E7E7E7;
font-size: 14px;
height: 40px;
color: #000311;
letter-spacing: -0.22px;
@include border-radius(2px);
@include border-radius(24px);
.icon.cross-icon {
margin-left: 10px;
cursor: pointer;
}
&:hover {
background: $white-color;
border: 1px solid #E7E7E7;
}
}
}
.rtl {
.search-filter {
.control {
padding-right: 10px;
border-left: 0;
border-right: 2px solid #c7c7c7;
border-right: 1px solid #C7C7C7;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.icon-wrapper {
float: left;
border-top-right-radius: 0px;
@ -197,19 +216,26 @@
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
}
&:hover {
box-shadow: 0px 0px 0px 1px $selection-color;
}
}
.dropdown-filters {
display: inline-block;
&.per-page {
margin-left: 10px;
margin-right: 10px;
}
}
.filtered-tags {
.filter-tag {
.wrapper,
.cross-icon {
margin-right: 10px;
@ -217,9 +243,39 @@
}
}
}
.records-count-container {
float: left;
padding: 10px;
}
}
@media only screen and (max-width: 1040px) {
.grid-container {
.grid-top{
.datagrid-filters {
grid-template-columns: 100%;
row-gap: 0px;
.search-filter{
max-width: 100% !important;
}
.filter-left {
display: grid;
grid-template-columns: 49.5% 49%;
column-gap: 5px;
}
.filter-right {
display: grid;
grid-template-columns: 49.5% 49%;
column-gap: 5px;
width: 100%;
}
}
}
}
.grid-dropdown-header {
min-width: 122px;
}
}

View File

@ -31,8 +31,8 @@
<div class="grid-container">
<div class="grid-top">
<div class="datagrid-filters">
<div class="datagrid-filters">
<div class="filter-left">
@if (isset($results['extraFilters']['channels']))
<div class="dropdown-filters per-page">
@ -93,15 +93,14 @@
</div>
@endif
</div>
</div>
</div>
<div class="datagrid-filters" id="datagrid-filters">
<div class="filter-left">
<div class="datagrid-filters" id="datagrid-filters">
<div>
<div class="search-filter">
<input type="search" id="search-field" class="control"
placeholder="{{ __('ui::app.datagrid.search') }}" v-model="searchValue"
v-on:keyup.enter="searchCollection(searchValue)"/>
<div class="icon-wrapper">
<span class="icon search-icon search-btn"
v-on:click="searchCollection(searchValue)"></span>
@ -243,30 +242,31 @@
</div>
</div>
</div>
</div>
</div>
</div>
<div class="filter-advance">
<div class="filtered-tags">
<span class="filter-tag" v-if="filters.length > 0" v-for="filter in filters" style="text-transform: capitalize;">
<span v-if="filter.column == 'perPage'">perPage</span>
<span v-else>@{{ filter.label }}</span>
<div class="filtered-tags">
<span class="filter-tag" v-if="filters.length > 0" v-for="filter in filters" style="text-transform: capitalize;">
<span v-if="filter.column == 'perPage'">perPage</span>
<span v-else>@{{ filter.label }}</span>
<span class="wrapper" v-if="filter.prettyValue">
@{{ filter.prettyValue }}
<span class="icon cross-icon" v-on:click="removeFilter(filter)"></span>
</span>
<span class="wrapper" v-else>
@{{ decodeURIComponent(filter.val) }}
<span class="icon cross-icon" v-on:click="removeFilter(filter)"></span>
</span>
<span class="wrapper" v-if="filter.prettyValue">
@{{ filter.prettyValue }}
<span class="icon cross-icon" v-on:click="removeFilter(filter)"></span>
</span>
</div>
<div class="records-count-container">
<span class="wrapper" v-else>
@{{ decodeURIComponent(filter.val) }}
<span class="icon cross-icon" v-on:click="removeFilter(filter)"></span>
</span>
</span>
</div>
<div class="records-count-container">
<span class="datagrid-count">
{{ $results['records']->total() }} {{ __('admin::app.admin.system.records-found') }}
</span>
</div>
</div>
</div>
<div class="table-responsive">
<table class="table">

View File

@ -103,7 +103,7 @@ return [
'slider-path' => 'Slider Path',
'category-logo' => 'Category logo',
'product-policy' => 'Product Policy',
'update-meta-data' => 'Update Meta Data',
'update-meta-data' => 'Update',
'product-view-image' => 'Product View Image',
'advertisement-two' => 'Advertisement Two Images',
'advertisement-one' => 'Advertisement One Images',
@ -113,6 +113,16 @@ return [
'images' => 'Images',
'general' => 'General',
'add-image-btn-title' => 'Add Image',
'image-four-resolution' => 'First image resolutions should be like 427px X 410px ,
Second images resolutions should be like 397px X 180px ,
Third images resolutions should be like 397px X 180px ,
Fouth image resolutions should be like 427px X 410px',
'image-three-resolution' => 'First image resolution should be like 635px X 465px ,
Second image resolutions should be like 620px X 225px,
Third image resolutions should be like 620px X 225px',
'image-two-resolution' => 'First image resolution should be like 953px X 447px ,
Second image resolution should be like 303px X 446px',
'image-locale-resolution' => 'Image resolution should be like 20px X 20px',
'footer-middle' => [
'about-us' => 'About Us',
'customer-service' => 'Customer Service',
@ -125,6 +135,16 @@ return [
]
],
'category' => [
'image-four-resolution' => 'First image resolutions should be like 427px X 410px ,
Second images resolutions should be like 397px X 180px ,
Third images resolutions should be like 397px X 180px ,
Fouth image resolutions should be like 427px X 410px',
'image-three-resolution' => 'First image resolution should be like 635px X 465px ,
Second image resolutions should be like 620px X 225px,
Third image resolutions should be like 620px X 225px',
'image-two-resolution' => 'First image resolution should be like 953px X 447px ,
Second image resolution should be like 303px X 446px',
'image-locale-resolution' => 'Image resolution should be like 20px X 20px',
'save-btn-title' => 'Save Menu',
'title' => 'Category Menu List',
'add-title' => 'Add Menu Content',

View File

@ -15,4 +15,6 @@
:button-label="'{{ __('admin::app.catalog.products.add-image-btn-title') }}'">
</image-wrapper>
@endif
<span class="control-info mt-10">{{ __('admin::app.catalog.categories.image-size-logo') }}</span>
</div>

View File

@ -10,6 +10,20 @@
$channelLocales = core()->getAllLocalesByRequestedChannel()['locales'];
@endphp
@push('css')
<style>
@media only screen and (max-width: 768px){
.content-container .content .page-header .page-title{
margin-bottom: 30px !important;
}
}
</style>
@endpush
@section('content')
<div class="content">
<form
@ -117,9 +131,6 @@
value="{{ $metaData ? $metaData->header_content_count : '5' }}" />
</div>
<div class="control-group">
<label style="width:100%;">
{{ __('velocity::app.admin.meta-data.home-page-content') }}
@ -217,6 +228,8 @@
:button-label="'{{ __('velocity::app.admin.meta-data.add-image-btn-title') }}'">
</image-wrapper>
@endif
<span class="control-info mt-10">{{ __('velocity::app.admin.meta-data.image-four-resolution') }}</span>
</div>
<div class="control-group">
@ -258,6 +271,7 @@
:button-label="'{{ __('velocity::app.admin.meta-data.add-image-btn-title') }}'">
</image-wrapper>
@endif
<span class="control-info mt-10">{{ __('velocity::app.admin.meta-data.image-three-resolution') }}</span>
</div>
<div class="control-group">
@ -296,6 +310,7 @@
:button-label="'{{ __('velocity::app.admin.meta-data.add-image-btn-title') }}'">
</image-wrapper>
@endif
<span class="control-info mt-10">{{ __('velocity::app.admin.meta-data.image-two-resolution') }}</span>
</div>
</div>
</accordian>

View File

@ -14,4 +14,6 @@
:button-label="'{{ __('admin::app.catalog.products.add-image-btn-title') }}'">
</image-wrapper>
@endif
<span class="control-info mt-10">{{ __('velocity::app.admin.meta-data.image-locale-resolution') }}</span>
</div>