//[-]

        public void UpdatePriceHistory(DataRow[] ArrDr_Item)
        {
            DateTime ServerDate = Layer02_Common.GetServerDate();

            PreparedQuery Pq = Do_Methods.CreateDataAccess().CreatePreparedQuery();

            Pq.pQuery = @"Insert Into Item_PriceHistory (ItemID, Price, EmployeeID_PostedBy, DatePosted) Values (@ItemID, @Price, @EmployeeID_PostedBy, @DatePosted)";

            Pq.Add_Parameter("ItemID", Do_Constants.eParameterType.Long);
            Pq.Add_Parameter("EmployeeID_PostedBy", Do_Constants.eParameterType.Long, this.mCurrentUser.pDrUser["EmployeeID"]);
            Pq.Add_Parameter("DatePosted", Do_Constants.eParameterType.DateTime, ServerDate);
            Pq.Add_Parameter("Price", Do_Constants.eParameterType.Numeric, null, 0, 18, 2);

            Pq.Prepare();

            foreach (DataRow Dr in ArrDr_Item)
            {
                Pq.pParameter_Set("ItemID", Dr["ItemID"]);
                Pq.pParameter_Set("Price", Dr["Price"]);
                Pq.ExecuteNonQuery();
            }
        }
        //[-]

        public static void AddSelected(
            DataTable Dt_Target
            , DataTable Dt_Selected
            , string Query_Selected_Source
            , string Query_Selected_Key
            , string Target_Key
            , List <Str_AddSelectedFields> Obj_Fields = null
            , List <Str_AddSelectedFieldsDefault> Obj_FieldsDefault = null)
        {
            if (!(Dt_Selected.Rows.Count > 0))
            {
                return;
            }

            PreparedQuery Pq = Do_Methods.CreateDataAccess().CreatePreparedQuery();

            Pq.pQuery = @"Select * From " + Query_Selected_Source + @" Where " + Query_Selected_Key + @" = @ID";
            Pq.Add_Parameter("ID", Do_Constants.eParameterType.Long);
            Pq.Prepare();

            foreach (DataRow Dr_Selected in Dt_Selected.Rows)
            {
                //Pq.pParameters["ID"].Value = (Int64)Do_Methods.IsNull(Dr_Selected["ID"], 0);
                Pq.pParameter_Set("ID", Do_Methods.Convert_Int64(Dr_Selected["ID"]));
                DataTable Inner_Dt_Selected = Pq.ExecuteQuery().Tables[0];
                if (Inner_Dt_Selected.Rows.Count > 0)
                {
                    DataRow   Inner_Dr_Selected = Inner_Dt_Selected.Rows[0];
                    DataRow[] Inner_ArrDr;
                    DataRow   Inner_Dr_Target = null;
                    bool      Inner_IsFound   = false;

                    Inner_ArrDr = Dt_Target.Select(Target_Key + " = " + Convert.ToInt64(Inner_Dr_Selected[Query_Selected_Key]));
                    if (Inner_ArrDr.Length > 0)
                    {
                        Inner_Dr_Target = Inner_ArrDr[0];
                        if ((bool)Do_Methods.IsNull(Inner_Dr_Target["IsDeleted"], false))
                        {
                            Inner_Dr_Target["IsDeleted"] = DBNull.Value;
                            Inner_IsFound = true;
                        }
                    }

                    if (!Inner_IsFound)
                    {
                        Int64 Ct = 0;
                        Inner_ArrDr = Dt_Target.Select("", "TmpKey Desc");
                        if (Inner_ArrDr.Length > 0)
                        {
                            Ct = (Int64)Inner_ArrDr[0]["TmpKey"];
                        }
                        Ct++;

                        DataRow Nr = Dt_Target.NewRow();
                        Nr["TmpKey"]     = Ct;
                        Nr["Item_Style"] = "";
                        Nr[Target_Key]   = (Int64)Inner_Dr_Selected[Query_Selected_Key];
                        Dt_Target.Rows.Add(Nr);

                        Inner_Dr_Target = Nr;
                    }

                    if (Obj_Fields != null)
                    {
                        foreach (Str_AddSelectedFields Inner_Obj in Obj_Fields)
                        {
                            Inner_Dr_Target[Inner_Obj.Field_Target] = Inner_Dr_Selected[Inner_Obj.Field_Selected];
                        }
                    }

                    if (Obj_FieldsDefault != null)
                    {
                        foreach (Str_AddSelectedFieldsDefault Inner_Obj in Obj_FieldsDefault)
                        {
                            Inner_Dr_Target[Inner_Obj.Field_Target] = Inner_Obj.Value;
                        }
                    }
                }
            }
        }