Esempio n. 1
0
        // <summary>
        /// 頁籤=折讓證明單
        /// </summary>
        /// <param name="ParameterList"></param>
        /// <returns></returns>
        public DataTable CAA24_7(ArrayList ParameterList)
        {

            DataTable dt_Return = new DataTable();

            BCO.CheckSheetPrint bco = new BCO.CheckSheetPrint(ConntionDB);
            dt_Return = bco.GetCAA241_DISC_PRINT(ParameterList);

            if (dt_Return.Rows.Count == 0)
            { throw new Exception("查無資料"); }

            return dt_Return;
        }
Esempio n. 2
0
        /// <summary>
        /// 頁籤=結算未開票對帳單
        /// </summary>
        /// <param name="ParameterList"></param>
        /// <returns></returns>
        public DataTable CAA24_6(ArrayList ParameterList)
        {
            #region 宣告變數

            BCO.CAACommon CAAComm = new BCO.CAACommon();
            ArrayList arl_ReportService = new ArrayList();

            #endregion

            #region 傳入參數

            arl_ReportService.Clear();
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[0].ToString(), "string", false));//[結帳年月](0)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[1].ToString(), "string", false));//[店群]起(1)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[2].ToString(), "string", false));//[店群]迄(2)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[3].ToString(), "string", false));//[路線]起(3)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[4].ToString(), "string", false));//[路線]迄(4)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[5].ToString(), "string", false));//[結帳統編](5)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[6].ToString(), "string", false));//[店號](6)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[7].ToString(), "string", false));//[商品群分類](7)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[8].ToString(), "string", false));//登入人員(8)

            #endregion

            #region 連結資料庫

            DataTable dt_Return = new DataTable();

            BCO.CheckSheetPrint bco = new BCO.CheckSheetPrint(ConntionDB);
            dt_Return = bco.GetInvDiscNOisX(arl_ReportService);

            #endregion

            #region 檢查回傳資料

            if (dt_Return.Rows.Count == 0)//結算未開票對帳單的資料
            { throw new Exception("查無資料"); }

            #endregion

            #region 整理列印資料

            DataTable dt_Temp_Result = new DataTable();
            DateTime d_Now = DateTime.Now;

            //結算未開票對帳單的資料
            dt_Temp_Result = Collate_Information_Print_INVDIS_NO_IS_X(d_Now, dt_Return, dt_Temp_Result);

            #endregion

            #region 檢查列印資料

            if (dt_Temp_Result.Rows.Count == 0)
            { throw new Exception("查無資料"); }

            #endregion

            return dt_Temp_Result;
        }
