public void fn_store_stock_abc_accrue(string sdate, string edate, Form1 frm1)
 {
     frm1.sendSms("매월1일 ABC 누적 데이터 생성 시작");
     fn_get_safe_standard_deviation_log(frm1);                 //매월1일 ABC 누적 데이터  생성
     frm1.sendSms("전월 ABC누적 데이터 백업 완료");
     fn_get_safe_standard_deviation_total(sdate, edate, frm1); //매월1일 ABC 누적 데이터  생성
     frm1.sendSms("매월1일 ABC 누적 데이터 생성 종료");
 }
 public void fn_scmstock(string orderdate1, string orderdate2, Form1 frm1)
 {
     frm1.sendSms("NEWPOS_SCM " + orderdate1 + "  데이터 생성 시작");
     fn_get_stock_preset(orderdate1, orderdate2, frm1); //SCM 기초자료 생성
     // fn_get_stock_preset_jungga(orderdate1, orderdate2, frm1); //정가판매량 업데이트
     // fn_get_stock_preset_panmae(orderdate1, orderdate2, frm1); //판매예측값 업데이트
     //fn_get_stock_preset_stock(orderdate1, orderdate2, frm1); //재고 업데이트
     frm1.sendSms("NEWPOS_SCM  " + orderdate1 + " 데이터 생성  완료");
 }
        private void fn_get_safe_standard_deviation_log(Form1 frm1)
        {
            DateTime today    = DateTime.Now.Date;                                              //현재 날짜 확인
            var      ex_today = today.AddMonths(0);                                             // 월 구함
            var      ex_sdate = ex_today.AddDays(1 - today.Day);                                //현재 날짜 기준의 월의 날짜 1일 구함

            string safe_sale_sdate = string.Format(ex_sdate.AddDays(0).ToString("yyyy-MM-dd")); //전월 날짜 1일을 YYYY-MM-DD형식으로 변경

            myConnection = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("213");
            string         sql     = null;
            string         sql_1   = null;
            SqlCommand     command = new SqlCommand(sql, myConnection);
            SqlDataAdapter adapter = new SqlDataAdapter();

            try
            {
                sql = " insert into preset_scm_stock_share_log  "
                      + " select '" + safe_sale_sdate + "',  storeno, ppmidx, total_jungga, share, sum_share, grade   "
                      + " from preset_scm_stock_share  ";
                command.CommandText    = sql;
                command.CommandTimeout = 120;
                command.ExecuteNonQuery();
                try
                {
                    sql_1 = " delete from preset_scm_stock_share ";
                    command.CommandText    = sql_1;
                    command.CommandTimeout = 120;
                    command.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    frm1.sendSms("[전월 ABC누적 삭제]오류:" + ex.Message);
                    frm1.Log("[전월 ABC누적 삭제]오류:" + ex.Message);
                }
            }
            catch (Exception ex)
            {
                frm1.sendSms("[전월 ABC누적 백업]오류:" + ex.Message);
                frm1.Log("[전월 ABC누적 백업]오류:" + ex.Message);
            }

            myConnection.Dispose();
            myConnection.Close();
        }
        private void fn_get_stock_preset_stock(string orderdate1, string orderdate2, Form1 frm1)
        {
            myConnection = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("213");
            string         queryString1 = "";
            string         ckYYYYMM     = "";
            SqlDataAdapter adapter      = new SqlDataAdapter();

            ckYYYYMM = String.Format("{0:yyyyMM}", Convert.ToDateTime(orderdate1));

            // frm1.sendSms("NEWPOS_SCM  입고량 생성 시작");
            frm1.Log("NEWPOS_SCM 입고량  생성 시작");


            string queryString = "select  a.orderdate, right(a.storeno,4) as storeno, a.ppmidx,  SUM(ISNULL(a.amt_result,0)) as amt_pre ,  SUM(ISNULL(a.amt_input,0)) as amt_input ,(case when (sum(a.amt_result) <= 0) THEN 1 ELSE 0 END) as amt_result       "
                                 + " from pos_store_stock_" + ckYYYYMM + "  as a with( nolock )  "
                                 + " right join  webdb_se.dbo.stock_preset4_2019 as b with( nolock ) on a.orderdate = b.sdate and right(a.storeno,4) = b.storeno and a.ppmidx = b.ppmidx   "
                                 + "where (b.sdate >=  '" + orderdate1 + "' and b.sdate <= '" + orderdate2 + "') and a.storeno <> ''  "
                                 // + " from pos_store_stock  with( nolock )where orderdate >=  '" + orderdate1 + "' and orderdate <= '" + orderdate2 + "'   and a.storeno <> '' "
                                 + " group by a.storeno, a.ppmidx , orderdate  "
                                 // + " HAVING   sum(amt_pre + amt_input + amt_result) <> 0 "
                                 + "	 order by orderdate, a.storeno, a.ppmidx   ";

            adapter.SelectCommand = new SqlCommand(queryString, myConnection);
            adapter.SelectCommand.CommandTimeout = 0;
            SqlCommand command = new SqlCommand(queryString, myConnection);


            try
            {
                DataSet ds = new DataSet();
                adapter.Fill(ds);
                DataTable         table = ds.Tables[0];
                DataRowCollection rows  = table.Rows;

                string storeno     = "";
                string ppmidx      = "";
                string ckorderdate = "";
                int    amt_input   = 0;
                int    amt_pre     = 0;
                int    amt_result  = 0;

                myConnection.Dispose();
                myConnection.Close();
                myConnection_201 = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("azure");

                foreach (DataRow dr in rows)
                {
                    storeno     = dr["storeno"].ToString();
                    ckorderdate = String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(dr["orderdate"].ToString()));
                    ppmidx      = dr["ppmidx"].ToString();
                    amt_input   = Convert.ToInt32(dr["amt_input"].ToString());
                    amt_pre     = Convert.ToInt32(dr["amt_pre"].ToString());
                    amt_result  = Convert.ToInt32(dr["amt_result"].ToString());


                    queryString1 = "   UPDATE scm_stock_preset SET "
                                   + "   amt_input = '" + amt_input + "'"
                                   + "   ,amt_pre = '" + amt_pre + "'"
                                   + "  ,amt_soldout = '" + amt_result + "'"
                                   + "   WHERE orderdate = '" + ckorderdate + "' and storeno = '" + storeno + "'  AND  ppmidx = '" + ppmidx + "'";

                    //Log((String.Format("[in_stock] 쿼리[{0}] : ", queryString1)));

                    SqlCommand command1 = new SqlCommand(queryString1, myConnection_201);
                    command1.CommandText = queryString1;
                    command1.ExecuteNonQuery();
                }
                frm1.sendSms("NEWPOS_SCM 입고량  생성 완료(4/4)");
                frm1.Log("NEWPOS_SCM 입고량  생성 완료");
                myConnection_201.Dispose();
                myConnection_201.Close();
            }
            catch (Exception ex)
            {
                frm1.Log("[입고량]:" + ex.Message);
                frm1.Log("입고량 쿼리:" + queryString1);
            }
        }
        private void fn_get_stock_preset_panmae(string orderdate1, string orderdate2, Form1 frm1)
        {
            myConnection = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("213");
            string         queryString1 = "";
            SqlDataAdapter adapter      = new SqlDataAdapter();

            // frm1.sendSms("NEWPOS_SCM  판매예측 생성 시작");
            frm1.Log("NEWPOS_SCM 판매예측  생성 시작");


            string queryString = "select  storeno, ppmidx, sdate, ( SUM(ISNULL(amt_sale,0)) ) as panmae   "
                                 + " from webdb_se.dbo.preset_sale_data_2019 with (nolock)where sdate >=  '" + orderdate1 + "' and sdate <= '" + orderdate2 + "'  "
                                 //       + " from preset_sale_data with (nolock) where sdate >=  '" + orderdate1 + "' and sdate <= '" + orderdate2 + "'  "
                                 + " group by storeno, ppmidx , sdate  "
                                 + " having SUM(ISNULL(amt_sale,0)) <> 0  "
                                 + " order by sdate ";


            //AND CONVERT(Varchar(10),a.regdate,120) = CONVERT(Varchar(10),getdate(),120)";

            adapter.SelectCommand = new SqlCommand(queryString, myConnection);
            adapter.SelectCommand.CommandTimeout = 0;
            SqlCommand command = new SqlCommand(queryString, myConnection);


            try
            {
                DataSet ds = new DataSet();
                adapter.Fill(ds);
                DataTable         table = ds.Tables[0];
                DataRowCollection rows  = table.Rows;

                string storeno = "";
                string ppmidx  = "";
                string cksdate = "";
                int    panmae  = 0;

                myConnection.Dispose();
                myConnection.Close();
                myConnection_201 = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("azure");


                foreach (DataRow dr in rows)
                {
                    storeno = dr["storeno"].ToString();
                    cksdate = String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(dr["sdate"].ToString()));
                    ppmidx  = dr["ppmidx"].ToString();
                    panmae  = Convert.ToInt32(dr["panmae"].ToString());


                    //D-6, D-3 실행하므로 기존에 있는 물품인 경우, 설정값 Update 없는 물품인 경우 Insert
                    queryString1 = "   UPDATE scm_stock_preset SET "
                                   + "   amt_panmae = '" + panmae + "'"
                                   + "   WHERE orderdate = '" + cksdate + "' and storeno = '" + storeno + "'  AND  ppmidx = '" + ppmidx + "'";

                    //Log((String.Format("[in_stock] 쿼리[{0}] : ", queryString1)));

                    SqlCommand command1 = new SqlCommand(queryString1, myConnection_201);
                    command1.CommandText = queryString1;
                    command1.ExecuteNonQuery();
                }
                frm1.sendSms("NEWPOS_SCM 판매예측  생성 완료(3/4)");
                frm1.Log("NEWPOS_SCM 판매예측  생성 완료");
                myConnection_201.Dispose();
                myConnection_201.Close();
            }
            catch (Exception ex)
            {
                frm1.Log("[판매예측]:" + ex.Message);
                frm1.Log("판매예측쿼리:" + queryString1);
            }
        }
        private void fn_get_stock_preset_jungga(string orderdate1, string orderdate2, Form1 frm1)
        {
            myConnection = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("213");
            string         queryString1 = "";
            SqlDataAdapter adapter      = new SqlDataAdapter();

            //frm1.sendSms("NEWPOS_SCM 정가 판매 생성 시작");
            frm1.Log("NEWPOS_SCM 정가 판매  생성 시작");

            string queryString = "select  right(a.storeno,4) as storeno, a.ppmidx, orderdate as ckorderdate,( SUM(ISNULL(qty_total,0)) - SUM(ISNULL(qty_discount,0)) ) as jungga  "
                                 + " from pos_sale_A01_ppm_daily as a  with (nolock)   "
                                 + " 	inner  join  webdb_se.dbo.stock_preset4_2019 as b with (nolock) on   a.orderdate = b.sdate and right(a.storeno,4) = b.storeno and a.ppmidx = b.ppmidx  "
                                 + "  where b.sdate >=  '" + orderdate1 + "' and b.sdate <= '" + orderdate2 + "' "
                                 + "   AND b.ppmidx IN (SELECT idx FROM pos_product_master as a with (nolock) INNER JOIN preset_base_product as b with (nolock) ON a.icoop_code = b.product_code WHERE b.vc = '1' )"
                                 + "  group by a.storeno, a.ppmidx,orderdate  "
                                 + "  HAVING SUM(ISNULL(qty_total,0)) - SUM(ISNULL(qty_discount,0))  > 0 "
                                 + " order by orderdate ";

            adapter.SelectCommand = new SqlCommand(queryString, myConnection);
            adapter.SelectCommand.CommandTimeout = 0;
            SqlCommand command = new SqlCommand(queryString, myConnection);


            try
            {
                DataSet ds = new DataSet();
                adapter.Fill(ds);
                DataTable         table = ds.Tables[0];
                DataRowCollection rows  = table.Rows;

                string storeno     = "";
                string ppmidx      = "";
                string ckorderdate = "";
                int    jungga      = 0;

                myConnection.Dispose();
                myConnection.Close();
                myConnection_201 = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("azure");


                foreach (DataRow dr in rows)
                {
                    storeno     = dr["storeno"].ToString();
                    ckorderdate = String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(dr["ckorderdate"].ToString()));
                    ppmidx      = dr["ppmidx"].ToString();
                    jungga      = Convert.ToInt32(dr["jungga"].ToString());


                    queryString1 = "   UPDATE scm_stock_preset SET "
                                   + "   amt_jungga = '" + jungga + "'"
                                   + "   WHERE orderdate = '" + ckorderdate + "' and storeno = '" + storeno + "'  AND   ppmidx = '" + ppmidx + "'";

                    SqlCommand command1 = new SqlCommand(queryString1, myConnection_201);
                    command1.CommandText = queryString1;
                    command1.ExecuteNonQuery();
                }
                frm1.sendSms("NEWPOS_SCM 정가 판매  생성 완료(2/4)");
                frm1.Log("NEWPOS_SCM 정가 판매 생성 완료");
                myConnection_201.Dispose();
                myConnection_201.Close();
            }
            catch (Exception ex)
            {
                frm1.Log("[정가 판매]:" + ex.Message);
                frm1.Log("정가 판매쿼리:" + queryString1);
            }
        }
        private void fn_get_stock_preset(string orderdate1, string orderdate2, Form1 frm1)
        {
            myConnection = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("213");

            int totalcount = 0;
            int pagecount  = 0;
            int i;

            string YYYYMM = "";

            YYYYMM = String.Format("{0:yyyyMM}", Convert.ToDateTime(orderdate1));

            frm1.Log("NEWPOS_SCM 기준데이터 생성 시작");

            string queryString4 = "  select count(g.storeno) from ( SELECT t1.storeno as storeno, t1.sdate,  t1.m_code as m_code, t1.product_code, t4.storeSubject as storeSubject,  t1.ppmidx,t3.subject, t1.reg_gb,"
                                  + "     (case when (t1.product_code <> '') THEN '물품' ELSE '그룹' END) as group_yn,  isnull(gg.group_cd,'') as group_cd,isnull( gg.group_nm,'') as group_nm,  t1.scm_gb,   "
                                  + " 	 (case when ( t1.stock_only_ab = 'A') THEN 'Y' when ( t1.stock_only_ab = 'B') THEN 'N' ELSE '' END) as  stock_only_ab, "
                                  + " 	 (case when ( t1.scm_susik = 'D') THEN '기본' when ( t1.scm_susik = 'B') THEN '묶음' ELSE '' END) as  scm_susik"
                                  + "	 , t1.amt_bundle, t5.subject3 as pdbsubject ,t5.idx as pdbidx , t7.subject as pcgsubject ,t7.idx as pcgidx,t6.subject as pcmsubject,t6.idx as pcmidx"
                                  + "	 ,group_susik,amt_balju_pre,amt_balju,amt_sale_d3,amt_sale_d2,amt_sale_d1,amt_sale_d"
                                  + "	  ,amt_pda_d3,amt_pda_d2,amt_pda_d1,amt_safe_d,amt_safe_max,amt_magam,amt_input_d3,amt_input_d2,amt_input_d1"
                                  + "	  ,amt_adjust1,amt_adjust2,amt_adjust3,amt_adjust4,amt_adjust5,amt_adjust6,amt_adjust7,t1.vc, t3.erp_p_ab,t3.erp_netshow_ab"
                                  + "      , (SUM(ISNULL(t8.amt_sale, 0)) ) as panmae "
                                  + "     , SUM(ISNULL(t9.amt_result,0)) as amt_pre ,  SUM(ISNULL(t9.amt_input,0)) as amt_input ,(case when (sum(t9.amt_result) <= 0) THEN 1 ELSE 0 END) as amt_soldout  "
                                  + "     ,SUM(ISNULL(t10.qty_jungga, 0)) as qty_jungga "
                                  + "	 FROM webdb_se.dbo.stock_preset4_2019 as t1 with (nolock) "
                                  + "     LEFT OUTER JOIN pos_product_master as t3 with (nolock) ON t1.ppmidx = t3.idx"
                                  + "	 LEFT OUTER JOIN pos_erp_goods_group as gg with (nolock) On t1.ppmidx = gg.product_ppmidx "
                                  + "	 LEFT OUTER JOIN pos_db_BrandClass as t5 with (nolock) On t5.idx = t3.pdbidx "
                                  + "	 LEFT OUTER JOIN pos_category_master as t6 with (nolock) On t6.idx = t3.pcmidx "
                                  + "	 LEFT OUTER JOIN pos_category_group as t7 with (nolock) on t7.idx = t6.pcgidx"
                                  // + "     LEFT OUTER JOIN webdb_se.dbo.preset_sale_data_2019 as t8 with(nolock) on convert(varchar(10),t1.ppmidx) = t8.ppmidx and t1.sdate = t8.sdate and t1.storeno = t8.storeno "
                                  + "     LEFT OUTER JOIN preset_sale_data as t8 with(nolock) on convert(varchar(10),t1.ppmidx) = t8.ppmidx and t1.sdate = t8.sdate and t1.storeno = t8.storeno "
                                  + "     LEFT OUTER JOIN pos_store_stock_" + YYYYMM + " as t9 with(nolock) on t9.orderdate = t1.sdate and right(t9.storeno,4) = t1.storeno and t9.ppmidx = t1.ppmidx "
                                  + "     LEFT OUTER JOIN preset_sale_ppm_daily as t10 with(nolock) on t10.ppmidx = t1.ppmidx  and t10.orderdate = t1.sdate and t10.storeno = t1.storeno "
                                  + "	  INNER JOIN pos_store as t4 ON t1.storeno=right(t4.storeno,4) and t4.vc_businessStatus='1' "
                                  + "	  WHERE (t1.sdate >=  '"+ orderdate1 + "' and t1.sdate <=  '" + orderdate2 + "' )   "
                                  + "	  group by  t1.sdate,t1.storeno , t1.m_code , t4.storeSubject ,  t1.product_code, t3.subject, t1.reg_gb,t1.product_code,"
                                  + "	   t1.scm_gb, t1.stock_only_ab, t1.scm_susik, t1.amt_bundle, t5.subject3  ,t5.idx , t7.subject  ,t7.idx,t6.subject,t6.idx,"
                                  + "	  gg.group_cd, gg.group_nm,t1.ppmidx,group_susik,amt_balju_pre,amt_balju,amt_sale_d3,amt_sale_d2,amt_sale_d1,amt_sale_d"
                                  + "     ,amt_pda_d3,amt_pda_d2,amt_pda_d1,amt_safe_d,amt_safe_max,amt_magam,amt_input_d3,amt_input_d2,amt_input_d1"
                                  + "	  ,amt_adjust1,amt_adjust2,amt_adjust3,amt_adjust4,amt_adjust5,amt_adjust6,amt_adjust7,t1.vc, t3.erp_p_ab,t3.erp_netshow_ab"
                                  + " UNION ALL  "
                                  + "  SELECT  distinct t1.storeno as storeno, t1.sdate,   t1.m_code as m_code, ''  as  product_code,  t4.storeSubject as storeSubject,   null  as ppmidx, ''  as subject, t1.reg_gb,  "
                                  + "  (case when (''='') THEN '그룹' ELSE '물품' END) as group_yn, gg.group_cd, gg.group_nm, "
                                  + "  (case when (group_ab = 'A') then 'Y' else 'N' END) as scm_gb,"
                                  + "  (case when ( t1.stock_only_ab = 'A') THEN 'Y' when ( t1.stock_only_ab = 'B') THEN 'N' ELSE '' END) as  stock_only_ab,  "
                                  + "	  ''  as scm_susik,  ''  as amt_bundle,t5.subject3 as pdbsubject ,t5.idx as pdbidx , t7.subject as pcgsubject ,t7.idx as pcgidx,t6.subject as pcmsubject,t6.idx as pcmidx, "
                                  + "	  ''  as  group_susik,amt_balju_pre,amt_balju,amt_sale_d3,amt_sale_d2,amt_sale_d1,amt_sale_d "
                                  + "  ,amt_pda_d3,amt_pda_d2,amt_pda_d1,amt_safe_d, 0 as amt_safe_max,amt_magam,amt_input_d3,amt_input_d2,amt_input_d1 "
                                  + "  ,amt_adjust1,amt_adjust2,0 as  amt_adjust3,amt_adjust4,0 as  amt_adjust5,amt_adjust6,amt_adjust7,t1.vc, t3.erp_p_ab,t3.erp_netshow_ab"
                                  + " , (SUM(ISNULL(t8.amt_sale, 0)) ) as panmae  "
                                  + ", SUM(ISNULL(t9.amt_result, 0)) as amt_pre ,  SUM(ISNULL(t9.amt_input, 0)) as amt_input ,(case when(sum(t9.amt_result) <= 0) THEN 1 ELSE 0 END) as amt_soldout "
                                  + " , SUM(ISNULL(t10.qty_jungga, 0)) as qty_jungga "
                                  + "	   FROM stock_preset4_group as t1  "
                                  + "   LEFT OUTER JOIN pos_erp_goods_group as gg On t1.group_cd = gg.group_cd  "
                                  + "   LEFT OUTER JOIN pos_product_master as t3 with (nolock) ON t3.icoop_code = gg.product_cd  "
                                  + "   LEFT OUTER JOIN pos_db_BrandClass as t5 with (nolock) On t5.idx = t3.pdbidx  "
                                  + "   LEFT OUTER JOIN pos_category_master as t6 with (nolock) On t6.idx = t3.pcmidx "
                                  + "   LEFT OUTER JOIN pos_category_group as t7 with (nolock) on t7.idx = t6.pcgidx  "
                                  //+ "     LEFT OUTER JOIN webdb_se.dbo.preset_sale_data_2019 as t8 with(nolock) on convert(varchar(10),gg.product_ppmidx) = t8.ppmidx and t1.sdate = t8.sdate and t1.storeno = t8.storeno "
                                  + "     LEFT OUTER JOIN preset_sale_data as t8 with(nolock) on convert(varchar(10),gg.product_ppmidx) = t8.ppmidx and t1.sdate = t8.sdate and t1.storeno = t8.storeno "
                                  + "     LEFT OUTER JOIN pos_store_stock_" + YYYYMM + "  as t9 with(nolock) on t9.orderdate = t1.sdate and right(t9.storeno,4) = t1.storeno and t9.ppmidx = gg.product_ppmidx "
                                  + "     LEFT OUTER JOIN preset_sale_ppm_daily as t10 with(nolock) on t10.ppmidx = gg.product_ppmidx  and t10.orderdate = t1.sdate and t10.storeno = t1.storeno "
                                  + "   INNER JOIN pos_store as t4 ON t1.storeno=right(t4.storeno,4) and t4.vc_businessStatus='1'  "
                                  + "   WHERE (t1.sdate >=  '" + orderdate1 + "'  and t1.sdate <=  '" + orderdate2 + "' )  "
                                  + "     group by t1.storeno ,t1.sdate, t1.m_code , t4.storeSubject ,   t3.subject, t1.reg_gb, "
                                  + "     t1.stock_only_ab,  t5.subject3  ,t5.idx , t7.subject  ,t7.idx,t6.subject,t6.idx,group_ab,gg.group_cd, gg.group_nm "
                                  + "	 ,amt_balju_pre,amt_balju,amt_sale_d3,amt_sale_d2,amt_sale_d1,amt_sale_d "
                                  + "     ,amt_pda_d3,amt_pda_d2,amt_pda_d1,amt_safe_d,amt_magam,amt_input_d3,amt_input_d2,amt_input_d1 "
                                  + "     ,amt_adjust1,amt_adjust2,amt_adjust4,amt_adjust6,amt_adjust7,t1.vc, t3.erp_p_ab,t3.erp_netshow_ab "
                                  + "     ) as g";

            SqlCommand    command4 = new SqlCommand(queryString4, myConnection);
            SqlDataReader reader4  = command4.ExecuteReader();

            while (reader4.Read())
            {
                totalcount = Convert.ToInt32(reader4[0].ToString()); //ppmidx
            }
            reader4.Close();

            myConnection.Dispose();
            myConnection.Close();
            frm1.Log("NEWPOS_SCM 자료 생성 개수(" + totalcount + ")");
            //frm1.Log("NEWPOS_SCM 쿼리(" + queryString4 + ")");
            pagecount = totalcount / 50000;
            pagecount = pagecount + 1;



            for (i = 1; i <= pagecount; i++)
            {
                myConnection_201 = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("azure");
                string         queryString1 = "";
                string         queryString3 = "";
                SqlDataAdapter adapter      = new SqlDataAdapter();
                SqlDataAdapter adapter1     = new SqlDataAdapter();

                //frm1.sendSms("NEWPOS_SCM 자료 생성 시작(" + String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now.AddDays(0).ToString()) + ")("+ i + "/"+pagecount+")");


                var table_ex = new DataTable();


                queryString3           = "SELECT TOP 0 * FROM scm_stock_preset ";
                adapter1.SelectCommand = new SqlCommand(queryString3, myConnection_201);
                SqlCommand command2 = new SqlCommand(queryString3, myConnection_201);

                adapter1.Fill(table_ex);


                myConnection_201.Dispose();
                myConnection_201.Close();
                myConnection = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("213");

                //step1. 바코등 등록 및 수정 대상물품 조회
                string queryString = "SELECT t1.storeno as storeno, t1.sdate,  t1.m_code as m_code, t1.product_code, t4.storeSubject as storeSubject, convert(varchar(10),t1.ppmidx) as ppmidx,t3.subject, t1.reg_gb,"
                                     + "  (case when (t1.product_code <> '') THEN '물품' ELSE '그룹' END) as group_yn,  isnull(gg.group_cd,'') as group_cd,isnull( gg.group_nm,'') as group_nm, (case when (t1.scm_gb =  '0') THEN '' ELSE t1.scm_gb END) as scm_gb  ,   "
                                     + " 	 (case when ( t1.stock_only_ab = 'A') THEN 'Y' when ( t1.stock_only_ab = 'B') THEN 'N' ELSE '' END) as  stock_only_ab, "
                                     + " 	 (case when ( t1.scm_susik = 'D') THEN '기본' when ( t1.scm_susik = 'B') THEN '묶음' ELSE '' END) as  scm_susik"
                                     + "	,isnull(t1.amt_bundle,0) as amt_bundle, t5.subject3 as pdbsubject ,t5.idx as pdbidx , t7.subject as pcgsubject ,t7.idx as pcgidx,t6.subject as pcmsubject,t6.idx as pcmidx"
                                     + "	,group_susik,amt_balju_pre,amt_balju,amt_sale_d3,amt_sale_d2,amt_sale_d1,amt_sale_d"
                                     + "	  ,amt_pda_d3,amt_pda_d2,amt_pda_d1,amt_safe_d,amt_safe_max,amt_magam,amt_input_d3,amt_input_d2,amt_input_d1"
                                     + "	  ,amt_adjust1,amt_adjust2,amt_adjust3,amt_adjust4,amt_adjust5,amt_adjust6,amt_adjust7,t1.vc, isnull(t3.erp_p_ab,'') as  erp_p_ab,  isnull(t3.erp_netshow_ab,'') as erp_netshow_ab "
                                     + "      , (SUM(ISNULL(t8.amt_sale, 0)) ) as panmae "
                                     + "     , SUM(ISNULL(t9.amt_result,0)) as amt_pre ,  SUM(ISNULL(t9.amt_input,0)) as amt_input ,(case when (sum(t9.amt_result) <= 0) THEN 1 ELSE 0 END) as amt_soldout  "
                                     + "     ,SUM(ISNULL(t10.qty_jungga, 0)) as qty_jungga "
                                     + "	 FROM webdb_se.dbo.stock_preset4_2019 as t1 with (nolock) "
                                     + "     LEFT OUTER JOIN pos_product_master as t3 with (nolock) ON t1.ppmidx = t3.idx "
                                     + "	 LEFT OUTER JOIN pos_erp_goods_group as gg with (nolock) On t1.ppmidx = gg.product_ppmidx "
                                     + "	 LEFT OUTER JOIN pos_db_BrandClass as t5 with (nolock) On t5.idx = t3.pdbidx "
                                     + "	 LEFT OUTER JOIN pos_category_master as t6 with (nolock) On t6.idx = t3.pcmidx "
                                     + "	 LEFT OUTER JOIN pos_category_group as t7 with (nolock) on t7.idx = t6.pcgidx"
                                     + "     LEFT OUTER JOIN preset_sale_data as t8 with(nolock) on convert(varchar(10),t1.ppmidx) = t8.ppmidx and t1.sdate = t8.sdate and t1.storeno = t8.storeno "
                                     //  + "     LEFT OUTER JOIN webdb_se.dbo.preset_sale_data_2019 as t8 with(nolock) on convert(varchar(10),t1.ppmidx) = t8.ppmidx and t1.sdate = t8.sdate and t1.storeno = t8.storeno "
                                     + "     LEFT OUTER JOIN pos_store_stock_" + YYYYMM + " as t9 with(nolock) on t9.orderdate = t1.sdate and right(t9.storeno,4) = t1.storeno and t9.ppmidx = t1.ppmidx "
                                     + "     LEFT OUTER JOIN preset_sale_ppm_daily as t10 with(nolock) on t10.ppmidx = t1.ppmidx  and t10.orderdate = t1.sdate and t10.storeno = t1.storeno "
                                     + "	  INNER JOIN pos_store as t4 ON t1.storeno=right(t4.storeno,4) and t4.vc_businessStatus='1' "
                                     + "	  WHERE (t1.sdate >=  '"+ orderdate1 + "' and t1.sdate <=  '" + orderdate2 + "' )    "
                                     + "	  group by  t1.sdate,t1.storeno , t1.m_code , t4.storeSubject ,  t1.product_code, t3.subject, t1.reg_gb,t1.product_code,"
                                     + "	   t1.scm_gb, t1.stock_only_ab, t1.scm_susik, t1.amt_bundle, t5.subject3  ,t5.idx , t7.subject  ,t7.idx,t6.subject,t6.idx,"
                                     + "	  gg.group_cd, gg.group_nm,t1.ppmidx,group_susik,amt_balju_pre,amt_balju,amt_sale_d3,amt_sale_d2,amt_sale_d1,amt_sale_d"
                                     + ",   amt_pda_d3,amt_pda_d2,amt_pda_d1,amt_safe_d,amt_safe_max,amt_magam,amt_input_d3,amt_input_d2,amt_input_d1"
                                     + "	  ,amt_adjust1,amt_adjust2,amt_adjust3,amt_adjust4,amt_adjust5,amt_adjust6,amt_adjust7,t1.vc,t3.erp_p_ab,t3.erp_netshow_ab"
                                     + "	  UNION ALL  "
                                     + " SELECT  distinct t1.storeno as storeno, t1.sdate,   t1.m_code as m_code, ''  as  product_code,  t4.storeSubject as storeSubject,   ''  as ppmidx, ''  as subject, t1.reg_gb,  "
                                     + "	  (case when (''='') THEN '그룹' ELSE '물품' END) as group_yn, gg.group_cd, gg.group_nm, "
                                     + " (case when (group_ab = 'A') then 'Y' else 'N' END) as scm_gb, "
                                     + " (case when ( t1.stock_only_ab = 'A') THEN 'Y' when ( t1.stock_only_ab = 'B') THEN 'N' ELSE '' END) as  stock_only_ab,  "
                                     + "	    ''  as scm_susik,  ''  as amt_bundle,t5.subject3 as pdbsubject ,t5.idx as pdbidx , t7.subject as pcgsubject ,t7.idx as pcgidx,t6.subject as pcmsubject,t6.idx as pcmidx, "
                                     + "	  ''  as  group_susik,amt_balju_pre,amt_balju,amt_sale_d3,amt_sale_d2,amt_sale_d1,amt_sale_d "
                                     + " ,amt_pda_d3,amt_pda_d2,amt_pda_d1,amt_safe_d, 0 as amt_safe_max,amt_magam,amt_input_d3,amt_input_d2,amt_input_d1 "
                                     + "  ,amt_adjust1,amt_adjust2,0 as  amt_adjust3,amt_adjust4,0 as  amt_adjust5,amt_adjust6,amt_adjust7,t1.vc, isnull(t3.erp_p_ab,'') as  erp_p_ab,  isnull(t3.erp_netshow_ab,'') as erp_netshow_ab "
                                     + " , (SUM(ISNULL(t8.amt_sale, 0)) ) as panmae  "
                                     + ", SUM(ISNULL(t9.amt_result, 0)) as amt_pre ,  SUM(ISNULL(t9.amt_input, 0)) as amt_input ,(case when(sum(t9.amt_result) <= 0) THEN 1 ELSE 0 END) as amt_soldout "
                                     + " , SUM(ISNULL(t10.qty_jungga, 0)) as qty_jungga "
                                     + "	   FROM stock_preset4_group as t1  "
                                     + "LEFT OUTER JOIN pos_erp_goods_group as gg On t1.group_cd = gg.group_cd  "
                                     + "   LEFT OUTER JOIN pos_product_master as t3 with (nolock) ON t3.icoop_code = gg.product_cd  "
                                     + "   LEFT OUTER JOIN pos_db_BrandClass as t5 with (nolock) On t5.idx = t3.pdbidx  "
                                     + "   LEFT OUTER JOIN pos_category_master as t6 with (nolock) On t6.idx = t3.pcmidx "
                                     + "   LEFT OUTER JOIN pos_category_group as t7 with (nolock) on t7.idx = t6.pcgidx  "
                                     //+ "     LEFT OUTER JOIN webdb_se.dbo.preset_sale_data_2019 as t8 with(nolock) on convert(varchar(10),gg.product_ppmidx) = t8.ppmidx and t1.sdate = t8.sdate and t1.storeno = t8.storeno "
                                     + "     LEFT OUTER JOIN preset_sale_data as t8 with(nolock) on convert(varchar(10),gg.product_ppmidx) = t8.ppmidx and t1.sdate = t8.sdate and t1.storeno = t8.storeno "
                                     + "     LEFT OUTER JOIN pos_store_stock_" + YYYYMM + "  as t9 with(nolock) on t9.orderdate = t1.sdate and right(t9.storeno,4) = t1.storeno and t9.ppmidx = gg.product_ppmidx "
                                     + "     LEFT OUTER JOIN preset_sale_ppm_daily as t10 with(nolock) on t10.ppmidx = gg.product_ppmidx  and t10.orderdate = t1.sdate and t10.storeno = t1.storeno "
                                     + "   INNER JOIN pos_store as t4 ON t1.storeno=right(t4.storeno,4) and t4.vc_businessStatus='1'  "
                                     + "WHERE (t1.sdate >=  '" + orderdate1 + "'  and t1.sdate <=  '" + orderdate2 + "' )   "
                                     + "     group by t1.storeno ,t1.sdate, t1.m_code , t4.storeSubject ,   t3.subject, t1.reg_gb, "
                                     + "   t1.stock_only_ab,  t5.subject3  ,t5.idx , t7.subject  ,t7.idx,t6.subject,t6.idx,group_ab,gg.group_cd, gg.group_nm "
                                     + "	,amt_balju_pre,amt_balju,amt_sale_d3,amt_sale_d2,amt_sale_d1,amt_sale_d "
                                     + "  ,amt_pda_d3,amt_pda_d2,amt_pda_d1,amt_safe_d,amt_magam,amt_input_d3,amt_input_d2,amt_input_d1 "
                                     + ",amt_adjust1,amt_adjust2,amt_adjust4,amt_adjust6,amt_adjust7,t1.vc,t3.erp_p_ab,t3.erp_netshow_ab "
                                     + " ORDER BY t1.sdate,t1.storeno, group_cd desc, product_code"
                                     + " offset(" + i + " - 1) * 50000 rows"
                                     + " Fetch next 50000 rows only";

                adapter.SelectCommand = new SqlCommand(queryString, myConnection);
                adapter.SelectCommand.CommandTimeout = 0;
                SqlCommand command = new SqlCommand(queryString, myConnection);



                try
                {
                    DataSet ds = new DataSet();
                    adapter.Fill(ds);
                    DataTable         table = ds.Tables[0];
                    DataRowCollection rows  = table.Rows;

                    myConnection.Dispose();
                    myConnection.Close();
                    myConnection_201 = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("azure");

                    // int i = 0;

                    foreach (DataRow dr in rows)
                    {
                        var row_ex = table_ex.NewRow();

                        row_ex["orderdate"]    = String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(dr["sdate"].ToString()));
                        row_ex["storeno"]      = dr["storeno"].ToString();
                        row_ex["m_code"]       = dr["m_code"].ToString();
                        row_ex["ppmidx"]       = dr["ppmidx"].ToString();
                        row_ex["product_code"] = dr["product_code"].ToString();
                        row_ex["storeSubject"] = dr["storeSubject"].ToString();
                        row_ex["subject"]      = dr["subject"].ToString();
                        row_ex["reg_gb"]       = dr["reg_gb"].ToString();

                        row_ex["group_yn"] = dr["group_yn"].ToString();
                        row_ex["group_cd"] = dr["group_cd"].ToString();
                        row_ex["group_nm"] = dr["group_nm"].ToString();
                        row_ex["scm_gb"]   = dr["scm_gb"].ToString();

                        row_ex["stock_only_ab"] = dr["stock_only_ab"].ToString();
                        row_ex["scm_susik"]     = dr["scm_susik"].ToString();
                        row_ex["amt_bundle"]    = Convert.ToInt32(dr["amt_bundle"].ToString());
                        row_ex["pdbsubject"]    = dr["pdbsubject"].ToString();
                        row_ex["pdbidx"]        = Convert.ToInt32(dr["pdbidx"].ToString());
                        row_ex["pcgsubject"]    = dr["pcgsubject"].ToString();
                        row_ex["pcgidx"]        = Convert.ToInt32(dr["pcgidx"].ToString());
                        row_ex["pcmsubject"]    = dr["pcmsubject"].ToString();
                        row_ex["pcmidx"]        = Convert.ToInt32(dr["pcmidx"].ToString());
                        row_ex["group_susik"]   = dr["group_susik"].ToString();

                        row_ex["amt_balju_pre"] = Convert.ToInt32(dr["amt_balju_pre"].ToString());
                        row_ex["amt_balju"]     = Convert.ToInt32(dr["amt_balju"].ToString());

                        row_ex["amt_sale_d3"] = Convert.ToInt32(dr["amt_sale_d3"].ToString());
                        row_ex["amt_sale_d2"] = Convert.ToInt32(dr["amt_sale_d2"].ToString());
                        row_ex["amt_sale_d1"] = Convert.ToInt32(dr["amt_sale_d1"].ToString());
                        row_ex["amt_sale_d"]  = Convert.ToInt32(dr["amt_sale_d"].ToString());

                        row_ex["amt_pda_d3"] = Convert.ToInt32(dr["amt_pda_d3"].ToString());
                        row_ex["amt_pda_d2"] = Convert.ToInt32(dr["amt_pda_d2"].ToString());
                        row_ex["amt_pda_d1"] = Convert.ToInt32(dr["amt_pda_d1"].ToString());

                        row_ex["amt_safe_d"]   = Convert.ToInt32(dr["amt_safe_d"].ToString());
                        row_ex["amt_safe_max"] = Convert.ToInt32(dr["amt_safe_max"].ToString());

                        row_ex["amt_magam"] = Convert.ToInt32(dr["amt_magam"].ToString());

                        row_ex["amt_input_d3"] = Convert.ToInt32(dr["amt_input_d3"].ToString());
                        row_ex["amt_input_d2"] = Convert.ToInt32(dr["amt_input_d2"].ToString());
                        row_ex["amt_input_d1"] = Convert.ToInt32(dr["amt_input_d1"].ToString());

                        row_ex["amt_adjust1"] = Convert.ToInt32(dr["amt_adjust1"].ToString());
                        row_ex["amt_adjust2"] = Convert.ToInt32(dr["amt_adjust2"].ToString());
                        row_ex["amt_adjust3"] = Convert.ToInt32(dr["amt_adjust3"].ToString());
                        row_ex["amt_adjust4"] = Convert.ToInt32(dr["amt_adjust4"].ToString());
                        row_ex["amt_adjust5"] = Convert.ToInt32(dr["amt_adjust5"].ToString());
                        row_ex["amt_adjust6"] = Convert.ToInt32(dr["amt_adjust6"].ToString());
                        row_ex["amt_adjust7"] = Convert.ToInt32(dr["amt_adjust7"].ToString());

                        row_ex["vc"] = Convert.ToInt32(dr["vc"].ToString());

                        row_ex["erp_p_ab"]       = dr["erp_p_ab"].ToString();
                        row_ex["erp_netshow_ab"] = dr["erp_netshow_ab"].ToString();

                        row_ex["amt_panmae"]  = Convert.ToInt32(dr["panmae"].ToString());
                        row_ex["amt_pre"]     = Convert.ToInt32(dr["amt_pre"].ToString());
                        row_ex["amt_input"]   = Convert.ToInt32(dr["amt_input"].ToString());
                        row_ex["amt_soldout"] = Convert.ToInt32(dr["amt_soldout"].ToString());
                        row_ex["amt_jungga"]  = Convert.ToInt32(dr["qty_jungga"].ToString());

                        table_ex.Rows.Add(row_ex);
                    }
                    using (var bulk = new SqlBulkCopy(myConnection_201))
                    {
                        bulk.DestinationTableName = "scm_stock_preset";
                        bulk.BulkCopyTimeout      = 0;
                        bulk.WriteToServer(table_ex);
                    }

                    // frm1.sendSms("NEWPOS_SCM 자료 생성 완료(" + String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now.AddDays(0).ToString()) + ")(" + i + "/" + pagecount + ")");
                    frm1.Log("NEWPOS_SCM 자료 생성 완료(" + i + "/" + pagecount + ")");
                    //frm1.Log("NEWPOS_SCM 자료 생성 완료(" + queryString + "");
                    myConnection_201.Dispose();
                    myConnection_201.Close();
                }
                catch (Exception ex)
                {
                    frm1.Log("[자료 생성)]:" + ex.Message);
                    frm1.Log("자료 생성 쿼리:" + queryString1);
                }
            }


            if (pagecount + 1 != i)
            {
                frm1.sendSms("NEWPOS_SCM 기준데이터 오류(" + String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now.AddDays(0).ToString()) + ") 오류 (1/4)");
                frm1.Log("날짜" + orderdate1 + "~" + orderdate2 + "");
            }
            else
            {
                frm1.sendSms("NEWPOS_SCM 기준데이터 완료(" + String.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now.AddDays(0).ToString()) + ") 완료");
                frm1.Log("NEWPOS_SCM 자료 생성 완료(" + i + "/" + pagecount + ")");
                frm1.Log("날짜" + orderdate1 + "~" + orderdate2 + "");
            }
        }
