google.charts.load('current', {'packages':['table']});
var system_cookie="viviendo_fingerprint"
var finger_print = "";
var cookie_day = 3;
var finger_print_components = [];
var base_url = "https://www.interior-classica.com/viviendo";
var show_estimate_list = [];
//見積もり商品表示
var estimate_show = () =>{
document.getElementById("title_id").innerHTML = "御見積";
document.getElementById("address_id").innerHTML = estimate_map['address'];
document.getElementById("addressee_id").innerHTML = estimate_map['addressee'] +" 様";
for ( var r_key in estimate_map['row']) {
var rowMap = estimate_map['row'][r_key];
var eRow = {};
eRow['mode']="estimate";
eRow['quantity']=rowMap['quantity'];
eRow['element_id']=rowMap['element_id'];
eRow['seq']=rowMap['seq'];
eRow['remarks']="";
eRow['fixed']='';
eRow['img_real_path']=rowMap['img_real_path'];;
eRow['product_name']=rowMap['product_name'];
eRow['product_code']=rowMap['product_code'];
eRow['size']=rowMap['size'];
eRow['unit_price']=rowMap['unit_price'];
eRow['amount_excluding_tax']=rowMap['amount_excluding_tax']-0;
if((eRow['amount_excluding_tax']-0) < 0){
eRow['consumption_tax'] = "0";
}else{
eRow['consumption_tax'] = Math.floor((rowMap['amount_excluding_tax'] - 0) * (100 + (now_tax-0)) / 100) - (rowMap['amount_excluding_tax'] - 0);
}
eRow['amount_of_money']=(eRow['amount_excluding_tax'] - 0)+(eRow['consumption_tax'] - 0)
show_estimate_list.push(eRow);
}
estimate_row_show();
}
//登録商品表示
var customer_product_show = () =>{
document.getElementById("title_id").innerHTML = "御見積";
//端末情報からお客様情報を検索しない
//document.getElementById("address_id").innerHTML = estimate_map['address'];
//document.getElementById("addressee_id").innerHTML = estimate_map['addressee'];
/*
* id
cusotomer_id
terminal_id
img_real_path
element_id
product_name
product_code
size
quantity
unit_price
amount_of_money
remarks
expiration_date
*/
for ( var r_key in terminal_map['customer_product']) {
var rowMap = terminal_map['customer_product'][r_key];
var eRow = {};
eRow['quantity']=rowMap['quantity'];
eRow['element_id']=rowMap['element_id'];
eRow['seq']="";
eRow['remarks']=rowMap['remarks'];
eRow['fixed']="";
eRow['img_real_path']=rowMap['img_real_path'];;
eRow['product_name']=rowMap['product_name'];
eRow['product_code']=rowMap['product_code'];
eRow['size']=rowMap['size'];
eRow['unit_price']=rowMap['unit_price'];
eRow['amount_excluding_tax']=(rowMap['unit_price']-0)*(rowMap['quantity']-0);
if((eRow['amount_excluding_tax']-0) <0){
eRow['consumption_tax'] = "0";
}else{
eRow['consumption_tax'] = Math.floor((eRow['amount_excluding_tax'] - 0) * (100 + (now_tax-0)) / 100) - (eRow['amount_excluding_tax'] - 0);
}
eRow['amount_of_money']=(eRow['amount_excluding_tax'] - 0)+(eRow['consumption_tax'] - 0)
show_estimate_list.push(eRow);
}
estimate_row_show();
}
var estimate_row_show = () =>{
var row_element = document.getElementById("row_id");
var total_element = document.getElementById("total_id");
var total_amount_excluding_tax = 0;
var total_consumption_tax = 0;
var total_amount_of_money = 0;
var total_delivery_fee = 0;
var total_measurement = 0;
for ( var r_key in show_estimate_list) {
var rowMap = show_estimate_list[r_key];
total_amount_excluding_tax = total_amount_excluding_tax + (rowMap['amount_excluding_tax']-0);
total_consumption_tax = total_consumption_tax + (rowMap['consumption_tax']-0);
total_amount_of_money = total_amount_of_money + (rowMap['amount_of_money']-0);
var productdisply_element = document.createElement('div');
productdisply_element.setAttribute('class', 'productdisply');
var productttle_element = document.createElement('div');
productttle_element.setAttribute('class', 'productttle');
productttle_element.innerHTML = rowMap['product_name'];
productdisply_element.appendChild(productttle_element);
var p_element = document.createElement('p');
p_element.innerHTML = rowMap['size'];
productdisply_element.appendChild(p_element);
var img_element = document.createElement('img');
img_element.setAttribute('class', 'img-fluid');
img_element.setAttribute('src', base_url+rowMap['img_real_path']);
img_element.setAttribute('alt', '');
productdisply_element.appendChild(img_element);
if(rowMap['mode']=="estimate"){
p_element = document.createElement('p');
p_element.setAttribute('class', 'qty');
var span_element = document.createElement('span');
span_element.innerHTML = "数量:"+rowMap['quantity'];
p_element.appendChild(span_element);
productdisply_element.appendChild(p_element);
}else{
p_element = document.createElement('p');
p_element.setAttribute('class', 'qty');
var span_element = document.createElement('span');
span_element.innerHTML = "数量を選択";
p_element.appendChild(span_element);
var qtystyle_element = document.createElement('select');
qtystyle_element.setAttribute('class', 'qtystyle');
qtystyle_element.setAttribute('onchange', 'change_quantity('+r_key+');');
qtystyle_element.setAttribute('id', 'select_quantity_'+r_key);
for(var i = 0;i<8;i++){
var option_element = document.createElement('option');
option_element.setAttribute('value',i);
option_element.innerHTML = i;
qtystyle_element.appendChild(option_element);
}
p_element.appendChild(qtystyle_element);
productdisply_element.appendChild(p_element);
}
p_element = document.createElement('p');
p_element.setAttribute('class', 'productprice');
if(rowMap['amount_of_money']>=0){
p_element.innerHTML = "¥"+separate(rowMap['amount_of_money'])+"(税込)";
}else{
p_element.innerHTML = "¥"+separate(rowMap['amount_of_money'])+"";
}
productdisply_element.appendChild(p_element);
row_element.appendChild(productdisply_element);
}
/*
*/
var totalprice_element = document.createElement('div');
totalprice_element.setAttribute('class', 'totalprice');
var tableprice_element = document.createElement('table');
tableprice_element.setAttribute('class', 'tableprice');
var tbody_element = document.createElement('tbody');
var tr_element = document.createElement('tr');
var left_td_element = document.createElement('td');
left_td_element.setAttribute('class', 'text-left');
left_td_element.innerHTML = "商品の合計金額";
tr_element.appendChild(left_td_element);
var right_td_element = document.createElement('td');
right_td_element.setAttribute('class', 'text-right');
right_td_element.innerHTML = "¥"+separate(total_amount_excluding_tax);
tr_element.appendChild(right_td_element);
tbody_element.appendChild(tr_element);
/*
tr_element = document.createElement('tr');
var left_td_element = document.createElement('td');
left_td_element.setAttribute('class', 'text-left');
left_td_element.innerHTML = "配送料";
tr_element.appendChild(left_td_element);
var right_td_element = document.createElement('td');
right_td_element.setAttribute('class', 'text-right');
right_td_element.innerHTML = "¥"+total_delivery_fee;
tr_element.appendChild(left_td_element);
tbody_element.appendChild(tr_element);
*/
tr_element = document.createElement('tr');
var left_td_element = document.createElement('td');
left_td_element.setAttribute('class', 'text-left');
left_td_element.innerHTML = "消費税";
tr_element.appendChild(left_td_element);
var right_td_element = document.createElement('td');
right_td_element.setAttribute('class', 'text-right');
right_td_element.innerHTML = "¥"+separate(total_consumption_tax);
tr_element.appendChild(right_td_element);
tbody_element.appendChild(tr_element);
tr_element = document.createElement('tr');
var left_td_element = document.createElement('td');
left_td_element.setAttribute('class', 'text-left');
left_td_element.innerHTML = "ご請求額";
tr_element.appendChild(left_td_element);
var right_td_element = document.createElement('td');
right_td_element.setAttribute('class', 'text-right text-danger');
right_td_element.innerHTML = "¥"+separate(total_amount_of_money);
tr_element.appendChild(right_td_element);
tbody_element.appendChild(tr_element);
tbody_element.appendChild(tr_element);
tableprice_element.appendChild(tbody_element);
totalprice_element.appendChild(tableprice_element);
var button_element = document.createElement('button');
button_element.setAttribute('class', 'btn btn-lg btncontinue');
button_element.setAttribute('type', 'button');
button_element.setAttribute('onclick', "location.href = \"./addressee_input.php?id=" + e_estimate_id + "\"");
button_element.innerHTML = "ご購入手続き";
totalprice_element.appendChild(button_element);
total_element.appendChild(totalprice_element);
}
var getEstimate = (callbackFunction)=>{
$.ajax({
type : "GET",
url : "./ra/get_estimate_e/",
data : {
e_estimate_id : e_estimate_id
},
dataType : "json",
cache : false,
success : function(data) {
callbackFunction(data);
}
});
}
var setTerminal = (callbackFunction)=>{
setCookie(system_cookie,finger_print,cookie_day);
$.ajax({
type : "POST",
url : "./ra/set_terminal/",
data : {
finger_print : finger_print,
os:os,
terminal_type:terminal_type,
browser:userAgent,
token:document.getElementById("token").value
},
dataType : "json",
cache : false,
success : function(data) {
callbackFunction(data);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
//alert(XMLHttpRequest.status);
//alert(errorThrown.message);
}
});
}
var getTerminal = (callbackFunction)=>{
if(getCookie(system_cookie)==null){
$.ajax({
type : "GET",
url : "./ra/get_terminal/",
data : {
finger_print : finger_print
},
dataType : "json",
cache : false,
success : function(data) {
callbackFunction(data);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
//alert(XMLHttpRequest.status);
//alert(errorThrown.message);
}
});
}else{
$.ajax({
type : "GET",
url : "./ra/get_terminal/",
data : {
finger_print : getCookie(system_cookie)
},
dataType : "json",
cache : false,
success : function(data) {
callbackFunction(data);
},
error:function(data) {
},
});
}
}
var access_history = false;
var estimate_mode = false;
var terminal_map = {};
var customer_product_history = false;
var customer_product = false;
var estimate_map = {};
var settlement_step = "";
var fastFunc = function (){
//一通り取得系
//var class_id = document.getElementById("test_id").innerHTML = document.cookie +"
" +finger_print;
//アクセス歴
getTerminal((data) => {
for ( var r_key in data["data"]) {
var rowMap = data["data"][r_key];
terminal_map = rowMap;
access_history = true;
for ( var r_key in terminal_map["customer_product"]) {
customer_product=true;
break;
}
for ( var r_key in terminal_map["customer_product_history"]) {
customer_product_history=true;
break;
}
break;
}
//見積もりIDの正当性チェック
if(validity_of_id){
getEstimate((data =>{
if(data["data"]==null){
estimate_mode = false;
}else{
estimate_map = data["data"];
settlement_step = estimate_map['settlement_step'];
estimate_mode = true;
}
action_selection();
}))
}else{
action_selection();
}
})
}
var action_selection = function(){
if(access_history){
if(estimate_mode){
if(settlement_step=="見積未入力"){
if(customer_product){
if(customer_product_history){
//メッセージに見積もり入力中と表示しつつ登録済み商品を表示。履歴ページへのリンク
var msg = "申し訳ございません。ただいま見積もり入力中でございます。
" +
"しばらくお待ちいただき、再度アクセスお願いします。
";
// "商品読込履歴";
"";
document.getElementById("msg_id").innerHTML = msg;
}else{
//メッセージに見積もり入力中と表示しつつ登録済み商品を表示。
var msg = "申し訳ございません。ただいま見積もり入力中でございます。
" +
"しばらくお待ちいただき、再度アクセスお願いします。
";
document.getElementById("msg_id").innerHTML = msg;
}
}else{
if(customer_product_history){
var msg = "申し訳ございません。ただいま見積もり入力中でございます。
" +
"しばらくお待ちいただき、再度アクセスお願いします。
" +
"商品読込履歴";
document.getElementById("msg_id").innerHTML = msg;
}else{
//メッセージに見積もり入力中と表示
var msg = "申し訳ございません。ただいま見積もり入力中でございます。
" +
"しばらくお待ちいただき、再度アクセスお願いします。
";
document.getElementById("msg_id").innerHTML = msg;
}
}
}else if(settlement_step=="見積入力済"){
if(customer_product){
if(customer_product_history){
//アクセス歴更新、見積もりと商品合算表示。履歴ページへのリンク
//var msg = "商品読込履歴";
//document.getElementById("msg_id").innerHTML = msg;
setTerminal(function(){});
estimate_show();
//customer_product_show();
}else{
//アクセス歴更新、見積もりと商品合算表示。
setTerminal(function(){});
estimate_show();
//customer_product_show();
}
}else{
if(customer_product_history){
//アクセス歴更新、見積もり表示。
setTerminal(function(){});
estimate_show();
}else{
//アクセス歴更新、見積もり表示。履歴ページへのリンク
//var msg = "商品読込履歴";
//document.getElementById("msg_id").innerHTML = msg;
setTerminal(function(){});
estimate_show();
}
}
}else if(settlement_step=="期限切れ"||settlement_step=="購入済み"){
if(customer_product){
if(customer_product_history){
//メッセージに無効理由を表示しつつ登録済み商品を表示。履歴ページへのリンク
var msg = "こちらの見積もりは"+settlement_step+"でございます。
";
//"商品読込履歴";
"";
document.getElementById("msg_id").innerHTML = msg;
}else{
//メッセージに無効理由を表示しつつ登録済み商品を表示
var msg = "こちらの見積もりは"+settlement_step+"でございます。
";
document.getElementById("msg_id").innerHTML = msg;
//customer_product_show();
}
}else{
if(customer_product_history){
//メッセージに無効理由を表示しつつ履歴ページへのリンク
var msg = "こちらの見積もりは"+settlement_step+"でございます。
" +
//"商品読込履歴";
"";
document.getElementById("msg_id").innerHTML = msg;
}else{
//メッセージに無効理由を表示しつつクラシカへのリンク
var msg = "こちらの見積もりは"+settlement_step+"でございます。
" +
"CLASSICAホームへ";
document.getElementById("msg_id").innerHTML = msg;
}
}
}else{
if(customer_product){
if(customer_product_history){
//メッセージに無効理由を表示しつつ登録済み商品を表示。履歴ページへのリンク
var msg = "こちらの見積もりは利用できません
" +
"QR登録済みの商品を購入できます。
" +
//"商品読込履歴";
"";
document.getElementById("msg_id").innerHTML = msg;
customer_product_show();
}else{
//メッセージに無効理由を表示しつつ登録済み商品を表示
var msg = "こちらの見積もりは利用できません
" +
"QR登録済みの商品を購入できます。
";
document.getElementById("msg_id").innerHTML = msg;
customer_product_show();
}
}else{
if(customer_product_history){
//メッセージに無効理由を表示しつつ履歴ページへのリンク
var msg = "こちらの見積もりは利用できません
" +
//"商品読込履歴";
"";
document.getElementById("msg_id").innerHTML = msg;
}else{
//メッセージに無効理由を表示しつつクラシカへのリンク
var msg = "こちらの見積もりは利用できません
" +
"CLASSICAホームへ";
document.getElementById("msg_id").innerHTML = msg;
}
}
}
}else{
if(customer_product){
if(customer_product_history){
//読み込み商品をのみを見積として表示。履歴ページへのリンク
var msg = "商品読込履歴";
document.getElementById("msg_id").innerHTML = msg;
customer_product_show();
}else{
//読み込み商品をのみを見積として表示
customer_product_show();
}
}else{
if(customer_product_history){
//履歴ページにリダイレクト
location.href='https://www.interior-classica.com';
}else{
//クラシカにリダイレクト
location.href='https://www.interior-classica.com';
}
}
}
}else{
if(estimate_mode){
if(settlement_step=="見積未入力"){
//メッセージに見積もり入力中と表示
var msg = "申し訳ございません。ただいま見積もり入力中でございます。
" +
"しばらくお待ちいただき、再度アクセスお願いします。
" +
"CLASSICAホームへ";
document.getElementById("msg_id").innerHTML = msg;
}else if(settlement_step=="見積入力済"){
//アクセス歴保存、見積もり表示
setTerminal(function(){});
estimate_show();
}else if(settlement_step=="期限切れ"||settlement_step=="購入済み"){
//メッセージに無効理由を表示
var msg = "こちらの見積もりは"+settlement_step+"でございます。
" +
"CLASSICAホームへ";
document.getElementById("msg_id").innerHTML = msg;
}else {
//メッセージに無効理由を表示
var msg = "こちらの見積もりは利用できません
" +
"CLASSICAホームへ";
document.getElementById("msg_id").innerHTML = msg;
}
}else{
//クラシカにリダイレクト
location.href='https://www.interior-classica.com';
}
}
}
//端末取得
var os="";
var terminal_type="";
var userAgent = "";
if (window.requestIdleCallback) {
requestIdleCallback(function () {
Fingerprint2.get(function (components) {
finger_print = Fingerprint2.x64hash128(components.map(function (pair) { return pair.value }).join(), 31);
finger_print_components = components;
console.log(components) // an array of components: {key: ...,
// value: ...}
for ( var r_key in components) {
var rowMap = components[r_key];
if(rowMap['key']=="platform"){
os = rowMap['value'];
}
if(rowMap['key']=="userAgent"){
userAgent = rowMap['value'];
}
}
if(userAgent.indexOf('iPhone') > 0 || userAgent.indexOf('iPod') > 0 || userAgent.indexOf('Android') > 0 && userAgent.indexOf('Mobile') > 0){
terminal_type = 'sp';
}else if(userAgent.indexOf('iPad') > 0 || userAgent.indexOf('Android') > 0){
terminal_type = 'tab';
}else{
terminal_type = 'other';
}
setTimeout(function() {
fastFunc();
}, 300); // 300ミリ秒(0.3秒)
})
})
} else {
setTimeout(function () {
Fingerprint2.get(function (components) {
finger_print = Fingerprint2.x64hash128(components.map(function (pair) { return pair.value }).join(), 31);
finger_print_components = components;
console.log(components) // an array of components: {key: ...,
// value: ...}
for ( var r_key in components) {
var rowMap = components[r_key];
if(rowMap['key']=="platform"){
os = rowMap['value'];
}
if(rowMap['key']=="userAgent"){
userAgent = rowMap['value'];
}
}
fastFunc();
})
}, 500)
}
var getCookie = function( name ){
var result = null;
var cookieName = name + '=';
var allcookies = document.cookie;
var position = allcookies.indexOf( cookieName );
if( position != -1 )
{
var startIndex = position + cookieName.length;
var endIndex = allcookies.indexOf( ';', startIndex );
if( endIndex == -1 ){
endIndex = allcookies.length;
}
result = decodeURIComponent(
allcookies.substring( startIndex, endIndex ) );
}
return result;
}
var setCookie = function(name,value,day){
var expire = new Date();
expire.setTime( expire.getTime() + 1000 * 3600 * 24 *day);
document.cookie = name+'=' + encodeURIComponent( value )+';expires=' + expire.toUTCString();
}
function isInteger(x) {
return Math.round(x) === x;
}
function separate(num){
// 文字列にする
num = String(num);
var len = num.length;
// 再帰的に呼び出すよ
if(len > 3){
// 前半を引数に再帰呼び出し + 後半3桁
return separate(num.substring(0,len-3))+','+num.substring(len-3);
} else {
return num;
}
}
function swap(a,x,y){
a[x]=[a[y],a[y]=a[x]][0];
return a;
}
//読み込み終わったら実行
//google.charts.setOnLoadCallback(fastFunc);