Esempio n. 3
0
        /// <summary>
        /// 頁籤=發票對帳單
        /// </summary>
        /// <param name="ParameterList"></param>
        /// <returns></returns>
        public DataTable CAA24_1(ArrayList ParameterList)
        {
            #region 宣告變數

            BCO.CAACommon CAAComm = new BCO.CAACommon();
            ArrayList arl_ReportService = new ArrayList();

            #endregion

            #region 傳入參數

            #region 規則

            /*
             * 當頁籤=發票對帳單時
             * 抓取[單店開立]的資料
             * 當頁籤=單店未開發票對帳單
             * 抓取[單店開立]&[總部彙開]的資料
             * 當頁籤=計算機發票
             * 抓取[單店開立]&[總部彙開]的資料
             */

            #endregion

            arl_ReportService.Clear();
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[0].ToString(), "string", false));//[結帳年月](0)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[1].ToString(), "string", false));//[店群]起(1)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[2].ToString(), "string", false));//[店群]迄(2)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[3].ToString(), "string", false));//[路線]起(3)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[4].ToString(), "string", false));//[路線]迄(4)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[5].ToString(), "string", false));//[結帳統編](5)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[6].ToString(), "string", false));//[店號](6)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[7].ToString(), "string", false));//[商品群分類](7)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[8].ToString(), "int", false));//[路線](8)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[9].ToString(), "string", false));//[發票對帳單送達](9)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[10].ToString(), "int", false));//[列印註記](0=未列印,1=已列印)(10)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[11].ToString(), "int", false));//[判斷抓取資料範圍](0=單店開立,1=總部彙開+單店開立)(11)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[12].ToString(), "string", false));//登入人員(12)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[13].ToString(), "string", false));//那一個頁籤(13)
            arl_ReportService.Add(CAAComm.GetValueSetParameter("0", "string", false));//發票未作廢(14)

            #endregion

            #region 連結資料庫

            #region 規則

            /*
             * (1)當頁籤=發票對帳單時
             *    只抓取[單店開立]的資料
             * (2)發票對帳單:左邊上方發票的資料
             *    先依照畫面上的條件,把符合條件的發票抓取出來
             *    發票必須是[營業系統]且[尚未作廢]
             *    抓出的發票依照拆單條件[發票的建立日期][店號][群分類][開立依據][票期][是否檔期]分類
             *    左邊上方發票的資料就抓每一個群組的第一筆資料
             * (3)發票對帳單:右半邊發票的資料
             *    抓取 VDS_CAA_INV_MAIN 的資料
             * (4)發票對帳單:左邊下方明細的資料
             *    依照發票號碼至 VDS_CAM_ACCT_CHECK_OUT,VDS_CAM_ACCT_CHECK_OUT_DETL
             *    抓取相對應的明細資料
             * (5)發票對帳單:右半邊發票的資料
             *    為一式二份,所以一張對帳單只能印兩張發票資料
             * (6)發票對帳單:左邊下方明細的資料
             *    [未稅金額] = VDS_CAM_ACCT_CHECK_OUT.TOT_AMT
             *    [含稅金額] = 若該筆明細所對應的折讓單的稅別 = [應稅] OR [零稅]
             *                  則[未稅金額] = VDS_CAM_ACCT_CHECK_OUT.TOT_AMT + VDS_CAM_ACCT_CHECK_OUT.TOT_AMT_TAX
             *                  若該筆明細所對應的折讓單的稅別 = [免稅]
             *                  則[未稅金額] = 0
             * (7)頁籤 = [發票對帳單]
             *    只抓取[單店開立]的資料,不抓取[總部彙開]的資料
             *    頁籤 = [單店未開發票對帳單] OR [計算機發票]
             *    則抓全部的發票
             */

            #endregion

            DataSet ds_Return = new DataSet();

            BCO.CheckSheetPrint bco = new BCO.CheckSheetPrint(ConntionDB);
            ds_Return = bco.OneNonCheckSheet(null, arl_ReportService);

            #endregion

            #region 檢查回傳資料

            if (ds_Return.Tables["MAIN"].Rows.Count == 0)
            { throw new Exception("查無資料"); }

            #endregion

            #region 整理列印資料

            DataTable dt_Temp_Result = new DataTable();
            dt_Temp_Result = Collate_Information_Print_Inv(ds_Return, "1", arl_ReportService[6].ToString());

            #endregion

            #region 檢查列印資料

            if (dt_Temp_Result.Rows.Count == 0)
            { throw new Exception("查無資料"); }

            #endregion

            #region 更新發票主檔的列印註記

            #region 規則

            /*
             * 當頁籤 = 發票對帳單 & 計算機發票
             * 查詢完成後必須更新發票主檔的列印註記
             * 當頁籤 = 單店未開發票對帳單
             * 查詢完成後不必更新發票主檔的列印註記
             */

            #endregion

            DateTime d_Now = DateTime.Now;
            string s_LogUser = arl_ReportService[12].ToString();

            bco.CAA241_UPDATE_INV_MAIN(null, ds_Return.Tables["MAIN"], d_Now, s_LogUser);

            #endregion

            return dt_Temp_Result;
        }
