public async Task<IHttpActionResult> CopyMenuData([FromBody]ParmCopyMenuData parm)
        {
            db0 = getDB0();
            try
            {
                if (parm.copy_start == null || parm.copy_end == null)
                {
                    return Ok(new { result = false, msg = "請填寫完整的日期~!" });
                }

                DateTime start = (DateTime)parm.copy_start;
                DateTime end = ((DateTime)parm.copy_end).AddDays(1);

                bool check_dailyMenu = db0.DailyMenu.Any(x => x.company_id == this.companyId & x.day >= start & x.day < end);
                if (check_dailyMenu)
                {
                    return Ok(new { result = false, msg = "要複製的日期內已有安排「每日菜單」,請確認後再複製~!" });
                }

                #region copy
                var items = db0.MenuCopy.Where(x => x.company_id == this.companyId & x.menu_copy_template_id == parm.main_id)
                            .OrderBy(x => new { x.day, x.meal_type }).ToList();
                foreach (var i in items)
                {
                    var setDayObj = start.AddDays(i.day - 1);
                    var item = new DailyMenu()
                    {
                        dail_menu_id = GetNewId(ProcCore.Business.CodeTable.DailyMenu),
                        day = setDayObj,
                        meal_type = i.meal_type,
                        i_InsertUserID = this.UserId,
                        i_InsertDateTime = DateTime.Now,
                        i_InsertDeptID = this.departmentId,
                        company_id = this.companyId,
                        i_Lang = "zh-TW"
                    };

                    db0.DailyMenu.Add(item);

                    foreach (var corr in i.MenuCopyOfConstitute)
                    {
                        var c = new DailyMenuOfConstitute()
                        {
                            constitute_id = corr.constitute_id,
                            dail_menu_id = item.dail_menu_id,
                            i_InsertUserID = this.UserId,
                            i_InsertDateTime = DateTime.Now,
                            i_InsertDeptID = this.departmentId,
                            company_id = this.companyId,
                            i_Lang = "zh-TW"
                        };
                        db0.DailyMenuOfConstitute.Add(c);
                    }
                }
                await db0.SaveChangesAsync();
                #endregion

                return Ok(new { result = true });
            }
            catch (Exception ex)
            {
                return Ok(new { result = false, msg = ex.ToString() });
            }
            finally
            {
                db0.Dispose();
            }
        }
        public async Task<IHttpActionResult> PostDailyMenuOfConstitute([FromBody]ParmDailyMenuOfConstitute parm)
        {
            ResultInfo r = new ResultInfo();

            try
            {
                #region working a
                db0 = getDB0();
                var item = db0.DailyMenuOfConstitute.Where(x => x.constitute_id == parm.constitute_id && x.dail_menu_id == parm.dail_menu_id).FirstOrDefault();
                if (item == null)
                {
                    item = new DailyMenuOfConstitute()
                    {
                        constitute_id = parm.constitute_id,
                        dail_menu_id = parm.dail_menu_id,
                        i_InsertUserID = this.UserId,
                        i_InsertDateTime = DateTime.Now,
                        i_InsertDeptID = this.departmentId,
                        company_id = this.companyId,
                        i_Lang = "zh-TW"
                    };
                    db0.DailyMenuOfConstitute.Add(item);
                }

                await db0.SaveChangesAsync();

                r.result = true;
                r.id = item.dail_menu_id;
                return Ok(r);
                #endregion
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
                return Ok(r);
            }
            finally
            {
                db0.Dispose();
            }
        }