2025-11-15 11:14:31 +00:00
|
|
|
@using OSS.Models
|
|
|
|
|
@model OSS.Models.GetBillViewModel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@{
|
|
|
|
|
/**/
|
|
|
|
|
|
|
|
|
|
Layout = "~/Views/Shared/_Layout.cshtml";
|
2025-11-18 22:13:59 +00:00
|
|
|
|
|
|
|
|
bool hideInvoiceGrid = false;
|
|
|
|
|
if (ViewBag.HideInvoiceGrid != null)
|
|
|
|
|
{
|
|
|
|
|
bool.TryParse(ViewBag.HideInvoiceGrid.ToString(), out hideInvoiceGrid);
|
|
|
|
|
}
|
2025-11-15 11:14:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
<link href="~/Content/assets/css/tables/table-basic.css" rel="stylesheet" type="text/css" />
|
|
|
|
|
<link href="~/Content/assets/css/components/tabs-accordian/custom-tabs.css" rel="stylesheet" type="text/css" />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="col-lg-12 layout-spacing">
|
|
|
|
|
<div class="statbox widget box box-shadow">
|
|
|
|
|
<div class="widget-header">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-md-12 col-sm-12 col-12">
|
|
|
|
|
<br />
|
|
|
|
|
<h5 class="text-primary"> COMPANY <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>Attachments </h5>
|
|
|
|
|
<hr />
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="widget-content widget-content-area border-top-tab">
|
|
|
|
|
|
|
|
|
|
<div class="tab-content">
|
|
|
|
|
<div class="tab-pane fade show active" id="border-top-home" role="tabpanel" aria-labelledby="border-top-home-tab">
|
|
|
|
|
@using (Html.BeginForm("ProceControlNumber", "NewCOI", FormMethod.Post, new { id = "social", @novalidate = "novalidate", @class = "needs-validation text-left section social", enctype = "multipart/form-data" }))
|
|
|
|
|
{@Html.AntiForgeryToken()
|
|
|
|
|
<div class="table-responsive mb-4 mt-4">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h4 class="text-primary"> Payment details for your application</h4>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
|
|
<div class="col-md-12">
|
|
|
|
|
<div class="col-md-4">
|
2025-11-24 04:05:25 +00:00
|
|
|
@if (Session["ProjectCode"] != null)
|
|
|
|
|
{
|
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="56" height="56" viewBox="0 0 24 24" fill="none" stroke="#417505" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 6 2 18 2 18 9"></polyline><path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"></path><rect x="6" y="14" width="12" height="8"></rect></svg> <a class="btn btn-default btn-lg mt-2 " href="@Url.Action("Regenerate", "NewCOI", new { Id = Session["ProjectCode"] })" target="_blank">Print invoice </a>
|
|
|
|
|
}
|
2025-11-15 11:14:31 +00:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<hr />
|
|
|
|
|
<br />
|
|
|
|
|
|
|
|
|
|
<div class="col-md-11 mx-auto">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-md-3">
|
|
|
|
|
<label for="validationCustom05" class="text-black">Application No</label>
|
2025-11-16 13:09:03 +00:00
|
|
|
<font class="form-control"> @(Session["ProjectCode"] as string ?? "")</font>
|
2025-11-15 11:14:31 +00:00
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-6">
|
|
|
|
|
<label for="validationCustom05" class="text-black"> Service Name</label>
|
|
|
|
|
|
|
|
|
|
<font class="form-control"> Application for New Certificate</font>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="col-md-3">
|
2025-11-16 13:09:03 +00:00
|
|
|
<label for="validationCustom05" class="text-black">Total Amount in @(Session["Currency"] as string ?? "")</label>
|
|
|
|
|
<font class="form-control"> @(Session["Amount"] as string ?? "")</font>
|
2025-11-15 11:14:31 +00:00
|
|
|
</div>
|
|
|
|
|
<div class="col-md-12 ">
|
|
|
|
|
<label for="validationCustom05" class="text-black">Amount in words</label>
|
2025-11-16 13:09:03 +00:00
|
|
|
<font class="form-control"> @(Session["AmountinWords"] as string ?? "")</font>
|
2025-11-15 11:14:31 +00:00
|
|
|
</div>
|
|
|
|
|
<div class="col-md-4 ">
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<br /><br />
|
2025-11-18 22:13:59 +00:00
|
|
|
@if (!hideInvoiceGrid)
|
|
|
|
|
{
|
|
|
|
|
<h6 class="text-primary"> Invoice Details</h6>
|
|
|
|
|
@(Html.DevExtreme().DataGrid<OSS.Models.ApplicationManager>()
|
2025-11-16 13:09:03 +00:00
|
|
|
.ID("invoiceGrid")
|
2025-11-15 11:14:31 +00:00
|
|
|
.DataSource(ds => ds.WebApi()
|
|
|
|
|
.RouteName("CompanyProfile")
|
|
|
|
|
.LoadAction("GetInvoiceByUser")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.Key("ApplicationID")
|
|
|
|
|
//.InsertAction("Post")
|
2025-11-16 13:09:03 +00:00
|
|
|
.LoadParams(new { ProjectCode = (Session["ProjectCode"] as string ?? string.Empty) })
|
2025-11-15 11:14:31 +00:00
|
|
|
)
|
|
|
|
|
.RemoteOperations(true)
|
|
|
|
|
.AllowColumnResizing(true)
|
|
|
|
|
.ShowRowLines(true)
|
|
|
|
|
|
|
|
|
|
.Columns(columns =>
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
columns.AddFor(m => m.ProjectName).Visible(true).SortOrder(SortOrder.Desc);
|
|
|
|
|
columns.AddFor(m => m.Amount).Visible(true).AllowEditing(false);
|
|
|
|
|
columns.AddFor(m => m.ControlNo).Visible(true).AllowEditing(false);
|
|
|
|
|
columns.AddFor(m => m.CreatedDate).Visible(true).SortOrder(SortOrder.Desc);
|
|
|
|
|
columns.AddFor(m => m.CompanyEmail).Caption("Company Email").Visible(true).AllowEditing(false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}).SearchPanel(f => f.Visible(true)
|
|
|
|
|
.SearchVisibleColumnsOnly(true)
|
|
|
|
|
.HighlightSearchText(true)
|
|
|
|
|
).Paging(p => p.PageSize(10))
|
|
|
|
|
.HeaderFilter(f => f.Visible(false))
|
|
|
|
|
.SearchPanel(t => t.SearchVisibleColumnsOnly(true).Visible(true))
|
|
|
|
|
.Editing(e => e
|
|
|
|
|
.AllowAdding(false)
|
|
|
|
|
.AllowDeleting(false)
|
|
|
|
|
|
|
|
|
|
.AllowAdding(false).Mode(GridEditMode.Popup)
|
|
|
|
|
.Popup(p => p
|
|
|
|
|
.Title("Company Profile")
|
|
|
|
|
.ShowTitle(true)
|
|
|
|
|
.Width(800)
|
|
|
|
|
.Height(300)
|
|
|
|
|
|
|
|
|
|
.Position(pos => pos
|
|
|
|
|
.My(HorizontalAlignment.Center, VerticalAlignment.Center)
|
|
|
|
|
.At(HorizontalAlignment.Center, VerticalAlignment.Center)
|
|
|
|
|
.Of(new JS("window"))
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
.UseIcons(true)
|
|
|
|
|
.Form(f => f
|
|
|
|
|
.ID("GetControlNo")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
2025-11-18 22:13:59 +00:00
|
|
|
}
|
2025-11-15 11:14:31 +00:00
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="row">
|
|
|
|
|
|
|
|
|
|
<div class="col-md-4 ">
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-4 ">
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col-md-4">
|
|
|
|
|
<label for="validationCustom05" class="text-black"></label>
|
|
|
|
|
<button class="btn btn-primary btn-lg mt-2 text-center ">Generate Control Number</button>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<br />
|
|
|
|
|
}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
2025-11-16 13:09:03 +00:00
|
|
|
@{
|
|
|
|
|
var additionalProjectCode = Session["ProjectCode"] as string;
|
|
|
|
|
}
|
|
|
|
|
@{
|
|
|
|
|
bool hideAdditionalBtn = false;
|
|
|
|
|
if (ViewBag.HideAdditionalButton != null)
|
|
|
|
|
{
|
|
|
|
|
bool.TryParse(ViewBag.HideAdditionalButton.ToString(), out hideAdditionalBtn);
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-11-18 01:44:10 +00:00
|
|
|
|
2025-11-16 13:09:03 +00:00
|
|
|
|
2025-11-18 22:13:59 +00:00
|
|
|
@if (TempData["HidePaidInvoices"] != null && !hideInvoiceGrid)
|
2025-11-16 13:09:03 +00:00
|
|
|
{
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
$(function () {
|
|
|
|
|
var grid = $("#invoiceGrid").dxDataGrid("instance");
|
|
|
|
|
if (grid) {
|
|
|
|
|
grid.filter(["PaymentStatus", "<>", "Paid"]);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-18 22:13:59 +00:00
|
|
|
@if (TempData["AdditionalContext"] != null && !hideInvoiceGrid)
|
2025-11-16 13:09:03 +00:00
|
|
|
{
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
$(function () {
|
|
|
|
|
var grid = $("#invoiceGrid").dxDataGrid("instance");
|
|
|
|
|
if (grid) {
|
|
|
|
|
// Sort newest first
|
|
|
|
|
grid.clearSorting();
|
|
|
|
|
grid.columnOption("CreatedDate", "sortOrder", "desc");
|
|
|
|
|
|
|
|
|
|
// Filter to latest Additional_Amount for current project
|
|
|
|
|
var proj = @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Session["ProjectCode"] as string ?? ""));
|
|
|
|
|
grid.filter([
|
|
|
|
|
["ServiceName", "=", "Additional_Amount"],
|
|
|
|
|
"and",
|
|
|
|
|
["ProjectCode", "=", proj]
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
// Only one (latest) row
|
|
|
|
|
grid.option("paging.pageSize", 1);
|
|
|
|
|
grid.refresh();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-15 11:14:31 +00:00
|
|
|
</div>
|
|
|
|
|
<div class="tab-content">
|
|
|
|
|
<div class="statbox widget box box-shadow">
|
|
|
|
|
<div class="widget-header">
|
|
|
|
|
<div class="row">
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|