Merge branch 'master' of https://github.com/bagisto/bagisto
This commit is contained in:
commit
f9f8b940e7
|
|
@ -409,6 +409,7 @@ return [
|
|||
'add-title' => 'أنشئ شحنة',
|
||||
'save-btn-title' => 'احفظ الشحنة',
|
||||
'qty-ordered' => 'أمر qty',
|
||||
'qty-invoiced' => 'Qty Invoiced',
|
||||
'qty-to-ship' => 'من كيوتي إلى السفينة',
|
||||
'available-sources' => 'المصادر المتاحة',
|
||||
'source' => 'المصدر',
|
||||
|
|
|
|||
|
|
@ -409,6 +409,7 @@ return [
|
|||
'add-title' => 'Create Shipment',
|
||||
'save-btn-title' => 'Save Shipment',
|
||||
'qty-ordered' => 'Qty Ordered',
|
||||
'qty-invoiced' => 'Qty Invoiced',
|
||||
'qty-to-ship' => 'Qty to Ship',
|
||||
'available-sources' => 'Available Sources',
|
||||
'source' => 'Source',
|
||||
|
|
|
|||
|
|
@ -409,6 +409,7 @@ return [
|
|||
'add-title' => 'ایجاد حمل و نقل',
|
||||
'save-btn-title' => 'ذخیره حمل و نقل',
|
||||
'qty-ordered' => 'سفارش داده شده',
|
||||
'qty-invoiced' => 'Qty Invoiced',
|
||||
'qty-to-ship' => 'مقدار به کشتی',
|
||||
'available-sources' => 'منابع موجود',
|
||||
'source' => 'منابع',
|
||||
|
|
|
|||
|
|
@ -409,6 +409,7 @@ return [
|
|||
'add-title' => 'Zending maken',
|
||||
'save-btn-title' => 'Zending opslaan',
|
||||
'qty-ordered' => 'Besteld aantal',
|
||||
'qty-invoiced' => 'Qty Invoiced',
|
||||
'qty-to-ship' => 'Te verzenden',
|
||||
'available-sources' => 'Beschikbare bronnen',
|
||||
'source' => 'Bron',
|
||||
|
|
|
|||
|
|
@ -409,6 +409,7 @@ return [
|
|||
'add-title' => 'Criar Entrega',
|
||||
'save-btn-title' => 'Salvar Entrega',
|
||||
'qty-ordered' => 'Qtd pedido',
|
||||
'qty-invoiced' => 'Qty Invoiced',
|
||||
'qty-to-ship' => 'Qty para enviar',
|
||||
'available-sources' => 'Fontes Disponíveis',
|
||||
'source' => 'Fonte',
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
@extends('address::admin.layouts.content')
|
||||
@extends('admin::layouts.content')
|
||||
|
||||
@section('page_title')
|
||||
{{ __('address::app.admin.addresses.title-orders', ['customer_name' => $customer->first_name . ' ' . $customer->last_name]) }}
|
||||
|
|
|
|||
|
|
@ -263,6 +263,7 @@
|
|||
<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>
|
||||
|
|
@ -288,6 +289,7 @@
|
|||
@endif
|
||||
</td>
|
||||
<td>{{ $item->qty_ordered }}</td>
|
||||
<td>{{ $item->qty_invoiced }}</td>
|
||||
<td>{{ $item->qty_to_ship }}</td>
|
||||
<td>
|
||||
|
||||
|
|
@ -324,8 +326,8 @@
|
|||
|
||||
<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="0" data-vv-as=""{{ __('admin::app.sales.shipments.qty-to-ship') }}"" :disabled="source != '{{ $inventorySource->id }}'"/>
|
||||
|
||||
<input type="text" v-validate="'required|numeric|min_value:0|max_value:{{$sourceQty}}'" class="control" id="{{ $inputName }}" name="{{ $inputName }}" value="{{ $item->qty_invoiced }}" data-vv-as=""{{ __('admin::app.sales.shipments.qty-to-ship') }}"" :disabled="source != '{{ $inventorySource->id }}'"/>
|
||||
|
||||
<span class="control-error" v-if="errors.has('{{ $inputName }}')">
|
||||
@verbatim
|
||||
{{ errors.first('<?php echo $inputName; ?>') }}
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ class RentalSlot extends Booking
|
|||
{
|
||||
$bookingProduct = $this->bookingProductRepository->findOneByField('product_id', $data['product_id']);
|
||||
|
||||
$rentingType = $products[0]['additional']['booking']['renting_type'] ?? $bookingProduct->rental_slot->renting_type;
|
||||
$rentingType = $data['additional']['booking']['renting_type'] ?? $bookingProduct->rental_slot->renting_type;
|
||||
|
||||
if ($rentingType == 'daily') {
|
||||
$from = Carbon::createFromTimeString($data['additional']['booking']['date_from'] . ' 00:00:01')->getTimestamp();
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ use Webkul\Product\Helpers\ProductImage;
|
|||
use Webkul\BookingProduct\Repositories\BookingProductRepository;
|
||||
use Webkul\BookingProduct\Helpers\Booking as BookingHelper;
|
||||
use Webkul\Product\Type\Virtual;
|
||||
use Carbon\Carbon;
|
||||
|
||||
class Booking extends Virtual
|
||||
{
|
||||
|
|
@ -168,6 +169,10 @@ class Booking extends Virtual
|
|||
$bookingProduct = $this->getBookingProduct($data['product_id']);
|
||||
|
||||
if ($bookingProduct->type == 'event') {
|
||||
if (Carbon::now() > $bookingProduct->available_from && Carbon::now() > $bookingProduct->available_to) {
|
||||
return trans('shop::app.checkout.cart.event.expired');
|
||||
}
|
||||
|
||||
$filtered = Arr::where($data['booking']['qty'], function ($qty, $key) {
|
||||
return $qty != 0;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -313,7 +313,10 @@ class ProductRepository extends Repository
|
|||
->where('product_flat.channel', $channel)
|
||||
->where('product_flat.locale', $locale)
|
||||
->whereNotNull('product_flat.url_key')
|
||||
->where('product_flat.name', 'like', '%' . urldecode($term) . '%')
|
||||
->where(function($sub_query) use ($term) {
|
||||
$sub_query->where('product_flat.name', 'like', '%' . urldecode($term) . '%')
|
||||
->orWhere('product_flat.short_description', 'like', '%' . urldecode($term) . '%');
|
||||
})
|
||||
->orderBy('product_id', 'desc');
|
||||
})->paginate(16);
|
||||
|
||||
|
|
|
|||
|
|
@ -568,38 +568,29 @@ class Configurable extends AbstractType
|
|||
public function haveSufficientQuantity($qty)
|
||||
{
|
||||
$backorders = core()->getConfigData('catalog.inventory.stock_options.backorders');
|
||||
|
||||
return $qty <= $this->totalQuantity() ? true : $backorders;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function totalQuantity()
|
||||
{
|
||||
$total = 0;
|
||||
|
||||
$channelInventorySourceIds = core()->getCurrentChannel()
|
||||
->inventory_sources()
|
||||
->where('status', 1)
|
||||
->pluck('id');
|
||||
|
||||
|
||||
foreach ($this->product->variants as $variant) {
|
||||
foreach ($variant->inventories as $inventory) {
|
||||
if (is_numeric($index = $channelInventorySourceIds->search($inventory->inventory_source_id))) {
|
||||
$total += $inventory->qty;
|
||||
}
|
||||
if ($variant->haveSufficientQuantity($qty)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
$orderedInventory = $variant->ordered_inventories()
|
||||
->where('channel_id', core()->getCurrentChannel()->id)
|
||||
->first();
|
||||
|
||||
if ($orderedInventory) {
|
||||
$total -= $orderedInventory->qty;
|
||||
return $backorders;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if this product type is saleable
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isSaleable()
|
||||
{
|
||||
foreach ($this->product->variants as $variant) {
|
||||
if ($variant->isSaleable()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return $total;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -411,7 +411,7 @@ return [
|
|||
'your-customization' => 'التخصيص الخاص بك',
|
||||
'total-amount' => 'المبلغ الإجمالي',
|
||||
'none' => 'لا شيء',
|
||||
'available' => 'Available'
|
||||
'available' => 'Available',
|
||||
],
|
||||
|
||||
// 'reviews' => [
|
||||
|
|
@ -461,7 +461,10 @@ return [
|
|||
'cart-subtotal' => 'المجموع الفرعي للمشتريات',
|
||||
'cart-remove-action' => 'هل تريد حقا أن تسمح هذا ؟',
|
||||
'partial-cart-update' => 'تم تحديث بعض المنتجات.',
|
||||
'link-missing' => ''
|
||||
'link-missing' => '',
|
||||
'event' => [
|
||||
'expired' => 'This event has been expired.'
|
||||
]
|
||||
],
|
||||
|
||||
'onepage' => [
|
||||
|
|
|
|||
|
|
@ -461,7 +461,10 @@ return [
|
|||
'cart-subtotal' => 'Cart Subtotal',
|
||||
'cart-remove-action' => 'Do you really want to do this ?',
|
||||
'partial-cart-update' => 'Only some of the product(s) were updated',
|
||||
'link-missing' => ''
|
||||
'link-missing' => '',
|
||||
'event' => [
|
||||
'expired' => 'This event has been expired.'
|
||||
]
|
||||
],
|
||||
|
||||
'onepage' => [
|
||||
|
|
|
|||
|
|
@ -429,6 +429,9 @@ return [
|
|||
'cart-subtotal' => 'Total parcial',
|
||||
'cart-remove-action' => '¿Realmente quieres hacer esto?',
|
||||
'partial-cart-update' => 'Solo algunos de los productos se han actualizado',
|
||||
'event' => [
|
||||
'expired' => 'This event has been expired.'
|
||||
]
|
||||
],
|
||||
|
||||
'onepage' => [
|
||||
|
|
|
|||
|
|
@ -462,6 +462,9 @@ return [
|
|||
'cart-subtotal' => 'سبد فرعی',
|
||||
'cart-remove-action' => 'آیا واقعاً می خواهید این کار را انجام دهید؟',
|
||||
'partial-cart-update' => 'فقط برخی از محصولات (های) به روز شده اند',
|
||||
'event' => [
|
||||
'expired' => 'This event has been expired.'
|
||||
]
|
||||
],
|
||||
|
||||
'onepage' => [
|
||||
|
|
|
|||
|
|
@ -466,7 +466,10 @@ return [
|
|||
'cart-subtotal' => 'Subtotaal',
|
||||
'cart-remove-action' => 'Wil je dit echt doen?',
|
||||
'partial-cart-update' => 'Slechts enkele van de producten zijn bijgewerkt',
|
||||
'link-missing' => ''
|
||||
'link-missing' => '',
|
||||
'event' => [
|
||||
'expired' => 'This event has been expired.'
|
||||
]
|
||||
],
|
||||
|
||||
'onepage' => [
|
||||
|
|
|
|||
|
|
@ -451,7 +451,10 @@ return [
|
|||
'cart-subtotal' => 'Subtotal do carrinho',
|
||||
'cart-remove-action' => 'Você realmente quer fazer isso ?',
|
||||
'partial-cart-update' => 'Only some of the product(s) were updated',
|
||||
'link-missing' => ''
|
||||
'link-missing' => '',
|
||||
'event' => [
|
||||
'expired' => 'This event has been expired.'
|
||||
]
|
||||
],
|
||||
|
||||
'onepage' => [
|
||||
|
|
|
|||
Loading…
Reference in New Issue