C# 我想用另一种方式报告日期

C# 我想用另一种方式报告日期,c#,html,asp.net,asp.net-mvc-5,C#,Html,Asp.net,Asp.net Mvc 5,从这张图片中可以看出,我有一个我没有报告时间的缺失日期列表,当我点击一个我错过的日期时,我的“Rappotera tid”会被填入该日期。 但我想做的是,我想删除我的“数据”,只基于日期之前的复选框,以便在以后的日期可以同时报告多个日期 但是我被卡住了,我想得到一些帮助 这是我的观点: <script type="text/javascript" language="javascript"> $(function() { $(function() {

从这张图片中可以看出,我有一个我没有报告时间的缺失日期列表,当我点击一个我错过的日期时,我的“Rappotera tid”会被填入该日期。

但我想做的是,我想删除我的“数据”,只基于日期之前的复选框,以便在以后的日期可以同时报告多个日期

但是我被卡住了,我想得到一些帮助

这是我的观点:

    <script type="text/javascript" language="javascript">
    $(function() {
        $(function() {
            $('#date').datepicker({
                showButtonPanel: true,
                changeMonth: true,
                changeYear: true,
                dateFormat: "yy-mm-dd",
                firstDay: 1,
                onSelect: function(dateText) {
                    $('#EndDate').datepicker('option', 'minDate', new Date(dateText));
                }
            });
        });
    });

    function SetDate(dt) {
        $('#date').val(dt);
    }

    var n = @(Model.Projects.Count);;

    function AddProject() {
        n++;
        $.ajax({
            type: "GET",
            url: "@Url.Action("Project")/" + n,
            dataType: "html",
            success: function(data) {
                $('#projects').append(data);

            }
        });
    }

    $(function() {
        $('#startTime').change(function() { CalculateTime(); });
        $('#endTime').change(function() { CalculateTime(); });
        $('#breakTime').change(function() { CalculateTime(); });
        CalculateTime();
    });


    function CalculateTime() {
        try {
            var startTime = $('#startTime').val();
            var endTime = $('#endTime').val();
            var breakTime = $('#breakTime').val();

            var startDate = new Date(2000, 1, 1, startTime.substring(0, 2), startTime.substring(3, 5), 0, 0);
            var endDate = new Date(2000, 1, 1, endTime.substring(0, 2), endTime.substring(3, 5), 0, 0);

            var time = endDate - startDate;

            time = time / 1000 / 60 / 60;
            time = time - breakTime.substring(0, 2);
            time = time - (breakTime.substring(3, 5) / 60);
            $('#workedHours').html(time + " timmar");
        } catch (err) {
            $('#workedHours').html("---");
        }
    }