Esempio n. 4
0
        /// <summary>
        /// 頁籤=計算機發票
        /// </summary>
        /// <param name="ParameterList"></param>
        /// <returns></returns>
        public DataTable CAA24_5(ArrayList ParameterList)
        {
            #region 宣告變數

            BCO.CAACommon CAAComm = new BCO.CAACommon();
            ArrayList arl_ReportService = new ArrayList();

            #endregion

            #region 傳入參數

            #region 規則

            /*
             * 當頁籤=發票對帳單時
             * 抓取[單店開立]的資料
             * 當頁籤=單店未開發票對帳單
             * 抓取[單店開立]&[總部彙開]的資料
             * 當頁籤=計算機發票
             * 抓取[單店開立]&[總部彙開]的資料
             */

            #endregion

            arl_ReportService.Clear();
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[0].ToString(), "string", false));//[結帳年月](0)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[1].ToString(), "string", false));//[店群]起(1)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[2].ToString(), "string", false));//[店群]迄(2)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[3].ToString(), "string", false));//[路線]起(3)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[4].ToString(), "string", false));//[路線]迄(4)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[5].ToString(), "string", false));//[結帳統編](5)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[6].ToString(), "string", false));//[店號](6)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[7].ToString(), "string", false));//[商品群分類](7)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[8].ToString(), "int", false));//[路線](8)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[9].ToString(), "string", false));//[發票對帳單送達](9)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[10].ToString(), "int", false));//[列印註記](0=未列印,1=已列印)(10)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[11].ToString(), "int", false));//[判斷抓取資料範圍](0=單店開立,1=總部彙開+單店開立)(11)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[12].ToString(), "string", false));//登入人員(12)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[13].ToString(), "string", false));//那一個頁籤(13)
            arl_ReportService.Add(CAAComm.GetValueSetParameter("0", "string", false));//發票未作廢(14)

            #endregion

            #region 連結資料庫

            DataTable dt_Return = new DataTable();

            BCO.CheckSheetPrint bco = new BCO.CheckSheetPrint(ConntionDB);
            dt_Return = bco.GetInvData(null, arl_ReportService);

            #endregion

            #region 檢查回傳資料,如果有資料,則依照[帳務人員][店號][稅別][發票號碼]排序資料

            #region 規則

            /* 20100318秀玲與USER確認更改需求
             * 頁籤=計算機發票,排序依照[帳務人員][店號][稅別][發票號碼]排序資料
             */

            #endregion

            if (dt_Return.Rows.Count == 0)
            { throw new Exception("查無資料"); }
            else
            { dt_Return = new DataView(dt_Return, string.Empty, "AC_UID_RANK,STORE_ID_RANK,TAX_TYPE,INV_NO", DataViewRowState.CurrentRows).ToTable(); }

            #endregion

            #region 整理列印資料

            #region 設定 dt_Temp_Result 的框架

            #region 設定變數

            int i_Main_Row_Right = 25;//設定右邊主檔資料區有幾個欄位(一個發票的欄位)
            DataTable dt_Temp_Result = new DataTable();

            #endregion

            #region 右邊主檔資料區(印發票的地方)

            for (int c = 0; c < i_Main_Row_Right; c++)
            { dt_Temp_Result.Columns.Add("MAIN_RIGHT_" + c.ToString(), typeof(string)); }

            #endregion

            #endregion

            foreach (DataRow dr_Row in dt_Return.Rows)
            {
                #region 設定變數

                DateTime d_INV_DATE = DateTime.Parse(dr_Row["INV_DATE"].ToString());
                System.Globalization.TaiwanCalendar g_TaiwanCalendar = new System.Globalization.TaiwanCalendar();

                string s_Year = g_TaiwanCalendar.GetYear(d_INV_DATE).ToString(); //發票日期(年)
                string s_Month = g_TaiwanCalendar.GetMonth(d_INV_DATE).ToString(); //發票日期(月)
                string s_Date = g_TaiwanCalendar.GetDayOfMonth(d_INV_DATE).ToString(); //發票日期(日)
                string s_INV_AMT = Conversion_Number(dr_Row["INV_AMT"].ToString(), 9);
                string s_VOUCH_RFNO = string.Empty;//統一編號
                DataRow dr_Temp_Result = dt_Temp_Result.NewRow();

                #endregion

                #region 將資料寫入TempTable

                for (int i = 0; i < i_Main_Row_Right; i++)
                {
                    #region 設定統一編號

                    s_VOUCH_RFNO = Get_VOUCH_RFNO(dr_Row["VOUCH_RFNO"].ToString());

                    #endregion
                    decimal decINV_UAMT = decimal.Parse(dr_Row["INV_UAMT"].ToString());
                    decimal decINV_TAX = decimal.Parse(dr_Row["INV_TAX"].ToString());
                    if (dr_Row["INV_FORM"].ToString().Trim() == "32")
                    {
                        decINV_UAMT = decINV_UAMT + decINV_TAX;
                        decINV_TAX = 0;
                    }

                    dr_Temp_Result["MAIN_RIGHT_0"] = s_Year;//年
                    dr_Temp_Result["MAIN_RIGHT_1"] = s_Month;//月
                    dr_Temp_Result["MAIN_RIGHT_2"] = s_Date;//日
                    dr_Temp_Result["MAIN_RIGHT_3"] = dr_Row["INV_CHKNO"].ToString();//檢查號碼
                    dr_Temp_Result["MAIN_RIGHT_4"] = dr_Row["INV_NO"].ToString();//發票號碼
                    dr_Temp_Result["MAIN_RIGHT_5"] = dr_Row["TITLE"].ToString();//買受人
                    dr_Temp_Result["MAIN_RIGHT_6"] = s_VOUCH_RFNO;//統一編號
                    dr_Temp_Result["MAIN_RIGHT_7"] = dr_Row["ITEM_NAME"].ToString();//品名
                    dr_Temp_Result["MAIN_RIGHT_8"] = string.Format("{0:N}", decINV_UAMT).Replace(".00", string.Empty);//金額(20100329秀玲修改需求,改抓未稅金額)
                    dr_Temp_Result["MAIN_RIGHT_9"] = (dr_Row["TAX_TYPE"].ToString() == "0") ? "V" : string.Empty;//應稅
                    dr_Temp_Result["MAIN_RIGHT_10"] = (dr_Row["TAX_TYPE"].ToString() == "2") ? "V" : string.Empty;//零稅
                    dr_Temp_Result["MAIN_RIGHT_11"] = (dr_Row["TAX_TYPE"].ToString() == "1") ? "V" : string.Empty;//免稅                   
                    dr_Temp_Result["MAIN_RIGHT_12"] = string.Format("{0:N}", decINV_UAMT).Replace(".00", string.Empty);//銷售額合計
                    dr_Temp_Result["MAIN_RIGHT_13"] = string.Format("{0:N}", decINV_TAX).Replace(".00", string.Empty);//營業稅
                    dr_Temp_Result["MAIN_RIGHT_14"] = string.Format("{0:N}", int.Parse(dr_Row["INV_AMT"].ToString())).Replace(".00", string.Empty);//總計
                    dr_Temp_Result["MAIN_RIGHT_24"] = s_INV_AMT.Substring(0, 1);//億
                    dr_Temp_Result["MAIN_RIGHT_15"] = s_INV_AMT.Substring(1, 1);//千萬
                    dr_Temp_Result["MAIN_RIGHT_16"] = s_INV_AMT.Substring(2, 1);//百萬
                    dr_Temp_Result["MAIN_RIGHT_17"] = s_INV_AMT.Substring(3, 1);//十萬
                    dr_Temp_Result["MAIN_RIGHT_18"] = s_INV_AMT.Substring(4, 1);//萬
                    dr_Temp_Result["MAIN_RIGHT_19"] = s_INV_AMT.Substring(5, 1);//千
                    dr_Temp_Result["MAIN_RIGHT_20"] = s_INV_AMT.Substring(6, 1);//百
                    dr_Temp_Result["MAIN_RIGHT_21"] = s_INV_AMT.Substring(7, 1);//拾
                    dr_Temp_Result["MAIN_RIGHT_22"] = s_INV_AMT.Substring(8, 1);//元
                    //20100503新增該欄位(小張計算機發票備註欄位下面加上店號)
                    //發票對帳單的備註欄位下方的店號是抓VDS_CAM_ACCT_CHECK_OUT的店號,但計算機發票是抓VDS_CAA_INV_MAIN的店號
                    //但發票對帳單只列印單店分別開的發票,這一些發票在發票主檔中的欄位[店號]也是放單店
                    //而總部彙開的發票在發票主檔的欄位[店號]是放總部店號
                    //所以小張計算機發票的欄位[店號]直接抓VDS_CAA_INV_MAIN的店號即可
                    dr_Temp_Result["MAIN_RIGHT_23"] = dr_Row["STORE_ID_RANK"].ToString();//店號
                }

                dt_Temp_Result.Rows.Add(dr_Temp_Result);

                #endregion
            }

            #endregion

            #region 檢查列印資料

            if (dt_Temp_Result.Rows.Count == 0)
            { throw new Exception("查無資料!!"); }

            #endregion

            #region 更新發票主檔的列印註記

            #region 規則

            /*
             * 當頁籤 = 發票對帳單 & 計算機發票
             * 查詢完成後必須更新發票主檔的列印註記
             * 當頁籤 = 單店未開發票對帳單
             * 查詢完成後不必更新發票主檔的列印註記
             */

            #endregion

            DateTime d_Now = DateTime.Now;
            string s_LogUser = arl_ReportService[12].ToString();

            bco.CAA241_UPDATE_INV_MAIN(null, dt_Return, d_Now, s_LogUser);

            #endregion

            return dt_Temp_Result;
        }
