Exemple #1
0
    private bool SaveData()
    {
        GV1_WriteToCache();
        GV2_WriteToCache();
        GV3_WriteToCache();

        //1.發票/折讓/暫收 drInvDisTmps
        DataTable dtGV2 = (DataTable)Session[PageTimeStamp.Value + GridView2.ID];
        //DataRow[] drInvDisTemps = dtGV2.Select("REMIT_AMT<>REMIT_AMT_O OR INDEED_DATE<>INDEED_DATE_O OR MEMO<>MEMO_O");
        //2010/08/24 取消儲存確認付款日和備註的功能
        DataRow[] drInvDisTemps = dtGV2.Select("REMIT_AMT<>REMIT_AMT_O");

        //2.刪除有異動記錄的立沖關連
        DataTable dtGV3 = (DataTable)Session[PageTimeStamp.Value + GridView3.ID];
        if (dtGV3 == null)
            dtGV3 = GV3_DT_SCHEMA();
        DataView dvConnect = dtGV3.DefaultView;
        dvConnect.RowFilter = "CHANGE='1'";
        DataTable dtConnectDel = dvConnect.ToTable(true, "LINK_NO"); //ToTable第一個參數為是否Distinct

        //3.立沖關連 drConnects
        DataRow[] drConnects = dtGV3.Select("CHANGE='1' AND DEL_FLAG='0' And SOURCE_TYPE='1'", "LINK_NO ASC,SORT_NO ASC");

        //4.所有異動過立沖的發票/折讓/暫收單號 重算餘額(因為有些立沖刪除,並未在GV2中就不會重算到金額)
        DataTable dtInvDisTmpReCal = dvConnect.ToTable(true, "CUBE_NO", "CUBE_TYPE"); //ToTable第一個參數為是否Distinct


        //0.繳款資訊 drPays
        string strWhereWashN0 = string.Empty;
        for (int i = 0; i < dtConnectDel.Rows.Count; i++)
        {
            //取得所有異動的繳款資訊
            strWhereWashN0 += " OR COLL_NO = '" + dtConnectDel.Rows[i]["LINK_NO"].ToString() + "'";
        }
        DataTable dtGV1 = (DataTable)Session[PageTimeStamp.Value + GridView1.ID];
        DataRow[] drPays = dtGV1.Select("DIFF_AMT<>DIFF_AMT_O OR OTHER_DIFF<>OTHER_DIFF_O OR REMIT_DIFF<>REMIT_DIFF_O OR LAST_WASH_DATE<>LAST_WASH_DATE_O " + strWhereWashN0);


        CAAModel.MaintainAccountRecord BCO = new CAAModel.MaintainAccountRecord(ConntionDB);

        string strError = string.Empty;
        foreach (DataRow drConnect in drConnects)
        {
            string strCUBE_TYPE = Get_CubeTypeNo(drConnect["CUBE_TYPE"].ToString());
            if (strCUBE_TYPE == "1") //只有新增CUBE_TYPE為發票的資料到 VDS_CAA_CONNECT_MAIN
            {
                if (drConnect["CHECK_DATE"].ToString() == "1")
                {
                    ParameterList.Clear();
                    ParameterList.Add(drConnect["WASH_DATE"].ToString().Replace("/", "").Substring(0, 6));   //5.沖帳日期                    
                    ParameterList.Add("CAA11");
                    bool bCloseMonthCheck = BCO.CheckMonthClose(ParameterList);
                    if (bCloseMonthCheck == true)
                    {
                        strError += "收款單號:" + drConnect["LINK_NO"].ToString() + " 發票號碼: " + drConnect["CUBE_NO"].ToString() + " 沖帳月份 " + drConnect["WASH_DATE"].ToString().Substring(0, 4) + "/" + drConnect["WASH_DATE"].ToString().Substring(4, 2) + " 已月結<br />";
                    }
                }
            }
        }
        if (strError != "")
        {
            ErrorMsgLabel.Text = strError;
            return false;
        }
        ParameterList.Clear();
        //0.繳款資訊 drPays
        ParameterList.Add(drPays);  //GV1 DATA
        //1.發票/折讓/暫收 drInvDisTmps
        ParameterList.Add(drInvDisTemps); //GV2 DATA
        //2.刪除有異動記錄的立沖關連
        ParameterList.Add(dtConnectDel);
        //3.立沖關連 drConnects
        ParameterList.Add(drConnects);
        //4.所有異動過立沖的發票/折讓/暫收單號 重算餘額 dtInvDisTmpReCal
        ParameterList.Add(dtInvDisTmpReCal);
        //5.UPDATEUID
        ParameterList.Add(Session["UID"].ToString());
        //6.UPDATEDATE
        ParameterList.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
        BCO.SaveAccountRecord(ParameterList);
        return true;
    }