ogled ponudb

This commit is contained in:
2026-01-25 20:26:13 +01:00
parent 30f87f26da
commit 8b9c1a2471
4 changed files with 308 additions and 125 deletions

View File

@@ -170,65 +170,68 @@
</ul>
<div class="tab-content">
<div class="tab-pane tab-panel-invoices fade show active" id="invoice-orders">
<table class="table">
<div class="card-body" style="padding: 0.5rem">
<table class="table">
<thead>
<tr>
<th>
#
</th>
<th>
Dobavitelj
</th>
<th>
Datum
</th>
<th>
Dobavni rok
</th>
<th>
Status
</th>
<th><a href="Javascript:;" class="btn btn-sm btn-primary" onclick="showAllInvoices();">Pokaži vse</a></th>
</tr>
<tr>
<th>
#
</th>
<th>
Dobavitelj
</th>
<th>
Datum
</th>
<th>
Dobavni rok
</th>
<th>
Status
</th>
<th><a href="Javascript:;" class="btn btn-sm btn-primary" onclick="showAllInvoices();">Pokaži vse</a></th>
</tr>
</thead>
<tbody>
@foreach (var invoice in Model.Invoices.Where(x => x.Type == Models.Invoice.Invoice.InvoiceType.Order))
{
<tr class="invoice-row" data-idparts="@string.Join(",", invoice.InvoiceInvoiceItem.Select(x => x.ProjectPartItem.IdProjectPartFk))">
<td>
@Html.DisplayFor(modelItem => invoice.InvoiceYear) - @Html.DisplayFor(modelItem => invoice.InvoiceNumber)
</td>
<td>
@Html.DisplayFor(x => invoice.Partner.Title)
</td>
<td>
@Html.DisplayFor(x => invoice.Date)
</td>
<td>
@Html.DisplayFor(x => invoice.DateOfDispatch)
</td>
<td>
@switch (invoice.State)
{
case Models.Invoice.Invoice.InvoiceState.Closed:
<span class='badge badge-success'>@Html.DisplayFor(modelItem => invoice.State)</span>
break;
case Models.Invoice.Invoice.InvoiceState.Confirmed:
<span class='badge badge-warning'>@Html.DisplayFor(modelItem => invoice.State)</span>
break;
default:
<span class='badge badge-info'>@Html.DisplayFor(modelItem => invoice.State)</span>
break;
}
</td>
<td class="text-right">
<a class="btn btn-xs icon-btn btn-outline-primary borderless" asp-page="/Invoices/Print" asp-route-id="@invoice.IdInvoice" 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="/Invoices/Edit" asp-route-id="@invoice.IdInvoice" data-toggle="tooltip" data-placement="top" title="Urejanje" data-state="secondary"><i class="fas fa-pencil-alt"></i></a>
</td>
</tr>
}
@foreach (var invoice in Model.Invoices.Where(x => x.Type == Models.Invoice.Invoice.InvoiceType.Order))
{
<tr class="invoice-row" data-idparts="@string.Join(",", invoice.InvoiceInvoiceItem?.Select(x => x.ProjectPartItem.IdProjectPartFk) ?? Array.Empty<int>())">
<td>
@Html.DisplayFor(modelItem => invoice.InvoiceYear) - @Html.DisplayFor(modelItem => invoice.InvoiceNumber)
</td>
<td>
@Html.DisplayFor(x => invoice.Partner.Title)
</td>
<td>
@Html.DisplayFor(x => invoice.Date)
</td>
<td>
@Html.DisplayFor(x => invoice.DateOfDispatch)
</td>
<td>
@switch (invoice.State)
{
case Models.Invoice.Invoice.InvoiceState.Closed:
<span class='badge badge-success'>@Html.DisplayFor(modelItem => invoice.State)</span>
break;
case Models.Invoice.Invoice.InvoiceState.Confirmed:
<span class='badge badge-warning'>@Html.DisplayFor(modelItem => invoice.State)</span>
break;
default:
<span class='badge badge-info'>@Html.DisplayFor(modelItem => invoice.State)</span>
break;
}
</td>
<td class="text-right">
<a class="btn btn-xs icon-btn btn-outline-primary borderless" asp-page="/Invoices/Print" asp-route-id="@invoice.IdInvoice" 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="/Invoices/Edit" asp-route-id="@invoice.IdInvoice" data-toggle="tooltip" data-placement="top" title="Urejanje" data-state="secondary"><i class="fas fa-pencil-alt"></i></a>
</td>
</tr>
}
</tbody>
</table>
</div>
</div>
<div class="tab-pane tab-panel-invoices fade show" id="invoice-delivery-notes">
<div class="card-body" style="padding: 0.5rem">
@@ -258,7 +261,7 @@
<tbody>
@foreach (var invoice in Model.Invoices.Where(x => x.Type == Models.Invoice.Invoice.InvoiceType.DeliveryNote))
{
<tr class="invoice-row" data-idinvoice="@invoice.IdInvoice" data-idparts="@string.Join(",", invoice.InvoiceInvoiceItem.Select(x => x.ProjectPartItem.IdProjectPartFk))">
<tr class="invoice-row" data-idinvoice="@invoice.IdInvoice" data-idparts="@string.Join(",", invoice.InvoiceInvoiceItem?.Select(x => x.ProjectPartItem.IdProjectPartFk) ?? Array.Empty<int>())">
<td style="width: 20px;">
@if (invoice.State == Invoice.InvoiceState.Confirmed)
{
@@ -328,7 +331,7 @@
<tbody>
@foreach (var invoice in Model.Invoices.Where(x => x.Type == Models.Invoice.Invoice.InvoiceType.Invoice))
{
<tr class="invoice-row" data-idinvoice="@invoice.IdInvoice" data-idparts="@string.Join(",", invoice.InvoiceInvoiceItem.Select(x => x.ProjectPartItem.IdProjectPartFk))">
<tr class="invoice-row" data-idinvoice="@invoice.IdInvoice" data-idparts="@string.Join(",", invoice.InvoiceInvoiceItem?.Select(x => x.ProjectPartItem.IdProjectPartFk) ?? Array.Empty<int>())">
<td>
@Html.DisplayFor(modelItem => invoice.InvoiceYear) - @Html.DisplayFor(modelItem => invoice.InvoiceNumber)
</td>
@@ -370,63 +373,70 @@
<div class="card-body" style="padding: 0.5rem">
<table class="table">
<thead>
<tr>
<th>
#
</th>
<th>
Partner
</th>
<th>
Datum
</th>
<th>
Datum odpreme
</th>
<th>
Status
</th>
<th><a href="Javascript:;" class="btn btn-sm btn-primary" onclick="showAllInvoices();">Pokaži vse</a></th>
</tr>
<tr>
<th>
#
</th>
<th>
Partner
</th>
<th>
Datum
</th>
<th>
Datum odpreme
</th>
<th>
Status
</th>
<th style="text-align: right">
Znesek
</th>
<th style="text-align: right"><a href="Javascript:;" class="btn btn-sm btn-primary" onclick="showAllInvoices();">Pokaži vse</a></th>
</tr>
</thead>
<tbody>
@foreach (var invoice in Model.Invoices.Where(x => x.Type == Invoice.InvoiceType.BuyersOrder))
{
<tr class="invoice-row" data-idparts="@string.Join(",", invoice.InvoiceInvoiceItem.Select(x => x.ProjectPartItem.IdProjectPartFk))">
<td>
@Html.DisplayFor(modelItem => invoice.InvoiceYear) - @Html.DisplayFor(modelItem => invoice.InvoiceNumber)
</td>
<td>
@Html.DisplayFor(x => invoice.Partner.Title)
</td>
<td>
@Html.DisplayFor(x => invoice.Date)
</td>
<td>
@Html.DisplayFor(x => invoice.DateOfDispatch)
</td>
<td>
@switch (invoice.State)
{
case Models.Invoice.Invoice.InvoiceState.Closed:
<span class='badge badge-success'>@Html.DisplayFor(modelItem => invoice.State)</span>
break;
case Models.Invoice.Invoice.InvoiceState.Confirmed:
<span class='badge badge-warning'>@Html.DisplayFor(modelItem => invoice.State)</span>
break;
default:
<span class='badge badge-info'>@Html.DisplayFor(modelItem => invoice.State)</span>
break;
}
</td>
<td class="text-right">
<a class="btn btn-xs icon-btn btn-outline-primary borderless" asp-page="/Invoices/Print" asp-route-id="@invoice.IdInvoice" 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="/Invoices/Edit" asp-route-id="@invoice.IdInvoice" data-toggle="tooltip" data-placement="top" title="Urejanje" data-state="secondary"><i class="fas fa-pencil-alt"></i></a>
</td>
</tr>
}
@foreach (var invoice in Model.Invoices.Where(x => x.Type == Invoice.InvoiceType.BuyersOrder))
{
<tr class="invoice-row" data-idparts="@string.Join(",", invoice.InvoiceInvoiceItem?.Select(x => x.ProjectPartItem?.IdProjectPartFk ?? 0) ?? Array.Empty<int>())">
<td>
@Html.DisplayFor(modelItem => invoice.InvoiceYear) - @Html.DisplayFor(modelItem => invoice.InvoiceNumber)
</td>
<td>
@Html.DisplayFor(x => invoice.Partner.Title)
</td>
<td>
@Html.DisplayFor(x => invoice.Date)
</td>
<td>
@Html.DisplayFor(x => invoice.DateOfDispatch)
</td>
<td>
@switch (invoice.State)
{
case Models.Invoice.Invoice.InvoiceState.Closed:
<span class='badge badge-success'>@Html.DisplayFor(modelItem => invoice.State)</span>
break;
case Models.Invoice.Invoice.InvoiceState.Confirmed:
<span class='badge badge-warning'>@Html.DisplayFor(modelItem => invoice.State)</span>
break;
default:
<span class='badge badge-info'>@Html.DisplayFor(modelItem => invoice.State)</span>
break;
}
</td>
<td style="text-align: right">
@invoice.InvoiceInvoiceItem.Sum(y => y.TotalValue).ToString("#,###,##0.00") €
</td>
<td class="text-right">
<a class="btn btn-xs icon-btn btn-outline-primary borderless" asp-page="/Invoices/Print" asp-route-id="@invoice.IdInvoice" 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="/Invoices/Edit" asp-route-id="@invoice.IdInvoice" data-toggle="tooltip" data-placement="top" title="Urejanje" data-state="secondary"><i class="fas fa-pencil-alt"></i></a>
</td>
</tr>
}
</tbody>
</table>
<a href="Javascript:;" class="btn btn-sm btn-success" onclick="openModalCreateLinkToBuyersOrders();">Poveži ponudbo</a>
</div>
</div>
<div class="tab-pane tab-panel-invoices fade show" id="files-project">
@@ -523,7 +533,7 @@
<tbody>
@foreach (var invoice in Model.Invoices.Where(x => x.Type == Invoice.InvoiceType.Cooperation))
{
<tr class="invoice-row" data-idparts="@string.Join(",", invoice.InvoiceInvoiceItem.Select(x => x.ProjectPartItem.IdProjectPartFk))">
<tr class="invoice-row" data-idparts="@string.Join(",", invoice.InvoiceInvoiceItem?.Select(x => x.ProjectPartItem.IdProjectPartFk) ?? Array.Empty<int>())">
<td>
@Html.DisplayFor(modelItem => invoice.InvoiceYear) - @Html.DisplayFor(modelItem => invoice.InvoiceNumber)
</td>
@@ -745,6 +755,8 @@
</div>
@Html.AntiForgeryToken()
<div id="divModalCodetableItemAddEditPlaceholder"></div>
<div id="divModalLinkToBuyersOrderPlaceholder"></div>
</form>
@section Scripts {
@@ -1535,5 +1547,98 @@
});
}
function openModalCreateLinkToOrders(){
$.blockUI();
$.ajax({
type: "GET",
url: "/Invoices/Index/?handler=Excel",
data: {
idInvoice
},
success: function (data) {
$.unblockUI();
if (data.successful) {
} else {
console.log(data);
Swal.fire('Napaka pri pridobivanju ponudb',
data.error,
'error');
}
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(xhr);
alert(xhr.responseText);
$.unblockUI();
}
});
}
</script>
<script>
function openModalCreateLinkToBuyersOrders(){
idProject = @Model.Project.IdProject;
$.blockUI();
$.ajax({
type: "GET",
// beforeSend: function(xhr) {
// xhr.setRequestHeader("XSRF-TOKEN",
// $('input:hidden[name="__RequestVerificationToken"]').val());
// },
url: "Edit/?handler=LinkToProjectData",
data: { idProject: idProject},
success: function(data) {
$.unblockUI();
$('#divModalLinkToBuyersOrderPlaceholder').html(data);
$("#divModalLinkToBuyersOrder").modal('show');
$('#selModalLinkToOrderIdProjectOrder').select2({
dropdownParent: $('#divModalLinkToBuyersOrder')
});
$('#btnModalLinkToOrderConfirm').off();
$('#btnModalLinkToOrderCancel').off();
$('#btnModalLinkToOrderCancel').on('click', function (){
$("#divModalLinkToBuyersOrder").modal('hide');
});
$('#btnModalLinkToOrderConfirm').on('click', function (){
let idOrder = parseInt($('#selModalLinkToOrderIdProjectOrder').val());
$.blockUI();
$.ajax({
type: "POST",
beforeSend: function(xhr) {
xhr.setRequestHeader("XSRF-TOKEN",
$('input:hidden[name="__RequestVerificationToken"]').val());
},
url: "Edit/?handler=LinkProjectToBuyerOrder",
data: { idProject: idProject, idOrder: idOrder },
success: function(data) {
if (data.successful) {
location.reload();
} else {
Swal.fire(data.error,'error', 'error');
}
},
error: function(xhr, ajaxOptions, thrownError) {
alert(xhr.responseText);
$.unblockUI();
}
});
$("#divModalLinkToBuyersOrder").modal('hide');
});
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.responseText);
$.unblockUI();
}
});
}
</script>
}