示例#8
0
        private void fn_stock_auto_input(string orderdate, string type, string ip, Form1 frm1)
        {
            frm1.Log((String.Format("NEWPOS 물품 자동입고 시작")));

            string storeNo       = "";
            string storeNo_chack = "8000006999";

            String queryString1 = "";
            String queryString4 = "";
            String queryString5 = "";

            myConnection = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("213");

            SqlDataAdapter adapter = new SqlDataAdapter();

            string queryString = "select a.idx, a.ppmidx, a.storeNo, a.order_date, a.order_icoopCode, a.order_price, a.order_qty, a.order_qty_reconfirm, a.order_sort1, a.order_sort2, a.storeCheck_qty, a.storeCheck_vc,b.vc_packingBox  "
                                 + "  from pos_store_icoopOrder as a  with (nolock)  left outer join pos_product_master as b with (nolock) on a.ppmidx = b.idx  "
                                 + "   left outer join pos_store as c with (nolock) on a.storeno = c.storeno  "
                                 + "  where a.order_date = '" + orderdate + "'  and a.storeCheck_vc ='0'  and a.ppmidx <> '' and c.vc_autoinput = '1'  order by a.storeNo";

            adapter.SelectCommand = new SqlCommand(queryString, myConnection);
            SqlCommand command = new SqlCommand(queryString, myConnection);

            try
            {
                DataSet ds = new DataSet();
                adapter.Fill(ds);
                DataTable         table = ds.Tables[0];
                DataRowCollection rows  = table.Rows;

                //string ppmidx = "";
                int ppmidx_box_ea = 0;
                int amtDiff       = 0;
                int countsum      = 0;
                int vc_countsum   = 0;
                int count_storeNo = 0;

                foreach (DataRow dr in rows)
                {
                    int    vc_display = 0;
                    String subject    = "";
                    String pcmidx     = "";

                    string tmp_ppmidx = dr[1].ToString();
                    storeNo = dr[2].ToString();
                    String tmp_icoopcode = dr[4].ToString();
                    String vc_packingBox = dr[12].ToString();

                    amtDiff = Convert.ToInt32(dr[6].ToString());

                    if (tmp_ppmidx != "")
                    {
                        if (vc_packingBox == "1")
                        {
                            queryString4 = " select ppmidx_single, ppmidx_box_ea   "
                                           + "  from pos_product_master_box    "
                                           + "   where ppmidx_box = '" + tmp_ppmidx + "' and vc ='1' ";

                            SqlCommand    command1 = new SqlCommand(queryString4, myConnection);
                            SqlDataReader reader1  = command1.ExecuteReader();
                            while (reader1.Read())
                            {
                                tmp_ppmidx    = reader1["ppmidx_single"].ToString();
                                ppmidx_box_ea = Convert.ToInt32(reader1["ppmidx_box_ea"].ToString());

                                amtDiff = amtDiff * ppmidx_box_ea;
                            }

                            reader1.Close();
                        }

                        queryString5 = " select vc_display,subject,pcmidx   "
                                       + "  from pos_product_master with (nolock)   "
                                       + "   where idx = '" + tmp_ppmidx + "' ";

                        SqlCommand    command2 = new SqlCommand(queryString5, myConnection);
                        SqlDataReader reader2  = command2.ExecuteReader();
                        while (reader2.Read())
                        {
                            subject    = reader2["subject"].ToString();
                            vc_display = Convert.ToInt32(reader2["vc_display"].ToString());
                            pcmidx     = reader2["pcmidx"].ToString();
                        }
                        reader2.Close();

                        if (amtDiff != 0)
                        {
                            if (type == "A") //자동 입고를 진행하였을 경우
                            {
                                queryString1 = " IF NOT EXISTS (SELECT ppmidx from pos_store_stock where storeno = '" + storeNo + "' and ppmidx = '" + tmp_ppmidx + "') "
                                               + " BEGIN "
                                               + "   insert into pos_store_stock (storeNo, orderDate, ppmidx, amt_input, rdate_input, sdate_input, finalUpdate, adminMemidx) values "
                                               + "   ( '" + storeNo + "' , '" + orderdate + "' , '" + tmp_ppmidx + "', '" + amtDiff + "', convert(varchar(10),getdate(),120) , convert(varchar(10),getdate(),120), GETDATE(), 'DEMON1') ;"
                                               + " END "
                                               + " ELSE  IF NOT EXISTS (SELECT ppmidx from pos_store_stock where storeno =  '" + storeNo + "' and ppmidx = '" + tmp_ppmidx + "' and sdate_input is null) "
                                               + " BEGIN "
                                               + "   UPDATE pos_store_stock SET "
                                               + "   amt_input = amt_input +'" + amtDiff + "'"
                                               + "   , rdate_input ='" + string.Format(DateTime.Now.ToString("yyyy-MM-dd")) + "'"
                                               + "   , vc_stock = '1'"
                                               + "   , finalUpdate = GETDATE()"
                                               + "   ,adminMemidx = 'DEMON1'"
                                               + "   WHERE storeno = '" + storeNo + "'  AND ppmidx = '" + tmp_ppmidx + "'"
                                               + " END "
                                               + " ELSE "
                                               + " BEGIN "
                                               + "   UPDATE pos_store_stock SET "
                                               + "   amt_input = amt_input +'" + amtDiff + "'"
                                               + "   , rdate_input ='" + string.Format(DateTime.Now.ToString("yyyy-MM-dd")) + "'"
                                               + "   , sdate_input = '" + string.Format(DateTime.Now.ToString("yyyy-MM-dd")) + "'"   //최초입고일
                                               + "   , vc_stock = '1'"
                                               + "   , finalUpdate = GETDATE()"
                                               + "   ,adminMemidx = 'DEMON1'"
                                               + "   WHERE storeno = '" + storeNo + "'  AND ppmidx = '" + tmp_ppmidx + "'"
                                               + " END ";

                                //Log((String.Format("[in_stock] 쿼리[{0}] : ", queryString1)));
                                command.CommandText = queryString1;
                                command.ExecuteNonQuery();

                                //최초입고일 메인 테이블 추가(2019.09.09)
                                string queryString2 = " IF NOT EXISTS (SELECT ppmidx from pos_product_date where storeno = '" + storeNo.Substring(6, 4) + "' and ppmidx = '" + tmp_ppmidx + "') "
                                                      + " BEGIN "
                                                      + "   insert into pos_product_date (storeNo, ppmidx,sdate_input) values "
                                                      + "   ( '" + storeNo.Substring(6, 4) + "' ,'" + tmp_ppmidx + "',getdate()) "
                                                      + " END ";

                                command.CommandText = queryString2;
                                command.ExecuteNonQuery();


                                if (vc_display == 0 && (pcmidx != "77" && pcmidx != "83"))
                                {
                                    queryString1        = "exec usp_pos_product_update_display '" + tmp_ppmidx + "', '" + tmp_icoopcode + "', '" + subject + "' , '1', 'DEMON1', 'System', 'D';";
                                    command.CommandText = queryString1;
                                    command.ExecuteNonQuery();

                                    vc_countsum = vc_countsum + 1;

                                    frm1.Log((String.Format("[vc_input] 쿼리[{0}] : ", queryString1)));
                                }
                            }
                            else
                            {
                                if (System.DateTime.Now.ToString("yyyy-MM-dd").CompareTo(orderdate) >= 0 && amtDiff != 0) //현재날짜가 입고일보다 작거나 같을 경우(선입고 할 경우는 안됨)
                                {
                                    queryString1 = " IF NOT EXISTS (SELECT ppmidx from pos_store_stock where storeno = '" + storeNo + "' and ppmidx = '" + tmp_ppmidx + "') "
                                                   + " BEGIN "
                                                   + "   insert into pos_store_stock (storeNo, orderDate, ppmidx, amt_input, rdate_input, sdate_input, finalUpdate, adminMemidx) values "
                                                   + "   ( '" + storeNo + "' , '" + orderdate + "' , '" + tmp_ppmidx + "', '" + amtDiff + "', convert(varchar(10),getdate(),120) , convert(varchar(10),getdate(),120), GETDATE(), 'DEMON1') ;"
                                                   + " END "
                                                   + " ELSE  IF NOT EXISTS (SELECT ppmidx from pos_store_stock where storeno =  '" + storeNo + "' and ppmidx = '" + tmp_ppmidx + "' and sdate_input is null) "
                                                   + " BEGIN "
                                                   + "   UPDATE pos_store_stock SET "
                                                   + "   amt_input = amt_input +'" + amtDiff + "'"
                                                   + "   , rdate_input ='" + string.Format(DateTime.Now.ToString("yyyy-MM-dd")) + "'"
                                                   + "   , vc_stock = '1'"
                                                   + "   , finalUpdate = GETDATE()"
                                                   + "   ,adminMemidx = 'DEMON1'"
                                                   + "   WHERE storeno = '" + storeNo + "'  AND ppmidx = '" + tmp_ppmidx + "'"
                                                   + " END "
                                                   + " ELSE "
                                                   + " BEGIN "
                                                   + "   UPDATE pos_store_stock SET "
                                                   + "   amt_input = amt_input +'" + amtDiff + "'"
                                                   + "   , rdate_input ='" + string.Format(DateTime.Now.ToString("yyyy-MM-dd")) + "'"
                                                   + "   , sdate_input = '" + string.Format(DateTime.Now.ToString("yyyy-MM-dd")) + "'" //최초입고일
                                                   + "   , vc_stock = '1'"
                                                   + "   , finalUpdate = GETDATE()"
                                                   + "   ,adminMemidx = 'DEMON1'"
                                                   + "   WHERE storeno = '" + storeNo + "'  AND ppmidx = '" + tmp_ppmidx + "'"
                                                   + " END ";

                                    command.CommandText = queryString1;
                                    command.ExecuteNonQuery();


                                    string queryString2 = " IF NOT EXISTS (SELECT ppmidx from pos_product_date where storeno = '" + storeNo.Substring(6, 4) + "' and ppmidx = '" + tmp_ppmidx + "') "
                                                          + " BEGIN "
                                                          + "   insert into pos_product_date (storeNo, ppmidx,sdate_input) values "
                                                          + "   ( '" + storeNo.Substring(6, 4) + "' ,'" + tmp_ppmidx + "',getdate()) "
                                                          + " END ";

                                    command.CommandText = queryString2;
                                    command.ExecuteNonQuery();


                                    if (vc_display == 0 && (pcmidx != "77" && pcmidx != "83"))
                                    {
                                        queryString1        = "exec usp_pos_product_update_display '" + tmp_ppmidx + "', '" + tmp_icoopcode + "', '" + subject + "' , '1', 'DEMON1', 'System', 'D';";
                                        command.CommandText = queryString1;
                                        command.ExecuteNonQuery();

                                        frm1.Log((String.Format("[vc_input] 쿼리[{0}] : ", queryString1)));
                                        vc_countsum = vc_countsum + 1;
                                    }
                                }

                                if ((string.Format(DateTime.Now.ToString("yyyy-MM-dd")) != orderdate) && amtDiff != 0)
                                {
                                    queryString1 = "insert into pos_store_icoopOrder_other (storeNo, order_date, order_date_real, order_icoopCode, order_price,vc_insertType,ppmidx,storeCheck_qty,storeCheck_update)  values "
                                                   + "('" + storeNo + "'"
                                                   + ",'" + orderdate + "'"
                                                   + ",'" + string.Format(DateTime.Now.ToString("yyyy-MM-dd")) + "'"
                                                   + ",'" + tmp_icoopcode + "'"
                                                   + ",'0'"
                                                   + ",'0'"
                                                   + ",'" + tmp_ppmidx + "'"
                                                   + ",'" + amtDiff + "'"
                                                   + ",GETDATE()"
                                                   + ");";
                                    // Log((String.Format("[in_other] 쿼리[{0}] : ", queryString1)));
                                    command.CommandText = queryString1;
                                    command.ExecuteNonQuery();
                                }
                            }

                            queryString1 = "insert into pos_store_icoopOrder_log (storeno,orderdate,ppmidx,qty,regdate,adminName,userip)  values "
                                           + "('" + storeNo + "'"
                                           + ",'" + orderdate + "'"
                                           + ",'" + tmp_ppmidx + "'"
                                           + ",'" + amtDiff + "'"
                                           + ",GETDATE()"
                                           + ",'DEMON1'"
                                           + ",'" + ip + "'"
                                           + ");";
                            //Log((String.Format("[in_other_log] 쿼리[{0}] : ", queryString1)));
                            command.CommandText = queryString1;
                            command.ExecuteNonQuery();

                            queryString1 = "update pos_store_icoopOrder set storeCheck_qty = '" + dr[6].ToString() + "', storeCheck_vc = '1' , storeCheck_update = getdate()  where storeno = '" + storeNo + "' and order_date  = '" + orderdate + "' and idx =  '" + dr[0].ToString() + "';";
                            //Log((String.Format("[up_other] 쿼리[{0}] : ", queryString1)));
                            command.CommandText = queryString1;
                            command.ExecuteNonQuery();

                            countsum = countsum + 1;

                            if (storeNo != storeNo_chack) //
                            {
                                queryString1 = "update pos_store_icoopOrder_status set total_count_storeCheck = (select count(storecheck_qty) as total_count_storeCheck from pos_store_icoopOrder where storeno = '" + storeNo_chack + "' and order_date ='" + orderdate + "' and storeCheck_vc = '1') "
                                               + "  where storeno ='" + storeNo_chack + "' and order_date ='" + orderdate + "' ";
                                //Log((String.Format("[up_other_status] 쿼리[{0}] : ", queryString1)));
                                command.CommandText = queryString1;
                                command.ExecuteNonQuery();

                                if (storeNo_chack != "8000006999")
                                {
                                    count_storeNo = count_storeNo + 1;
                                }
                            }

                            storeNo_chack = storeNo;
                        }

                        //frm1.Log((String.Format("[AUTO stock] - ppmidx=[{0}] / storeno=[{1}] / orderdate =[{2}]", tmp_ppmidx, storeNo, orderdate)));
                    }
                }
                queryString1 = "update pos_store_icoopOrder_status set total_count_storeCheck = (select count(storecheck_qty) as total_count_storeCheck from pos_store_icoopOrder where storeno = '" + storeNo + "' and order_date ='" + orderdate + "' and storeCheck_vc = '1') "
                               + "  where storeno ='" + storeNo + "' and order_date ='" + orderdate + "' ";
                command.CommandText = queryString1;
                command.ExecuteNonQuery();

                count_storeNo = count_storeNo + 1;

                frm1.sendSms("자동입고 완료 \n[" + orderdate + "] [" + count_storeNo + "]매장,\n [" + countsum + "]건,  [" + vc_countsum + "] 보임 ");
                frm1.Log((String.Format("NEWPOS 물품 자동입고 종료")));
            }
            catch (SqlException ex)
            {
                StringBuilder errorMessages = new StringBuilder();
                for (int i = 0; i < ex.Errors.Count; i++)
                {
                    errorMessages.Append("Index #" + i + " || " +
                                         "Message: " + ex.Errors[i].Message + " || " +
                                         "LineNumber: " + ex.Errors[i].LineNumber + " || " +
                                         "Source: " + ex.Errors[i].Source + " || " +
                                         "Procedure: " + ex.Errors[i].Procedure + ";");
                    //쿼리정보도
                }

                frm1.Log(errorMessages.ToString());
                frm1.Log((String.Format("[에러] 쿼리[{0}] : ", queryString1)));
                frm1.sendSms("[" + orderdate + "] 자동입고 에러");
            }

            myConnection.Dispose();
            myConnection.Close();
        }
        private void fn_unpopular(string orderMonth, Form1 frm1)
        {
            myConnection = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("213");
            try
            {
                if (orderMonth == "")
                {
                    frm1.Log(Convert.ToDateTime(DateTime.Today.ToString()) + "[비인기품목생성에러]생성년/월 확인");
                }
                else
                {
                    //orderMonth = "201710";
                    //전월 1일
                    string sdate = orderMonth.Substring(0, 4) + "-" + orderMonth.Substring(4, 2) + "-01";
                    sdate = String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime((sdate)).AddMonths(-1));

                    //전월 마지막 일자
                    string edate = orderMonth.Substring(0, 4) + "-" + orderMonth.Substring(4, 2) + "-01";
                    edate = String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime((edate)).AddDays(-1));

                    //전월 마지막 일자 - 2개월
                    string edate_2m = String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime((edate)).AddMonths(-2));

                    //전월 마지막 일자 - 3개월
                    string edate_3m = String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime((edate)).AddMonths(-3));


                    //비인기품목 리스트
                    string queryString = "INSERT INTO store_product_unpopular (ordermonth, storeno, ppmidx, amt_sale, bad_stock_gb, rdate_sale, regdate) "
                                         + " SELECT '" + orderMonth + "' as orderMonth, right(a.storeNo,4) as storeno, a.ppmidx, "
                                         + " ISNULL(b.qty_total,0),"
                                         + " CASE WHEN c.rdate_sale <= '" + edate_3m + "' OR c.rdate_sale is null THEN 'Y' ELSE 'N' END as bad_stock_gb, "
                                         + " ISNULL(c.rdate_sale, ''), getdate()"
                                         + " FROM (SELECT ppmidx, storeno FROM pos_store_stock_reality with (nolock)"
                                         + "         WHERE orderdate >= '" + sdate + "' AND orderDate <= '" + edate + "'"
                                         + "         AND ppmidx in (SELECT idx FROM pos_product_master WHERE regdate < '" + edate_2m + "' and pcmidx not in (111, 24, 110, 26, 113, 112, 25)) "
                                         + "         GROUP BY storeno, ppmidx"
                                         + " ) as a"
                                         + " LEFT OUTER JOIN (SELECT storeno, ppmidx, SUM(qty_total-qty_g08-qty_g13) as qty_total "
                                         + "             FROM pos_sale_A01_ppm_daily with (nolock)"
                                         + "             WHERE orderdate >= '" + sdate + "' AND orderdate <= '" + edate + "'"
                                         + "             AND ppmidx in (SELECT idx FROM pos_product_master WHERE regdate < '" + edate_2m + "' and pcmidx not in (111, 24, 110, 26, 113, 112, 25)) "
                                         + "             GROUP BY storeno, ppmidx"
                                         + " ) as b on a.storeno = b.storeno and a.ppmidx = b.ppmidx"
                                         + " LEFT OUTER JOIN pos_store_stock as c with (nolock) ON a.storeno = c.storeno and a.ppmidx = c.ppmidx"
                                         + " WHERE ISNULL(b.qty_total,0) <= 30"
                                         + " ORDER BY a.storeno, a.ppmidx";

                    SqlCommand command = new SqlCommand(queryString, myConnection);
                    command.CommandTimeout = 120;
                    command.CommandText    = queryString;
                    command.ExecuteNonQuery();
                    frm1.Log("[비인기품목생성에러]\n" + queryString);
                }
                myConnection.Dispose();
                myConnection.Close();
                frm1.sendSms("매월 24일  비인기품목생성 완료");
            }
            catch (Exception e)
            {
                frm1.sendSms("[비인기품목생성에러]\n" + e.Message);
                frm1.Log(Convert.ToDateTime(DateTime.Today.ToString()) + "[비인기품목생성에러]\n" + e.Message);
            }
        }
