/var/www/myprog.com.ua/site/app
Edit: /var/www/myprog.com.ua/site/app/http_client.js (57298B)
function HttpClient(options) {
var __self = this;
this.url = location.href;
if (options) {
if (options.url) this.url = options.url;
}
this.GetConfiguration = function () {
if (isDebug) console.debug('HttpClient:GetConfiguration:Begin');
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().sync().post(__self.url, { action: 'get_config' }, {
error: function (text, data, XmlHttpRequest) {
onLoadError = true;
if (isDebug) {
console.debug('HttpClient:GetConfiguration:Error');
console.debug(XmlHttpRequest);
}
webix.message('HttpClient:GetConfiguration:Error');
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (data.json() != null && data.json().error == 0) {
webix.message({
type: 'success',
text: 'Настройки загружены.'
});
config = data.json().result;
if (isDebug) {
console.debug('HttpClient:GetConfiguration:OK');
console.debug(config);
}
} else {
webix.message('ERROR! ajax get_config');
onLoadError = true;
if (isDebug) {
console.debug('HttpClient:GetConfiguration:Error');
console.debug(data.json());
}
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
}
});
};
this.GetChannels = function GetChannels() {
if (isDebug) console.debug('HttpClient:GetChannels:Begin');
if (!onLoadError) {
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().sync().post(__self.url, { action: 'get_chanels' }, {
error: function (text, data, XmlHttpRequest) {
onLoadError = true;
if (isDebug) {
webix.message({
type: 'error',
text: 'Ошибка! XmlHttpRequest.status : ' + XmlHttpRequest.status
});
console.debug('HttpClient:GetChannels:Error');
console.debug(XmlHttpRequest);
}
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (data.json() != null && data.json().error == 0) {
chanels = data.json().result;
if (isDebug) {
webix.message({
type: 'success',
text: 'Список каналов загружен.'
});
console.debug('HttpClient:GetChannels:OK');
console.debug(chanels);
}
} else {
webix.message({
type: 'error',
text: 'Ошибка #: ' + data.json().error + ' Msg: ' + data.json().error_msg
});
if (isDebug) {
console.debug('HttpClient:GetChannels:Error');
console.debug(data.json());
}
onLoadError = true;
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
}
});
} else {
if (isDebug) console.debug('HttpClient:GetChannels:OnLoadError');
}
};
this.GetLines = function () {
if (isDebug) console.debug('HttpClient:GetLines:Begin');
if (!onLoadError) {
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().sync().post(__self.url, { action: 'get_lines' }, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:GetLines:Error');
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:GetLines:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (data.json() != null && data.json().error == 0) {
lines = data.json().result['lines'];
if (isDebug) {
console.debug('HttpClient:GetLines:OK');
console.debug(lines);
}
} else {
if (isDebug) {
console.debug('HttpClient:GetLines:Error');
console.debug(data.json());
}
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
}
});
} else {
if (isDebug) console.debug('HttpClient:GetLines:onLoadError');
}
};
this.GetOrders = function () {
if (isDebug) console.debug('HttpClient:GetOrders:Begin');
if (!onLoadError) {
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().sync().post(__self.url, {
action: 'get_orders',
city_id: config.city_id,
limit: config.default.orders_history_count
}, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:GetOrders:Error');
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:GetOrders:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
orders.clearAll();
if (data.json() != null && data.json().error == 0) {
data.json().result.forEach(function (e) {
var o = new Order(e);
if (o.id > 0 && !orders.getItem(o.id)) {
orders.add(o);
} else {
orders.updateItem(o.id, o);
}
});
if (activeOrders) activeOrders.Update();
if (historyOrders) historyOrders.Update();
if (isDebug) {
console.debug('HttpClient:GetOrders:OK');
console.debug(orders);
}
} else {
if (isDebug) {
console.debug('HttpClient:GetOrders:Error');
console.debug(data.json());
}
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
}
});
} else {
if (isDebug) console.debug('HttpClient:GetOrders:onLoadError');
}
};
this.GetCalls = function () {
if (isDebug) console.debug('HttpClient:GetCalls:Begin');
if (!onLoadError) {
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().sync().post(__self.url, {
action: 'get_calls_history',
city_id: config.city_id,
limit: config.default.calls_history_count
}, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:GetCalls:Error');
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:GetCalls:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
calls.clearAll();
if (data.json() != null && data.json().error == 0) {
if (data.json().response && data.json().response.length > 0) {
data.json().response.forEach(function (e) {
var c = new Call(e);
if (c.id > 0 && !calls.getItem(c.id)) {
calls.add(c);
} else {
calls.updateItem(c.id, c);
}
});
calls.sort('#id#', 'desc', sortNumber);
}
if (isDebug) {
console.debug('HttpClient:GetCalls:OK');
console.debug(calls);
}
} else {
if (isDebug) {
console.debug('HttpClient:GetCalls:Error');
console.debug(data.json());
}
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
}
});
} else {
if (isDebug) console.debug('HttpClient:GetCalls:onLoadError');
}
};
this.GetUslugi = function () {
if (isDebug) console.debug('HttpClient:GetUslugi:Begin');
if (!onLoadError) {
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().sync().post(__self.url, {
action: 'get_uslugi',
city_id: config.city_id,
limit: config.default.calls_history_count
}, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:GetUslugi:Error');
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:GetUslugi:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:GetUslugi:Success');
console.debug(data.json());
}
if (data.json().error == 101) {
uslugi = [];
}
else if (data.json().error == 0) {
uslugi = data.json().result;
webix.message({
type: 'success',
text: 'Список услуг загружен'
});
} else {
webix.message({
type: 'error',
text: 'HttpClient:GetUslugi:Error'
});
}
}
});
}
}
this.GetTarifs = function () {
if (!onLoadError) {
var params = {
city_id: config.city_id
};
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().sync().post(BuildApiUrl('tarifs_list'), params, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:GetTarifs:Error');
console.debug(XmlHttpRequest);
}
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:GetTarifs:Success');
console.debug(data.json());
}
if (data.json() && data.json().error == 0) {
webix.message({
type: 'success',
text: 'Список тарифов загружен'
});
tarifs = [];
$.each(data.json().response.tarifs, function (k, v) {
tarifs.push({
id: v.tariff_id,
value: v.tariff_name + ' ' +
'( ' + v.tariff_includedkm + ' км. = ' + v.tariff_costpos + ' ' +
config.valuta + ' +1 км. = ' + v.tariff_costkm + ' ' + config.valuta + ' )',
costkm: parseFloat(v.tariff_costkm),
includedkm: parseFloat(v.tariff_includedkm),
costpos: parseFloat(v.tariff_costpos),
costwait: parseFloat(v.tariff_costwait),
costmin: parseFloat(v.tariff_costmin)
});
});
} else {
webix.message({
type: 'error',
text: 'HttpClient:GetTarifs:Error'
});
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
}
});
}
};
this.GetSectors = function () {
if (!onLoadError) {
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().sync().post(__self.url, { action: 'get_sectors' }, {
error: function (text, data, XmlHttpRequest) {
onLoadError = true;
if (isDebug) {
console.debug('HttpClient:GetSectors:Error');
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:GetSectors:Error' });
onLoadError = true;
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:GetSectors:Success');
console.debug(data.json());
}
if (data.json() != null && data.json().error == 0) {
webix.message({
type: 'success',
text: 'Список секторов загружен.'
});
sectors.clearAll();
var s0 = new Sector();
data.json().result.forEach(function (e) {
var s = new Sector(e);
if (s.id > 0 && !sectors.getItem(s.id)) {
sectors.add(s);
} else {
sectors.updateItem(s.id, s);
}
s0.position = Math.max(s0.position, s.position) + 1;
});
s0.id = "0";
s0.bounds = [
[config.city_la, config.city_lo],
[config.city_la, config.city_lo],
[config.city_la, config.city_lo],
[config.city_la, config.city_lo],
];
sectors.add(s0);
if (carMenu) carMenu.Update();
if (parking) parking.Update();
} else {
webix.message({ type: 'error', text: 'HttpClient:GetSectors:Error' });
onLoadError = true;
}
if (isDebug) {
console.debug(XmlHttpRequest);
console.debug(data);
console.debug(sectors);
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
}
});
}
};
this.GetCars = function () {
if (!onLoadError) {
var post = {
action: 'get_cars'
};
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().sync().post(__self.url, post, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:GetCars:Error');
console.debug(XmlHttpRequest);
webix.message({ type: 'error', text: 'HttpClient:GetCars:Error' });
}
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:GetCars:Success');
console.debug(XmlHttpRequest);
console.debug(data.json());
}
if (data.json() != null && data.json().error == 0) {
cars.clearAll();
data.json().result.forEach(function (e) {
if (!cars.getItem(e.id)) {
//console.log(e);
cars.add(new Car(e));
} else {
cars.updateItem(e.id, e);
}
});
cars.data.sort('#time#', 'desc', sortNumber);
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
}
});
}
};
this.SyncCars = function () {
var post = {
action: 'sync_cars'
};
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().sync().post(__self.url, post, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:SyncCars:Error');
console.debug(XmlHttpRequest);
}
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:SyncCars:Success');
console.debug(XmlHttpRequest);
console.debug(data.json());
}
if (data.json() != null && data.json().error == 0) {
data.json().response.cars.forEach(function (e) {
var car = cars.getItem(e.id);
if (car) {
car.Update(e);
}
});
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
if (parking) parking.Update();
if (sideCars) sideCars.Update();
}
});
};
this.SyncOrders = function () {
};
this.SyncOperatorBalance = function (callback) {
var post = {
action: 'sync_operator_balance',
operator_id: config.who_id
};
webix.ajax().post(__self.url, post, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:SyncOperatorBalance:Error');
console.debug(XmlHttpRequest);
webix.message('HttpClient:SyncOperatorBalance:Error');
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('error');
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:SyncOperatorBalance:Success');
console.debug(XmlHttpRequest);
console.debug(data.json());
}
if (callback) callback(data.json());
}
});
};
this.ParkMoveCar = function (car, options, callback) {
if (typeof (car) != 'undefined' && typeof (options.park) != 'undefined') {
var url = BuildApiUrl('park_move_car');
var post = {
//action: 'park_move_car',
car_id: car.id,
park: options.park,
park_status: options.park_status != null ? options.park_status : car.park_status,
old_park: car.park,
penalty_id: options.penalty_id,
cause: options.cause,
who_id: config.who_id
};
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().post(url, post, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:ParkMoveCar:Error');
console.debug(XmlHttpRequest);
webix.message('HttpClient:ParkMoveCar:Error');
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('error');
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:ParkMoveCar:Success');
console.debug(XmlHttpRequest);
console.debug(data.json());
}
if (data.json().error == 0) {
var car = cars.getItem(data.json().response.car_id);
var sector = sectors.getItem(data.json().response.park_id);
if (car && sector) {
webix.message({
type: 'success',
text: 'Перемещение успешно.
' + car.ch + ' - ' + car.poz + ' >> ' + sector.name + ''
});
} else {
webix.message({
type: 'success',
text: 'Перемещение успешно.'
});
}
}
if (callback)
callback(data.json());
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
}
});
} else {
webix.message({
type: 'error',
text: 'Ошибка перемещения! Неверный аргумент.'
});
if (isDebug) {
console.debug('HttpClient:ParkMoveCar:RequestError');
}
}
};
this.GetCarInfo = function (car_id, callback) {
if (typeof (car_id) != 'undefined') {
var post = {
action: 'get_car_info',
car_id: car_id
};
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().post(__self.url, post, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
webix.message('Ошибка получения списка последних заказов авто.');
console.debug('HttpClient:GetGetCarInfo:RequestError');
console.debug(XmlHttpRequest);
}
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:GetGetCarInfo:Success');
console.debug(XmlHttpRequest);
console.debug(data.json());
}
if (data.json().error == 0) {
if (callback) callback(data.json());
} else {
webix.message({
type: 'success',
text: 'Ошибка получения списка последних заказов авто!'
});
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
}
});
} else {
webix.message({
type: 'error',
text: 'Ошибка получения списка последних заказов авто! Неверный аргумент.'
});
if (isDebug) console.debug('HttpClient:GetGetCarInfo:RequestError');
}
};
// получить список причин отмены
this.GetCancelCauses = function () {
// обновить статус
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
// запрос
webix.ajax().sync().post(__self.url, { action: 'get_cancel_causes' }, {
// ошибка запроса
error: function (text, data, XmlHttpRequest) {
onLoadError = true;
if (isDebug) {
console.debug('HttpClient:GetCancelCauses:Error');
console.debug(XmlHttpRequest);
}
webix.message('HttpClient:GetCancelCauses:Error');
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
// получен ответ
success: function (text, data, XmlHttpRequest) {
// обновить статус
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
if (data.json() && data.json().error == 0) { // ошибок нет
cancelCauses.clearAll();
// заполнить колекцию
data.json().result.forEach(function (e) {
cancelCauses.add(e);
});
webix.message({
type: 'success',
text: 'Список статусов отмен заказов загружен.'
});
} else { // ошибка
webix.message({
type: 'error',
text: 'Ошибка #: ' + data.json().error + ' Msg: ' + data.json().error_msg
});
onLoadError = true;
}
}
});
};
this.GetPenalties = function () {
// обновить статус
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
// запрос
webix.ajax().sync().post(__self.url, { action: 'get_penalties', city_id: config.city_id }, {
// ошибка запроса
error: function (text, data, XmlHttpRequest) {
onLoadError = true;
if (isDebug) {
console.debug('HttpClient:GetPenalties:Error');
console.debug(XmlHttpRequest);
}
webix.message('HttpClient:GetPenalties:Error');
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
// получен ответ
success: function (text, data, XmlHttpRequest) {
// обновить статус
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
if (data.json() && data.json().error == 0) { // ошибок нет
if (data.json().response.penalties)
penalties = data.json().response.penalties;
if (data.json().response.causes)
penaltyCauses = data.json().response.causes;
webix.message({
type: 'success',
text: 'Список штрафов загружен.'
});
} else { // ошибка
webix.message({
type: 'error',
text: 'Ошибка #: ' + data.json().error + ' Msg: ' + data.json().error_msg
});
onLoadError = true;
}
}
});
};
this.ChatSendMessage = function (options, callback) {
var errors = false;
// обновить статус
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
// запрос
var url = BuildApiUrl('chat_send');
var post = {
type: 'all',
client_id_to: 0,
message: ''
};
if (options) {
if (options.message) {
if (options.message.length < 1) {
webix.message({ type: 'error', text: 'HttpClient:ChatSendMessage:Error: The message is short!' });
errors = true;
} else if (options.message.length > 255) {
webix.message({ type: 'error', text: 'HttpClient:ChatSendMessage:Error: The message is long!' });
errors = true;
} else {
post.message = options.message;
}
} else {
errors = true;
}
if (options.type) {
post.type = options.type;
}
if (options.client_id_to) {
post.client_id_to = options.client_id_to;
}
} else {
webix.message({ type: 'error', text: 'HttpClient:ChatSendMessage:Error: Invalid data' });
errors = true;
}
if (errors == false) {
webix.ajax().sync().post(url, post, {
error: function (text, data, XmlHttpRequest) {
onLoadError = true;
if (isDebug) {
console.debug('HttpClient:ChatSendMessage:Error');
console.debug(XmlHttpRequest);
}
webix.message('HttpClient:ChatSendMessage:Error');
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
// получен ответ
success: function (text, data, XmlHttpRequest) {
// обновить статус
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
//console.log("SEND");
//console.log(data.json());
if (callback) callback(data.json());
}
});
}
};
this.GetChat = function (options) {
// обновить статус
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
var post = {
start: 0,
count: 1000
};
if (options) {
if (options.start) {
post.start = options.start
}
if (options.count) {
post.count = options.count
}
}
// запрос
var url = BuildApiUrl('chat_get');
webix.ajax().sync().post(url, post, {
// ошибка запроса
error: function (text, data, XmlHttpRequest) {
onLoadError = true;
if (isDebug) {
console.debug('HttpClient:GetChat:Error');
console.debug(XmlHttpRequest);
}
webix.message('HttpClient:GetChat:Error');
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
// получен ответ
success: function (text, data, XmlHttpRequest) {
// обновить статус
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
if (data.json() && data.json().error == 0) { // ошибок нет
chat.clearAll();
if (data.json().response && data.json().response.messages) {
data.json().response.messages.forEach(function (i) {
chat.add(i);
})
}
chat.sort('mid', 'asc', sortNumber);
//chat.data.sort('#mid#','desc',sortNumber);
webix.message({
type: 'success',
text: 'Чат загружен.'
});
if (sideChat) sideChat.Update();
} else { // ошибка
webix.message({
type: 'error',
text: 'Ошибка загрузки сообщений.'
});
onLoadError = true;
}
}
});
};
this.GetOrderFormData = function (data, callback) {
data.order_id = typeof data.order_id != 'undefined' ? data.order_id : 0;
data.phone = typeof data.phone != 'undefined' ? data.phone : 0;
var order_form_data = {
order_id: data.order_id,
phone: data.phone,
city_id: config.city_id,
who: config.who,
who_id: config.who_id,
action: 'get_order_data'
};
if (data.phone > 0 || data.order_id > 0) {
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().post(__self.url, order_form_data, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:GetOrderFormData:Error');
console.debug(XmlHttpRequest);
}
webix.message('HttpClient:GetOrderFormData:Error');
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
webix.message('HttpClient:GetOrderFormData:Success');
if (isDebug) {
console.debug('HttpClient:GetOrderFormData:Success');
console.debug(data.json());
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
if (data.json() != null && data.json().error == 0) {
callback(data.json());
}
}
});
}
};
this.Autocomplete = function (request, target, callback) {
request = request.split('*')[0];
var url = location.pathname + '?client_key=' + config.client_key + '&action=find_adres&filter[city_id]=' + config.city_id + '&filter[value]=' + request;
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
target.getList().clearAll();
target.getList().load(url, {
error: function (text, data, http_request) {
if (toolBarTop) toolBarTop.UpdateHttpStatus();
if (callback) { callback(data.json()); }
},
success: function (text, data, http_request) {
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
if (callback) { callback(data.json()); }
}
});
};
// ORDER
this.OrderCreate = function (order, callback) {
order.who_create = config.who;
order.who_id_create = config.who_id;
order.who = config.who;
order.who_id = config.who_id;
order.city_id = config.city_id;
order.order_id = order.id;
order.j_uslugi = order.uslugi.join('-');
var post_data = {};
for (var i in order) {
if (i != 'isValid' && i != 'Create' && i != 'Update') {
post_data[i] = order[i];
}
}
var url = BuildApiUrl('order_create');
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().post(url, post_data, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:OrderCreate:Error' });
console.debug(XmlHttpRequest);
}
if (toolBarTop) toolBarTop.UpdateHttpStatus();
if (callback) callback();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:OrderCreate:Success');
console.debug(data.json());
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
if (callback) callback(data.json());
}
});
};
this.OrderAccept = function (order_id, car_id, callback) {
if (order_id && car_id) {
var param = {
order_id: order_id,
car_id: car_id,
oper_id: config.who_id
}
var url = BuildApiUrl('order_accept');
webix.ajax().post(url, param, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:OrderAccept:Error' });
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:OrderAccept:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:OrderAccept:Success');
console.debug(data.json());
}
if (data.json().error == 0) {
webix.message({ type: 'success', text: 'HttpClient:OrderAccept:Success' });
} else {
webix.message({ type: 'error', text: 'HttpClient:OrderAccept:Error:' });
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
if (callback) callback(data.json());
}
});
} else {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:OrderAccept:Error: Invalid data' });
}
webix.message({ type: 'error', text: 'HttpClient:OrderAccept:Error' });
}
};
this.OrderArrive = function (order_id, car_id, callback) {
if (order_id && car_id) {
var param = {
order_id: order_id,
car_id: car_id,
oper_id: config.who_id
}
var url = BuildApiUrl('order_arrive');
webix.ajax().post(url, param, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:OrderArrive:Error' });
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:OrderArrive:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:OrderArrive:Success');
console.debug(data.json());
}
if (data.json().error == 0) {
webix.message({ type: 'success', text: 'HttpClient:OrderArrive:Success' });
} else {
webix.message({ type: 'error', text: 'HttpClient:OrderArrive:Error:' });
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
if (callback) callback(data.json());
}
});
} else {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:OrderArrive:Error: Invalid data' });
}
webix.message({ type: 'error', text: 'HttpClient:OrderArrive:Error' });
}
};
this.OrderRide = function (order_id, car_id, callback) {
if (order_id && car_id) {
var param = {
order_id: order_id,
car_id: car_id,
oper_id: config.who_id
};
var url = BuildApiUrl('order_ride');
webix.ajax().post(url, param, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:OrderRide:Error' });
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:OrderRide:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:OrderRide:Success');
console.debug(data.json());
}
if (data.json().error == 0) {
webix.message({ type: 'success', text: 'HttpClient:OrderRide:Success' });
} else {
webix.message({ type: 'error', text: 'HttpClient:OrderRide:Error:' });
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
if (callback) callback(data.json());
}
});
} else {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:OrderRide:Error: Invalid data' });
}
webix.message({ type: 'error', text: 'HttpClient:OrderRide:Error' });
}
};
this.OrderComplete = function (order_id, car_id, callback) {
if (order_id && car_id) {
var param = {
order_id: order_id,
car_id: car_id,
oper_id: config.who_id
};
var url = BuildApiUrl('order_complite');
webix.ajax().post(url, param, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:OrderComplete:Error' });
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:OrderComplete:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:OrderRide:Success');
console.debug(data.json());
}
if (data.json().error == 0) {
webix.message({ type: 'success', text: 'HttpClient:OrderComplete:Success' });
} else {
webix.message({ type: 'error', text: 'HttpClient:OrderComplete:Error:' });
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
if (callback) callback(data.json());
}
});
} else {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:OrderComplete:Error: Invalid data' });
}
webix.message({ type: 'error', text: 'HttpClient:OrderComplete:Error' });
}
};
this.OrderCancel = function (order, callback) {
order.who = config.who;
order.who_id = config.who_id;
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().post(
BuildApiUrl('order_cancel'),
{
order_id: order.id,
who: order.who,
cause: order.cause
},
{
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:OrderCancel:Error' });
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:OrderCancel:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:OrderCancel:Success');
console.debug(data.json());
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
callback(data.json());
}
})
};
this.OrderCopy = function order_copy(order_id, callback) {
var post = {
order_id: order_id,
who_id: config.who_id,
action: 'order_copy'
};
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().post(__self.url, post, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:OrderCopy:Error' });
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:OrderCopy:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:OrderCopy:Success');
console.debug(data.json());
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
callback(data.json());
}
})
};
this.OrderSendToOnline = function (order_id, callback) {
var post = {
order_id: order_id,
who_id: config.who_id,
action: 'order_send_online'
};
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().post(__self.url, post, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:OrderSendToOnline:Error' });
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:OrderSendToOnline:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:OrderSendToOnline:Success');
console.debug(data.json());
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
callback(data.json());
}
})
};
this.OrderSendToCar = function (options, callback) {
if (options && options.car_id && options.order_id) {
var post = {
action: 'order_send_to_car',
car_id: options.car_id,
order_id: options.order_id,
who_id: config.who_id
};
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().post(__self.url, post, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:OrderSendToCar:Error');
console.debug(XmlHttpRequest);
}
webix.message({
type: 'error',
text: 'HttpClient:OrderSendToCar:Error'
});
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:OrderSendToCar:Success');
console.debug(XmlHttpRequest);
console.debug(data.json());
}
if (data.json().error == 0) {
webix.message({
type: 'success',
text: 'Заказ #' + data.json().result.order_id + ' доставлен позывному ' + data.json().result.poz
});
activeOrders.Unselect();
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
if (callback)
callback(data.json());
}
});
} else {
webix.message({
type: 'error',
text: 'Ошибка отправки заказа! Неверный аргумент. order_send_to_car(car_id, order_id)'
})
}
};
this.OrderSendOtherCar = function (order_id, callback) {
var post = {
order_id: order_id,
who_id: config.who_id,
action: 'order_send_other_car'
};
var error = '';
var error_msg = '';
if (toolBarTop) toolBarTop.UpdateHttpStatus('send');
webix.ajax().post(__self.url, post, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:OrderSendOtherCar:Error');
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:OrderSendOtherCar:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:OrderSendOtherCar:Success');
console.debug(data.json());
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
callback(data.json());
}
});
};
this.Route = function (data, callback) {
if (data) {
webix.ajax().post(
BuildApiUrl('route'), data,
{
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug({ type: 'error', text: 'HttpClient:Route:Error' });
console.debug(XmlHttpRequest);
}
webix.message({ type: 'error', text: 'HttpClient:Route:Error' });
if (toolBarTop) toolBarTop.UpdateHttpStatus();
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:Route:Success');
console.debug(data.json());
}
if (toolBarTop) toolBarTop.UpdateHttpStatus('success');
callback(data.json());
}
})
}
};
this.CallExt = function (phone, callback) {
if (!phone) {
webix.message({
type: 'error',
text: 'HttpClient:CallExt:Error. Invalid phone'
});
}
else {
var post = {
action: 'call_ext',
exten: config.default.sip_user,
phone: phone.replace(config.country_code, '')
};
webix.ajax().post(__self.url, post, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug(XmlHttpRequest);
console.debug('HttpClient:CallExt:Error');
webix.message({
type: 'error',
text: 'HttpClient:CallExt:Error'
});
}
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:CallExt:Success');
console.debug(XmlHttpRequest);
console.debug(data.json());
}
if (callback)
callback(data.json());
}
});
}
};
this.ReadConfig = function (callback) {
webix.ajax().post(__self.url, { action: 'get_app_config' }, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug(XmlHttpRequest);
console.debug('HttpClient:ReadIniFile:Error');
webix.message({
type: 'error',
text: 'HttpClient:ReadIniFile:Error'
});
}
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:ReadIniFile:Success');
console.debug(XmlHttpRequest);
console.debug(data.json());
}
callback(data.json());
}
});
};
this.SaveConfig = function (data) {
var post = {
action: 'save_app_config',
data: data
};
webix.ajax().post(__self.url, post, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug(XmlHttpRequest);
webix.message('ERROR! ajax save_ini');
}
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('OK! ajax get_ini');
console.debug(XmlHttpRequest);
console.debug(data.json());
}
if (data.json().error == 0) {
webix.alert({
type: 'success',
text: 'Настройки сохранены. Чтобы настройки вступили в силу обновите страницу.'
})
} else {
webix.alert({
type: 'error',
text: data.json().error_msg
})
}
}
});
};
this.LogOut = function (callback) {
var post = {
action: 'logout'
};
webix.ajax().post(__self.url, post, {
error: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug(XmlHttpRequest);
console.debug('HttpClient:LogOut:Error');
webix.message({
type: 'error',
text: 'HttpClient:LogOut:Error'
});
}
},
success: function (text, data, XmlHttpRequest) {
if (isDebug) {
console.debug('HttpClient:LogOut:Success');
console.debug(XmlHttpRequest);
console.debug(data.json());
}
callback(data.json());
}
});
};
// init
this.GetConfiguration();
}