Esempio n. 5
0
        /// <summary>
        /// 頁籤=單店未開發票對帳單
        /// </summary>
        /// <param name="ParameterList"></param>
        /// <returns></returns>
        public DataTable CAA24_4(ArrayList ParameterList)
        {
            #region 宣告變數

            BCO.CAACommon CAAComm = new BCO.CAACommon();
            ArrayList arl_ReportService = new ArrayList();

            #endregion

            #region 傳入參數

            arl_ReportService.Clear();
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[0].ToString(), "string", false));//[結帳年月](0)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[1].ToString(), "string", false));//[店群]起(1)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[2].ToString(), "string", false));//[店群]迄(2)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[3].ToString(), "string", false));//[路線]起(3)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[4].ToString(), "string", false));//[路線]迄(4)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[5].ToString(), "string", false));//[結帳統編](5)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[6].ToString(), "string", false));//[店號](6)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[7].ToString(), "string", false));//[商品群分類](7)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[8].ToString(), "int", false));//[路線](8)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[9].ToString(), "int", false));//[判斷抓取資料範圍](0=單店開立,1=總部彙開+單店開立)(9)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[10].ToString(), "string", false));//登入人員(10)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[11].ToString(), "string", false));//那一個頁籤(11)
            arl_ReportService.Add(DBNull.Value);//不論作廢否都要(12)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[13].ToString(), "string", false));//總部憑證彙開對帳列印(13)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[12].ToString(), "string", false));//是否為零元對帳單列印 1:是 0:否(14)
            #endregion

            #region 連結資料庫

            DataSet ds_Return = new DataSet();

            BCO.CheckSheetPrint bco = new BCO.CheckSheetPrint(ConntionDB);
            ds_Return = bco.GetDiscCheckSheet(null, arl_ReportService);

            #endregion

            #region 檢查回傳資料

            if (ds_Return.Tables["Main1"].Rows.Count == 0 && //折讓資料
                ds_Return.Tables["INVDISC_ZERO"].Rows.Count == 0)//發票+折讓=零的資料
            { throw new Exception("查無資料"); }

            #endregion

            #region 整理列印資料

            DataTable dt_Temp_Result = new DataTable();
            DateTime d_Now = DateTime.Now;

            //折讓資料
            if (ParameterList[12].ToString() == "0")  //0.一般列印
                dt_Temp_Result = Collate_Information_Print_Disc(d_Now, ds_Return, "4", arl_ReportService[6].ToString());
            else //1:只印零元憑證門市清單按鈕
                dt_Temp_Result = Collate_Information_Print_Disc(d_Now, ds_Return, "41", arl_ReportService[6].ToString());

            //折讓+發票=零的資料
            dt_Temp_Result = Collate_Information_Print_InvDisc_Zero(d_Now, ds_Return, dt_Temp_Result);

            #endregion

            #region 檢查列印資料

            if (dt_Temp_Result.Rows.Count == 0)
            { throw new Exception("查無資料"); }

            #endregion

            return dt_Temp_Result;
        }
