+
+
+
+
+
@@ -89,12 +94,8 @@
@@ -321,15 +322,39 @@
$(document).ready(function () {
$('.select2').select2();
+ $('.select2-vehicle').select2({
+ allowClear: true,
+ placeholder: "Izberi vozilo"
+ }).on('change', function() {
+ if ($(".select2-vehicle").val() !== '') {
+ $('.vehicle-text').val('');
+ }
+ });
+
+ if ($('.select2-vehicle').val() === '') {
+ $('.select2-vehicle').val(null);
+ }
editorPreText = new Quill('#editor-pretext', { modules: { toolbar: [['bold', 'italic', 'underline'], ['color'], [{ 'list': 'ordered' }, { 'list': 'bullet' }], ['align'], ['clean']] }, theme: 'snow' });
editorPostText = new Quill('#editor-posttext', { modules: { toolbar: [['bold', 'italic', 'underline'], ['color'], [{ 'list': 'ordered' }, { 'list': 'bullet' }], ['align'], ['clean']] }, theme: 'snow' });
editorCargoDescription = new Quill('#editor-cargodescription', { modules: { toolbar: [['bold', 'italic', 'underline'], ['color'], [{ 'list': 'ordered' }, { 'list': 'bullet' }], ['align'], ['clean']] }, theme: 'snow' });
loadPosition();
});
+ function beforeOrderPost() {
+ if ($('.select2-vehicle').val() === '') {
+ $('.select2-vehicle').val(null);
+ }
+ handleEditors();
+ }
+
orderPostCompleted = function (xhr) {
laddaSaveOrder.stop();
- location.replace('AddEdit?Id=' + xhr.responseJSON.id);
+ if (xhr.responseJSON.successful) {
+ location.replace('AddEdit?Id=' + xhr.responseJSON.id);
+ } else {
+ alert(xhr.responseJSON.error);
+ }
+
};
}
\ No newline at end of file
diff --git a/EveryThing/Pages/TransportLoadingOrder/AddEdit.cshtml.cs b/EveryThing/Pages/TransportLoadingOrder/AddEdit.cshtml.cs
index 8d4e46b..9b55807 100644
--- a/EveryThing/Pages/TransportLoadingOrder/AddEdit.cshtml.cs
+++ b/EveryThing/Pages/TransportLoadingOrder/AddEdit.cshtml.cs
@@ -15,6 +15,7 @@ using EveryThing.Models;
using EveryThing.Models.Transport;
using DocumentFormat.OpenXml.Spreadsheet;
using EveryThing.Models.CodeTable;
+using NuGet.Packaging;
namespace EveryThing.Pages.TransportLoadingOrder
{
@@ -36,12 +37,15 @@ namespace EveryThing.Pages.TransportLoadingOrder
[BindProperty]
public TransportLoadingOrderLoadUnload TransportLoadingOrderLoadUnload { get; set; }
+ [BindProperty]
+ public List
Vehicles { get; set; }
+
public async Task OnGetAsync(int? id)
{
var user = _userManager.GetUserAsync(User).Result;
ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
- ViewData["IdVehicleFk"] = new SelectList(_context.Vehicles.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdVehicle", "RegistrationNumber");
+ SetVehiclesBag(user.IdCompanyFk);
ViewData["IdLoadingFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
ViewData["IdUnloadingFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
ViewData["States"] = new SelectList(Enum.GetValues(typeof(Models.Transport.TransportLoadingOrder.TransportLoadingOrderState))
@@ -85,15 +89,19 @@ namespace EveryThing.Pages.TransportLoadingOrder
public async Task OnPostOrderAsync()
{
- System.Diagnostics.Debug.WriteLine("OnPostOrderAsync");
-
var user = _userManager.GetUserAsync(User).Result;
if (!ModelState.IsValid)
{
- ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
- ViewData["IdVehicleFk"] = new SelectList(_context.Vehicles.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdVehicle", "RegistrationNumber");
- return Page();
+ System.Diagnostics.Debug.WriteLine("OnPostOrderAsync:Invalid");
+ //ViewData["IdPartnerFk"] = new SelectList(_context.CodeTablePartners.Where(x => x.IdCompanyFk == user.IdCompanyFk), "IdPartner", "Title");
+ //SetVehiclesBag(user.IdCompanyFk);
+ return new JsonResult(new { successful = false, error = string.Join(", ", ModelState.Values.Where(x => x.Errors.Any()).Select(x=> string.Join(", ", x.Errors.Select(y => y.ErrorMessage)))) });
+ }
+
+ if (TransportLoadingOrder.IdVehicleFk != null)
+ {
+ TransportLoadingOrder.VehicleText = "";
}
TransportLoadingOrder.PostText = TransportLoadingOrder.PostText.Replace("
", "");
@@ -121,7 +129,7 @@ namespace EveryThing.Pages.TransportLoadingOrder
TransportLoadingOrderLoadUnload = new TransportLoadingOrderLoadUnload();
- return Page();
+ return new JsonResult(new { successful = true, id = TransportLoadingOrder.IdTransportLoadingOrder });
}
// OrderNumber and OrderYear
@@ -136,7 +144,7 @@ namespace EveryThing.Pages.TransportLoadingOrder
await _context.SaveChangesAsync();
- return new JsonResult(new { id = TransportLoadingOrder .IdTransportLoadingOrder});
+ return new JsonResult(new { successful = true, id = TransportLoadingOrder .IdTransportLoadingOrder});
}
public async Task OnPostPositionAddAsync()
@@ -200,5 +208,15 @@ namespace EveryThing.Pages.TransportLoadingOrder
{
return _context.TransportLoadingOrders.Any(e => e.IdTransportLoadingOrder == id);
}
+
+ private void SetVehiclesBag(int idCompany)
+ {
+ Vehicles = new List
+ {
+ 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");
+ }
}
}
diff --git a/EveryThing/wwwroot/js/codeTablePartnerHelper.js b/EveryThing/wwwroot/js/codeTablePartnerHelper.js
new file mode 100644
index 0000000..7ff2793
--- /dev/null
+++ b/EveryThing/wwwroot/js/codeTablePartnerHelper.js
@@ -0,0 +1,214 @@
+//ce jamra da ne najde post je treba dati @Html.AntiForgeryToken() v page
+function codeTablePartnerAddEdit(placeholderSelector, edit, idCodeTablePartner, onAddEdit, onCancel, codeTablePartnerType){
+ if (isNaN(codeTablePartnerType)) {
+ codeTablePartnerType = 0;
+ }
+
+ $.blockUI();
+ $.ajax({
+ type: "GET",
+ // beforeSend: function(xhr) {
+ // xhr.setRequestHeader("XSRF-TOKEN",
+ // $('input:hidden[name="__RequestVerificationToken"]').val());
+ // },
+ url: "/CodeTablePartners/Index/?handler=CodeTablePartnerModal",
+ data: { edit: edit, idCodeTablePartner: edit ? idCodeTablePartner : -1, codeTablePartnerType },
+ success: function(data) {
+ $.unblockUI();
+ $(placeholderSelector).html(data);
+ if (edit){
+ $('#modalAddEditCodeTablePartnerTitle').html(`Urejanje partnerja: ${$('#inpModalAddEditCodeTablePartnerTitle').val()}`);
+ //$('#btnModalAddEditCodeTablePartnerAddFile').css('display', '');
+ $('#btnModalAddEditCodeTablePartnerConfirm').html('Shrani');
+ } else {
+ $('#modalAddEditCodeTablePartnerTitle').html('Dodajanje novega partnerja');
+ //$('#btnModalAddEditCodeTablePartnerAddFile').css('display', 'none');
+ $('#btnModalAddEditCodeTablePartnerConfirm').html('Dodaj');
+ }
+ $('#btnModalAddEditCodeTablePartnerConfirm').off();
+ $('#btnModalAddEditCodeTablePartnerCancel').off();
+
+ //Save to db
+ $('#btnModalAddEditCodeTablePartnerConfirm').on('click', () =>{
+ let title = $('#inpModalAddEditCodeTablePartnerTitle').val();
+ let country = parseInt($('#selModalAddEditCodeTablePartnerCountry').val());
+ let city = $('#inpModalAddEditCodeTablePartnerCity').val();
+ let street = $('#inpModalAddEditCodeTablePartnerStreet').val();
+ let houseNumber = $('#inpModalAddEditCodeTablePartnerHouseNumber').val();
+ let postNumber = $('#inpModalAddEditCodeTablePartnerPostNumber').val();
+ let post = $('#inpModalAddEditCodeTablePartnerPost').val();
+ let taxNumber = $('#inpModalAddEditCodeTablePartnerTaxNumber').val();
+ let registrationNumber = $('#inpModalAddEditCodeTablePartnerRegistrationNumber').val();
+ let email = $('#inpModalAddEditCodeTablePartnerEmail').val();
+
+ let buyer = $('#inpModalAddEditCodeTablePartnerBuyer').is(':checked');
+ let supplier = $('#inpModalAddEditCodeTablePartnerSupplier').is(':checked');
+ let active = $('#inpModalAddEditCodeTablePartnerActive').is(':checked');
+ let edit = $('#inpModalAddEditCodeTablePartnerEdit').val() === 'true';
+ let idCodeTablePartner = parseInt($('#inpModalAddEditCodeTablePartnerIdCodeTablePartner').val());
+
+ if (title === '' || title === null){
+ Swal.fire('Zahtevano polje naziv!');
+ return;
+ }
+
+ // if (description === '' || description === null){
+ // Swal.fire('Zahtevano polje naziv!');
+ // return;
+ // }
+ $.blockUI();
+ $.ajax({
+ type: "POST",
+ beforeSend: function(xhr) {
+ xhr.setRequestHeader("XSRF-TOKEN",
+ $('input:hidden[name="__RequestVerificationToken"]').val());
+ },
+ url: "/CodeTablePartners/Index/?handler=CodeTablePartner",
+ data: {
+ edit,
+ partnerData : {
+ title,
+ IdCountryFk: country,
+ city,
+ street,
+ houseNumber,
+ postNumber,
+ post,
+ taxNumber,
+ registrationNumber,
+ email,
+ buyer,
+ supplier,
+ active,
+ idPartner: idCodeTablePartner
+ }
+ },
+ success: function(data) {
+ $.unblockUI();
+ if (data.successful){
+ $("#divModalAddEditCodeTablePartner").modal('hide');
+ if (onAddEdit != null){
+ onAddEdit(data.idCodeTablePartner);
+ }
+ } else {
+ Swal.fire('Napaka pri dodajanju/posodabljanju',
+ data.error,
+ 'error');
+ }
+
+ },
+ error: function (xhr, ajaxOptions, thrownError) {
+ console.log(xhr);
+ alert(xhr.responseText);
+ $.unblockUI();
+ }
+ });
+ });
+
+ //Cancel
+ $('#btnModalAddEditCodeTablePartnerCancel').on('click', () =>{
+ $("#divModalAddEditCodeTablePartner").modal('hide');
+ if (onCancel != null){
+ onCancel();
+ }
+ });
+
+ $("#divModalAddEditCodeTablePartner").modal('show');
+
+ $('.select2-partner-add-edit').select2({
+ dropdownParent: $("#divModalAddEditCodeTablePartner")
+ });
+ },
+ error: function (xhr, ajaxOptions, thrownError) {
+ alert(xhr.responseText);
+ $.unblockUI();
+ }
+ });
+}
+
+function codeTablePartnerDelete(idCodeTablePartner, onDelete, onCancel){
+ $.blockUI();
+ $.ajax({
+ type: "GET",
+ url: "/CodeTablePartners/Index/?handler=CodeTablePartner",
+ data: {
+ idCodeTablePartner
+ },
+ success: function(data) {
+ $.unblockUI();
+ if (data.successful){
+ if (data.partnerInUse){
+ Swal.fire('Partner je v uporabi!',
+ 'Brisanje ni možno!',
+ 'warning');
+ return;
+ }
+ Swal.fire({
+ title: `Izbrišem partnerja ${data.partner.title}?`,
+ text: "Tega dejanja ni možno razveljaviti!",
+ icon: 'warning',
+ showCancelButton: true,
+ confirmButtonColor: '#3085d6',
+ cancelButtonColor: '#d33',
+ confirmButtonText: 'Da, izbriši!',
+ cancelButtonText: 'Prekliči!'
+ }).then((result) => {
+ if (result.isConfirmed) {
+ $.blockUI();
+ $.ajax({
+ type: "DELETE",
+ beforeSend: function(xhr) {
+ xhr.setRequestHeader("XSRF-TOKEN",
+ $('input:hidden[name="__RequestVerificationToken"]').val());
+ },
+ url: "/CodeTablePartners/Index/?handler=CodeTablePartner",
+ data: {
+ idCodeTablePartner
+ },
+ success: function(data) {
+ $.unblockUI();
+ if (data.successful){
+ if (onDelete != null){
+ onDelete(data.idCodeTablePartner);
+ }
+ } else {
+ Swal.fire('Napaka pri brisanju partnerja',
+ data.error,
+ 'error');
+ }
+
+ },
+ error: function (xhr, ajaxOptions, thrownError) {
+ console.log(xhr);
+ alert(xhr.responseText);
+ $.unblockUI();
+ }
+ });
+ } else{
+ if (onCancel != null){
+ onCancel();
+ }
+ }
+ });
+ } else {
+ Swal.fire('Napaka pri branju partnerja',
+ data.error,
+ 'error');
+ }
+ },
+ error: function (xhr, ajaxOptions, thrownError) {
+ console.log(xhr);
+ alert(xhr.responseText);
+ $.unblockUI();
+ }
+ });
+}
+
+function codeTablePartnerDeleteFile(element) {
+ let row = $(element).parent();
+ let idFile = parseInt(row.attr('data-idfile'));
+
+ fileDelete(idFile, (idFile) => {
+ row.remove();
+ });
+}
\ No newline at end of file