Compare commits
9 Commits
eb3c0ed4e8
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0772f64fae | ||
|
|
dcc0fde1ba | ||
|
|
facfb3a726 | ||
|
|
41639b3354 | ||
|
|
7e7fecc59f | ||
|
|
c23c81e288 | ||
|
|
625b013b67 | ||
|
|
25e98d63ec | ||
|
|
d0fa4db3d8 |
41
EveryThing/Classes/Global.cs
Normal file
41
EveryThing/Classes/Global.cs
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace EveryThing.Classes
|
||||||
|
{
|
||||||
|
public static class Global
|
||||||
|
{
|
||||||
|
public static T GetAttributeOfType<T>(this Enum iEnumType) where T : System.Attribute
|
||||||
|
{
|
||||||
|
var type = iEnumType.GetType();
|
||||||
|
var memberInfo = type.GetMember(iEnumType.ToString());
|
||||||
|
var atributi = memberInfo[0].GetCustomAttributes(typeof(T), false);
|
||||||
|
return (atributi.Length > 0) ? (T)atributi[0] : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<(int EnumValue, T EnumAttribute)> GetEnumListClass<T>(this Type iEnumType,
|
||||||
|
bool iUseOrder = false) where T : System.Attribute
|
||||||
|
{
|
||||||
|
List<(int EnumValue, T EnumAttribute)> titleValue = new();
|
||||||
|
|
||||||
|
foreach (var tempEnumValue in Enum.GetValues(iEnumType).Cast<Enum>())
|
||||||
|
{
|
||||||
|
object tempObject = GetAttributeOfType<T>(tempEnumValue);
|
||||||
|
|
||||||
|
titleValue.Add((Convert.ToInt32(tempEnumValue), (T)tempObject));
|
||||||
|
}
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -48,6 +48,8 @@ namespace EveryThing.Data
|
|||||||
public DbSet<CodeTableItem> CodeTableItems { get; set; }
|
public DbSet<CodeTableItem> CodeTableItems { get; set; }
|
||||||
public DbSet<Invoice> Invoices { get; set; }
|
public DbSet<Invoice> Invoices { get; set; }
|
||||||
public DbSet<InvoiceItem> InvoiceItems { get; set; }
|
public DbSet<InvoiceItem> InvoiceItems { get; set; }
|
||||||
|
public DbSet<CodeTablePrePostText> CodeTablePrePostText { get; set; }
|
||||||
|
public DbSet<CodeTablePrePostTextLink> CodeTablePrePostTextLink { get; set; }
|
||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
|
|||||||
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")
|
b.Property<int>("IdCountryFk")
|
||||||
.HasColumnType("int");
|
.HasColumnType("int");
|
||||||
|
|
||||||
|
b.Property<bool>("LoadingOrderLoadUnload")
|
||||||
|
.HasColumnType("tinyint(1)");
|
||||||
|
|
||||||
b.Property<string>("Post")
|
b.Property<string>("Post")
|
||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("longtext");
|
.HasColumnType("longtext");
|
||||||
@@ -371,6 +374,9 @@ namespace EveryThing.Migrations
|
|||||||
.IsRequired()
|
.IsRequired()
|
||||||
.HasColumnType("longtext");
|
.HasColumnType("longtext");
|
||||||
|
|
||||||
|
b.Property<bool>("Transporter")
|
||||||
|
.HasColumnType("tinyint(1)");
|
||||||
|
|
||||||
b.HasKey("IdPartner");
|
b.HasKey("IdPartner");
|
||||||
|
|
||||||
b.HasIndex("IdCompanyFk");
|
b.HasIndex("IdCompanyFk");
|
||||||
@@ -833,6 +839,9 @@ namespace EveryThing.Migrations
|
|||||||
b.Property<string>("PreText")
|
b.Property<string>("PreText")
|
||||||
.HasColumnType("longtext");
|
.HasColumnType("longtext");
|
||||||
|
|
||||||
|
b.Property<int>("State")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
b.Property<float>("Total")
|
b.Property<float>("Total")
|
||||||
.HasColumnType("float");
|
.HasColumnType("float");
|
||||||
|
|
||||||
|
|||||||
@@ -68,6 +68,15 @@ namespace EveryThing.Models.CodeTable
|
|||||||
[Display(Name = "Dobavitelj")]
|
[Display(Name = "Dobavitelj")]
|
||||||
public bool Supplier { get; set; } = false;
|
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
|
// ForeingKey
|
||||||
public CodeTableCountry Country { get; set; }
|
public CodeTableCountry Country { get; set; }
|
||||||
public CodeTableCompany Company { get; set; }
|
public CodeTableCompany Company { get; set; }
|
||||||
|
|||||||
@@ -21,6 +21,11 @@ namespace EveryThing.Models.CodeTable
|
|||||||
[Display(Name = "Vsebina")]
|
[Display(Name = "Vsebina")]
|
||||||
public string Content { get; set; }
|
public string Content { get; set; }
|
||||||
|
|
||||||
|
[NotMapped]
|
||||||
|
public string ContentDisplay => Content == null ? "" : Content.Length >= 30
|
||||||
|
? Content.Substring(0, 30)
|
||||||
|
: Content;
|
||||||
|
|
||||||
// ForeingKey
|
// ForeingKey
|
||||||
public CodeTableCompany Company { get; set; }
|
public CodeTableCompany Company { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,15 @@ namespace EveryThing.Models.Transport
|
|||||||
{
|
{
|
||||||
public class TransportLoadingOrder
|
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]
|
[System.ComponentModel.DataAnnotations.Key]
|
||||||
public int IdTransportLoadingOrder { get; set; }
|
public int IdTransportLoadingOrder { get; set; }
|
||||||
|
|
||||||
@@ -61,6 +70,10 @@ namespace EveryThing.Models.Transport
|
|||||||
[Display(Name = "Opomba")]
|
[Display(Name = "Opomba")]
|
||||||
public string Note { get; set; }
|
public string Note { get; set; }
|
||||||
|
|
||||||
|
[Required]
|
||||||
|
[Display(Name = "Status")]
|
||||||
|
public TransportLoadingOrderState State { get; set; } = TransportLoadingOrderState.New;
|
||||||
|
|
||||||
// ForeignKey
|
// ForeignKey
|
||||||
public CodeTableCompany Company { get; set; }
|
public CodeTableCompany Company { get; set; }
|
||||||
public Vehicle.Vehicle Vehicle { get; set; }
|
public Vehicle.Vehicle Vehicle { get; set; }
|
||||||
|
|||||||
@@ -81,6 +81,8 @@ namespace EveryThing.Models.Vehicle
|
|||||||
[Display(Name = "Registrska številka")]
|
[Display(Name = "Registrska številka")]
|
||||||
public string RegistrationNumber { get; set; }
|
public string RegistrationNumber { get; set; }
|
||||||
|
|
||||||
|
[NotMapped] public string DisplayName => $"{Title} ({RegistrationNumber})";
|
||||||
|
|
||||||
//TODO: Manjkajo polja
|
//TODO: Manjkajo polja
|
||||||
|
|
||||||
//[Required]
|
//[Required]
|
||||||
|
|||||||
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";
|
ViewData["Title"] = "Partnerji";
|
||||||
Layout = "~/Pages/Layouts/_Layout.cshtml";
|
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">
|
<h4 class="d-flex justify-content-between align-items-center w-100 font-weight-bold py-1 mb-4">
|
||||||
<span>
|
<span>
|
||||||
@@ -17,7 +18,7 @@
|
|||||||
<form method="get">
|
<form method="get">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<input class="form-control" type="text" name="searchString" value="@ViewData["SearchString"]" placeholder="Iskanje..." autocomplete="off">
|
<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>
|
<i class="opacity-75 ion ion-md-refresh"></i>
|
||||||
</button>
|
</button>
|
||||||
<div class="btn-group" title="Columns">
|
<div class="btn-group" title="Columns">
|
||||||
@@ -69,7 +70,7 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
@foreach (var item in Model.Partner)
|
@foreach (var item in Model.Partner)
|
||||||
{
|
{
|
||||||
<tr>
|
<tr data-idCodeTablePartner="@item.IdPartner">
|
||||||
<td>
|
<td>
|
||||||
@Html.DisplayFor(modelItem => item.Title)
|
@Html.DisplayFor(modelItem => item.Title)
|
||||||
@if (!item.Active)
|
@if (!item.Active)
|
||||||
@@ -91,7 +92,8 @@
|
|||||||
@Html.DisplayFor(modelItem => item.Email)
|
@Html.DisplayFor(modelItem => item.Email)
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right">
|
<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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
}
|
}
|
||||||
@@ -99,12 +101,40 @@
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="card-footer py-3 text-right">
|
<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>
|
||||||
|
<div id="divModalCodetablePartnerAddEditPlaceholder"></div>
|
||||||
</div>
|
</div>
|
||||||
|
@Html.AntiForgeryToken()
|
||||||
|
|
||||||
@section Scripts {
|
@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>
|
<script>
|
||||||
$('[data-toggle="tooltip"]').tooltip({container: 'table'});
|
$('[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>
|
</script>
|
||||||
}
|
}
|
||||||
@@ -11,12 +11,26 @@ using EveryThing.Data;
|
|||||||
using EveryThing.Models;
|
using EveryThing.Models;
|
||||||
using EveryThing.Models.CodeTable;
|
using EveryThing.Models.CodeTable;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using System.Globalization;
|
||||||
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||||
|
using DocumentFormat.OpenXml.Spreadsheet;
|
||||||
|
using JetBrains.Annotations;
|
||||||
|
|
||||||
namespace EveryThing.Pages.CodeTablePartners
|
namespace EveryThing.Pages.CodeTablePartners
|
||||||
{
|
{
|
||||||
[Authorize(Roles = "Administrator,InvoicingUser,ProjecThingUser,TransportThingUser")]
|
[Authorize(Roles = "Administrator,InvoicingUser,ProjecThingUser,TransportThingUser")]
|
||||||
public class IndexModel : PageModel
|
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 EveryThing.Data.ApplicationDbContext _context;
|
||||||
private readonly UserManager<IdentityApplicationUser> _userManager;
|
private readonly UserManager<IdentityApplicationUser> _userManager;
|
||||||
|
|
||||||
@@ -49,5 +63,202 @@ namespace EveryThing.Pages.CodeTablePartners
|
|||||||
.ToList();
|
.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") });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
204
EveryThing/Pages/CodeTablePrePostText/AddEdit.cshtml
Normal file
204
EveryThing/Pages/CodeTablePrePostText/AddEdit.cshtml
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
@page "{handler?}"
|
||||||
|
@model EveryThing.Pages.CodeTablePrePostText.AddEditModel
|
||||||
|
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Urejanje klavzule";
|
||||||
|
Layout = "~/Pages/Layouts/_Layout.cshtml";
|
||||||
|
}
|
||||||
|
|
||||||
|
<!-- Editor -->
|
||||||
|
<link rel="stylesheet" href="~/vendor/libs/quill/typography.css" asp-append-version="true" />
|
||||||
|
<link rel="stylesheet" href="~/vendor/libs/quill/editor.css" asp-append-version="true" />
|
||||||
|
<link rel="stylesheet" href="~/vendor/libs/select2/select2.css" asp-append-version="true" />
|
||||||
|
|
||||||
|
<h4 class="d-flex justify-content-between align-items-center w-100 font-weight-bold py-1 mb-4">
|
||||||
|
<span>
|
||||||
|
<span class="text-muted font-weight-light">Nalog /</span>
|
||||||
|
@if (Model.PrePostText.IdPrePostText > 0)
|
||||||
|
{
|
||||||
|
<span>Urejanje</span>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<span>Vnos</span>
|
||||||
|
}
|
||||||
|
</span>
|
||||||
|
</h4>
|
||||||
|
|
||||||
|
<div class="nav-tabs-top nav-responsive-sm">
|
||||||
|
<ul class="nav nav-tabs">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" data-toggle="tab" href="#item-basic">Osnovni podatki</a>
|
||||||
|
</li>
|
||||||
|
</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 id="inputIdPrePostText" type="hidden" asp-for="PrePostText.IdPrePostText" />
|
||||||
|
<input type="hidden" asp-for="PrePostText.IdCompanyFk" />
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-6">
|
||||||
|
<h4>Vsebina</h4>
|
||||||
|
<div class="form-group mb-0">
|
||||||
|
<input type="hidden" id="value-content" asp-for="@Model.PrePostText.Content"/>
|
||||||
|
<div id="editor-content" style="height: 250px">
|
||||||
|
@Html.Raw(Model.PrePostText.Content)
|
||||||
|
</div>
|
||||||
|
<span asp-validation-for="PrePostText.Content" class="text-danger"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<h4>Vezave</h4>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-6">
|
||||||
|
<h5>Uvodno</h5>
|
||||||
|
<table class="table card-table">
|
||||||
|
<tbody id="tableBodyLinksPreText">
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<h5>Zaključno</h5>
|
||||||
|
<table class="table card-table">
|
||||||
|
<tbody id="tableBodyLinksPostText">
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-footer py-3 text-right">
|
||||||
|
@if (Model.PrePostText.IdPrePostText > 0)
|
||||||
|
{
|
||||||
|
<button id="savePrePostText" type="submit" class="btn btn-primary">Shrani</button>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<button id="savePrePostText" type="submit" class="btn btn-primary">Dodaj</button>
|
||||||
|
}
|
||||||
|
|
||||||
|
<a asp-page="Index" class="btn btn-default">Prekliči</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</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>
|
||||||
|
var Block = Quill.import('blots/block');
|
||||||
|
Block.tagName = 'DIV';
|
||||||
|
Quill.register(Block, true);
|
||||||
|
|
||||||
|
var laddaSaveOrder = Ladda.create(document.querySelector('#savePrePostText'));
|
||||||
|
|
||||||
|
let editorContent;
|
||||||
|
|
||||||
|
function handleEditors() {
|
||||||
|
document.getElementById('value-content').value = editorContent.root.innerHTML;
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
$('.select2').select2();
|
||||||
|
editorContent = new Quill('#editor-content', { modules: { toolbar: [['bold', 'italic', 'underline'], ['color'], [{ 'list': 'ordered' }, { 'list': 'bullet' }], ['align'], ['clean']] }, theme: 'snow' });
|
||||||
|
loadLinks();
|
||||||
|
});
|
||||||
|
|
||||||
|
orderPostCompleted = function (xhr) {
|
||||||
|
laddaSaveOrder.stop();
|
||||||
|
location.replace('AddEdit?Id=' + xhr.responseJSON.id);
|
||||||
|
};
|
||||||
|
|
||||||
|
function loadLinks() {
|
||||||
|
let idPrePostText = parseInt($('#inputIdPrePostText').val());
|
||||||
|
if (idPrePostText <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.blockUI();
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: "AddEdit/?handler=LinksTable",
|
||||||
|
data: {
|
||||||
|
idPrePostText
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
$.unblockUI();
|
||||||
|
if (data.successful) {
|
||||||
|
$('#tableBodyLinksPreText').html(data.tableLinksPreText);
|
||||||
|
$('#tableBodyLinksPostText').html(data.tableLinksPostText);
|
||||||
|
$('.chb-link').on('change',
|
||||||
|
function() {
|
||||||
|
toggleLink(this);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
console.log(data);
|
||||||
|
Swal.fire('Napaka pri branju povezav',
|
||||||
|
data.error,
|
||||||
|
'error');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (xhr, ajaxOptions, thrownError) {
|
||||||
|
console.log(xhr);
|
||||||
|
alert(xhr.responseText);
|
||||||
|
$.unblockUI();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
let disableToggleLink = false;
|
||||||
|
|
||||||
|
function toggleLink(checkbox) {
|
||||||
|
if (disableToggleLink) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let row = $(checkbox).parent().parent();
|
||||||
|
let link = $(row).attr('data-link');
|
||||||
|
let type = $(row).attr('data-type');
|
||||||
|
let idPrePostTextLink = $(row).attr('data-idlink');
|
||||||
|
let idPrePostText = parseInt($('#inputIdPrePostText').val());
|
||||||
|
|
||||||
|
$.blockUI();
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
beforeSend: function(xhr) {
|
||||||
|
xhr.setRequestHeader("XSRF-TOKEN",
|
||||||
|
$('input:hidden[name="__RequestVerificationToken"]').val());
|
||||||
|
},
|
||||||
|
url: "AddEdit/?handler=LinkToggle",
|
||||||
|
data: { idPrePostText, link, type, idPrePostTextLink },
|
||||||
|
success: function(data) {
|
||||||
|
$.unblockUI();
|
||||||
|
if (data.successful) {
|
||||||
|
disableToggleLink = true;
|
||||||
|
$(checkbox).prop("checked", data.idLink > 0);
|
||||||
|
disableToggleLink = false;
|
||||||
|
} else {
|
||||||
|
console.log(data);
|
||||||
|
Swal.fire('Napaka pri vnosu povezave',
|
||||||
|
data.error,
|
||||||
|
'error');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (xhr, ajaxOptions, thrownError) {
|
||||||
|
alert(xhr.responseText);
|
||||||
|
$.unblockUI();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
}
|
||||||
181
EveryThing/Pages/CodeTablePrePostText/AddEdit.cshtml.cs
Normal file
181
EveryThing/Pages/CodeTablePrePostText/AddEdit.cshtml.cs
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
using Microsoft.AspNetCore.Identity;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||||
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using EveryThing.Data;
|
||||||
|
using EveryThing.Models;
|
||||||
|
using DocumentFormat.OpenXml.Spreadsheet;
|
||||||
|
using EveryThing.Models.CodeTable;
|
||||||
|
using EveryThing.Classes;
|
||||||
|
|
||||||
|
namespace EveryThing.Pages.CodeTablePrePostText
|
||||||
|
|
||||||
|
{
|
||||||
|
[Authorize(Roles = "Administrator,TransportThingUser,InvoicingUser")]
|
||||||
|
public class AddEditModel : PageModel
|
||||||
|
{
|
||||||
|
private readonly ApplicationDbContext _context;
|
||||||
|
private readonly UserManager<IdentityApplicationUser> _userManager;
|
||||||
|
|
||||||
|
public AddEditModel(ApplicationDbContext context, UserManager<IdentityApplicationUser> userManager)
|
||||||
|
{
|
||||||
|
_context = context;
|
||||||
|
_userManager = userManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
[BindProperty]
|
||||||
|
public Models.CodeTable.CodeTablePrePostText PrePostText { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<IActionResult> OnGetAsync(int? id)
|
||||||
|
{
|
||||||
|
var user = _userManager.GetUserAsync(User).Result;
|
||||||
|
|
||||||
|
|
||||||
|
if (id == null)
|
||||||
|
{
|
||||||
|
PrePostText = new Models.CodeTable.CodeTablePrePostText
|
||||||
|
{
|
||||||
|
Content = "",
|
||||||
|
IdCompanyFk = user.IdCompanyFk
|
||||||
|
};
|
||||||
|
|
||||||
|
return Page();
|
||||||
|
}
|
||||||
|
|
||||||
|
PrePostText = await _context.CodeTablePrePostText
|
||||||
|
.FirstOrDefaultAsync(m => m.IdPrePostText == id && m.IdCompanyFk == user.IdCompanyFk);
|
||||||
|
|
||||||
|
|
||||||
|
if (PrePostText == null)
|
||||||
|
{
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return Page();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<IActionResult> OnPostOrderAsync()
|
||||||
|
{
|
||||||
|
System.Diagnostics.Debug.WriteLine("OnPostOrderAsync");
|
||||||
|
|
||||||
|
var user = _userManager.GetUserAsync(User).Result;
|
||||||
|
|
||||||
|
if (!ModelState.IsValid)
|
||||||
|
{
|
||||||
|
ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
|
||||||
|
ViewData["IdVehicleFk"] = new SelectList(_context.Vehicles.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdVehicle", "RegistrationNumber");
|
||||||
|
return Page();
|
||||||
|
}
|
||||||
|
|
||||||
|
PrePostText.Content = PrePostText.Content.Replace("<div><br></div>", "");
|
||||||
|
|
||||||
|
if (PrePostText.IdPrePostText > 0)
|
||||||
|
{
|
||||||
|
_context.Attach(PrePostText).State = EntityState.Modified;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
catch (DbUpdateConcurrencyException)
|
||||||
|
{
|
||||||
|
if (!PrePostTextExists(PrePostText.IdPrePostText))
|
||||||
|
{
|
||||||
|
return NotFound();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Page();
|
||||||
|
}
|
||||||
|
|
||||||
|
// OrderNumber and OrderYear
|
||||||
|
|
||||||
|
_context.CodeTablePrePostText.Add(PrePostText);
|
||||||
|
await _context.SaveChangesAsync();
|
||||||
|
|
||||||
|
|
||||||
|
return new JsonResult(new { id = PrePostText.IdPrePostText});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private bool PrePostTextExists(int id)
|
||||||
|
{
|
||||||
|
return _context.CodeTablePrePostText.Any(e => e.IdPrePostText == id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IActionResult OnGetLinksTable(int idPrePostText)
|
||||||
|
{
|
||||||
|
var insertedLinks = _context.CodeTablePrePostTextLink
|
||||||
|
.Where(x => x.IdPrePostTextFk == idPrePostText);
|
||||||
|
|
||||||
|
var tableLinksPreText = new StringBuilder();
|
||||||
|
|
||||||
|
typeof(CodeTablePrePostTextLink.LinkEnum).GetEnumListClass<DisplayAttribute>().ForEach(link =>
|
||||||
|
{
|
||||||
|
var insertedLink = insertedLinks.FirstOrDefault(x => (int)x.Link == link.EnumValue && x.Type == CodeTablePrePostTextLink.TypeEnum.PreText);
|
||||||
|
tableLinksPreText.Append($"<tr data-link='{link.EnumValue}' data-type='{(int)CodeTablePrePostTextLink.TypeEnum.PreText}' data-idlink='{insertedLink?.IdPrePostTextLink ?? 0}'>");
|
||||||
|
tableLinksPreText.Append($"<td><input type='checkbox' class='chb-link' {((insertedLink?.IdPrePostTextLink ?? 0) > 0 ? "checked='checked'" : "")}/></td>");
|
||||||
|
tableLinksPreText.Append($"<td>{link.EnumAttribute.Name}</td>");
|
||||||
|
tableLinksPreText.Append("</tr>");
|
||||||
|
});
|
||||||
|
|
||||||
|
var tableLinksPostText = new StringBuilder();
|
||||||
|
|
||||||
|
typeof(CodeTablePrePostTextLink.LinkEnum).GetEnumListClass<DisplayAttribute>().ForEach(link =>
|
||||||
|
{
|
||||||
|
var insertedLink = insertedLinks.FirstOrDefault(x => (int)x.Link == link.EnumValue && x.Type == CodeTablePrePostTextLink.TypeEnum.PostText);
|
||||||
|
tableLinksPostText.Append($"<tr data-link='{link.EnumValue}' data-type='{(int)CodeTablePrePostTextLink.TypeEnum.PostText}' data-idlink='{insertedLink?.IdPrePostTextLink ?? 0}'>");
|
||||||
|
tableLinksPostText.Append($"<td><input type='checkbox' class='chb-link' {((insertedLink?.IdPrePostTextLink ?? 0) > 0 ? "checked='checked'" : "")}/></td>");
|
||||||
|
tableLinksPostText.Append($"<td>{link.EnumAttribute.Name}</td>");
|
||||||
|
tableLinksPostText.Append("</tr>");
|
||||||
|
});
|
||||||
|
|
||||||
|
return new JsonResult(new { tableLinksPreText = tableLinksPreText.ToString(), tableLinksPostText = tableLinksPostText.ToString(), successful = true });
|
||||||
|
}
|
||||||
|
|
||||||
|
public IActionResult OnPostLinkToggle(int idPrePostText, int link, int type, int idPrePostTextLink)
|
||||||
|
{
|
||||||
|
var user = _userManager.GetUserAsync(User).Result;
|
||||||
|
var idLink = 0;
|
||||||
|
|
||||||
|
var exitingLink =
|
||||||
|
_context.CodeTablePrePostTextLink.FirstOrDefault(x => x.IdPrePostTextLink == idPrePostTextLink && x.IdPrePostTextFk == idPrePostText);
|
||||||
|
|
||||||
|
if (exitingLink != null)
|
||||||
|
{
|
||||||
|
_context.CodeTablePrePostTextLink.Remove(exitingLink);
|
||||||
|
_context.SaveChanges();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var newLink = new CodeTablePrePostTextLink
|
||||||
|
{
|
||||||
|
IdPrePostTextFk = idPrePostText,
|
||||||
|
Link = (CodeTablePrePostTextLink.LinkEnum)link,
|
||||||
|
Type = (CodeTablePrePostTextLink.TypeEnum)type
|
||||||
|
};
|
||||||
|
|
||||||
|
_context.CodeTablePrePostTextLink.Add(newLink);
|
||||||
|
_context.SaveChanges();
|
||||||
|
idLink = newLink.IdPrePostTextLink;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new JsonResult(new { error = "", successful = true, idLink });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
67
EveryThing/Pages/CodeTablePrePostText/Index.cshtml
Normal file
67
EveryThing/Pages/CodeTablePrePostText/Index.cshtml
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
@page
|
||||||
|
@model EveryThing.Pages.CodeTablePrePostText.IndexModel
|
||||||
|
|
||||||
|
@{
|
||||||
|
ViewData["Title"] = "Klavzule";
|
||||||
|
Layout = "~/Pages/Layouts/_Layout.cshtml";
|
||||||
|
}
|
||||||
|
|
||||||
|
<h4 class="d-flex justify-content-between align-items-center w-100 font-weight-bold py-1 mb-4">
|
||||||
|
<span>
|
||||||
|
<span class="text-muted font-weight-light">Klavzule /</span> Pregled
|
||||||
|
</span>
|
||||||
|
</h4>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12 mb-2 text-right">
|
||||||
|
<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">
|
||||||
|
<i class="opacity-75 ion ion-md-refresh"></i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
|
||||||
|
<h6 class="card-header">
|
||||||
|
Seznam klavzul
|
||||||
|
</h6>
|
||||||
|
|
||||||
|
<table class="table card-table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
Klavzula
|
||||||
|
</th>
|
||||||
|
<th style="width: 80px;"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach (var item in Model.PrePostTexts)
|
||||||
|
{
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.ContentDisplay)
|
||||||
|
</td>
|
||||||
|
<td class="text-right">
|
||||||
|
<a class="btn btn-xs icon-btn btn-outline-secondary borderless" asp-page="AddEdit" asp-route-id="@item.IdPrePostText" data-toggle="tooltip" data-placement="top" title="Urejanje" data-state="secondary"><i class="fas fa-pencil-alt"></i></a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div class="card-footer py-3 text-right">
|
||||||
|
<a asp-page="AddEdit" class="btn btn-primary">Vnos nove</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@section Scripts {
|
||||||
|
<script>
|
||||||
|
$('[data-toggle="tooltip"]').tooltip({container: 'table'});
|
||||||
|
</script>
|
||||||
|
}
|
||||||
49
EveryThing/Pages/CodeTablePrePostText/Index.cshtml.cs
Normal file
49
EveryThing/Pages/CodeTablePrePostText/Index.cshtml.cs
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Identity;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using EveryThing.Data;
|
||||||
|
using EveryThing.Models;
|
||||||
|
using EveryThing.Models.Transport;
|
||||||
|
using Microsoft.AspNetCore.Authorization;
|
||||||
|
|
||||||
|
namespace EveryThing.Pages.CodeTablePrePostText
|
||||||
|
{
|
||||||
|
[Authorize(Roles = "Administrator,TransportThingUser,InvoicingUser")]
|
||||||
|
public class IndexModel : PageModel
|
||||||
|
{
|
||||||
|
private readonly EveryThing.Data.ApplicationDbContext _context;
|
||||||
|
private readonly UserManager<IdentityApplicationUser> _userManager;
|
||||||
|
|
||||||
|
public IndexModel(EveryThing.Data.ApplicationDbContext context, UserManager<IdentityApplicationUser> userManager)
|
||||||
|
{
|
||||||
|
_context = context;
|
||||||
|
_userManager = userManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IList<Models.CodeTable.CodeTablePrePostText> PrePostTexts { get;set; }
|
||||||
|
|
||||||
|
public async Task OnGetAsync(string searchString)
|
||||||
|
{
|
||||||
|
ViewData["SearchString"] = searchString;
|
||||||
|
|
||||||
|
var user = _userManager.GetUserAsync(User).Result;
|
||||||
|
|
||||||
|
PrePostTexts = await _context.CodeTablePrePostText
|
||||||
|
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||||
|
.OrderByDescending(x => x.Content)
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(searchString))
|
||||||
|
{
|
||||||
|
PrePostTexts = PrePostTexts.Where(x => x.Content == searchString).ToList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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 class="col-4">
|
||||||
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
|
||||||
<input type="hidden" asp-for="@ViewData["Edit"]" name="type"/>
|
<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">
|
<div class="form-group">
|
||||||
<label asp-for="Vehicle.Title" class="control-label"></label>
|
<label asp-for="Vehicle.Title" class="control-label"></label>
|
||||||
<input asp-for="Vehicle.Title" class="form-control"/>
|
<input asp-for="Vehicle.Title" class="form-control"/>
|
||||||
|
|||||||
@@ -50,6 +50,13 @@ namespace EveryThing.Pages.CodeTableVehicles
|
|||||||
return NotFound();
|
return NotFound();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Vehicle = new Vehicle
|
||||||
|
{
|
||||||
|
IdCompanyFk = user.IdCompanyFk
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
ViewData["VehicleType"] = new SelectList(_context.VehicleTypes
|
ViewData["VehicleType"] = new SelectList(_context.VehicleTypes
|
||||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active), "IdVehicleType", "Title");
|
.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active), "IdVehicleType", "Title");
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<form method="get">
|
<form method="get">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<input class="form-control" type="text" name="searchString" value="@ViewData["SearchString"]" placeholder="Iskanje..." autocomplete="off">
|
<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>
|
<i class="opacity-75 ion ion-md-refresh"></i>
|
||||||
</button>
|
</button>
|
||||||
<div class="btn-group" title="Columns">
|
<div class="btn-group" title="Columns">
|
||||||
@@ -41,98 +41,76 @@
|
|||||||
|
|
||||||
<table class="table card-table">
|
<table class="table card-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@*<th style="width: 200px;">#</th>*@
|
@*<th style="width: 200px;">#</th>*@
|
||||||
<th style="width: auto;">
|
<th style="width: auto;">
|
||||||
@Html.DisplayNameFor(modelItem => modelItem.Vehicles[0].Title)
|
@Html.DisplayNameFor(modelItem => modelItem.Vehicles[0].Title)
|
||||||
</th>
|
</th>
|
||||||
<th style="width: auto;">
|
<th style="width: auto;">
|
||||||
@Html.DisplayNameFor(modelItem => modelItem.Vehicles[0].RegistrationNumber)
|
@Html.DisplayNameFor(modelItem => modelItem.Vehicles[0].RegistrationNumber)
|
||||||
</th>
|
</th>
|
||||||
<th style="width: 100px">
|
<th style="width: 100px">
|
||||||
@Html.DisplayNameFor(modelItem => modelItem.Vehicles[0].Active)
|
@Html.DisplayNameFor(modelItem => modelItem.Vehicles[0].Active)
|
||||||
</th>
|
</th>
|
||||||
<th style="width: 120px;"></th>
|
<th style="width: 120px;"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@foreach (var item in Model.Vehicles)
|
@foreach (var item in Model.Vehicles)
|
||||||
{
|
{
|
||||||
<tr data-idvehicle="@item.IdVehicle">
|
<tr data-idvehicle="@item.IdVehicle">
|
||||||
<td>
|
<td>
|
||||||
@Html.DisplayFor(modelItem => item.Title)
|
@Html.DisplayFor(modelItem => item.Title)
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@Html.DisplayFor(modelItem => item.RegistrationNumber)
|
@Html.DisplayFor(modelItem => item.RegistrationNumber)
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@Html.DisplayFor(modelItem => item.Active)
|
@Html.DisplayFor(modelItem => item.Active)
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<a class="btn btn-xs icon-btn btn-outline-secondary borderless" asp-page="Edit" asp-route-id="true" asp-route-id="@item.IdVehicle" data-toggle="tooltip" data-placement="top" title="Urejanje" data-state="secondary"><i class="fas fa-pencil-alt"></i></a>
|
<a class="btn btn-xs icon-btn btn-outline-secondary borderless" 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="deleteVehicle(this)"><i class="fas fa-times"></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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
}
|
}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div class="card-footer py-3 text-right">
|
<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>
|
</div>
|
||||||
|
<div id="divModalCodetableVehicleAddEditPlaceholder"></div>
|
||||||
@Html.AntiForgeryToken()
|
@Html.AntiForgeryToken()
|
||||||
|
|
||||||
@section Scripts {
|
@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>
|
<script>
|
||||||
$('[data-toggle="tooltip"]').tooltip({ container: 'table' });
|
$('[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 row = $(element).parent().parent();
|
||||||
let idInvoice = $(row).attr('data-idinvoice');
|
let idVehicle = parseInt(row.attr('data-idvehicle'));
|
||||||
let invoiceNumber = $(row).attr('data-number');
|
|
||||||
|
|
||||||
Swal.fire({
|
codeTableVehicleDelete(idVehicle, (idVehicle) => {
|
||||||
title: `Izbrišem dokument ${invoiceNumber}?`,
|
row.remove();
|
||||||
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();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -7,10 +7,13 @@ using Microsoft.AspNetCore.Mvc.RazorPages;
|
|||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using EveryThing.Data;
|
using EveryThing.Data;
|
||||||
using EveryThing.Models;
|
using EveryThing.Models;
|
||||||
|
using EveryThing.Models.CodeTable;
|
||||||
using EveryThing.Models.Vehicle;
|
using EveryThing.Models.Vehicle;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Identity;
|
using Microsoft.AspNetCore.Identity;
|
||||||
using EveryThing.Models.Invoice;
|
using EveryThing.Models.Invoice;
|
||||||
|
using JetBrains.Annotations;
|
||||||
|
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||||
|
|
||||||
namespace EveryThing.Pages.CodeTableVehicles
|
namespace EveryThing.Pages.CodeTableVehicles
|
||||||
{
|
{
|
||||||
@@ -20,6 +23,19 @@ namespace EveryThing.Pages.CodeTableVehicles
|
|||||||
private readonly ApplicationDbContext _context;
|
private readonly ApplicationDbContext _context;
|
||||||
private readonly UserManager<IdentityApplicationUser> _userManager;
|
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)
|
public IndexModel(ApplicationDbContext context, UserManager<IdentityApplicationUser> userManager)
|
||||||
{
|
{
|
||||||
_context = context;
|
_context = context;
|
||||||
@@ -47,5 +63,201 @@ namespace EveryThing.Pages.CodeTableVehicles
|
|||||||
Vehicles = Vehicles.Where(s => s.Title.Contains(searchString)).ToList();
|
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))
|
ViewData["States"] = new SelectList(Enum.GetValues(typeof(Models.Invoice.Invoice.InvoiceState))
|
||||||
.Cast<Models.Invoice.Invoice.InvoiceState>()
|
.Cast<Models.Invoice.Invoice.InvoiceState>()
|
||||||
.Where(x => GetAttribute<Models.Invoice.Invoice.InvoiceStateAttribute>(x).AllowedTypes.Split(',').Contains(((int)Invoice.Type).ToString()))
|
.Where(x => Classes.Global.GetAttribute<Models.Invoice.Invoice.InvoiceStateAttribute>(x).AllowedTypes.Split(',').Contains(((int)Invoice.Type).ToString()))
|
||||||
.Select(x => new { Name = GetAttribute<DisplayAttribute>(x).Name, Value = x.ToString()})
|
.Select(x => new { Name = Classes.Global.GetAttribute<DisplayAttribute>(x).Name, Value = x.ToString()})
|
||||||
.ToList(), "Value", "Name");
|
.ToList(), "Value", "Name");
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(Request.Headers["Referer"]))
|
if (!string.IsNullOrEmpty(Request.Headers["Referer"]))
|
||||||
@@ -87,13 +87,7 @@ namespace EveryThing.Pages.Invoices
|
|||||||
return Page();
|
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
|
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
|
||||||
// more details see https://aka.ms/RazorPagesCRUD.
|
// more details see https://aka.ms/RazorPagesCRUD.
|
||||||
|
|||||||
@@ -125,6 +125,13 @@
|
|||||||
<a asp-page="/CodeTableVehicleFuelTypes/Index" class="sidenav-link"><i class="sidenav-icon fas fa-gas-pump"></i><div>Vrste goriva</div></a>
|
<a asp-page="/CodeTableVehicleFuelTypes/Index" class="sidenav-link"><i class="sidenav-icon fas fa-gas-pump"></i><div>Vrste goriva</div></a>
|
||||||
</li>
|
</li>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@if (User.IsInRole("Administrator") || User.IsInRole("TransportThingUser") || User.IsInRole("InvoicingUser"))
|
||||||
|
{
|
||||||
|
<li class="sidenav-item@(currentPage.StartsWith("/CodeTableVehicle/") ? " active" : "")">
|
||||||
|
<a asp-page="/CodeTablePrePostText/Index" class="sidenav-link"><i class="sidenav-icon fas fa-sticky-note"></i><div>Klavzule</div></a>
|
||||||
|
</li>
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@*<li class="sidenav-item@(currentPage.StartsWith("/CodeTable") ? " active open" : "")">
|
@*<li class="sidenav-item@(currentPage.StartsWith("/CodeTable") ? " active open" : "")">
|
||||||
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle"><i class="sidenav-icon fas fa-bars"></i><div>Ostali šifranti</div></a>
|
<a href="javascript:void(0)" class="sidenav-link sidenav-toggle"><i class="sidenav-icon fas fa-bars"></i><div>Ostali šifranti</div></a>
|
||||||
|
|||||||
@@ -40,95 +40,112 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane fade show active" id="item-basic">
|
<div class="tab-pane fade show active" id="item-basic">
|
||||||
<form method="post" data-ajax="true" data-ajax-method="post" asp-page-handler="order" data-ajax-complete="orderPostCompleted" onsubmit="handleEditors()">
|
<form method="post" data-ajax="true" data-ajax-method="post" asp-page-handler="order" data-ajax-complete="orderPostCompleted" onsubmit="beforeOrderPost()">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<input type="hidden" asp-for="TransportLoadingOrder.IdTransportLoadingOrder"/>
|
<input type="hidden" asp-for="TransportLoadingOrder.IdTransportLoadingOrder"/>
|
||||||
<input type="hidden" asp-for="TransportLoadingOrder.IdCompanyFk"/>
|
<input type="hidden" asp-for="TransportLoadingOrder.IdCompanyFk"/>
|
||||||
<input type="hidden" asp-for="TransportLoadingOrder.OrderNumber"/>
|
<input type="hidden" asp-for="TransportLoadingOrder.OrderNumber"/>
|
||||||
<input type="hidden" asp-for="TransportLoadingOrder.OrderYear"/>
|
<input type="hidden" asp-for="TransportLoadingOrder.OrderYear"/>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6">
|
<div class="col-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label asp-for="TransportLoadingOrder.IdPartnerFk" class="form-label"></label>
|
<label asp-for="TransportLoadingOrder.IdPartnerFk" class="form-label"></label>
|
||||||
<select asp-for="TransportLoadingOrder.IdPartnerFk" class="form-control" asp-items="ViewBag.IdPartnerFk"></select>
|
<div class="input-group">
|
||||||
</div>
|
<select id="selTransporter" asp-for="TransportLoadingOrder.IdPartnerFk" class="form-control select2-transporter" asp-items="ViewBag.IdPartnerFk"></select>
|
||||||
</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>
|
</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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="card-footer py-3 text-right">
|
||||||
<div class="col-6">
|
@if (Model.TransportLoadingOrder.IdTransportLoadingOrder > 0)
|
||||||
<div class="form-group mb-0">
|
{
|
||||||
<label asp-for="TransportLoadingOrder.PreText" class="form-label"></label>
|
<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>
|
||||||
<input type="hidden" id="value-pretext" asp-for="@Model.TransportLoadingOrder.PreText"/>
|
}
|
||||||
<div id="editor-pretext" style="height: 250px">
|
<button id="saveOrder" type="submit" class="btn btn-primary">Shrani nalog</button>
|
||||||
@Html.Raw(Model.TransportLoadingOrder.PreText)
|
<a asp-page="Index" class="btn btn-default">Nazaj</a>
|
||||||
</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>
|
</form>
|
||||||
<div class="card-footer py-3 text-right">
|
</div>
|
||||||
<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>
|
|
||||||
|
|
||||||
<div class="tab-pane fade" id="item-positions">
|
<div class="tab-pane fade" id="item-positions">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@@ -140,8 +157,7 @@
|
|||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label">Naklad</label>
|
<label class="form-label">Naklad</label>
|
||||||
<select asp-for="TransportLoadingOrderLoadUnload.IdLoadingFk" class="form-control select2" asp-items="ViewBag.IdLoadingFk">
|
<select id="selLoading" asp-for="TransportLoadingOrderLoadUnload.IdLoadingFk" class="form-control select2-loading" asp-items="ViewBag.IdLoadingFk">
|
||||||
<option value="">Izberite naklad ali vnesite naslov naklada</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -150,7 +166,7 @@
|
|||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label asp-for="TransportLoadingOrderLoadUnload.LoadingText" class="form-label"></label>
|
<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>
|
<span asp-validation-for="TransportLoadingOrderLoadUnload.LoadingText" class="text-danger"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -193,8 +209,7 @@
|
|||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="form-label">Razklad</label>
|
<label class="form-label">Razklad</label>
|
||||||
<select asp-for="TransportLoadingOrderLoadUnload.IdUnloadingFk" class="form-control select2" asp-items="ViewBag.IdUnloadingFk">
|
<select id="selUnloading" asp-for="TransportLoadingOrderLoadUnload.IdUnloadingFk" class="form-control select2-unloading" asp-items="ViewBag.IdUnloadingFk">
|
||||||
<option value="">Izberite razklad ali vnesite naslov razklada</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -203,7 +218,7 @@
|
|||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label asp-for="TransportLoadingOrderLoadUnload.UnloadingText" class="form-label"></label>
|
<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>
|
<span asp-validation-for="TransportLoadingOrderLoadUnload.UnloadingText" class="text-danger"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -268,15 +283,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="divModalCodetablePartnerAddEditPlaceholder"></div>
|
||||||
|
<div id="divModalCodetableVehicleAddEditPlaceholder"></div>
|
||||||
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
|
||||||
|
|
||||||
|
@Html.AntiForgeryToken()
|
||||||
|
|
||||||
@section Scripts {
|
@section Scripts {
|
||||||
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
|
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
|
||||||
|
|
||||||
<!-- Editor -->
|
<!-- Editor -->
|
||||||
<script src="~/vendor/libs/quill/quill.js" asp-append-version="true"></script>
|
<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="~/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>
|
<script>
|
||||||
var Block = Quill.import('blots/block');
|
var Block = Quill.import('blots/block');
|
||||||
@@ -310,16 +330,214 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(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' });
|
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' });
|
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' });
|
editorCargoDescription = new Quill('#editor-cargodescription', { modules: { toolbar: [['bold', 'italic', 'underline'], ['color'], [{ 'list': 'ordered' }, { 'list': 'bullet' }], ['align'], ['clean']] }, theme: 'snow' });
|
||||||
loadPosition();
|
loadPosition();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function beforeOrderPost() {
|
||||||
|
if ($('.select2-vehicle').val() === '') {
|
||||||
|
$('.select2-vehicle').val(null);
|
||||||
|
}
|
||||||
|
handleEditors();
|
||||||
|
}
|
||||||
|
|
||||||
orderPostCompleted = function (xhr) {
|
orderPostCompleted = function (xhr) {
|
||||||
laddaSaveOrder.stop();
|
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>
|
</script>
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@@ -13,6 +14,8 @@ using EveryThing.Data;
|
|||||||
using EveryThing.Models;
|
using EveryThing.Models;
|
||||||
using EveryThing.Models.Transport;
|
using EveryThing.Models.Transport;
|
||||||
using DocumentFormat.OpenXml.Spreadsheet;
|
using DocumentFormat.OpenXml.Spreadsheet;
|
||||||
|
using EveryThing.Models.CodeTable;
|
||||||
|
using NuGet.Packaging;
|
||||||
|
|
||||||
namespace EveryThing.Pages.TransportLoadingOrder
|
namespace EveryThing.Pages.TransportLoadingOrder
|
||||||
{
|
{
|
||||||
@@ -34,29 +37,39 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
|||||||
[BindProperty]
|
[BindProperty]
|
||||||
public TransportLoadingOrderLoadUnload TransportLoadingOrderLoadUnload { get; set; }
|
public TransportLoadingOrderLoadUnload TransportLoadingOrderLoadUnload { get; set; }
|
||||||
|
|
||||||
|
[BindProperty]
|
||||||
|
public List<SelectListItem> Vehicles { get; set; }
|
||||||
|
|
||||||
public async Task<IActionResult> OnGetAsync(int? id)
|
public async Task<IActionResult> OnGetAsync(int? id)
|
||||||
{
|
{
|
||||||
var user = _userManager.GetUserAsync(User).Result;
|
var user = _userManager.GetUserAsync(User).Result;
|
||||||
|
|
||||||
ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
|
ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners
|
||||||
ViewData["IdVehicleFk"] = new SelectList(_context.Vehicles.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdVehicle", "RegistrationNumber");
|
.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active && x.Transporter), "IdPartner", "Title");
|
||||||
ViewData["IdLoadingFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
|
SetVehiclesBag(user.IdCompanyFk);
|
||||||
ViewData["IdUnloadingFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
|
ViewData["IdLoadingFk"] = new SelectList(_context.CodeTablePartners
|
||||||
|
.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active && x.LoadingOrderLoadUnload), "IdPartner", "Title");
|
||||||
|
ViewData["IdUnloadingFk"] = new SelectList(_context.CodeTablePartners
|
||||||
|
.Where(x => x.IdCompanyFk == user.IdCompanyFk && x.Active && x.LoadingOrderLoadUnload), "IdPartner", "Title");
|
||||||
|
|
||||||
|
ViewData["States"] = new SelectList(Enum.GetValues(typeof(Models.Transport.TransportLoadingOrder.TransportLoadingOrderState))
|
||||||
|
.Cast<Models.Transport.TransportLoadingOrder.TransportLoadingOrderState>()
|
||||||
|
.Select(x => new { Name = Classes.Global.GetAttribute<DisplayAttribute>(x).Name, Value = x.ToString() })
|
||||||
|
.ToList(), "Value", "Name");
|
||||||
|
|
||||||
if (id == null)
|
if (id == null)
|
||||||
{
|
{
|
||||||
|
var prePostTexts = _context.CodeTablePrePostTextLink
|
||||||
|
.Include(x => x.CodeTablePrePostText)
|
||||||
|
.Where(x => x.CodeTablePrePostText.IdCompanyFk == user.IdCompanyFk
|
||||||
|
&& x.Link == CodeTablePrePostTextLink.LinkEnum.TransportLoadingOrder);
|
||||||
|
|
||||||
TransportLoadingOrder = new Models.Transport.TransportLoadingOrder
|
TransportLoadingOrder = new Models.Transport.TransportLoadingOrder
|
||||||
{
|
{
|
||||||
OrderCity = _context.CodeTableCompanies.Single(x => x.IdCompany == user.IdCompanyFk).City,
|
OrderCity = _context.CodeTableCompanies.Single(x => x.IdCompany == user.IdCompanyFk).City,
|
||||||
OrderDate = DateTime.Now,
|
OrderDate = DateTime.Now.Date,
|
||||||
PostText = "<div>Prejemnik se obvezuje izvršiti prevoz po navodilih iz naročila. Prevoz se mora izvršiti v skladu z določili CRM konvencije. " +
|
PreText = string.Join("<br/>", prePostTexts.Where(x => x.Type == CodeTablePrePostTextLink.TypeEnum.PreText).Select(x => x.CodeTablePrePostText.Content)),
|
||||||
"Prevoznik zagotavlja zavarovano prevozniško odgovornost. V primeru, da naročenega prevoza ne opravite po navodilih, Vas bomo bremenili za " +
|
PostText = string.Join("<br/>", prePostTexts.Where(x => x.Type == CodeTablePrePostTextLink.TypeEnum.PostText).Select(x => x.CodeTablePrePostText.Content))
|
||||||
"vse nastale stroške. Vse morebitne spore v zvezi s tem naročilom rešuje Okrožno sodišče v Slovenj Gradcu.</div><br/>" +
|
|
||||||
"Plačilo: <b>60 dni</b> po prejemu računana e-mail: <b>eracuni@trans-fer.si</b><br/>" +
|
|
||||||
"Original račun pošljite po pošti, poleg računa priložite 2 (dva) izvoda ožigosanega CMR " +
|
|
||||||
"z datumom in podpisom prejemnika.<br/>" +
|
|
||||||
"Direkten kontakt s stranko brez našega soglasja je PREPOVEDAN!<br/>" +
|
|
||||||
"<div>Račun</div>"
|
|
||||||
};
|
};
|
||||||
TransportLoadingOrderLoadUnload = new TransportLoadingOrderLoadUnload();
|
TransportLoadingOrderLoadUnload = new TransportLoadingOrderLoadUnload();
|
||||||
|
|
||||||
@@ -80,15 +93,19 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
|||||||
|
|
||||||
public async Task<IActionResult> OnPostOrderAsync()
|
public async Task<IActionResult> OnPostOrderAsync()
|
||||||
{
|
{
|
||||||
System.Diagnostics.Debug.WriteLine("OnPostOrderAsync");
|
|
||||||
|
|
||||||
var user = _userManager.GetUserAsync(User).Result;
|
var user = _userManager.GetUserAsync(User).Result;
|
||||||
|
|
||||||
if (!ModelState.IsValid)
|
if (!ModelState.IsValid)
|
||||||
{
|
{
|
||||||
ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
|
System.Diagnostics.Debug.WriteLine("OnPostOrderAsync:Invalid");
|
||||||
ViewData["IdVehicleFk"] = new SelectList(_context.Vehicles.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdVehicle", "RegistrationNumber");
|
//ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
|
||||||
return Page();
|
//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>", "");
|
TransportLoadingOrder.PostText = TransportLoadingOrder.PostText.Replace("<div><br></div>", "");
|
||||||
@@ -116,12 +133,12 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
|||||||
|
|
||||||
TransportLoadingOrderLoadUnload = new TransportLoadingOrderLoadUnload();
|
TransportLoadingOrderLoadUnload = new TransportLoadingOrderLoadUnload();
|
||||||
|
|
||||||
return Page();
|
return new JsonResult(new { successful = true, id = TransportLoadingOrder.IdTransportLoadingOrder });
|
||||||
}
|
}
|
||||||
|
|
||||||
// OrderNumber and OrderYear
|
// 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.IdCompanyFk = user.IdCompanyFk;
|
||||||
TransportLoadingOrder.OrderYear = DateTime.Now.Year;
|
TransportLoadingOrder.OrderYear = DateTime.Now.Year;
|
||||||
@@ -131,7 +148,7 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
|||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
|
|
||||||
|
|
||||||
return new JsonResult(new { id = TransportLoadingOrder .IdTransportLoadingOrder});
|
return new JsonResult(new { successful = true, id = TransportLoadingOrder .IdTransportLoadingOrder});
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IActionResult> OnPostPositionAddAsync()
|
public async Task<IActionResult> OnPostPositionAddAsync()
|
||||||
@@ -195,5 +212,29 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
|||||||
{
|
{
|
||||||
return _context.TransportLoadingOrders.Any(e => e.IdTransportLoadingOrder == id);
|
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
|
Datum naloga
|
||||||
</th>
|
</th>
|
||||||
<th>
|
<th>
|
||||||
Partner
|
Prevoznik
|
||||||
</th>
|
</th>
|
||||||
<th style="width: 80px;"></th>
|
<th style="width: 100px">
|
||||||
|
Status
|
||||||
|
</th>
|
||||||
|
<th style="width: 110px;"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@foreach (var item in Model.TransportLoadingOrder)
|
@foreach (var item in Model.TransportLoadingOrder)
|
||||||
{
|
{
|
||||||
<tr>
|
<tr data-idloadingorder="@item.IdTransportLoadingOrder" data-number="@item.OrderNumberDisplay">
|
||||||
<td>
|
<td>
|
||||||
@Html.DisplayFor(modelItem => item.OrderYear)-@Html.DisplayFor(modelItem => item.OrderNumber)
|
@Html.DisplayFor(modelItem => item.OrderNumberDisplay)
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
@Html.DisplayFor(modelItem => item.OrderDate)
|
@Html.DisplayFor(modelItem => item.OrderDate)
|
||||||
@@ -59,9 +62,13 @@
|
|||||||
<td>
|
<td>
|
||||||
@Html.DisplayFor(modelItem => item.Partner.Title)
|
@Html.DisplayFor(modelItem => item.Partner.Title)
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
@Html.DisplayFor(modelItem => item.State)
|
||||||
|
</td>
|
||||||
<td class="text-right">
|
<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-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-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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
}
|
}
|
||||||
@@ -72,9 +79,59 @@
|
|||||||
<a asp-page="AddEdit" class="btn btn-primary">Vnos naloga</a>
|
<a asp-page="AddEdit" class="btn btn-primary">Vnos naloga</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@Html.AntiForgeryToken()
|
||||||
|
|
||||||
@section Scripts {
|
@section Scripts {
|
||||||
<script>
|
<script>
|
||||||
$('[data-toggle="tooltip"]').tooltip({container: 'table'});
|
$('[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>
|
</script>
|
||||||
}
|
}
|
||||||
@@ -44,5 +44,34 @@ namespace EveryThing.Pages.TransportLoadingOrder
|
|||||||
TransportLoadingOrder = TransportLoadingOrder.Where(x => x.Company.Title.Contains(searchString) || x.OrderYear + "-" + x.OrderNumber == searchString).ToList();
|
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))
|
@Html.Raw(HttpUtility.HtmlDecode(item.CargoDescription))
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right">@*data-ajax-url="/index/partial"*@
|
<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>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,10 +16,15 @@ namespace EveryThing
|
|||||||
{
|
{
|
||||||
public class Program
|
public class Program
|
||||||
{
|
{
|
||||||
|
public static IConfiguration AppSetting { get; set; }
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
//var logger = NLog.LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
|
//var logger = NLog.LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
|
||||||
//logger.Debug("INIT");
|
//logger.Debug("INIT");
|
||||||
|
AppSetting = new ConfigurationBuilder()
|
||||||
|
.SetBasePath(Directory.GetCurrentDirectory())
|
||||||
|
.AddJsonFile("appsettings.json")
|
||||||
|
.Build();
|
||||||
|
|
||||||
CreateHostBuilder(args).Build().Run();
|
CreateHostBuilder(args).Build().Run();
|
||||||
}
|
}
|
||||||
@@ -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.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.111.77"), 5005);
|
||||||
opts.Listen(IPAddress.Parse("192.168.178.205"), 5005);//novi server
|
//opts.Listen(IPAddress.Parse("192.168.178.205"), 5005);//novi server
|
||||||
opts.Listen(IPAddress.Loopback, port: 8081);
|
//opts.Listen(IPAddress.Loopback, port: 8081);
|
||||||
//opts.ListenLocalhost(4433, opts => opts.UseHttps());
|
//opts.ListenLocalhost(4433, opts => opts.UseHttps());
|
||||||
opts.ListenLocalhost(5005);
|
//opts.ListenLocalhost(5005);
|
||||||
//opts.ListenLocalhost(5005, opts => opts.UseHttps());
|
//opts.ListenLocalhost(5005, opts => opts.UseHttps());
|
||||||
});
|
});
|
||||||
|
webBuilder.UseUrls(AppSetting["Kst:Url"]);
|
||||||
#endif
|
#endif
|
||||||
webBuilder.UseContentRoot(Directory.GetCurrentDirectory());
|
webBuilder.UseContentRoot(Directory.GetCurrentDirectory());
|
||||||
webBuilder.UseStartup<Startup>();
|
webBuilder.UseStartup<Startup>();
|
||||||
|
|||||||
@@ -10,6 +10,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"AllowedHosts": "*",
|
"AllowedHosts": "*",
|
||||||
|
"Kst": {
|
||||||
|
"Url": "http://192.168.111.77:5050"
|
||||||
|
}
|
||||||
//"LettuceEncrypt": {
|
//"LettuceEncrypt": {
|
||||||
// "AcceptTermsOfService": true,
|
// "AcceptTermsOfService": true,
|
||||||
// "DomainNames": [ "allstar.si", "www.allstar.si" ],
|
// "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