</script>
<div class="page-container">
    <div class="page-content">
        <div class="container">
            <div class="row">
                <div class="col-md-12">
                    @if (ViewData["posted"] != null)
                    {
                        <div class="alert alert-success">
                            <strong>Tidsrapporten tillagd.</strong>
                        </div>
                    }
                    <div class="tabbable tabbable-custom tabbable-noborder tabbable-reversed">
                        <div class="tab-content">
                            <div class="portlet light bordered">
                                <div class="portlet-title">
                                    <div class="caption">
                                        <span class="caption-subject font-green-sharp bold uppercase">missad rappoterad tid</span>
                                    </div>
                                </div>
                                <form class="form-horizontal">
                                    <div class="portlet-body form">
                                        <div class="form-group">
                                            @foreach (var date in ViewBag.MissingDays)
                                            {
                                                var isoDate = date.ToString("yy-MM-dd");
                                                <div class="col-md-1">
                                                    <input type="checkbox" name="Date" value="Date">
                                                    <a href="javascript:SetDate('@isoDate');">@isoDate</a>
                                                </div>
                                            }
                                        </div>
                                    </div>
                                </form>
                            </div>
                        </div>
                    </div>
                </div>

                @Html.ValidationSummary()
                @using (Html.BeginForm("TimeReport", "Reports", FormMethod.Post, new { enctype = "multipart/form-data", @class = "form-horizontal" }))
                {
                    @Html.Hidden("ReportId", Model.ReportId)
                    <div class="col-md-6">
                        <div class="tabbable tabbable-custom tabbable-noborder tabbable-reversed">
                            <div class="tab-content">
                                <div class="portlet light bordered">
                                    <div class="portlet-title">
                                        <div class="caption">
                                            <span class="caption-subject font-green-sharp bold uppercase">Rappotera tid</span>
                                        </div>
                                    </div>
                                    <div class="portlet-body form">
                                        <div class="form-group">
                                            <label class="col-md-3 control-label">Datum:</label>
                                            <div class="col-md-5">
                                                @Html.TextBox("date", Model.Date.ToShortDateString(), new {@class = "form-control"})
                                            </div>
                                        </div>
                                        <div class="form-group">
                                            <label class="col-md-3 control-label">Start tid:</label>
                                            <div class="col-md-5">
                                                @Html.TextBox("startTime", Model.Times.StartTime, new { @class = "form-control timepicker timepicker-24" })
                                            </div>
                                        </div>
                                        <div class="form-group">
                                            <label class="col-md-3 control-label">Slut tid:</label>
                                            <div class="col-md-5">
                                                @Html.TextBox("endTime", Model.Times.EndTime, new { @class = "form-control timepicker timepicker-24" })
                                            </div>
                                        </div>
                                        <div class="form-group">
                                            <label class="col-md-3 control-label">Rast Längd:</label>
                                            <div class="col-md-5">
                                                @Html.TextBox("breakTime", Model.Times.BreakTime, new { @class = "form-control timepicker timepicker-24" })
                                            </div>
                                        </div>
                                        <div class="form-group">
                                            <label class="col-md-3 control-label">Tid jobbad:</label>
                                            <div class="col-md-5">
                                                @Html.TextBox("workedHours", Model.Times.WorkedHours, new { @class = "form-control timepicker timepicker-24" })
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                    <div class="col-md-6">
                        <div id="projects">
                            @foreach (var data in Model.Projects)
                            {
                                Html.RenderPartial("Project", data, ViewData["vd"] as ViewDataDictionary);
                                var viewDataDictionary = ViewData["vd"] as ViewDataDictionary;
                                if (viewDataDictionary != null)
                                {
                                    viewDataDictionary["id"] = (int)viewDataDictionary["id"] + 1;
                                }
                            }
                        </div>
                    </div>
                    <div class="form-actions">
                        <div class="col-md-offset-4 col-asdfasmd-9">
                            <a href="javascript:AddProject()" class="btn btn-primary">Lägg till projekt</a>
                            <button type="submit" class="btn btn-primary">Spara</button>
                        </div>
                    </div>
                    if (Model.ReportId.HasValue)
                    {
                        <input type="submit" value="Ta bort" name="delete" />
                    }
                }
            </div>
        </div>
    </div>
</div>

