Ejemplo n.º 1
0
        public async Task<string> UptPlanEnergyResult_2015(UptPlanEnergyResult_2015Param param)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();
            var pass_state = StateCheck(param.CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }
            try
            {
                var item = await db.PlanEnergyResult_2015.FindAsync(param.CustId, param.YY, param.item);
                var md = param.md;

                if (item != null)
                {
                    //item.item = md.item;
                    item.save_src = md.save_src;
                    item.eng_type = md.eng_type;
                    item.save_code = md.save_code;
                    item.act_exec = md.act_exec;
                    item.act_area = md.act_area;
                    item.act_target = md.act_target;
                    item.act_text = md.act_text;
                    item.chg_before = md.chg_before;
                    item.chg_after = md.chg_after;
                    item.y1 = md.y1;
                    item.m1 = md.m1;
                    item.y2 = md.y2;
                    item.m2 = md.m2;
                    item.fma_no1_text = md.fma_no1_text;
                    item.fma_no21_1_B1 = md.fma_no21_1_B1;
                    item.fma_no21_1_B2 = md.fma_no21_1_B2;
                    item.fma_no21_1_B3 = md.fma_no21_1_B3;
                    item.fma_no21_1_B4 = md.fma_no21_1_B4;
                    item.fma_no21_2_B1 = md.fma_no21_2_B1;
                    item.fma_no21_2_B2 = md.fma_no21_2_B2;
                    item.fma_no21_2_B3 = md.fma_no21_2_B3;
                    item.fma_no21_2_B4 = md.fma_no21_2_B4;
                    item.fma_no22_C1 = md.fma_no22_C1;
                    item.fma_no22_C2 = md.fma_no22_C2;
                    item.fma_no22_C3 = md.fma_no22_C3;
                    item.fma_no22_C4 = md.fma_no22_C4;
                    item.fma_no22_C5 = md.fma_no22_C5;
                    item.fma_no22_C6 = md.fma_no22_C6;
                    item.fma_no22_D1 = md.fma_no22_D1;
                    item.fma_no22_D2 = md.fma_no22_D2;
                    item.fma_no22_D3 = md.fma_no22_D3;
                    item.fma_no22_D4 = md.fma_no22_D4;
                    item.fma_no22_D5 = md.fma_no22_D5;
                    item.fma_no22_D6 = md.fma_no22_D6;
                    item.fma_no22_C6_Frm = md.fma_no22_C6_Frm;
                    item.fma_no22_D6_Frm = md.fma_no22_D6_Frm;
                    item.fma_no22_E = md.fma_no22_E;
                    item.fma_no23 = md.fma_no23;
                    item.fma_no3_F = md.fma_no3_F;
                    item.eff_no11_1_g1 = md.eff_no11_1_g1;
                    item.eff_no11_1_g2 = md.eff_no11_1_g2;
                    item.eff_no11_1_g3 = md.eff_no11_1_g3;
                    item.eff_no11_2_g1 = md.eff_no11_2_g1;
                    item.eff_no11_2_g2 = md.eff_no11_2_g2;
                    item.eff_no11_2_g3 = md.eff_no11_2_g3;
                    item.eff_other = md.eff_other;
                    item.eff_save_money = md.eff_save_money;
                    item.inves_no1_1_text = md.inves_no1_1_text;
                    item.inves_no1_1_i1 = md.inves_no1_1_i1;
                    item.inves_no1_1_i2 = md.inves_no1_1_i2;
                    item.inves_no1_1_i3 = md.inves_no1_1_i3;
                    item.inves_no1_1_i4 = md.inves_no1_1_i4;
                    item.inves_no1_2_text = md.inves_no1_2_text;
                    item.inves_no1_2_i1 = md.inves_no1_2_i1;
                    item.inves_no1_2_i2 = md.inves_no1_2_i2;
                    item.inves_no1_2_i3 = md.inves_no1_2_i3;
                    item.inves_no1_2_i4 = md.inves_no1_2_i4;
                    item.inves_no2_1_text = md.inves_no2_1_text;
                    item.inves_no2_1_i5 = md.inves_no2_1_i5;
                    item.inves_no2_2_text = md.inves_no2_2_text;
                    item.inves_no2_2_i6 = md.inves_no2_2_i6;
                    item.inves_total = md.inves_total;

                    item.ECMCECID = md.ECMCECID;
                    item.ECMCTypeCode = md.ECMCTypeCode;
                    item.ECMMECID = md.ECMMECID;

                    item.start_m = md.start_m;
                    item.end_m = md.end_m;
                    item.restrain_amt = md.restrain_amt;
                    item.CalToOilKi = CalToOilKi(md.eng_type, (decimal)md.fma_no3_F);
                }
                else
                {
                    r.result = false;
                    r.message = "查無資料!";
                    return defJSON(r);
                }

                await db.SaveChangesAsync();
                RItemPlanEnergyResult_2015(md.CustID, md.YY);
                RecordReportList(param.CustId, param.YY, "JB1");
                r.result = true;
            }
            catch (DbEntityValidationException ex)
            {
                r.result = false;
                r.message = getDbEntityValidationException(ex);
                return defJSON(r);
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
            return defJSON(r);
        }
Ejemplo n.º 2
0
 public string aj_FDownB(string CustId, string YY, string Kind, string Item, string fileName)
 {
     AjaxResult r = new AjaxResult();
     string path = "~/Upload/" + YY + "/" + CustId + "/" + Kind + "/" + Item + "/" + fileName;
     string spath = Server.MapPath(path);
     try
     {
         if (System.IO.File.Exists(spath))
         {
             byte[] bytes = System.IO.File.ReadAllBytes(spath);
             OutPutForIE8(bytes, fileName);
         }
         else {
             r.message = "找不到此檔" + path;
             r.result = false;
         }
     }
     catch (Exception ex)
     {
         r.result = false;
         r.message = ex.Message;
     }
     return defJSON(r);
 }
Ejemplo n.º 3
0
        public async Task<string> UptFloorElecYear(UptUptFloorElecYearParm obj)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();

            var pass_state = StateCheck(obj.CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }

            try
            {
                var e = await db.FloorElecYear
                                .AnyAsync(x =>
                                x.CustID == obj.CustId &&
                                x.YY == obj.YY);

                if (e)
                {
                    var item = await db.FloorElecYear.FindAsync(obj.CustId, obj.YY);
                    var md = obj.md;


                    item.d_q_no1 = md.d_q_no1;
                    item.d_q_no2 = md.d_q_no2;
                    item.d_q_no3 = md.d_q_no3;
                    item.d_q_no4 = md.d_q_no4;
                    item.d_q_no5 = md.d_q_no5;
                    item.d_q_no6 = md.d_q_no6;
                    item.d_q_no7 = md.d_q_no7;
                    item.d_q_no7_memo = md.d_q_no7_memo;


                    item.i_q_no1 = md.i_q_no1;
                    item.i_q_no2 = md.i_q_no2;
                    item.i_q_no3 = md.i_q_no3;
                    item.i_q_no4 = md.i_q_no4;
                    item.i_q_no5 = md.i_q_no5;
                    item.i_q_no6 = md.i_q_no6;
                    item.i_q_no7 = md.i_q_no7;
                    item.i_q_no7_memo = md.i_q_no7_memo;
                    item.reason = md.reason;

                    item.i_q_no8 = md.i_q_no8;
                    item.i_q_no9 = md.i_q_no9;
                }
                else
                {
                    //db.FloorElecQ.Add(obj.md);
                }

                await db.SaveChangesAsync();

                r.result = true;
                return defJSON(r);
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
        }
Ejemplo n.º 4
0
        public async Task<string> GetExamineReport_Accept(string CustId, int YY, string LoginId)
        {
            var db = new EnergyNetEntities();
            var r = new AjaxResult();

            //Log.Write(new string[] { "LoginID Count", Session.Count.ToString() });
            //Log.Write(new string[] { "LoginID:", (string)Session["n_LoginID"] });
            //Log.WriteToFile();

            try
            {
                var examine_rport = await db.ExamineReport.FindAsync(new object[] { CustId, YY });
                if (examine_rport != null)
                {
                    db.ExamineReport.Remove(examine_rport);
                }

                var item = await db.ExamineReport_Master.FindAsync(new object[] { CustId, YY });
                if (item != null)
                {
                    item.IsReject = false;
                    item.AtuCheckerId = LoginId;
                    item.CheckDate = DateTime.Now;
                    item.InitPassDate = DateTime.Now;

                }
                await db.SaveChangesAsync();
                r.result = true;
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
            }


            return defJSON(r);
        }
