modal partnerji in dodajanje pri transport plan

This commit is contained in:
David Štaleker
2023-07-23 21:20:29 +02:00
parent 41639b3354
commit facfb3a726
11 changed files with 2710 additions and 112 deletions

View File

@@ -40,106 +40,108 @@
</ul>
<div class="tab-content">
<div class="tab-pane fade show active" id="item-basic">
<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>
<select asp-for="TransportLoadingOrder.IdPartnerFk" class="form-control select2" asp-items="ViewBag.IdPartnerFk"></select>
</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="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.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>
<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>
<input autocomplete="off" asp-for="TransportLoadingOrder.Total" class="form-control">
</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="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 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>
</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>
</form>
</div>
<div class="tab-pane fade" id="item-positions">
<div class="card-body">
@@ -151,8 +153,7 @@
<div class="col-12">
<div class="form-group">
<label class="form-label">Naklad</label>
<select asp-for="TransportLoadingOrderLoadUnload.IdLoadingFk" class="form-control select2" asp-items="ViewBag.IdLoadingFk">
<option value="">Izberite naklad ali vnesite naslov naklada</option>
<select id="selLoading" asp-for="TransportLoadingOrderLoadUnload.IdLoadingFk" class="form-control select2-loading" asp-items="ViewBag.IdLoadingFk">
</select>
</div>
</div>
@@ -161,7 +162,7 @@
<div class="col-12">
<div class="form-group">
<label asp-for="TransportLoadingOrderLoadUnload.LoadingText" class="form-label"></label>
<textarea rows="3" asp-for="TransportLoadingOrderLoadUnload.LoadingText" class="form-control"></textarea>
<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>
@@ -204,8 +205,7 @@
<div class="col-12">
<div class="form-group">
<label class="form-label">Razklad</label>
<select asp-for="TransportLoadingOrderLoadUnload.IdUnloadingFk" class="form-control select2" asp-items="ViewBag.IdUnloadingFk">
<option value="">Izberite razklad ali vnesite naslov razklada</option>
<select id="selUnloading" asp-for="TransportLoadingOrderLoadUnload.IdUnloadingFk" class="form-control select2-unloading" asp-items="ViewBag.IdUnloadingFk">
</select>
</div>
</div>
@@ -214,7 +214,7 @@
<div class="col-12">
<div class="form-group">
<label asp-for="TransportLoadingOrderLoadUnload.UnloadingText" class="form-label"></label>
<textarea rows="3" asp-for="TransportLoadingOrderLoadUnload.UnloadingText" class="form-control"></textarea>
<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>
@@ -279,15 +279,18 @@
</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');
@@ -321,7 +324,65 @@
}
$(document).ready(function () {
$('.select2').select2();
$('.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"
@@ -334,6 +395,11 @@
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' });
@@ -356,5 +422,77 @@
}
};
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>
}

View File

@@ -44,10 +44,14 @@ namespace EveryThing.Pages.TransportLoadingOrder
{
var user = _userManager.GetUserAsync(User).Result;
ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners
.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active && x.Transporter), "IdPartner", "Title");
SetVehiclesBag(user.IdCompanyFk);
ViewData["IdLoadingFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
ViewData["IdUnloadingFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
ViewData["IdLoadingFk"] = new SelectList(_context.CodeTablePartners
.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active && x.LoadingOrderLoadUnload), "IdPartner", "Title");
ViewData["IdUnloadingFk"] = new SelectList(_context.CodeTablePartners
.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active && x.LoadingOrderLoadUnload), "IdPartner", "Title");
ViewData["States"] = new SelectList(Enum.GetValues(typeof(Models.Transport.TransportLoadingOrder.TransportLoadingOrderState))
.Cast<Models.Transport.TransportLoadingOrder.TransportLoadingOrderState>()
.Select(x => new { Name = Classes.Global.GetAttribute<DisplayAttribute>(x).Name, Value = x.ToString() })
@@ -218,5 +222,19 @@ namespace EveryThing.Pages.TransportLoadingOrder
Vehicles.AddRange(_context.Vehicles.Where(x => x.IdCompanyFk == idCompany).Select(x => new SelectListItem(x.DisplayName, x.IdVehicle.ToString())));
//Vehicles = new SelectList(tmpList, "Text", "Value");
}
public IActionResult OnGetLoadingUnloadingText(int idPartner)
{
var user = _userManager.GetUserAsync(User).Result;
var partner = _context.CodeTablePartners
.Include(x => x.Country)
.FirstOrDefault(x => x.IdCompanyFk == user.IdCompanyFk
&& x.IdPartner == idPartner);
return partner == null
? new JsonResult(new { successful = false, error = $"Partner with ID: {idPartner} not exists!" })
: new JsonResult(new { successful = true, text = $"{partner.Street} {partner.HouseNumber}\n{partner.PostNumber} {partner.Post}\n{partner.Country.Title}" });
}
}
}