示例#10
0
        private void fn_get_safe_sale_total(string safe_sale_sdate, string safe_sale_edate, string safe_junnga, string stock_YYYYMM, string type, int totlaDay, Form1 frm1)
        {
            myConnection = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("213");
            SqlCommand command = new SqlCommand();

            String sql             = null;
            String safe_sale_table = null;

            try
            {
                //이전 생성 자료 로그 저장
                sql = "IF EXISTS (SELECT top 1 * FROM preset_scm_safe_sale_date ) "
                      + " BEGIN "
                      + " INSERT INTO preset_scm_safe_sale_date_back ( storeno, ppmidx, qty_jungga, qty_safe, regdate )  SELECT storeno, ppmidx, qty_jungga, qty_safe ,getdate() FROM preset_scm_safe_sale_date  "
                      + " DELETE preset_scm_safe_sale_date  "
                      + " END";

                command.Connection     = myConnection;
                command.CommandText    = sql;
                command.CommandTimeout = 120;
                command.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                frm1.Log("[매월 안전재고 정가판매 백업]:" + ex.Message);
                frm1.Log("매월 안전재고 정가판매 백업쿼리:" + sql);
                frm1.sendSms("매월 1일  안전재고, 정가판매 백업 오류 ");
            }


            safe_sale_table = "pos_store_stock_" + stock_YYYYMM + " ";

            try
            {
                /*
                 * 한달간 재고량합/월별일수로 기준데이터 생성
                 * 일주일간 안전재고 수량이 0<=3 적으며
                 * 한달간 정가판매수량이 0<=7작은 내역 중
                 * 두개의 조건이 포함(AND)되는 것들만 저장
                 */
                if (type == "A")
                {
                    sql = " INSERT INTO preset_scm_safe_sale_date (storeno, ppmidx, qty_jungga, qty_safe)  "
                          + " select right(a.storeno,4) as storeno, a.ppmidx,isnull(c.jungga,0) as jungga,  isnull(b.safe,0) as safe "
                          + "  from  "
                          + "( "
                          + " select storeno, ppmidx "
                          + " from pos_store_stock with(nolock)  where storeno <> '' and ppmidx <> 0  "
                          + " group by storeno, ppmidx "
                          + " having round(sum(amt_result)/convert(float," + totlaDay + "),1) > 0 "
                          + " UNION ALL "
                          + " select storeno, ppmidx "
                          + " from  " + safe_sale_table + " with(nolock) where  storeno <> '' and ppmidx <> 0  "
                          + " group by storeno, ppmidx "
                          + " having round(sum(amt_result)/convert(float," + totlaDay + "),1) > 0 "
                          + ") as a "
                          + "left join "
                          + "( "
                          + "  select storeno, ppmidx, (sum(amt_safe_fri+amt_safe_mon+amt_safe_sat+amt_safe_sun+amt_safe_thu+amt_safe_tue+amt_safe_wed+amt_safe_wed) /7 ) as safe "
                          + "  from preset_safe_stock with(nolock)  "
                          + "  group by storeno, ppmidx "
                          //     + "  having sum(amt_safe_fri+amt_safe_mon+amt_safe_sat+amt_safe_sun+amt_safe_thu+amt_safe_tue+amt_safe_wed+amt_safe_wed) /7 <= 3 "
                          + " ) as b on right(a.storeno,4) = b.storeno and convert(varchar,a.ppmidx) = b.ppmidx  "
                          + "  left join ( "
                          + " select storeno, ppmidx, sum(qty_jungga)  as jungga "
                          + " from preset_sale_ppm_daily with(nolock)  "
                          + " where orderdate >='" + safe_sale_sdate + "' and orderdate <='" + safe_sale_edate + "'   "
                          + " group by storeno, ppmidx "
                          //  + "  having sum(qty_jungga) <= " + safe_junnga + " "
                          + " ) as c on right(a.storeno,4) = c.storeno and convert(varchar,a.ppmidx) = c.ppmidx  "
                          + "  where a.storeno is  not null and b.safe <> 0  "
                          + " order by storeno, ppmidx  ";
                }
                else
                {
                    sql = " INSERT INTO preset_scm_safe_sale_date (storeno, ppmidx, qty_jungga, qty_safe)  "
                          + " select right(a.storeno,4) as storeno, a.ppmidx,isnull(c.jungga,0) as jungga,  isnull(b.safe,0) as safe "
                          + "  from  "
                          + "( "
                          + " select storeno, ppmidx "
                          + " from  " + safe_sale_table + " with(nolock) where  storeno <> '' and ppmidx <> 0  "
                          + " group by storeno, ppmidx "
                          + " having round(sum(amt_result)/convert(float,30),1) > 0 "
                          + ") as a "
                          + "left join "
                          + "( "
                          + "  select storeno, ppmidx, (sum(amt_safe_fri+amt_safe_mon+amt_safe_sat+amt_safe_sun+amt_safe_thu+amt_safe_tue+amt_safe_wed+amt_safe_wed) /7 ) as safe "
                          + "  from preset_safe_stock with(nolock)  "
                          + "  group by storeno, ppmidx "
                          //  + "  having sum(amt_safe_fri+amt_safe_mon+amt_safe_sat+amt_safe_sun+amt_safe_thu+amt_safe_tue+amt_safe_wed+amt_safe_wed) /7 <= 3 "
                          + " ) as b on right(a.storeno,4) = b.storeno and convert(varchar,a.ppmidx) = b.ppmidx  "
                          + "  left join ( "
                          + " select storeno, ppmidx, sum(qty_jungga)  as jungga "
                          + " from preset_sale_ppm_daily with(nolock)  "
                          + " where orderdate >='" + safe_sale_sdate + "' and orderdate <='" + safe_sale_edate + "'   "
                          + " group by storeno, ppmidx "
                          // + "  having sum(qty_jungga) <= " + safe_junnga + " "
                          + " ) as c on  right(a.storeno,4) = c.storeno and convert(varchar,a.ppmidx) = c.ppmidx  "
                          + "  where a.storeno is  not null and b.safe <> 0  "
                          + " order by storeno, ppmidx  ";
                }
                command.Connection     = myConnection;
                command.CommandText    = sql;
                command.CommandTimeout = 120;
                command.ExecuteNonQuery();

                frm1.sendSms("생성기준 매월 1일  안전재고,정가판매 제외 " + safe_sale_sdate + "~" + safe_sale_edate + "  생성 완료");
            }
            catch (Exception ex)
            {
                frm1.Log("[매월 안전재고 정가판매 생성]:" + ex.Message);
                frm1.Log("매월 안전재고 정가판매 생성쿼리:" + sql);
                frm1.sendSms("매월 1일  안전재고, 정가판매 오류 ");
            }
        }
