private AirMaterial EditGroupMarkupWhenComm(AirMaterial currentAirMaterial, GroupMarkup groupMarkup)
    {
        //����Ѿ��ӹ������ء�
        if (currentAirMaterial.Profile.GetParam(FLAG_REFERENCE_MARKUP_EDITED) != null && (bool)currentAirMaterial.Profile.GetParam(FLAG_REFERENCE_MARKUP_EDITED))
        {
            return currentAirMaterial;
        }

        //����Markup�Ѿ��ӹ�
        currentAirMaterial.Profile.SetParam(FLAG_REFERENCE_MARKUP_EDITED, true);

        decimal adultBasePrice = 0.0m; //���˲���˰����
        decimal childBasePrice = 0.0m; //С������˰����
        adultBasePrice = currentAirMaterial.Profile.GetParam("PUBLISHED_ADULT_FARE") == null ? adultBasePrice : Convert.ToDecimal(currentAirMaterial.Profile.GetParam("PUBLISHED_ADULT_FARE"));
        childBasePrice = currentAirMaterial.Profile.GetParam("PUBLISHED_CHILD_FARE") == null ? childBasePrice : Convert.ToDecimal(currentAirMaterial.Profile.GetParam("PUBLISHED_CHILD_FARE"));
        int commision = currentAirMaterial.Profile.GetParam("COMMISION") == null ? 0 : Convert.ToInt32(currentAirMaterial.Profile.GetParam("COMMISION"));

        if (Convert.ToBoolean(currentAirMaterial.Profile.GetParam("ISWEBFARE")))
        {
            //if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money)
            //{
            //    currentAirMaterial.Profile.SetParam("PUBLISHED_ADULT_FARE", adultBasePrice + groupMarkup.AdultMarkup.Markup);
            //}

            //    //�ٷֱ�
            //else if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent)
            //{
            //    currentAirMaterial.Profile.SetParam("PUBLISHED_ADULT_FARE", adultBasePrice * (1 + groupMarkup.AdultMarkup.Markup));
            //}

            ////ChildMarkup
            ////�������
            //if (((int)decimal.Parse(currentAirMaterial.ChildBaseFare.ToString())) != 0)
            //{
            //    if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money)
            //    {
            //        currentAirMaterial.Profile.SetParam("PUBLISHED_CHILD_FARE", childBasePrice + groupMarkup.ChildMarkup.Markup);
            //    }

            //        //�ٷֱ�
            //    else if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent)
            //    {
            //        currentAirMaterial.Profile.SetParam("PUBLISHED_CHILD_FARE", childBasePrice * (1 + groupMarkup.ChildMarkup.Markup));
            //    }
            //}

        }
        else
        {

            ////AdultMarkup
            ////�������
            //if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money)
            //{

            //    currentAirMaterial.SetAdultMarkup(currentAirMaterial.AdultMarkup + groupMarkup.AdultMarkup.Markup);
            //}

            //    //�ٷֱ�
            //else if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent)
            //{
            //    currentAirMaterial.Profile.SetParam("COMMISION", commision + 100 * groupMarkup.AdultMarkup.Markup);
            //}

            ////ChildMarkup
            ////�������
            //if (((int)decimal.Parse(currentAirMaterial.ChildBaseFare.ToString())) != 0)
            //{
            //    if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money)
            //    {
            //        currentAirMaterial.SetChildMarkup(currentAirMaterial.ChildMarkup + groupMarkup.ChildMarkup.Markup);
            //    }

            //        //�ٷֱ�
            //    else if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent)
            //    {
            //        currentAirMaterial.Profile.SetParam("COMMISION", commision + 100 * groupMarkup.AdultMarkup.Markup);
            //    }
            //}

            //AdultMarkup
            //�������
            TERMS.Common.Markup newMarkup = new TERMS.Common.Markup();
            if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money)
            {
                newMarkup = new TERMS.Common.Markup(TERMS.Common.PassengerType.Adult, new TERMS.Common.FareAmount(groupMarkup.AdultMarkup.Markup));

            }

                //�ٷֱ�
            else if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent)
            {
                newMarkup = new TERMS.Common.Markup(TERMS.Common.PassengerType.Adult, new TERMS.Common.FareAmount(currentAirMaterial.AdultBaseFare * (groupMarkup.AdultMarkup.Markup)));

            }

            //ChildMarkup
            //�������
            if (((int)decimal.Parse(currentAirMaterial.ChildBaseFare.ToString())) != 0)
            {
                if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money)
                {
                    newMarkup.SetAmount(TERMS.Common.PassengerType.Child, new TERMS.Common.FareAmount(groupMarkup.ChildMarkup.Markup));

                }

                    //�ٷֱ�
                else if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent)
                {
                    newMarkup.SetAmount(TERMS.Common.PassengerType.Child, new TERMS.Common.FareAmount(currentAirMaterial.ChildBaseFare * (groupMarkup.ChildMarkup.Markup)));

                }
            }
            currentAirMaterial.Price.AddMarkup(newMarkup);
        }

        return currentAirMaterial;
    }
    private AirMerchandise EditGroupMarkup(AirMerchandise currentAirMerchandise, GroupMarkup groupMarkup)
    {
        //AdultMarkup
        //�������
        if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money)
        {
            currentAirMerchandise.SetAdultBaseFare(currentAirMerchandise.AdultBaseFare + groupMarkup.AdultMarkup.Markup);
        }

            //�ٷֱ�
        else if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent)
        {
            currentAirMerchandise.SetAdultBaseFare(currentAirMerchandise.AdultBaseFare * (1 + groupMarkup.AdultMarkup.Markup));
        }

        //ChildMarkup
        //�������
        if (((int)decimal.Parse(currentAirMerchandise.ChildBaseFare.ToString())) != 0)
        {
            if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money)
            {
                currentAirMerchandise.SetChildBaseFare(currentAirMerchandise.ChildBaseFare + groupMarkup.ChildMarkup.Markup);
            }

                //�ٷֱ�
            else if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent)
            {
                currentAirMerchandise.SetChildBaseFare(currentAirMerchandise.ChildBaseFare * (1 + groupMarkup.ChildMarkup.Markup));
            }
        }

        return currentAirMerchandise;
    }
    private AirMaterial EditGroupMarkup(AirMaterial currentAirMaterial, GroupMarkup groupMarkup)
    {
        //����Ѿ��ӹ������ء�
        if (currentAirMaterial.Profile.GetParam(FLAG_REFERENCE_MARKUP_EDITED) != null && (bool)currentAirMaterial.Profile.GetParam(FLAG_REFERENCE_MARKUP_EDITED))
        {
            return currentAirMaterial;
        }

        //����Markup�Ѿ��ӹ�
        currentAirMaterial.Profile.SetParam(FLAG_REFERENCE_MARKUP_EDITED,true);

        TERMS.Common.Markup newMarkup = new TERMS.Common.Markup();
        //AdultMarkup
        //�������
        if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money)
        {
            newMarkup = new TERMS.Common.Markup(TERMS.Common.PassengerType.Adult, new TERMS.Common.FareAmount(groupMarkup.AdultMarkup.Markup));

        }

            //�ٷֱ�
        else if (groupMarkup.AdultMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent)
        {
            newMarkup = new TERMS.Common.Markup(TERMS.Common.PassengerType.Adult, new TERMS.Common.FareAmount(currentAirMaterial.AdultBaseFare * (groupMarkup.AdultMarkup.Markup)));

        }

        //ChildMarkup
        //�������
        if (((int)decimal.Parse(currentAirMaterial.ChildBaseFare.ToString())) != 0)
        {
            if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Money)
            {
                newMarkup.SetAmount(TERMS.Common.PassengerType.Child,new TERMS.Common.FareAmount(groupMarkup.ChildMarkup.Markup));

            }

                //�ٷֱ�
            else if (groupMarkup.ChildMarkup.MarkupType == ConfigurationConst.GroupMarkType.Percent)
            {
                newMarkup.SetAmount(TERMS.Common.PassengerType.Child, new TERMS.Common.FareAmount(currentAirMaterial.ChildBaseFare * (groupMarkup.ChildMarkup.Markup)));

            }
        }
        currentAirMaterial.Price.AddMarkup(newMarkup);
        return currentAirMaterial;
    }