Ejemplo n.º 5
0
        public async Task<string> PostMailScheduleIsSend(int id)
        {
            AjaxResult r = new AjaxResult();

            var db = new EnergyNetEntities();
            var item = await db.Mail_Schedule.FindAsync(id);
            if (item != null)
            {
                item.isSend = true;
                item.sendtime = DateTime.Now;
                await db.SaveChangesAsync();
                r.result = true;
            }
            return defJSONNull(r);
        }
Ejemplo n.º 6
0
        public async Task<string> GetGradData(string CustId, int YY, string pno, string checkerid)
        {
            var db = new EnergyNetEntities();
            var r = new AjaxResult<IEnumerable<Graid_Detail>>();

            try
            {
                #region Code
                var item1 = await db.ExamineReport_Master.FindAsync(new object[] { CustId, YY });
                if (item1 == null)
                {
                    r.message = "無申報完成項目記錄";
                    r.result = false;
                }

                var item2 = await db.ExamineReport_Record
                    .Where(x => x.CustID == CustId && x.YY == YY).OrderByDescending(x => x.examine_report_record_id).FirstOrDefaultAsync();
                if (item2 == null)
                {
                    r.message = "無申報完成項明細目記錄";
                    r.result = false;
                }

                var examine_report_record_id = item2.examine_report_record_id;

                var item3 = await db.Grad.Where(x => x.examine_report_record_id == examine_report_record_id)
                    .OrderByDescending(x => x.grad_id)
                    .FirstOrDefaultAsync();

                var master_id = item3.grad_id;

                #endregion

                var item4 = await db.Graid_Detail.Where(x => x.graid_id == master_id && x.repord_id == pno)
                    .ToListAsync();

                r.data = item4;
                r.result = true;
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = getException(ex);
                throw;
            }
            finally
            {
                db.Dispose();
            }

            return defJSON(r);
        }
Ejemplo n.º 7
0
        public async Task<string> GetGradItem(string CustId, int YY, string pno, int item, string checkerid)
        {
            var db = new EnergyNetEntities();
            var r = new AjaxResult<IEnumerable<Graid_Item>>();

            try
            {
                #region Code
                var item1 = await db.ExamineReport_Master.FindAsync(new object[] { CustId, YY });
                if (item1 == null)
                {
                    r.message = "無申報完成項目記錄";
                    r.result = false;
                }

                var item2 = await db.ExamineReport_Record
                    .Where(x => x.CustID == CustId && x.YY == YY).OrderByDescending(x => x.examine_report_record_id).FirstOrDefaultAsync();
                if (item2 == null)
                {
                    r.message = "無申報完成項明細目記錄";
                    r.result = false;
                }

                var examine_report_record_id = item2.examine_report_record_id;

                var item3 = await db.Grad.Where(x => x.CustId == CustId && x.YY == YY && x.examine_report_record_id == examine_report_record_id)
                    .OrderByDescending(x => x.grad_id)
                    .FirstOrDefaultAsync();

                var master_id = 0;

                if (item3 == null)
                {
                    var item_prv = await db.Grad.Where(x => x.CustId == CustId && x.YY == YY)
                    .OrderByDescending(x => x.grad_id)
                    .FirstOrDefaultAsync();

                    var md = new Grad()
                    {
                        CustId = CustId,
                        YY = YY,
                        check_date = DateTime.Now,
                        examine_report_record_id = examine_report_record_id,
                        checker = checkerid
                    };

                    db.Grad.Add(md);

                    await db.SaveChangesAsync();
                    master_id = md.grad_id;


                    if (item_prv != null) //copy 上次資料
                    {
                        var details = db.Graid_Item.Where(x => x.graid_id == item_prv.grad_id);
                        foreach (var detail in details)
                        {
                            var mds = new Graid_Item();
                            mds.graid_id = master_id;
                            mds.repord_id = detail.repord_id;
                            mds.opt_id = detail.opt_id;
                            mds.mem = detail.mem;
                            mds.item = detail.item;
                            db.Graid_Item.Add(mds);
                        }
                        await db.SaveChangesAsync();
                    }


                }
                else {
                    master_id = item3.grad_id;
                }
                #endregion

                var item4 = await db.Graid_Item.Where(x => x.graid_id == master_id && x.repord_id == pno && x.item == item)
                    .ToListAsync();

                r.data = item4;
                r.result = true;
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = getException(ex);
                throw;
            }
            finally
            {
                db.Dispose();
            }

            return defJSON(r);
        }
Ejemplo n.º 8
0
        public async Task<string> InsPlanNotGoal_No4(InsPlanNotGoal_No4Param param)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();
            var pass_state = StateCheck(param.CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }
            try
            {
                var md = param.md;
                md.item = (new Random()).Next(1000, 2000);
                db.PlanNotGoal_No4.Add(md);

                await db.SaveChangesAsync();
                RItemPlanNotGoal_No4(md.CustID, md.YY);
                r.result = true;
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.ToString();
                Log.Write(ex.ToString());
                Log.WriteToFile();
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
            return defJSON(r);
        }
Ejemplo n.º 9
0
        public async Task<string> UptPlanNotGoal_No4(UptPlanNotGoal_No4Param param)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();
            var pass_state = StateCheck(param.CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }
            try
            {
                var md = param.md;
                var item = await db.PlanNotGoal_No4.FindAsync(new object[] { param.CustId, param.YY, param.item });

                item.item = md.item;
                item.doing = md.doing;
                item.target = md.target;
                item.fam_text = md.fam_text;
                item.save_amt = md.save_amt;
                item.save_money = md.save_money;
                item.invest = md.invest;
                item.y1 = md.y1;
                item.y2 = md.y2;

                await db.SaveChangesAsync();
                RItemPlanNotGoal_No4(md.CustID, md.YY);
                r.result = true;
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
            return defJSON(r);
        }
Ejemplo n.º 10
0
        public async Task<string> UptPlanNotGoal(UptPlanNotGoalParam param)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();
            var pass_state = StateCheck(param.CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }
            try
            {
                var item = await db.PlanNotGoal.FindAsync(param.CustId, param.YY);
                var md = param.md;


                if (item != null)
                {
                    item.no1_text = md.no1_text;

                    item.no2_text = md.no2_text;

                    item.no3_fam_text = md.no3_fam_text;
                    item.no3_fam_select = md.no3_fam_select;
                    item.no3_fam_select_5_memo = md.no3_fam_select_5_memo;

                    item.no3_eff_100 = md.no3_eff_100;
                    item.no3_eff_101 = md.no3_eff_101;
                    item.no3_eff_102 = md.no3_eff_102;
                    item.no3_eff_103 = md.no3_eff_103;
                    item.no3_eff_104 = md.no3_eff_104;
                    item.no3_eff_rate = md.no3_eff_rate;
                    item.no3_save_text = md.no3_save_text;

                    item.no3_save_amt_100 = md.no3_save_amt_100;
                    item.no3_save_amt_101 = md.no3_save_amt_101;
                    item.no3_save_amt_102 = md.no3_save_amt_102;
                    item.no3_save_amt_103 = md.no3_save_amt_103;
                    item.no3_save_amt_104 = md.no3_save_amt_104;

                    item.no3_use_amt_100 = md.no3_use_amt_100;
                    item.no3_use_amt_101 = md.no3_use_amt_101;
                    item.no3_use_amt_102 = md.no3_use_amt_102;
                    item.no3_use_amt_103 = md.no3_use_amt_103;
                    item.no3_use_amt_104 = md.no3_use_amt_104;

                    item.no5_text_1 = md.no5_text_1;
                    item.no5_text_2 = md.no5_text_2;
                    item.no5_text_3 = md.no5_text_3;
                    item.no5_text_4 = md.no5_text_4;
                    item.no7_text = md.no7_text;
                    item.no6_text = md.no6_text;
                    item.no3_save_rate = md.no3_save_rate;
                    item.no_goal_havesave_option = md.no_goal_havesave_option;

                    item.no0_text = md.no0_text;
                    item.no0_year_amt = md.no0_year_amt;

                    item.elec_use_100 = md.elec_use_100;
                    item.elec_use_101 = md.elec_use_101;
                    item.elec_use_102 = md.elec_use_102;
                    item.elec_use_103 = md.elec_use_103;
                    item.elec_use_104 = md.elec_use_104;

                    item.sour_use_100 = md.sour_use_100;
                    item.sour_use_101 = md.sour_use_101;
                    item.sour_use_102 = md.sour_use_102;
                    item.sour_use_103 = md.sour_use_103;
                    item.sour_use_104 = md.sour_use_104;
                }
                else
                {
                    db.PlanNotGoal.Add(md);
                }

                await db.SaveChangesAsync();
                RecordReportList(param.CustId, param.YY, "JB4");
                r.result = true;
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
            return defJSON(r);
        }
