Temporarily disable quantity discounts in OpenCart - opencart

Currently i am using default OpenCart discounts dependent on quantity.
For example
1 item - 10 $ each
5 items and more - 9 $ each
For a short period of time, i want to disable this option, and make prices same for all quantities.
In this case:
1 item or more - 10 $ each.
The problem is, that after this period, i have to switch back to old discounts dependent on quantity. Is it possible to implement this functionality without going through all items and editing discounts manualy?

Yes, there is! You can use the oc_product_discount table's date_start field to do that. Let's say you'd like to disable these until 1st January 2015. Run the following query to do that (I'm assuming you haven't changed the DB_PREFIX in your config.php file, so it's oc_):
UPDATE oc_product_discount
SET date_start = '2015-01-01'
Please note: you have to provide the date in a YYYY-MM-DD format.
Using this solution would save you from the headache of possibly forgetting to change it back, as it would not be necessary. It just tells Opencart, that these discounted prices should take place from the date you've specified. I hope this was thing you were looking for.

Related

Default Silcer Selection in Power BI (latest date)

I have one query can somebody please tell how to show Latest date in a date format
So basically, I want to show the latest date selected by default and if the user wants to select other dates they can change manually but the latest date should be in a date format
Date = IF('Query'[Date] = MAX('Q'[Date]), "Latest Date", FORMAT('Query'[Date], "MM-DD-YYYY"))
Please help to show the latest date in a date format
eg: MM-DD-YYYY
First of all, unless you use a static value like "Latest Date" as you have done in the column above, you will not be able to set the slicer to the latest date. However, you can have your report behave as though the latest date were selected if nothing is selected.
Based on your formula, I am assuming that the table Query holds the static latest date of the model and that the table Q is your calendar table.
Create these measures:
Pivot Date = MAX(Query[Date])
Earliest Selected Date = IF(ISFILTERED(Q[Date]),MIN(Q[Date]),[Pivot Date])
Latest Selected Date = IF(ISFILTERED(Q[Date]),MAX(Q[Date]),[Pivot Date])
Now the hard part is you need to write all your measures to use the date range defined by Earliest and Latest Selected instead of just leaving it up to the slicer to control the dates. This allows you to control what's displayed when nothing is selected.
ExampleMeasure =
var start_date = [Earliest Selected Date]
var end_date = [Latest Selected Date]
return
CALCULATE([Some Measure], removefilters(q[date]), q[date] >= start_date, q[date] <= end_date)
One of the drawbacks of this approach is that you may be depending on your slicer to show the user which dates are selected. To overcome that, add an unobtrusive visual that shows the dates in use. I like to use a Multi Row Card for this and place it in the top right corner of every page. I include these measures: Available From, Available to, Selected From and Selected To. That way viewers know how much data is in the report overall, and they know what's selected at this time. Placing this in the same place on every page in every report is an excellent practice as your viewers will become habituated to consulting this spot for date info.
Finally, I want to point out that you could implement this logic with calculation groups, and that is how I would do it in one of my own reports. Doing so would eliminate the need to modify all the measures you already have, but it would introduce a number of complexities. Calculation Groups have a big learning curve, so you need to be prepared for that journey. The alternative I have suggested will be quicker than getting up to speed on Calculation Groups. However, you should learn how to use them. I highly recommend everything at sqlbi.com on this topic. They have an excellent search tool on the site to find all their content related to Calculation Groups.

How can I display months without no data?

