Comments (2)
I'm unable to make the scope, because it would need very a specific mysql raw select with mysql date calculation methods. Since laravel installation accepts mysql, postgres and others I'm afraid i can't put it in the package.
I have not tested, but I think it would be something like:
/**
* Scope subscriptions in grace period.
*
* @param \Illuminate\Database\Eloquent\Builder $builder
*
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeInGrace($query)
{
return $query->select(DB::raw('CASE grace_interval
WHEN "hour" THEN date_add(ends_at, INTERVAL grace_period HOUR)
WHEN "day" THEN date_add(ends_at, INTERVAL grace_period DAY)
WHEN "week" THEN date_add(ends_at, INTERVAL grace_period WEEK)
WHEN "month" THEN date_add(ends_at, INTERVAL grace_period MONTH)
END
AS grace_ends_at'))
->where('grace_period', '>', 0)
->where('grace_ends_at', '>=', Carbon::now());
}
from laravel-subby.
Hi @bpuig!
Maybe we could have a separate column grace_ends_at
just as there is trial_ends_at
?
Then for the scope we would just need a check if now()
is greater than ends_at
and lower than grace_ends_at
? Similarly isInGrace()
would be very easy to calculate.
from laravel-subby.
Related Issues (20)
- I can not install on Laravel 9 ! HOT 3
- Documentation HOT 2
- Default database migration isn't compatible with MySQL HOT 6
- changePlan -> deleteFeaturesNotInPlan Bug HOT 1
- Free plan HOT 2
- Foreign key constraint is incorrectly formed HOT 1
- getSubscriptionRemainingUsagePriceProrate for year invoice interval HOT 2
- If user has more than one subscription, does not return total value of both subscription's feature HOT 2
- Call to a member function getKey() on array error HOT 5
- Per-Seat Billing Plans feature HOT 2
- Trait method newSubscription collision with Laravel Cashier HOT 2
- Method addMounths does not exist ---> newSubscription() HOT 1
- Bpuig \ Subby \ Exceptions\ DuplicateException HOT 2
- App\Models\User::activeSubscriptions must return a relationship instance. HOT 3
- Trial interval doesn't work when we use PlanCombination instead Plan
- SubscriptionPaymentQueuerJob now doesn't work
- Subscription feature price HOT 3
- Doubts starting using this HOT 4
- Missing PlanSubscriptionScheduleService Contract
- Change plan or/and renew plan period HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from laravel-subby.