partnerji na modal

This commit is contained in:
David Štaleker
2023-07-03 16:23:10 +02:00
parent c23c81e288
commit 7e7fecc59f
9 changed files with 603 additions and 22 deletions

View File

@@ -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 });
}
}
}