Esempio n. 6
0
        /// <summary>
        /// 頁籤=單店對帳單
        /// </summary>
        /// <param name="ParameterList"></param>
        /// <returns></returns>
        public DataTable CAA24_3(ArrayList ParameterList)
        {
            #region 宣告變數

            BCO.CAACommon CAAComm = new BCO.CAACommon();
            ArrayList arl_ReportService = new ArrayList();

            #endregion

            #region 傳入參數

            #region 規則

            /*
             * 當頁籤=發票對帳單時
             * 抓取[單店開立]的資料
             * 當頁籤=單店未開發票對帳單
             * 抓取[單店開立]&[總部彙開]的資料
             * 當頁籤=計算機發票
             * 抓取[單店開立]&[總部彙開]的資料
             */

            #endregion

            arl_ReportService.Clear();
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[0].ToString(), "string", false));//[結帳年月](0)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[1].ToString(), "string", false));//[店群]起(1)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[2].ToString(), "string", false));//[店群]迄(2)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[3].ToString(), "string", false));//[路線]起(3)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[4].ToString(), "string", false));//[路線]迄(4)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[5].ToString(), "string", false));//[結帳統編](5)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[6].ToString(), "string", false));//[店號](6)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[7].ToString(), "string", false));//[商品群分類](7)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[8].ToString(), "int", false));//[路線](8)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[9].ToString(), "string", false));//[發票對帳單送達](9)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[10].ToString(), "int", false));//[列印註記](0=未列印,1=已列印)(10)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[11].ToString(), "int", false));//[判斷抓取資料範圍](0=單店開立,1=總部彙開+單店開立)(11)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[12].ToString(), "string", false));//登入人員(12)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[13].ToString(), "string", false));//那一個頁籤(13)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[14].ToString(), "string", false));//發票作廢(14)

            #endregion

            #region 連結資料庫

            DataSet ds_Return = new DataSet();

            BCO.CheckSheetPrint bco = new BCO.CheckSheetPrint(ConntionDB);
            ds_Return = bco.OneNonCheckSheet(null, arl_ReportService);

            #endregion

            #region 檢查回傳資料

            if (ds_Return.Tables["MAIN"].Rows.Count == 0)
            { throw new Exception("查無資料"); }

            #endregion

            #region 整理列印資料

            DataTable dt_Temp_Result = new DataTable();

            try
            { dt_Temp_Result = Collate_Information_Print_Inv(ds_Return, "3", arl_ReportService[6].ToString()); }
            catch (Exception ex)
            { throw new Exception("Collate_Information_Print_Inv!錯誤訊息:" + ex.ToString()); }

            #endregion

            #region 檢查列印資料

            if (dt_Temp_Result.Rows.Count == 0)
            { throw new Exception("查無資料"); }

            #endregion

            return dt_Temp_Result;
        }
