public string fnCount(CompanyTran companyTran)
    {
        string sCondition = "";

        sCondition += PublicApi.fnAddCondition("[company_id]", companyTran.company_id);

        string sCountSql =
            "          SELECT COUNT(company_id)   " +
            "          FROM   [MNDTcompany_tran]   " +
            "          WHERE  1 = 1 " + sCondition;
        string sPageSize = PublicApi.fnGetValue(sCountSql, "MNDT");

        return(sPageSize);
    }
    public string fnDeletes(Company company, string sIP, string sId)
    {
        string sSql = " UPDATE [dbo].[MNDTcompany] " +
                      "       SET [status] = 'D' " +
                      " WHERE [company_id] IN (" + company.company_id + ")";
        CompanyTran companyTran = new CompanyTran();

        companyTran.CompanyId(company.company_id)
        .IP(sIP)
        .Status("D")
        .CreateId(sId);
        sSql += fnInsertsSql(companyTran);

        return(PublicApi.fnExecuteSQL(sSql, "MNDT"));
    }
    private string fnInsertSql(CompanyTran companyTran)
    {
        string sSql =
            "  INSERT INTO [MNDTcompany_tran]  " +
            "             ([company_id]  " +
            "             ,[ip]  " +
            "             ,[status]  " +
            "             ,[create_id]  " +
            "             ,[create_datetime])  " +
            "       VALUES  " +
            "             ('" + companyTran.company_id + "'  " +
            "             , '" + companyTran.ip + "'  " +
            "             , '" + companyTran.status + "'  " +
            "             , '" + companyTran.create_id + "'  " +
            "             , GETDATE())  ";

        return(sSql);
    }
    private string fnInsertsSql(CompanyTran companyTran)
    {
        string sSql =
            "  INSERT INTO [MNDTcompany_tran]  " +
            "             ([company_id]  " +
            "             ,[ip]  " +
            "             ,[status]  " +
            "             ,[create_id]  " +
            "             ,[create_datetime])  " +
            "  SELECT [company_id]  " +
            "        , '" + companyTran.ip + "'  " +
            "        , '" + companyTran.status + "'  " +
            "        , '" + companyTran.create_id + "'  " +
            "        , GETDATE()  " +
            "  FROM [MNDTcompany]  " +
            " WHERE [company_id] IN (" + companyTran.company_id + ")";

        return(sSql);
    }
    // iPage 第N頁
    // iSize 最大顯示數量
    public DataTable fnSelects(CompanyTran companyTran, int iPage, int iSize)
    {
        int    iStart     = (iPage - 1) * iSize + 1;
        int    iEnd       = iPage * iSize;
        string sCondition = "";

        sCondition += PublicApi.fnAddCondition("[company_id]", companyTran.company_id);
        string sInquireSql =
            "  SELECT [company_tran].[company_id],   " +
            "         [company_tran].[ip],   " +
            "         [company_tran].[status],   " +
            "         [company_tran].[create_id],   " +
            "         CONVERT(char, [company_tran].[create_datetime], 120) 'create_datetime'   " +
            "  FROM   (SELECT Row_number() OVER (ORDER BY [create_datetime] ASC) NUM,   " +
            "                  *   " +
            "          FROM   [MNDTcompany_tran]   " +
            "          WHERE  1 = 1 " + sCondition + ") AS [company_tran]  " +
            "  WHERE  NUM BETWEEN " + iStart.ToString() + " AND " + iEnd.ToString() + "   ";

        return(PublicApi.fnGetDt(sInquireSql, "MNDT"));
    }
    public string fnUpdate(Company company, string sIP, string sId)
    {
        string sSql =
            "  UPDATE [dbo].[MNDTcompany]  " +
            "     SET [tax_id] = '" + company.tax_id + "'  " +
            "        ,[name] = '" + company.name + "'  " +
            "        ,[email] = '" + company.email + "'  " +
            "        ,[address] = '" + company.address + "'  " +
            "        ,[pay] = '" + company.pay + "'  " +
            "        ,[phone] = '" + company.phone + "'  " +
            "        ,[tel] = '" + company.tel + "'  " +
            "        ,[description] = '" + company.description + "'  " +
            "        ,[status] = '" + company.status + "'  " +
            "  WHERE [company_id] = '" + company.company_id + "' ";
        CompanyTran companyTran = new CompanyTran();

        companyTran.CompanyId(company.company_id)
        .IP(sIP)
        .Status("M")
        .CreateId(sId);
        sSql += fnInsertSql(companyTran);

        return(PublicApi.fnExecuteSQL(sSql, "MNDT"));
    }