示例#11
0
        private void fn_get_sale_ppm_daily(string orderdate5, string orderdate6, Form1 frm1)
        {
            string sql          = null;
            string queryString1 = "";

            myConnection = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("213");
            SqlCommand     command = new SqlCommand(sql, myConnection);
            SqlDataAdapter adapter = new SqlDataAdapter();

            // SqlCommand command = new SqlCommand();
            frm1.Log("PPM 정가판매 데이터 생성 시작");

            string YYYYMM = String.Format("{0:yyyyMM}", Convert.ToDateTime(orderdate5));


            try
            {
                //1. 낱개 박스설정 제외한 물품 적용     !!!!!!!!!!!수정
                // 제외 카테고리 적용
                sql = "  INSERT INTO preset_sale_ppm_daily"
                      + "  (orderdate, storeno, ppmidx, qty_jungga, qty_total, qty_discount) "
                      + "  SELECT a.orderdate,  right(a.storeno,4) as storeno, a.ppmidx "
                      + " , SUM(CASE WHEN a.vc_mainvoid='0' THEN a.qty ELSE 0 END)  - SUM(CASE WHEN a.vc_mainvoid='0' and (a.price_discount<>0 OR b.membergrade='13')THEN a.qty ELSE 0 END)  as qty_jungga "
                      + " , SUM(CASE WHEN a.vc_mainvoid='0' THEN a.qty ELSE 0 END) as qty_total "
                      + " , SUM(CASE WHEN a.vc_mainvoid='0' and (a.price_discount<>0 OR b.membergrade='13') THEN a.qty ELSE 0 END) as qty_discount  "
                      + " FROM pos_sale_orderNo_detail_" + YYYYMM + " a WITH (NOLOCK) "
                      + " LEFT JOIN pos_member_sy b WITH (NOLOCK) ON a.memidx=b.memidx "
                      + " LEFT JOIN pos_db_membergrade_sub c WITH (NOLOCK) ON c.gradeNo2=b.memberGrade2 and c.memo='폐기자가' "
                      + " LEFT JOIN pos_product_master_box as d WITH (NOLOCK) on a.ppmidx = d.ppmidx_box and d.vc ='1' "
                      + "    WHERE  a.orderDate >= '" + orderdate5 + "'  and   a.orderDate <=  '" + orderdate6 + "'    "
                      + " AND a.ppmidx in ( "
                      + " select ppmidx from pos_sale_A01_ppm_daily  as a with(nolock) "
                      + "  left join pos_product_master as b with(nolock)  on a.ppmidx = b.idx "
                      + " where   (a.orderdate >= '" + orderdate5 + "'  and a.orderdate <= '" + orderdate6 + "' ) and  b.pdbidx not in ('3','4','5','6','7','8','9','10','11','12','13','14','15','16','17') and  "
                      + " b.pcmidx in (select idx from  pos_category_master where idx not in ('1','4','15','18','23','62','77','83','84','85','86','102','107','106','108','109','155','103','129','130','144','161','164')  and pcgidx not in('32','33') ) "
                      //  + " and b.erp_p_ab = 'A' and  b.erp_recall_ab  <> 'A' and  b.erp_shop_release_date > 1 "
                      + "group by ppmidx "
                      + " ) "
                      //  + " AND a.ppmidx in (SELECT ppmidx FROM pos_sale_A01_ppm_daily WHERE  orderdate >=  '" + orderdate5 + "' and orderdate <= '" + orderdate6 + "'  )"
                      + " and ppmidx_box is null "
                      + " GROUP BY  a.orderdate,a.storeno,a.ppmidx "
                      + " having SUM(CASE WHEN a.vc_mainvoid='0' THEN a.qty ELSE 0 END)  - SUM(CASE WHEN a.vc_mainvoid='0' and (a.price_discount<>0 OR b.membergrade='13')THEN a.qty ELSE 0 END)  > 0 ";
                command = new SqlCommand(sql, myConnection);
                command.CommandTimeout = 0;
                command.CommandText    = sql;
                command.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                frm1.sendSms("ppm_daily 박스 제외 쿼리 1:" + ex.Message);
                frm1.Log("ppm_daily 박스 제외 쿼리 1(fn_get_sale_ppm_daily)]:" + ex.Message);
                frm1.Log("박스제외쿼리:" + sql);
                //throw;
            }


            //myConnection.Dispose();
            //myConnection.Close();

            //2. 낱개 박스설정 포함한 물품에 대한 낱개코드로 환산
            string queryString = " SELECT a.orderdate, right(a.storeno,4) as storeno, a.ppmidx, d.ppmidx_single  "
                                 + " , SUM(CASE WHEN a.vc_mainvoid='0' THEN a.qty * ppmidx_box_ea ELSE 0 END) - SUM(CASE WHEN a.vc_mainvoid='0' and (a.price_discount<>0 OR b.membergrade='13') THEN a.qty * ppmidx_box_ea ELSE 0 END) as qty_jungga "
                                 + " , SUM(CASE WHEN a.vc_mainvoid='0' THEN a.qty * ppmidx_box_ea ELSE 0 END) as qty_total "
                                 + ", SUM(CASE WHEN a.vc_mainvoid='0' and (a.price_discount<>0 OR b.membergrade='13') THEN a.qty * ppmidx_box_ea ELSE 0 END) as qty_discount  "
                                 + " FROM pos_sale_orderNo_detail_" + YYYYMM + " a WITH (NOLOCK) "
                                 + " LEFT JOIN pos_member_sy b WITH (NOLOCK) ON a.memidx=b.memidx "
                                 + " LEFT JOIN pos_db_membergrade_sub c WITH (NOLOCK) ON c.gradeNo2=b.memberGrade2 and c.memo='폐기자가' "
                                 + " LEFT JOIN pos_product_master_box as d WITH (NOLOCK) on a.ppmidx = d.ppmidx_box and d.vc ='1' "
                                 + "    WHERE  a.orderDate >= '" + orderdate5 + "'  and   a.orderDate <=  '" + orderdate6 + "'   " // AND d.ppmidx_single in ('26433','15494','21219')   " //cug 2276010 덧글 28> 등록된 물품만
                                 + " AND a.ppmidx in ( "
                                 + " select ppmidx from pos_sale_A01_ppm_daily  as a with(nolock) "
                                 + "  left join pos_product_master as b with(nolock)  on a.ppmidx = b.idx "
                                 + " where   (a.orderdate >= '" + orderdate5 + "'  and a.orderdate <= '" + orderdate6 + "' ) and  b.pdbidx not in ('3','4','5','6','7','8','9','10','11','12','13','14','15','16','17') and  "
                                 + " b.pcmidx in (select idx from  pos_category_master where idx not in ('1','4','15','18','23','62','77','83','84','85','86','102','107','106','108','109','155','103','129','130','144','161','164') and pcgidx not in('32','33') ) "
                                 //    + " and b.erp_p_ab = 'A' and  b.erp_recall_ab  <> 'A' and  b.erp_shop_release_date > 1 "
                                 + "group by ppmidx "
                                 + " ) "
                                 //+ " AND a.ppmidx in (SELECT ppmidx FROM pos_sale_A01_ppm_daily WHERE  orderdate >=  '" + orderdate5 + "' and orderdate <= '" + orderdate6 + "'  )"
                                 + " and ppmidx_box is not null  "
                                 + "  GROUP BY a.orderdate,  a.storeno,a.ppmidx, d.ppmidx_single "
                                 + " 	having SUM(CASE WHEN a.vc_mainvoid='0' THEN a.qty * ppmidx_box_ea ELSE 0 END) - SUM(CASE WHEN a.vc_mainvoid='0' and (a.price_discount<>0 OR b.membergrade='13') THEN a.qty * ppmidx_box_ea ELSE 0 END) > 0 ";

            adapter.SelectCommand = new SqlCommand(queryString, myConnection);
            adapter.SelectCommand.CommandTimeout = 0;


            try
            {
                DataSet ds = new DataSet();
                adapter.Fill(ds);
                DataTable         table = ds.Tables[0];
                DataRowCollection rows  = table.Rows;

                string orderdate     = "";
                string storeno       = "";
                string ppmidx_single = "";
                int    qty_jungga    = 0;
                int    qty_total     = 0;
                int    qty_discount  = 0;

                foreach (DataRow dr in rows)
                {
                    orderdate     = dr["orderdate"].ToString();
                    storeno       = dr["storeno"].ToString();
                    ppmidx_single = dr["ppmidx_single"].ToString().Trim();
                    qty_jungga    = Convert.ToInt32(dr["qty_jungga"].ToString());
                    qty_total     = Convert.ToInt32(dr["qty_total"].ToString());
                    qty_discount  = Convert.ToInt32(dr["qty_discount"].ToString());


                    //기존에 있는 물품인 경우, 설정값 Update 없는 물품인 경우 Insert
                    queryString1 = "IF EXISTS (SELECT * FROM preset_sale_ppm_daily WITH (NOLOCK) WHERE orderdate = '" + orderdate + "' AND storeno ='" + storeno + "' AND ppmidx ='" + ppmidx_single + "')"
                                   + " BEGIN "
                                   + "     UPDATE preset_sale_ppm_daily "
                                   + "     SET qty_jungga = qty_jungga + '" + qty_jungga + "', qty_total = qty_total + '" + qty_total + "', qty_discount = qty_discount +'" + qty_discount + "'"
                                   + "     WHERE orderdate = '" + orderdate + "' AND storeno = '" + storeno + "' AND ppmidx ='" + ppmidx_single + "' "
                                   + " END"
                                   + " ELSE"
                                   + " BEGIN"
                                   + "     INSERT INTO preset_sale_ppm_daily "
                                   + "      (orderdate, storeno, ppmidx, qty_jungga, qty_total, qty_discount) "
                                   + "     VALUES ('" + orderdate + "', '" + storeno + "', '" + ppmidx_single + "', '" + qty_jungga + "', '" + qty_total + "', '" + qty_discount + "') "
                                   + " END";


                    SqlCommand command1 = new SqlCommand(queryString1, myConnection);
                    command1.CommandText = queryString1;
                    command1.ExecuteNonQuery();
                }
                //  frm1.sendSms("NEWPOS_PPM  기초 자료  생성 완료");
                frm1.Log("PPM 정가판매 데이터  생성 완료");
            }
            catch (Exception ex)
            {
                frm1.sendSms("박스기초자료오류:" + ex.Message);
                frm1.Log("[박스기초자료오류]:" + ex.Message);
                frm1.Log("박스기초자료쿼리:" + queryString1);
                //throw;
            }

            myConnection.Dispose();
            myConnection.Close();

            frm1.Log((String.Format("[MsSql 정가판매량 ]:{0}", myConnection.State.ToString())));
        }