Ejemplo n.º 11
0
        public async Task<string> UptEnergyPushState(UptEnergyPushStateParm obj)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();
            Log.Write("Check Put", obj.CustId, obj.YY.ToString());
            Log.WriteToFile();

            var pass_state = StateCheck(obj.CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }

            try
            {
                var item = await db.EnergyPushState.FindAsync(new object[] { obj.CustId, obj.YY });
                var md = obj.md;

                item.push_no_1 = md.push_no_1;
                item.push_no_2 = md.push_no_2;
                item.push_no_3 = md.push_no_3;
                item.push_no_4 = md.push_no_4;
                item.push_no_5 = md.push_no_5;
                item.push_no_6 = md.push_no_6;
                item.push_no_7 = md.push_no_7;
                item.push_no_8 = md.push_no_8;
                item.push_no_9 = md.push_no_9;
                item.push_no_10 = md.push_no_10;
                item.push_no_10_memo = md.push_no_10_memo;
                item.push_no_11 = md.push_no_11;
                item.push_no_11_memo = md.push_no_11_memo;
                item.push_no_12 = md.push_no_12;
                item.push_no_12_memo = md.push_no_12_memo;
                item.push_no_13 = md.push_no_13;
                item.push_no_13_memo = md.push_no_13_memo;
                item.push_no_14 = md.push_no_14;
                item.push_no_14_memo = md.push_no_14_memo;
                item.push_no_15 = md.push_no_15;
                item.push_no_15_memo = md.push_no_15_memo;
                item.push_no_1_year = md.push_no_1_year;
                item.push_no_1_near_year = md.push_no_1_near_year;

                await db.SaveChangesAsync();
                db.Dispose();
                RecordReportList(md.CustID, md.YY, "J42");
                r.result = true;
                return defJSON(r);
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
        }
Ejemplo n.º 12
0
        public async Task<string> UptPlanEnergyAnalysis(UptPlanEnergyAnalysisParam param)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();
            var pass_state = StateCheck(param.CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }
            try
            {
                var item = await db.PlanEnergyAnalysis.FindAsync(param.CustId, param.YY);
                var md = param.md;
                var s = new decimal?[] { md.no1_amt, md.no2_amt };

                if (item != null)
                {
                    item.no_sum = s.Sum();
                    item.cale_type = md.cale_type;
                    if (md.cale_type == "1")
                    {
                        md.use_rate = (md.ElecSave / (md.ElecSave + md.use_104_amt - md.no_sum)) * 100;
                    }

                    if (md.cale_type == "2")
                    {
                        md.use_rate = (md.ElecSave / (md.ElecSave + md.use_other_value)) * 100;
                    }

                    item.ElecSave = md.ElecSave;
                    item.use_104_amt = md.use_104_amt;
                    item.no1_amt = md.no1_amt;
                    item.no2_amt = md.no2_amt;
                    item.use_rate = md.use_rate;
                    item.use_other_memo = md.use_other_memo;
                    item.use_other_value = md.use_other_value;
                }
                else
                {
                    md.no_sum = (decimal)s.Sum();
                    if (md.cale_type == "1")
                    {
                        md.use_rate = (md.ElecSave / (md.ElecSave + md.use_104_amt - md.no_sum)) * 100;
                    }

                    if (md.cale_type == "2")
                    {
                        md.use_rate = (md.ElecSave / (md.ElecSave + md.use_other_value - md.no_sum)) * 100;
                    }
                    db.PlanEnergyAnalysis.Add(md);
                }

                await db.SaveChangesAsync();
                RecordReportList(param.CustId, param.YY, "JB3");
                r.result = true;
            }
            catch (DbEntityValidationException ex)
            {
                r.result = false;
                r.message = getDbEntityValidationException(ex);
                return defJSON(r);
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = getException(ex);
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
            return defJSON(r);
        }
Ejemplo n.º 13
0
        public async Task<string> InsEnergyPushState(EnergyPushState md)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();

            var pass_state = StateCheck(md.CustID);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }

            try
            {
                db.EnergyPushState.Add(md);
                await db.SaveChangesAsync();
                db.Dispose();
                RecordReportList(md.CustID, md.YY, "J42");
                r.result = true;
                return defJSON(r);
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
        }
Ejemplo n.º 14
0
        public async Task<string> UptPlanEnergyResult_Grid_2015(UptPlanEnergyResult_2015Param param)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();
            var pass_state = StateCheck(param.CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }
            try
            {
                var item = await db.PlanEnergyResult_2015.FindAsync(param.CustId, param.YY, param.item);
                var md = param.md;

                if (item != null)
                {
                    item.start_m = md.start_m;
                    item.end_m = md.end_m;
                    item.restrain_amt = md.restrain_amt;
                }
                else
                {
                    r.result = false;
                    r.message = "查無資料!";
                    return defJSON(r);
                }

                await db.SaveChangesAsync();

                r.result = true;
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
            return defJSON(r);
        }
