Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0 / 0 |
|
100.00% |
0 / 0 |
CRAP | |
0.00% |
0 / 768 |
{# | |
This file is part of EC-CUBE | |
Copyright(c) 2000-2015 LOCKON CO.,LTD. All Rights Reserved. | |
http://www.lockon.co.jp/ | |
This program is free software; you can redistribute it and/or | |
modify it under the terms of the GNU General Public License | |
as published by the Free Software Foundation; either version 2 | |
of the License, or (at your option) any later version. | |
This program is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU General Public License for more details. | |
You should have received a copy of the GNU General Public License | |
along with this program; if not, write to the Free Software | |
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
#} | |
{% extends 'default_frame.twig' %} | |
{% set menus = ['order', 'order_edit'] %} | |
{% block title %}受注管理{% endblock %} | |
{% block sub_title %}受注登録・編集{% endblock %} | |
{% form_theme form 'Form/bootstrap_3_horizontal_layout.html.twig' %} | |
{% form_theme searchCustomerModalForm 'Form/bootstrap_3_horizontal_layout.html.twig' %} | |
{% form_theme searchProductModalForm 'Form/bootstrap_3_horizontal_layout.html.twig' %} | |
{% block javascript %} | |
<script src="//ajaxzip3.github.io/ajaxzip3.js" charset="UTF-8"></script> | |
<script> | |
$(function() { | |
$('#zip-search').click(function() { | |
AjaxZip3.zip2addr('order[zip][zip01]', 'order[zip][zip02]', 'order[address][pref]', 'order[address][addr01]'); | |
}); | |
// 注文者情報をコピー | |
$('.copyCustomerToShippingButton').on('click', function() { | |
var data = $(this).data(); | |
var idx = data.idx; | |
$('#order_Shippings_' + idx + '_name_name01').val($('#order_name_name01').val()); | |
$('#order_Shippings_' + idx + '_name_name02').val($('#order_name_name02').val()); | |
$('#order_Shippings_' + idx + '_kana_kana01').val($('#order_kana_kana01').val()); | |
$('#order_Shippings_' + idx + '_kana_kana02').val($('#order_kana_kana02').val()); | |
$('#order_Shippings_' + idx + '_zip_zip01').val($('#order_zip_zip01').val()); | |
$('#order_Shippings_' + idx + '_zip_zip02').val($('#order_zip_zip02').val()); | |
$('#order_Shippings_' + idx + '_address_pref').val($('#order_address_pref').val()); | |
$('#order_Shippings_' + idx + '_address_addr01').val($('#order_address_addr01').val()); | |
$('#order_Shippings_' + idx + '_address_addr02').val($('#order_address_addr02').val()); | |
$('#order_Shippings_' + idx + '_email').val($('#order_email').val()); | |
$('#order_Shippings_' + idx + '_tel_tel01').val($('#order_tel_tel01').val()); | |
$('#order_Shippings_' + idx + '_tel_tel02').val($('#order_tel_tel02').val()); | |
$('#order_Shippings_' + idx + '_tel_tel03').val($('#order_tel_tel03').val()); | |
$('#order_Shippings_' + idx + '_fax_fax01').val($('#order_fax_fax01').val()); | |
$('#order_Shippings_' + idx + '_fax_fax02').val($('#order_fax_fax02').val()); | |
$('#order_Shippings_' + idx + '_fax_fax03').val($('#order_fax_fax03').val()); | |
$('#order_Shippings_' + idx + '_company_name').val($('#order_company_name').val()); | |
}); | |
// 会員検索 | |
$('#searchCustomerModalButton').on('click', function() { | |
var tbody = $('#searchCustomerModalList tbody'); | |
tbody.children().remove(); | |
$.ajax({ | |
type: 'POST', | |
data: { 'search_word' : $('#admin_search_customer_multi').val() }, | |
url: '{{ url('admin_order_search_customer') }}', | |
success: function(data) { | |
for (var i = 0; i < data.length; i++) { | |
// モーダルウィンドウ内に結果を出力. | |
var tr = $('<tr></tr>'); | |
var id = $('<td>').text(data[i]['id']); | |
var name = $('<td>').text(data[i]['name']); | |
var tel = $('<td>').text(data[i]['tel']); | |
var email = $('<td>').text(data[i]['email']); | |
var select = $('<td data-customer="' + data[i]['id'] + '"><button type="button" class="btn btn-default btn-sm">決定</button></td>'); | |
tr.append(id); | |
tr.append(name); | |
tr.append(tel); | |
tr.append(email); | |
tr.append(select); | |
tbody.append(tr); | |
// 決定ボタンに検索イベントを設定. | |
select.on('click', function() { | |
$.ajax({ | |
type: 'POST', | |
data: { 'id' : this.dataset.customer }, | |
url: '{{ url('admin_order_search_customer_by_id') }}', | |
success: function(data) { | |
// 顧客情報をフォームにセットする. | |
$('#order_CustomerId').html(data['id']); | |
$('#order_Customer').val(data['id']); | |
$('#order_name_name01').val(data['name01']); | |
$('#order_name_name02').val(data['name02']); | |
$('#order_kana_kana01').val(data['kana01']); | |
$('#order_kana_kana02').val(data['kana02']); | |
$('#order_zip_zip01').val(data['zip01']); | |
$('#order_zip_zip02').val(data['zip02']); | |
$('#order_address_pref').val(data['pref']); | |
$('#order_address_addr01').val(data['addr01']); | |
$('#order_address_addr02').val(data['addr02']); | |
$('#order_email').val(data['email']); | |
$('#order_tel_tel01').val(data['tel01']); | |
$('#order_tel_tel02').val(data['tel02']); | |
$('#order_tel_tel03').val(data['tel03']); | |
$('#order_fax_fax01').val(data['fax01']); | |
$('#order_fax_fax02').val(data['fax02']); | |
$('#order_fax_fax03').val(data['fax03']); | |
$('#order_company_name').val(data['company_name']); | |
// モーダルを閉じる. | |
$('#searchCustomerModal').modal('hide'); | |
}, | |
error: function() { | |
alert('search customer(by id) failed.'); | |
} | |
}); | |
}); | |
} | |
}, | |
error: function() { | |
alert('search customer failed.'); | |
} | |
}); | |
}); | |
$('#searchProductModal').on('show.bs.modal', function (event) { | |
var button = $(event.relatedTarget); | |
var idx = button.data('idx'); | |
var modal = $(this); | |
modal.find('#searchProductModalButton').attr('data-idx', idx); | |
}); | |
// 商品検索 | |
$('#searchProductModalButton').on('click', function() { | |
var list = $('#searchProductModalList'); | |
list.children().remove(); | |
var data = $(this).data(); | |
shipment_idx = data.idx; | |
shipmentItem_idx = $('.shipment_item_idx' + shipment_idx).length; | |
$.ajax({ | |
type: 'POST', | |
dataType: 'html', | |
data: { | |
'id' : $('#admin_search_product_id').val(), | |
'category_id' : $('#admin_search_product_category_id').val() | |
}, | |
url: '{{ url('admin_order_search_product') }}', | |
success: function(data) { | |
// モーダルに結果を書き出し. | |
$('#searchProductModalList').html(data); | |
}, | |
error: function() { | |
alert('search product failed.'); | |
} | |
}); | |
}); | |
// 受注明細行の行数カウンタ. | |
// 受注登録・編集画面上でグローバルな変数. | |
// search_product.twig/order_detail_prototype.twigで利用しています. | |
order_details_count = '{{ form.OrderDetails|length }}'; | |
// 項目数が多く、入力している項目によってEnter押下時に期待する動作が変わるので、いったん禁止 | |
$("input").on("keydown", function(e) { | |
if ((e.which && e.which === 13) || (e.keyCode && e.keyCode === 13)) { | |
return false; | |
} else { | |
return true; | |
} | |
}); | |
$(".delete-item").on("click", function(){ | |
$(this).parents(".item_box").remove(); | |
order_details_count--; | |
onChangeOrderDetailCount(order_details_count); | |
}); | |
var onChangeOrderDetailCount = function(order_details_count) { | |
if (order_details_count == 1) { | |
$(".delete-item").attr("disabled", "disabled"); | |
} else { | |
$(".delete-item").removeAttr("disabled"); | |
} | |
}; | |
onChangeOrderDetailCount(); | |
// 配送業者選択時にお届け時間を設定 | |
var times = {{ shippingDeliveryTimes|raw }}; | |
$('.shipping-delivery').change(function(){ | |
var data = $(this).data(); | |
setShippingDeliveryTime($(this).val(), data.idx); | |
}); | |
function setShippingDeliveryTime(val, idx){ | |
var $shippingDeliveryTime = $('.shipping-delivery-time[data-idx="' + idx + '"]'); | |
$shippingDeliveryTime.find('option').remove(); | |
$shippingDeliveryTime.append($('<option></option>').val('').text('指定なし')); | |
if (typeof(times[val]) !== 'undefined') { | |
for (var key in times[val]){ | |
text = times[val][key]; | |
$shippingDeliveryTime.append($('<option></option>') | |
.val(key) | |
.text(text)); | |
} | |
} | |
} | |
}); | |
var setModeAndSubmit = function(mode, keyname, keyid) { | |
document.form1.modal.value = mode; | |
if(keyname !== undefined && keyname !== "" && keyid !== undefined && keyid !== "") { | |
document.form1[keyname].value = keyid; | |
} | |
document.form1.submit(); | |
}; | |
</script> | |
{% endblock javascript %} | |
{% block main %} | |
<div class="row" id="aside_wrap"> | |
<form name="form1" method="post" action="?"> | |
<input type="hidden" name="modal" value=""> | |
{{ form_widget(form._token) }} | |
<div id="detail_wrap" class="col-md-12"> | |
<div class="col_inner"> | |
<div id="number_info_box" class="box no-header"> | |
<div id="number_info_box__body" class="box-body"> | |
<div class="row"> | |
<div id="number_info_box__order_status" class="col-sm-4"> | |
<h4>注文番号 <span class="number">{{ Order.id }}</span></h4> | |
<div class="form-group"> | |
{{ form_widget(form.OrderStatus) }} | |
{{ form_errors(form.OrderStatus) }} | |
</div> | |
<div id="number_info_box__order_status_info" class="small text-danger">キャンセルの場合は在庫数を手動で戻してください</div> | |
</div> | |
<div class="col-sm-6 col-sm-offset-2"> | |
<p id="number_info_box__order_date"><svg class="cb cb-clock"> <use xlink:href="#cb-clock" /></svg>受注日:{{ Order.order_date ? Order.order_date |date("Y/m/d H:i:s") : '' }}</p> | |
<p id="number_info_box__payment_date"><svg class="cb cb-clock"> <use xlink:href="#cb-clock" /></svg>入金日:{{ Order.payment_date ? Order.payment_date|date("Y/m/d H:i:s") : '' }}</p> | |
<p id="number_info_box__commit_date"><svg class="cb cb-clock"> <use xlink:href="#cb-clock" /></svg>発送日:{{ Order.commit_date ? Order.commit_date|date("Y/m/d H:i:s") : '' }}</p> | |
<p id="number_info_box__update_date"><svg class="cb cb-clock"> <use xlink:href="#cb-clock" /></svg>更新日:{{ Order.update_date ? Order.update_date|date("Y/m/d H:i:s") : '' }}</p> | |
</div> | |
</div> | |
</div><!-- /.box-body --> | |
</div><!-- /.box --> | |
</div> | |
<div id="customer_info_box" class="box accordion"> | |
<div id="customer_info_box__toggle" class="box-header toggle active"> | |
<h3 class="box-title">注文者情報<svg class="cb cb-angle-down icon_down"> <use xlink:href="#cb-angle-down" /></svg></h3> | |
</div><!-- /.box-header --> | |
<div id="customer_info_box__body" class="box-body accpanel" style="display: block;"> | |
<div id="customer_info_list" class="order_list form-horizontal"> | |
{% if Order.id is empty %} | |
<div id="customer_info_list__button_search" class="btn_area"> | |
<ul> | |
<li><a class="btn btn-default" data-toggle="modal" data-target="#searchCustomerModal">会員検索</a></li> | |
</ul> | |
</div> | |
{% endif %} | |
<div id="customer_info_list__customer" class="form-group"> | |
<div class="col-sm-3 col-lg-2">会員ID</div> | |
<div class="col-sm-9 col-lg-10"> | |
<p id="order_CustomerId">{{ form.Customer.vars.value is empty ? '非会員' : form.Customer.vars.value }}</p> | |
{{ form_widget(form.Customer) }} | |
{{ form_errors(form.Customer) }} | |
</div> | |
</div> | |
<div id="customer_info_list__name" class="form-group"> | |
{{ form_label(form.name) }} | |
<div class="col-sm-9 col-lg-10 input_name form-inline"> | |
{{ form_widget(form.name.name01, { attr : { placeholder: '姓' }}) }} | |
{{ form_widget(form.name.name02, { attr : { placeholder: '名' }}) }} | |
{{ form_errors(form.name.name01) }} | |
{{ form_errors(form.name.name02) }} | |
</div> | |
</div> | |
<div id="customer_info_list__kana" class="form-group"> | |
{{ form_label(form.kana) }} | |
<div class="col-sm-9 col-lg-10 input_name form-inline"> | |
{{ form_widget(form.kana.kana01, { attr : { placeholder : 'セイ' }}) }} | |
{{ form_widget(form.kana.kana02, { attr : { placeholder : 'メイ' }}) }} | |
{{ form_errors(form.kana.kana01) }} | |
{{ form_errors(form.kana.kana02) }} | |
</div> | |
</div> | |
{# 住所:郵便番号 #} | |
<div id="customer_info_list__address" class="form-group"> | |
{{ form_label(form.address) }} | |
<div id="customer_info_list__zip" class="col-sm-9 col-lg-10 input_zip form-inline"> | |
〒{{ form_widget(form.zip.zip01) }}-{{ form_widget(form.zip.zip02) }} | |
{{ form_errors(form.zip.zip01) }} | |
{{ form_errors(form.zip.zip02) }} | |
<span><button type="button" id="zip-search" class="btn btn-default btn-sm">郵便番号から自動入力</button></span> | |
</div> | |
</div> | |
{# 住所:都道府県 #} | |
<div class="form-group"> | |
<div id="customer_info_list__pref" class="col-sm-offset-2 col-sm-9 col-lg-10 form-inline"> | |
{{ form_widget(form.address.pref) }} | |
{{ form_errors(form.address.pref) }} | |
</div> | |
</div> | |
{# 住所:住所1 #} | |
<div class="form-group"> | |
<div id="customer_info_list__addr01" class="col-sm-offset-2 col-sm-9 col-lg-10"> | |
{{ form_widget(form.address.addr01, { attr : { placeholder : '市区町村名(例:千代田区神田神保町)'}} ) }} | |
{{ form_errors(form.address.addr01) }} | |
</div> | |
</div> | |
{# 住所:住所2 #} | |
<div class="form-group"> | |
<div id="customer_info_list__addr02" class="col-sm-offset-2 col-sm-9 col-lg-10"> | |
{{ form_widget(form.address.addr02, { attr : { placeholder : '番地・ビル名(例:1-3-5)' }}) }} | |
{{ form_errors(form.address.addr02) }} | |
</div> | |
</div> | |
{# メールアドレス #} | |
<div id="customer_info_list__email" class="form-group"> | |
{{ form_label(form.email) }} | |
<div class="col-sm-9 col-lg-10"> | |
{{ form_widget(form.email) }} | |
{{ form_errors(form.email) }} | |
</div> | |
</div> | |
{# 電話番号 #} | |
<div id="customer_info_list__tel" class="form-group"> | |
{{ form_label(form.tel) }} | |
<div class="col-sm-9 col-lg-10 input_tel form-inline"> | |
{{ form_widget(form.tel.tel01) }}-{{ form_widget(form.tel.tel02) }}-{{ form_widget(form.tel.tel03) }} | |
{{ form_errors(form.tel.tel01) }} | |
{{ form_errors(form.tel.tel02) }} | |
{{ form_errors(form.tel.tel03) }} | |
</div> | |
</div> | |
{# FAX番号 #} | |
<div id="customer_info_list__fax" class="form-group"> | |
{{ form_label(form.fax) }} | |
<div class="col-sm-9 col-lg-10 input_tel form-inline"> | |
{{ form_widget(form.fax.fax01) }}-{{ form_widget(form.fax.fax02) }}-{{ form_widget(form.fax.fax03) }} | |
{{ form_errors(form.fax) }} | |
</div> | |
</div> | |
{# 会社名 #} | |
<div id="customer_info_list__company_name" class="form-group"> | |
{{ form_label(form.company_name) }} | |
<div class="col-sm-9 col-lg-10"> | |
{{ form_widget(form.company_name) }} | |
{{ form_errors(form.company_name) }} | |
</div> | |
</div> | |
{# 注文時お問い合わせ #} | |
<div id="customer_info_list__message" class="form-group"> | |
{{ form_label(form.message) }} | |
<div class="col-sm-9 col-lg-10"> | |
{{ form_widget(form.message, { attr : { placeholder : '3000文字まで入力可能' }}) }} | |
{{ form_errors(form.message) }} | |
</div> | |
</div> | |
</div> | |
</div><!-- /.box-body --> | |
</div><!-- /.box --> | |
<div id="product_info_box" class="box accordion"> | |
<div id="product_info_box__toggle" class="box-header toggle active"> | |
<h3 class="box-title">受注商品情報<svg class="cb cb-angle-down icon_down"> <use xlink:href="#cb-angle-down" /></svg></h3> | |
</div><!-- /.box-header --> | |
<div id="product_info_box__body" class="box-body accpanel" style="display: block;"> | |
<div id="product_info_list" class="order_list"> | |
<div class="btn_area"> | |
<ul id="product_info_list__search_menu"> | |
{% if BaseInfo.optionMultipleShipping != 1 %} | |
<li><a class="btn btn-default" data-toggle="modal" data-target="#searchProductModal">商品の追加</a></li> | |
{% endif %} | |
<li><button type="submit" class="btn btn-default" name="mode" value="calc">計算結果の更新</button></li> | |
</ul> | |
</div> | |
<div class="tableish" | |
id="order_detail_list" | |
data-prototype=" | |
{% filter escape %} | |
{{ include('Order/order_detail_prototype.twig', { 'orderDetailForm': form.OrderDetails.vars.prototype }) }} | |
{% endfilter %}"> | |
{% for orderDetailForm in form.OrderDetails %} | |
<div id="product_info_list__item--{{ loop.index }}" class="item_box"> | |
{{ form_widget(orderDetailForm.Product) }} | |
{{ form_widget(orderDetailForm.ProductClass) }} | |
<div id="product_info_list__item_detail--{{ loop.index }}" class="item_detail"> | |
<div id="product_info_list__detail_name--{{ loop.index }}" class="item_name_area"> | |
<strong id="product_info_list__product_name--{{ loop.index }}" class="item_name">{{ orderDetailForm.vars.value.product_name }}</strong><br> | |
<span id="product_info_list__product_code--{{ loop.index }}" class="item_id small">{{ orderDetailForm.vars.value.product_code }}</span> | |
<span id="product_info_list__class_category_name--{{ loop.index }}" class="item_pattern small"> | |
{% if orderDetailForm.vars.value.class_category_name1 is not empty %} | |
/ ( | |
{{ orderDetailForm.vars.value.class_name1 }}: | |
{{ orderDetailForm.vars.value.class_category_name1 }} | |
{% if orderDetailForm.vars.value.class_category_name2 is not empty %} | |
/ | |
{{ orderDetailForm.vars.value.class_name2 }}: | |
{{ orderDetailForm.vars.value.class_category_name2 }} | |
{% endif %} | |
) | |
{% endif %} | |
</span> | |
</div> | |
<div class="row"> | |
<div id="product_info_list__price--{{ loop.index }}" class="col-md-4 col-lg-3 form-group form-inline text-right"> | |
<span class="input-group item_price col-xs-8 col-sm-6 col-md-12"> | |
{{ form_widget(orderDetailForm.price) }} | |
{{ form_errors(orderDetailForm.price) }} | |
</span> | |
</div> | |
<div class="col-md-4 col-lg-3 form-group form-inline text-right"> | |
<span id="product_info_list__quantity--{{ loop.index }}" class="item_quantity"> | |
{% if BaseInfo.optionMultipleShipping %} | |
数量:{{ form_widget(orderDetailForm.quantity, {'read_only': 'readonly'}) }} | |
{% else %} | |
数量:{{ form_widget(orderDetailForm.quantity) }} | |
{% endif %} | |
{{ form_errors(orderDetailForm.quantity) }} | |
</span> | |
</div> | |
<div class="col-md-4 col-lg-3 form-group form-inline text-right"> | |
<span id="product_info_list__tax_rate--{{ loop.index }}" class="item_tax"> | |
税率: | |
<span class="input-group"> | |
{{ form_widget(orderDetailForm.tax_rate) }} | |
{{ form_errors(orderDetailForm.tax_rate) }} | |
<span class="input-group-addon">%</span> | |
</span> | |
</span> | |
</div> | |
<div id="product_info_list__total_price--{{ loop.index }}" class="col-md-12 col-lg-3 item_subtotal text-right"> | |
<span>小計:</span> {{ orderDetailForm.vars.value.total_price|price }} | |
</div> | |
</div> | |
</div> | |
{% if BaseInfo.optionMultipleShipping %} | |
{% else %} | |
<div id="product_info_list__button_multiple_shipping_delete--{{ loop.index }}" class="icon_edit"> | |
<button class="btn btn-default btn-sm delete-item">削除</button> | |
</div> | |
{% endif %} | |
</div><!-- /.item_box --> | |
{% endfor %} | |
</div> | |
<div id="product_info_result_box__sub_price" class="row with-border2 no-margin text-right"> | |
<div class="col-lg-7 col-lg-offset-5"> | |
<dl id="product_info_result_box__body_sub_price" class="dl-horizontal"> | |
<dt id="product_info_result_box__subtotal">小計:</dt> | |
<dd>{{ Order.subtotal|price }}</dd> | |
<dt id="product_info_result_box__discount">値引き:</dt> | |
<dd class="form-group form-inline"> | |
{{ form_widget(form.discount) }} | |
{{ form_errors(form.discount) }} | |
</dd> | |
<dt id="product_info_result_box__delivery_fee_total">送料:</dt> | |
<dd class="form-group form-inline"> | |
{{ form_widget(form.delivery_fee_total) }} | |
{{ form_errors(form.delivery_fee_total) }} | |
</dd> | |
<dt id="product_info_result_box__charge">手数料:</dt> | |
<dd class="form-group form-inline"> | |
{{ form_widget(form.charge) }} | |
{{ form_errors(form.charge) }} | |
</dd> | |
</dl> | |
</div> | |
</div> | |
<div id="product_info_result_box__summary" class="row with-border2 no-margin text-right ta"> | |
<div class="col-lg-7 col-lg-offset-5"> | |
<dl id="product_info_result_box__body_summary" class="dl-horizontal"> | |
<dt id="product_info_result_box__total">合計:</dt> | |
<dd>{{ Order.total|price }}</dd> | |
<dt id="product_info_result_box__payment_total">お支払合計:</dt> | |
<dd>{{ Order.payment_total|price }}</dd> | |
</dl> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
{# お支払情報 #} | |
<div id="payment_info_box" class="box accordion"> | |
<div id="payment_info_box__toggle" class="box-header toggle active"> | |
<h3 class="box-title">お支払情報<svg class="cb cb-angle-down icon_down"> <use xlink:href="#cb-angle-down" /></svg></h3> | |
</div><!-- /.box-header --> | |
<div id="payment_info_box__body" class="box-body accpanel" style="display: block;"> | |
<dl id="payment_info_box__payment_method" class="dl-horizontal"> | |
<dt>お支払方法</dt> | |
<dd class="form-group form-inline"> | |
{{ form.vars.value.payment_method }}<br/> | |
{{ form_widget(form.Payment) }} | |
{{ form_errors(form.Payment) }} | |
<p class="small">お支払方法の変更に伴う手数料の変更は手動にてお願いします。</p> | |
</dd> | |
</dl> | |
</div> | |
</div> | |
{# お届け先情報 #} | |
{% if BaseInfo.optionMultipleShipping %} | |
<div id="shipping_info__button_new"><button type="submit" class="btn btn-default" name="mode" value="add_delivery">お届け先を新規追加</button></div> | |
{% endif %} | |
{% for shippingForm in form.Shippings %} | |
{% set shippingIndex = loop.index0 %} | |
<div id="shipping_info_box--{{ loop.index }}" class="box accordion"> | |
<div id="shipping_info_box__toggle--{{ loop.index }}" class="box-header toggle active"> | |
<h3 class="box-title">お届け先情報{% if form.Shippings|length > 1 %}({{ loop.index }}){% endif %}<svg class="cb cb-angle-down icon_down"> <use xlink:href="#cb-angle-down" /></svg></h3> | |
</div><!-- /.box-header --> | |
<div id="shipping_info_box__body--{{ loop.index }}" class="box-body accpanel" style="display: block;"> | |
<div id="shipping_info_list--{{ loop.index }}" class="order_list"> | |
<div class="btn_area"> | |
<ul id="shipping_info_list__menu--{{ loop.index }}"> | |
<li><a class="btn btn-default copyCustomerToShippingButton" data-idx="{{ loop.index0 }}">注文者情報をコピー</a></li> | |
{% if BaseInfo.optionMultipleShipping %} | |
<li><a class="btn btn-default" data-toggle="modal" data-target="#searchProductModal" data-idx="{{ loop.index0 }}">商品の追加</a></li> | |
{% endif %} | |
</ul> | |
</div> | |
{% if BaseInfo.optionMultipleShipping %} | |
<div class="tableish" | |
id="shipment_item_list{{ loop.index0 }}" | |
data-prototype=" | |
{% filter escape %} | |
{{ include('Order/shipment_item_prototype.twig', { 'shipmentItemForm': shippingForm.ShipmentItems.vars.prototype }) }} | |
{% endfilter %}"> | |
{% for shipmentItemForm in shippingForm.ShipmentItems %} | |
{{ form_widget(shipmentItemForm.Product) }} | |
{{ form_widget(shipmentItemForm.ProductClass) }} | |
<div id="shipment_item__id--{{ shippingIndex }}" class="item_box shipment_item_idx{{ shippingIndex }}"> | |
<div id="shipment_item__detail--{{ shippingIndex }}" class="item_detail"> | |
<div id="shipment_item__name_detail--{{ shippingIndex }}" class="item_name_area"> | |
<strong id="shipment_item__product_name--{{ shippingIndex }}" class="item_name">{{ shipmentItemForm.vars.value.product_name }}</strong><br> | |
<span id="shipment_item__product_code--{{ shippingIndex }}" class="item_id small">{{ shipmentItemForm.vars.value.product_code }}</span> | |
<span id="shipment_item__class_category_name--{{ shippingIndex }}" class="item_pattern small"> | |
{% if shipmentItemForm.vars.value.class_category_name1 is not empty %} | |
/ ( | |
{{ shipmentItemForm.vars.value.class_name1 }}: | |
{{ shipmentItemForm.vars.value.class_category_name1 }} | |
{% if shipmentItemForm.vars.value.class_category_name2 is not empty %} | |
/ | |
{{ shipmentItemForm.vars.value.class_name2 }}: | |
{{ shipmentItemForm.vars.value.class_category_name2 }} | |
{% endif %} | |
) | |
{% endif %} | |
</span> | |
</div> | |
<div id="shipment_item__info_item--{{ shippingIndex }}" class="row"> | |
<div id="shipment_item__price--{{ shippingIndex }}" class="col-md-4 col-lg-3 form-group form-inline text-right"> | |
{{ form_widget(shipmentItemForm.price, {'read_only': 'readonly'}) }} | |
</div> | |
<div id="shipment_item__quantity--{{ shippingIndex }}" class="col-md-4 col-lg-3 form-group form-inline text-right"> | |
<span class="item_quantity"> | |
数量:{{ form_widget(shipmentItemForm.quantity, {'attr': {'class': 'shipment_quantity'}}) }} | |
{{ form_errors(shipmentItemForm.quantity) }} | |
</span> | |
</div> | |
</div> | |
</div> | |
</div><!-- /.item_box --> | |
{{ form_widget(shipmentItemForm.itemidx) }} | |
{% endfor %} | |
</div> | |
{% endif %} | |
<hr> | |
<div id="shipment_item_detail--{{ loop.index }}" class="form-horizontal"> | |
<div id="shipment_item_detail__name--{{ loop.index }}" class="form-group"> | |
{{ form_label(shippingForm.name) }} | |
<div class="col-sm-9 col-lg-10 input_name form-inline"> | |
{{ form_widget(shippingForm.name.name01, { attr : { placeholder: '姓' }}) }} | |
{{ form_widget(shippingForm.name.name02, { attr : { placeholder: '名' }}) }} | |
{{ form_errors(shippingForm.name.name01) }} | |
{{ form_errors(shippingForm.name.name02) }} | |
</div> | |
</div> | |
<div id="shipment_item_detail__kana--{{ loop.index }}" class="form-group"> | |
{{ form_label(shippingForm.kana) }} | |
<div class="col-sm-9 col-lg-10 input_name form-inline"> | |
{{ form_widget(shippingForm.kana.kana01, { attr : { placeholder : 'セイ' }}) }} | |
{{ form_widget(shippingForm.kana.kana02, { attr : { placeholder : 'メイ' }}) }} | |
{{ form_errors(shippingForm.kana.kana01) }} | |
{{ form_errors(shippingForm.kana.kana02) }} | |
</div> | |
</div> | |
<div id="shipment_item_detail__company_name--{{ loop.index }}" class="form-group"> | |
{{ form_label(shippingForm.company_name) }} | |
<div class="col-sm-9 col-lg-10"> | |
{{ form_widget(shippingForm.company_name) }} | |
{{ form_errors(shippingForm.company_name) }} | |
</div> | |
</div> | |
{# 住所:郵便番号 #} | |
<div id="shipment_item_detail__address--{{ loop.index }}" class="form-group"> | |
{{ form_label(shippingForm.address) }} | |
<div id="shipment_item_detail__zip--{{ loop.index }}" class="col-sm-9 col-lg-10 input_zip form-inline"> | |
〒{{ form_widget(shippingForm.zip.zip01) }}-{{ form_widget(shippingForm.zip.zip02) }} | |
{{ form_errors(shippingForm.zip.zip01) }} | |
{{ form_errors(shippingForm.zip.zip02) }} | |
</div> | |
</div> | |
{# 住所:都道府県 #} | |
<div class="form-group"> | |
<div id="shipment_item_detail__pref--{{ loop.index }}" class="col-sm-offset-2 col-sm-9 col-lg-10 form-inline"> | |
{{ form_widget(shippingForm.address.pref) }} | |
{{ form_errors(shippingForm.address.pref) }} | |
</div> | |
</div> | |
{# 住所:住所1 #} | |
<div class="form-group"> | |
<div id="shipment_item_detail__addr01--{{ loop.index }}" class="col-sm-offset-2 col-sm-9 col-lg-10"> | |
{{ form_widget(shippingForm.address.addr01, { attr : { placeholder : '市区町村名(例:千代田区神田神保町)'}} ) }} | |
{{ form_errors(shippingForm.address.addr01) }} | |
</div> | |
</div> | |
{# 住所:住所2 #} | |
<div class="form-group"> | |
<div id="shipment_item_detail__addr02--{{ loop.index }}" class="col-sm-offset-2 col-sm-9 col-lg-10"> | |
{{ form_widget(shippingForm.address.addr02, { attr : { placeholder : '番地・ビル名(例:1-3-5)' }}) }} | |
{{ form_errors(shippingForm.address.addr02) }} | |
</div> | |
</div> | |
{# 電話番号 #} | |
<div id="shipment_item_detail__tel--{{ loop.index }}" class="form-group"> | |
{{ form_label(shippingForm.tel) }} | |
<div class="col-sm-9 col-lg-10 input_tel form-inline"> | |
{{ form_widget(shippingForm.tel.tel01) }}-{{ form_widget(shippingForm.tel.tel02) }}-{{ form_widget(shippingForm.tel.tel03) }} | |
{{ form_errors(shippingForm.tel.tel01) }} | |
{{ form_errors(shippingForm.tel.tel02) }} | |
{{ form_errors(shippingForm.tel.tel03) }} | |
</div> | |
</div> | |
{# FAX番号 #} | |
<div id="shipment_item_detail__fax--{{ loop.index }}" class="form-group"> | |
{{ form_label(shippingForm.fax) }} | |
<div class="col-sm-9 col-lg-10 input_tel form-inline"> | |
{{ form_widget(shippingForm.fax.fax01) }}-{{ form_widget(shippingForm.fax.fax02) }}-{{ form_widget(shippingForm.fax.fax03) }} | |
{{ form_errors(shippingForm.fax) }} | |
</div> | |
</div> | |
{# 配送業者 #} | |
<div id="shipment_item_detail__delivery--{{ loop.index }}" class="form-group"> | |
{{ form_label(shippingForm.Delivery) }} | |
<div id="shipment_item_detail__delivery_name--{{ loop.index }}" class="col-sm-9 col-lg-10"> | |
{% if shippingForm.vars.value.shipping_delivery_name is not empty %} | |
{{ shippingForm.vars.value.shipping_delivery_name }}<br/> | |
{% endif %} | |
{{ form_widget(shippingForm.Delivery, {'attr': {'style': 'width:auto', 'class': 'shipping-delivery', 'data-idx': loop.index0}}) }} | |
{{ form_errors(shippingForm.Delivery) }} | |
</div> | |
</div> | |
{# お届け時間 #} | |
<div id="shipment_item_detail__delivery_time--{{ loop.index }}" class="form-group"> | |
{{ form_label(shippingForm.DeliveryTime) }} | |
<div class="col-sm-9 col-lg-10"> | |
{% if shippingForm.vars.value.shipping_delivery_time is not empty %} | |
{{ shippingForm.vars.value.shipping_delivery_time }}<br/> | |
{% else %} | |
指定なし | |
{% endif %} | |
{{ form_widget(shippingForm.DeliveryTime, {'attr': {'style': 'width:auto', 'class': 'shipping-delivery-time', 'data-idx': loop.index0}}) }} | |
{{ form_errors(shippingForm.DeliveryTime) }} | |
</div> | |
</div> | |
{# お届け日 #} | |
<div id="shipment_item_detail__shipping_delivery_date--{{ loop.index }}" class="form-group"> | |
{{ form_label(shippingForm.shipping_delivery_date) }} | |
<div class="col-sm-9 col-lg-10"> | |
{{ form_widget(shippingForm.shipping_delivery_date) }} | |
{{ form_errors(shippingForm.shipping_delivery_date) }} | |
</div> | |
</div> | |
<div class="extra-form"> | |
{% for f in form.getIterator %} | |
{% if f.vars.name matches '[^plg*]' %} | |
{{ form_row(f) }} | |
{% endif %} | |
{% endfor %} | |
</div> | |
</div> | |
</div> | |
</div><!-- /.box-body --> | |
</div> | |
{% endfor %} | |
<div id="shop_info_box" class="box"> | |
<div id="shop_info_box__header" class="box-header"> | |
<h3 class="box-title">ショップ用メモ欄</h3> | |
</div><!-- /.box-header --> | |
<div id="shop_info_box__note" class="box-body">{{ form_widget(form.note) }}</div> | |
</div><!-- /.box --> | |
<div id="detail__insert_button" class="row btn_area"> | |
<p class="col-xs-8 col-xs-offset-2 col-sm-4 col-sm-offset-4 text-center"> | |
<button type="submit" class="btn btn-primary btn-block btn-lg" name="mode" value="register">受注情報を登録</button> | |
</p> | |
<!-- /.col --> | |
</div> | |
<div id="detail__back_button" class="row hidden-xs hidden-sm"> | |
<div class="col-xs-10 col-xs-offset-1 col-sm-6 col-sm-offset-3 text-center btn_area"> | |
{% if id is not null %} | |
<p><a href="{{ url('admin_order_page', { page_no: app.session.get('eccube.admin.order.search.page_no')|default('1') }) }}?resume=1">戻る</a></p> | |
{% endif %} | |
</div> | |
</div> | |
</div><!-- /.col --> | |
</form> | |
</div> | |
{% endblock %} | |
{% block modal %} | |
{# 会員検索モーダル #} | |
<div class="modal fade" id="searchCustomerModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> | |
<div class="modal-dialog modal-lg"> | |
<div id="search_customer_modal_box" class="modal-content"> | |
<div id="search_customer_modal_box__header" class="modal-header"> | |
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span class="modal-close" aria-hidden="true">×</span></button> | |
<h4 class="modal-title" id="myModalLabel">会員検索</h4> | |
</div> | |
<div id="search_customer_modal_box__body" class="modal-body"> | |
<div class="form-group"> | |
{{ form_widget(searchCustomerModalForm.multi, { attr : { placeholder : '会員ID・メールアドレス・お名前' } } ) }} | |
</div> | |
<div class="extra-form form-group"> | |
{% for f in searchCustomerModalForm.getIterator %} | |
{% if f.vars.name matches '[^plg*]' %} | |
{{ form_label(f) }} | |
{{ form_widget(f) }} | |
{{ form_errors(f) }} | |
{% endif %} | |
{% endfor %} | |
</div> | |
<div id="search_customer_modal_box__button_search" class="form-group"> | |
<button type="button" id="searchCustomerModalButton" class="btn btn-primary" >検索</button> | |
</div> | |
<div id="search_customer_modal_box__body_inner" class="form-group"> | |
<div class="table-responsive"> | |
<table class="table table-striped" id="searchCustomerModalList"> | |
<thead > | |
<tr id="search_customer_modal_box__body_inner_header"> | |
<th>会員ID</th> | |
<th>お名前(カナ)</th> | |
<th>電話番号</th> | |
<th>メールアドレス</th> | |
<th>決定</th> | |
</tr> | |
</thead> | |
<tbody id="search_customer_modal_box__body_inner_body"> | |
</tbody> | |
</table> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
{# 商品検索モーダル #} | |
<div class="modal fade" id="searchProductModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> | |
<div class="modal-dialog modal-lg"> | |
<div id="search_product_modal_box" class="modal-content"> | |
<div id="search_product_modal_box__header" class="modal-header"> | |
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span class="modal-close" aria-hidden="true">×</span></button> | |
<h4 class="modal-title" id="myModalLabel">商品検索</h4> | |
</div> | |
<div id="search_product_modal_box__body" class="modal-body"> | |
<div id="search_product_modal_box__id" class="form-group"> | |
{{ form_widget(searchProductModalForm.id, { attr : { placeholder : '商品名・ID・コード' } } ) }} | |
</div> | |
<div id="search_product_modal_box__category_id" class="form-group"> | |
{{ form_widget(searchProductModalForm.category_id) }} | |
</div> | |
<div class="extra-form form-group"> | |
{% for f in searchProductModalForm.getIterator %} | |
{% if f.vars.name matches '[^plg*]' %} | |
{{ form_label(f) }} | |
{{ form_widget(f) }} | |
{{ form_errors(f) }} | |
{% endif %} | |
{% endfor %} | |
</div> | |
<div id="search_product_modal_box__button_search" class="form-group"> | |
<button type="button" id="searchProductModalButton" class="btn btn-primary">検索</button> | |
</div> | |
<div class="form-group" id="searchProductModalList"> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
{% endblock %} |