Created
May 6, 2010 11:32
-
-
Save foxweb/392028 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
nsMain.OrderForm = Ext.extend(Ext.form.FormPanel, { | |
initComponent: function(){ | |
var old_delivery_type; | |
var old_delivery_city; | |
var old_delivery_country; | |
var old_delivery_metro; | |
Ext.apply(this, { | |
url: '/office/server/callcenter/server.php', | |
frame: false, | |
old_delivery_type: '', | |
border: false, | |
autoScroll: true, | |
buttonAlign: 'center', | |
items: [{ | |
layout: 'form', | |
border: false, | |
bodyStyle: 'padding: 0 0 0 10', | |
items: [{ | |
xtype: 'label', | |
name: 'text_label', | |
id: 'text_label', | |
text: 'Номер заказа', | |
height: 40 | |
}, { | |
xtype: 'textfield', | |
name: 'id', | |
id: 'id', | |
fieldLabel: 'ID заказа', | |
hideLabel: true, | |
hidden: true | |
}, { | |
xtype: 'textfield', | |
name: 'order_number', | |
disabled: true, | |
hideLabel: true, | |
hidden: true, | |
id: 'order_number', | |
fieldLabel: 'Номер заказа' | |
}, { | |
xtype: 'OrderItemsGrid', | |
id: 'order-items-grid', | |
height: 150 | |
}, { | |
layout: 'column', | |
border: false, | |
items: [{ | |
columnWidth: .4, | |
border: false, | |
layout: 'form', | |
bodyStyle: 'padding: 5 5 0 10', | |
items: [{ | |
xtype: 'OrderCommentTab', | |
Comment: 'ordercreate-comment', | |
width: 400, | |
Comment_CS: 'ordercreate-comment_cs', | |
Comment_ST: 'ordercreate-comment_st', | |
id: 'orderdatacomment-tab' | |
}, { | |
xtype: 'CustomerDataTab', | |
width: 400, | |
nameid: '', | |
id: 'customerdata-tab' | |
}] | |
}, { | |
columnWidth: .3, | |
border: false, | |
layout: 'form', | |
bodyStyle: 'padding: 5 5 0 10', | |
items: [{ | |
xtype: 'textfield', | |
disabled: true, | |
id: 'code', | |
name: 'code', | |
hideLabel: true, | |
hidden: true, | |
fieldLabel: 'Код скидки', | |
anchor: '95%' | |
}, { | |
xtype: 'textfield', | |
id: 'discount', | |
disabled: true, | |
hideLabel: true, | |
hidden: true, | |
name: 'discount', | |
fieldLabel: 'Скидка', | |
anchor: '95%' | |
}, { | |
html: '<center><b>Информация доставке</b></center>', | |
border: false | |
}, { | |
xtype: 'textfield', | |
name: 'delivery_id', | |
id: 'delivery_id', | |
hideLabel: true, | |
hidden: true, | |
anchor: '95%' | |
}, { | |
xtype: 'LSTCombo', | |
id: 'delivery_type', | |
name: 'delivery_type', | |
fieldLabel: 'Способ доставки', | |
tblName: 'lst_delivery_types', | |
order: 'name', | |
forceSelection: true, | |
listWidth: 150, | |
triggerAction: 'all', | |
emptyText: 'Способ доставки', | |
selectOnFocus: true, | |
displayField: 'name', | |
valueField: 'id', | |
anchor: '95%' | |
}, { | |
xtype: 'datefield', | |
fieldLabel: 'Дата доставки', | |
renderer: Ext.util.Format.dateRenderer('d.m.Y'), | |
format: 'd.m.Y', | |
name: 'delivery_date', | |
id: 'delivery_date', | |
anchor: '95%' | |
}, { | |
layout: 'column', | |
border: false, | |
items: [{ | |
columnWidth: .45, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'numberfield', | |
name: 'delivery_time_min', | |
id: 'delivery_time_min', | |
fieldLabel: 'Время доствки с ', | |
labelSeparator: '', | |
anchor: '95%' | |
}] | |
}, { | |
columnWidth: .10, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'label', | |
text: ' до ', | |
width: 50 | |
}] | |
}, { | |
columnWidth: .45, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'numberfield', | |
name: 'delivery_time_max', | |
id: 'delivery_time_max', | |
hideLabel: true, | |
labelSeparator: '', | |
anchor: '95%' | |
}] | |
}] | |
}, { | |
xtype: 'ASCombo', | |
id: 'delivery_country', | |
name: 'delivery_country', | |
fieldLabel: 'Страна', | |
listWidth: 250, | |
tblName: 'lst_country', | |
forceSelection: true, | |
triggerAction: 'all', | |
comboParam: 'fc_country', | |
comboValueField: 'id', | |
comboResponseField: 'name', | |
comboDisplayField: 'name', | |
emptyText: 'Страна', | |
selectOnFocus: true, | |
displayField: 'name', | |
valueField: 'id', | |
anchor: '95%' | |
}, { | |
xtype: 'ASCombo', | |
id: 'delivery_city', | |
name: 'delivery_city', | |
fieldLabel: 'Город', | |
tblName: 'lst_city', | |
forceSelection: false, | |
comboParam: 'fc_city', | |
listWidth: 250, | |
comboValueField: 'id', | |
comboResponseField: 'name', | |
comboDisplayField: 'name', | |
triggerAction: 'all', | |
emptyText: 'Город', | |
selectOnFocus: true, | |
displayField: 'name', | |
valueField: 'id', | |
anchor: '95%', | |
listeners: { | |
select: function(combo, record, index){ | |
//this.changed = true; | |
//alert(record.get('id')); | |
Ext.getCmp('delivery_place').conditions = Ext.encode([['del', ' = ', '0'], ['city_id', ' = ', record.get('id')]]); | |
} | |
} | |
}, { | |
xtype: 'ASCombo', | |
id: 'delivery_metro', | |
name: 'delivery_metro', | |
fieldLabel: 'Метро', | |
tblName: 'lst_metro', | |
listWidth: 250, | |
forceSelection: false, | |
comboParam: 'fc_metro', | |
comboValueField: 'id', | |
comboResponseField: 'name', | |
comboDisplayField: 'name', | |
triggerAction: 'all', | |
emptyText: 'Метро', | |
selectOnFocus: false, | |
displayField: 'name', | |
valueField: 'id', | |
anchor: '95%' | |
}, { | |
//xtype: 'LSTCombo', | |
xtype: 'ASCombo', | |
id: 'delivery_place', | |
name: 'delivery_place', | |
fieldLabel: 'Пункт самовывоза', | |
comboParam: 'fc_delivery_place', | |
comboValueField: 'id', | |
comboResponseField: 'address', | |
comboDisplayField: 'address', | |
width: 250, | |
listWidth: 250, | |
tblName: 'lst_delivery_place', | |
forceSelection: false, | |
conditions: Ext.encode([['del', ' = ', '0']]), | |
order: ' address', | |
triggerAction: 'all', | |
emptyText: 'Пункт самовывоза', | |
selectOnFocus: false, | |
displayField: 'address', | |
valueField: 'id', | |
anchor: '95%', | |
listeners: { | |
blur: function(){ | |
//this.changed = true; | |
//alert(Number(Ext.getCmp('delivery_city').getValue())); | |
if (Number(Ext.getCmp('delivery_city').getValue())) | |
this.conditions = Ext.encode([['del', ' = ', '0'], ['city_id', ' = ', Number(Ext.getCmp('delivery_city').getValue())]]); | |
//this.store.reload(); | |
//alert('ok'); | |
//Ext.getCmp('delivery_place').conditions = Ext.encode([['del',' = ', '0'],['city_id', ' = ', newValue]]); | |
} | |
} | |
}, { | |
xtype: 'textfield', | |
fieldLabel: 'Индекс', | |
id: 'delivery_index', | |
name: 'delivery_index', | |
anchor: '95%' | |
}, { | |
xtype: 'textfield', | |
fieldLabel: 'Улица', | |
id: 'delivery_address', | |
name: 'delivery_address', | |
anchor: '95%' | |
}, { | |
layout: 'column', | |
border: false, | |
items: [{ | |
columnWidth: .10, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'label', | |
text: 'дом.', | |
width: 50 | |
}] | |
}, { | |
columnWidth: .23, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'textfield', | |
fieldLabel: 'дом.', | |
hideLabel: true, | |
labelSeparator: '', | |
id: 'delivery_building', | |
name: 'delivery_building', | |
width: 60 | |
}] | |
}, { | |
columnWidth: .1, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'label', | |
text: 'кор.', | |
width: 50 | |
}] | |
}, { | |
columnWidth: .24, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'textfield', | |
fieldLabel: 'кор.', | |
labelSeparator: '', | |
hideLabel: true, | |
labelStyle: 'padding-left: 10px; width: 40px;', | |
style: 'width: 40px;', | |
id: 'delivery_building_1', | |
name: 'delivery_building_1', | |
width: 60 | |
}] | |
}, { | |
columnWidth: .1, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'label', | |
text: 'кв.', | |
width: 40 | |
}] | |
}, { | |
columnWidth: .23, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'numberfield', | |
fieldLabel: 'кв.', | |
labelSeparator: '', | |
hideLabel: true, | |
labelStyle: 'padding-left: 10px; width: 40px;', | |
style: 'width: 40px;', | |
id: 'delivery_flat', | |
name: 'delivery_flat', | |
width: 50 | |
}] | |
}] | |
}] | |
}, { | |
columnWidth: .3, | |
border: false, | |
layout: 'form', | |
bodyStyle: 'padding: 5 5 0 10', | |
items: [{ | |
html: '<center><b><u>Общие данные</u></b></center>', | |
border: false | |
}, { | |
xtype: 'textfield', | |
fieldLabel: 'Статус заказа', | |
id: 'status_bo', | |
name: 'status_bo', | |
anchor: '95%' | |
}, { | |
xtype: 'numberfield', | |
fieldLabel: 'Стоимость доставки', | |
id: 'delivery_cost', | |
name: 'delivery_cost', | |
anchor: '95%', | |
listeners: { | |
change: function(field, newValue, oldValue){ | |
//alert(Number(Ext.getCmp('all_cost').getValue())-Number(oldValue)+Number(newValue)); | |
Ext.getCmp('all_cost').setValue(Number(Ext.getCmp('all_cost').getValue()) - Number(oldValue) + Number(newValue)); | |
} | |
} | |
}, { | |
xtype: 'textfield', | |
fieldLabel: 'Итого', | |
id: 'all_cost', | |
disabled: true, | |
name: 'all_cost', | |
anchor: '95%' | |
}, { | |
html: '<center><b>Информация об оплате</b></center>', | |
border: false | |
}, { | |
xtype: 'PaymentGrid', | |
id: 'payment-grid', | |
height: 150, | |
width: 300 | |
}, /*{ | |
xtype: 'LSTCombo', | |
id: 'payment_type', | |
name: 'payment_type', | |
fieldLabel: 'Способ оплаты', | |
tblName: 'lst_payment_types', | |
forceSelection: true, | |
listWidth: 150, | |
triggerAction: 'all', | |
emptyText: 'Способ оплаты', | |
selectOnFocus: true, | |
displayField: 'name', | |
valueField: 'id', | |
anchor: '95%' | |
},*/ | |
{ | |
xtype: 'datefield', | |
format: 'd.m.Y', | |
renderer: Ext.util.Format.dateRenderer('d.m.Y'), | |
fieldLabel: 'Дата оплаты', | |
name: 'date_paid', | |
id: 'date_paid', | |
anchor: '95%' | |
}] | |
}] | |
}] | |
}], | |
buttons: [{ | |
text: 'Пересчитать скидку', | |
handler: function(){ | |
var orderId = Ext.getCmp('id').getValue(); | |
if (!Ext.getCmp('orderdiscount-window')) { | |
var win = new nsMain.OrderDiscountWindow({ | |
id: 'orderdiscount-window' | |
}); | |
win.show(); | |
Ext.getCmp('orderdiscount-order-id').setValue(id); | |
} | |
} //function handler | |
}, { | |
text: 'Сохранить изменения', | |
handler: function(){ | |
// | |
Ext.MessageBox.buttonText.yes = 'Да'; | |
Ext.MessageBox.buttonText.no = 'Нет'; | |
Ext.MessageBox.confirm('Подтверждение', 'Сохранить изменения?', function(btn){ | |
if (btn == 'yes') { | |
Ext.getCmp('order-form').dataSave(false); | |
} | |
}) | |
} //function handler | |
}, { | |
text: 'Оформить заказ', | |
handler: function(){ | |
//проверить наличие всех товаров на складе | |
var gridId = 'order-items-grid'; | |
var records = Ext.getCmp(gridId).store.getRange(); | |
var flag = false; | |
Ext.each(records, function(r, i){ | |
if (r.get('quantity') > r.get('cnt') && r.get('e_book') == 0) { | |
flag = true; | |
}; | |
}, this); | |
//проверить чтобы был оплачен безнал | |
var gridId = 'payment-grid'; | |
var records = Ext.getCmp(gridId).store.getRange(); | |
var flag_pay = true; | |
Ext.each(records, function(r, i){ | |
if (!r.get('date_paid') && | |
(r.get('payment_type') == 2 || r.get('payment_type') == 3 || r.get('payment_type') == 4 || | |
r.get('payment_type') == 5 || | |
r.get('payment_type') == 6 || | |
r.get('payment_type') == 7 || | |
r.get('payment_type') == 8 || | |
r.get('payment_type') == 10)) { | |
flag_pay = false; | |
}; | |
}, this); | |
//alert(flag_pay); | |
//alert(Number(Ext.getCmp('payment_cost').getValue())); | |
if (flag) { | |
Ext.MessageBox.show({ | |
msg: "Нехватка товара на скаладе! Оформить заказ нельзя!" | |
}); | |
} | |
else | |
{ if (!flag_pay) { | |
Ext.MessageBox.show({ | |
msg: "Заказ не оплачен!" | |
}); | |
} | |
else | |
{ | |
if (Number(Ext.getCmp('all_cost').getValue()) != Number(Ext.getCmp('paymentgrid_cost').getValue())) | |
{ | |
if (Number(Ext.getCmp('all_cost').getValue()) < Number(Ext.getCmp('paymentgrid_cost').getValue())) | |
{ | |
var order_id = Ext.getCmp('id').getValue(); | |
//пересчет сумм | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'return_money_for_order', | |
condition: Ext.encode({ | |
'id': order_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
if (success) { | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
//alert(responseObj.success); | |
if (responseObj.success) | |
{ | |
Ext.MessageBox.show({ | |
msg: "Была пересчитана сумма к оплате" | |
}); | |
//оформление заказов | |
Ext.MessageBox.buttonText.yes = 'Да'; | |
Ext.MessageBox.buttonText.no = 'Нет'; | |
Ext.MessageBox.confirm('Подтверждение', 'Оформить заказ?', function(btn){ | |
if (btn == 'yes') { | |
Ext.getCmp('order-form').dataSave(7); | |
} | |
}); | |
} | |
else | |
{ | |
Ext.MessageBox.show({ | |
msg: "Не удалось пересчитать сумму к оплате у заказа" | |
}); | |
} | |
} | |
else | |
{ | |
Ext.MessageBox.show({ | |
msg: "Ошибка в работе сервера" | |
}); | |
} | |
} | |
}; //o | |
Ext.Ajax.request(o); | |
} | |
else | |
{ | |
Ext.MessageBox.show({ | |
msg: "Не cовпадает сумма оплаты и сумма заказа" | |
}); | |
} | |
} | |
else { | |
//оформление заказов | |
Ext.MessageBox.buttonText.yes = 'Да'; | |
Ext.MessageBox.buttonText.no = 'Нет'; | |
Ext.MessageBox.confirm('Подтверждение', 'Оформить заказ?', function(btn){ | |
if (btn == 'yes') { | |
Ext.getCmp('order-form').dataSave(7); | |
} | |
}) | |
} | |
} | |
} | |
} //function handler | |
}, { | |
text: 'Отложить', | |
handler: function(){ | |
//Открыть окно для выбора причины | |
var orderId = Ext.getCmp('id').getValue(); | |
//alert('откладывание заказа '+orderId); | |
if (!Ext.getCmp('orderwait-window')) { | |
var win = new nsMain.OrderWaitWindow({ | |
id: 'orderwait-window' | |
}); | |
win.show(); | |
Ext.getCmp('wait-order-id').setValue(id); | |
} | |
} //function handler | |
}, { | |
text: 'Аннулировать', | |
handler: function(){ | |
var date_paid = Ext.getCmp('date_paid').getValue(); | |
//alert(date_paid); | |
if (date_paid) { | |
Ext.MessageBox.show({ | |
msg: "Заказ оплачен! Аннулировать нельзя!" | |
}); | |
} | |
else { | |
Ext.MessageBox.buttonText.yes = 'Да'; | |
Ext.MessageBox.buttonText.no = 'Нет'; | |
Ext.MessageBox.confirm('Подтверждение', 'Аннулировать?', function(btn){ | |
if (btn == 'yes') { | |
var id = Ext.getCmp('id').getValue(); | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'annul_order', | |
tblName: 'tbl_order', | |
values: Ext.encode({ | |
'status_bo': 6 | |
}), | |
condition: Ext.encode({ | |
'id': id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
if (success) { | |
Ext.MessageBox.show({ | |
msg: "Заказ аннулированн" | |
}); | |
} | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (responseObj.data[0].comment) | |
{ | |
Ext.getCmp('ordercreate-comment').setValue(responseObj.data[0].comment); | |
} | |
if (responseObj.message) { | |
Ext.MessageBox.show({ | |
msg: responseObj.message | |
}); | |
} | |
} | |
}; //o | |
if (id) { | |
Ext.Ajax.request(o); | |
} | |
} | |
}); | |
} | |
} | |
}] //buttons | |
}); //Ext.apply | |
nsMain.OrderForm.superclass.initComponent.apply(this, arguments); | |
}, // eo function initComponent | |
onRender: function(){ | |
nsMain.OrderForm.superclass.onRender.apply(this, arguments); | |
}, // eo function onRender | |
dataLoad: function(orderId){ | |
//alert(orderId); | |
Ext.getCmp('ordercreate-comment').setValue(''); | |
Ext.getCmp('ordercreate-comment_cs').setValue(''); | |
Ext.getCmp('ordercreate-comment_st').setValue(''); | |
this.getForm().load({ | |
url: '/office/server/callcenter/server.php', | |
method: 'POST', | |
params: { | |
action: 'orderForm', | |
id: orderId | |
}, | |
success: function(form, response){ | |
Ext.getCmp('order-items-grid').dataLoad(orderId); | |
Ext.getCmp('payment-grid').dataLoad(orderId); | |
Ext.getCmp('text_label').setText('№ заказа - ' + response.result.data.order_number + | |
' Код скидки: ' + | |
response.result.data.code + | |
' Скидка клиента: ' + | |
((response.result.data.customer_discount) ? (response.result.data.customer_discount * 100 + '%') : ('0%')) + | |
' RМ: ' + | |
((response.result.data.rm_account) ? (response.result.data.rm_account) : ('0'))+ | |
' Скидка заказа: '+ | |
((response.result.data.discount) ? (response.result.data.discount * 100 + '%') : ('0%'))); | |
//alert(response.result.data.delivery_city_id); | |
Ext.getCmp('ordercreate-commentorder_id').setValue(response.result.data.id); | |
Ext.getCmp('ordercreate-comment').setValue(response.result.data.order_comment); | |
Ext.getCmp('ordercreate-comment_cs').setValue(response.result.data.comment_cs); | |
Ext.getCmp('ordercreate-comment_st').setValue(response.result.data.comment_st); | |
if (response.result.data.delivery_city_id) { | |
Ext.getCmp('delivery_place').conditions = Ext.encode([['del', ' = ', '0'], ['city_id', ' = ', response.result.data.delivery_city_id]]); | |
} | |
else { | |
Ext.getCmp('delivery_place').conditions = Ext.encode([['del', ' = ', '0']]); | |
} | |
Ext.getCmp('order-form').delivery_type_cnt = response.result.data.delivery_type_cnt; | |
Ext.getCmp('order-form').old_delivery_type = response.result.data.delivery_type_id; | |
Ext.getCmp('order-form').old_delivery_type_name = response.result.data.delivery_type; | |
Ext.getCmp('order-form').old_delivery_city = response.result.data.delivery_city_id; | |
Ext.getCmp('order-form').old_delivery_country = response.result.data.delivery_country_id; | |
Ext.getCmp('order-form').delivery_place = response.result.data.delivery_place_id; | |
Ext.getCmp('main-viewport').render(); | |
} | |
}); | |
}, | |
getDeliveryCost: function(orderId){ | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
params: { | |
action: 'getDeliveryCost', | |
id: orderId | |
}, | |
callback: function(options, success, response){ | |
//alert('callback'); | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (responseObj.id) { | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
} | |
} | |
}; | |
Ext.Ajax.request(o); | |
}, | |
dataSave: function(status){ | |
//о клиенте | |
var customer_id = Ext.getCmp('customer_id').getValue(); | |
var s = {}; | |
s.firstname = Ext.getCmp('firstname').getValue(); | |
s.middlename = Ext.getCmp('middlename').getValue(); | |
s.lastname = Ext.getCmp('lastname').getValue(); | |
s.phone = Ext.getCmp('phone').getValue(); | |
s.email = Ext.getCmp('email').getValue(); | |
var birthdate = Ext.getCmp('birthdate').getValue(); | |
if (birthdate) | |
s.birthdate = birthdate; | |
//organization | |
var org = {}; | |
var orgid = Ext.getCmp('organization_data_id').getValue(); | |
org.name = Ext.getCmp('name').getValue(); | |
org.kpp = Ext.getCmp('kpp').getValue(); | |
org.inn = Ext.getCmp('inn').getValue(); | |
org.r_s = Ext.getCmp('r_s').getValue(); | |
org.address = Ext.getCmp('address').getValue(); | |
org.bank = Ext.getCmp('bank').getValue(); | |
org.kor_s = Ext.getCmp('kor_s').getValue(); | |
org.bik = Ext.getCmp('bik').getValue(); | |
if (org.name && org.kpp && org.r_s && org.bank && org.kor_s && org.bik && org.address) { | |
var action = 'update'; | |
if (!orgid) { | |
action = 'new'; | |
} | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
params: { | |
action: action, | |
tblName: 'tbl_organization_data', | |
values: Ext.encode(org), | |
condition: Ext.encode({ | |
'id': orgid | |
}) | |
//,saveValue: Ext.encode(s) | |
}, //params | |
callback: function(options, success, response){ | |
//alert('callback'); | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (responseObj.id) { | |
Ext.getCmp('organization_data_id').setValue(responseObj.id); | |
Ext.MessageBox.show({ | |
msg: 'Cоздана организация с id: ' + responseObj.id | |
}); | |
s.organization_data_id = responseObj.id; | |
s.is_organization = 'true'; | |
var clientdata = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'update', | |
tblName: 'tbl_customer', | |
values: Ext.encode(s), | |
condition: Ext.encode({ | |
'id': customer_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
//alert('callback'); | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
} | |
}; | |
Ext.Ajax.request(clientdata); | |
} | |
//save client data | |
} | |
}; | |
Ext.Ajax.request(o); | |
} | |
else { | |
var clientdata = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'update', | |
tblName: 'tbl_customer', | |
values: Ext.encode(s), | |
condition: Ext.encode({ | |
'id': customer_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
//alert('callback'); | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
} | |
}; | |
Ext.Ajax.request(clientdata); | |
} | |
//save data to tbl_order | |
var d = {}; | |
if (status) { | |
d.status_bo = status; | |
} | |
var order_id = Ext.getCmp('id').getValue(); | |
//var payment_type = Number(Ext.getCmp('payment_type').getValue()); | |
var date_paid = Ext.getCmp('date_paid').getValue(); | |
var delivery_cost = Number(Ext.getCmp('delivery_cost').getValue()); | |
if (date_paid) | |
d.date_paid = date_paid; | |
//if (payment_type) d.payment_type = payment_type; | |
if (delivery_cost || delivery_cost == 0) | |
d.delivery_cost = delivery_cost; | |
//доставка // Пересчет!!!!! | |
f = {}; | |
var form_id = Ext.getCmp('order-form'); | |
var action = 'update'; | |
var delivery_type = Number(Ext.getCmp('delivery_type').getValue()); | |
var delivery_place = Number(Ext.getCmp('delivery_place').getValue()); | |
var delivery_city = (Ext.getCmp('delivery_city').getRawValue()) ? Number(Ext.getCmp('delivery_city').getValue()): ''; | |
var delivery_country = Number(Ext.getCmp('delivery_country').getValue()); | |
// for comment, change delivery type | |
var com_del_type = {}; | |
tmp_delivery_type = delivery_type; | |
if (!delivery_type && Ext.getCmp('delivery_type').getRawValue()) { | |
tmp_delivery_type = form_id.old_delivery_type; | |
} | |
if (Number(form_id.old_delivery_type) != Number(tmp_delivery_type)) { | |
com_del_type.comment = 'изменение способа доставки с ' + form_id.old_delivery_type_name + ' на ' + Ext.getCmp('delivery_type').getRawValue(); | |
} | |
//----- | |
var delivery_id = Ext.getCmp('delivery_id').getValue(); | |
var delivery_index = Ext.getCmp('delivery_index').getValue(); | |
var delivery_address = Ext.getCmp('delivery_address').getValue(); | |
var delivery_building = Ext.getCmp('delivery_building').getValue(); | |
//var comment = Ext.getCmp('comment').getValue(); | |
var delivery_building_1 = Ext.getCmp('delivery_building_1').getValue(); | |
var delivery_flat = Ext.getCmp('delivery_flat').getValue(); | |
var delivery_date = Ext.getCmp('delivery_date').getValue(); | |
var delivery_time_min = Number(Ext.getCmp('delivery_time_min').getValue()); | |
var delivery_time_max = Number(Ext.getCmp('delivery_time_max').getValue()); | |
if (delivery_date) { | |
f.delivery_date = delivery_date; | |
} | |
else { | |
f.delivery_date = 'NULL'; | |
} | |
if (delivery_place) { | |
f.delivery_place = delivery_place; | |
} | |
else if (!Ext.getCmp('delivery_place').getRawValue()) | |
{ | |
f.delivery_place = 'NULL'; | |
} | |
if (delivery_country) { | |
f.delivery_country = delivery_country; | |
} | |
else { | |
if (action == 'new' && form_id.old_delivery_country) { | |
f.delivery_country = form_id.old_delivery_country | |
} | |
} | |
if (delivery_type) { | |
f.delivery_type = delivery_type; | |
} | |
else { | |
if (action == 'new') { | |
f.delivery_type = form_id.old_delivery_type | |
} | |
} | |
if (delivery_city) { | |
f.delivery_city = delivery_city; | |
} | |
else { | |
//alert(Ext.getCmp('delivery_city').getRawValue()); | |
if (!Ext.getCmp('delivery_city').getRawValue()) | |
{ | |
f.delivery_city = 'NULL'; | |
} | |
if (action == 'new' && form_id.old_delivery_city) { | |
f.delivery_city = form_id.old_delivery_city | |
} | |
} | |
f.delivery_index = delivery_index; | |
f.delivery_address = delivery_address; | |
//f.delivery_comment = comment; | |
f.delivery_building = delivery_building; | |
f.delivery_building_1 = delivery_building_1; | |
f.delivery_flat = (delivery_flat) ? delivery_flat : 'NULL'; | |
f.delivery_time_max = (delivery_time_max) ? delivery_time_max : 'NULL'; | |
f.delivery_time_min = (delivery_time_min) ? delivery_time_min : 'NULL'; | |
var delivery_metro = Number(Ext.getCmp('delivery_metro').getValue()); | |
f.delivery_metro = (delivery_metro) ? delivery_metro : 'NULL'; | |
/* | |
if (Ext.getCmp('delivery_metro').getRawValue()) | |
{ | |
var delivery_metro = Number(Ext.getCmp('delivery_metro').getValue()); | |
if (delivery_metro) { f.delivery_metro = delivery_metro;} | |
} | |
else | |
{ | |
if (action == 'update') f.delivery_metro = 'NULL'; | |
} | |
*/ | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: action, | |
tblName: 'tbl_order_delivery', | |
values: Ext.encode(f), | |
condition: Ext.encode({ | |
'id': delivery_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
var y = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'update', | |
tblName: 'tbl_order', | |
values: Ext.encode(d), | |
condition: Ext.encode({ | |
'id': order_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
//alert(responseObj.success); | |
if (! responseObj.success) | |
{ | |
Ext.MessageBox.show({ | |
msg: responseObj.message | |
}); | |
} | |
if (success && f.delivery_type && responseObj.success) { | |
form_id.old_delivery_type = f.delivery_type; | |
form_id.old_delivery_type_name = Ext.getCmp('delivery_type').getRawValue(); | |
} | |
if (success && com_del_type.comment && responseObj.success) { | |
var om = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'addcomment', | |
tblName: 'tbl_order', | |
autocom: 1, | |
values: Ext.encode(com_del_type), | |
condition: Ext.encode({ | |
'id': order_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (success) { | |
Ext.getCmp('ordercreate-comment').setValue(responseObj.data[0].comment); | |
} | |
} | |
}; | |
Ext.Ajax.request(om); | |
} | |
if (success && status && responseObj.success) { | |
Ext.MessageBox.show({ | |
msg: 'Заказ оформлен' | |
}); | |
Ext.Ajax.request({ | |
url: '/office/server/callcenter/server.php', | |
method: 'POST', | |
params: { | |
action: 'delete', | |
tblName: 'tbl_order_reserve', | |
condition: Ext.encode({ | |
'order_id': order_id | |
}) | |
} | |
}); | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'addcomment', | |
tblName: 'tbl_order', | |
autocom: 1, | |
values: Ext.encode({ | |
'comment': ' оформил ' | |
}), | |
condition: Ext.encode({ | |
'id': order_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (success) { | |
Ext.getCmp('ordercreate-comment').setValue(responseObj.data[0].comment); | |
} | |
} | |
}; | |
Ext.Ajax.request(o); | |
var add_data_for_comment = ''; | |
del_type = (f.delivery_type) ? Number(f.delivery_type) : Number(form_id.old_delivery_type); | |
var del_city = (delivery_city)? delivery_city : form_id.old_delivery_city; | |
var del_place = (delivery_place)? delivery_place : form_id.delivery_place; | |
var exp_courier = ''; | |
switch (del_type) { | |
case 2: | |
exp_courier = " экспресс "; | |
case 1: | |
var del_date = delivery_date.getDate() + '.' + (delivery_date.getMonth() + 1) + '.' + delivery_date.getFullYear(); | |
add_data_for_comment = 'К ' +exp_courier+ del_date + ' с ' + ((delivery_time_min) ? delivery_time_min : '9') + ' по ' + ((delivery_time_max) ? delivery_time_max : '22'); | |
//alert(add_data_for_comment); | |
break; | |
case 3: | |
if (del_place == 346) { | |
add_data_for_comment = ' C Вятская'; | |
} | |
else | |
if (del_city == 1) { | |
add_data_for_comment = 'С Москва'; | |
} | |
else | |
if (del_city == 2) { | |
add_data_for_comment = 'С Питер'; | |
} | |
else { | |
add_data_for_comment = 'С Регионы'; | |
} | |
break; | |
case 7: | |
case 8: | |
add_data_for_comment = 'П'; | |
break; | |
default: | |
add_data_for_comment = Ext.getCmp('delivery_type').getRawValue(); | |
break; | |
} | |
var a = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'addcomment', | |
autocom: 1, | |
firstrow: 1, | |
tblName: 'tbl_order', | |
values: Ext.encode({ | |
'comment_st': add_data_for_comment | |
}), | |
condition: Ext.encode({ | |
'id': order_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (success) { | |
Ext.getCmp('ordercreate-comment_st').setValue(responseObj.data[0].comment_st); | |
} | |
} | |
}; | |
Ext.Ajax.request(a); | |
} | |
} | |
}; | |
Ext.Ajax.request(y); | |
Ext.getCmp('order-items-grid').dataSave(); | |
//Ext.getCmp('payment-grid').dataSave(); | |
} | |
}; | |
function alert_obj(obj) { | |
var txt = ''; | |
for (var i in obj) { | |
txt += i + "---" + obj[i] + "\n"; | |
} | |
alert(txt); | |
} | |
var payment_check = false; | |
del_type = (f.delivery_type) ? Number(f.delivery_type) : Number(form_id.old_delivery_type); | |
if (del_type != 8) | |
{ | |
var records = Ext.getCmp('payment-grid').store.getRange(); | |
Ext.each(records, function(r, i) { | |
if (r.modified) | |
{ | |
var o = r.getChanges(); | |
pay = o['name']; | |
} | |
else | |
{ | |
pay = r.get('payment_type'); | |
} | |
if(pay == 9) payment_check = true; | |
}); | |
} | |
Ext.getCmp('payment-grid').dataSave(); | |
Ext.getCmp('order-items-grid').dataSave(); | |
if (payment_check) | |
{ | |
Ext.MessageBox.show({ | |
msg: 'Неверные способы оплаты у заказа' | |
}); | |
return; | |
} | |
Ext.Ajax.request(o); | |
} | |
}); | |
Ext.reg('OrderForm', nsMain.OrderForm); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var week_days = ['', 'понедельникам','вторниками','средам','четвергам','пятницам','субботам','воскресеньям']; | |
nsMain.OrderForm = Ext.extend(Ext.form.FormPanel, { | |
initComponent: function(){ | |
var old_delivery_type; | |
var old_delivery_city; | |
var old_delivery_country; | |
var old_delivery_metro; | |
Ext.apply(this, { | |
url: '/office/server/callcenter/server.php', | |
frame: false, | |
old_delivery_type: '', | |
border: false, | |
autoScroll: true, | |
buttonAlign: 'center', | |
items: [{ | |
layout: 'form', | |
border: false, | |
bodyStyle: 'padding: 0 0 0 10', | |
items: [{ | |
xtype: 'label', | |
name: 'text_label', | |
id: 'text_label', | |
text: 'Номер заказа', | |
height: 40 | |
}, { | |
xtype: 'textfield', | |
name: 'id', | |
id: 'id', | |
fieldLabel: 'ID заказа', | |
hideLabel: true, | |
hidden: true | |
}, { | |
xtype: 'textfield', | |
name: 'order_number', | |
disabled: true, | |
hideLabel: true, | |
hidden: true, | |
id: 'order_number', | |
fieldLabel: 'Номер заказа' | |
}, { | |
xtype: 'OrderItemsGrid', | |
id: 'order-items-grid', | |
height: 150 | |
}, { | |
layout: 'column', | |
border: false, | |
items: [{ | |
columnWidth: .4, | |
border: false, | |
layout: 'form', | |
bodyStyle: 'padding: 5 5 0 10', | |
items: [{ | |
xtype: 'OrderCommentTab', | |
Comment: 'ordercreate-comment', | |
width: 400, | |
Comment_CS: 'ordercreate-comment_cs', | |
Comment_ST: 'ordercreate-comment_st', | |
id: 'orderdatacomment-tab' | |
}, { | |
xtype: 'CustomerDataTab', | |
width: 400, | |
nameid: '', | |
id: 'customerdata-tab' | |
}] | |
}, { | |
columnWidth: .3, | |
border: false, | |
layout: 'form', | |
bodyStyle: 'padding: 5 5 0 10', | |
items: [{ | |
xtype: 'textfield', | |
disabled: true, | |
id: 'code', | |
name: 'code', | |
hideLabel: true, | |
hidden: true, | |
fieldLabel: 'Код скидки', | |
anchor: '95%' | |
}, { | |
xtype: 'textfield', | |
id: 'discount', | |
disabled: true, | |
hideLabel: true, | |
hidden: true, | |
name: 'discount', | |
fieldLabel: 'Скидка', | |
anchor: '95%' | |
}, { | |
html: '<center><b>Информация доставке</b></center>', | |
border: false | |
}, { | |
xtype: 'textfield', | |
name: 'delivery_id', | |
id: 'delivery_id', | |
hideLabel: true, | |
hidden: true, | |
anchor: '95%' | |
}, { | |
xtype: 'LSTCombo', | |
id: 'delivery_type', | |
name: 'delivery_type', | |
fieldLabel: 'Способ доставки', | |
tblName: 'lst_delivery_types', | |
order: 'name', | |
forceSelection: true, | |
listWidth: 150, | |
triggerAction: 'all', | |
emptyText: 'Способ доставки', | |
selectOnFocus: true, | |
displayField: 'name', | |
valueField: 'id', | |
anchor: '95%' | |
}, { | |
xtype: 'datefield', | |
fieldLabel: 'Дата доставки', | |
renderer: Ext.util.Format.dateRenderer('d.m.Y'), | |
format: 'd.m.Y', | |
name: 'delivery_date', | |
id: 'delivery_date', | |
anchor: '95%' | |
}, { | |
layout: 'column', | |
border: false, | |
items: [{ | |
columnWidth: .45, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'numberfield', | |
name: 'delivery_time_min', | |
id: 'delivery_time_min', | |
fieldLabel: 'Время доствки с ', | |
labelSeparator: '', | |
anchor: '90%' | |
}] | |
}, { | |
columnWidth: .10, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'label', | |
text: ' до ' | |
//width: 50 | |
}] | |
}, { | |
columnWidth: .45, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'numberfield', | |
name: 'delivery_time_max', | |
id: 'delivery_time_max', | |
hideLabel: true, | |
labelSeparator: '', | |
anchor: '90%' | |
}] | |
}] | |
}, { | |
xtype: 'ASCombo', | |
id: 'delivery_country', | |
name: 'delivery_country', | |
fieldLabel: 'Страна', | |
listWidth: 250, | |
tblName: 'lst_country', | |
forceSelection: true, | |
triggerAction: 'all', | |
comboParam: 'fc_country', | |
comboValueField: 'id', | |
comboResponseField: 'name', | |
comboDisplayField: 'name', | |
emptyText: 'Страна', | |
selectOnFocus: true, | |
displayField: 'name', | |
valueField: 'id', | |
anchor: '95%' | |
}, { | |
xtype: 'ASCombo', | |
id: 'delivery_city', | |
name: 'delivery_city', | |
fieldLabel: 'Город', | |
tblName: 'lst_city', | |
forceSelection: false, | |
comboParam: 'fc_city', | |
listWidth: 250, | |
comboValueField: 'id', | |
comboResponseField: 'name', | |
comboDisplayField: 'name', | |
triggerAction: 'all', | |
emptyText: 'Город', | |
selectOnFocus: true, | |
displayField: 'name', | |
valueField: 'id', | |
anchor: '95%', | |
listeners: { | |
select: function(combo, record, index){ | |
//this.changed = true; | |
//alert(record.get('id')); | |
Ext.getCmp('delivery_place').conditions = Ext.encode([['del', ' = ', '0'], ['city_id', ' = ', record.get('id')]]); | |
} | |
} | |
}, { | |
xtype: 'ASCombo', | |
id: 'delivery_metro', | |
name: 'delivery_metro', | |
fieldLabel: 'Метро', | |
tblName: 'lst_metro', | |
listWidth: 250, | |
forceSelection: false, | |
comboParam: 'fc_metro', | |
comboValueField: 'id', | |
comboResponseField: 'name', | |
comboDisplayField: 'name', | |
triggerAction: 'all', | |
emptyText: 'Метро', | |
selectOnFocus: false, | |
displayField: 'name', | |
valueField: 'id', | |
anchor: '95%' | |
}, { | |
//xtype: 'LSTCombo', | |
xtype: 'ASCombo', | |
id: 'delivery_place', | |
name: 'delivery_place', | |
fieldLabel: 'Пункт самовывоза', | |
comboParam: 'fc_delivery_place', | |
comboValueField: 'id', | |
comboResponseField: 'address', | |
comboDisplayField: 'address', | |
width: 250, | |
listWidth: 250, | |
tblName: 'lst_delivery_place', | |
forceSelection: false, | |
conditions: Ext.encode([['del', ' = ', '0']]), | |
order: ' address', | |
triggerAction: 'all', | |
emptyText: 'Пункт самовывоза', | |
selectOnFocus: false, | |
displayField: 'address', | |
valueField: 'id', | |
anchor: '95%', | |
listeners: { | |
blur: function(){ | |
//this.changed = true; | |
//alert(Number(Ext.getCmp('delivery_city').getValue())); | |
if (Number(Ext.getCmp('delivery_city').getValue())) | |
this.conditions = Ext.encode([['del', ' = ', '0'], ['city_id', ' = ', Number(Ext.getCmp('delivery_city').getValue())]]); | |
//this.store.reload(); | |
//alert('ok'); | |
//Ext.getCmp('delivery_place').conditions = Ext.encode([['del',' = ', '0'],['city_id', ' = ', newValue]]); | |
} | |
} | |
}, { | |
xtype: 'textfield', | |
fieldLabel: 'Индекс', | |
id: 'delivery_index', | |
name: 'delivery_index', | |
anchor: '95%' | |
}, { | |
xtype: 'textfield', | |
fieldLabel: 'Улица', | |
id: 'delivery_address', | |
name: 'delivery_address', | |
anchor: '95%' | |
}, { | |
layout: 'column', | |
border: false, | |
items: [{ | |
columnWidth: .10, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'label', | |
text: 'дом.', | |
width: 50 | |
}] | |
}, { | |
columnWidth: .23, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'textfield', | |
fieldLabel: 'дом.', | |
hideLabel: true, | |
labelSeparator: '', | |
id: 'delivery_building', | |
name: 'delivery_building', | |
width: 60 | |
}] | |
}, { | |
columnWidth: .1, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'label', | |
text: 'кор.', | |
width: 50 | |
}] | |
}, { | |
columnWidth: .24, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'textfield', | |
fieldLabel: 'кор.', | |
labelSeparator: '', | |
hideLabel: true, | |
labelStyle: 'padding-left: 10px; width: 40px;', | |
style: 'width: 40px;', | |
id: 'delivery_building_1', | |
name: 'delivery_building_1', | |
width: 60 | |
}] | |
}, { | |
columnWidth: .1, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'label', | |
text: 'кв.', | |
width: 40 | |
}] | |
}, { | |
columnWidth: .23, | |
layout: 'form', | |
border: false, | |
items: [{ | |
xtype: 'numberfield', | |
fieldLabel: 'кв.', | |
labelSeparator: '', | |
hideLabel: true, | |
labelStyle: 'padding-left: 10px; width: 40px;', | |
style: 'width: 40px;', | |
id: 'delivery_flat', | |
name: 'delivery_flat', | |
width: 50 | |
}] | |
}] | |
}, { | |
layout: 'column', | |
border: false, | |
items: [{ | |
columnWidth: 1, | |
layout: 'form', | |
border: false, | |
bodyStyle: 'text-align: center;', | |
items: [{ | |
border: false, | |
buttons: [{ | |
text: 'Обновить информацию о доставке', | |
handler: function(){ | |
var order_id = Ext.getCmp('id').getValue(); | |
// Сохранить все, что сейчас есть | |
//Ext.getCmp('order-form').dataSave(false,true); | |
Ext.getCmp('order-form').deliverySave(); | |
} //function handler | |
}] | |
}] | |
}] | |
}] | |
}, { | |
columnWidth: .3, | |
border: false, | |
layout: 'form', | |
bodyStyle: 'padding: 5 5 0 10', | |
items: [{ | |
html: '<center><b><u>Общие данные</u></b></center>', | |
border: false | |
}, { | |
xtype: 'textfield', | |
fieldLabel: 'Статус заказа', | |
id: 'status_bo', | |
name: 'status_bo', | |
anchor: '95%' | |
}, { | |
xtype: 'numberfield', | |
fieldLabel: 'Стоимость доставки', | |
id: 'delivery_cost', | |
name: 'delivery_cost', | |
anchor: '95%', | |
listeners: { | |
change: function(field, newValue, oldValue){ | |
//alert(Number(Ext.getCmp('all_cost').getValue())-Number(oldValue)+Number(newValue)); | |
Ext.getCmp('all_cost').setValue(Number(Ext.getCmp('all_cost').getValue()) - Number(oldValue) + Number(newValue)); | |
} | |
} | |
}, { | |
xtype: 'textfield', | |
fieldLabel: 'Итого', | |
id: 'all_cost', | |
disabled: true, | |
name: 'all_cost', | |
anchor: '95%' | |
}, { | |
html: '<center><b>Информация об оплате</b></center>', | |
border: false | |
}, { | |
xtype: 'PaymentGrid', | |
id: 'payment-grid', | |
height: 150, | |
width: 300 | |
}, /*{ | |
xtype: 'LSTCombo', | |
id: 'payment_type', | |
name: 'payment_type', | |
fieldLabel: 'Способ оплаты', | |
tblName: 'lst_payment_types', | |
forceSelection: true, | |
listWidth: 150, | |
triggerAction: 'all', | |
emptyText: 'Способ оплаты', | |
selectOnFocus: true, | |
displayField: 'name', | |
valueField: 'id', | |
anchor: '95%' | |
},*/ | |
{ | |
xtype: 'datefield', | |
format: 'd.m.Y', | |
renderer: Ext.util.Format.dateRenderer('d.m.Y'), | |
fieldLabel: 'Дата оплаты', | |
name: 'date_paid', | |
id: 'date_paid', | |
anchor: '95%' | |
}] | |
}] | |
}] | |
}], | |
buttons: [{ | |
text: 'Пересчитать скидку', | |
handler: function(){ | |
var orderId = Ext.getCmp('id').getValue(); | |
if (!Ext.getCmp('orderdiscount-window')) { | |
var win = new nsMain.OrderDiscountWindow({ | |
id: 'orderdiscount-window' | |
}); | |
win.show(); | |
Ext.getCmp('orderdiscount-order-id').setValue(id); | |
} | |
} //function handler | |
}, { | |
text: 'Сохранить изменения', | |
handler: function(){ | |
// | |
Ext.MessageBox.buttonText.yes = 'Да'; | |
Ext.MessageBox.buttonText.no = 'Нет'; | |
Ext.MessageBox.confirm('Подтверждение', 'Сохранить изменения?', function(btn){ | |
if (btn == 'yes') { | |
Ext.getCmp('order-form').dataSave(false,false); | |
} | |
}) | |
} //function handler | |
}, { | |
text: 'Оформить заказ', | |
handler: function(){ | |
/* | |
// Сохранить все, что сейчас есть (с пересчётом) | |
var order_id = Ext.getCmp('id').getValue(); | |
Ext.getCmp('order-form').dataSave(false,true); | |
*/ | |
//проверить наличие всех товаров на складе | |
var gridId = 'order-items-grid'; | |
var records = Ext.getCmp(gridId).store.getRange(); | |
var flag = false; | |
Ext.each(records, function(r, i){ | |
if (r.get('quantity') > r.get('cnt') && r.get('e_book') == 0) { | |
flag = true; | |
}; | |
}, this); | |
//проверить чтобы был оплачен безнал | |
var gridId = 'payment-grid'; | |
var records = Ext.getCmp(gridId).store.getRange(); | |
var flag_pay = true; | |
Ext.each(records, function(r, i){ | |
if (!r.get('date_paid') && | |
(r.get('payment_type') == 2 || r.get('payment_type') == 3 || r.get('payment_type') == 4 || | |
r.get('payment_type') == 5 || | |
r.get('payment_type') == 6 || | |
r.get('payment_type') == 7 || | |
r.get('payment_type') == 8 || | |
r.get('payment_type') == 10)) { | |
flag_pay = false; | |
}; | |
}, this); | |
//alert(flag_pay); | |
//alert(Number(Ext.getCmp('payment_cost').getValue())); | |
if (flag) { | |
Ext.MessageBox.show({ | |
msg: "Нехватка товара на скаладе! Оформить заказ нельзя!" | |
}); | |
} | |
else | |
{ if (!flag_pay) { | |
Ext.MessageBox.show({ | |
msg: "Заказ не оплачен!" | |
}); | |
} | |
else | |
{ | |
/*alert(Ext.getCmp('delivery_city').getRawValue()+' '+Ext.getCmp('delivery_metro').getRawValue() | |
+' '+Ext.getCmp('delivery_metro').getValue()); | |
*/ | |
// if (Ext.getCmp('delivery_city').getRawValue() == 'Москва' && (Ext.getCmp('delivery_metro').getRawValue() =='' || !Ext.getCmp('delivery_metro').getValue())) | |
// { | |
// Ext.MessageBox.show({ | |
// msg: "Укажите метро!" | |
// }); | |
// } | |
// else | |
// { | |
if (Number(Ext.getCmp('all_cost').getValue()) != Number(Ext.getCmp('paymentgrid_cost').getValue())) | |
{ | |
if (Number(Ext.getCmp('all_cost').getValue()) < Number(Ext.getCmp('paymentgrid_cost').getValue())) | |
{ | |
var order_id = Ext.getCmp('id').getValue(); | |
//пересчет сумм | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'return_money_for_order', | |
condition: Ext.encode({ | |
'id': order_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
if (success) { | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
//alert(responseObj.success); | |
if (responseObj.success) | |
{ | |
Ext.MessageBox.show({ | |
msg: "Была пересчитана сумма к оплате" | |
}); | |
//оформление заказов | |
Ext.MessageBox.buttonText.yes = 'Да'; | |
Ext.MessageBox.buttonText.no = 'Нет'; | |
Ext.MessageBox.confirm('Подтверждение', 'Оформить заказ?', function(btn){ | |
if (btn == 'yes') { | |
Ext.getCmp('order-form').deliverySave(7); | |
} | |
}); | |
} | |
else | |
{ | |
Ext.MessageBox.show({ | |
msg: "Не удалось пересчитать сумму к оплате у заказа" | |
}); | |
} | |
} | |
else | |
{ | |
Ext.MessageBox.show({ | |
msg: "Ошибка в работе сервера" | |
}); | |
} | |
} | |
}; //o | |
Ext.Ajax.request(o); | |
} | |
else | |
{ | |
Ext.MessageBox.show({ | |
msg: "Не cовпадает сумма оплаты и сумма заказа" | |
}); | |
} | |
} | |
else { | |
//оформление заказов | |
Ext.MessageBox.buttonText.yes = 'Да'; | |
Ext.MessageBox.buttonText.no = 'Нет'; | |
Ext.MessageBox.confirm('Подтверждение', 'Оформить заказ?', function(btn){ | |
if (btn == 'yes') { | |
Ext.getCmp('order-form').deliverySave(7); | |
} | |
}) | |
} | |
//} | |
} | |
} | |
} //function handler | |
}, { | |
text: 'Отложить', | |
handler: function(){ | |
//Открыть окно для выбора причины | |
var orderId = Ext.getCmp('id').getValue(); | |
//alert('откладывание заказа '+orderId); | |
if (!Ext.getCmp('orderwait-window')) { | |
var win = new nsMain.OrderWaitWindow({ | |
id: 'orderwait-window' | |
}); | |
win.show(); | |
Ext.getCmp('wait-order-id').setValue(id); | |
} | |
} //function handler | |
}, { | |
text: 'Аннулировать', | |
handler: function(){ | |
var date_paid = Ext.getCmp('date_paid').getValue(); | |
//alert(date_paid); | |
if (date_paid) { | |
Ext.MessageBox.show({ | |
msg: "Заказ оплачен! Аннулировать нельзя!" | |
}); | |
} | |
else { | |
Ext.MessageBox.buttonText.yes = 'Да'; | |
Ext.MessageBox.buttonText.no = 'Нет'; | |
Ext.MessageBox.confirm('Подтверждение', 'Аннулировать?', function(btn){ | |
if (btn == 'yes') { | |
var id = Ext.getCmp('id').getValue(); | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'annul_order', | |
tblName: 'tbl_order', | |
values: Ext.encode({ | |
'status_bo': 6 | |
}), | |
condition: Ext.encode({ | |
'id': id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
if (success) { | |
Ext.MessageBox.show({ | |
msg: "Заказ аннулированн" | |
}); | |
} | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (responseObj.data[0].comment) | |
{ | |
Ext.getCmp('ordercreate-comment').setValue(responseObj.data[0].comment); | |
} | |
if (responseObj.message) { | |
Ext.MessageBox.show({ | |
msg: responseObj.message | |
}); | |
} | |
} | |
}; //o | |
if (id) { | |
Ext.Ajax.request(o); | |
} | |
} | |
}); | |
} | |
} | |
}] //buttons | |
}); //Ext.apply | |
nsMain.OrderForm.superclass.initComponent.apply(this, arguments); | |
}, // eo function initComponent | |
onRender: function(){ | |
nsMain.OrderForm.superclass.onRender.apply(this, arguments); | |
}, // eo function onRender | |
dataLoad: function(orderId){ | |
//alert(orderId); | |
Ext.getCmp('ordercreate-comment').setValue(''); | |
Ext.getCmp('ordercreate-comment_cs').setValue(''); | |
Ext.getCmp('ordercreate-comment_st').setValue(''); | |
this.getForm().load({ | |
url: '/office/server/callcenter/server.php', | |
method: 'POST', | |
params: { | |
action: 'orderForm', | |
id: orderId | |
}, | |
success: function(form, response){ | |
Ext.getCmp('order-items-grid').dataLoad(orderId); | |
Ext.getCmp('payment-grid').dataLoad(orderId); | |
Ext.getCmp('text_label').setText('№ заказа - ' + response.result.data.order_number + | |
' Код скидки: ' + | |
response.result.data.code + | |
' Скидка клиента: ' + | |
((response.result.data.customer_discount) ? (response.result.data.customer_discount * 100 + '%') : ('0%')) + | |
' RМ: ' + | |
((response.result.data.rm_account) ? (response.result.data.rm_account) : ('0'))+ | |
' Скидка заказа: '+ | |
((response.result.data.discount) ? (response.result.data.discount * 100 + '%') : ('0%'))); | |
//alert(response.result.data.delivery_city_id); | |
Ext.getCmp('ordercreate-commentorder_id').setValue(response.result.data.id); | |
Ext.getCmp('ordercreate-comment').setValue(response.result.data.order_comment); | |
Ext.getCmp('ordercreate-comment_cs').setValue(response.result.data.comment_cs); | |
Ext.getCmp('ordercreate-comment_st').setValue(response.result.data.comment_st); | |
if (response.result.data.delivery_city_id) { | |
Ext.getCmp('delivery_place').conditions = Ext.encode([['del', ' = ', '0'], ['city_id', ' = ', response.result.data.delivery_city_id]]); | |
} | |
else { | |
Ext.getCmp('delivery_place').conditions = Ext.encode([['del', ' = ', '0']]); | |
} | |
Ext.getCmp('order-form').delivery_type_cnt = response.result.data.delivery_type_cnt; | |
Ext.getCmp('order-form').old_delivery_type = response.result.data.delivery_type_id; | |
Ext.getCmp('order-form').old_delivery_type_name = response.result.data.delivery_type; | |
Ext.getCmp('order-form').old_delivery_city = response.result.data.delivery_city_id; | |
Ext.getCmp('order-form').delivery_metro = response.result.data.delivery_metro_id; | |
Ext.getCmp('order-form').old_delivery_country = response.result.data.delivery_country_id; | |
Ext.getCmp('order-form').delivery_place = response.result.data.delivery_place_id; | |
Ext.getCmp('main-viewport').render(); | |
} | |
}); | |
}, | |
getDeliveryCost: function(orderId){ | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
params: { | |
action: 'getDeliveryCost', | |
id: orderId | |
}, | |
callback: function(options, success, response){ | |
//alert('callback'); | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (responseObj.id) { | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
} | |
} | |
}; | |
Ext.Ajax.request(o); | |
}, | |
dataSave: function(status, update_delivery){ | |
//о клиенте | |
var customer_id = Ext.getCmp('customer_id').getValue(); | |
var s = {}; | |
s.firstname = Ext.getCmp('firstname').getValue(); | |
s.middlename = Ext.getCmp('middlename').getValue(); | |
s.lastname = Ext.getCmp('lastname').getValue(); | |
s.phone = Ext.getCmp('phone').getValue(); | |
s.email = Ext.getCmp('email').getValue(); | |
var birthdate = Ext.getCmp('birthdate').getValue(); | |
if (birthdate) | |
s.birthdate = birthdate; | |
//organization | |
var org = {}; | |
var orgid = Ext.getCmp('organization_data_id').getValue(); | |
org.name = Ext.getCmp('name').getValue(); | |
org.kpp = Ext.getCmp('kpp').getValue(); | |
org.inn = Ext.getCmp('inn').getValue(); | |
org.r_s = Ext.getCmp('r_s').getValue(); | |
org.address = Ext.getCmp('address').getValue(); | |
org.bank = Ext.getCmp('bank').getValue(); | |
org.kor_s = Ext.getCmp('kor_s').getValue(); | |
org.bik = Ext.getCmp('bik').getValue(); | |
if (org.name && org.kpp && org.r_s && org.bank && org.kor_s && org.bik && org.address) { | |
var action = 'update'; | |
if (!orgid) { | |
action = 'new'; | |
} | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
params: { | |
action: action, | |
tblName: 'tbl_organization_data', | |
values: Ext.encode(org), | |
condition: Ext.encode({ | |
'id': orgid | |
}) | |
//,saveValue: Ext.encode(s) | |
}, //params | |
callback: function(options, success, response){ | |
//alert('callback'); | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (responseObj.id) { | |
Ext.getCmp('organization_data_id').setValue(responseObj.id); | |
Ext.MessageBox.show({ | |
msg: 'Cоздана организация с id: ' + responseObj.id | |
}); | |
s.organization_data_id = responseObj.id; | |
s.is_organization = 'true'; | |
var clientdata = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'update', | |
tblName: 'tbl_customer', | |
values: Ext.encode(s), | |
condition: Ext.encode({ | |
'id': customer_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
//alert('callback'); | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
} | |
}; | |
Ext.Ajax.request(clientdata); | |
} | |
//save client data | |
} | |
}; | |
Ext.Ajax.request(o); | |
} | |
else { | |
var clientdata = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'update', | |
tblName: 'tbl_customer', | |
values: Ext.encode(s), | |
condition: Ext.encode({ | |
'id': customer_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
//alert('callback'); | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
} | |
}; | |
Ext.Ajax.request(clientdata); | |
} | |
//save data to tbl_order | |
var d = {}; | |
if (status) { | |
d.status_bo = status; | |
} | |
var order_id = Ext.getCmp('id').getValue(); | |
//var payment_type = Number(Ext.getCmp('payment_type').getValue()); | |
var date_paid = Ext.getCmp('date_paid').getValue(); | |
var delivery_cost = Number(Ext.getCmp('delivery_cost').getValue()); | |
if (date_paid) | |
d.date_paid = date_paid; | |
//if (payment_type) d.payment_type = payment_type; | |
if (delivery_cost || delivery_cost == 0) | |
d.delivery_cost = delivery_cost; | |
//доставка // Пересчет!!!!! | |
f = {}; | |
var form_id = Ext.getCmp('order-form'); | |
var action = 'update'; | |
var delivery_type = Number(Ext.getCmp('delivery_type').getValue()); | |
var delivery_place = Number(Ext.getCmp('delivery_place').getValue()); | |
var delivery_metro = Number(Ext.getCmp('delivery_metro').getValue()); | |
var delivery_city = (Ext.getCmp('delivery_city').getRawValue()) ? Number(Ext.getCmp('delivery_city').getValue()): ''; | |
var delivery_country = Number(Ext.getCmp('delivery_country').getValue()); | |
// for comment, change delivery type | |
var com_del_type = {}; | |
tmp_delivery_type = delivery_type; | |
if (!delivery_type && Ext.getCmp('delivery_type').getRawValue()) { | |
tmp_delivery_type = form_id.old_delivery_type; | |
} | |
if (Number(form_id.old_delivery_type) != Number(tmp_delivery_type)) { | |
com_del_type.comment = 'изменение способа доставки с ' + form_id.old_delivery_type_name + ' на ' + Ext.getCmp('delivery_type').getRawValue(); | |
} | |
//----- | |
var delivery_id = Ext.getCmp('delivery_id').getValue(); | |
var delivery_index = Ext.getCmp('delivery_index').getValue(); | |
var delivery_address = Ext.getCmp('delivery_address').getValue(); | |
var delivery_building = Ext.getCmp('delivery_building').getValue(); | |
//var comment = Ext.getCmp('comment').getValue(); | |
var delivery_building_1 = Ext.getCmp('delivery_building_1').getValue(); | |
var delivery_flat = Ext.getCmp('delivery_flat').getValue(); | |
var delivery_date = Ext.getCmp('delivery_date').getValue(); | |
var delivery_time_min = Number(Ext.getCmp('delivery_time_min').getValue()); | |
var delivery_time_max = Number(Ext.getCmp('delivery_time_max').getValue()); | |
if (delivery_date) { | |
f.delivery_date = delivery_date; | |
} | |
else { | |
f.delivery_date = 'NULL'; | |
} | |
if (delivery_place) { | |
f.delivery_place = delivery_place; | |
} | |
else if (!Ext.getCmp('delivery_place').getRawValue()) | |
{ | |
f.delivery_place = 'NULL'; | |
} | |
if (delivery_metro) { | |
f.delivery_metro = delivery_metro; | |
} | |
else if (!Ext.getCmp('delivery_metro').getRawValue()) | |
{ | |
f.delivery_metro = 'NULL'; | |
} | |
if (delivery_country) { | |
f.delivery_country = delivery_country; | |
} | |
else { | |
if (action == 'new' && form_id.old_delivery_country) { | |
f.delivery_country = form_id.old_delivery_country | |
} | |
} | |
if (delivery_type) { | |
f.delivery_type = delivery_type; | |
} | |
else { | |
if (action == 'new') { | |
f.delivery_type = form_id.old_delivery_type | |
} | |
} | |
if (delivery_city) { | |
f.delivery_city = delivery_city; | |
} | |
else { | |
//alert(Ext.getCmp('delivery_city').getRawValue()); | |
if (!Ext.getCmp('delivery_city').getRawValue()) | |
{ | |
f.delivery_city = 'NULL'; | |
} | |
if (action == 'new' && form_id.old_delivery_city) { | |
f.delivery_city = form_id.old_delivery_city | |
} | |
} | |
f.delivery_index = delivery_index; | |
f.delivery_address = delivery_address; | |
//f.delivery_comment = comment; | |
f.delivery_building = delivery_building; | |
f.delivery_building_1 = delivery_building_1; | |
f.delivery_flat = (delivery_flat) ? delivery_flat : 'NULL'; | |
f.delivery_time_max = (delivery_time_max) ? delivery_time_max : 'NULL'; | |
f.delivery_time_min = (delivery_time_min) ? delivery_time_min : 'NULL'; | |
// var delivery_metro = Number(Ext.getCmp('delivery_metro').getValue()); | |
// | |
// f.delivery_metro = (delivery_metro) ? delivery_metro : form_id.old_delivery_metro; | |
/* | |
if (Ext.getCmp('delivery_metro').getRawValue()) | |
{ | |
var delivery_metro = Number(Ext.getCmp('delivery_metro').getValue()); | |
if (delivery_metro) { f.delivery_metro = delivery_metro;} | |
} | |
else | |
{ | |
if (action == 'update') f.delivery_metro = 'NULL'; | |
} | |
*/ | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: action, | |
tblName: 'tbl_order_delivery', | |
values: Ext.encode(f), | |
condition: Ext.encode({ | |
'id': delivery_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
var y = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'update', | |
tblName: 'tbl_order', | |
values: Ext.encode(d), | |
condition: Ext.encode({ | |
'id': order_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
//alert(responseObj.success); | |
if (! responseObj.success) | |
{ | |
Ext.MessageBox.show({ | |
msg: responseObj.message | |
}); | |
} | |
if (success && f.delivery_type && responseObj.success) { | |
form_id.old_delivery_type = f.delivery_type; | |
form_id.old_delivery_type_name = Ext.getCmp('delivery_type').getRawValue(); | |
} | |
if (success && responseObj.success && update_delivery) | |
{ | |
var del_upd = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'update_delivery_date', | |
values: Ext.encode({ | |
'id': order_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (success && responseObj.success) { | |
var deliv_data = responseObj.data.date; | |
if (status) | |
{ | |
Ext.MessageBox.buttonText.yes = 'Да'; | |
Ext.MessageBox.buttonText.no = 'Нет'; | |
Ext.MessageBox.confirm('Подтверждение', 'Изменить дату доставки c '+ | |
Ext.getCmp('delivery_date').getRawValue()+' на '+ | |
responseObj.data.date+'?', function(btn){ | |
if (btn == 'yes') { | |
// update tbl_order_delivery | |
Ext.getCmp('delivery_date').setValue(deliv_data); | |
var o123 = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'update', | |
tblName: 'tbl_order_delivery', | |
values: Ext.encode({'delivery_date': deliv_data}), | |
condition: Ext.encode({ | |
'id': delivery_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
// | |
}}; | |
Ext.Ajax.request(o123); | |
} | |
}) | |
} | |
else | |
{ | |
Ext.getCmp('delivery_date').setValue(responseObj.data.date); | |
Ext.MessageBox.show({ | |
msg: "Срок доставки изменён на "+responseObj.data.date+"!"+" "+ | |
((responseObj.data.week_day)?"\nДоставляется по "+week_days[responseObj.data.week_day]:'') | |
}); | |
} | |
} | |
else | |
{ | |
if (responseObj.messages) | |
{ | |
Ext.MessageBox.show({ | |
msg: responseObj.messages[0] | |
}); | |
} | |
else | |
{ | |
if (responseObj.messages) | |
{ | |
Ext.MessageBox.show({ | |
msg: responseObj.messages[0] | |
}); | |
} | |
else | |
{ | |
Ext.MessageBox.show({ | |
msg: "Ошибка работы сервера!" | |
}); | |
} | |
} | |
} | |
} | |
}; | |
Ext.Ajax.request(del_upd); | |
} | |
if (success && com_del_type.comment && responseObj.success) { | |
var om = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'addcomment', | |
tblName: 'tbl_order', | |
autocom: 1, | |
values: Ext.encode(com_del_type), | |
condition: Ext.encode({ | |
'id': order_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (success) { | |
Ext.getCmp('ordercreate-comment').setValue(responseObj.data[0].comment); | |
} | |
} | |
}; | |
Ext.Ajax.request(om); | |
} | |
if (success && status && responseObj.success) { | |
Ext.MessageBox.show({ | |
msg: 'Заказ оформлен' | |
}); | |
Ext.Ajax.request({ | |
url: '/office/server/callcenter/server.php', | |
method: 'POST', | |
params: { | |
action: 'delete', | |
tblName: 'tbl_order_reserve', | |
condition: Ext.encode({ | |
'order_id': order_id | |
}) | |
} | |
}); | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'addcomment', | |
tblName: 'tbl_order', | |
autocom: 1, | |
values: Ext.encode({ | |
'comment': ' оформил ' | |
}), | |
condition: Ext.encode({ | |
'id': order_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (success) { | |
Ext.getCmp('ordercreate-comment').setValue(responseObj.data[0].comment); | |
} | |
} | |
}; | |
Ext.Ajax.request(o); | |
var add_data_for_comment = ''; | |
del_type = (f.delivery_type) ? Number(f.delivery_type) : Number(form_id.old_delivery_type); | |
var del_city = (delivery_city)? delivery_city : form_id.old_delivery_city; | |
var del_place = (delivery_place)? delivery_place : form_id.delivery_place; | |
//var del_metro = (delivery_metro)? delivery_metro : form_id.delivery_metro; | |
var exp_courier = ''; | |
switch (del_type) { | |
case 2: | |
exp_courier = " экспресс "; | |
case 1: | |
var del_date = delivery_date.getDate() + '.' + (delivery_date.getMonth() + 1) + '.' + delivery_date.getFullYear(); | |
add_data_for_comment = 'К ' +exp_courier+ del_date + ' с ' + ((delivery_time_min) ? delivery_time_min : '9') + ' по ' + ((delivery_time_max) ? delivery_time_max : '22'); | |
//alert(add_data_for_comment); | |
break; | |
case 3: | |
if (del_place == 346) { | |
add_data_for_comment = ' C Вятская'; | |
} | |
else | |
if (del_city == 1) { | |
add_data_for_comment = 'С Москва'; | |
} | |
else | |
if (del_city == 2) { | |
add_data_for_comment = 'С Питер'; | |
} | |
else { | |
add_data_for_comment = 'С Регионы'; | |
} | |
break; | |
case 7: | |
case 8: | |
add_data_for_comment = 'П'; | |
break; | |
default: | |
add_data_for_comment = Ext.getCmp('delivery_type').getRawValue(); | |
break; | |
} | |
var a = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'addcomment', | |
autocom: 1, | |
firstrow: 1, | |
tblName: 'tbl_order', | |
values: Ext.encode({ | |
'comment_st': add_data_for_comment | |
}), | |
condition: Ext.encode({ | |
'id': order_id | |
}) | |
}, //params | |
callback: function(options, success, response){ | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (success) { | |
Ext.getCmp('ordercreate-comment_st').setValue(responseObj.data[0].comment_st); | |
} | |
} | |
}; | |
Ext.Ajax.request(a); | |
} | |
} | |
}; | |
Ext.Ajax.request(y); | |
Ext.getCmp('order-items-grid').dataSave(); | |
//Ext.getCmp('payment-grid').dataSave(); | |
} | |
}; | |
function alert_obj(obj) { | |
var txt = ''; | |
for (var i in obj) { | |
txt += i + "---" + obj[i] + "\n"; | |
} | |
alert(txt); | |
} | |
var payment_check = false; | |
del_type = (f.delivery_type) ? Number(f.delivery_type) : Number(form_id.old_delivery_type); | |
if (del_type != 8) | |
{ | |
var records = Ext.getCmp('payment-grid').store.getRange(); | |
Ext.each(records, function(r, i) { | |
if (r.modified) | |
{ | |
var o = r.getChanges(); | |
pay = o['name']; | |
} | |
else | |
{ | |
pay = r.get('payment_type'); | |
} | |
if(pay == 9) payment_check = true; | |
}); | |
} | |
Ext.getCmp('payment-grid').dataSave(); | |
Ext.getCmp('order-items-grid').dataSave(); | |
if (payment_check) | |
{ | |
Ext.MessageBox.show({ | |
msg: 'Неверные способы оплаты у заказа' | |
}); | |
return; | |
} | |
Ext.Ajax.request(o); | |
}, | |
deliverySave: function(status){ | |
var order_id = Ext.getCmp('id').getValue(); | |
//доставка // Пересчет!!!!! | |
f = {}; | |
var form_id = Ext.getCmp('order-form'); | |
var action = 'update'; | |
var delivery_type = Number(Ext.getCmp('delivery_type').getValue()); | |
var delivery_place = Number(Ext.getCmp('delivery_place').getValue()); | |
var delivery_metro = Number(Ext.getCmp('delivery_metro').getValue()); | |
var delivery_city = (Ext.getCmp('delivery_city').getRawValue()) ? Number(Ext.getCmp('delivery_city').getValue()): ''; | |
var delivery_country = Number(Ext.getCmp('delivery_country').getValue()); | |
// for comment, change delivery type | |
var com_del_type = {}; | |
tmp_delivery_type = delivery_type; | |
if (!delivery_type && Ext.getCmp('delivery_type').getRawValue()) { | |
tmp_delivery_type = form_id.old_delivery_type; | |
} | |
if (Number(form_id.old_delivery_type) != Number(tmp_delivery_type)) { | |
com_del_type.comment = 'изменение способа доставки с ' + form_id.old_delivery_type_name + ' на ' + Ext.getCmp('delivery_type').getRawValue(); | |
} | |
//----- | |
var delivery_id = Ext.getCmp('delivery_id').getValue(); | |
var delivery_index = Ext.getCmp('delivery_index').getValue(); | |
var delivery_address = Ext.getCmp('delivery_address').getValue(); | |
var delivery_building = Ext.getCmp('delivery_building').getValue(); | |
var delivery_building_1 = Ext.getCmp('delivery_building_1').getValue(); | |
var delivery_flat = Ext.getCmp('delivery_flat').getValue(); | |
var delivery_date = Ext.getCmp('delivery_date').getValue(); | |
var delivery_time_min = Number(Ext.getCmp('delivery_time_min').getValue()); | |
var delivery_time_max = Number(Ext.getCmp('delivery_time_max').getValue()); | |
if (delivery_date) { | |
f.delivery_date = delivery_date; | |
} | |
else { | |
f.delivery_date = 'NULL'; | |
} | |
if (delivery_place) { | |
f.delivery_place = delivery_place; | |
} | |
else if (!Ext.getCmp('delivery_place').getRawValue()) | |
{ | |
f.delivery_place = 'NULL'; | |
} | |
if (delivery_metro) { | |
f.delivery_metro = delivery_metro; | |
} | |
else if (!Ext.getCmp('delivery_metro').getRawValue()) | |
{ | |
f.delivery_metro = 'NULL'; | |
} | |
if (delivery_country) { | |
f.delivery_country = delivery_country; | |
} | |
else { | |
if (action == 'new' && form_id.old_delivery_country) { | |
f.delivery_country = form_id.old_delivery_country | |
} | |
} | |
if (delivery_type) { | |
f.delivery_type = delivery_type; | |
} | |
else { | |
if (action == 'new') { | |
f.delivery_type = form_id.old_delivery_type | |
} | |
} | |
if (delivery_city) { | |
f.delivery_city = delivery_city; | |
} | |
else if (!Ext.getCmp('delivery_city').getRawValue()) | |
{ | |
f.delivery_city = 'NULL'; | |
} | |
f.delivery_index = delivery_index; | |
f.delivery_address = delivery_address; | |
//f.delivery_comment = comment; | |
f.delivery_building = delivery_building; | |
f.delivery_building_1 = delivery_building_1; | |
f.delivery_flat = (delivery_flat) ? delivery_flat : 'NULL'; | |
f.delivery_time_max = (delivery_time_max) ? delivery_time_max : 'NULL'; | |
f.delivery_time_min = (delivery_time_min) ? delivery_time_min : 'NULL'; | |
f.order_id = Ext.getCmp('id').getValue(); | |
var o = { | |
url: '/office/server/callcenter/server.php', | |
method: 'post', | |
scope: this, | |
params: { | |
action: 'update_delivery_date', | |
values: Ext.encode(f) | |
}, //params | |
callback: function(options, success, response){ | |
responseObj = Ext.util.JSON.decode(response.responseText); | |
if (success && responseObj.success) { | |
if (responseObj.messages) | |
{ | |
Ext.MessageBox.show({ | |
msg: responseObj.messages[0] | |
}); | |
} | |
Ext.getCmp('order-form').dataSave(status); | |
} | |
else | |
{ | |
if (responseObj.messages) | |
{ | |
Ext.MessageBox.show({ | |
msg: responseObj.messages[0] | |
}); | |
} | |
else | |
{ | |
Ext.MessageBox.show({ | |
msg: "Ошибка работы сервера!" | |
}); | |
} | |
} | |
Ext.getCmp('order-form').dataLoad(order_id); | |
} | |
}; | |
Ext.Ajax.request(o); | |
} | |
}); | |
Ext.reg('OrderForm', nsMain.OrderForm); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment