partnerji na modal
This commit is contained in:
@@ -81,6 +81,8 @@ namespace EveryThing.Models.Vehicle
|
||||
[Display(Name = "Registrska številka")]
|
||||
public string RegistrationNumber { get; set; }
|
||||
|
||||
[NotMapped] public string DisplayName => $"{Title} ({RegistrationNumber})";
|
||||
|
||||
//TODO: Manjkajo polja
|
||||
|
||||
//[Required]
|
||||
|
||||
119
EveryThing/Pages/CodeTablePartners/AddEditPartnerModal.cshtml
Normal file
119
EveryThing/Pages/CodeTablePartners/AddEditPartnerModal.cshtml
Normal file
@@ -0,0 +1,119 @@
|
||||
@model EveryThing.Pages.CodeTablePartners.IndexModel.AddEditCodeTablePartner
|
||||
|
||||
<div class="modal" tabindex="-1" role="dialog" id="divModalAddEditCodeTablePartner">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="modalAddEditCodeTablePartnerTitle">Dodajanje novega artikla</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<input id="inpModalAddEditCodeTablePartnerIdCodeTablePartner" type="hidden" asp-for="@Model.IdCodeTablePartner" />
|
||||
<input id="inpModalAddEditCodeTablePartnerEdit" type="hidden" asp-for="@Model.Edit" />
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.Title" class="control-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerTitle" asp-for="Partner.Title" class="form-control" />
|
||||
<span asp-validation-for="Partner.Title" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.IdCountryFk" class="form-label"></label>
|
||||
<select id="selModalAddEditCodeTablePartnerCountry" asp-for="Partner.IdCountryFk" class="form-control select2-partner-add-edit" asp-items="@Model.Countries"></select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.City" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerCity" asp-for="Partner.City" class="form-control" />
|
||||
<span asp-validation-for="Partner.City" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.Street" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerStreet" asp-for="Partner.Street" class="form-control" />
|
||||
<span asp-validation-for="Partner.Street" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.HouseNumber" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerHouseNumber" asp-for="Partner.HouseNumber" class="form-control" />
|
||||
<span asp-validation-for="Partner.HouseNumber" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.PostNumber" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerPostNumber" asp-for="Partner.PostNumber" class="form-control" />
|
||||
<span asp-validation-for="Partner.PostNumber" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.Post" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerPost" asp-for="Partner.Post" class="form-control" />
|
||||
<span asp-validation-for="Partner.Post" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.TaxNumber" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerTaxNumber" asp-for="Partner.TaxNumber" class="form-control" />
|
||||
<span asp-validation-for="Partner.TaxNumber" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.RegistrationNumber" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerRegistrationNumber" asp-for="Partner.RegistrationNumber" class="form-control" />
|
||||
<span asp-validation-for="Partner.RegistrationNumber" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.Email" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerEmail" asp-for="Partner.Email" class="form-control" />
|
||||
<span asp-validation-for="Partner.Email" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group form-check">
|
||||
<label class="form-check-label">
|
||||
<input id="inpModalAddEditCodeTablePartnerBuyer" class="form-check-input" asp-for="Partner.Buyer" /> @Html.DisplayNameFor(model => model.Partner.Buyer)
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group form-check">
|
||||
<label class="form-check-label">
|
||||
<input id="inpModalAddEditCodeTablePartnerSupplier" class="form-check-input" asp-for="Partner.Supplier" /> @Html.DisplayNameFor(model => model.Partner.Supplier)
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group form-check">
|
||||
<label class="form-check-label">
|
||||
<input id="inpModalAddEditCodeTablePartnerActive" class="form-check-input" asp-for="Partner.Active" /> @Html.DisplayNameFor(model => model.Partner.Active)
|
||||
</label>
|
||||
</div>
|
||||
@* @if (Model.Files != null && Model.Files.Count > 0)
|
||||
{
|
||||
<div class="form-group">
|
||||
@foreach (var file in Model.Files)
|
||||
{
|
||||
<div data-idfile="@file.IdFile">
|
||||
<a download href="@Url.Page("/Files/Upload", "DownloadFile", new { idFile = file.IdFile, idReferenceFk = file.IdReferenceFk, fileTypeInt = (int)file.FileType})" class="btn btn-xs icon-btn btn-outline-secondary borderless" data-toggle="tooltip" data-placement="top" title="Prenos" data-state="secondary"><i class="fas fa-download"></i></a>
|
||||
@Html.DisplayFor(modelPartner => file.Title)
|
||||
<a class="btn btn-xs icon-btn btn-outline-danger borderless" data-state="danger" href='javascript:;' onclick="codeTablePartnerDeleteFile(this)"><i class="fas fa-times"></i></a>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}*@
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
@*<a id="btnModalAddEditCodeTablePartnerAddFile" asp-page="/Files/Upload" asp-route-idReferenceFk="@Model.IdCodeTablePartner" asp-route-fileType="@Models.FileType.CodeTablePartner" class="btn btn-primary pull-right">Priloži datoteko</a>*@
|
||||
<button id="btnModalAddEditCodeTablePartnerConfirm" type="button" class="btn btn-primary">Shrani</button>
|
||||
<button id="btnModalAddEditCodeTablePartnerCancel" type="button" class="btn btn-secondary">Prekliči</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -5,6 +5,7 @@
|
||||
ViewData["Title"] = "Partnerji";
|
||||
Layout = "~/Pages/Layouts/_Layout.cshtml";
|
||||
}
|
||||
<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>
|
||||
@@ -69,7 +70,7 @@
|
||||
<tbody>
|
||||
@foreach (var item in Model.Partner)
|
||||
{
|
||||
<tr>
|
||||
<tr data-idCodeTablePartner="@item.IdPartner">
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Title)
|
||||
@if (!item.Active)
|
||||
@@ -91,7 +92,8 @@
|
||||
@Html.DisplayFor(modelItem => item.Email)
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<a class="btn btn-xs icon-btn btn-outline-secondary borderless" asp-page="Edit" asp-route-id="@item.IdPartner" 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" href="javascript:;" onclick="editCodeTablePartner(this);" 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-danger borderless" data-state="danger" href='javascript:;' onclick="deleteCodeTablePartner(this)" data-toggle="tooltip" data-placement="top" title="Izbriši"><i class="fas fa-times"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
@@ -99,12 +101,40 @@
|
||||
</table>
|
||||
|
||||
<div class="card-footer py-3 text-right">
|
||||
<a asp-page="Create" class="btn btn-primary">Vnos partnerja</a>
|
||||
<button id="btnSubmit" type="button" class="btn btn-primary" onclick="addNewCodeTablePartner();">Vnos partnerja</button>
|
||||
</div>
|
||||
<div id="divModalCodetablePartnerAddEditPlaceholder"></div>
|
||||
</div>
|
||||
@Html.AntiForgeryToken()
|
||||
|
||||
@section Scripts {
|
||||
<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>
|
||||
$('[data-toggle="tooltip"]').tooltip({container: 'table'});
|
||||
|
||||
function addNewCodeTablePartner() {
|
||||
codeTablePartnerAddEdit('#divModalCodetablePartnerAddEditPlaceholder', false, null, (idCodeTableItem) => {
|
||||
document.getElementById('btnSubmit').click();
|
||||
});
|
||||
}
|
||||
|
||||
function editCodeTablePartner(element) {
|
||||
let idCodeTablePartner= parseInt($(element).parent().parent().attr('data-idCodeTablePartner'));
|
||||
|
||||
codeTablePartnerAddEdit('#divModalCodetablePartnerAddEditPlaceholder', true, idCodeTablePartner, (idCodeTablePartner) => {
|
||||
document.getElementById('btnSubmit').click();
|
||||
});
|
||||
}
|
||||
|
||||
function deleteCodeTablePartner(element) {
|
||||
let row = $(element).parent().parent();
|
||||
let idCodeTablePartner= parseInt(row.attr('data-idCodeTablePartner'));
|
||||
|
||||
codeTablePartnerDelete(idCodeTablePartner, (idCodeTablePartner) => {
|
||||
row.remove();
|
||||
});
|
||||
}
|
||||
</script>
|
||||
}
|
||||
@@ -11,12 +11,24 @@ using EveryThing.Data;
|
||||
using EveryThing.Models;
|
||||
using EveryThing.Models.CodeTable;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using System.Globalization;
|
||||
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||
|
||||
namespace EveryThing.Pages.CodeTablePartners
|
||||
{
|
||||
[Authorize(Roles = "Administrator,InvoicingUser,ProjecThingUser,TransportThingUser")]
|
||||
public class IndexModel : PageModel
|
||||
{
|
||||
|
||||
public class AddEditCodeTablePartner
|
||||
{
|
||||
public CodeTablePartner Partner { get; set; }
|
||||
public bool Edit { get; set; }
|
||||
public int IdCodeTablePartner { get; set; }
|
||||
public SelectList Countries { get; set; }
|
||||
//public IList<File> Files { get; set; }
|
||||
}
|
||||
|
||||
private readonly EveryThing.Data.ApplicationDbContext _context;
|
||||
private readonly UserManager<IdentityApplicationUser> _userManager;
|
||||
|
||||
@@ -49,5 +61,165 @@ namespace EveryThing.Pages.CodeTablePartners
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public IActionResult OnGetCodeTablePartnerModal(bool edit, int idCodeTablePartner)
|
||||
{
|
||||
//TODO input izbrane
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
|
||||
var countries = new SelectList(_context.CodeTableCountries, "IdCountry", "TranslationSlovenian");
|
||||
CodeTablePartner partner = null;
|
||||
|
||||
if (edit)
|
||||
{
|
||||
partner = _context.CodeTablePartners
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.FirstOrDefault(x => x.IdPartner == idCodeTablePartner);
|
||||
|
||||
//files = _context.Files
|
||||
// .Where(x => x.IdCompanyFk == user.IdCompanyFk
|
||||
// && x.IdReferenceFk == item.IdItem
|
||||
// && x.FileType == FileType.CodeTableItem)
|
||||
// .ToList();
|
||||
}
|
||||
|
||||
if (partner == null)
|
||||
{
|
||||
var sloCountry = _context.CodeTableCountries.FirstOrDefault(x => x.Code == "SI");
|
||||
partner = new CodeTablePartner();
|
||||
if (sloCountry != null)
|
||||
partner.IdCountryFk = sloCountry.IdCountry;
|
||||
partner.Active = true;
|
||||
//TODO kljukice
|
||||
//partner.CodeTableItemType = (CodeTableItemType)codeTableItemType;
|
||||
}
|
||||
|
||||
return Partial("AddEditPartnerModal", new AddEditCodeTablePartner
|
||||
{
|
||||
Partner = partner,
|
||||
Edit = edit,
|
||||
IdCodeTablePartner = idCodeTablePartner,
|
||||
Countries = countries
|
||||
//Files = files,
|
||||
});
|
||||
}
|
||||
|
||||
public IActionResult OnPostCodeTablePartner(bool edit, CodeTablePartner partnerData)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
var successful = true;
|
||||
var error = "";
|
||||
|
||||
if (edit)
|
||||
{
|
||||
var partner = _context.CodeTablePartners
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.FirstOrDefault(x => x.IdPartner == partnerData.IdPartner);
|
||||
if (partner != null)
|
||||
{
|
||||
partner.Title = partnerData.Title;
|
||||
partner.IdCountryFk = partnerData.IdCountryFk;
|
||||
partner.City = partnerData.City;
|
||||
partner.PostNumber = partnerData.PostNumber;
|
||||
partner.Post = partnerData.Post;
|
||||
partner.Street = partnerData.Street;
|
||||
partner.TaxNumber = partnerData.TaxNumber;
|
||||
partner.RegistrationNumber = partnerData.RegistrationNumber;
|
||||
partner.Buyer = partnerData.Buyer;
|
||||
partner.Supplier = partnerData.Supplier;
|
||||
partner.Active = partnerData.Active;
|
||||
partner.Email = partnerData.Email;
|
||||
_context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
successful = false;
|
||||
error = $"Codetable partner with ID: {partnerData.IdPartner} not found";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var partner = new CodeTablePartner
|
||||
{
|
||||
Title = partnerData.Title,
|
||||
IdCountryFk = partnerData.IdCountryFk,
|
||||
City = partnerData.City,
|
||||
PostNumber = partnerData.PostNumber,
|
||||
Post = partnerData.Post,
|
||||
Street = partnerData.Street,
|
||||
Buyer = partnerData.Buyer,
|
||||
Supplier = partnerData.Supplier,
|
||||
Active = partnerData.Active,
|
||||
TaxNumber = partnerData.TaxNumber,
|
||||
RegistrationNumber = partnerData.RegistrationNumber,
|
||||
Email = partnerData.Email
|
||||
};
|
||||
_context.CodeTablePartners.Add(partner);
|
||||
_context.SaveChanges();
|
||||
|
||||
partnerData.IdPartner = partner.IdPartner;
|
||||
}
|
||||
|
||||
return new JsonResult(new { idCodeTablePartner = partnerData.IdPartner, error = error, successful = successful });
|
||||
}
|
||||
|
||||
public IActionResult OnDeleteCodeTableItem(int idCodeTablePartner)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
var successful = true;
|
||||
var error = "";
|
||||
|
||||
var partner = _context.CodeTablePartners
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.FirstOrDefault(x => x.IdPartner == idCodeTablePartner);
|
||||
if (partner != null)
|
||||
{
|
||||
_context.CodeTablePartners.Remove(partner);
|
||||
_context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
successful = false;
|
||||
error = $"Codetable partner with ID: {idCodeTablePartner} not found";
|
||||
}
|
||||
|
||||
return new JsonResult(new { idCodeTableItem = idCodeTablePartner, error = error, successful = successful });
|
||||
}
|
||||
|
||||
public IActionResult OnGetCodeTablePartner(int idCodeTablePartner)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
|
||||
var successful = true;
|
||||
var error = "";
|
||||
var partnerInUse = false;
|
||||
|
||||
var partner = _context.CodeTablePartners
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.Include(x => x.PartnerTransportLoadingOrder)
|
||||
.Include(x => x.PartnerTransportLoadingOrderLoad)
|
||||
.Include(x => x.PartnerTransportLoadingOrderUnload)
|
||||
.Include(x => x.Invoice)
|
||||
.FirstOrDefault(x => x.IdPartner == idCodeTablePartner);
|
||||
|
||||
if (partner == null)
|
||||
{
|
||||
successful = false;
|
||||
error = $"Codetable partner with ID: {idCodeTablePartner} not found";
|
||||
}
|
||||
else
|
||||
{
|
||||
partnerInUse = partner.PartnerTransportLoadingOrder.Count > 0
|
||||
|| partner.PartnerTransportLoadingOrderLoad.Count > 0
|
||||
|| partner.PartnerTransportLoadingOrderUnload.Count > 0
|
||||
|| partner.Invoice.Count > 0;
|
||||
partner.PartnerTransportLoadingOrder = null;
|
||||
partner.PartnerTransportLoadingOrderLoad = null;
|
||||
partner.PartnerTransportLoadingOrderUnload = null;
|
||||
partner.Invoice = null;
|
||||
}
|
||||
|
||||
return new JsonResult(new { partner, error, successful, partnerInUse });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
<div class="col-4">
|
||||
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
|
||||
<input type="hidden" asp-for="@ViewData["Edit"]" name="type"/>
|
||||
<input type="hidden" asp-for="Vehicle.IdVehicle"/>
|
||||
<input type="hidden" asp-for="Vehicle.IdCompanyFk"/>
|
||||
<div class="form-group">
|
||||
<label asp-for="Vehicle.Title" class="control-label"></label>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
@Html.DisplayFor(modelItem => item.Active)
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-xs icon-btn btn-outline-secondary borderless" asp-page="Edit" asp-route-id="true" asp-route-id="@item.IdVehicle" 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="CreateEdit" asp-route-edit="true" asp-route-id="@item.IdVehicle" 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-danger borderless" data-state="danger" href='javascript:;' onclick="deleteVehicle(this)"><i class="fas fa-times"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
<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="handleEditors()">
|
||||
<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"/>
|
||||
@@ -51,10 +51,15 @@
|
||||
<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>
|
||||
<select asp-for="TransportLoadingOrder.IdPartnerFk" class="form-control select2" asp-items="ViewBag.IdPartnerFk"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 text-right">
|
||||
<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>
|
||||
@@ -89,12 +94,8 @@
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group">
|
||||
<label asp-for="TransportLoadingOrder.IdVehicleFk" class="form-label"></label>
|
||||
<select asp-for="TransportLoadingOrder.IdVehicleFk" class="form-control select2" asp-items="ViewBag.IdVehicleFk"></select>
|
||||
<span asp-validation-for="TransportLoadingOrder.IdVehicleFk" class="text-danger"></span>
|
||||
|
||||
<label asp-for="TransportLoadingOrder.VehicleText" class="form-label"></label>
|
||||
<input autocomplete="off" asp-for="TransportLoadingOrder.VehicleText" class="form-control"/>
|
||||
<input autocomplete="off" asp-for="TransportLoadingOrder.VehicleText" class="form-control vehicle-text" />
|
||||
<span asp-validation-for="TransportLoadingOrder.VehicleText" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -321,15 +322,39 @@
|
||||
|
||||
$(document).ready(function () {
|
||||
$('.select2').select2();
|
||||
$('.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);
|
||||
}
|
||||
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();
|
||||
location.replace('AddEdit?Id=' + xhr.responseJSON.id);
|
||||
if (xhr.responseJSON.successful) {
|
||||
location.replace('AddEdit?Id=' + xhr.responseJSON.id);
|
||||
} else {
|
||||
alert(xhr.responseJSON.error);
|
||||
}
|
||||
|
||||
};
|
||||
</script>
|
||||
}
|
||||
@@ -15,6 +15,7 @@ using EveryThing.Models;
|
||||
using EveryThing.Models.Transport;
|
||||
using DocumentFormat.OpenXml.Spreadsheet;
|
||||
using EveryThing.Models.CodeTable;
|
||||
using NuGet.Packaging;
|
||||
|
||||
namespace EveryThing.Pages.TransportLoadingOrder
|
||||
{
|
||||
@@ -36,12 +37,15 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
||||
[BindProperty]
|
||||
public TransportLoadingOrderLoadUnload TransportLoadingOrderLoadUnload { get; set; }
|
||||
|
||||
[BindProperty]
|
||||
public List<SelectListItem> Vehicles { get; set; }
|
||||
|
||||
public async Task<IActionResult> OnGetAsync(int? id)
|
||||
{
|
||||
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");
|
||||
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["States"] = new SelectList(Enum.GetValues(typeof(Models.Transport.TransportLoadingOrder.TransportLoadingOrderState))
|
||||
@@ -85,15 +89,19 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
||||
|
||||
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();
|
||||
System.Diagnostics.Debug.WriteLine("OnPostOrderAsync:Invalid");
|
||||
//ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
|
||||
//SetVehiclesBag(user.IdCompanyFk);
|
||||
return new JsonResult(new { successful = false, error = string.Join(", ", ModelState.Values.Where(x => x.Errors.Any()).Select(x=> string.Join(", ", x.Errors.Select(y => y.ErrorMessage)))) });
|
||||
}
|
||||
|
||||
if (TransportLoadingOrder.IdVehicleFk != null)
|
||||
{
|
||||
TransportLoadingOrder.VehicleText = "";
|
||||
}
|
||||
|
||||
TransportLoadingOrder.PostText = TransportLoadingOrder.PostText.Replace("<div><br></div>", "");
|
||||
@@ -121,7 +129,7 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
||||
|
||||
TransportLoadingOrderLoadUnload = new TransportLoadingOrderLoadUnload();
|
||||
|
||||
return Page();
|
||||
return new JsonResult(new { successful = true, id = TransportLoadingOrder.IdTransportLoadingOrder });
|
||||
}
|
||||
|
||||
// OrderNumber and OrderYear
|
||||
@@ -136,7 +144,7 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
|
||||
return new JsonResult(new { id = TransportLoadingOrder .IdTransportLoadingOrder});
|
||||
return new JsonResult(new { successful = true, id = TransportLoadingOrder .IdTransportLoadingOrder});
|
||||
}
|
||||
|
||||
public async Task<IActionResult> OnPostPositionAddAsync()
|
||||
@@ -200,5 +208,15 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
||||
{
|
||||
return _context.TransportLoadingOrders.Any(e => e.IdTransportLoadingOrder == id);
|
||||
}
|
||||
|
||||
private void SetVehiclesBag(int idCompany)
|
||||
{
|
||||
Vehicles = new List<SelectListItem>
|
||||
{
|
||||
new ("Izberi vozilo", "")
|
||||
};
|
||||
Vehicles.AddRange(_context.Vehicles.Where(x => x.IdCompanyFk == idCompany).Select(x => new SelectListItem(x.DisplayName, x.IdVehicle.ToString())));
|
||||
//Vehicles = new SelectList(tmpList, "Text", "Value");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
214
EveryThing/wwwroot/js/codeTablePartnerHelper.js
Normal file
214
EveryThing/wwwroot/js/codeTablePartnerHelper.js
Normal file
@@ -0,0 +1,214 @@
|
||||
//ce jamra da ne najde post je treba dati @Html.AntiForgeryToken() v page
|
||||
function codeTablePartnerAddEdit(placeholderSelector, edit, idCodeTablePartner, onAddEdit, onCancel, codeTablePartnerType){
|
||||
if (isNaN(codeTablePartnerType)) {
|
||||
codeTablePartnerType = 0;
|
||||
}
|
||||
|
||||
$.blockUI();
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
// beforeSend: function(xhr) {
|
||||
// xhr.setRequestHeader("XSRF-TOKEN",
|
||||
// $('input:hidden[name="__RequestVerificationToken"]').val());
|
||||
// },
|
||||
url: "/CodeTablePartners/Index/?handler=CodeTablePartnerModal",
|
||||
data: { edit: edit, idCodeTablePartner: edit ? idCodeTablePartner : -1, codeTablePartnerType },
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
$(placeholderSelector).html(data);
|
||||
if (edit){
|
||||
$('#modalAddEditCodeTablePartnerTitle').html(`Urejanje partnerja: ${$('#inpModalAddEditCodeTablePartnerTitle').val()}`);
|
||||
//$('#btnModalAddEditCodeTablePartnerAddFile').css('display', '');
|
||||
$('#btnModalAddEditCodeTablePartnerConfirm').html('Shrani');
|
||||
} else {
|
||||
$('#modalAddEditCodeTablePartnerTitle').html('Dodajanje novega partnerja');
|
||||
//$('#btnModalAddEditCodeTablePartnerAddFile').css('display', 'none');
|
||||
$('#btnModalAddEditCodeTablePartnerConfirm').html('Dodaj');
|
||||
}
|
||||
$('#btnModalAddEditCodeTablePartnerConfirm').off();
|
||||
$('#btnModalAddEditCodeTablePartnerCancel').off();
|
||||
|
||||
//Save to db
|
||||
$('#btnModalAddEditCodeTablePartnerConfirm').on('click', () =>{
|
||||
let title = $('#inpModalAddEditCodeTablePartnerTitle').val();
|
||||
let country = parseInt($('#selModalAddEditCodeTablePartnerCountry').val());
|
||||
let city = $('#inpModalAddEditCodeTablePartnerCity').val();
|
||||
let street = $('#inpModalAddEditCodeTablePartnerStreet').val();
|
||||
let houseNumber = $('#inpModalAddEditCodeTablePartnerHouseNumber').val();
|
||||
let postNumber = $('#inpModalAddEditCodeTablePartnerPostNumber').val();
|
||||
let post = $('#inpModalAddEditCodeTablePartnerPost').val();
|
||||
let taxNumber = $('#inpModalAddEditCodeTablePartnerTaxNumber').val();
|
||||
let registrationNumber = $('#inpModalAddEditCodeTablePartnerRegistrationNumber').val();
|
||||
let email = $('#inpModalAddEditCodeTablePartnerEmail').val();
|
||||
|
||||
let buyer = $('#inpModalAddEditCodeTablePartnerBuyer').is(':checked');
|
||||
let supplier = $('#inpModalAddEditCodeTablePartnerSupplier').is(':checked');
|
||||
let active = $('#inpModalAddEditCodeTablePartnerActive').is(':checked');
|
||||
let edit = $('#inpModalAddEditCodeTablePartnerEdit').val() === 'true';
|
||||
let idCodeTablePartner = parseInt($('#inpModalAddEditCodeTablePartnerIdCodeTablePartner').val());
|
||||
|
||||
if (title === '' || title === null){
|
||||
Swal.fire('Zahtevano polje naziv!');
|
||||
return;
|
||||
}
|
||||
|
||||
// if (description === '' || description === null){
|
||||
// Swal.fire('Zahtevano polje naziv!');
|
||||
// return;
|
||||
// }
|
||||
$.blockUI();
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
beforeSend: function(xhr) {
|
||||
xhr.setRequestHeader("XSRF-TOKEN",
|
||||
$('input:hidden[name="__RequestVerificationToken"]').val());
|
||||
},
|
||||
url: "/CodeTablePartners/Index/?handler=CodeTablePartner",
|
||||
data: {
|
||||
edit,
|
||||
partnerData : {
|
||||
title,
|
||||
IdCountryFk: country,
|
||||
city,
|
||||
street,
|
||||
houseNumber,
|
||||
postNumber,
|
||||
post,
|
||||
taxNumber,
|
||||
registrationNumber,
|
||||
email,
|
||||
buyer,
|
||||
supplier,
|
||||
active,
|
||||
idPartner: idCodeTablePartner
|
||||
}
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
if (data.successful){
|
||||
$("#divModalAddEditCodeTablePartner").modal('hide');
|
||||
if (onAddEdit != null){
|
||||
onAddEdit(data.idCodeTablePartner);
|
||||
}
|
||||
} else {
|
||||
Swal.fire('Napaka pri dodajanju/posodabljanju',
|
||||
data.error,
|
||||
'error');
|
||||
}
|
||||
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
console.log(xhr);
|
||||
alert(xhr.responseText);
|
||||
$.unblockUI();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//Cancel
|
||||
$('#btnModalAddEditCodeTablePartnerCancel').on('click', () =>{
|
||||
$("#divModalAddEditCodeTablePartner").modal('hide');
|
||||
if (onCancel != null){
|
||||
onCancel();
|
||||
}
|
||||
});
|
||||
|
||||
$("#divModalAddEditCodeTablePartner").modal('show');
|
||||
|
||||
$('.select2-partner-add-edit').select2({
|
||||
dropdownParent: $("#divModalAddEditCodeTablePartner")
|
||||
});
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
alert(xhr.responseText);
|
||||
$.unblockUI();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function codeTablePartnerDelete(idCodeTablePartner, onDelete, onCancel){
|
||||
$.blockUI();
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/CodeTablePartners/Index/?handler=CodeTablePartner",
|
||||
data: {
|
||||
idCodeTablePartner
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
if (data.successful){
|
||||
if (data.partnerInUse){
|
||||
Swal.fire('Partner je v uporabi!',
|
||||
'Brisanje ni možno!',
|
||||
'warning');
|
||||
return;
|
||||
}
|
||||
Swal.fire({
|
||||
title: `Izbrišem partnerja ${data.partner.title}?`,
|
||||
text: "Tega dejanja ni možno razveljaviti!",
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: 'Da, izbriši!',
|
||||
cancelButtonText: 'Prekliči!'
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.blockUI();
|
||||
$.ajax({
|
||||
type: "DELETE",
|
||||
beforeSend: function(xhr) {
|
||||
xhr.setRequestHeader("XSRF-TOKEN",
|
||||
$('input:hidden[name="__RequestVerificationToken"]').val());
|
||||
},
|
||||
url: "/CodeTablePartners/Index/?handler=CodeTablePartner",
|
||||
data: {
|
||||
idCodeTablePartner
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
if (data.successful){
|
||||
if (onDelete != null){
|
||||
onDelete(data.idCodeTablePartner);
|
||||
}
|
||||
} else {
|
||||
Swal.fire('Napaka pri brisanju partnerja',
|
||||
data.error,
|
||||
'error');
|
||||
}
|
||||
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
console.log(xhr);
|
||||
alert(xhr.responseText);
|
||||
$.unblockUI();
|
||||
}
|
||||
});
|
||||
} else{
|
||||
if (onCancel != null){
|
||||
onCancel();
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Swal.fire('Napaka pri branju partnerja',
|
||||
data.error,
|
||||
'error');
|
||||
}
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
console.log(xhr);
|
||||
alert(xhr.responseText);
|
||||
$.unblockUI();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function codeTablePartnerDeleteFile(element) {
|
||||
let row = $(element).parent();
|
||||
let idFile = parseInt(row.attr('data-idfile'));
|
||||
|
||||
fileDelete(idFile, (idFile) => {
|
||||
row.remove();
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user