$(函数(){
$(函数(){
$(“#日期”).datepicker({
showButtonPanel:是的,
变化月:对,
变化年:是的,
日期格式:“年月日”,
第一天:1,
onSelect:函数(日期文本){
$('#EndDate')。日期选择器('option','minDate',新日期(dateText));
}
});
});
});
函数设置日期(dt){
$('日期').val(dt);
}
var n=@(Model.Projects.Count);;
函数AddProject(){
n++;
$.ajax({
键入:“获取”,
url:“@url.Action”(“项目”)/”+n,
数据类型:“html”,
成功:功能(数据){
$(“#项目”)。追加(数据);
}
});
}
$(函数(){
$('#startTime').change(function(){CalculateTime();});
$('#endTime').change(function(){CalculateTime();});
$('#breakTime').change(function(){CalculateTime();});
计算时间();
});
函数计算时间(){
试一试{
var startTime=$('#startTime').val();
var endTime=$('#endTime').val();
var breakTime=$('#breakTime').val();
var startDate=新日期(2000,1,1,startTime.substring(0,2),startTime.substring(3,5),0,0);
var endDate=新日期(2000,1,1,endTime.substring(0,2),endTime.substring(3,5),0,0);
var时间=结束日期-开始日期;
时间=时间/1000/60/60;
时间=时间-中断时间。子字符串(0,2);
时间=时间-(中断时间.子串(3,5)/60);
$('#workedHours').html(time+“timmar”);
}捕捉(错误){
$('#workedHours').html(“--”);
}
}
@如果(ViewData[“posted”]!=null)
{
Tidsrapporten TILAGD.
}
米萨德·拉波特拉德·蒂德
@foreach(视图包中的var日期。丢失天数)
{
var isoDate=日期至字符串(“yy-MM-dd”);
}
@Html.ValidationSummary()
@使用(Html.BeginForm(“TimeReport”、“Reports”、FormMethod.Post、new{enctype=“multipart/formdata”、@class=“form horizontal”}))
{
@Html.Hidden(“ReportId”,Model.ReportId)
雷波特拉tid
资料:
@Html.TextBox(“date”,Model.date.ToShortDateString(),new{@class=“form control”})
开始tid:
@TextBox(“startTime”,Model.Times.startTime,new{@class=“form control timepicker timepicker-24”})
荡妇工贸署:
@TextBox(“endTime”,Model.Times.endTime,new{@class=“form control timepicker timepicker-24”})
拉斯特·隆德:
@TextBox(“breakTime”,Model.Times.breakTime,new{@class=“form control timepicker timepicker-24”})
工业贸易署职位空缺:
@文本框(“工作小时
        public ActionResult TimeReport(FormCollection form, Guid? id)
    {
        ViewDataDictionary vd = new ViewDataDictionary
        {
            ["projects"] = new DatabaseLayer().GetConsultantProjects(Constants.CurrentUser(User.Identity.Name)),
            ["id"] = 1,
            ["showDescription"] = true
        };
        ViewData["vd"] = vd;

        NewTimeReportModel projectData = new NewTimeReportModel();

        if (form != null && form.AllKeys.Contains("delete"))
        {
            new DatabaseLayer().DeleteTimeReport(Guid.Parse(form["ReportId"]));
            LoadDefaultSettings(projectData);
            ViewData.Model = projectData;
            return View();
        }

        if (id.HasValue && (form == null || form.AllKeys.Length == 0))
        {
            using (DatabaseLayer db = new DatabaseLayer())
            {
                var timeReport = db.GetTimeReport(id.Value);
                projectData = new NewTimeReportModel(timeReport);
                if (projectData.Projects.Count == 1)
                    projectData.Projects[0].Hours = null;
            }
        }
        else if (form == null || form.AllKeys.Length == 0)
        {
            LoadDefaultSettings(projectData);
        }
        else
        {
            DateTime reportDate;
            if (!DateTime.TryParse(form["date"], out reportDate))
                ModelState.AddModelError("Date", "Felaktikt datum");

            var projectNumbers = (from x in form.AllKeys
                                  where x.Contains("_")
                                  select x.Substring(x.IndexOf('_'))).Distinct();

            projectData.Times = new TimeReportTimes(form["startTime"], form["endTime"], form["breakTime"], ModelState);
            projectData.Date = reportDate;

            if (!projectNumbers.Any())
                ModelState.AddModelError("Projekt", "Inga projekt valda...");
            else
            {
                int emptyHours = 0;

                foreach (string projectNumber in projectNumbers)
                {

                    projectData.Projects.Add(new NewTimeReportModel.Project
                    {
                        Description = form["description" + projectNumber],
                        Hours = null,
                        ProjectId = Guid.Parse(form["project" + projectNumber])
                    });

                    string hourString = form["hours" + projectNumber];
                    if (string.IsNullOrEmpty(hourString))
                    {
                        emptyHours++;
                        projectData.Projects[projectData.Projects.Count - 1].Hours = projectData.Times.WorkedHours;
                    }
                    else
                    {
                        if (!projectData.Projects[projectData.Projects.Count - 1].SetHours(hourString))
                        {
                            ModelState.AddModelError("hours_" + projectNumber, "Felaktig antal timmar");
                        }
                    }
                }

                if (emptyHours > 1 || (emptyHours == 0 && projectData.Projects.Sum(x => x.Hours) != projectData.Times.WorkedHours))
                {
                    ModelState.AddModelError("hours_" + projectNumbers.First(), "Antalet timmar stämmer ej överrens");
                }

                if (projectData.Projects.Where(x => x.Hours <= 0).Any())
                {
                    ModelState.AddModelError("hours_" + projectNumbers.First(), "Antalet timmar måste vara större än noll");
                }

                if (!string.IsNullOrEmpty(form["ReportId"]))
                    projectData.ReportId = Guid.Parse(form["ReportId"]);

                if (ModelState.IsValid)
                {
                    projectData.SaveToDatabase(Constants.CurrentUser(User.Identity.Name));
                    ViewData["posted"] = true;

                    projectData = new NewTimeReportModel();
                    LoadDefaultSettings(projectData);
                }
                else if (projectData.Projects.Count == 1)
                    projectData.Projects[0].Hours = null;
            }

        }

        var missingdays = new DatabaseLayer().GetConsultantMissingDays(Constants.CurrentUser(User.Identity.Name));
        if (missingdays.Count == 0)
        {
            ViewData["missingDays"] = "";
        }
        else
        {
            ViewBag.MissingDays = missingdays;
        }

        ViewData.Model = projectData;

        return View();
    }