public ActionResult List(FormCollection collection, int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            //查詢參數
            var qm    = new CrRegistrationQryModel();
            var isOK  = this.TryUpdateModel(qm);
            var token = collection["__RequestVerificationToken"];

            var classId = qm.Q_ClassId;
            CR_RegistrationDataTable dt = null;

            if (!classId.isNullOrEmpty())
            {
                dt = CrDataService.Instance.CrRegistration_getListByClassId(classId);
            }
            else
            {
                dt = CrDataService.Instance.CrRegistration_getList(qm);
            }

            //排序
            var dtSorted = dt.sort(jtSorting);

            if (Request.IsAjaxRequest())
            {
                return(converToJTableSource(dtSorted, jtStartIndex, jtPageSize));
            }
            else
            {
                return(View(dt));
            }
        }
Exemple #2
0
        //簽到表
        public byte[] CRR020(CrRegistrationQryModel qm, ref string contenttype)
        {
            var dt = NsDmHelper.CR_Registration
                     .selectAll(t => t.AllExt)
                     .where (t =>
                             t.CRR_CourseId_XX == qm.Q_CourseId.toConstReq1()
                             & t.CRR_ClassId == qm.Q_ClassId.toConstOpt1()
                             )
                     .orderby(t => new[] {
                t.CRR_ClassDate_XX.Asc,
                t.CRR_ClassTime_XX.Asc,
                t.CRR_CreateDate.Asc
            })
                     .query();

            //無資料
            if (dt == null)
            {
                dt = new CR_RegistrationDataTable();
            }

            ReportViewer reportViewer1 = new ReportViewer();

            reportViewer1.LocalReport.DataSources.Clear();

            //取得報表檔組件
            var assembly = getReportAssembly();
            //取得報表定義檔
            var reportFile = string.Empty;

            reportFile = "CRR020Rpt.rdlc";
            Stream fileStream = assembly.GetManifestResourceStream("ftd.report." + reportFile);

            reportViewer1.LocalReport.LoadReportDefinition(fileStream);

            dt.TableName = "CR_Registration";
            reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource(dt.TableName, dt as DataTable));

            #region 報表參數設定
            var companyName  = FtdConfigService.Instance.getAppSettingValue("CompanyName", "");
            var pCompanyName = new ReportParameter("P_CompanyName", companyName);
            reportViewer1.LocalReport.SetParameters(new ReportParameter[] { pCompanyName });
            #endregion

            Microsoft.Reporting.WebForms.Warning[] tWarnings;
            string[] tStreamids;
            string   tMimeType;
            string   tEncoding;
            string   tExtension;
            string   fileFormat = getPrintType(contenttype.ToLower());

            byte[] tBytes = reportViewer1.LocalReport.Render(fileFormat, "<DeviceInfo><AutoFit>Never</AutoFit></DeviceInfo>", out tMimeType, out tEncoding, out tExtension, out tStreamids, out tWarnings);
            contenttype = tMimeType;
            return(tBytes);
        }
        public CR_RegistrationDataTable CrRegistration_create(int rowCount = 1)
        {
            var dt = new CR_RegistrationDataTable();

            if (rowCount < 0)
            {
                rowCount = 0;
            }

            for (int i = 0; i < rowCount; i++)
            {
                var row = dt.newTypedRow();
                row.ns_AssignNewId();
                dt.addTypedRow(row);
            }
            return(dt);
        }
        public CR_RegistrationDataTable CrRegistration_createWithClassId(string classId, int rowCount = 1)
        {
            var dt = new CR_RegistrationDataTable();

            if (rowCount < 0)
            {
                rowCount = 0;
            }

            for (int i = 0; i < rowCount; i++)
            {
                var row = dt.newTypedRow();
                row.ns_AssignNewId();
                row.CRR_ClassId = classId;
                dt.addTypedRow(row);
            }

            if (!classId.isNullOrEmpty())
            {
                dt.ns_linkColumns(
                    AppDataName.CRR_ClassCode_XX,
                    AppDataName.CRR_ClassDate_XX,
                    AppDataName.CRR_ClassTime_XX,
                    AppDataName.CRR_CourseCode_XX,
                    AppDataName.CRR_CourseDesc_XX,
                    AppDataName.CRR_CourseEnable_XX,
                    AppDataName.CRR_CourseEnableName_XX,
                    AppDataName.CRR_CourseId_XX,
                    AppDataName.CRR_CourseName_XX,
                    AppDataName.CRR_LimitQty_XX,
                    AppDataName.CRR_RegisterQty_XX,
                    AppDataName.CRR_StartDate_XX,
                    AppDataName.CRR_EndDate_XX,
                    AppDataName.CRR_RegisterStartDate_XX,
                    AppDataName.CRR_RegisterEndDate_XX,
                    AppDataName.CRR_DietServcie_XX,
                    AppDataName.CRR_DietServiceName_XX
                    );
            }
            return(dt);
        }
        public ActionResult Edit(FormCollection collection)
        {
            var token = collection["__RequestVerificationToken"];
            var mode  = collection["ViewMode"];
            var id    = collection[AppDataName.CRR_RegistrationId];
            var msg   = "報名成功";

            CR_RegistrationDataTable dt  = null;
            CR_RegistrationRow       row = null;

            try
            {
                if (mode.equalIgnoreCase("create"))
                {
                    dt  = CrDataService.Instance.CrRegistration_create();
                    msg = "報名成功";
                }
                else
                {
                    //找出該筆資料
                    dt = CrDataService.Instance.CrRegistration_getById(id);
                    if (dt == null || dt.Count == 0)
                    {
                        return(Json(new { Result = jTable_ERROR_CODE, Message = "資料不存在" }));
                    }
                    msg = "修改成功";
                }

                //將Form sumit的資料更新至DataRow
                row = dt.FirstRow;
                var isOK = this.TryUpdateModel(row);

                //若驗證失敗-->回傳錯誤訊息
                if (!ModelState.IsValid)
                {
                    return(Json(new { Result = jTable_ERROR_CODE, Message = string.Join("<br/>", ModelState.Values) }));
                }

                #region //驗證欄位
                List <string> lstError = new List <string>();
                if (row.CRR_CourseId_XX.isNullOrEmpty())
                {
                    lstError.Add("課程ID不能為空");
                }
                if (row.CRR_ClassId.isNullOrEmpty())
                {
                    lstError.Add("班別ID不能為空");
                }
                //if (row.CRR_CitizenId.isNullOrEmpty())
                //{
                //    lstError.Add("身分證不能為空");
                //}
                if (row.CRR_Name.isNullOrEmpty())
                {
                    lstError.Add("姓名不能為空");
                }
                if (row.CRR_OrganName.isNullOrEmpty())
                {
                    lstError.Add("單位名稱不能為空");
                }
                //if (row.CRR_FoodKind.isNullOrEmpty())
                //{
                //    lstError.Add("葷素不能為空");
                //}
                if (row.CRR_Tel.isNullOrEmpty())
                {
                    lstError.Add("聯絡電話不能為空");
                }

                //回傳錯誤訊息
                if (lstError.Count > 0)
                {
                    return(Json(new { Result = jTable_ERROR_CODE, Message = string.Join("<br/>", lstError.ToArray()) }));
                }

                //身分證驗證
                if (!row.CRR_CitizenId.isNullOrEmpty() && !row.CRR_CitizenId.verifyAsTwCitizenId())
                {
                    return(Json(new { Result = jTable_ERROR_CODE, Message = "請輸入有效的身分證字號。" }));
                }

                //檢查鍵值是否重覆
                if (CrDataService.Instance.CrRegistration_cehckDuplicate(row.CRR_RegistrationId, row.CRR_CourseId_XX, AppUserSession.User.LoginAccount, row.CRR_Name))
                {
                    return(Json(new { Result = jTable_ERROR_CODE, Message = "同課程已報名。若要改報不同班別,請先取消原報名資料。" }));
                }
                #endregion

                dt.ns_update();
                dt.AcceptChanges();
                return(Json(new { Result = jTable_SUCCESS_CODE, Message = msg }));
            }
            catch (Exception ex)
            {
                return(Json(new { Result = jTable_ERROR_CODE, Message = ex.Message }));
            }
        }