Compare commits
7 Commits
25e98d63ec
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0772f64fae | ||
|
|
dcc0fde1ba | ||
|
|
facfb3a726 | ||
|
|
41639b3354 | ||
|
|
7e7fecc59f | ||
|
|
c23c81e288 | ||
|
|
625b013b67 |
@@ -3,7 +3,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace EveryThing.Classess
|
||||
namespace EveryThing.Classes
|
||||
{
|
||||
public static class Global
|
||||
{
|
||||
@@ -29,5 +29,13 @@ namespace EveryThing.Classess
|
||||
|
||||
return titleValue.ToList();
|
||||
}
|
||||
|
||||
public static TAttribute GetAttribute<TAttribute>(Enum value)
|
||||
where TAttribute : Attribute
|
||||
{
|
||||
var enumType = value.GetType();
|
||||
var name = Enum.GetName(enumType, value);
|
||||
return enumType.GetField(name)?.GetCustomAttributes(false).OfType<TAttribute>().SingleOrDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
2229
EveryThing/Migrations/20230626051721_3.Designer.cs
generated
Normal file
2229
EveryThing/Migrations/20230626051721_3.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
26
EveryThing/Migrations/20230626051721_3.cs
Normal file
26
EveryThing/Migrations/20230626051721_3.cs
Normal file
@@ -0,0 +1,26 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace EveryThing.Migrations
|
||||
{
|
||||
public partial class _3 : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<int>(
|
||||
name: "State",
|
||||
table: "TransportLoadingOrders",
|
||||
type: "int",
|
||||
nullable: false,
|
||||
defaultValue: 0);
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "State",
|
||||
table: "TransportLoadingOrders");
|
||||
}
|
||||
}
|
||||
}
|
||||
2235
EveryThing/Migrations/20230723085946_4.Designer.cs
generated
Normal file
2235
EveryThing/Migrations/20230723085946_4.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
37
EveryThing/Migrations/20230723085946_4.cs
Normal file
37
EveryThing/Migrations/20230723085946_4.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace EveryThing.Migrations
|
||||
{
|
||||
public partial class _4 : Migration
|
||||
{
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<bool>(
|
||||
name: "LoadingOrderLoadUnload",
|
||||
table: "CodeTablePartners",
|
||||
type: "tinyint(1)",
|
||||
nullable: false,
|
||||
defaultValue: false);
|
||||
|
||||
migrationBuilder.AddColumn<bool>(
|
||||
name: "Transporter",
|
||||
table: "CodeTablePartners",
|
||||
type: "tinyint(1)",
|
||||
nullable: false,
|
||||
defaultValue: false);
|
||||
}
|
||||
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "LoadingOrderLoadUnload",
|
||||
table: "CodeTablePartners");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "Transporter",
|
||||
table: "CodeTablePartners");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -347,6 +347,9 @@ namespace EveryThing.Migrations
|
||||
b.Property<int>("IdCountryFk")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<bool>("LoadingOrderLoadUnload")
|
||||
.HasColumnType("tinyint(1)");
|
||||
|
||||
b.Property<string>("Post")
|
||||
.IsRequired()
|
||||
.HasColumnType("longtext");
|
||||
@@ -371,6 +374,9 @@ namespace EveryThing.Migrations
|
||||
.IsRequired()
|
||||
.HasColumnType("longtext");
|
||||
|
||||
b.Property<bool>("Transporter")
|
||||
.HasColumnType("tinyint(1)");
|
||||
|
||||
b.HasKey("IdPartner");
|
||||
|
||||
b.HasIndex("IdCompanyFk");
|
||||
@@ -833,6 +839,9 @@ namespace EveryThing.Migrations
|
||||
b.Property<string>("PreText")
|
||||
.HasColumnType("longtext");
|
||||
|
||||
b.Property<int>("State")
|
||||
.HasColumnType("int");
|
||||
|
||||
b.Property<float>("Total")
|
||||
.HasColumnType("float");
|
||||
|
||||
|
||||
@@ -68,6 +68,15 @@ namespace EveryThing.Models.CodeTable
|
||||
[Display(Name = "Dobavitelj")]
|
||||
public bool Supplier { get; set; } = false;
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Prevoznik")]
|
||||
public bool Transporter { get; set; } = false;
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Naklad/Razklad")]
|
||||
public bool LoadingOrderLoadUnload { get; set; } = false;
|
||||
|
||||
|
||||
// ForeingKey
|
||||
public CodeTableCountry Country { get; set; }
|
||||
public CodeTableCompany Company { get; set; }
|
||||
|
||||
@@ -11,6 +11,15 @@ namespace EveryThing.Models.Transport
|
||||
{
|
||||
public class TransportLoadingOrder
|
||||
{
|
||||
public enum TransportLoadingOrderState
|
||||
{
|
||||
[Display(Name = "Nov")]
|
||||
New = 0,
|
||||
[Display(Name = "Potrjen")]
|
||||
Confirmed = 10,
|
||||
[Display(Name = "Zaprt")]
|
||||
Closed = 20
|
||||
}
|
||||
[System.ComponentModel.DataAnnotations.Key]
|
||||
public int IdTransportLoadingOrder { get; set; }
|
||||
|
||||
@@ -61,6 +70,10 @@ namespace EveryThing.Models.Transport
|
||||
[Display(Name = "Opomba")]
|
||||
public string Note { get; set; }
|
||||
|
||||
[Required]
|
||||
[Display(Name = "Status")]
|
||||
public TransportLoadingOrderState State { get; set; } = TransportLoadingOrderState.New;
|
||||
|
||||
// ForeignKey
|
||||
public CodeTableCompany Company { get; set; }
|
||||
public Vehicle.Vehicle Vehicle { get; set; }
|
||||
|
||||
@@ -81,8 +81,10 @@ namespace EveryThing.Models.Vehicle
|
||||
[Display(Name = "Registrska številka")]
|
||||
public string RegistrationNumber { get; set; }
|
||||
|
||||
[NotMapped] public string DisplayName => $"{Title} ({RegistrationNumber})";
|
||||
|
||||
//TODO: Manjkajo polja
|
||||
|
||||
|
||||
//[Required]
|
||||
//[Display(Name = "Datum veljavnosti registracije")]
|
||||
//public DateTime RegistrationExpiry { get; set; }
|
||||
|
||||
129
EveryThing/Pages/CodeTablePartners/AddEditPartnerModal.cshtml
Normal file
129
EveryThing/Pages/CodeTablePartners/AddEditPartnerModal.cshtml
Normal file
@@ -0,0 +1,129 @@
|
||||
@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="inpModalAddEditCodeTablePartnerTransporter" class="form-check-input" asp-for="Partner.Transporter" /> @Html.DisplayNameFor(model => model.Partner.Transporter)
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group form-check">
|
||||
<label class="form-check-label">
|
||||
<input id="inpModalAddEditCodeTablePartnerLoadingOrderLoadUnload" class="form-check-input" asp-for="Partner.LoadingOrderLoadUnload" /> @Html.DisplayNameFor(model => model.Partner.LoadingOrderLoadUnload)
|
||||
</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>
|
||||
@@ -17,7 +18,7 @@
|
||||
<form method="get">
|
||||
<div class="btn-group">
|
||||
<input class="form-control" type="text" name="searchString" value="@ViewData["SearchString"]" placeholder="Iskanje..." autocomplete="off">
|
||||
<button type="submit" class="btn btn-secondary" aria-label="Osveži" title="Osveži">
|
||||
<button id="btnSubmit" type="submit" class="btn btn-secondary" aria-label="Osveži" title="Osveži">
|
||||
<i class="opacity-75 ion ion-md-refresh"></i>
|
||||
</button>
|
||||
<div class="btn-group" title="Columns">
|
||||
@@ -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 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,26 @@ using EveryThing.Data;
|
||||
using EveryThing.Models;
|
||||
using EveryThing.Models.CodeTable;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using System.Globalization;
|
||||
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||
using DocumentFormat.OpenXml.Spreadsheet;
|
||||
using JetBrains.Annotations;
|
||||
|
||||
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 +63,202 @@ namespace EveryThing.Pages.CodeTablePartners
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public IActionResult OnGetCodeTablePartnerModal([CanBeNull]string title, bool edit, int idCodeTablePartner, bool? buyer, bool? supplier, bool? transporter, bool? loadingUnloading)
|
||||
{
|
||||
//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;
|
||||
|
||||
if (title != null)
|
||||
partner.Title = title;
|
||||
|
||||
if (buyer != null)
|
||||
partner.Buyer = (bool)buyer;
|
||||
|
||||
if (supplier != null)
|
||||
partner.Supplier = (bool)supplier;
|
||||
|
||||
if (transporter != null)
|
||||
partner.Transporter = (bool)transporter;
|
||||
|
||||
if (loadingUnloading != null)
|
||||
partner.LoadingOrderLoadUnload = (bool)loadingUnloading;
|
||||
|
||||
partner.Active = true;
|
||||
}
|
||||
|
||||
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.Transporter = partnerData.Transporter;
|
||||
partner.LoadingOrderLoadUnload = partnerData.LoadingOrderLoadUnload;
|
||||
partner.Active = partnerData.Active;
|
||||
partner.Email = partnerData.Email;
|
||||
partner.HouseNumber = partnerData.HouseNumber;
|
||||
_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,
|
||||
Transporter = partnerData.Transporter,
|
||||
LoadingOrderLoadUnload = partnerData.LoadingOrderLoadUnload,
|
||||
Active = partnerData.Active,
|
||||
TaxNumber = partnerData.TaxNumber,
|
||||
RegistrationNumber = partnerData.RegistrationNumber,
|
||||
Email = partnerData.Email,
|
||||
HouseNumber = partnerData.HouseNumber,
|
||||
IdCompanyFk = user.IdCompanyFk
|
||||
};
|
||||
_context.CodeTablePartners.Add(partner);
|
||||
_context.SaveChanges();
|
||||
|
||||
partnerData.IdPartner = partner.IdPartner;
|
||||
}
|
||||
|
||||
return new JsonResult(new { idCodeTablePartner = partnerData.IdPartner, error = error, successful = successful });
|
||||
}
|
||||
|
||||
public IActionResult OnDeleteCodeTablePartner(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 });
|
||||
}
|
||||
|
||||
public IActionResult OnGetCodeTablePartnersSelect(bool? buyers, bool? suppliers, bool? transporters, bool? loadingUnloadings)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
|
||||
var partners = _context.CodeTablePartners
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk
|
||||
&& x.Active
|
||||
&& (buyers == null || x.Buyer == buyers)
|
||||
&& (suppliers == null || x.Supplier == suppliers)
|
||||
&& (transporters == null || x.Transporter == transporters)
|
||||
&& (loadingUnloadings == null || x.LoadingOrderLoadUnload == loadingUnloadings))
|
||||
.OrderBy(x => x.Title);
|
||||
|
||||
return new JsonResult(new { partners = new SelectList(partners, "IdPartner", "Title") });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ using EveryThing.Data;
|
||||
using EveryThing.Models;
|
||||
using DocumentFormat.OpenXml.Spreadsheet;
|
||||
using EveryThing.Models.CodeTable;
|
||||
using EveryThing.Classess;
|
||||
using EveryThing.Classes;
|
||||
|
||||
namespace EveryThing.Pages.CodeTablePrePostText
|
||||
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
@model EveryThing.Pages.CodeTableVehicles.IndexModel.AddEditCodeTableVehicle
|
||||
|
||||
<div class="modal" tabindex="-1" role="dialog" id="divModalAddEditCodeTableVehicle">
|
||||
<div class="modal-dialog modal-lg" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="modalAddEditCodeTableVehicleTitle">Dodajanje novega vozila</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="inpModalAddEditCodeTableVehicleIdCodeTableVehicle" type="hidden" asp-for="@Model.IdCodeTableVehicle" />
|
||||
<input id="inpModalAddEditCodeTableVehicleEdit" type="hidden" asp-for="@Model.Edit" />
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Vehicle.Title" class="control-label"></label>
|
||||
<input id="inpModalAddEditCodeTableVehicleTitle" asp-for="Vehicle.Title" class="form-control" />
|
||||
<span asp-validation-for="Vehicle.Title" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Vehicle.IdMakeFk" class="control-label"></label>
|
||||
<select id="selModalAddEditCodeTableVehicleMake" asp-for="Vehicle.IdMakeFk" class="form-control" asp-items="Model.VehicleMakes"></select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Vehicle.Model" class="control-label"></label>
|
||||
<input id="inpModalAddEditCodeTableVehicleModel" asp-for="Vehicle.Model" class="form-control" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Vehicle.RegistrationNumber" class="control-label"></label>
|
||||
<input id="inpModalAddEditCodeTableVehicleRegistrationNumber" asp-for="Vehicle.RegistrationNumber" class="form-control" />
|
||||
<span asp-validation-for="Vehicle.RegistrationNumber" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Vehicle.IdVehicleTypeFk" class="control-label"></label>
|
||||
<select id="selModalAddEditCodeTableVehicleVehicleType" asp-for="Vehicle.IdVehicleTypeFk" class="form-control" asp-items="Model.VehicleTypes"></select>
|
||||
<span asp-validation-for="Vehicle.IdVehicleTypeFk" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
<div class="form-group form-check">
|
||||
<label class="form-check-label">
|
||||
<input id="inpModalAddEditCodeTableVehicleActive" class="form-check-input" asp-for="Vehicle.Active" /> @Html.DisplayNameFor(model => model.Vehicle.Active)
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="form-group">
|
||||
<label asp-for="Vehicle.Year" class="control-label"></label>
|
||||
<input id="inpModalAddEditCodeTableVehicleYear" asp-for="Vehicle.Year" class="form-control" />
|
||||
<span asp-validation-for="Vehicle.Year" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Vehicle.VinNumber" class="control-label"></label>
|
||||
<input id="inpModalAddEditCodeTableVehicleVinNumber" asp-for="Vehicle.VinNumber" class="form-control" />
|
||||
<span asp-validation-for="Vehicle.VinNumber" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Vehicle.EngineNumber" class="control-label"></label>
|
||||
<input id="inpModalAddEditCodeTableVehicleEngineNumber" asp-for="Vehicle.EngineNumber" class="form-control" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Vehicle.IdFuelTypeFk" class="control-label"></label>
|
||||
<select id="selModalAddEditCodeTableVehicleFuelType" asp-for="Vehicle.IdFuelTypeFk" class="form-control" asp-items="Model.FuelTypes"></select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Vehicle.VehicleMeterType" class="control-label"></label>
|
||||
<select id="selModalAddEditCodeTableVehicleVehicleMeterType" asp-for="Vehicle.VehicleMeterType" class="form-control" asp-items="Html.GetEnumSelectList<Models.Vehicle.VehicleMeterType>()"></select>
|
||||
<span asp-validation-for="Vehicle.VehicleMeterType" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Vehicle.IdDepartementFk" class="control-label"></label>
|
||||
<select id="selModalAddEditCodeTableVehicleDepartment" asp-for="Vehicle.IdDepartementFk" class="form-control" asp-items="Model.Departments"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<label asp-for="Vehicle.Note" class="control-label"></label>
|
||||
<textarea id="taModalAddEditCodeTableVehicleNote" asp-for="Vehicle.Note" class="form-control" style="resize:none; height: 455px;"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
@*<a id="btnModalAddEditCodeTableVehicleAddFile" asp-page="/Files/Upload" asp-route-idReferenceFk="@Model.IdCodeTableVehicle" asp-route-fileType="@Models.FileType.CodeTableVehicle" class="btn btn-primary pull-right">Priloži datoteko</a>*@
|
||||
<button id="btnModalAddEditCodeTableVehicleConfirm" type="button" class="btn btn-primary">Shrani</button>
|
||||
<button id="btnModalAddEditCodeTableVehicleCancel" type="button" class="btn btn-secondary">Prekliči</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -30,6 +30,8 @@
|
||||
<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>
|
||||
<input asp-for="Vehicle.Title" class="form-control"/>
|
||||
|
||||
@@ -50,6 +50,13 @@ namespace EveryThing.Pages.CodeTableVehicles
|
||||
return NotFound();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Vehicle = new Vehicle
|
||||
{
|
||||
IdCompanyFk = user.IdCompanyFk
|
||||
};
|
||||
}
|
||||
|
||||
ViewData["VehicleType"] = new SelectList(_context.VehicleTypes
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active), "IdVehicleType", "Title");
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<form method="get">
|
||||
<div class="btn-group">
|
||||
<input class="form-control" type="text" name="searchString" value="@ViewData["SearchString"]" placeholder="Iskanje..." autocomplete="off">
|
||||
<button type="submit" class="btn btn-secondary" aria-label="Osveži" title="Osveži" asp-route-type="@ViewData["Type"]">
|
||||
<button id="btnSubmit" type="submit" class="btn btn-secondary" aria-label="Osveži" title="Osveži" asp-route-type="@ViewData["Type"]">
|
||||
<i class="opacity-75 ion ion-md-refresh"></i>
|
||||
</button>
|
||||
<div class="btn-group" title="Columns">
|
||||
@@ -41,98 +41,76 @@
|
||||
|
||||
<table class="table card-table">
|
||||
<thead>
|
||||
<tr>
|
||||
@*<th style="width: 200px;">#</th>*@
|
||||
<th style="width: auto;">
|
||||
@Html.DisplayNameFor(modelItem => modelItem.Vehicles[0].Title)
|
||||
</th>
|
||||
<th style="width: auto;">
|
||||
@Html.DisplayNameFor(modelItem => modelItem.Vehicles[0].RegistrationNumber)
|
||||
</th>
|
||||
<th style="width: 100px">
|
||||
@Html.DisplayNameFor(modelItem => modelItem.Vehicles[0].Active)
|
||||
</th>
|
||||
<th style="width: 120px;"></th>
|
||||
</tr>
|
||||
<tr>
|
||||
@*<th style="width: 200px;">#</th>*@
|
||||
<th style="width: auto;">
|
||||
@Html.DisplayNameFor(modelItem => modelItem.Vehicles[0].Title)
|
||||
</th>
|
||||
<th style="width: auto;">
|
||||
@Html.DisplayNameFor(modelItem => modelItem.Vehicles[0].RegistrationNumber)
|
||||
</th>
|
||||
<th style="width: 100px">
|
||||
@Html.DisplayNameFor(modelItem => modelItem.Vehicles[0].Active)
|
||||
</th>
|
||||
<th style="width: 120px;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var item in Model.Vehicles)
|
||||
{
|
||||
<tr data-idvehicle="@item.IdVehicle">
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Title)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.RegistrationNumber)
|
||||
</td>
|
||||
<td>
|
||||
@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-danger borderless" data-state="danger" href='javascript:;' onclick="deleteVehicle(this)"><i class="fas fa-times"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
@foreach (var item in Model.Vehicles)
|
||||
{
|
||||
<tr data-idvehicle="@item.IdVehicle">
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Title)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.RegistrationNumber)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Active)
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-xs icon-btn btn-outline-secondary borderless" href="Javascript:;" onclick="editCodeTableVehicle(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="deleteCodeTableVehicle(this)"><i class="fas fa-times"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="card-footer py-3 text-right">
|
||||
<a asp-page="CreateEdit" asp-route-edit="false" class="btn btn-primary">Vnos novega</a>
|
||||
<a href="Javascript:;" onclick="addNewCodeTableVehicle();" class="btn btn-primary">Vnos novega</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="divModalCodetableVehicleAddEditPlaceholder"></div>
|
||||
@Html.AntiForgeryToken()
|
||||
|
||||
@section Scripts {
|
||||
<script src="~/vendor/libs/select2/select2.js" asp-append-version="true"></script>
|
||||
<script src="~/js/codeTableVehicleHelper.js?v=1" asp-append-version="true"></script>
|
||||
|
||||
<script>
|
||||
$('[data-toggle="tooltip"]').tooltip({ container: 'table' });
|
||||
|
||||
function deleteVehicle(element) {
|
||||
function addNewCodeTableVehicle() {
|
||||
codeTableVehicleAddEdit('#divModalCodetableVehicleAddEditPlaceholder', false, null, (idCodeTableItem) => {
|
||||
document.getElementById('btnSubmit').click();
|
||||
});
|
||||
}
|
||||
|
||||
function editCodeTableVehicle(element) {
|
||||
let idVehicle = parseInt($(element).parent().parent().attr('data-idvehicle'));
|
||||
|
||||
codeTableVehicleAddEdit('#divModalCodetableVehicleAddEditPlaceholder', true, idVehicle, (idVehicle) => {
|
||||
document.getElementById('btnSubmit').click();
|
||||
});
|
||||
}
|
||||
|
||||
function deleteCodeTableVehicle(element) {
|
||||
let row = $(element).parent().parent();
|
||||
let idInvoice = $(row).attr('data-idinvoice');
|
||||
let invoiceNumber = $(row).attr('data-number');
|
||||
let idVehicle = parseInt(row.attr('data-idvehicle'));
|
||||
|
||||
Swal.fire({
|
||||
title: `Izbrišem dokument ${invoiceNumber}?`,
|
||||
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: "/Invoices/Index/?handler=Invoice",
|
||||
data: {
|
||||
idInvoice
|
||||
},
|
||||
success: function (data) {
|
||||
$.unblockUI();
|
||||
if (data.successful) {
|
||||
$(row).remove();
|
||||
} else {
|
||||
console.log(data);
|
||||
Swal.fire('Napaka pri brisanju dokumenta',
|
||||
data.error,
|
||||
'error');
|
||||
}
|
||||
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
console.log(xhr);
|
||||
alert(xhr.responseText);
|
||||
$.unblockUI();
|
||||
}
|
||||
});
|
||||
}
|
||||
codeTableVehicleDelete(idVehicle, (idVehicle) => {
|
||||
row.remove();
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -7,10 +7,13 @@ using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using EveryThing.Data;
|
||||
using EveryThing.Models;
|
||||
using EveryThing.Models.CodeTable;
|
||||
using EveryThing.Models.Vehicle;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using EveryThing.Models.Invoice;
|
||||
using JetBrains.Annotations;
|
||||
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||
|
||||
namespace EveryThing.Pages.CodeTableVehicles
|
||||
{
|
||||
@@ -20,6 +23,19 @@ namespace EveryThing.Pages.CodeTableVehicles
|
||||
private readonly ApplicationDbContext _context;
|
||||
private readonly UserManager<IdentityApplicationUser> _userManager;
|
||||
|
||||
public class AddEditCodeTableVehicle
|
||||
{
|
||||
public Vehicle Vehicle { get; set; }
|
||||
public bool Edit { get; set; }
|
||||
public int IdCodeTableVehicle { get; set; }
|
||||
public SelectList FuelTypes { get; set; }
|
||||
public SelectList Departments { get; set; }
|
||||
public SelectList VehicleGroups { get; set; }
|
||||
public SelectList VehicleMakes{ get; set; }
|
||||
public SelectList VehicleTypes { get; set; }
|
||||
//public IList<File> Files { get; set; }
|
||||
}
|
||||
|
||||
public IndexModel(ApplicationDbContext context, UserManager<IdentityApplicationUser> userManager)
|
||||
{
|
||||
_context = context;
|
||||
@@ -47,5 +63,201 @@ namespace EveryThing.Pages.CodeTableVehicles
|
||||
Vehicles = Vehicles.Where(s => s.Title.Contains(searchString)).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public IActionResult OnGetCodeTableVehicleModal([CanBeNull] string title, bool edit, int idCodeTableVehicle)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
|
||||
Vehicle vehicle = null;
|
||||
|
||||
if (edit)
|
||||
{
|
||||
vehicle = _context.Vehicles
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.FirstOrDefault(x => x.IdVehicle == idCodeTableVehicle);
|
||||
|
||||
//files = _context.Files
|
||||
// .Where(x => x.IdCompanyFk == user.IdCompanyFk
|
||||
// && x.IdReferenceFk == item.IdItem
|
||||
// && x.FileType == FileType.CodeTableItem)
|
||||
// .ToList();
|
||||
}
|
||||
|
||||
if (vehicle == null)
|
||||
{
|
||||
vehicle = new Vehicle();
|
||||
|
||||
if (title != null)
|
||||
vehicle.Title = title;
|
||||
|
||||
vehicle.Active = true;
|
||||
}
|
||||
|
||||
var departments = new SelectList(_context.CodeTableDepartements.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active), "IdDepartement", "Title");
|
||||
var fuelTypes = new SelectList(_context.VehicleFuelTypes.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdVehicleFuelType", "Title");
|
||||
var groups = new SelectList(_context.VehicleGroups.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active), "IdVehicleGroup", "Title");
|
||||
var makes = new SelectList(_context.VehicleMakes.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active), "IdVehicleMake", "Title");
|
||||
var types = new SelectList(_context.VehicleTypes.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active), "IdVehicleType", "Title");
|
||||
|
||||
return Partial("AddEditVehicleModal", new CodeTableVehicles.IndexModel.AddEditCodeTableVehicle
|
||||
{
|
||||
Vehicle = vehicle,
|
||||
Edit = edit,
|
||||
IdCodeTableVehicle = idCodeTableVehicle,
|
||||
Departments = departments,
|
||||
FuelTypes = fuelTypes,
|
||||
VehicleGroups = groups,
|
||||
VehicleMakes = makes,
|
||||
VehicleTypes = types
|
||||
//Files = files,
|
||||
});
|
||||
}
|
||||
|
||||
public IActionResult OnPostCodeTableVehicle(bool edit, Vehicle vehicleData)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
var successful = true;
|
||||
var error = "";
|
||||
|
||||
if (edit)
|
||||
{
|
||||
var vehicle = _context.Vehicles
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.FirstOrDefault(x => x.IdVehicle == vehicleData.IdVehicle);
|
||||
if (vehicle != null)
|
||||
{
|
||||
vehicle.Title = vehicleData.Title;
|
||||
vehicle.IdVehicleTypeFk = vehicleData.IdVehicleTypeFk;
|
||||
vehicle.IdMakeFk = vehicleData.IdMakeFk;
|
||||
vehicle.Model = vehicleData.Model;
|
||||
vehicle.Year = vehicleData.Year;
|
||||
vehicle.VinNumber = vehicleData.VinNumber;
|
||||
vehicle.EngineNumber = vehicleData.EngineNumber;
|
||||
vehicle.IdFuelTypeFk = vehicleData.IdFuelTypeFk;
|
||||
vehicle.IdDepartementFk = vehicleData.IdDepartementFk;
|
||||
vehicle.IdVehicleGroupFk = vehicleData.IdVehicleGroupFk;
|
||||
vehicle.VehicleMeterType = vehicleData.VehicleMeterType;
|
||||
vehicle.Note = vehicleData.Note;
|
||||
vehicle.RegistrationNumber = vehicleData.RegistrationNumber;
|
||||
vehicle.Active = vehicleData.Active;
|
||||
_context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
successful = false;
|
||||
error = $"Codetable vehicle with ID: {vehicleData.IdVehicle} not found";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var vehicle = new Vehicle
|
||||
{
|
||||
IdCompanyFk = user.IdCompanyFk,
|
||||
Title = vehicleData.Title,
|
||||
IdVehicleTypeFk = vehicleData.IdVehicleTypeFk,
|
||||
IdMakeFk = vehicleData.IdMakeFk,
|
||||
Model = vehicleData.Model,
|
||||
Year = vehicleData.Year,
|
||||
VinNumber = vehicleData.VinNumber,
|
||||
EngineNumber = vehicleData.EngineNumber,
|
||||
IdFuelTypeFk = vehicleData.IdFuelTypeFk,
|
||||
IdDepartementFk = vehicleData.IdDepartementFk,
|
||||
IdVehicleGroupFk = vehicleData.IdVehicleGroupFk,
|
||||
VehicleMeterType = vehicleData.VehicleMeterType,
|
||||
Note = vehicleData.Note,
|
||||
RegistrationNumber = vehicleData.RegistrationNumber,
|
||||
Active = vehicleData.Active
|
||||
};
|
||||
_context.Vehicles.Add(vehicle);
|
||||
_context.SaveChanges();
|
||||
|
||||
vehicleData.IdVehicle = vehicle.IdVehicle;
|
||||
}
|
||||
|
||||
return new JsonResult(new { idCodeTableVehicle = vehicleData.IdVehicle, error = error, successful = successful });
|
||||
}
|
||||
|
||||
public IActionResult OnDeleteCodeTableVehicle(int idCodeTableVehicle)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
var successful = true;
|
||||
var error = "";
|
||||
|
||||
var vehicle = _context.Vehicles
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.FirstOrDefault(x => x.IdVehicle == idCodeTableVehicle);
|
||||
if (vehicle != null)
|
||||
{
|
||||
_context.Vehicles.Remove(vehicle);
|
||||
_context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
successful = false;
|
||||
error = $"Codetable vehicle with ID: {idCodeTableVehicle} not found";
|
||||
}
|
||||
|
||||
return new JsonResult(new { idCodeTableItem = idCodeTableVehicle, error = error, successful = successful });
|
||||
}
|
||||
|
||||
public IActionResult OnGetCodeTableVehicle(int idCodeTableVehicle)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
|
||||
var successful = true;
|
||||
var error = "";
|
||||
var vehicleInUse = false;
|
||||
|
||||
var vehicle = _context.Vehicles
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.Include(x => x.VehicleVehicleFueling)
|
||||
.Include(x => x.VehicleVehicleIncident)
|
||||
.Include(x => x.VehicleVehicleIssue)
|
||||
.Include(x => x.VehicleNote)
|
||||
.Include(x => x.VehicleVehicleDriver)
|
||||
.Include(x => x.VehicleVehicleMeterReading)
|
||||
.Include(x => x.VehicleVehicleDrive)
|
||||
.Include(x => x.VehicleTransportLoadingOrder)
|
||||
.FirstOrDefault(x => x.IdVehicle == idCodeTableVehicle);
|
||||
|
||||
if (vehicle == null)
|
||||
{
|
||||
successful = false;
|
||||
error = $"Codetable vehicle with ID: {idCodeTableVehicle} not found";
|
||||
}
|
||||
else
|
||||
{
|
||||
vehicleInUse = vehicle.VehicleVehicleFueling.Count > 0
|
||||
|| vehicle.VehicleVehicleIncident.Count > 0
|
||||
|| vehicle.VehicleVehicleIssue.Count > 0
|
||||
|| vehicle.VehicleVehicleDriver.Count > 0
|
||||
|| vehicle.VehicleVehicleMeterReading.Count > 0
|
||||
|| vehicle.VehicleVehicleDrive.Count > 0
|
||||
|| vehicle.VehicleTransportLoadingOrder.Count > 0
|
||||
|| vehicle.VehicleNote.Count > 0;
|
||||
vehicle.VehicleVehicleFueling = null;
|
||||
vehicle.VehicleVehicleIncident = null;
|
||||
vehicle.VehicleVehicleIssue = null;
|
||||
vehicle.VehicleNote = null;
|
||||
vehicle.VehicleVehicleDriver = null;
|
||||
vehicle.VehicleVehicleMeterReading = null;
|
||||
vehicle.VehicleVehicleDrive = null;
|
||||
vehicle.VehicleTransportLoadingOrder = null;
|
||||
}
|
||||
|
||||
return new JsonResult(new { vehicle, error, successful, vehicleInUse });
|
||||
}
|
||||
|
||||
public IActionResult OnGetCodeTableVehiclesSelect()
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
|
||||
var vehicles = _context.Vehicles
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk
|
||||
&& x.Active)
|
||||
.OrderBy(x => x.Title);
|
||||
|
||||
return new JsonResult(new { vehicles = new SelectList(vehicles, "IdVehicle", "Title") });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,8 +75,8 @@ namespace EveryThing.Pages.Invoices
|
||||
|
||||
ViewData["States"] = new SelectList(Enum.GetValues(typeof(Models.Invoice.Invoice.InvoiceState))
|
||||
.Cast<Models.Invoice.Invoice.InvoiceState>()
|
||||
.Where(x => GetAttribute<Models.Invoice.Invoice.InvoiceStateAttribute>(x).AllowedTypes.Split(',').Contains(((int)Invoice.Type).ToString()))
|
||||
.Select(x => new { Name = GetAttribute<DisplayAttribute>(x).Name, Value = x.ToString()})
|
||||
.Where(x => Classes.Global.GetAttribute<Models.Invoice.Invoice.InvoiceStateAttribute>(x).AllowedTypes.Split(',').Contains(((int)Invoice.Type).ToString()))
|
||||
.Select(x => new { Name = Classes.Global.GetAttribute<DisplayAttribute>(x).Name, Value = x.ToString()})
|
||||
.ToList(), "Value", "Name");
|
||||
|
||||
if (!string.IsNullOrEmpty(Request.Headers["Referer"]))
|
||||
@@ -87,13 +87,7 @@ namespace EveryThing.Pages.Invoices
|
||||
return Page();
|
||||
}
|
||||
|
||||
public static TAttribute GetAttribute<TAttribute>(Enum value)
|
||||
where TAttribute : Attribute
|
||||
{
|
||||
var enumType = value.GetType();
|
||||
var name = Enum.GetName(enumType, value);
|
||||
return enumType.GetField(name).GetCustomAttributes(false).OfType<TAttribute>().SingleOrDefault();
|
||||
}
|
||||
|
||||
|
||||
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
|
||||
// more details see https://aka.ms/RazorPagesCRUD.
|
||||
|
||||
@@ -40,95 +40,112 @@
|
||||
</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="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 select2" asp-items="ViewBag.IdPartnerFk"></select>
|
||||
</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="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>
|
||||
<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 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>
|
||||
<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">
|
||||
@if (Model.TransportLoadingOrder.IdTransportLoadingOrder > 0)
|
||||
{
|
||||
<a class="btn icon-btn btn-secondary" asp-page="Print" asp-route-id="@Model.TransportLoadingOrder.IdTransportLoadingOrder" data-toggle="tooltip" data-placement="top" title="Tiskanje" data-state="primary"><i class="ion ion-md-print"></i></a>
|
||||
}
|
||||
<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">Prekliči</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade" id="item-positions">
|
||||
<div class="card-body">
|
||||
@@ -140,8 +157,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>
|
||||
@@ -150,7 +166,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>
|
||||
@@ -193,8 +209,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>
|
||||
@@ -203,7 +218,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>
|
||||
@@ -268,15 +283,20 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="divModalCodetablePartnerAddEditPlaceholder"></div>
|
||||
<div id="divModalCodetableVehicleAddEditPlaceholder"></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 src="~/js/codeTableVehicleHelper.js?v=1" asp-append-version="true"></script>
|
||||
|
||||
<script>
|
||||
var Block = Quill.import('blots/block');
|
||||
@@ -310,16 +330,214 @@
|
||||
}
|
||||
|
||||
$(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",
|
||||
language: {
|
||||
noResults: function () {
|
||||
return `<button style="width: 100%" type="button"
|
||||
class="btn btn-primary"
|
||||
onClick='addNewCodeTableVehicle()'>Dodaj novega</button>
|
||||
</li>`;
|
||||
}
|
||||
},
|
||||
escapeMarkup: function (markup) {
|
||||
return markup;
|
||||
}
|
||||
}).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();
|
||||
location.replace('AddEdit?Id=' + xhr.responseJSON.id);
|
||||
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();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function addNewCodeTableVehicle() {
|
||||
let title = $(".select2-vehicle").data("select2").dropdown.$search.val();
|
||||
codeTableVehicleAddEdit('#divModalCodetableVehicleAddEditPlaceholder', false, null, (idCodeTableVehicle) => {
|
||||
refreshCodeTableVehicle('.select2-vehicle', idCodeTableVehicle, null, true);
|
||||
}, null, title);
|
||||
}
|
||||
|
||||
function refreshCodeTableVehicle(selector, idToSelect) {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/CodeTableVehicles/Index/?handler=CodeTableVehiclesSelect",
|
||||
data: {
|
||||
},
|
||||
success: function (data) {
|
||||
$(selector).empty();
|
||||
$(data.vehicles).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();
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
@@ -14,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
|
||||
{
|
||||
@@ -35,14 +37,25 @@ 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");
|
||||
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["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 && 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() })
|
||||
.ToList(), "Value", "Name");
|
||||
|
||||
if (id == null)
|
||||
{
|
||||
@@ -54,7 +67,7 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
||||
TransportLoadingOrder = new Models.Transport.TransportLoadingOrder
|
||||
{
|
||||
OrderCity = _context.CodeTableCompanies.Single(x => x.IdCompany == user.IdCompanyFk).City,
|
||||
OrderDate = DateTime.Now,
|
||||
OrderDate = DateTime.Now.Date,
|
||||
PreText = string.Join("<br/>", prePostTexts.Where(x => x.Type == CodeTablePrePostTextLink.TypeEnum.PreText).Select(x => x.CodeTablePrePostText.Content)),
|
||||
PostText = string.Join("<br/>", prePostTexts.Where(x => x.Type == CodeTablePrePostTextLink.TypeEnum.PostText).Select(x => x.CodeTablePrePostText.Content))
|
||||
};
|
||||
@@ -80,15 +93,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>", "");
|
||||
@@ -116,12 +133,12 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
||||
|
||||
TransportLoadingOrderLoadUnload = new TransportLoadingOrderLoadUnload();
|
||||
|
||||
return Page();
|
||||
return new JsonResult(new { successful = true, id = TransportLoadingOrder.IdTransportLoadingOrder });
|
||||
}
|
||||
|
||||
// OrderNumber and OrderYear
|
||||
|
||||
var orderNumber = _context.TransportLoadingOrders.Count(x => x.IdCompanyFk == user.IdCompanyFk && x.OrderYear == DateTime.Now.Year) + 1;
|
||||
var orderNumber = _context.TransportLoadingOrders.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.OrderYear == DateTime.Now.Year).Max(x => x.OrderNumber) + 1;
|
||||
|
||||
TransportLoadingOrder.IdCompanyFk = user.IdCompanyFk;
|
||||
TransportLoadingOrder.OrderYear = DateTime.Now.Year;
|
||||
@@ -131,7 +148,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()
|
||||
@@ -195,5 +212,29 @@ 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");
|
||||
}
|
||||
|
||||
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}" });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,17 +41,20 @@
|
||||
Datum naloga
|
||||
</th>
|
||||
<th>
|
||||
Partner
|
||||
Prevoznik
|
||||
</th>
|
||||
<th style="width: 80px;"></th>
|
||||
<th style="width: 100px">
|
||||
Status
|
||||
</th>
|
||||
<th style="width: 110px;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var item in Model.TransportLoadingOrder)
|
||||
{
|
||||
<tr>
|
||||
<tr data-idloadingorder="@item.IdTransportLoadingOrder" data-number="@item.OrderNumberDisplay">
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.OrderYear)-@Html.DisplayFor(modelItem => item.OrderNumber)
|
||||
@Html.DisplayFor(modelItem => item.OrderNumberDisplay)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.OrderDate)
|
||||
@@ -59,9 +62,13 @@
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Partner.Title)
|
||||
</td>
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.State)
|
||||
</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="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>
|
||||
<a class="btn btn-xs icon-btn btn-outline-danger borderless" data-state="danger" href='javascript:;' onclick="deleteTransportLoadingOrder(this)"><i class="fas fa-times"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
@@ -72,9 +79,59 @@
|
||||
<a asp-page="AddEdit" class="btn btn-primary">Vnos naloga</a>
|
||||
</div>
|
||||
</div>
|
||||
@Html.AntiForgeryToken()
|
||||
|
||||
@section Scripts {
|
||||
<script>
|
||||
$('[data-toggle="tooltip"]').tooltip({container: 'table'});
|
||||
|
||||
function deleteTransportLoadingOrder(element) {
|
||||
let row = $(element).parent().parent();
|
||||
let idLoadingOrder = $(row).attr('data-idloadingorder');
|
||||
let loadingOrderNumber = $(row).attr('data-number');
|
||||
|
||||
Swal.fire({
|
||||
title: `Izbrišem dokument ${loadingOrderNumber}?`,
|
||||
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: "/TransportLoadingOrder/Index/?handler=TransportLoadingOrder",
|
||||
data: {
|
||||
idLoadingOrder
|
||||
},
|
||||
success: function (data) {
|
||||
$.unblockUI();
|
||||
if (data.successful) {
|
||||
$(row).remove();
|
||||
} else {
|
||||
console.log(data);
|
||||
Swal.fire('Napaka pri brisanju dokumenta',
|
||||
data.error,
|
||||
'error');
|
||||
}
|
||||
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
console.log(xhr);
|
||||
alert(xhr.responseText);
|
||||
$.unblockUI();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
}
|
||||
@@ -44,5 +44,34 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
||||
TransportLoadingOrder = TransportLoadingOrder.Where(x => x.Company.Title.Contains(searchString) || x.OrderYear + "-" + x.OrderNumber == searchString).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public IActionResult OnDeleteTransportLoadingOrder(int idLoadingOrder)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
var successful = true;
|
||||
var error = "";
|
||||
|
||||
var transportLoadingOrder = _context.TransportLoadingOrders
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.FirstOrDefault(x => x.IdTransportLoadingOrder == idLoadingOrder);
|
||||
if (transportLoadingOrder != null)
|
||||
{
|
||||
var items = _context.TransportLoadingOrderLoadUnloads.Where(x => x.IdTransportLoadingOrderFk == idLoadingOrder).ToList();
|
||||
|
||||
for (var i = 0; i < items.Count(); i++)
|
||||
{
|
||||
_context.TransportLoadingOrderLoadUnloads.Remove(items[i]);
|
||||
}
|
||||
_context.TransportLoadingOrders.Remove(transportLoadingOrder);
|
||||
_context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
successful = false;
|
||||
error = $"Transport loading order with ID: {idLoadingOrder} not found";
|
||||
}
|
||||
|
||||
return new JsonResult(new { idLoadingOrder = idLoadingOrder, error = error, successful = successful });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
@Html.Raw(HttpUtility.HtmlDecode(item.CargoDescription))
|
||||
</td>
|
||||
<td class="text-right">@*data-ajax-url="/index/partial"*@
|
||||
<a class="btn btn-xs icon-btn btn-outline-danger borderless" data-ajax="true" data-ajax-begin="loadStartElement('#loadPositions');" data-ajax-complete="loadPosition()" asp-page="Edit" asp-page-handler="positionremove" asp-route-idTransportLoadingOrder="@item.IdTransportLoadingOrderFk" asp-route-id="@item.IdTransportLoadingOrderLoadUnload" data-toggle="tooltip" data-placement="top" title="Odstrani" data-state="danger"><i class="fas fa-times"></i></a>
|
||||
<a class="btn btn-xs icon-btn btn-outline-danger borderless" data-ajax="true" data-ajax-begin="loadStartElement('#loadPositions');" data-ajax-complete="$(this).parent().parent().remove();loadEndElement('#loadPositions');" asp-page="AddEdit" asp-page-handler="positionremove" asp-route-idTransportLoadingOrder="@item.IdTransportLoadingOrderFk" asp-route-id="@item.IdTransportLoadingOrderLoadUnload" data-toggle="tooltip" data-placement="top" title="Odstrani" data-state="danger"><i class="fas fa-times"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
||||
@@ -16,11 +16,16 @@ namespace EveryThing
|
||||
{
|
||||
public class Program
|
||||
{
|
||||
public static IConfiguration AppSetting { get; set; }
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
//var logger = NLog.LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
|
||||
//logger.Debug("INIT");
|
||||
|
||||
AppSetting = new ConfigurationBuilder()
|
||||
.SetBasePath(Directory.GetCurrentDirectory())
|
||||
.AddJsonFile("appsettings.json")
|
||||
.Build();
|
||||
|
||||
CreateHostBuilder(args).Build().Run();
|
||||
}
|
||||
|
||||
@@ -32,7 +37,7 @@ namespace EveryThing
|
||||
logging.ClearProviders();
|
||||
logging.AddConsole();
|
||||
}).UseNLog();
|
||||
|
||||
|
||||
#if !DEBUG
|
||||
webBuilder.UseKestrel(opts =>
|
||||
{
|
||||
@@ -41,12 +46,13 @@ namespace EveryThing
|
||||
//opts.Listen(IPAddress.Parse("192.168.1.150"), 443, o => o.UseHttps(h => { h.UseLettuceEncrypt(appServices); }));
|
||||
|
||||
//opts.Listen(IPAddress.Parse("192.168.111.77"), 5005);
|
||||
opts.Listen(IPAddress.Parse("192.168.178.205"), 5005);//novi server
|
||||
opts.Listen(IPAddress.Loopback, port: 8081);
|
||||
//opts.Listen(IPAddress.Parse("192.168.178.205"), 5005);//novi server
|
||||
//opts.Listen(IPAddress.Loopback, port: 8081);
|
||||
//opts.ListenLocalhost(4433, opts => opts.UseHttps());
|
||||
opts.ListenLocalhost(5005);
|
||||
//opts.ListenLocalhost(5005);
|
||||
//opts.ListenLocalhost(5005, opts => opts.UseHttps());
|
||||
});
|
||||
webBuilder.UseUrls(AppSetting["Kst:Url"]);
|
||||
#endif
|
||||
webBuilder.UseContentRoot(Directory.GetCurrentDirectory());
|
||||
webBuilder.UseStartup<Startup>();
|
||||
|
||||
@@ -10,6 +10,9 @@
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*",
|
||||
"Kst": {
|
||||
"Url": "http://192.168.111.77:5050"
|
||||
}
|
||||
//"LettuceEncrypt": {
|
||||
// "AcceptTermsOfService": true,
|
||||
// "DomainNames": [ "allstar.si", "www.allstar.si" ],
|
||||
|
||||
219
EveryThing/wwwroot/js/codeTablePartnerHelper.js
Normal file
219
EveryThing/wwwroot/js/codeTablePartnerHelper.js
Normal file
@@ -0,0 +1,219 @@
|
||||
//ce jamra da ne najde post je treba dati @Html.AntiForgeryToken() v page
|
||||
function codeTablePartnerAddEdit(placeholderSelector, edit, idCodeTablePartner, onAddEdit, onCancel, title, buyer, supplier, transporter, loadingUnloading){
|
||||
$.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, title, buyer, supplier, transporter, loadingUnloading },
|
||||
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 transporter = $('#inpModalAddEditCodeTablePartnerTransporter').is(':checked');
|
||||
let loadingOrderLoadUnload = $('#inpModalAddEditCodeTablePartnerLoadingOrderLoadUnload').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 (city === '' || city === null) {
|
||||
Swal.fire('Zahtevano polje mesto!');
|
||||
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,
|
||||
transporter,
|
||||
loadingOrderLoadUnload,
|
||||
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();
|
||||
});
|
||||
}
|
||||
221
EveryThing/wwwroot/js/codeTableVehicleHelper.js
Normal file
221
EveryThing/wwwroot/js/codeTableVehicleHelper.js
Normal file
@@ -0,0 +1,221 @@
|
||||
//ce jamra da ne najde post je treba dati @Html.AntiForgeryToken() v page
|
||||
function codeTableVehicleAddEdit(placeholderSelector, edit, idCodeTableVehicle, onAddEdit, onCancel, title){
|
||||
$.blockUI();
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
// beforeSend: function(xhr) {
|
||||
// xhr.setRequestHeader("XSRF-TOKEN",
|
||||
// $('input:hidden[name="__RequestVerificationToken"]').val());
|
||||
// },
|
||||
url: "/CodeTableVehicles/Index/?handler=CodeTableVehicleModal",
|
||||
data: { edit: edit, idCodeTableVehicle: edit ? idCodeTableVehicle : -1, title },
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
$(placeholderSelector).html(data);
|
||||
if (edit){
|
||||
$('#modalAddEditCodeTableVehicleTitle').html(`Urejanje vozila: ${$('#inpModalAddEditCodeTableVehicleTitle').val()}`);
|
||||
//$('#btnModalAddEditCodeTableVehicleAddFile').css('display', '');
|
||||
$('#btnModalAddEditCodeTableVehicleConfirm').html('Shrani');
|
||||
} else {
|
||||
$('#modalAddEditCodeTableVehicleTitle').html('Dodajanje novega vozila');
|
||||
//$('#btnModalAddEditCodeTableVehicleAddFile').css('display', 'none');
|
||||
$('#btnModalAddEditCodeTableVehicleConfirm').html('Dodaj');
|
||||
}
|
||||
$('#btnModalAddEditCodeTableVehicleConfirm').off();
|
||||
$('#btnModalAddEditCodeTableVehicleCancel').off();
|
||||
|
||||
//Save to db
|
||||
$('#btnModalAddEditCodeTableVehicleConfirm').on('click', () =>{
|
||||
let title = $('#inpModalAddEditCodeTableVehicleTitle').val();
|
||||
let model = $('#inpModalAddEditCodeTableVehicleModel').val();
|
||||
let registrationNumber = $('#inpModalAddEditCodeTableVehicleRegistrationNumber').val();
|
||||
let vinNumber = $('#inpModalAddEditCodeTableVehicleVinNumber').val();
|
||||
let engineNumber = $('#inpModalAddEditCodeTableVehicleEngineNumber').val();
|
||||
|
||||
let note = $('#taModalAddEditCodeTableVehicleNote').text();
|
||||
|
||||
let idMakeFk = parseInt($('#selModalAddEditCodeTableVehicleMake').val());
|
||||
let idVehicleTypeFk = parseInt($('#selModalAddEditCodeTableVehicleVehicleType').val());
|
||||
let year = parseInt($('#inpModalAddEditCodeTableVehicleYear').val());
|
||||
let idFuelTypeFk = parseInt($('#selModalAddEditCodeTableVehicleFuelType').val());
|
||||
let vehicleMeterType = parseInt($('#selModalAddEditCodeTableVehicleVehicleMeterType').val());
|
||||
let idDepartementFk = parseInt($('#selModalAddEditCodeTableVehicleDepartment').val());
|
||||
|
||||
|
||||
let active = $('#inpModalAddEditCodeTableVehicleActive').is(':checked');
|
||||
|
||||
|
||||
let edit = $('#inpModalAddEditCodeTableVehicleEdit').val() === 'true';
|
||||
let idVehicle = parseInt($('#inpModalAddEditCodeTableVehicleIdCodeTableVehicle').val());
|
||||
|
||||
if (title === '' || title === null){
|
||||
Swal.fire('Zahtevano polje naziv!');
|
||||
return;
|
||||
}
|
||||
|
||||
if (registrationNumber === '' || registrationNumber === null) {
|
||||
Swal.fire('Zahtevano registrska številka!');
|
||||
return;
|
||||
}
|
||||
|
||||
if (vinNumber === '' || vinNumber === null) {
|
||||
Swal.fire('Zahtevano številka VIN!');
|
||||
return;
|
||||
}
|
||||
|
||||
$.blockUI();
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
beforeSend: function(xhr) {
|
||||
xhr.setRequestHeader("XSRF-TOKEN",
|
||||
$('input:hidden[name="__RequestVerificationToken"]').val());
|
||||
},
|
||||
url: "/CodeTableVehicles/Index/?handler=CodeTableVehicle",
|
||||
data: {
|
||||
edit,
|
||||
vehicleData : {
|
||||
title,
|
||||
model,
|
||||
registrationNumber,
|
||||
vinNumber,
|
||||
engineNumber,
|
||||
note,
|
||||
idMakeFk,
|
||||
idVehicleTypeFk,
|
||||
year,
|
||||
idFuelTypeFk,
|
||||
vehicleMeterType,
|
||||
idDepartementFk,
|
||||
active,
|
||||
idVehicle,
|
||||
}
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
if (data.successful){
|
||||
$("#divModalAddEditCodeTableVehicle").modal('hide');
|
||||
if (onAddEdit != null){
|
||||
onAddEdit(data.idCodeTableVehicle);
|
||||
}
|
||||
} else {
|
||||
Swal.fire('Napaka pri dodajanju/posodabljanju',
|
||||
data.error,
|
||||
'error');
|
||||
}
|
||||
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
console.log(xhr);
|
||||
alert(xhr.responseText);
|
||||
$.unblockUI();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//Cancel
|
||||
$('#btnModalAddEditCodeTableVehicleCancel').on('click', () =>{
|
||||
$("#divModalAddEditCodeTableVehicle").modal('hide');
|
||||
if (onCancel != null){
|
||||
onCancel();
|
||||
}
|
||||
});
|
||||
|
||||
$("#divModalAddEditCodeTableVehicle").modal('show');
|
||||
|
||||
$('.select2-vehicle-add-edit').select2({
|
||||
dropdownParent: $("#divModalAddEditCodeTableVehicle")
|
||||
});
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
alert(xhr.responseText);
|
||||
$.unblockUI();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function codeTableVehicleDelete(idCodeTableVehicle, onDelete, onCancel){
|
||||
$.blockUI();
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/CodeTableVehicles/Index/?handler=CodeTableVehicle",
|
||||
data: {
|
||||
idCodeTableVehicle
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
if (data.successful){
|
||||
if (data.vehicleInUse){
|
||||
Swal.fire('Vozilo je v uporabi!',
|
||||
'Brisanje ni možno!',
|
||||
'warning');
|
||||
return;
|
||||
}
|
||||
Swal.fire({
|
||||
title: `Izbrišem vozilo ${data.vehicle.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: "/CodeTableVehicles/Index/?handler=CodeTableVehicle",
|
||||
data: {
|
||||
idCodeTableVehicle
|
||||
},
|
||||
success: function(data) {
|
||||
$.unblockUI();
|
||||
if (data.successful){
|
||||
if (onDelete != null){
|
||||
onDelete(data.idCodeTableVehicle);
|
||||
}
|
||||
} else {
|
||||
Swal.fire('Napaka pri brisanju vozila',
|
||||
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 vozila',
|
||||
data.error,
|
||||
'error');
|
||||
}
|
||||
},
|
||||
error: function (xhr, ajaxOptions, thrownError) {
|
||||
console.log(xhr);
|
||||
alert(xhr.responseText);
|
||||
$.unblockUI();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function codeTableVehicleDeleteFile(element) {
|
||||
let row = $(element).parent();
|
||||
let idFile = parseInt(row.attr('data-idfile'));
|
||||
|
||||
fileDelete(idFile, (idFile) => {
|
||||
row.remove();
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user