示例#12
0
 public void fn_ppmdaily(string orderdate5, string orderdate6, Form1 frm1)
 {
     //frm1.sendSms("PPM " + orderdate5 + "  정가판매 데이터 생성 시작");
     fn_get_sale_ppm_daily(orderdate5, orderdate6, frm1); //기초 데이터 생성
     frm1.sendSms("PPM  " + orderdate5 + " 정가판매 데이터 생성  완료");
 }
        private void fn_get_safe_standard_deviation_total(string sdate, string edate, Form1 frm1)
        {
            myConnection = DbConnection.GetRemoteDataInstance().getRemoteDbConnection("213");
            SqlDataAdapter adapter = new SqlDataAdapter();

            string queryString1 = "";
            string stock_date   = string.Format(DateTime.Today.AddDays(0).ToString("yyyy-MM-dd"));

            string queryString = "SELECT a.storeno  "
                                 + "  FROM pos_store_detail as a "
                                 + "  LEFT JOIN pos_store b ON b.storeno = a.storeno "
                                 + " WHERE b.vc_businessStatus = '1' AND a.store_mcode <> '' AND b.storeType <> 'A' "
                                 + " AND a.sdate <= '" + stock_date + "'  AND (a.edate = '' OR a.edate >= '" + stock_date + "') "
                                 + " and a.storeno not in ('8000006996','8000009011','8000009017','8000006158') ";

            adapter.SelectCommand = new SqlCommand(queryString, myConnection);
            SqlCommand command = new SqlCommand(queryString, myConnection);

            try
            {
                DataSet ds = new DataSet();
                adapter.Fill(ds);
                DataTable         table   = ds.Tables[0];
                DataRowCollection rows    = table.Rows;
                string            storeno = "";

                foreach (DataRow dr in rows)
                {
                    storeno = dr["storeno"].ToString();

                    //queryString1 = " insert into preset_scm_stock_share (storeno, ppmidx, total_jungga, share, cum_share,grade)"
                    //                            + " select b.*, "
                    //                            + "   (case when running < 80 then 'A' when running > 80 and running < 90 then 'B' when running >= 90 then 'C' else '' end) as grade "
                    //                            + "      from "
                    //                            + "   (   "
                    //                            + "    select   a.storeno, a.ppmidx,   "
                    //                            + "    sum(a.qty_jungga)as qty_jungga,"
                    //                            + "    round(sum(a.qty_jungga)/convert(float,c.jungga_total)*100,2) as avg_jungga, "
                    //                            + "    round(sum(sum(a.qty_jungga)/convert(float,c.jungga_total)*100) over(order by sum(a.qty_jungga) desc),1) as running from "
                    //                            + "       ( "
                    //                            + "         select  right(storeno,4) as storeno ,  sum(qty_jungga) as jungga_total from preset_sale_ppm_daily  "
                    //                           + "	        where  storeno ='" + storeno + "' and (orderdate >='" + sdate + "' and orderdate <='" + edate + "')"
                    //                            + "	        group by storeno"
                    //                            + "		) as c"
                    //                            + "		left join"
                    //                            + "		( "
                    //                            + "		    select  right(storeno,4) as storeno, ppmidx,sum(qty_jungga)as qty_jungga   from "
                    //                            + "	        preset_sale_ppm_daily "
                    //                            + "	        where  storeno ='" + storeno + "' and (orderdate >='" + sdate + "' and orderdate <='" + edate + "')"
                    //                            + "	        group by storeno, ppmidx "
                    //                            + "       ) as a on a.storeno = c.storeno"
                    //                            + "    group by a.storeno, a.ppmidx,c.jungga_total"
                    //                            + " ) as b "
                    //                            + " group by b.storeno, b.ppmidx,b.qty_jungga,b.avg_jungga,b.running "
                    //                            + "order by storeno, sum(qty_jungga) desc ";
                    queryString1 = " insert into preset_scm_stock_share (storeno, ppmidx, total_jungga, share, cum_share,grade)"
                                   + " select a.storeno, a.ppmidx,    "
                                   + "   sum(a.qty_jungga)as qty_jungga, "
                                   + "   round(sum(a.qty_jungga)/convert(float,c.jungga_total)*100,2) as avg_jungga,  "
                                   + "   round(sum(sum(a.qty_jungga)/convert(float,c.jungga_total)*100) over(order by sum(a.qty_jungga) desc),1) as running   "
                                   + "      , case    "
                                   + "    when round(sum(sum(a.qty_jungga)/convert(float,c.jungga_total)*100) over(order by sum(a.qty_jungga) desc),1) < 80 then 'A'  "
                                   + "    when round(sum(sum(a.qty_jungga)/convert(float,c.jungga_total)*100) over(order by sum(a.qty_jungga) desc),1) > 80 and round(sum(sum(a.qty_jungga)/convert(float,c.jungga_total)*100) over(order by sum(a.qty_jungga) desc),1) < 90 then 'B'  "
                                   + "    when round(sum(sum(a.qty_jungga)/convert(float,c.jungga_total)*100) over(order by sum(a.qty_jungga) desc),1) >= 90 then 'C'  "
                                   + "    else ''  "
                                   + "   end "
                                   + "	  from "
                                   + "	 ( "
                                   + "		    select storeno ,  sum(qty_jungga) as jungga_total "
                                   + "		    from preset_sale_ppm_daily   "
                                   + "		    where  storeno ='"+ storeno + "' and (orderdate >='" + sdate + "' and orderdate <='" + edate + "')  "
                                   + "		    group by storeno "
                                   + "	  ) as c "
                                   + "	     left join  "
                                   + "	 (  "
                                   + "          select storeno, ppmidx, sum(qty_jungga)as qty_jungga "
                                   + "          from preset_sale_ppm_daily  "
                                   + "		      where  storeno ='"+ storeno + "' and (orderdate >='" + sdate + "' and orderdate <='" + edate + "')  "
                                   + "          group by storeno, ppmidx "
                                   + "   ) as a on a.storeno = c.storeno "
                                   + " group by a.storeno, a.ppmidx,c.jungga_total ";


                    command.CommandText = queryString1;
                    command.ExecuteNonQuery();
                }

                frm1.sendSms("매월1일 ABC 누적 데이터 생성 완료");
                frm1.Log("매월1일 ABC 누적 데이터 생성 완료");
            }
            catch (Exception ex)
            {
                frm1.Log("[매월1일 ABC 누적 데이터 생성 에러 ]:" + ex.Message);
                frm1.Log("매월1일 ABC 누적 데이터 생성 쿼리:" + queryString1);
                frm1.sendSms("매월1일 ABC 누적 데이터 생성 오류");
            }

            myConnection.Dispose();
            myConnection.Close();
        }