270 lines
13 KiB
Text
270 lines
13 KiB
Text
@using Kreta.Web.Helpers.Grid
|
|
@using Kreta.Web.Helpers
|
|
@using Kreta.Web.Areas.Tantargy.Models
|
|
@using Kreta.Resources
|
|
|
|
@model TantargyFelosztasFelveteleModel
|
|
|
|
<div class="container-fluid details">
|
|
@{
|
|
using (Html.KretaForm("tantargyFelosztasForm"))
|
|
{
|
|
<div class="row">
|
|
<div class="col-xs-6 col-sm-6">
|
|
@Html.KretaComboBoxFor(x => x.TanarId, Model.TanarList, htmlAttributes: new Dictionary<string, object>() { { "class", "fullwidth" } }, onChangeFunction: "TantargyFelosztasHelper.onDataChange()", isSingleElementSet: !Model.IsFromSzervezet).AutoBind(true).RenderWithName()
|
|
</div>
|
|
</div>
|
|
}
|
|
}
|
|
|
|
@{
|
|
var grid = Html.KretaGrid<TantargyFelosztasFelvetelGridModel>(
|
|
"TantargyFelosztasFelvetelGrid",
|
|
new GridApiUrl(Model.ApiControllerName, "GetTantargyFelosztasokFelvetel", new Dictionary<string, string>() { { "IsFromSzervezet", Model.IsFromSzervezet.ToString() } }),
|
|
allowFilterable: false,
|
|
dataBoundAdditionalFunction: "FelosztasFelvetelHelper.disableTantargyColumn();",
|
|
useToolBar: false
|
|
).TableHtmlAttributes(new {@class = "tableLayoutFixed"});
|
|
grid.ConditionColumn(OsztalyCsoportResource.OsztalyCsoport, m => m.Valid,
|
|
"<span style = \"float: right;\"> #: OsztalyCsoport # </span>", grid.GroupedComboBoxForColumnTemplate(Html, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = "ComboBoxHelperApi", action = "GetOsztalyCsoportListByEvfolyam", isDualisKepzohelyiCsoport = Model.IsFromSzervezet }), m => m.OsztalyCsoport, changeEvent: Model.IsFromSzervezet ? "FelosztasFelvetelHelper.osztalyCsoportChanged" : string.Empty));
|
|
grid.ConditionColumn(TantargyResource.Tantargy, m => m.Valid,
|
|
"<span style = \"float: right;\"> #: Tantargy # </span>", grid.ComboBoxForColumnTemplate(Html, Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new { controller = Model.ApiControllerName, action = "GetTantargyakDD" }), m => m.Tantargy));
|
|
|
|
if (!Model.IsFromSzervezet)
|
|
{
|
|
grid.ConditionColumn(OrarendResource.Oraszam, m => m.Valid,
|
|
"<span style = \"float: right;\"> #: Oraszam # </span>", grid.NumericBoxForColumnTemplate(Html, m => m.Oraszam, max: Kreta.Core.Constants.General.TantargyfelosztasImportMaxOraszam, precision: 2, step: 0.25, min: 0), 100);
|
|
grid.ConditionColumn(OrarendResource.Tulora, m => m.Valid,
|
|
"<span style = \"float: right;\"> #: Tuloraszam # </span>", grid.NumericBoxForColumnTemplate(Html, m => m.Tuloraszam, max: Kreta.Core.Constants.General.TantargyfelosztasImportMaxOraszam, precision: 2, step: 0.25, min: 0), 100);
|
|
grid.ConditionColumn(TantargyfelosztasResource.MegbizasiOraszam, m => m.Valid,
|
|
"<span style = \"float: right;\"> #: MegbizasiOraszam # </span>", grid.NumericBoxForColumnTemplate(Html, m => m.MegbizasiOraszam, max: Kreta.Core.Constants.General.TantargyfelosztasImportMaxOraszam, precision: 2, step: 0.25, min: 0), 160);
|
|
grid.ConditionColumn(TantargyResource.Oraszamkorrekcio, m => m.Valid,
|
|
"<span style = \"float: left;\"> #: OsszevontOra_BNAME # </span>", grid.CheckBoxColumnTemplate("OsszevontOra", m => m.OsszevontOra, true), 100);
|
|
grid.ConditionColumn(TantargyResource.NemzetisegiOra, m => m.Valid,
|
|
"<span style = \"float: left;\"> #: NemzetisegiOra_BNAME # </span>", grid.CheckBoxColumnTemplate("NemzetisegiOra", m => m.NemzetisegiOra, true), 140);
|
|
|
|
}
|
|
grid.Sortable(sortable => sortable
|
|
.AllowUnsort(true)
|
|
.SortMode(GridSortMode.MultipleColumn));
|
|
}
|
|
<div class="row">
|
|
<div class="col-xs-12 col-sm-12">
|
|
@(grid)
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
var FelosztasFelvetelHelper = (function() {
|
|
var felosztasFelvetelHelper = function() {}
|
|
|
|
felosztasFelvetelHelper.Savefelosztas = function () {
|
|
|
|
if (checkTanar() && checkdataset()) {
|
|
var modRows = KretaGridHelper.getModifiedRows("TantargyFelosztasFelvetelGrid");
|
|
var felosztasData = [modRows.length];
|
|
|
|
if (!CommonUtils.parseBool("@Model.IsFromSzervezet")) {
|
|
$.each(modRows, function (index, value) {
|
|
felosztasData[index] = {
|
|
CsoportID: value.input[0].value,
|
|
TantargyID: value.input[1].value,
|
|
Oraszam: value.input[2].value.replace(".", ","),
|
|
TuloraSzam: value.input[3].value.replace(".", ","),
|
|
MegbizasiOraszam: value.input[4].value.replace(".", ","),
|
|
OsszevontOra: value.input[5].value,
|
|
NemzetisegiOra: value.input[6].value
|
|
}
|
|
});
|
|
}
|
|
else {
|
|
$.each(modRows, function (index, value) {
|
|
felosztasData[index] = {
|
|
CsoportID: value.input[0].value,
|
|
TantargyID: value.input[1].value,
|
|
}
|
|
});
|
|
}
|
|
AjaxHelper.DoPost(
|
|
"@Url.HttpRouteUrl(Constants.RouteKey.ActionApi, new {controller = Model.ApiControllerName, action = "SaveFelosztas" })",
|
|
{ tanarID: $("#TanarId").val(), tanevId: $("#Tanev").val(), IsFromSzervezet: "@Model.IsFromSzervezet", felosztasok: felosztasData },
|
|
sikeresMentes,
|
|
sikertelenMentes);
|
|
}
|
|
}
|
|
|
|
felosztasFelvetelHelper.ValidateFelosztas = function () {
|
|
|
|
var allRows = KretaGridHelper.getAllRows("TantargyFelosztasFelvetelGrid");
|
|
var modRows = KretaGridHelper.getModifiedRows("TantargyFelosztasFelvetelGrid");
|
|
var vanegyezes = false;
|
|
if (!CommonUtils.parseBool("@Model.IsFromSzervezet")) {
|
|
$.each(modRows, function (index, value) {
|
|
if (!vanegyezes) {
|
|
$.each(allRows, function (i, v) {
|
|
if (!vanegyezes &&
|
|
value.input[0].value == v.OsztalyCsoportID &&
|
|
value.input[1].value == v.TantargyID) {
|
|
vanegyezes = true;
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
else {
|
|
$.each(modRows, function (index, value) {
|
|
if (!vanegyezes) {
|
|
$.each(allRows, function (i, v) {
|
|
if (!vanegyezes &&
|
|
value.input[0].value == v.OsztalyCsoportID &&
|
|
value.input[1].value == v.TantargyID) {
|
|
vanegyezes = true;
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
if (vanegyezes) {
|
|
KretaWindowHelper.confirmWindow("@(CommonResource.Kerdes)",
|
|
"@(TantargyResource.ARogziteniKivantTantargyfelosztasSorokMarFelvitelreKerultSzeretneFrissiteniAJelenlegiTantargyfelosztast)",
|
|
FelosztasFelvetelHelper.Savefelosztas);
|
|
} else {
|
|
FelosztasFelvetelHelper.Savefelosztas();
|
|
}
|
|
}
|
|
|
|
function sikeresMentes() {
|
|
KretaWindowHelper.successFeedBackWindow(closeWindows,
|
|
"@(CommonResource.AMuveletSikeresenMegtortentAModositastKuldjeElAFentartojanak)");
|
|
}
|
|
|
|
function sikertelenMentes(e) {
|
|
var msg = "@ErrorResource.SikertelenMentes";
|
|
if (e.responseJSON.Message && e.responseJSON.Message != "") {
|
|
msg = e.responseJSON.Message;
|
|
}
|
|
KretaWindowHelper.feedbackWindow("@ErrorResource.Hiba", msg, true);
|
|
}
|
|
|
|
function checkdataset() {
|
|
var hasError = false;
|
|
var allRows = KretaGridHelper.getAllRows("TantargyFelosztasFelvetelGrid");
|
|
var missingValue = false;
|
|
var emptyRows = "";
|
|
var isDualisFoglalkozas = CommonUtils.parseBool("@Model.IsFromSzervezet");
|
|
var haveModifiedRows = KretaGridHelper.haveModifiedRows("TantargyFelosztasFelvetelGrid");
|
|
$.each(allRows, function (index, value) {
|
|
if (value.input.length != 0) {
|
|
var thisRowEmpty = false;
|
|
if (isDualisFoglalkozas && $.trim(value.input[0].value) == "" &&
|
|
$.trim(value.input[1].value) == "") {
|
|
thisRowEmpty = true;
|
|
} else if (!isDualisFoglalkozas) {
|
|
if ($.trim(value.input[0].value) == "" &&
|
|
$.trim(value.input[1].value) == "" &&
|
|
$.trim(value.input[2].value) == "") {
|
|
thisRowEmpty = true;
|
|
}
|
|
}
|
|
if (thisRowEmpty == false) {
|
|
var isCurrentRowInvalid = false;
|
|
var widget = $("#TantargyFelosztasFelvetelGrid_OsztalyCsoport_" + value.ID).data("kendoComboBox");
|
|
if (widget.value() == widget.text()) {
|
|
widget.value("");
|
|
value.input[0].value = "";
|
|
}
|
|
if (isDualisFoglalkozas && value.input[0].value == "" ||
|
|
value.input[1].value == "") {
|
|
isCurrentRowInvalid = true;
|
|
}
|
|
else if (!isDualisFoglalkozas) {
|
|
if (value.input[0].value == "" ||
|
|
value.input[1].value == "" ||
|
|
value.input[2].value == "") {
|
|
isCurrentRowInvalid = true;
|
|
} else if (value.input[3].value != "" || value.input[4].value != "") {
|
|
var oraszam = parseFloat(value.input[2].value.replace(",", "."));
|
|
var tulora = 0, megbizasiOraszam = 0;
|
|
|
|
if (value.input[3].value != "") {
|
|
tulora = parseFloat(value.input[3].value.replace(",", "."));
|
|
}
|
|
if (value.input[4].value != "") {
|
|
megbizasiOraszam = parseFloat(value.input[4].value.replace(",", "."));
|
|
}
|
|
|
|
if (oraszam < tulora || oraszam < megbizasiOraszam) {
|
|
isCurrentRowInvalid = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (isCurrentRowInvalid) {
|
|
missingValue = true;
|
|
if (emptyRows == "") {
|
|
emptyRows += (index + 1) + ".";
|
|
} else {
|
|
emptyRows += ", " + (index + 1) + ".";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
|
|
if (!haveModifiedRows) {
|
|
KretaWindowHelper.warningWindow(
|
|
"@(CommonResource.Kotelezo)",
|
|
"@(CommonResource.MenteshezKellLegalabbEgySor)");
|
|
hasError = true;
|
|
} else if (missingValue) {
|
|
KretaWindowHelper.warningWindow(
|
|
"@(CommonResource.Kotelezo)",
|
|
"@(CommonResource.Az)" + emptyRows + "@(TantargyfelosztasResource.TTFFelvitelKotelezoAdat)",
|
|
"undefined",
|
|
"kitoltesKotelezo");
|
|
hasError = true;
|
|
}
|
|
return !hasError;
|
|
}
|
|
|
|
function checkTanar() {
|
|
if ($("#TanarId").val() == "" || $("#Tanev").val() == "") {
|
|
KretaWindowHelper.warningWindow(
|
|
"@(CommonResource.Kotelezo)",
|
|
"@(TantargyfelosztasResource.FelvitelhezTanrKotelezo)",
|
|
"undefined",
|
|
"tanarKotelezo");
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
function closeWindows() {
|
|
KretaGridHelper.refreshGrid("TantargyFelosztasGrid");
|
|
KretaWindowHelper.destroyAllWindow();
|
|
}
|
|
|
|
felosztasFelvetelHelper.osztalyCsoportChanged = function (e) {
|
|
var name = $(e.sender.input)[0].name;
|
|
var tantargyname = name.replace('OsztalyCsoport', 'Tantargy').replace('_input', '');
|
|
var tantargy = $('#' + tantargyname);
|
|
if (e.sender.value() != '' && tantargy.val() == '') {
|
|
tantargy.data('kendoComboBox').value(@Model.DualisKepzesTantargyId);
|
|
}
|
|
}
|
|
|
|
felosztasFelvetelHelper.disableTantargyColumn = function () {
|
|
if (CommonUtils.parseBool("@Model.IsFromSzervezet")) {
|
|
var tantargyakComboDiv = $('[name^="TantargyFelosztasFelvetelGrid_Tantargy"]').parents("div .gridComboBox");
|
|
if (!tantargyakComboDiv.hasClass("disabledItem")) {
|
|
tantargyakComboDiv.addClass("disabledItem");
|
|
}
|
|
}
|
|
}
|
|
|
|
return felosztasFelvetelHelper;
|
|
})();
|
|
</script>
|