public HttpResponseMessage postSearchdate(JobMachineDateSearchView model)
        {
            try
            {
                var result = jobSvc.SearchDate(model);

                return(Request.CreateResponse(HttpStatusCode.OK, result));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.ToString()));
            }
        }
示例#2
0
        public JobMachineView SearchDate(JobMachineDateSearchView model)
        {
            using (var ctx = new ConXContext())
            {
                //define model view
                JobMachineView view = new ModelViews.JobMachineView()
                {
                    pageIndex   = model.pageIndex - 1,
                    itemPerPage = model.itemPerPage,
                    totalItem   = 0,


                    datas = new List <ModelViews.JobMachineReqView>()
                };

                string ventity   = model.entity;
                string vwc_code  = model.wc_code;
                string vmc_code  = model.mc_code;
                string vreq_date = model.req_date;
                //int vmps_back_day;
                //DateTime vreq_date;

                //pd_jit_schedule_ctl jit = ctx.jit_schedule_ctl.SqlQuery("select MAX(MPS_BACK_DAY) MPS_BACK_DAY  , max(PD_ENTITY) PD_ENTITY , max(SEQ_NO) SEQ_NO , max(PDGRP_CODE) PDGRP_CODE , max(WC_CODE) WC_CODE from PD_JIT_SCHEDULE_CTL where pd_entity = :param1 and wc_code = :param2", new OracleParameter("param1", ventity), new OracleParameter("param2", vwc_code)).SingleOrDefault();


                //if (jit == null)
                //{
                //    vmps_back_day = 0;
                //}
                //else
                //{
                //    vmps_back_day = jit.MPS_BACK_DAY;
                //}



                //mps_mast mps = ctx.mps_mast.SqlQuery("select max(REQ_DATE) REQ_DATE , max(ENTITY) ENTITY , max(BUILD_NO) BUILD_NO from MPS_MAST where entity = :param1 and req_date <= (SYSDATE + :p_mps_back_day)", new OracleParameter("param1", ventity), new OracleParameter("p_mps_back_day", vmps_back_day)).SingleOrDefault();


                //if (mps == null)
                //{
                //    vreq_date = DateTime.Now;
                //}
                //else
                //{
                //    vreq_date = mps.REQ_DATE;
                //}

                //DateTime vreq_date = DateTime.Now;

                //query data
                string sql = "SELECT REQ_DATE , MC_CODE , SPRING_GRP ,SPRINGTYPE_CODE,PDSIZE_CODE ,PDSIZE_DESC ,sum(PLAN_QTY) PLAN_QTY , sum(ACTUAL_QTY) ACTUAL_QTY FROM (";
                sql += " (select  a.REQ_DATE , a.MC_CODE , a.SPRING_GRP , SPRINGTYPE_CODE , a.PDSIZE_CODE , a.PDSIZE_DESC , count(*) PLAN_QTY , 0 ACTUAL_QTY from MPS_DET_IN_PROCESS a , MPS_DET_WC c";
                sql += " where a.entity = c.entity";
                sql += " and a.req_date = c.req_date";
                sql += " and a.wc_code = c.wc_code";
                sql += " and a.pcs_barcode = c.pcs_barcode";
                sql += " and a.entity = :p_entity";
                sql += " and a.req_date = to_date(:p_req_date,'dd/mm/yyyy')";
                sql += " and a.wc_code = :p_wc_code";
                sql += " and c.mps_st <> 'OCL'";
                sql += " and a.mc_code = :p_mc_code";
                sql += " group by a.req_date , a.mc_code , a.SPRING_GRP , a.SPRINGTYPE_CODE , a.pdsize_code , a.pdsize_desc)";
                sql += " UNION ALL ";
                sql += " (select  a.REQ_DATE , a.MC_CODE , a.SPRING_GRP , a.SPRINGTYPE_CODE , a.PDSIZE_CODE , a.PDSIZE_DESC , 0 PLAN_QTY , count(*) ACTUAL_QTY from MPS_DET_IN_PROCESS a , MPS_DET_WC c";
                sql += " where a.entity = c.entity";
                sql += " and a.req_date = c.req_date";
                sql += " and a.wc_code = c.wc_code";
                sql += " and a.pcs_barcode = c.pcs_barcode";
                sql += " and a.entity = :p_entity";
                sql += " and a.req_date = to_date(:p_req_date,'dd/mm/yyyy')";
                sql += " and a.wc_code = :p_wc_code";
                sql += " and c.mps_st <> 'OCL'";
                sql += " and a.mc_code = :p_mc_code";
                sql += " and a.mps_st = 'Y'";
                sql += " group by a.req_date , a.mc_code , a.SPRING_GRP , a.SPRINGTYPE_CODE, a.pdsize_code , a.pdsize_desc )";
                sql += " ) Group by REQ_DATE,  MC_CODE ,SPRING_GRP ,SPRINGTYPE_CODE, PDSIZE_CODE ,PDSIZE_DESC";
                sql += " Order  by req_date , mc_code , SPRING_GRP ,SPRINGTYPE_CODE, PDSIZE_CODE ,PDSIZE_DESC  ";

                List <JobMachineReqView> jobcurrentView = ctx.Database.SqlQuery <JobMachineReqView>(sql, new OracleParameter("p_entity", ventity), new OracleParameter("p_req_date", vreq_date), new OracleParameter("p_wc_code", vwc_code), new OracleParameter("p_mc_code", vmc_code)).ToList();


                if (jobcurrentView == null)
                {
                    throw new Exception("ไม่มีข้อมูล");
                }

                view.totalItem = jobcurrentView.Count;
                jobcurrentView = jobcurrentView.Skip(view.pageIndex * view.itemPerPage)
                                 .Take(view.itemPerPage)
                                 .ToList();


                int tot_plan_qty   = 0;
                int tot_actual_qty = 0;
                int tot_diff_qty   = 0;

                ////prepare model to modelView
                foreach (var i in jobcurrentView)
                {
                    tot_plan_qty   += i.plan_qty;
                    tot_actual_qty += i.actual_qty;
                    tot_diff_qty   += (i.plan_qty - i.actual_qty);

                    view.datas.Add(new ModelViews.JobMachineReqView()
                    {
                        req_date        = i.req_date,
                        pdsize_code     = i.pdsize_code,
                        pdsize_desc     = i.pdsize_desc,
                        spring_grp      = i.spring_grp,
                        springtype_code = i.springtype_code,
                        plan_qty        = i.plan_qty,
                        actual_qty      = i.actual_qty,
                        diff_qty        = i.plan_qty - i.actual_qty,
                        //pcs_barcode = i.pcs_barcode
                    });
                }

                view.total_plan_qty   = tot_plan_qty;
                view.total_actual_qty = tot_actual_qty;
                view.total_diff_qty   = tot_diff_qty;


                //return data to contoller
                return(view);
            }
        }