Ejemplo n.º 15
0
        public async Task<string> UptExamineReport_Record(UptExamineReport_RecordParm param)
        {
            var db = new EnergyNetEntities();
            var tran = db.Database.BeginTransaction();
            AjaxResult r = new AjaxResult();

            var pass_state = StateCheck(param.CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }
            try
            {
                #region Check Code
                var report_items = await db.ReportList_2015.Where(x => x.YY == param.YY && x.CustID == param.CustId).ToListAsync();
                IList<string> messages = new List<string>();

                var itmA = await db.SaveEnergyAnalysis.FindAsync(new object[] { param.CustId, param.YY });
                var itmB = await db.PlanEnergyAnalysis.FindAsync(new object[] { param.CustId, param.YY });
                var power = db.NotApplyCustID.Where(x => x.cust_id == param.CustId).FirstOrDefault();

                decimal? itmC = 0;
                decimal? itmD = 0;

                if (itmA != null)
                {
                    itmC = itmA.elec_save_rate;
                }
                if (itmB != null)
                {
                    itmD = itmB.use_rate;
                }

                if (power == null)
                {
                    if (!report_items.Any(x => x.ReportNO == "JA4") && itmC < 1)
                    {
                        messages.Add("10.4、104年執行計畫平均年節電率未達1%說明 尚未填寫");
                    }

                    if (itmD == null && itmD < 1 && !report_items.Any(x => x.ReportNO == "JB4"))
                    {
                        messages.Add("11.4、105年執行計畫年度節電率未達1%說明 尚未填寫");
                    }
                }


                var ck_5_4 = await CheckFloorElecQY(param.CustId, param.YY);
                var ck_5_5 = await CheckFloorHeatQY(param.CustId, param.YY);

                Log.Write(ck_5_4);
                Log.Write(ck_5_5);

                var de_5_4 = JsonConvert.DeserializeObject<CheckFloorElec>(ck_5_4);
                var de_5_5 = JsonConvert.DeserializeObject<CheckFloorHeat>(ck_5_5);

                Log.Write(de_5_4.q.Count().ToString());
                Log.Write((de_5_4.y == null).ToString());
                Log.WriteToFile();



                if (report_items != null)
                {
                    if (!report_items.Any(x => x.ReportNO == "J42")) { messages.Add("4.2 能源管理政策推動情形 尚未填寫"); }

                    if (!report_items.Any(x => x.ReportNO == "J54"))
                    {

                        if (power != null && power.cust_name.Contains("變電站"))
                        {

                        }
                        else {
                            messages.Add("5.4 電能績效自我評比表 尚未填寫");
                            if (de_5_4.q.Count() > 0 || de_5_4.y != null)
                            {
                                messages.Add("5.4 電能績效自我評比表 資料尚未填寫完整");
                            }

                        }
                    }

                    if (!report_items.Any(x => x.ReportNO == "J55"))
                    {

                        if (power != null && power.cust_name.Contains("變電站"))
                        {

                        }
                        else {
                            messages.Add("5.5 熱能績效自我評比表 尚未填寫");
                            if (de_5_5.q.Count() > 0 || de_5_5.y != null)
                            {
                                messages.Add("5.5 熱能績效自我評比表 資料尚未填寫完整");
                            }

                        }
                    }

                    if (!report_items.Any(x => x.ReportNO == "J95")) { messages.Add("9.5 重大使用能源設備登錄表 尚未填寫"); }
                    if (!report_items.Any(x => x.ReportNO == "JA1")) { messages.Add("10.1 104年節約能源改善方案具體成效分析表 尚未填寫"); }
                    if (!report_items.Any(x => x.ReportNO == "JA3")) { messages.Add("10.3 104年執行計畫之平均年節電率 尚未填寫"); }
                    if (!report_items.Any(x => x.ReportNO == "JB1")) { messages.Add("11.1 105年節約能源措施執行計畫表 尚未填寫"); }
                    if (!report_items.Any(x => x.ReportNO == "JB3")) { messages.Add("11.3 105年執行計畫之年度節電率 尚未填寫"); }
                }


                var ck_9_1 = await CheckAirConditioning_2015IsOk(param.CustId, param.YY, null);
                var ck_9_3 = await CheckOtherElecPlant_2015IsOk(param.CustId, param.YY, null);

                Log.Write(new string[] { "ck 91", ck_9_1 });
                Log.Write(new string[] { "ck 93", ck_9_3 });
                Log.WriteToFile();

                var de_9_1 = JsonConvert.DeserializeObject<CKBuildAir>(ck_9_1);
                var de_9_3 = JsonConvert.DeserializeObject<CKBuildAir>(ck_9_3);

                if (de_9_1.Builds.Count() > 0)
                {
                    messages.Add("9.1 空調系統 資料尚未填寫完整");
                }
                if (de_9_3.Builds.Count() > 0)
                {
                    messages.Add("9.3 其它系統 資料尚未填寫完整");
                }

                if (messages.Count() > 0)
                {
                    r.result = false;
                    r.messages = messages.ToArray();
                    return defJSONNull(r);
                }
                #endregion

                var master = await db.ExamineReport_Master.FindAsync(new object[] { param.CustId, param.YY });

                var state = "D";
                if (master == null) //代表第一次提出 申報完成
                {
                    #region Add Code

                    var checkerid = "";
                    var checkername = "";

                    var builebase = await db.BuileBase.FindAsync(new object[] { param.CustId, param.YY });
                    if (!string.IsNullOrEmpty(builebase.CheckerId))
                    {
                        var user = await db.Tb_Login.FindAsync(builebase.CheckerId);
                        checkerid = builebase.CheckerId;
                        if (user != null && !string.IsNullOrEmpty(user.LoginName))
                        {
                            checkername = user.LoginName;
                        }

                    }

                    var md = new ExamineReport_Master();
                    md.YY = param.YY;
                    md.CustID = param.CustId;
                    md.GreenCheckState = "C";  //尚未審核
                    md.EconCheckState = "D";
                    md.DeliverDate = DateTime.Now;
                    md.CheckerId = checkerid;
                    md.CheckerName = checkername;
                    md.CheckCount = 0;
                    md.IsReject = false;
                    md.AtuCheckerId = "";
                    md.State = "D";
                    db.ExamineReport_Master.Add(md);
                    #endregion
                }
                else {
                    if (master.GreenCheckState == "B")
                    {
                        state = master.State;
                        master.FixDate = DateTime.Now; //補正日期
                        master.GreenCheckState = "D"; //補正尚未審核
                        master.IsReject = false;
                        master.State = "D";
                    }
                }

                var detail = await db.ExamineReport_Record.Where(x => x.YY == param.YY && x.CustID == param.CustId)
                            .OrderByDescending(x => x.examine_report_record_id)
                            .FirstOrDefaultAsync();

                if (detail != null && state == "D")
                {
                    var diff = DateTime.Now - (DateTime)detail.DeliverDate;

                    Log.Write(new string[] { "Check UptExamineReport diff", diff.Days.ToString() });
                    if (diff.Days == 0)
                    {
                        detail.DeliverDate = DateTime.Now;
                    }
                    else { //如果超過一天 要新增新的
                        var md = param.md;
                        if (detail.CheckType == "B")
                        {
                            detail.DeliverDate = null; //這是上一筆
                        }

                        md.DeliverDate = DateTime.Now;
                        db.ExamineReport_Record.Add(md);
                    }
                }
                else if (detail == null)
                {
                    var md = param.md;
                    md.DeliverDate = DateTime.Now;
                    db.ExamineReport_Record.Add(md);
                }
                else if (detail != null && state == "F")
                {
                    detail.FixDate = DateTime.Now;
                    var md = param.md;
                    md.DeliverDate = DateTime.Now;
                    db.ExamineReport_Record.Add(md);
                }

                var item2 = await db.ExamineReport.FindAsync(new object[] { param.CustId, param.YY });

                var frmDate = DateTime.Parse(DateTime.Now.ToString("yyyy/MM/dd 00:00:00"));

                if (item2 != null)
                {
                    item2.Finish = "Y";
                    item2.MDate = frmDate;
                }
                else {
                    var md = new ExamineReport()
                    {
                        CustID = param.CustId,
                        YY = param.YY,
                        Finish = "Y",
                        MDate = frmDate
                    };
                    db.ExamineReport.Add(md);
                }

                await db.SaveChangesAsync();
                r.result = true;
                tran.Commit();
            }
            catch (Exception ex)
            {
                tran.Rollback();
                r.result = false;
                r.message = getException(ex) + ex.StackTrace;
                return defJSON(r);
            }
            finally
            {
                tran.Dispose();
                db.Dispose();
            }
            return defJSON(r);
        }
Ejemplo n.º 16
0
        public async Task<string> DelPlanNotGoal_No4(string CustId, int YY, int item)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();
            var pass_state = StateCheck(CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }
            try
            {
                var itm = await db.PlanNotGoal_No4.FindAsync(new object[] { CustId, YY, item });
                db.PlanNotGoal_No4.Remove(itm);
                await db.SaveChangesAsync();
                RItemPlanNotGoal_No4(CustId, YY);

                r.result = true;

                return defJSON(r);
            }

            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;

                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
        }
Ejemplo n.º 17
0
        public async Task<string> GetGradList(string CustId, int YY)
        {
            var db = new EnergyNetEntities();
            var r = new AjaxResult<IList<IGrouping<string, Graid_Detail>>>();
            try
            {
                #region Code 檢查是否有申報完成
                var exam_record = await db.ExamineReport_Record
                    .Where(x => x.CustID == CustId && x.YY == YY)
                    .OrderByDescending(x => x.examine_report_record_id)
                    .FirstOrDefaultAsync();

                if (exam_record == null)
                {
                    r.message = "無申報完成項明細目記錄";
                    r.result = false;
                }

                var examine_report_record_id = exam_record.examine_report_record_id;

                var grad = await db.Grad.Where(x => x.examine_report_record_id == examine_report_record_id)
                    .OrderByDescending(x => x.grad_id)
                    .FirstOrDefaultAsync();

                var master_id = 0;
                if (grad == null)
                {
                    #region Code
                    var item_prv = await db.Grad.Where(x => x.CustId == CustId && x.YY == YY)
                        .OrderByDescending(x => x.grad_id)
                        .FirstOrDefaultAsync();

                    var checkerid = (await db.BuileBase.FindAsync(new object[] { CustId, YY })).CheckerId;

                    var md = new Grad()
                    {
                        CustId = CustId,
                        YY = YY,
                        check_date = DateTime.Now,
                        examine_report_record_id = examine_report_record_id,
                        checker = checkerid
                    };

                    db.Grad.Add(md);

                    await db.SaveChangesAsync();
                    master_id = md.grad_id;

                    if (item_prv != null) //copy 上次資料
                    {
                        var details = db.Graid_Detail.Where(x => x.graid_id == item_prv.grad_id);
                        foreach (var detail in details)
                        {
                            var mds = new Graid_Detail();
                            mds.graid_id = master_id;
                            mds.repord_id = detail.repord_id;
                            mds.opt_id = detail.opt_id;
                            mds.mem = detail.mem;
                            db.Graid_Detail.Add(mds);
                        }
                        await db.SaveChangesAsync();
                    }
                    #endregion
                }

                #endregion

                var master = await db.Grad.Where(x => x.examine_report_record_id == examine_report_record_id)
                    .OrderByDescending(x => x.grad_id)
                    .Take(1)
                    .FirstOrDefaultAsync();

                if (master != null)
                {
                    var items = await db.Graid_Detail
                        .Where(x => x.graid_id == master.grad_id)
                        .GroupBy(x => x.repord_id, (key, g) => new { repord_id = key, data = g })
                        .ToListAsync();

                    return defJSONNull(items);
                }
                else {
                    r.result = false;
                    return defJSONNull(null);
                }
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = getException(ex);
                return defJSONNull(null);
            }
            finally
            {
                db.Dispose();
            }
        }
