@ -106,7 +106,7 @@
< p > Заказы< / p >
{% for order in orders %}
< div class = "orderBlock box-sizing order-block"
data-recipent-id="{{ order.order.contractor.pk }}" data-id="{{ order.order.id }}">
id="orderBlock{{ order.order.id }}" data-secure-deal="{% if order.order.secure %}true{% else %}false{% endif %}" data-recipent-id="{{ order.order.contractor.pk }}" data-id="{{ order.order.id }}">
< span class = "dimovChat" > < / span >
< p class = "titleOB" > {{ order }}< / p >
< div class = "hideOBB" >
@ -156,7 +156,7 @@
< div id = "order-stages" class = "stepssBlock" > < / div >
< div class = "stepssBlock box-sizing disTab" >
< div class = "stepssBlock box-sizing disTab" id = "reserveSpace" style = "display:none;" >
< p class = "titleStepss" > 2 / Резервирование< / p >
< p class = "textStepss" >
Резервирование заказчиком суммы оплаты по заказ. Деньги перечисляются и хранятся на
@ -164,7 +164,7 @@
< / p >
< div class = "textAreaBlock2 FFD box-sizing disTab" >
< a href = "#" id = "reserve-button" data-order-id = "" data-toggle = "modal" data-target = "#reserve-stage-modal" > Зарезирвировать< / a >
< a href = "#" id = "reserve-button" data-order-id = "" > Зарезирвировать< / a >
< / div >
< / div >
@ -173,12 +173,16 @@
{% include 'reverse_stage_modal.html' %}
<!-- Конец блока -->
< div class = "stepssBlock box-sizing disTab" >
< p class = "titleStepss" > 3 / Выполнение работы< / p >
< p class = "textStepss" >
Процесс выполнения задания в заказе до получения заказчиком итогового результата работы.
< / p >
< / div >
< div class = "stepssBlock box-sizing disTab" id = "completeWork" >
< p class = "titleStepss" > 3 / Выполнение работы< / p >
< p class = "textStepss" >
Процесс выполнения задания в заказе до получения
заказчиком итогового результата работы.
< / p >
< div id = "stagesWork" class = "stages-work textAreaBlock2" >
< / div >
< / div >
< div class = "textAreaBlock2 box-sizing disTab" >
@ -188,7 +192,7 @@
< / div >
< div class = "closeChat closeChat1" >
< div class = "closeChat closeChat1" id = "leaveReview" style = "display: none;" >
< a href = "#" data-toggle = "modal" data-target = "#review-add" >
Закрыть проект< br > и оставить отзыв
< / a >
@ -197,54 +201,7 @@
<!-- Review add -->
< div id = "review-add" class = "modal fade" role = "dialog" >
< div class = "modal-dialog" role = "document" style = "width:900px;" >
< div class = "modal-content" >
< div class = "modal-header" >
< button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true" > ×
< / button >
< h4 class = "modal-title" > Оставить отзыв< / h4 >
< / div >
< form id = "review-adds-form" method = "POST" > {% csrf_token %}
< div class = "modal-body" >
< div style = "height: 250px;" >
< div class = "text-nn box-sizing disTab" >
< input type = "radio" value = "positive"
name="type">Положительный
< input type = "radio" value = "negative"
name="type">Отрицательный
< input type = "radio" value = "neutral"
name="type">Нейтральный
< / div >
< div class = "textAreaBlock2 text-nn box-sizing disTab" >
< textarea cols = "40" name = "text" rows = "10" > < / textarea >
< input type = "hidden" name = "from_customer"
value="{{ request.user.pk }}"/>
< input type = "hidden" name = "target_contractor"
id="targetContractorId"/>
< input type = "hidden" name = "project" id = "projectReviewId" / >
< / div >
< / div >
< / div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-default" data-dismiss = "modal" > Закрыть
< / button >
< button type = "submit" id = "order-review-add" class = "btn btn-primary" > Оставить
отзыв
< / button >
< / div >
< / form >
< / div >
< / div >
< / div >
{% include 'review_add_modal.html' %}
<!-- -->
< / div >
@ -273,20 +230,64 @@
var csrftoken = getCookie('csrftoken');
$("#reserve-button").on("click",function(e) {
e.preventDefault();
e.preventDefault();
$("#reserve-stage-modal").modal('show');
var orderId = $(this).attr('data-order-id');
$.ajax({
url: '/api/stages/',
type: 'GET',
data: {csrfmiddlewaretoken: csrftoken, 'order': orderId},
dataType: 'json',
success: function (json) {
console.log(json.results);
}
});
$.ajax({
url: '/api/stages/',
type: 'GET',
data: {csrfmiddlewaretoken: csrftoken, 'order': orderId},
dataType: 'json',
success: function (json) {
var outputValues = '';
var totalSum = 0;
var stagesIds = '';
$.each(json.results, function (i, v) {
console.log(v.cost);
totalSum += parseInt(v.cost);
outputValues += '< option data-stage-sum = "' + v.cost + '" value = "'+ v.id +'" > ' + v.name + '< / option > ';
stagesIds += v.id + ';'
});
$("#stagesSelect").html(outputValues);
$(".totalSum").text(totalSum);
$("#choiceWayOrder").val(totalSum)
$("#stages-pay-form #stageSumPay").val(totalSum);
$("#stages-pay-form #stagesIds").val(stagesIds);
$("#choiceWayOrder").attr('data-stages-ids',stagesIds);
}
});
});
$("#tab2").on("change","input[name=choice_way]:radio", function(e){
var sumStage = $("#stagesSelect").find('option:selected').attr('data-stage-sum');
var currIdStage = $("#stagesSelect").find('option:selected').val();
$("#choiceWayStage").val(sumStage);
var currValue = $(this).val();
$("#stages-pay-form #stageSumPay").val(currValue);
var selectId = ($(this).attr('id'));
if (selectId == 'choiceWayOrder'){
$("#stages-pay-form #stagesIds").val($(this).attr('data-stages-ids'));
$("#stagesSelect").prop('disabled', 'disabled');
}else {
$("#stages-pay-form #stagesIds").val(currIdStage);
$("#stagesSelect").prop('disabled', false);
}
});
$("#tab2").on("change","#stagesSelect", function(e){
var sumStage = $(this).find('option:selected').attr("data-stage-sum");
$("#choiceWayStage").val(sumStage);
$("#stages-pay-form #stageSumPay").val(sumStage);
$("#stages-pay-form #stagesIds").val($(this).val());
});
function getStages(orderId, senderId, recipentId) {
//Получить заказы
function getStages(orderId, senderId, recipentId, secureOrder) {
$.ajax({
url: '/api/stages/',
@ -296,6 +297,7 @@
success: function (json) {
var stageCount = json.results.length;
if (stageCount == 0) {
$("#reserveSpace").hide();
stageCountVal = 1;
} else {
stageCountVal = stageCount;
@ -314,11 +316,17 @@
'< input class = "form-control orderStagesInput" name = "order" type = "hidden" value = "' + orderId + '" / > ' +
'< label for = "" > Срок< / label > < input class = "form-control" name = "term" type = "text" / > ' +
'< label for = "" > Результат< / label > < input class = "form-control" name = "result" type = "text" / > ' +
'< label for = "" > Позиция< / label > < input class = "form-control" name = "pos" value = "1" type = "text " / > ' +
'< input class = "form-control" name = "pos" value = "1" type = "hidden " / > ' +
'< / form > < / div > ';
}
var statusNotAgreed = true;
var stagesPaidProcess = [];
$.each(json.results, function (i, v) {
if ((v.status == "in_process") & & (v.is_paid)){
stagesPaidProcess.push(v);
}
if (v.status == "not_agreed") {
htmlInbox += '< div class = "numberStepp box-sizing" > ' +
'< p > Этап< / p > < form class = "update-stages-form" data-stage-id = "' + v.id + '" id = "stage-form-' + v.pos + '" > ' +
@ -334,30 +342,73 @@
htmlInbox += '< div class = "numberStepp box-sizing" > < div class = "insetNumStepp" > ' +
'< p class = "titleNumStepp" > < span > Этап ' + v.pos + '< / span > ' + v.name + '< / p > ' +
'< p class = "textNumStepp" > Результаты этапа:' + v.result + '< / p > < div > ' +
'< p > до Дата< / p > < span > ' + v.cost + '< i class = "fa fa-rub" > < / i > < / span > < / div > < / div > < / div > ';
'< p > до Дата< / p > < span > ' + v.cost + '< i class = "fa fa-rub" > < / i > < / span > ' +
'< / div > < / div > < / div > ';
}
});
if (statusNotAgreed) {
htmlInbox += '< div class = "box-sizing disTab" style = "text-align:center;" > < div class = "checkbox" > < input type = "checkbox" style = "opacity:1" > Перейти в режим безопасной сделки' +
'< / div > < / div > < div class = "textAreaBlock2 box-sizing disTab" > ' +
'< a href = "#" data-sender-id = "' + senderId +'" data-recipent-id = "' + recipentId +'" data-order-id = "' + orderId + '" id = "addStagesForm" > отправить на согласование< / a > < / div > ';
if(secureOrder) {
var orderSecureCheckbox = 'checked="checked"';
htmlInbox += '< div class = "box-sizing disTab" > ' +
'< div class = "checkbox" > < input name = "secure" id = "secureOrder" ' + orderSecureCheckbox + ' type = "checkbox" style = "opacity:1" > ' +
'Перейти в режим безопасной сделки< / div > < / div > ';
}
htmlInbox +='< div class = "textAreaBlock2 box-sizing disTab" > ' +
'< a href = "#" data-sender-id = "' + senderId +'" ' +
'data-recipent-id="' + recipentId +'" data-order-id="' + orderId + '" ' +
'id="addStagesForm">отправить на согласование< / a > < / div > ';
}else if(json.results.length>0){
$("#reserveSpace").show();
}
htmlInbox = htmlInboxStage + htmlInbox;
$("#order-stages").html(htmlInbox);
if (stagesPaidProcess.length > 0){
$("#completeWork").show();
var stage = stagesPaidProcess[0];
var stageWork = '< p > В работе '+ stage.name +'< / p > ' +
'< p > Результат этапа : '+ stage.result +'< / p > ' +
'< p > Срок сдачи 25.08.2016 < b > ' + stage.cost + 'р.< / b > < / p > ';
if (stage.close_contractor){
stageWork += '< a href = "#" class = "closeStage" data-stage-id = "'+ stage.id+'" > Закрыть этап '+ stage.pos +'< / a > ';
}
$("#stagesWork").html(stageWork);
}else{
$("#completeWork").hide();
}
}
});
}
setTimeout(function () {
$(".user-block").first().trigger('click');
}, 10);
//Закрыть этап
$('#tab2').on('click','.closeStage', function(e){
e.preventDefault();
var stageId = $(this).attr('data-stage-id');
$.ajax({
url: '/api/stages/' + stageId + '/',
type: 'PATCH',
beforeSend: function (xhr) {
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'))
},
data: {close_customer: true, status: 'completed'},
dataType: 'json',
success: function (json) {
console.log(json);
},
error: function (e) {
console.log('error');
console.log(e);
}
});
});
setTimeout(function () {
$(".order-block").first().trigger('click');
}, 100);
// Добавление этапов
$("#order-stages").on('click', "#addStagesForm", function (e) {
e.preventDefault();
$(".new-stages-form").each(function (i, v) {
@ -403,11 +454,10 @@
});
});
var currentOrderId = $(this).attr('data-order-id');
var currentRecipentId = $(this).attr('data-recipent-id');
getStages(currentOrderId,userId,currentRecipentId);
var secureOrder = true
getStages(currentOrderId,userId,currentRecipentId,secureOrder );
socket.send_stages_approve({
"format_type": "approve_stages",
@ -421,6 +471,7 @@
});
//Изменение счетчика
$('#order-stages-tab').on('change', '#countStage', function () {
var countStage = parseInt($(this).val());
var currentCountStage = $(".numberStepp").length;
@ -437,11 +488,9 @@
'< input class = "form-control orderStagesInput" name = "order" type = "hidden" value = "' + orderId + '" / > ' +
'< label for = "" > Срок< / label > < input class = "form-control" name = "term" type = "text" / > ' +
'< label for = "" > Результат< / label > < input class = "form-control" name = "result" type = "text" / > ' +
'< label for = "" > Позиция< / label > < input class = "form-control" name = "pos" value = "'+ pos +'" type = "text " / > '
'< input class = "form-control" name = "pos" value = "'+ pos +'" type = "hidden " / > '
'< / form > < / div > ';
lastFormStage.after(addFormTemplate);
}
}else if (countStage < currentCountStage ) {
@ -456,6 +505,7 @@
}
});
// Для заказов все вытащить
$('.order-block').on('click', function () {
$("#chat-order-add").css("display", "block");
$("#formsetStage").css("display", "block");
@ -467,6 +517,8 @@
$(this).addClass('orAct');
var orderId = $(this).attr('data-id');
var recipentId = $(this).attr('data-recipent-id');
var secureOrder = $(this).attr('data-secure-deal');
secureOrder = Boolean(secureOrder);
$("#chat-order-add #orderId").val(orderId);
$("#projectReviewId").val(orderId);
$("#reserve-button").attr('data-order-id', orderId);
@ -496,7 +548,7 @@
});
}
});
getStages(orderId,userId,recipentId);
getStages(orderId,userId,recipentId, secureOrder );
});
// Вытащить сообщения для конактов
@ -557,8 +609,28 @@
$("#chat").val("");
});
$('#order-review-add').on('click', function () {
alert('add review');
// Добавление отзыва
$('#order-review-add').on('click', function (e) {
e.preventDefault();
e.stopPropagation();
var formData = $("#review-adds-form").serialize();
$.ajax({
url: '/api/reviews/',
type: 'POST',
beforeSend: function (xhr) {
xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'))
},
data: formData,
dataType: 'json',
success: function (json) {
console.log("Успешно");
console.log(json);
},
error: function (e) {
console.log('error');
console.log(e);
}
});
});
$('#order-chat-add-message').on('click', function (e) {