This commit is contained in:
David Štaleker
2023-05-23 14:57:29 +02:00
parent a45fe73754
commit 257f8730b2
10 changed files with 2556 additions and 119 deletions

View File

@@ -1,5 +1,5 @@
@page "{handler?}"
@model EveryThing.Pages.TransportLoadingOrder.EditModel
@model EveryThing.Pages.TransportLoadingOrder.AddEditModel
@{
ViewData["Title"] = "Urejanje naloga";
@@ -9,10 +9,19 @@
<!-- 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> Urejanje
<span class="text-muted font-weight-light">Nalog /</span>
@if (Model.TransportLoadingOrder.IdTransportLoadingOrder > 0)
{
<span>Urejanje</span>
}
else
{
<span>Vnos</span>
}
</span>
</h4>
@@ -21,97 +30,105 @@
<li class="nav-item">
<a class="nav-link active" data-toggle="tab" href="#item-basic">Osnovni podatki</a>
</li>
<li class="nav-item">
<a class="nav-link" data-toggle="tab" href="#item-positions">Pozicije</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" onsubmit="handleEditors()">
<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" asp-items="ViewBag.IdPartnerFk"></select>
</div>
</div>
<div class="col-6 text-right">
<label class="form-label">Nakladalni nalog</label>
<br />
<h4>
@Html.DisplayFor(modelItem => Model.TransportLoadingOrder.OrderYear) - @Html.DisplayFor(modelItem => Model.TransportLoadingOrder.OrderNumber)
</h4>
<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="handleEditors()">
<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" asp-items="ViewBag.IdPartnerFk"></select>
</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-3">
<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-3">
<div class="form-group">
<label asp-for="TransportLoadingOrder.VehicleText" class="form-label"></label>
<input autocomplete="off" asp-for="TransportLoadingOrder.VehicleText" class="form-control" />
<span asp-validation-for="TransportLoadingOrder.VehicleText" class="text-danger"></span>
</div>
</div>
<div class="col-3">
<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 class="col-6 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="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 class="col-3">
<div class="form-group">
<label asp-for="TransportLoadingOrder.OrderDate" class="form-label"></label>
@*@Html.TextBoxFor(m => m.TransportLoadingOrder.OrderDate, "{0:yyyy-MM-dd}", new { @class = "form-control", type = "date" })*@
<input autocomplete="off" asp-for="TransportLoadingOrder.OrderDate" class="form-control" />
<span asp-validation-for="TransportLoadingOrder.OrderDate" class="text-danger"></span>
</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>
<div class="col-3">
<div class="form-group">
<label asp-for="TransportLoadingOrder.VehicleText" class="form-label"></label>
<input autocomplete="off" asp-for="TransportLoadingOrder.VehicleText" class="form-control"/>
<span asp-validation-for="TransportLoadingOrder.VehicleText" class="text-danger"></span>
</div>
</div>
<div class="col-3">
<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>
<span asp-validation-for="TransportLoadingOrder.PostText" class="text-danger"></span>
<input autocomplete="off" asp-for="TransportLoadingOrder.Total" class="form-control">
</div>
</div>
</div>
</div>
<div class="card-footer py-3 text-right">
<button type="submit" class="btn btn-primary">Shrani nalog</button>
<a asp-page="Index" class="btn btn-default">Prekliči</a>
<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>
</form>
</div>
</div>
<div class="card-footer py-3 text-right">
<button type="submit" class="btn btn-primary">Shrani nalog</button>
<a asp-page="Index" class="btn btn-default">Prekliči</a>
</div>
</form>
</div>
<div class="tab-pane fade" id="item-positions">
<div class="card-body">
@@ -123,7 +140,7 @@
<div class="col-12">
<div class="form-group">
<label class="form-label">Naklad</label>
<select asp-for="TransportLoadingOrderLoadUnload.IdLoadingFk" class="form-control" asp-items="ViewBag.IdLoadingFk">
<select asp-for="TransportLoadingOrderLoadUnload.IdLoadingFk" class="form-control select2" asp-items="ViewBag.IdLoadingFk">
<option value="">Izberite naklad ali vnesite naslov naklada</option>
</select>
</div>
@@ -176,7 +193,7 @@
<div class="col-12">
<div class="form-group">
<label class="form-label">Razklad</label>
<select asp-for="TransportLoadingOrderLoadUnload.IdUnloadingFk" class="form-control" asp-items="ViewBag.IdUnloadingFk">
<select asp-for="TransportLoadingOrderLoadUnload.IdUnloadingFk" class="form-control select2" asp-items="ViewBag.IdUnloadingFk">
<option value="">Izberite razklad ali vnesite naslov razklada</option>
</select>
</div>
@@ -231,7 +248,7 @@
<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)
@Html.Raw(Model.TransportLoadingOrderLoadUnload?.CargoDescription)
</div>
</div>
</div>
@@ -259,6 +276,7 @@
<!-- 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>
var Block = Quill.import('blots/block');
@@ -266,10 +284,11 @@
Quill.register(Block, true);
var laddaAddPosition = Ladda.create(document.querySelector('#addPosition'));
//var laddaSaveOrder = Ladda.create(document.querySelector('#saveOrder'));
let editorPreText = new Quill('#editor-pretext', { modules: { toolbar: [['bold', 'italic', 'underline'], ['color'],[{ 'list': 'ordered' }, { 'list': 'bullet' }],['align'],['clean']] }, theme: 'snow' });
let editorPostText = new Quill('#editor-posttext', { modules: { toolbar: [['bold', 'italic', 'underline'], ['color'],[{ 'list': 'ordered' }, { 'list': 'bullet' }],['align'],['clean']] }, theme: 'snow' });
let editorCargoDescription = new Quill('#editor-cargodescription', { modules: { toolbar: [['bold', 'italic', 'underline'], ['color'], [{ 'list': 'ordered' }, { 'list': 'bullet' }], ['align'], ['clean']] }, theme: 'snow' });
let editorPreText;
let editorPostText;
let editorCargoDescription;
function handleEditors() {
document.getElementById('value-pretext').value = editorPreText.root.innerHTML;
@@ -279,14 +298,24 @@
function loadPosition() {
loadStartElement('#loadPositions');
$('#positionsTable').load('/TransportLoadingOrder/Edit?id=' + @Request.Query["id"] + '&handler=indexloadunload', function() {
$('#positionsTable').load('/TransportLoadingOrder/AddEdit?id=' + @Request.Query["id"] + '&handler=indexloadunload', function() {
$('[data-toggle="tooltip"]').tooltip({ container: 'table' });
loadEndElement('#loadPositions');
});
}
$(document).ready(function () {
$('.select2').select2();
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();
});
orderPostCompleted = function (xhr) {
//location.replace('AddEdit?Id=' + xhr.responseJSON.id);
//laddaSaveOrder.stop();
alert(1);
};
</script>
}

View File

@@ -12,16 +12,17 @@ using Microsoft.EntityFrameworkCore;
using EveryThing.Data;
using EveryThing.Models;
using EveryThing.Models.Transport;
using DocumentFormat.OpenXml.Spreadsheet;
namespace EveryThing.Pages.TransportLoadingOrder
{
[Authorize(Roles = "Administrator,TransportThingUser")]
public class EditModel : PageModel
public class AddEditModel : PageModel
{
private readonly ApplicationDbContext _context;
private readonly UserManager<IdentityApplicationUser> _userManager;
public EditModel(ApplicationDbContext context, UserManager<IdentityApplicationUser> userManager)
public AddEditModel(ApplicationDbContext context, UserManager<IdentityApplicationUser> userManager)
{
_context = context;
_userManager = userManager;
@@ -39,9 +40,29 @@ 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["IdVehicleFk"] = new SelectList(_context.Vehicles.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdVehicle", "RegistrationNumber");
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");
if (id == null)
{
return NotFound();
TransportLoadingOrder = new Models.Transport.TransportLoadingOrder
{
OrderCity = _context.CodeTableCompanies.Single(x => x.IdCompany == user.IdCompanyFk).City,
OrderDate = DateTime.Now,
PostText = "<div>Prejemnik se obvezuje izvršiti prevoz po navodilih iz naročila. Prevoz se mora izvršiti v skladu z določili CRM konvencije. " +
"Prevoznik zagotavlja zavarovano prevozniško odgovornost. V primeru, da naročenega prevoza ne opravite po navodilih, Vas bomo bremenili za " +
"vse nastale stroške. Vse morebitne spore v zvezi s tem naročilom rešuje Okrožno sodišče v Slovenj Gradcu.</div><br/>" +
"Plačilo: <b>60 dni</b> po prejemu računana e-mail: <b>eracuni@trans-fer.si</b><br/>" +
"Original račun pošljite po pošti, poleg računa priložite 2 (dva) izvoda ožigosanega CMR " +
"z datumom in podpisom prejemnika.<br/>" +
"Direkten kontakt s stranko brez našega soglasja je PREPOVEDAN!<br/>" +
"<div>Račun</div>"
};
TransportLoadingOrderLoadUnload = new TransportLoadingOrderLoadUnload();
return Page();
}
TransportLoadingOrder = await _context.TransportLoadingOrders
@@ -55,45 +76,64 @@ namespace EveryThing.Pages.TransportLoadingOrder
return NotFound();
}
ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
ViewData["IdVehicleFk"] = new SelectList(_context.Vehicles.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdVehicle", "RegistrationNumber");
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");
return Page();
}
public async Task<IActionResult> OnPostOrderAsync()
{
System.Diagnostics.Debug.WriteLine("OnPostOrderAsync");
var user = _userManager.GetUserAsync(User).Result;
if (!ModelState.IsValid)
{
ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
ViewData["IdVehicleFk"] = new SelectList(_context.Vehicles.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdVehicle", "RegistrationNumber");
return Page();
}
TransportLoadingOrder.PostText = TransportLoadingOrder.PostText.Replace("<div><br></div>", "");
TransportLoadingOrder.PreText = TransportLoadingOrder.PreText.Replace("<div><br></div>", "");
_context.Attach(TransportLoadingOrder).State = EntityState.Modified;
if (TransportLoadingOrder.IdTransportLoadingOrder > 0)
{
_context.Attach(TransportLoadingOrder).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!TransportLoadingOrderExists(TransportLoadingOrder.IdTransportLoadingOrder))
try
{
return NotFound();
await _context.SaveChangesAsync();
}
else
catch (DbUpdateConcurrencyException)
{
throw;
if (!TransportLoadingOrderExists(TransportLoadingOrder.IdTransportLoadingOrder))
{
return NotFound();
}
else
{
throw;
}
}
TransportLoadingOrderLoadUnload = new TransportLoadingOrderLoadUnload();
return Page();
}
TransportLoadingOrderLoadUnload = new TransportLoadingOrderLoadUnload();
// OrderNumber and OrderYear
return Page();
var orderNumber = _context.TransportLoadingOrders.Count(x => x.IdCompanyFk == user.IdCompanyFk && x.OrderYear == DateTime.Now.Year) + 1;
TransportLoadingOrder.IdCompanyFk = user.IdCompanyFk;
TransportLoadingOrder.OrderYear = DateTime.Now.Year;
TransportLoadingOrder.OrderNumber = orderNumber;
_context.TransportLoadingOrders.Add(TransportLoadingOrder);
await _context.SaveChangesAsync();
return new JsonResult(new { id = TransportLoadingOrder .IdTransportLoadingOrder});
}
public async Task<IActionResult> OnPostPositionAddAsync()

View File

@@ -61,7 +61,7 @@
</td>
<td class="text-right">
<a class="btn btn-xs icon-btn btn-outline-primary borderless" asp-page="Print" asp-route-id="@item.IdTransportLoadingOrder" data-toggle="tooltip" data-placement="top" title="Tiskanje" data-state="primary"><i class="ion ion-md-print"></i></a>
<a class="btn btn-xs icon-btn btn-outline-secondary borderless" asp-page="Edit" asp-route-id="@item.IdTransportLoadingOrder" data-toggle="tooltip" data-placement="top" title="Urejanje" data-state="secondary"><i class="fas fa-pencil-alt"></i></a>
<a class="btn btn-xs icon-btn btn-outline-secondary borderless" asp-page="AddEdit" asp-route-id="@item.IdTransportLoadingOrder" data-toggle="tooltip" data-placement="top" title="Urejanje" data-state="secondary"><i class="fas fa-pencil-alt"></i></a>
</td>
</tr>
}
@@ -69,7 +69,7 @@
</table>
<div class="card-footer py-3 text-right">
<a asp-page="Create" class="btn btn-primary">Vnos naloga</a>
<a asp-page="AddEdit" class="btn btn-primary">Vnos naloga</a>
</div>
</div>

View File

@@ -23,7 +23,7 @@
<td>
@if (item.IdLoadingFk == null)
{
@Html.Raw(item.LoadingText.Replace(Environment.NewLine, "<br/>"))
@Html.Raw(item.LoadingText?.Replace(Environment.NewLine, "<br/>"))
}
else
{
@@ -67,7 +67,7 @@
<td>
@if (item.IdUnloadingFk == null)
{
@Html.Raw(item.UnloadingText.Replace(Environment.NewLine, "<br/>"))
@Html.Raw(item.UnloadingText?.Replace(Environment.NewLine, "<br/>"))
}
else
{