Ejemplo n.º 18
0
        public async Task<string> UptPlanYearPlane_2015(UptPlanYearPlane_2015Param param)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();
            var pass_state = StateCheck(param.CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }
            try
            {
                var item = await db.PlanYearPlane_2015.FindAsync(param.CustId, param.YY);
                var md = param.md;

                if (item != null)
                {
                    item.C_104 = md.C_104;
                    item.S_104 = md.S_104;
                    item.R_104 = md.R_104;
                    item.I_104 = md.I_104;

                    item.C_105 = md.C_105;
                    item.S_105 = md.S_105;
                    item.R_105 = md.R_105;
                    item.I_105 = md.I_105;

                    item.C_106 = md.C_106;
                    item.S_106 = md.S_106;
                    item.R_106 = md.R_106;
                    item.I_106 = md.I_106;

                    item.C_107 = md.C_107;
                    item.S_107 = md.S_107;
                    item.R_107 = md.R_107;
                    item.I_107 = md.I_107;

                    item.C_108 = md.C_108;
                    item.S_108 = md.S_108;
                    item.R_108 = md.R_108;
                    item.I_108 = md.I_108;
                }
                else
                {
                    db.PlanYearPlane_2015.Add(md);
                }

                await db.SaveChangesAsync();

                r.result = true;
            }


            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
            return defJSON(r);
        }
Ejemplo n.º 19
0
        public async Task<string> GetGradListRpt(string CustId, int YY, string pno)
        {
            var db = new EnergyNetEntities();
            var r = new AjaxResult<IList<IGrouping<string, Graid_Detail>>>();
            IList<GradListRpt> data = new List<GradListRpt>();

            var masters = await db.Grad
                .Where(x => x.CustId == CustId && x.YY == YY)
                .OrderByDescending(x => x.grad_id)
                .ToListAsync();
            foreach (var master in masters)
            {
                GradListRpt g = new GradListRpt();
                g.grad = new Grad
                {
                    grad_id = master.grad_id,
                    checker = master.checker,
                    check_date = master.check_date,
                    CustId = master.CustId,
                    YY = master.YY,
                    examine_report_record_id = master.examine_report_record_id
                };
                g.detail = master.Graid_Detail.Where(x => x.repord_id == pno).ToList();
                data.Add(g);
            }
            return defJSONNull(data);
        }
