partnerji na modal
This commit is contained in:
119
EveryThing/Pages/CodeTablePartners/AddEditPartnerModal.cshtml
Normal file
119
EveryThing/Pages/CodeTablePartners/AddEditPartnerModal.cshtml
Normal file
@@ -0,0 +1,119 @@
|
||||
@model EveryThing.Pages.CodeTablePartners.IndexModel.AddEditCodeTablePartner
|
||||
|
||||
<div class="modal" tabindex="-1" role="dialog" id="divModalAddEditCodeTablePartner">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="modalAddEditCodeTablePartnerTitle">Dodajanje novega artikla</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<input id="inpModalAddEditCodeTablePartnerIdCodeTablePartner" type="hidden" asp-for="@Model.IdCodeTablePartner" />
|
||||
<input id="inpModalAddEditCodeTablePartnerEdit" type="hidden" asp-for="@Model.Edit" />
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.Title" class="control-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerTitle" asp-for="Partner.Title" class="form-control" />
|
||||
<span asp-validation-for="Partner.Title" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.IdCountryFk" class="form-label"></label>
|
||||
<select id="selModalAddEditCodeTablePartnerCountry" asp-for="Partner.IdCountryFk" class="form-control select2-partner-add-edit" asp-items="@Model.Countries"></select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.City" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerCity" asp-for="Partner.City" class="form-control" />
|
||||
<span asp-validation-for="Partner.City" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.Street" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerStreet" asp-for="Partner.Street" class="form-control" />
|
||||
<span asp-validation-for="Partner.Street" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.HouseNumber" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerHouseNumber" asp-for="Partner.HouseNumber" class="form-control" />
|
||||
<span asp-validation-for="Partner.HouseNumber" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.PostNumber" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerPostNumber" asp-for="Partner.PostNumber" class="form-control" />
|
||||
<span asp-validation-for="Partner.PostNumber" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.Post" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerPost" asp-for="Partner.Post" class="form-control" />
|
||||
<span asp-validation-for="Partner.Post" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.TaxNumber" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerTaxNumber" asp-for="Partner.TaxNumber" class="form-control" />
|
||||
<span asp-validation-for="Partner.TaxNumber" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.RegistrationNumber" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerRegistrationNumber" asp-for="Partner.RegistrationNumber" class="form-control" />
|
||||
<span asp-validation-for="Partner.RegistrationNumber" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label asp-for="Partner.Email" class="form-label"></label>
|
||||
<input id="inpModalAddEditCodeTablePartnerEmail" asp-for="Partner.Email" class="form-control" />
|
||||
<span asp-validation-for="Partner.Email" class="text-danger"></span>
|
||||
</div>
|
||||
<div class="form-group form-check">
|
||||
<label class="form-check-label">
|
||||
<input id="inpModalAddEditCodeTablePartnerBuyer" class="form-check-input" asp-for="Partner.Buyer" /> @Html.DisplayNameFor(model => model.Partner.Buyer)
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group form-check">
|
||||
<label class="form-check-label">
|
||||
<input id="inpModalAddEditCodeTablePartnerSupplier" class="form-check-input" asp-for="Partner.Supplier" /> @Html.DisplayNameFor(model => model.Partner.Supplier)
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group form-check">
|
||||
<label class="form-check-label">
|
||||
<input id="inpModalAddEditCodeTablePartnerActive" class="form-check-input" asp-for="Partner.Active" /> @Html.DisplayNameFor(model => model.Partner.Active)
|
||||
</label>
|
||||
</div>
|
||||
@* @if (Model.Files != null && Model.Files.Count > 0)
|
||||
{
|
||||
<div class="form-group">
|
||||
@foreach (var file in Model.Files)
|
||||
{
|
||||
<div data-idfile="@file.IdFile">
|
||||
<a download href="@Url.Page("/Files/Upload", "DownloadFile", new { idFile = file.IdFile, idReferenceFk = file.IdReferenceFk, fileTypeInt = (int)file.FileType})" class="btn btn-xs icon-btn btn-outline-secondary borderless" data-toggle="tooltip" data-placement="top" title="Prenos" data-state="secondary"><i class="fas fa-download"></i></a>
|
||||
@Html.DisplayFor(modelPartner => file.Title)
|
||||
<a class="btn btn-xs icon-btn btn-outline-danger borderless" data-state="danger" href='javascript:;' onclick="codeTablePartnerDeleteFile(this)"><i class="fas fa-times"></i></a>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}*@
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
@*<a id="btnModalAddEditCodeTablePartnerAddFile" asp-page="/Files/Upload" asp-route-idReferenceFk="@Model.IdCodeTablePartner" asp-route-fileType="@Models.FileType.CodeTablePartner" class="btn btn-primary pull-right">Priloži datoteko</a>*@
|
||||
<button id="btnModalAddEditCodeTablePartnerConfirm" type="button" class="btn btn-primary">Shrani</button>
|
||||
<button id="btnModalAddEditCodeTablePartnerCancel" type="button" class="btn btn-secondary">Prekliči</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -5,6 +5,7 @@
|
||||
ViewData["Title"] = "Partnerji";
|
||||
Layout = "~/Pages/Layouts/_Layout.cshtml";
|
||||
}
|
||||
<link rel="stylesheet" href="~/vendor/libs/select2/select2.css" asp-append-version="true" />
|
||||
|
||||
<h4 class="d-flex justify-content-between align-items-center w-100 font-weight-bold py-1 mb-4">
|
||||
<span>
|
||||
@@ -69,7 +70,7 @@
|
||||
<tbody>
|
||||
@foreach (var item in Model.Partner)
|
||||
{
|
||||
<tr>
|
||||
<tr data-idCodeTablePartner="@item.IdPartner">
|
||||
<td>
|
||||
@Html.DisplayFor(modelItem => item.Title)
|
||||
@if (!item.Active)
|
||||
@@ -91,7 +92,8 @@
|
||||
@Html.DisplayFor(modelItem => item.Email)
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<a class="btn btn-xs icon-btn btn-outline-secondary borderless" asp-page="Edit" asp-route-id="@item.IdPartner" data-toggle="tooltip" data-placement="top" title="Urejanje" data-state="secondary"><i class="fas fa-pencil-alt"></i></a>
|
||||
<a class="btn btn-xs icon-btn btn-outline-secondary borderless" href="javascript:;" onclick="editCodeTablePartner(this);" data-toggle="tooltip" data-placement="top" title="Urejanje" data-state="secondary"><i class="fas fa-pencil-alt"></i></a>
|
||||
<a class="btn btn-xs icon-btn btn-outline-danger borderless" data-state="danger" href='javascript:;' onclick="deleteCodeTablePartner(this)" data-toggle="tooltip" data-placement="top" title="Izbriši"><i class="fas fa-times"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
@@ -99,12 +101,40 @@
|
||||
</table>
|
||||
|
||||
<div class="card-footer py-3 text-right">
|
||||
<a asp-page="Create" class="btn btn-primary">Vnos partnerja</a>
|
||||
<button id="btnSubmit" type="button" class="btn btn-primary" onclick="addNewCodeTablePartner();">Vnos partnerja</button>
|
||||
</div>
|
||||
<div id="divModalCodetablePartnerAddEditPlaceholder"></div>
|
||||
</div>
|
||||
@Html.AntiForgeryToken()
|
||||
|
||||
@section Scripts {
|
||||
<script src="~/vendor/libs/select2/select2.js" asp-append-version="true"></script>
|
||||
<script src="~/js/codeTablePartnerHelper.js?v=1" asp-append-version="true"></script>
|
||||
|
||||
<script>
|
||||
$('[data-toggle="tooltip"]').tooltip({container: 'table'});
|
||||
|
||||
function addNewCodeTablePartner() {
|
||||
codeTablePartnerAddEdit('#divModalCodetablePartnerAddEditPlaceholder', false, null, (idCodeTableItem) => {
|
||||
document.getElementById('btnSubmit').click();
|
||||
});
|
||||
}
|
||||
|
||||
function editCodeTablePartner(element) {
|
||||
let idCodeTablePartner= parseInt($(element).parent().parent().attr('data-idCodeTablePartner'));
|
||||
|
||||
codeTablePartnerAddEdit('#divModalCodetablePartnerAddEditPlaceholder', true, idCodeTablePartner, (idCodeTablePartner) => {
|
||||
document.getElementById('btnSubmit').click();
|
||||
});
|
||||
}
|
||||
|
||||
function deleteCodeTablePartner(element) {
|
||||
let row = $(element).parent().parent();
|
||||
let idCodeTablePartner= parseInt(row.attr('data-idCodeTablePartner'));
|
||||
|
||||
codeTablePartnerDelete(idCodeTablePartner, (idCodeTablePartner) => {
|
||||
row.remove();
|
||||
});
|
||||
}
|
||||
</script>
|
||||
}
|
||||
@@ -11,12 +11,24 @@ using EveryThing.Data;
|
||||
using EveryThing.Models;
|
||||
using EveryThing.Models.CodeTable;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using System.Globalization;
|
||||
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||
|
||||
namespace EveryThing.Pages.CodeTablePartners
|
||||
{
|
||||
[Authorize(Roles = "Administrator,InvoicingUser,ProjecThingUser,TransportThingUser")]
|
||||
public class IndexModel : PageModel
|
||||
{
|
||||
|
||||
public class AddEditCodeTablePartner
|
||||
{
|
||||
public CodeTablePartner Partner { get; set; }
|
||||
public bool Edit { get; set; }
|
||||
public int IdCodeTablePartner { get; set; }
|
||||
public SelectList Countries { get; set; }
|
||||
//public IList<File> Files { get; set; }
|
||||
}
|
||||
|
||||
private readonly EveryThing.Data.ApplicationDbContext _context;
|
||||
private readonly UserManager<IdentityApplicationUser> _userManager;
|
||||
|
||||
@@ -49,5 +61,165 @@ namespace EveryThing.Pages.CodeTablePartners
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public IActionResult OnGetCodeTablePartnerModal(bool edit, int idCodeTablePartner)
|
||||
{
|
||||
//TODO input izbrane
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
|
||||
var countries = new SelectList(_context.CodeTableCountries, "IdCountry", "TranslationSlovenian");
|
||||
CodeTablePartner partner = null;
|
||||
|
||||
if (edit)
|
||||
{
|
||||
partner = _context.CodeTablePartners
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.FirstOrDefault(x => x.IdPartner == idCodeTablePartner);
|
||||
|
||||
//files = _context.Files
|
||||
// .Where(x => x.IdCompanyFk == user.IdCompanyFk
|
||||
// && x.IdReferenceFk == item.IdItem
|
||||
// && x.FileType == FileType.CodeTableItem)
|
||||
// .ToList();
|
||||
}
|
||||
|
||||
if (partner == null)
|
||||
{
|
||||
var sloCountry = _context.CodeTableCountries.FirstOrDefault(x => x.Code == "SI");
|
||||
partner = new CodeTablePartner();
|
||||
if (sloCountry != null)
|
||||
partner.IdCountryFk = sloCountry.IdCountry;
|
||||
partner.Active = true;
|
||||
//TODO kljukice
|
||||
//partner.CodeTableItemType = (CodeTableItemType)codeTableItemType;
|
||||
}
|
||||
|
||||
return Partial("AddEditPartnerModal", new AddEditCodeTablePartner
|
||||
{
|
||||
Partner = partner,
|
||||
Edit = edit,
|
||||
IdCodeTablePartner = idCodeTablePartner,
|
||||
Countries = countries
|
||||
//Files = files,
|
||||
});
|
||||
}
|
||||
|
||||
public IActionResult OnPostCodeTablePartner(bool edit, CodeTablePartner partnerData)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
var successful = true;
|
||||
var error = "";
|
||||
|
||||
if (edit)
|
||||
{
|
||||
var partner = _context.CodeTablePartners
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.FirstOrDefault(x => x.IdPartner == partnerData.IdPartner);
|
||||
if (partner != null)
|
||||
{
|
||||
partner.Title = partnerData.Title;
|
||||
partner.IdCountryFk = partnerData.IdCountryFk;
|
||||
partner.City = partnerData.City;
|
||||
partner.PostNumber = partnerData.PostNumber;
|
||||
partner.Post = partnerData.Post;
|
||||
partner.Street = partnerData.Street;
|
||||
partner.TaxNumber = partnerData.TaxNumber;
|
||||
partner.RegistrationNumber = partnerData.RegistrationNumber;
|
||||
partner.Buyer = partnerData.Buyer;
|
||||
partner.Supplier = partnerData.Supplier;
|
||||
partner.Active = partnerData.Active;
|
||||
partner.Email = partnerData.Email;
|
||||
_context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
successful = false;
|
||||
error = $"Codetable partner with ID: {partnerData.IdPartner} not found";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var partner = new CodeTablePartner
|
||||
{
|
||||
Title = partnerData.Title,
|
||||
IdCountryFk = partnerData.IdCountryFk,
|
||||
City = partnerData.City,
|
||||
PostNumber = partnerData.PostNumber,
|
||||
Post = partnerData.Post,
|
||||
Street = partnerData.Street,
|
||||
Buyer = partnerData.Buyer,
|
||||
Supplier = partnerData.Supplier,
|
||||
Active = partnerData.Active,
|
||||
TaxNumber = partnerData.TaxNumber,
|
||||
RegistrationNumber = partnerData.RegistrationNumber,
|
||||
Email = partnerData.Email
|
||||
};
|
||||
_context.CodeTablePartners.Add(partner);
|
||||
_context.SaveChanges();
|
||||
|
||||
partnerData.IdPartner = partner.IdPartner;
|
||||
}
|
||||
|
||||
return new JsonResult(new { idCodeTablePartner = partnerData.IdPartner, error = error, successful = successful });
|
||||
}
|
||||
|
||||
public IActionResult OnDeleteCodeTableItem(int idCodeTablePartner)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
var successful = true;
|
||||
var error = "";
|
||||
|
||||
var partner = _context.CodeTablePartners
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.FirstOrDefault(x => x.IdPartner == idCodeTablePartner);
|
||||
if (partner != null)
|
||||
{
|
||||
_context.CodeTablePartners.Remove(partner);
|
||||
_context.SaveChanges();
|
||||
}
|
||||
else
|
||||
{
|
||||
successful = false;
|
||||
error = $"Codetable partner with ID: {idCodeTablePartner} not found";
|
||||
}
|
||||
|
||||
return new JsonResult(new { idCodeTableItem = idCodeTablePartner, error = error, successful = successful });
|
||||
}
|
||||
|
||||
public IActionResult OnGetCodeTablePartner(int idCodeTablePartner)
|
||||
{
|
||||
var user = _userManager.GetUserAsync(User).Result;
|
||||
|
||||
var successful = true;
|
||||
var error = "";
|
||||
var partnerInUse = false;
|
||||
|
||||
var partner = _context.CodeTablePartners
|
||||
.Where(x => x.IdCompanyFk == user.IdCompanyFk)
|
||||
.Include(x => x.PartnerTransportLoadingOrder)
|
||||
.Include(x => x.PartnerTransportLoadingOrderLoad)
|
||||
.Include(x => x.PartnerTransportLoadingOrderUnload)
|
||||
.Include(x => x.Invoice)
|
||||
.FirstOrDefault(x => x.IdPartner == idCodeTablePartner);
|
||||
|
||||
if (partner == null)
|
||||
{
|
||||
successful = false;
|
||||
error = $"Codetable partner with ID: {idCodeTablePartner} not found";
|
||||
}
|
||||
else
|
||||
{
|
||||
partnerInUse = partner.PartnerTransportLoadingOrder.Count > 0
|
||||
|| partner.PartnerTransportLoadingOrderLoad.Count > 0
|
||||
|| partner.PartnerTransportLoadingOrderUnload.Count > 0
|
||||
|| partner.Invoice.Count > 0;
|
||||
partner.PartnerTransportLoadingOrder = null;
|
||||
partner.PartnerTransportLoadingOrderLoad = null;
|
||||
partner.PartnerTransportLoadingOrderUnload = null;
|
||||
partner.Invoice = null;
|
||||
}
|
||||
|
||||
return new JsonResult(new { partner, error, successful, partnerInUse });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user