498 lines
27 KiB
Plaintext
498 lines
27 KiB
Plaintext
@page "{handler?}"
|
|
@model EveryThing.Pages.TransportLoadingOrder.AddEditModel
|
|
|
|
@{
|
|
ViewData["Title"] = "Urejanje naloga";
|
|
Layout = "~/Pages/Layouts/_Layout.cshtml";
|
|
}
|
|
|
|
<!-- Editor -->
|
|
<link rel="stylesheet" href="~/vendor/libs/quill/typography.css" asp-append-version="true" />
|
|
<link rel="stylesheet" href="~/vendor/libs/quill/editor.css" asp-append-version="true" />
|
|
<link rel="stylesheet" href="~/vendor/libs/select2/select2.css" asp-append-version="true" />
|
|
|
|
<h4 class="d-flex justify-content-between align-items-center w-100 font-weight-bold py-1 mb-4">
|
|
<span>
|
|
<span class="text-muted font-weight-light">Nalog /</span>
|
|
@if (Model.TransportLoadingOrder.IdTransportLoadingOrder > 0)
|
|
{
|
|
<span>Urejanje</span>
|
|
}
|
|
else
|
|
{
|
|
<span>Vnos</span>
|
|
}
|
|
</span>
|
|
</h4>
|
|
|
|
<div class="nav-tabs-top nav-responsive-sm">
|
|
<ul class="nav nav-tabs">
|
|
<li class="nav-item">
|
|
<a class="nav-link active" data-toggle="tab" href="#item-basic">Osnovni podatki</a>
|
|
</li>
|
|
|
|
@if (Model.TransportLoadingOrder.IdTransportLoadingOrder > 0)
|
|
{
|
|
<li class="nav-item">
|
|
<a class="nav-link" data-toggle="tab" href="#item-positions">Pozicije</a>
|
|
</li>
|
|
}
|
|
</ul>
|
|
|
|
<div class="tab-content">
|
|
<div class="tab-pane fade show active" id="item-basic">
|
|
<form method="post" data-ajax="true" data-ajax-method="post" asp-page-handler="order" data-ajax-complete="orderPostCompleted" onsubmit="beforeOrderPost()">
|
|
<div class="card-body">
|
|
<input type="hidden" asp-for="TransportLoadingOrder.IdTransportLoadingOrder"/>
|
|
<input type="hidden" asp-for="TransportLoadingOrder.IdCompanyFk"/>
|
|
<input type="hidden" asp-for="TransportLoadingOrder.OrderNumber"/>
|
|
<input type="hidden" asp-for="TransportLoadingOrder.OrderYear"/>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrder.IdPartnerFk" class="form-label"></label>
|
|
<div class="input-group">
|
|
<select id="selTransporter" asp-for="TransportLoadingOrder.IdPartnerFk" class="form-control select2-transporter" asp-items="ViewBag.IdPartnerFk"></select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<label asp-for="TransportLoadingOrder.IdVehicleFk" class="form-label"></label>
|
|
<select asp-for="TransportLoadingOrder.IdVehicleFk" class="form-control select2-vehicle" asp-items="Model.Vehicles">
|
|
</select>
|
|
</div>
|
|
<div class="col-2 text-right">
|
|
<label class="form-label">Nakladalni nalog</label>
|
|
<br/>
|
|
<h4>
|
|
@if (Model.TransportLoadingOrder.IdTransportLoadingOrder > 0)
|
|
{
|
|
@Html.DisplayFor(modelItem => Model.TransportLoadingOrder.OrderNumberDisplay)
|
|
}
|
|
</h4>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-3">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrder.OrderCity" class="form-label"></label>
|
|
<input autocomplete="off" asp-for="TransportLoadingOrder.OrderCity" class="form-control"/>
|
|
<span asp-validation-for="TransportLoadingOrder.OrderCity" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
<div class="col-2">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrder.OrderDate" class="form-label"></label>
|
|
<input autocomplete="off" asp-for="TransportLoadingOrder.OrderDate" class="form-control" />
|
|
<span asp-validation-for="TransportLoadingOrder.OrderDate" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
<div class="col-1">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrder.State" class="form-label"></label>
|
|
<select asp-for="TransportLoadingOrder.State" class="form-control" asp-items="ViewBag.States"></select>
|
|
<span asp-validation-for="TransportLoadingOrder.State" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrder.VehicleText" class="form-label"></label>
|
|
<input autocomplete="off" asp-for="TransportLoadingOrder.VehicleText" class="form-control vehicle-text" />
|
|
<span asp-validation-for="TransportLoadingOrder.VehicleText" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
<div class="col-2">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrder.Total" class="form-label"></label>
|
|
<div class="input-group">
|
|
<div class="input-group-prepend">
|
|
<div class="input-group-text">€</div>
|
|
</div>
|
|
<input autocomplete="off" asp-for="TransportLoadingOrder.Total" class="form-control">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<div class="form-group mb-0">
|
|
<label asp-for="TransportLoadingOrder.PreText" class="form-label"></label>
|
|
<input type="hidden" id="value-pretext" asp-for="@Model.TransportLoadingOrder.PreText"/>
|
|
<div id="editor-pretext" style="height: 250px">
|
|
@Html.Raw(Model.TransportLoadingOrder.PreText)
|
|
</div>
|
|
<span asp-validation-for="TransportLoadingOrder.PreText" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
<div class="col-6">
|
|
<div class="form-group mb-0">
|
|
<label asp-for="TransportLoadingOrder.PostText" class="form-label"></label>
|
|
<input type="hidden" id="value-posttext" asp-for="@Model.TransportLoadingOrder.PostText"/>
|
|
<div id="editor-posttext" style="height: 250px">
|
|
@Html.Raw(Model.TransportLoadingOrder.PostText)
|
|
</div>
|
|
<span asp-validation-for="TransportLoadingOrder.PostText" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="card-footer py-3 text-right">
|
|
<button id="saveOrder" type="submit" class="btn btn-primary">Shrani nalog</button>
|
|
<a asp-page="Index" class="btn btn-default">Nazaj</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<div class="tab-pane fade" id="item-positions">
|
|
<div class="card-body">
|
|
<form method="post" data-ajax="true" data-ajax-method="post" asp-page-handler="positionadd" data-ajax-complete="laddaAddPosition.stop(); loadPosition();" data-ajax-begin="laddaAddPosition.start();" onsubmit="handleEditors()">
|
|
<div class="row">
|
|
<input type="hidden" asp-for="TransportLoadingOrder.IdTransportLoadingOrder" />
|
|
<div class="col-4">
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="form-group">
|
|
<label class="form-label">Naklad</label>
|
|
<select id="selLoading" asp-for="TransportLoadingOrderLoadUnload.IdLoadingFk" class="form-control select2-loading" asp-items="ViewBag.IdLoadingFk">
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrderLoadUnload.LoadingText" class="form-label"></label>
|
|
<textarea id="taLoadingText" rows="3" asp-for="TransportLoadingOrderLoadUnload.LoadingText" class="form-control"></textarea>
|
|
<span asp-validation-for="TransportLoadingOrderLoadUnload.LoadingText" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrderLoadUnload.LoadingDateFrom" class="form-label"></label>
|
|
<input autocomplete="off" asp-for="TransportLoadingOrderLoadUnload.LoadingDateFrom" class="form-control" />
|
|
<span asp-validation-for="TransportLoadingOrderLoadUnload.LoadingDateFrom" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
<div class="col-6">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrderLoadUnload.LoadingDateTo" class="form-label"></label>
|
|
<input autocomplete="off" asp-for="TransportLoadingOrderLoadUnload.LoadingDateTo" class="form-control" />
|
|
<span asp-validation-for="TransportLoadingOrderLoadUnload.LoadingDateTo" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrderLoadUnload.LoadingReference" class="form-label"></label>
|
|
<input autocomplete="off" asp-for="TransportLoadingOrderLoadUnload.LoadingReference" class="form-control" />
|
|
<span asp-validation-for="TransportLoadingOrderLoadUnload.LoadingReference" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
<div class="col-6">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrderLoadUnload.LoadingNote" class="form-label"></label>
|
|
<input autocomplete="off" asp-for="TransportLoadingOrderLoadUnload.LoadingNote" class="form-control" />
|
|
<span asp-validation-for="TransportLoadingOrderLoadUnload.LoadingNote" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="form-group">
|
|
<label class="form-label">Razklad</label>
|
|
<select id="selUnloading" asp-for="TransportLoadingOrderLoadUnload.IdUnloadingFk" class="form-control select2-unloading" asp-items="ViewBag.IdUnloadingFk">
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrderLoadUnload.UnloadingText" class="form-label"></label>
|
|
<textarea id="taUnloadingText" rows="3" asp-for="TransportLoadingOrderLoadUnload.UnloadingText" class="form-control"></textarea>
|
|
<span asp-validation-for="TransportLoadingOrderLoadUnload.UnloadingText" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrderLoadUnload.UnloadingDateFrom" class="form-label"></label>
|
|
<input autocomplete="off" asp-for="TransportLoadingOrderLoadUnload.UnloadingDateFrom" class="form-control" />
|
|
<span asp-validation-for="TransportLoadingOrderLoadUnload.UnloadingDateFrom" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
<div class="col-6">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrderLoadUnload.UnloadingDateTo" class="form-label"></label>
|
|
<input autocomplete="off" asp-for="TransportLoadingOrderLoadUnload.UnloadingDateTo" class="form-control" />
|
|
<span asp-validation-for="TransportLoadingOrderLoadUnload.UnloadingDateTo" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-6">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrderLoadUnload.UnloadingReference" class="form-label"></label>
|
|
<input autocomplete="off" asp-for="TransportLoadingOrderLoadUnload.UnloadingReference" class="form-control" />
|
|
<span asp-validation-for="TransportLoadingOrderLoadUnload.UnloadingReference" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
<div class="col-6">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrderLoadUnload.UnloadingNote" class="form-label"></label>
|
|
<input autocomplete="off" asp-for="TransportLoadingOrderLoadUnload.UnloadingNote" class="form-control" />
|
|
<span asp-validation-for="TransportLoadingOrderLoadUnload.UnloadingNote" class="text-danger"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="form-group">
|
|
<label asp-for="TransportLoadingOrderLoadUnload.CargoDescription" class="form-label"></label>
|
|
<input type="hidden" id="value-cargodescription" asp-for="@Model.TransportLoadingOrderLoadUnload.CargoDescription" />
|
|
<div id="editor-cargodescription" style="height: 277px">
|
|
@Html.Raw(Model.TransportLoadingOrderLoadUnload?.CargoDescription)
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-12 text-right">
|
|
<button type="submit" id="addPosition" class="btn btn-primary ladda-button" data-style="zoom-out">Dodaj naklad/razklad</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="card-footer py-3" id="loadPositions">
|
|
<div id="positionsTable"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="divModalCodetablePartnerAddEditPlaceholder"></div>
|
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
|
|
|
|
@Html.AntiForgeryToken()
|
|
|
|
@section Scripts {
|
|
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
|
|
|
|
<!-- Editor -->
|
|
<script src="~/vendor/libs/quill/quill.js" asp-append-version="true"></script>
|
|
<script src="~/vendor/libs/select2/select2.js" asp-append-version="true"></script>
|
|
<script src="~/js/codeTablePartnerHelper.js?v=1" asp-append-version="true"></script>
|
|
|
|
<script>
|
|
var Block = Quill.import('blots/block');
|
|
Block.tagName = 'DIV';
|
|
Quill.register(Block, true);
|
|
|
|
var laddaAddPosition = Ladda.create(document.querySelector('#addPosition'));
|
|
var laddaSaveOrder = Ladda.create(document.querySelector('#saveOrder'));
|
|
|
|
let editorPreText;
|
|
let editorPostText;
|
|
let editorCargoDescription;
|
|
|
|
function handleEditors() {
|
|
document.getElementById('value-pretext').value = editorPreText.root.innerHTML;
|
|
document.getElementById('value-posttext').value = editorPostText.root.innerHTML;
|
|
document.getElementById('value-cargodescription').value = editorCargoDescription.root.innerHTML;
|
|
}
|
|
|
|
function loadPosition() {
|
|
let idOrder = '@Request.Query["id"]';
|
|
if (idOrder === '') {
|
|
return;
|
|
}
|
|
|
|
loadStartElement('#loadPositions');
|
|
$('#positionsTable').load('/TransportLoadingOrder/AddEdit?id=' + idOrder + '&handler=indexloadunload', function() {
|
|
$('[data-toggle="tooltip"]').tooltip({ container: 'table' });
|
|
loadEndElement('#loadPositions');
|
|
});
|
|
}
|
|
|
|
$(document).ready(function () {
|
|
$('.select2-transporter').select2({
|
|
placeholder: 'Izberite prevoznika',
|
|
language: {
|
|
noResults: function () {
|
|
return `<button style="width: 100%" type="button"
|
|
class="btn btn-primary"
|
|
onClick='addNewCodeTablePartnerTransporter()'>Dodaj novega</button>
|
|
</li>`;
|
|
}
|
|
},
|
|
escapeMarkup: function (markup) {
|
|
return markup;
|
|
}
|
|
});
|
|
|
|
$('.select2-loading').select2({
|
|
allowClear: true,
|
|
placeholder: 'Izberite naklad ali vnesite naslov naklada',
|
|
language: {
|
|
noResults: function () {
|
|
return `<button style="width: 100%" type="button"
|
|
class="btn btn-primary"
|
|
onClick='addNewCodeTablePartnerLoading()'>Dodaj novega</button>
|
|
</li>`;
|
|
}
|
|
},
|
|
escapeMarkup: function (markup) {
|
|
return markup;
|
|
}
|
|
}).on('change', function () {
|
|
if ($(".select2-loading").val() !== '') {
|
|
loadLoadingUnloadingText('#taLoadingText', parseInt($(".select2-loading").val()));
|
|
} else {
|
|
$('#taLoadingText').text('');
|
|
}
|
|
});;
|
|
|
|
$('.select2-unloading').select2({
|
|
allowClear: true,
|
|
placeholder: 'Izberite razklad ali vnesite naslov razklada',
|
|
language: {
|
|
noResults: function () {
|
|
return `<button style="width: 100%" type="button"
|
|
class="btn btn-primary"
|
|
onClick='addNewCodeTablePartnerUnloading()'>Dodaj novega</button>
|
|
</li>`;
|
|
}
|
|
},
|
|
escapeMarkup: function (markup) {
|
|
return markup;
|
|
}
|
|
}).on('change', function() {
|
|
if ($(".select2-unloading").val() !== '') {
|
|
loadLoadingUnloadingText('#taUnloadingText', parseInt($(".select2-unloading").val()));
|
|
} else {
|
|
$('#taUnloadingText').text('');
|
|
}
|
|
});
|
|
|
|
$('.select2-vehicle').select2({
|
|
allowClear: true,
|
|
placeholder: "Izberi vozilo"
|
|
}).on('change', function() {
|
|
if ($(".select2-vehicle").val() !== '') {
|
|
$('.vehicle-text').val('');
|
|
}
|
|
});
|
|
|
|
if ($('.select2-vehicle').val() === '') {
|
|
$('.select2-vehicle').val(null);
|
|
}
|
|
|
|
//Ker tako gre za dodajanje in je lahko prazno
|
|
$('.select2-loading').val(null).trigger('change');
|
|
$('.select2-unloading').val(null).trigger('change');
|
|
|
|
editorPreText = new Quill('#editor-pretext', { modules: { toolbar: [['bold', 'italic', 'underline'], ['color'], [{ 'list': 'ordered' }, { 'list': 'bullet' }], ['align'], ['clean']] }, theme: 'snow' });
|
|
editorPostText = new Quill('#editor-posttext', { modules: { toolbar: [['bold', 'italic', 'underline'], ['color'], [{ 'list': 'ordered' }, { 'list': 'bullet' }], ['align'], ['clean']] }, theme: 'snow' });
|
|
editorCargoDescription = new Quill('#editor-cargodescription', { modules: { toolbar: [['bold', 'italic', 'underline'], ['color'], [{ 'list': 'ordered' }, { 'list': 'bullet' }], ['align'], ['clean']] }, theme: 'snow' });
|
|
loadPosition();
|
|
});
|
|
|
|
function beforeOrderPost() {
|
|
if ($('.select2-vehicle').val() === '') {
|
|
$('.select2-vehicle').val(null);
|
|
}
|
|
handleEditors();
|
|
}
|
|
|
|
orderPostCompleted = function (xhr) {
|
|
laddaSaveOrder.stop();
|
|
if (xhr.responseJSON.successful) {
|
|
location.replace('AddEdit?Id=' + xhr.responseJSON.id);
|
|
} else {
|
|
alert(xhr.responseJSON.error);
|
|
}
|
|
|
|
};
|
|
|
|
function addNewCodeTablePartnerTransporter(){
|
|
let title = $(".select2-transporter").data("select2").dropdown.$search.val();
|
|
codeTablePartnerAddEdit('#divModalCodetablePartnerAddEditPlaceholder', false, null, (idCodeTablePartner) => {
|
|
refreshCodeTablePartners('#selTransporter', idCodeTablePartner, true);
|
|
}, null, title, null, null, true);
|
|
}
|
|
|
|
function addNewCodeTablePartnerLoading() {
|
|
let title = $(".select2-loading").data("select2").dropdown.$search.val();
|
|
codeTablePartnerAddEdit('#divModalCodetablePartnerAddEditPlaceholder', false, null, (idCodeTablePartner) => {
|
|
refreshCodeTablePartners('#selLoading', idCodeTablePartner, null, true);
|
|
}, null, title, null, null, null, true);
|
|
}
|
|
|
|
function addNewCodeTablePartnerUnloading() {
|
|
let title = $(".select2-unloading").data("select2").dropdown.$search.val();
|
|
codeTablePartnerAddEdit('#divModalCodetablePartnerAddEditPlaceholder', false, null, (idCodeTablePartner) => {
|
|
refreshCodeTablePartners('#selUnloading', idCodeTablePartner, null, true);
|
|
}, null, title, null, null, null, true);
|
|
}
|
|
|
|
function refreshCodeTablePartners(selector, idToSelect, transporters, loadingUnloadings) {
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "/CodeTablePartners/Index/?handler=CodeTablePartnersSelect",
|
|
data: {
|
|
transporters,
|
|
loadingUnloadings
|
|
},
|
|
success: function (data) {
|
|
$(selector).empty();
|
|
$(data.partners).each(function () {
|
|
$(selector).append($("<option></option>").val(this.value).html(this.text));
|
|
});
|
|
$(selector).val(idToSelect).trigger('change');
|
|
},
|
|
error: function (xhr, ajaxOptions, thrownError) {
|
|
console.log(xhr);
|
|
alert(xhr.responseText);
|
|
$.unblockUI();
|
|
}
|
|
});
|
|
}
|
|
|
|
function loadLoadingUnloadingText(selector, idPartner) {
|
|
if (isNaN(idPartner) || idPartner <= 0) {
|
|
return;
|
|
}
|
|
$.ajax({
|
|
type: "GET",
|
|
url: "AddEdit/?handler=LoadingUnloadingText",
|
|
data: {
|
|
idPartner
|
|
},
|
|
success: function (data) {
|
|
console.log(data);
|
|
if (data.successful) {
|
|
$(selector).text(data.text);
|
|
} else {
|
|
Swal.fire('Napaka pri pridobivanju podatkov',
|
|
data.error,
|
|
'error');
|
|
}
|
|
},
|
|
error: function (xhr, ajaxOptions, thrownError) {
|
|
console.log(xhr);
|
|
alert(xhr.responseText);
|
|
$.unblockUI();
|
|
}
|
|
});
|
|
}
|
|
</script>
|
|
} |