Ejemplo n.º 20
0
        public async Task<string> UptState(UptStateParam param)
        {
            var db = new EnergyNetEntities();
            var r = new AjaxResult();

            try
            {
                var checkerid = db.BuileBase.Where(x => x.CustID == param.CustId && x.YY == param.YY).Select(x => x.CheckerId).FirstOrDefault();
                //var checkername = (await db.Tb_Login.FindAsync(checkerid)).LoginName;

                var item = await db.ExamineReport_Master.FindAsync(new object[] { param.CustId, param.YY });
                if (item == null)
                {
                    r.result = false;
                    r.message = "評該尚未完成";
                    return defJSONNull(r);
                }

                var item_detail = await db.ExamineReport_Record
                    .Where(x => x.CustID == param.CustId && x.YY == param.YY)
                    .OrderByDescending(x => x.examine_report_record_id).FirstOrDefaultAsync();

                if (item_detail == null)
                {
                    r.result = false;
                    r.message = "評該尚未完成";
                    return defJSONNull(r);
                }

                #region Code

                var gradMaster = db.Grad
                    .Where(x => x.examine_report_record_id == item_detail.examine_report_record_id)
                    .OrderByDescending(x => x.grad_id).FirstOrDefault();

                if (gradMaster == null)
                {
                    r.result = false;
                    r.message = "評該尚未完成";
                    return defJSONNull(r);
                }

                var gradDetail = gradMaster.Graid_Detail;

                item.AtuCheckerId = checkerid;
                item.GreenCheckState = param.state;
                var i = item.CheckCount;
                i++;
                item.CheckCount = i;
                item.CheckDate = DateTime.Now;

                if (param.state == "A") //審核通過
                {
                    item.InitPassDate = DateTime.Now;

                    if (gradDetail != null)
                    {
                        #region Check

                        if (!gradDetail.Any(x => x.repord_id == "r01" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }

                        if (!gradDetail.Any(x => x.repord_id == "r02" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }

                        if (!gradDetail.Any(x => x.repord_id == "r03" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }

                        if (!gradDetail.Any(x => x.repord_id == "r41" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r42" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r51" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r52" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r53" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r54" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r55" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r06" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r07" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r08" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r91" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r92" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r93" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r94" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "r95" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }

                        if (!gradDetail.Any(x => x.repord_id == "rA1" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "rA3" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "rA4" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }

                        if (!gradDetail.Any(x => x.repord_id == "rB1" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "rB3" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        if (!gradDetail.Any(x => x.repord_id == "rB4" && x.opt_id == "p00"))
                        {
                            r.result = false;
                            r.message = "評核尚未通過";
                            return defJSONNull(r);
                        }
                        #endregion
                    }
                    else {
                        r.result = false;
                        r.message = "評該尚未完成";
                        return defJSONNull(r);
                    }

                    item_detail.CheckState = "A";
                    item_detail.AtuCheckerId = checkerid;
                    item_detail.CheckDate = DateTime.Now;

                    item.State = "C";

                    var examineReport = await db.ExamineReport.FindAsync(new object[] { param.CustId, param.YY });
                    if (examineReport != null)
                    {
                        examineReport.Lock = "Y";
                        examineReport.Finish = "Y";
                        examineReport.ReportLevel = "B";
                        examineReport.CheckDate = DateTime.Now;
                    }

                    await db.SaveChangesAsync();
                }


                if (param.state == "B") //審核未通過
                {
                    item.State = "F";

                    item_detail.CheckState = "B";
                    item_detail.AtuCheckerId = checkerid;
                    item_detail.CheckDate = DateTime.Now;
                    await db.SaveChangesAsync();

                    #region Mail
                    var t1 = await db.BuileBase.FindAsync(new object[] { param.CustId, param.YY });
                    var t2 = await db.Tb_Login.FindAsync(param.CustId);
                    var t3 = await db.評核對應表2015V1.FindAsync(param.CustId);
                    var t4 = await GetGradList(param.CustId, param.YY);


                    if (t1 != null && t2 != null && t3 != null && !string.IsNullOrEmpty(t1.ManagerMail))
                    {
                        var file_path = Server.MapPath("~/MailTpl/StateB.html");
                        var txt = System.IO.File.ReadAllText(file_path);
                        var mailtxt = txt;
                        mailtxt = mailtxt.Replace("$user", t1.CustName);
                        mailtxt = mailtxt.Replace("$checker", t3.checker);
                        mailtxt = mailtxt.Replace("$Ext", t3.EXT);
                        mailtxt = mailtxt.Replace("$CheckerEmail", t3.email);
                        mailtxt = mailtxt.Replace("$account", t2.LoginID);
                        mailtxt = mailtxt.Replace("$password", t2.LoginPW);

                        if (t3.checker == "浦念理")
                        {
                            mailtxt = mailtxt.Replace("$contact2", "");
                        }
                        else {
                            mailtxt = mailtxt.Replace("$contact2", "浦念理&nbsp;審查人員(分機734,Email:[email protected])<br />");
                        }

                        if (t3.checker == "王秋霖")
                        {
                            mailtxt = mailtxt.Replace("$contact3", "");
                        }
                        else {
                            mailtxt = mailtxt.Replace("$contact3", "王秋霖&nbsp;審查人員(分機741,Email:[email protected])<br />");
                        }


                        var rpt_option = ReportList.GradOption();
                        var rpt_name = ReportList.GradRpt();
                        var t5 = JsonConvert.DeserializeObject<IList<RptGradHead>>(t4);

                        string html = string.Empty;
                        string tr = string.Empty;

                        foreach (var get_rpt_item in t5)
                        {
                            var td_1 = string.Empty;
                            var td_2 = string.Empty;
                            var ul = string.Empty;


                            var need_opt_item = get_rpt_item.data.Where(x => x.opt_id != "p00");

                            if (need_opt_item.Count() > 0)
                            {
                                var rptName = string.Empty;

                                if (rpt_name.Any(x => x.Key == get_rpt_item.repord_id))
                                {
                                    rptName = rpt_name[get_rpt_item.repord_id];
                                    td_1 += "<td style=\"vertical-align:top\">" + rptName + "</td>";
                                    foreach (var opts in need_opt_item)
                                    {
                                        if (rpt_option.Any(x => x.Key == get_rpt_item.repord_id))
                                        {
                                            var optobj = rpt_option[get_rpt_item.repord_id];
                                            if (optobj.Any(x => x.Key == opts.opt_id))
                                            {
                                                var opt_name = rpt_option[get_rpt_item.repord_id][opts.opt_id];
                                                ul += "<li>" + opt_name + opts.mem + "</li>";
                                            }
                                        }
                                    }
                                    td_2 = "<td><ul>" + ul + "</ul></td>";
                                    tr += "<tr>" + td_1 + td_2 + "</tr>";
                                }
                            }

                        }

                        html = "<table border=\"1\"><tr><td>申報表內容</td><td>審查說明</td></tr>" + tr + "</table>";


                        mailtxt = mailtxt.Replace("$list", html);

                        var MailFrom = "*****@*****.**";
                        var MailTos = new string[] { t1.ManagerMail };
                        var MailBcc = new string[] { "*****@*****.**", "*****@*****.**", "*****@*****.**", t3.email };
                        //var MailTos = new string[] { "*****@*****.**" };
                        //var MailBcc = new string[] { };


                        var MailSub = "未達核備標準通知";
                        Task<bool> task = new Task<bool>(() => Mail_Send(MailFrom, MailTos, MailBcc, MailSub, mailtxt, true));
                        task.Start();
                        var r1 = task.Result;
                        string filename = string.Empty;
                        if (r1)
                        {
                            filename = "NoApply.Succ." + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + "." + param.CustId + ".html";

                        }
                        else {
                            filename = "NoApply.Fail." + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + "." + param.CustId + ".html";
                        }
                        SaveLog(filename, mailtxt);
                    }
                    #endregion
                }

                r.result = true;
                #endregion

            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = getException(ex);
            }

            return defJSONNull(r);
        }
Ejemplo n.º 21
0
        public async Task<string> UptGradItem(UptGradItemParm param)
        {
            var db = new EnergyNetEntities();
            var r = new AjaxResult<IEnumerable<Graid_Detail>>();

            try
            {
                var item1 = await db.ExamineReport_Master.FindAsync(new object[] { param.CustId, param.YY });
                if (item1 == null)
                {
                    r.message = "無申報完成項目記錄";
                    r.result = false;
                }

                var item2 = await db.ExamineReport_Record
                    .Where(x => x.CustID == param.CustId && x.YY == param.YY).OrderByDescending(x => x.examine_report_record_id).FirstOrDefaultAsync();
                if (item2 == null)
                {
                    r.message = "無申報完成項明細目記錄";
                    r.result = false;
                }

                var examine_report_record_id = item2.examine_report_record_id;

                var item3 = await db.Grad.Where(x => x.CustId == param.CustId && x.YY == param.YY && x.examine_report_record_id == examine_report_record_id)
                    .OrderByDescending(x => x.grad_id)
                    .FirstOrDefaultAsync();

                if (item3 == null)
                {
                    r.message = "無申評核主檔";
                    r.result = false;
                }

                item3.checker = param.checkerid;
                item3.check_date = DateTime.Now;
                await db.SaveChangesAsync();
                var master_id = item3.grad_id;

                var item4 = await db.Graid_Item
                    .Where(x => x.graid_id == master_id && x.repord_id == param.pno && x.item == param.item)
                    .ToListAsync();

                if (item4.Count() > 0)
                {
                    db.Graid_Item.RemoveRange(item4);
                }

                foreach (var item in param.md)
                {
                    var md = new Graid_Item();

                    md.graid_id = master_id;
                    md.repord_id = param.pno;
                    md.opt_id = item.opt_id;
                    md.item = item.item;
                    md.mem = item.mem;
                    db.Graid_Item.Add(md);
                }

                await db.SaveChangesAsync();

                r.result = true;
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = getException(ex);
                throw;
            }
            finally
            {
                db.Dispose();
            }

            return defJSON(r);
        }
Ejemplo n.º 22
0
        public async Task<string> DelForElec(string CustId, int YY)
        {
            var db = new EnergyNetEntities();
            var r = new AjaxResult();

            var pass_state = StateCheck(CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }

            var t1 = await db.FloorElec.Where(x => x.CustID == CustId && x.YY == YY).ToListAsync();
            var t2 = await db.FloorElecQ.Where(x => x.CustID == CustId && x.YY == YY).ToListAsync();
            var t3 = await db.FloorElecYear.FindAsync(new object[] { CustId, YY });

            if (t1 != null) db.FloorElec.RemoveRange(t1);
            if (t2 != null) db.FloorElecQ.RemoveRange(t2);
            if (t3 != null) db.FloorElecYear.Remove(t3);
            await db.SaveChangesAsync();
            r.result = true;

            return defJSONNull(r);
        }
Ejemplo n.º 23
0
        public async Task<string> MailNoPass(IList<string> CustId, string LoginId)
        {

            Log.Write("CustId:" + (CustId == null).ToString());
            Log.WriteToFile();
            AjaxResult r = new AjaxResult();
            r.result = true;
            var db = new EnergyNetEntities();
            var i = 0;
            foreach (var id in CustId)
            {
                #region Mail
                var t1 = await db.BuileBase.FindAsync(new object[] { id, 2015 });
                var t2 = await db.Tb_Login.FindAsync(id);
                var t3 = await db.評核對應表2015V1.FindAsync(id);
                var t4 = await GetGradList(id, 2015);

                Log.Write("t1:" + (t1 == null).ToString());
                Log.Write("t2:" + (t2 == null).ToString());
                Log.Write("t3:" + (t3 == null).ToString());
                Log.WriteToFile();

                if (t1 != null && t2 != null && t3 != null && !string.IsNullOrEmpty(t1.ManagerMail))
                {
                    var file_path = Server.MapPath("~/MailTpl/StateB.html");
                    var txt = System.IO.File.ReadAllText(file_path);
                    var mailtxt = txt;
                    mailtxt = mailtxt.Replace("$user", t1.CustName);
                    mailtxt = mailtxt.Replace("$checker", t3.checker);
                    mailtxt = mailtxt.Replace("$Ext", t3.EXT);
                    mailtxt = mailtxt.Replace("$CheckerEmail", t3.email);
                    mailtxt = mailtxt.Replace("$account", t2.LoginID);
                    mailtxt = mailtxt.Replace("$password", t2.LoginPW);

                    if (t3.checker == "浦念理")
                    {
                        mailtxt = mailtxt.Replace("$contact2", "");
                    }
                    else {
                        mailtxt = mailtxt.Replace("$contact2", "浦念理&nbsp;審查人員(分機734,Email:[email protected])<br />");
                    }

                    if (t3.checker == "王秋霖")
                    {
                        mailtxt = mailtxt.Replace("$contact3", "");
                    }
                    else {
                        mailtxt = mailtxt.Replace("$contact3", "王秋霖&nbsp;審查人員(分機741,Email:[email protected])<br />");
                    }


                    var rpt_option = ReportList.GradOption();
                    var rpt_name = ReportList.GradRpt();
                    var t5 = JsonConvert.DeserializeObject<IList<RptGradHead>>(t4);

                    string html = string.Empty;
                    string tr = string.Empty;

                    foreach (var get_rpt_item in t5)
                    {
                        var td_1 = string.Empty;
                        var td_2 = string.Empty;
                        var ul = string.Empty;


                        var need_opt_item = get_rpt_item.data.Where(x => x.opt_id != "p00");

                        if (need_opt_item.Count() > 0)
                        {
                            var rptName = string.Empty;

                            if (rpt_name.Any(x => x.Key == get_rpt_item.repord_id))
                            {
                                rptName = rpt_name[get_rpt_item.repord_id];
                                td_1 += "<td style=\"vertical-align:top\">" + rptName + "</td>";
                                foreach (var opts in need_opt_item)
                                {
                                    if (rpt_option.Any(x => x.Key == get_rpt_item.repord_id))
                                    {
                                        var optobj = rpt_option[get_rpt_item.repord_id];
                                        if (optobj.Any(x => x.Key == opts.opt_id))
                                        {
                                            var opt_name = rpt_option[get_rpt_item.repord_id][opts.opt_id];
                                            ul += "<li>" + opt_name + opts.mem + "</li>";
                                        }
                                    }
                                }
                                td_2 = "<td><ul>" + ul + "</ul></td>";
                                tr += "<tr>" + td_1 + td_2 + "</tr>";
                            }
                        }

                    }

                    html = "<table border=\"1\"><tr><td>申報表內容</td><td>審查說明</td></tr>" + tr + "</table>";
                    mailtxt = mailtxt.Replace("$list", html);

                    var MailFrom = "*****@*****.**";
                    var MailTos = new string[] { t1.ManagerMail };
                    var MailBcc = new string[] { "*****@*****.**", "*****@*****.**", "*****@*****.**", t3.email };
                    //var MailTos = new string[] { "*****@*****.**" };
                    //var MailBcc = new string[] { };
                    var MailSub = "未達核備標準通知";

                    var sch = new Mail_Schedule();
                    sch.make_login_id = LoginId;
                    sch.make_time = DateTime.Now;
                    sch.isSend = false;
                    sch.tos = string.Join(";", MailTos);
                    sch.bcc = string.Join(";", MailBcc);
                    sch.froms = MailFrom;
                    sch.body = mailtxt;
                    sch.subject = MailSub;

                    db.Mail_Schedule.Add(sch);
                    i++;
                }
                #endregion

            }
            await db.SaveChangesAsync();
            r.result = true;
            r.message = i.ToString();
            return defJSON(r);
        }
Ejemplo n.º 24
0
        public async Task<string> UptLock(UptLockParam param)
        {
            var db = new EnergyNetEntities();
            var r = new AjaxResult();

            try
            {
                #region Code
                var examineReport = await db.ExamineReport.FindAsync(new object[] { param.CustId, param.YY });
                if (examineReport != null)
                {
                    examineReport.Lock = param.locked;
                    r.result = true;
                    await db.SaveChangesAsync();
                }
                else {
                    r.result = false;
                    r.message = "尚未提出申報完成!";
                }

                #endregion
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = getException(ex);
            }

            return defJSONNull(r);
        }
Ejemplo n.º 25
0
        public string aj_FDelete(string CustId, string YY, string Kind, string fileName)
        {
            AjaxResult r = new AjaxResult();
            string path = "~/Upload/" + YY + "/" + CustId + "/" + Kind + "/" + fileName;
            string spath = Server.MapPath(path);
            try
            {
                if (System.IO.File.Exists(spath))
                {
                    System.IO.File.Delete(spath);
                    r.result = true;
                }
                else {
                    r.message = "找不到此檔" + path;
                    r.result = false;
                }

            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
            }
            return defJSON(r);
        }
Ejemplo n.º 26
0
        public async Task<string> GetExamineReport(string CustId, int YY)
        {
            var db = new EnergyNetEntities();
            var r = new AjaxResult();

            try
            {
                #region Code
                var examineReport = await db.ExamineReport.FindAsync(new object[] { CustId, YY });
                return defJSONNull(examineReport);
                #endregion
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = getException(ex);
            }

            return defJSONNull(r);
        }
Ejemplo n.º 27
0
        public async Task<string> UptFloorElecItem(IEnumerable<FloorElec> mds)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();

            try
            {

                string CustID = string.Empty;
                int YY = 0;

                foreach (var md in mds)
                {
                    var item = await db.FloorElec.FindAsync(md.CustID, md.YY, md.month);
                    item.p_floor = md.p_floor;
                    item.n_floor = md.n_floor;
                    item.p_eui = md.p_eui;
                    item.n_eui = md.n_eui;

                    if (CustID == string.Empty)
                    {
                        CustID = md.CustID;
                        YY = md.YY;

                        var pass_state = StateCheck(CustID);
                        if (pass_state == 1)
                        {
                            r.result = false;
                            r.message = "初審已通過不可更新!";
                            return defJSON(r);
                        }

                    }
                }


                var g_item = mds.GroupBy(x => (x.month - 1) / 3).Select(
                    y => new
                    {
                        qno = y.Key,
                        sum_p_eui_amt = y.Sum(x => x.p_eui_amt),
                        sum_n_eui_amt = y.Sum(x => x.n_eui_amt),
                        avg_p_floor = y.Average(x => x.p_floor),
                        avg_n_floor = y.Average(x => x.n_floor)
                    });


                var q_item_data = await db.FloorElecQ.Where(x => x.CustID == CustID && x.YY == YY).OrderBy(x => x.QNO).ToListAsync();

                foreach (var item in g_item)
                {
                    var q_p_value = item.avg_p_floor == 0 ? 0 : item.sum_p_eui_amt / item.avg_p_floor;
                    var q_n_value = item.sum_n_eui_amt / item.avg_n_floor;

                    var q_item = q_item_data.Where(x => x.QNO == (item.qno + 1)).FirstOrDefault();

                    if (q_p_value == 0)
                    {
                        q_item.diff_result = 0;
                    }
                    else
                    {
                        q_item.diff_result = ((q_n_value - q_p_value) / q_p_value) * 100;
                    }
                }

                await db.SaveChangesAsync();
                RecordReportList(CustID, YY, "J54");
                r.result = true;
                return defJSON(r);
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
        }
Ejemplo n.º 28
0
        public async Task<string> UptGrad_2015(UptGrad_2015Param param)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();

            var pass_state = StateCheck(param.CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }

            try
            {
                var mds = param.md;

                foreach (var md in mds)
                {
                    var item = await db.Grad_2015.FindAsync(new object[] { param.CustId, param.YY, param.rpt_no, md.item });

                    if (item == null)
                    {
                        db.Grad_2015.Add(md);
                    }
                    else {
                        item.opt = md.opt;
                        item.mem = md.mem;
                    }
                }
                await db.SaveChangesAsync();

                r.result = true;
            }
            catch (DbEntityValidationException ex)
            {
                r.result = false;
                r.message = getDbEntityValidationException(ex);
                return defJSON(r);
            }
            catch (Exception ex)
            {
                r.result = false;
                r.message = ex.Message;
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
            return defJSON(r);
        }
Ejemplo n.º 29
0
        public async Task<string> GetFloorHeatMonth(string CustId, int YY)
        {
            var db = new EnergyNetEntities();
            var r = new AjaxResult<IEnumerable<FloorHeat>>();
            var floor_prv_p = await GetCalDefFloor(CustId, YY - 1); //前年 總樓地板面積”-“總室內停車場面積
            var floor_now = await GetCalDefFloor(CustId, YY); // 總樓地板面積”-“總室內停車場面積
            var floor_prv = floor_prv_p < 0 ? 0 : floor_prv_p;

            //if (floor_prv <= 0)
            //{
            //    RecordReportList(CustId, YY, "J55");
            //    r.result = false;
            //    r.message = "無103年度資料不須填報!";
            //    return defJSONNull(r);
            //}

            //先檢查是否有負數
            if (floor_now <= 0)
            {
                var t1 = await db.FloorHeat.Where(x => x.CustID == CustId && x.YY == YY).ToListAsync();
                var t2 = await db.FloorHeatQ.Where(x => x.CustID == CustId && x.YY == YY).ToListAsync();
                var t3 = await db.FloorHeatYear.FindAsync(new object[] { CustId, YY });

                if (t1 != null) db.FloorHeat.RemoveRange(t1);
                if (t2 != null) db.FloorHeatQ.RemoveRange(t2);
                if (t3 != null) db.FloorHeatYear.Remove(t3);
                await db.SaveChangesAsync();

                r.result = false;
                r.message = "能源用戶基本資料『總室內停車場面積』不可大於等於『總樓地板面積』,需先修正(104年)才可填報!";
                return defJSONNull(r);
            }


            //以下為如果都沒有任何申報資料會預先新增12個月的預設空資料 及4季的空資料
            if (!db.FloorHeat.Any(x => x.CustID == CustId && x.YY == YY))
            {
                #region Code
                var heat_prv = await GetCalDefHeat(CustId, YY - 1);
                var heat_now = await GetCalDefHeat(CustId, YY);

                if (heat_now.Count() == 0)
                {
                    r.result = false;
                    r.message = "請先完成填報今年度熱能資料";
                    return defJSONNull(r);
                }

                var del_q_item = db.FloorHeatQ.Where(x => x.CustID == CustId && x.YY == YY);
                db.FloorHeatQ.RemoveRange(del_q_item);

                var del_y_item = await db.FloorHeatYear.FindAsync(new object[] { CustId, YY });
                if (del_y_item != null)
                {
                    db.FloorHeatYear.Remove(del_y_item);
                }

                await db.SaveChangesAsync();

                #region 總年度處理
                //先增加年度獨立資料
                FloorHeatYear md_y = new FloorHeatYear();
                md_y.YY = YY;
                md_y.CustID = CustId;
                md_y.p_floor = floor_prv;
                md_y.n_floor = floor_now;

                md_y.p_eui_amt = heat_prv.Select(x => x.Total).DefaultIfEmpty(0).Sum();
                md_y.n_eui_amt = heat_now.Select(x => x.Total).DefaultIfEmpty(0).Sum();

                md_y.p_eui = floor_prv == 0 ? 0 : (md_y.p_eui_amt / md_y.p_floor); //預防分母為0
                md_y.n_eui = floor_now == 0 ? 0 : (md_y.n_eui_amt / md_y.n_floor);

                var n_value = md_y.n_eui_amt / md_y.n_floor;
                var p_value = md_y.p_floor == 0 ? 0 : md_y.p_eui_amt / md_y.p_floor;

                if (p_value == 0)
                {
                    md_y.diff_result = 0;
                }
                else {
                    md_y.diff_result = ((n_value - p_value) / p_value) * 100; //年度差異分析
                }


                db.FloorHeatYear.Add(md_y);
                #endregion

                IList<FloorHeat> keep_FloorHeat = new List<FloorHeat>();

                for (int i = 0; i < 12; i++)
                {
                    #region code
                    var e_p = heat_prv.Where(x => x.MM == (i + 1)).FirstOrDefault();
                    var f_e_p = e_p == null || e_p.Total == null || floor_prv == 0 ? 0 : e_p.Total / floor_prv;

                    var e_n = heat_now.Where(x => x.MM == (i + 1)).FirstOrDefault();
                    var f_e_n = e_n.Total == null ? 0 : e_n.Total / floor_now;

                    var md = new FloorHeat();
                    md.CustID = CustId;
                    md.YY = YY;
                    md.month = i + 1;

                    md.p_eui_amt = e_p == null ? 0 : e_p.Total;
                    md.n_eui_amt = e_n.Total;

                    md.p_floor = floor_prv;
                    md.n_floor = floor_now;

                    md.p_eui = f_e_p;
                    md.n_eui = f_e_n;

                    db.FloorHeat.Add(md);
                    keep_FloorHeat.Add(md);
                    #endregion
                }

                for (int j = 0; j < 4; j++)
                {
                    #region code
                    var md = new FloorHeatQ();
                    md.CustID = CustId;
                    md.YY = YY;
                    md.QNO = (j + 1);

                    var q_item = keep_FloorHeat.Where(x => (x.month - 1) / 3 == j);

                    var handle_result = q_item.GroupBy(x => new { f = 1 }).Select(
                        y => new
                        {
                            sum_p_eui_amt = y.Sum(x => x.p_eui_amt),
                            sum_n_eui_amt = y.Sum(x => x.n_eui_amt),
                            avg_p_floor = y.Average(x => x.p_floor),
                            avg_n_floor = y.Average(x => x.n_floor)
                        }).FirstOrDefault();

                    md.avg_n_floor = handle_result.avg_n_floor;
                    md.avg_p_floor = handle_result.avg_p_floor;
                    md.sum_n_eui_amt = handle_result.sum_n_eui_amt;
                    md.sum_p_eui_amt = handle_result.sum_p_eui_amt;

                    var q_p_value = md.avg_p_floor == 0 ? 0 : md.sum_p_eui_amt / md.avg_p_floor;
                    var q_n_value = md.sum_n_eui_amt / md.avg_n_floor;

                    if (q_p_value == 0)
                    {
                        md.diff_result = 0;
                    }
                    else
                    {
                        md.diff_result = ((q_n_value - q_p_value) / q_p_value) * 100;
                    }

                    db.FloorHeatQ.Add(md);
                    #endregion
                }
                await db.SaveChangesAsync();




                #endregion
            }
            else {

                var last_year_elec_months = await GetCalDefHeat(CustId, YY - 1);
                var now_year_elec_months = await GetCalDefHeat(CustId, YY);

                var mms = await db.FloorHeat.Where(x => x.CustID == CustId && x.YY == YY).OrderBy(x => x.month).ToListAsync();
                var mmq = await db.FloorHeatQ.Where(x => x.CustID == CustId && x.YY == YY).OrderBy(x => x.QNO).ToListAsync();
                var year_heat = await db.FloorHeatYear.FindAsync(new object[] { CustId, YY });
                #region Code Month
                for (int i = 0; i < 12; i++)
                {
                    var mm = mms.FirstOrDefault(x => x.month == (i + 1));

                    var last_year_elec_use_amt_month = last_year_elec_months.Where(x => x.MM == (i + 1)).FirstOrDefault();
                    if (mm != null && last_year_elec_use_amt_month != null)
                    {
                        mm.p_eui_amt = last_year_elec_use_amt_month.Total;
                        mm.p_eui = mm.p_floor == 0 ? 0 : mm.p_eui_amt / mm.p_floor; //每月 用電量/樓地板面積
                    }

                    var now_year_elec_use_amt_month = now_year_elec_months.Where(x => x.MM == (i + 1)).FirstOrDefault();
                    if (mm != null && now_year_elec_use_amt_month != null)
                    {
                        mm.n_eui_amt = now_year_elec_use_amt_month.Total;
                        mm.n_eui = mm.n_eui_amt / mm.n_floor; //每月 用電量/樓地板面積
                    }

                }
                #endregion

                #region Code Q
                for (int j = 0; j < 4; j++)
                {
                    var qno = j + 1;
                    var q_data = mmq.FirstOrDefault(x => x.QNO == qno);

                    if (q_data != null)
                    {
                        var q_data_by_mms = mms.Where(x => (x.month - 1) / 3 == j);
                        var q_result = q_data_by_mms.GroupBy(x => new { f = 1 }).Select(
                        y => new
                        {
                            sum_p_eui_amt = y.Sum(x => x.p_eui_amt),
                            sum_n_eui_amt = y.Sum(x => x.n_eui_amt),
                            avg_p_floor = y.Average(x => x.p_floor),
                            avg_n_floor = y.Average(x => x.n_floor)
                        }).FirstOrDefault();

                        q_data.avg_p_floor = q_result.avg_p_floor;
                        q_data.avg_n_floor = q_result.avg_n_floor;
                        q_data.sum_p_eui_amt = q_result.sum_p_eui_amt;
                        q_data.sum_n_eui_amt = q_result.sum_n_eui_amt;

                        var q_p_value = q_data.avg_p_floor == 0 ? 0 : q_data.sum_p_eui_amt / q_data.avg_p_floor;
                        var q_n_value = q_data.sum_n_eui_amt / q_data.avg_n_floor;

                        if (q_p_value == 0 || q_n_value == 0)
                        {
                            q_data.diff_result = 0;
                        }
                        else
                        {
                            q_data.diff_result = ((q_n_value - q_p_value) / q_p_value) * 100;
                        }
                    }
                }
                #endregion

                #region Year
                if (year_heat != null)
                {
                    year_heat.n_floor = floor_now;
                    year_heat.p_eui_amt = last_year_elec_months.Select(x => x.Total).DefaultIfEmpty(0).Sum();
                    year_heat.n_eui_amt = now_year_elec_months.Select(x => x.Total).DefaultIfEmpty(0).Sum();

                    year_heat.p_eui = floor_prv == 0 ? 0 : (year_heat.p_eui_amt / year_heat.p_floor); //預防分母為0
                    year_heat.n_eui = floor_now == 0 ? 0 : (year_heat.n_eui_amt / floor_now);

                    if (year_heat.p_eui == 0)
                    {
                        year_heat.diff_result = 0;
                    }
                    else {
                        year_heat.diff_result = ((year_heat.n_eui - year_heat.p_eui) / year_heat.p_eui) * 100; //年度差異分析
                    }
                }
                #endregion

                await db.SaveChangesAsync();
            }

            var item = await db.FloorHeat
                .Where(x => x.CustID == CustId && x.YY == YY)
                .OrderBy(x => x.month)
                .ToListAsync();

            r.data = item;
            r.result = true;

            return defJSONNull(r);
        }
Ejemplo n.º 30
0
        public async Task<string> InsPlanEnergyResult_2015(InsPlanEnergyResult_2015Param param)
        {
            var db = new EnergyNetEntities();
            AjaxResult r = new AjaxResult();
            var pass_state = StateCheck(param.CustId);
            if (pass_state == 1)
            {
                r.result = false;
                r.message = "初審已通過不可更新!";
                return defJSON(r);
            }
            try
            {
                var md = param.md;
                md.item = (new Random()).Next(1000, 2000);
                md.CalToOilKi = CalToOilKi(md.eng_type, (decimal)md.fma_no3_F);
                db.PlanEnergyResult_2015.Add(md);
                await db.SaveChangesAsync();

                RItemPlanEnergyResult_2015(md.CustID, md.YY);
                RecordReportList(param.CustId, param.YY, "JB1");
                r.result = true;
            }
            catch (DbEntityValidationException ex)
            {
                r.result = false;
                r.message = getDbEntityValidationException(ex);
                return defJSON(r);
            }

            catch (Exception ex)
            {
                r.result = false;
                r.message = getException(ex);
                return defJSON(r);
            }
            finally
            {
                db.Dispose();
            }
            return defJSON(r);
        }