I follow the following blog http://sqljason.com/2018/03/display-last-n-months-selected-month-using-single-date-dimension-in-powe... in order to display Display Last N Months & Selected Month using Single Date Dimension in Power BI.
I've an issue when trying to display month-year when there is no data in the fact table sales.
I did modification: https://1drv.ms/u/s!Amd7BXzYs7AVg3xJ1MKPYI_PIw3z
How to show to show for example October, november and december 2015 as an example?
I downloaded your PBIX file and looked through it.
I am unsure what you exactly want to see, because your report has a few quirks in it.
I'll try to sum them up:
You have a 'select month' drop down menu ánd a slider for selecting the number of months (As 'sales for last x months). This doesn't work. Since you now need to manually select the wanted months in the drop down menu with CTRL+Click (On each month) ánd you need to use the slider.
Next to that, your calculations seem to be wrong. If I only select Dec-16 I get 70. If I select Nov-16 and Dec-16, the sales in Dec-16 suddenly become 70 and Nov-16 takes over. If I select until July-16, July-16 gets 70 and Dec-16 gets 120.. I don't know if this is how you want it but it looks like strange behaviour.
A good tip for measures. If you sum, divide or do any calculation. End with +0. That way you wont see (Blank) but 0. E.g.
Sales (Selected Month) = SUM(Sales[Sales]) + 0
Also, you have made a small date table, which is good. But you don't use this consistently through your report. For selecting months you use the date table and for the graph you use the date in the sales table. It is better to use the date table for dates, since that is it's sole purpose.

how to set current quarter in Superset?

I want to set current quarter dynamically, e.g [2021-01-01 ~ 2021-04-01)
Does superset support it? if so how to config it?
The Last vs Previous and date range control in general has been a source of confusion for my users.
Last Quarter just shows the last 3 months [because it's a quarter of a year?].
It would be great to have options like Week to date, Month/Period to date, Quarter to date, etc...
Another issue is that each company may define their quarters/periods on different starting dates, depending on their fiscal calendar.
As a stop-gap, I've done the following.
enriched the underlying dataset to have additional columns like period_start_date and fiscal_quarter_start_date.
created a fiscal_dates table that contains a list of every day over the years I need to query. The columns correlate with date columns in my other tables, like dob, fiscal_week_start_date, period_start_date, fiscal_quarter_start_date . I created this table in postgres using generate series
created a new virtual dataset that contains the column period_start_date, that shows the last 4 years of period start dates.
use a value native filter to select from the list of dates.
make the values sorted descending, and default value as "first item in list".
This allows the user to select all records that occur in the same quarter/period, with a default of the current quarter.
The tentative apache/superset#17416 pull request should remedy this problem, i.e., for the QTD you would simply specify the START as datetrunc(datetime("now"), quarter) and leave the END undefined.

Opencart product specials discounts "Options" bug or feature

As the opencart has a Special option tab that allows a promotion to be added, I'm trying to do the following:
have a product with a price of 100$
have a second version of the product via the Options tab that is 50$
and a 3rd version of the product that is 150$
and run a special price. The idea is to be able to select a special price for any of the options, but at the moment it's not working at all. If I set a special price to 21$ the product page displays only the 2 options of 50$ and 150$ removing the default of 100 (which is ok - i can add a 3rd for the default) but has no effect on the options prices. Is there an extension or a fix that can allow me to achieve that - the discount from the special offers tab to affect the price from the options tab. It's my first time working with opencart so it's all a bit new to me.
Here's a link to a test product:
http://www.hqperfumery.com/index.php?route=product/product&path=67&product_id=1727
you can see that it strikes out the price and offers the new price but it's the same though the amount discounted from the standard price is correctly calculated under the product name
Thanks for any help provided

Merging data with a dates table gives strange behaviour when some recordfield is added

I'm using Crystel Reports again after not touching it for about 8 years.
I'm having this situation...
I have 1 data table, and 1 table with just day numbers from 1 to 31.
Nothing is really linked between each other.
In my report I let the user select a reference date.
From that date I grab the maximum days of the month.
The report lists a row per day of that month but there are no actual database fields inthere. Just the first 2 letters of the dayname, the day number and another formula based field showing 'yes/no' or '' depending on a main record value.
So far so good.
In the group header I was adding the fields from the main datatable which went all fine until I added fields that in the query on the sql server rely on some cases but CR just read it out as 1 singe record row with everything in it.
For some reason the report generation goes from 1-2 seconds to 30-40 once I add that field that just outputs 'X' or ''. (it represents things assigned to that user)
Other reports where I'm using the same data still generate in 2 seconds.
To get this working right and to eleminate double date records I'm stuck with 3 groups.
I think this ain't optimal and the reason for the slow down although it wasn't there at the start.
So I was wondering:
Should I go for a sub report for the day listing?
Can I feed the subreport with my date parameter?
or is there some kind of scripted way to list a row x-times without all the grouping requirements?
Synchro was right, the problem was in the actual query/view.
For some reason the view takes half a minute longer if you just added an order by to a specific field.
The "where id between 211 and 265 or id=67" has been moved from a joined view to the actual query.
Thanks for the hint, Synchro.