Esempio n. 7
0
        /// <summary>
        /// 頁籤=折讓對帳單
        /// </summary>
        /// <param name="ParameterList"></param>
        /// <returns></returns>
        public DataTable CAA24_2(ArrayList ParameterList)
        {
            #region 宣告變數

            BCO.CAACommon CAAComm = new BCO.CAACommon();
            ArrayList arl_ReportService = new ArrayList();

            #endregion

            #region 傳入參數

            arl_ReportService.Clear();
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[0].ToString(), "string", false));//[結帳年月](0)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[1].ToString(), "string", false));//[店群]起(1)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[2].ToString(), "string", false));//[店群]迄(2)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[3].ToString(), "string", false));//[路線]起(3)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[4].ToString(), "string", false));//[路線]迄(4)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[5].ToString(), "string", false));//[結帳統編](5)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[6].ToString(), "string", false));//[店號](6)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[7].ToString(), "string", false));//[商品群分類](7)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[8].ToString(), "int", false));//[路線](8)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[9].ToString(), "int", false));//[判斷抓取資料範圍](0=單店開立,1=總部彙開+單店開立)(9)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[10].ToString(), "string", false));//登入人員(10)
            arl_ReportService.Add(CAAComm.GetValueSetParameter(ParameterList[11].ToString(), "string", false));//那一個頁籤(11)
            arl_ReportService.Add(CAAComm.GetValueSetParameter("0", "string", false));//發票未作廢(12)
            arl_ReportService.Add(CAAComm.GetValueSetParameter("0", "string", false));//總部憑證彙開對帳列印(13)
            arl_ReportService.Add(CAAComm.GetValueSetParameter("0", "string", false));//是否為零元對帳單列印 1:是 0:否(14)
            #endregion

            #region 連結資料庫

            #region 規則

            /*
             * (1)折讓對帳單:左邊上方折讓單的資料
             *    先依照畫面上的條件,把符合條件的折讓單抓取出來
             *    折讓單必須是[系統開立]且[營業系統]且[尚未作廢]
             * (2)折讓對帳單:右半邊發票的資料
             *    依照折讓單號至 VDS_CAA_DISC_MAIN,VDS_CAA_DISC_DETL
             *    抓取相對應的發票號碼
             * (3)折讓對帳單:左邊下方明細的資料
             *    依照折讓單號至 VDS_CAM_ACCT_CHECK_OUT,VDS_CAM_ACCT_CHECK_OUT_DETL
             *    抓取相對應的明細資料
             * (4)折讓對帳單:右半邊發票的資料
             *    為一式四份,每一式可以列印五張發票資料,所以一張對帳單只能印五張發票資料
             * (5)折讓對帳單:左邊下方明細的資料
             *    [未稅金額] = VDS_CAM_ACCT_CHECK_OUT.TOT_AMT
             *    [含稅金額] = 若該筆明細所對應的折讓單的稅別 = [應稅] OR [零稅]
             *                  則[未稅金額] = VDS_CAM_ACCT_CHECK_OUT.TOT_AMT + VDS_CAM_ACCT_CHECK_OUT.TOT_AMT_TAX
             *                  若該筆明細所對應的折讓單的稅別 = [免稅]
             *                  則[未稅金額] = 0
             */

            #endregion

            DataSet ds_Return = new DataSet();

            BCO.CheckSheetPrint bco = new BCO.CheckSheetPrint(ConntionDB);
            ds_Return = bco.GetDiscCheckSheet(null, arl_ReportService);

            #endregion

            #region 檢查回傳資料

            //頁籤=折讓對帳單時,不會有發票+折讓=零的資料
            if (ds_Return.Tables["MAIN1"].Rows.Count == 0)
            { throw new Exception("查無資料"); }

            #endregion

            #region 整理列印資料

            DateTime d_Now = DateTime.Now;
            DataTable dt_Temp_Result = Collate_Information_Print_Disc(d_Now, ds_Return, "2", arl_ReportService[6].ToString());

            #endregion

            #region 檢查列印資料

            if (dt_Temp_Result.Rows.Count == 0)
            { throw new Exception("查無資料"); }

            #endregion

            return dt_Temp_Result;
        }