register, Grundpreis
This commit is contained in:
parent
f06d2d15a5
commit
8e4bb0c2f6
32 changed files with 965 additions and 216 deletions
5
.env
5
.env
|
|
@ -64,4 +64,7 @@ MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
|||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
||||
|
||||
MIVITA_RENEWAL_DAYS=29
|
||||
MIVITA_ABO_BOOKING_DAYS=14
|
||||
MIVITA_REMIND_FIRST_DAYS=21
|
||||
MIVITA_REMIND_SEC_DAYS=14
|
||||
MIVITA_ABO_BOOKING_DAYS=7
|
||||
MIVITA_REMIND_LAST_DAYS=2
|
||||
82
.idea/workspace.xml
generated
82
.idea/workspace.xml
generated
|
|
@ -2,52 +2,37 @@
|
|||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="2fbaac5f-25ba-4502-a970-cc14728d7d55" name="Default Changelist" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/app/Mail/MailCustomMessage.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/app/Services/UserService.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/public/pdf/mivita_contract_de.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/lang/de/register.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/lang/de/membership.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/lang/de/reminder.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/emails/custom.blade.php" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/resources/views/sys/admin/cronjobs.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.env" beforeDir="false" afterPath="$PROJECT_DIR$/.env" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/jsLinters/jshint.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/jsLinters/jshint.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Api/PayoneController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Api/PayoneController.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/CronController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/CronController.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/LeadController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/LeadController.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Pay/PayoneController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Pay/PayoneController.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Sys/AdminToolsController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Sys/AdminToolsController.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Web/CheckoutController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Web/CheckoutController.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Web/RegisterController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Web/RegisterController.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/WizardController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/WizardController.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Mail/MailReleaseAccount.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Mail/MailReleaseAccount.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Models/UserAccount.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/UserAccount.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Mail/MailCustomMessage.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Mail/MailCustomMessage.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Models/Product.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/Product.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Models/UserHistory.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/UserHistory.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/Services/Util.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Services/Util.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/app.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/app.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/migrations/2019_02_29_170559_create_user_accounts_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2019_02_29_170559_create_user_accounts_table.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/js/custom.js" beforeDir="false" afterPath="$PROJECT_DIR$/public/js/custom.js" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/lang/de.json" beforeDir="false" afterPath="$PROJECT_DIR$/resources/lang/de.json" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/User.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/User.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/logging.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/logging.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/config/mivita.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/mivita.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/database/migrations/2018_10_21_164001_create_products_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2018_10_21_164001_create_products_table.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/lang/de/email.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/lang/de/email.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/lang/de/payment.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/lang/de/payment.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/admin/country/form.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/country/form.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/admin/lead/edit.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/lead/edit.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/admin/lead/m_register_data.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/lead/m_register_data.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/admin/product/form.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/product/form.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/admin/product/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/product/index.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/emails/auth.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/emails/auth.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/home.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/home.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/layouts/application.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/layouts/application.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/user/data_confirm.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/data_confirm.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/user/form.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/form.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/layouts/includes/layout-sidenav.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/layouts/includes/layout-sidenav.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/user/membership/_abo_options.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/membership/_abo_options.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/user/membership/_payment.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/membership/_payment.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/user/membership/_payment_order.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/membership/_payment_order.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/user/membership/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/membership/index.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/user/user_form.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/user_form.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/user/user_new_form.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/user_new_form.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/user/wizard/_payment.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/wizard/_payment.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/user/wizard/create_release.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/wizard/create_release.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/user/wizard/register.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/wizard/register.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/user/wizard/register_release.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/user/wizard/register_release.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/web/layouts/includes/footer.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/web/layouts/includes/footer.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/web/templates/_content_contact.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/web/templates/_content_contact.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/web/templates/checkout-final.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/web/templates/checkout-final.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/web/templates/checkout.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/web/templates/checkout.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/web/templates/registrierung.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/web/templates/registrierung.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/web/templates/registrierung_finish.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/web/templates/registrierung_finish.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/resources/views/web/user/layouts/includes/footer.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/web/user/layouts/includes/footer.blade.php" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/routes/web.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/web.php" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
|
|
@ -270,13 +255,6 @@
|
|||
<property name="settings.editor.selected.configurable" value="reference.webide.settings.project.settings.php.composer" />
|
||||
</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/resources/lang/de" />
|
||||
<recent name="$PROJECT_DIR$/app/Mail" />
|
||||
<recent name="$PROJECT_DIR$/resources/views/user/membership" />
|
||||
<recent name="$PROJECT_DIR$/config" />
|
||||
<recent name="$PROJECT_DIR$/resources/views/user/members" />
|
||||
</key>
|
||||
<key name="MoveFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/public/vendor/libs/dropzone" />
|
||||
<recent name="$PROJECT_DIR$/public/vendor/libs" />
|
||||
|
|
@ -284,6 +262,13 @@
|
|||
<recent name="$PROJECT_DIR$/resources/views/admin/lead" />
|
||||
<recent name="$PROJECT_DIR$/public/download" />
|
||||
</key>
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/resources/lang/de" />
|
||||
<recent name="$PROJECT_DIR$/resources/views/emails" />
|
||||
<recent name="$PROJECT_DIR$/resources/views/sys/admin" />
|
||||
<recent name="$PROJECT_DIR$/app/Mail" />
|
||||
<recent name="$PROJECT_DIR$/resources/views/user/membership" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunManager">
|
||||
<configuration default="true" type="ShConfigurationType">
|
||||
|
|
@ -440,6 +425,11 @@
|
|||
<workItem from="1584782149779" duration="14772000" />
|
||||
<workItem from="1584954914592" duration="54000" />
|
||||
<workItem from="1584965547046" duration="694000" />
|
||||
<workItem from="1585396827913" duration="1986000" />
|
||||
<workItem from="1585400638388" duration="9592000" />
|
||||
<workItem from="1585576417290" duration="2940000" />
|
||||
<workItem from="1585666412873" duration="6324000" />
|
||||
<workItem from="1585729859738" duration="13087000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
|
|
@ -482,11 +472,12 @@
|
|||
</state>
|
||||
<state x="968" y="472" key="#com.intellij.openapi.updateSettings.impl.PluginUpdateInfoDialog/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1581691507125" />
|
||||
<state x="968" y="472" key="#com.intellij.openapi.updateSettings.impl.PluginUpdateInfoDialog/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1578493681405" />
|
||||
<state x="1019" y="499" key="#com.jetbrains.php.actions.copyPaste.importReferences.PhpImportReferencesDialog" timestamp="1584797806264">
|
||||
<state x="1019" y="499" key="#com.jetbrains.php.actions.copyPaste.importReferences.PhpImportReferencesDialog" timestamp="1585733837456">
|
||||
<screen x="0" y="23" width="2560" height="1417" />
|
||||
</state>
|
||||
<state x="1019" y="499" key="#com.jetbrains.php.actions.copyPaste.importReferences.PhpImportReferencesDialog/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1584797806264" />
|
||||
<state x="1019" y="499" key="#com.jetbrains.php.actions.copyPaste.importReferences.PhpImportReferencesDialog/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1578836311908" />
|
||||
<state x="1019" y="499" key="#com.jetbrains.php.actions.copyPaste.importReferences.PhpImportReferencesDialog/2560.-493.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1585733837456" />
|
||||
<state width="239" height="457" key="HiddenNamespacesPopup" timestamp="1583573337041">
|
||||
<screen x="0" y="23" width="2560" height="1417" />
|
||||
</state>
|
||||
|
|
@ -495,20 +486,23 @@
|
|||
<screen x="0" y="23" width="2560" height="1417" />
|
||||
</state>
|
||||
<state x="1143" y="547" key="com.intellij.database.view.ui.DbObjectDialog/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1583573350583" />
|
||||
<state x="1064" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1578063343693">
|
||||
<state x="1064" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1585407329042">
|
||||
<screen x="0" y="23" width="2560" height="1417" />
|
||||
</state>
|
||||
<state x="1064" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1578063343693" />
|
||||
<state x="805" y="444" width="1115" height="793" key="find.popup" timestamp="1584965671326">
|
||||
<state x="1064" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/2560.-493.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1585407329042" />
|
||||
<state x="863" y="438" width="1115" height="793" key="find.popup" timestamp="1585747938758">
|
||||
<screen x="0" y="23" width="2560" height="1417" />
|
||||
</state>
|
||||
<state x="805" y="444" width="1115" height="793" key="find.popup/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1584965671326" />
|
||||
<state x="926" y="497" width="683" height="486" key="find.popup/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1578504136004" />
|
||||
<state x="945" y="377" width="670" height="676" key="search.everywhere.popup" timestamp="1583747941947">
|
||||
<state x="863" y="438" width="1115" height="793" key="find.popup/2560.-493.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1585747938758" />
|
||||
<state x="945" y="377" width="670" height="676" key="search.everywhere.popup" timestamp="1585408665805">
|
||||
<screen x="0" y="23" width="2560" height="1417" />
|
||||
</state>
|
||||
<state x="945" y="377" width="670" height="676" key="search.everywhere.popup/-2560.23.2560.1417/2560.-527.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1583747941947" />
|
||||
<state x="945" y="377" width="670" height="676" key="search.everywhere.popup/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1578504893896" />
|
||||
<state x="945" y="377" width="670" height="676" key="search.everywhere.popup/2560.-493.1440.2537/-2560.23.2560.1417/0.23.2560.1417@0.23.2560.1417" timestamp="1585408665805" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
|
|
|
|||
|
|
@ -141,11 +141,16 @@ class PayoneController extends Controller
|
|||
foreach($shopping_order->shopping_order_items as $shopping_order_item){
|
||||
if($shopping_order_item->product){
|
||||
if($shopping_order_item->product->action){
|
||||
|
||||
$user = User::findOrFail($shopping_order->auth_user_id);
|
||||
$user->save();
|
||||
$send_link = true;
|
||||
$date = date("Y-m-d H:i:s", strtotime("+1 years"));
|
||||
|
||||
//new date
|
||||
$date = \Carbon::now()->modify('1 year');
|
||||
if($user->payment_account && $user->daysActiveAccount()>0){
|
||||
$date = \Carbon::parse($user->payment_account)->modify('1 year');
|
||||
}
|
||||
|
||||
foreach ($shopping_order_item->product->action as $do){
|
||||
if($shopping_order_item->product->getActionName($do) === 'payment_for_account'){
|
||||
$user->payment_order_id = $shopping_order_item->product->id; //34
|
||||
|
|
@ -167,7 +172,6 @@ class PayoneController extends Controller
|
|||
}
|
||||
$user->payment_shop = $user->payment_account; //same Date, is upgrade
|
||||
$shopping_order->setUserHistoryValue(['status' => 9]);
|
||||
|
||||
}
|
||||
$user->save();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,9 +2,13 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Mail\MailCustomMessage;
|
||||
use App\Mail\MailVerifyAccount;
|
||||
use App\Models\UserHistory;
|
||||
use App\Models\UserMessage;
|
||||
use App\Repositories\UserRepository;
|
||||
use App\User;
|
||||
use Carbon;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
|
||||
|
||||
|
|
@ -34,6 +38,15 @@ class CronController extends Controller
|
|||
//Mail reminder
|
||||
}
|
||||
|
||||
public function action($action = false, $key = false){
|
||||
|
||||
if($key !== 'key'){
|
||||
abort(404);
|
||||
}
|
||||
if($action === 'check_payments_account'){
|
||||
$this->checkPaymentsAccounts();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
|
|
@ -61,10 +74,180 @@ class CronController extends Controller
|
|||
$user->save();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
die("okay");
|
||||
|
||||
}
|
||||
|
||||
public function checkPaymentsAccounts(){
|
||||
|
||||
/*RULES
|
||||
reminders
|
||||
> 21 remind_first_days = 31 reminder_first
|
||||
> 21 remind_first_days + sepa = 32 reminder_first_sepa
|
||||
> 14 remind_sec_days = 33 reminder_sec
|
||||
> 2 remind_last_days = 34 reminder_last
|
||||
> 0 deaktiv = 35 reminder_deaktiv
|
||||
> 0 deaktiv + sepa = 36 reminder_deaktiv_sepa
|
||||
== 7 abo_booking_days + sepa + cron = 37 reminder_collect_sepa
|
||||
*/
|
||||
//max Date for reminder
|
||||
$renewalDate = Carbon::now()->modify('+'.(config('mivita.remind_first_days')+1).' days');
|
||||
dump($renewalDate);
|
||||
$users = User::where('payment_account', '!=', NULL)
|
||||
->where('active', '=', 1)
|
||||
->where('blocked', '!=', 1)
|
||||
->where('payment_account', '<', $renewalDate)
|
||||
->get();
|
||||
|
||||
|
||||
$user = User::find(2);
|
||||
|
||||
/* $this->checkReminderPayments($user);
|
||||
dump($user->daysActiveAccount());
|
||||
dump($user->email." | ".$user->getPaymentAccountDateFormat());
|
||||
die();*/
|
||||
foreach ($users as $user){
|
||||
|
||||
|
||||
//$this->checkReminderPayments($user);
|
||||
|
||||
|
||||
// dump($user->nextRenewalAccount());
|
||||
//$userHistoryWizardPayment = UserHistory::whereUserId($user->id)->whereAction('wizard_payment')->get()->last();
|
||||
|
||||
//UserHistory::create(['user_id' => $user->id, 'action'=>'released_completed', 'status'=>0]);
|
||||
|
||||
dump($user->daysActiveAccount());
|
||||
dump($user->email." | ".$user->getPaymentAccountDateFormat());
|
||||
|
||||
}
|
||||
die("");
|
||||
}
|
||||
|
||||
|
||||
private function checkReminderPayments(User $user){
|
||||
|
||||
|
||||
$isSend = $this->checkIsReminderSend($user, 31);
|
||||
$isSend = $this->checkIsReminderSend($user, 32);
|
||||
$isSend = $this->checkIsReminderSend($user, 33);
|
||||
$isSend = $this->checkIsReminderSend($user, 34);
|
||||
$isSend = $this->checkIsReminderSend($user, 35);
|
||||
$isSend = $this->checkIsReminderSend($user, 36);
|
||||
|
||||
return ;
|
||||
|
||||
|
||||
//35 reminder_deaktiv, 36 reminder_deaktiv_sepa
|
||||
if(!$user->isActiveAccount()){
|
||||
if($user->isAboOption()){
|
||||
$isSend = $this->checkIsReminderSend($user, 35);
|
||||
return $isSend;
|
||||
}
|
||||
$isSend = $this->checkIsReminderSend($user, 36);
|
||||
return $isSend;
|
||||
}
|
||||
|
||||
//34 reminder_last
|
||||
if($user->daysActiveAccount() <= config('mivita.remind_last_days')){
|
||||
$isSend = $this->checkIsReminderSend($user, 34);
|
||||
return $isSend;
|
||||
}
|
||||
|
||||
//33 reminder_sec
|
||||
if($user->daysActiveAccount() <= config('mivita.remind_sec_days')){
|
||||
if(!$user->isAboOption()){
|
||||
$isSend = $this->checkIsReminderSend($user, 33);
|
||||
return $isSend;
|
||||
}
|
||||
}
|
||||
|
||||
//31 reminder_first, 32 reminder_first_sepa
|
||||
if($user->daysActiveAccount() > config('mivita.remind_sec_days')){
|
||||
if($user->isAboOption()){
|
||||
$isSend = $this->checkIsReminderSend($user, 32);
|
||||
return $isSend;
|
||||
}
|
||||
$isSend = $this->checkIsReminderSend($user, 31);
|
||||
return $isSend;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function checkIsReminderSend(User $user, $status){
|
||||
|
||||
$isSend = UserHistory::whereUserId($user->id)
|
||||
->whereAction('reminder_payments')
|
||||
->whereIdentifier($user->payment_account)
|
||||
->whereStatus($status)
|
||||
->get()->last();
|
||||
|
||||
if($isSend){
|
||||
// return true;
|
||||
}
|
||||
$referenz = $this->sendReminderMail($user, $status);
|
||||
//is not sent create
|
||||
UserHistory::create(['user_id' => $user->id, 'action'=>'reminder_payments', 'referenz'=>$referenz, 'identifier'=>$user->payment_account, 'status'=>$status]);
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
private function sendReminderMail(User $user, $status){
|
||||
|
||||
$days = $user->daysActiveAccount();
|
||||
if($days < 0){
|
||||
$days = $days*-1;
|
||||
}
|
||||
|
||||
$pay_date = Carbon::parse($user->payment_account)->modify('- '.config('mivita.abo_booking_days').' days')->format('d.m.Y');
|
||||
$datetime = $user->getPaymentAccountDateFormat();
|
||||
|
||||
$price = "";
|
||||
if($user->payment_order_id && isset($user->payment_order_product->price)){
|
||||
$price = 'von '.$user->payment_order_product->getFormattedPrice().' EUR';
|
||||
}
|
||||
|
||||
$message = __('reminder.copy_first_'.$status, ['days'=>$days, 'datetime'=>$datetime, 'price' =>$price, 'pay_date'=>$pay_date]);
|
||||
$message_last = __('reminder.copy_last_'.$status, ['days'=>$days, 'datetime'=>$datetime, 'price' =>$price, 'pay_date'=>$pay_date]);
|
||||
$button = __('reminder.button_'.$status);
|
||||
|
||||
$message = preg_replace("/[\n\r]/","",$message);
|
||||
$message_last = preg_replace("/[\n\r]/","",$message_last);
|
||||
|
||||
$data = [
|
||||
'subject' => __('reminder.subject')." | ID: ".$status,
|
||||
'message' => $message,
|
||||
'message_last' => $message_last,
|
||||
'url' => route('user_membership'),
|
||||
'button' => $button,
|
||||
];
|
||||
dump($data);
|
||||
$sender = User::find(1);
|
||||
|
||||
$customer_mail = UserMessage::create([
|
||||
'user_id' => $user->id,
|
||||
'send_user_id' => $sender->id,
|
||||
'email' => $user->email,
|
||||
'subject' => $data['subject'],
|
||||
'message' => $data['message']." ".$data['message_last'],
|
||||
]);
|
||||
|
||||
try{
|
||||
Mail::to($user->email)->send(new MailCustomMessage($user, $data, $sender, false));
|
||||
}
|
||||
catch(\Exception $e){
|
||||
\Log::channel('cron')->error('Mail Error: '.$e->getMessage());
|
||||
// Never reached
|
||||
$customer_mail->fail = true;
|
||||
$customer_mail->error = $e->getMessage();
|
||||
$customer_mail->save();
|
||||
return 0;
|
||||
}
|
||||
$customer_mail->send = true;
|
||||
$customer_mail->sent_at = now();
|
||||
$customer_mail->save();
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -277,7 +277,7 @@ class LeadController extends Controller
|
|||
'message' => $input['account_incomplete_message'],
|
||||
'confirmation_code' => $confirmation_code,
|
||||
];
|
||||
Mail::to($user->email)->send(new MailCustomMessage($user, $data, \Auth::user()));
|
||||
Mail::to($user->email)->send(new MailCustomMessage($user, $data, \Auth::user(), true));
|
||||
UserHistory::create(['user_id' => $user->id, 'action'=>'released_incomplete', 'status'=>0]);
|
||||
\Session()->flash('alert-success', "E-Mail an Berater gesendet.");
|
||||
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ class PayoneController extends Controller
|
|||
public function init($shopping_user, $shopping_order){
|
||||
$this->shopping_user = $shopping_user;
|
||||
$this->shopping_order = $shopping_order;
|
||||
$this->default['mode'] = $this->shopping_order->mode;
|
||||
}
|
||||
|
||||
public function getShoppingPayment(){
|
||||
|
|
@ -328,7 +329,6 @@ class PayoneController extends Controller
|
|||
];
|
||||
$request = array_merge($this->default, $this->prepayment);
|
||||
return Payone::sendRequest($request);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -348,9 +348,8 @@ class PayoneController extends Controller
|
|||
|
||||
// "language" => 'de',
|
||||
];
|
||||
$request = array_merge($this->default, $this->personalData, $this->deliveryData, $this->method, $this->prepayment, $this->urls);
|
||||
|
||||
// dd($request);
|
||||
$request = array_merge($this->default, $this->personalData, $this->deliveryData, $this->method, $this->prepayment, $this->urls);
|
||||
return Payone::sendRequest($request);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,38 @@ class AdminToolsController extends Controller
|
|||
dd('index');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
*/
|
||||
public function cronjobs()
|
||||
{
|
||||
//$user_shops = UserShop::all();
|
||||
$text = "";
|
||||
$values = [
|
||||
'check_payments_account' => route('cron_jobs_action', ['check_payments_account', 'key'])
|
||||
];
|
||||
$data = [
|
||||
'values' => $values,
|
||||
'text' => $text,
|
||||
];
|
||||
|
||||
return view('sys.admin.cronjobs', $data);
|
||||
|
||||
|
||||
|
||||
}
|
||||
/**
|
||||
* @param Request $request
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View
|
||||
*/
|
||||
public function cronjobsStore()
|
||||
{
|
||||
$data = Input::all();
|
||||
\Session()->flash('alert-save', true);
|
||||
return back();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
|
||||
*/
|
||||
|
|
@ -75,10 +107,8 @@ class AdminToolsController extends Controller
|
|||
public function domainSSLStore()
|
||||
{
|
||||
$data = Input::all();
|
||||
|
||||
\Session()->flash('alert-save', true);
|
||||
return back();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -136,6 +136,7 @@ class CheckoutController extends Controller
|
|||
//need precheck the card
|
||||
if(Input::get('payment_method') === 'cc'){
|
||||
$pay = new PayoneController();
|
||||
$pay->init($shopping_user, $shopping_order);
|
||||
$ret['cc'] = $pay->checkCreditCard($data);
|
||||
if($ret['cc']['status'] === 'ERROR' || $ret['cc']['status'] === 'INVALID'){
|
||||
/* PaymentTransaction::create([
|
||||
|
|
@ -163,6 +164,7 @@ class CheckoutController extends Controller
|
|||
//need precheck the card
|
||||
if(Input::get('payment_method') === 'elv' && is_null(Input::get('mandate_identification'))){
|
||||
$pay = new PayoneController();
|
||||
$pay->init($shopping_user, $shopping_order);
|
||||
$amount = (int) (float) Yard::instance('shopping')->totalWithShipping(2, '.', ',') *100;
|
||||
$ret['elv'] = $pay->checkBankAccount($data, $amount, 'EUR', $shopping_user);
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ use App\Http\Controllers\Controller;
|
|||
use App\Mail\MailContact;
|
||||
use App\Mail\MailVerifyAccount;
|
||||
use App\Repositories\UserRepository;
|
||||
use App\Services\UserService;
|
||||
use App\User;
|
||||
use GuzzleHttp\Client;
|
||||
use Input;
|
||||
|
|
|
|||
|
|
@ -400,7 +400,6 @@ class WizardController extends Controller
|
|||
Yard::instance('shopping')->destroy();
|
||||
$product = Product::find(Input::get('switchers-package-wizard'));
|
||||
$showAboOptions = false;
|
||||
|
||||
if(Input::get('abo_options')){
|
||||
$showAboOptions = true;
|
||||
$user->abo_options = true;
|
||||
|
|
|
|||
|
|
@ -17,15 +17,19 @@ class MailCustomMessage extends Mailable
|
|||
protected $sender;
|
||||
public $subject;
|
||||
public $message;
|
||||
public $message_last;
|
||||
protected $save;
|
||||
|
||||
|
||||
public function __construct(User $user, $data, $sender)
|
||||
public function __construct(User $user, $data, $sender, $save = false)
|
||||
{
|
||||
$this->save = $save;
|
||||
$this->data = $data;
|
||||
$this->user = $user;
|
||||
$this->sender = $sender;
|
||||
$this->subject = isset($data['subject']) ? $data['subject'] : __('email.email_subject');
|
||||
$this->message = isset($data['message']) ? $data['message'] : '';
|
||||
$this->message_last = isset($data['message_last']) ? $data['message_last'] : '';
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -39,18 +43,17 @@ class MailCustomMessage extends Mailable
|
|||
$salutation = __('email.dear_mrs')." ".$this->user->account->first_name.",";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
UserMessage::create([
|
||||
'user_id' => $this->user->id,
|
||||
'send_user_id' => $this->sender->id,
|
||||
'email' => $this->user->email,
|
||||
'subject' => $this->subject,
|
||||
'message' => $this->message,
|
||||
'send' => true,
|
||||
'sent_at' => now(),
|
||||
]);
|
||||
if($this->save){
|
||||
UserMessage::create([
|
||||
'user_id' => $this->user->id,
|
||||
'send_user_id' => $this->sender->id,
|
||||
'email' => $this->user->email,
|
||||
'subject' => $this->subject,
|
||||
'message' => $this->message." ".$this->message_last,
|
||||
'send' => true,
|
||||
'sent_at' => now(),
|
||||
]);
|
||||
}
|
||||
$url = "";
|
||||
$button = "";
|
||||
if(isset($this->data['confirmation_code'])){
|
||||
|
|
@ -58,11 +61,18 @@ class MailCustomMessage extends Mailable
|
|||
$button = __('email.button_account');
|
||||
|
||||
}
|
||||
return $this->view('emails.auth')->with([
|
||||
|
||||
if(isset($this->data['url'])){
|
||||
$url =$this->data['url'];
|
||||
$button = $this->data['button'];
|
||||
|
||||
}
|
||||
return $this->view('emails.custom')->with([
|
||||
'url' => $url,
|
||||
'salutation' => $salutation,
|
||||
'title' => $salutation,
|
||||
'button' => $button,
|
||||
'copy1line' => $this->message,
|
||||
'content' => $this->message,
|
||||
'content_last' => $this->message_last,
|
||||
'copy2line' => __('email.copy2line'),
|
||||
'copy3line' => __('email.copy3line'),
|
||||
'greetings' => __('email.greetings'),
|
||||
|
|
@ -70,4 +80,4 @@ class MailCustomMessage extends Mailable
|
|||
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Services\Util;
|
||||
use Cviebrock\EloquentSluggable\Sluggable;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
|
@ -104,11 +105,6 @@ class Product extends Model
|
|||
upgrade # need upgrade_to_id set user->payment_order_id to the package in the payment api
|
||||
*/
|
||||
|
||||
protected $identifiers_types = [
|
||||
'show_upgrade' => 'Kann gepdatet werden',
|
||||
'show_order' => 'Wird immer als Option angezeigt',
|
||||
'upgrade' => 'Produktupgrade zu upgrade_to_id',
|
||||
];
|
||||
protected $table = 'products';
|
||||
|
||||
protected $casts = [
|
||||
|
|
@ -138,6 +134,8 @@ class Product extends Model
|
|||
'points',
|
||||
'weight',
|
||||
'contents',
|
||||
'contents_total',
|
||||
'unit',
|
||||
'number',
|
||||
'icons',
|
||||
'description',
|
||||
|
|
@ -152,12 +150,28 @@ class Product extends Model
|
|||
'upgrade_to_id'
|
||||
];
|
||||
|
||||
public $identifiers_types = [
|
||||
'' => '-',
|
||||
'show_upgrade' => 'Kann gepdatet werden',
|
||||
'show_order' => 'Wird immer als Option angezeigt',
|
||||
'upgrade' => 'Produktupgrade zur Upgrade to ID',
|
||||
];
|
||||
public $unitTypes = [
|
||||
0 => '',
|
||||
1 => 'ml',
|
||||
2 => 'g',
|
||||
3 => 'Liter',
|
||||
4 => 'KG',
|
||||
];
|
||||
|
||||
public $showATs = [
|
||||
0 => 'nur User Shop',
|
||||
1 => 'User + Berater Shop',
|
||||
2 => 'nur Berater Shop',
|
||||
3 => 'Registrierung Shop',
|
||||
4 => 'Mitgliedschaft Berater',
|
||||
0 => 'Nur Kunden Shop',
|
||||
1 => 'Kunden + Berater Shop',
|
||||
2 => 'Nur Berater Shop',
|
||||
3 => 'Registrierung / Mitgliedschaft Berater',
|
||||
4 => 'Nur Mitgliedschaft Berater',
|
||||
5 => 'Onboarding Berater',
|
||||
|
||||
];
|
||||
|
||||
public $actions = [
|
||||
|
|
@ -221,50 +235,63 @@ class Product extends Model
|
|||
|
||||
public function getFormattedPrice()
|
||||
{
|
||||
if(!isset($this->attributes['price'])){
|
||||
return "";
|
||||
}
|
||||
if(\App::getLocale() == "en"){
|
||||
return number_format($this->attributes['price'], 2, '.', ',');
|
||||
}
|
||||
return number_format($this->attributes['price'], 2, ',', '.');
|
||||
return isset($this->attributes['price']) ? Util::formatNumber($this->attributes['price']) : "";
|
||||
}
|
||||
|
||||
public function getFormattedPriceEk()
|
||||
{
|
||||
if(!isset($this->attributes['price_ek'])){
|
||||
return "";
|
||||
}
|
||||
if(\App::getLocale() == "en"){
|
||||
return number_format($this->attributes['price_ek'], 2, '.', ',');
|
||||
}
|
||||
return number_format($this->attributes['price_ek'], 2, ',', '.');
|
||||
return isset($this->attributes['price_ek']) ? Util::formatNumber($this->attributes['price_ek']) : "";
|
||||
}
|
||||
|
||||
public function getFormattedTax()
|
||||
{
|
||||
if(!isset($this->attributes['tax'])){
|
||||
return "";
|
||||
}
|
||||
if(\App::getLocale() == "en"){
|
||||
return number_format($this->attributes['tax'], 2, '.', ',');
|
||||
}
|
||||
return number_format($this->attributes['tax'], 2, ',', '.');
|
||||
return isset($this->attributes['tax']) ? Util::formatNumber($this->attributes['tax']) : "";
|
||||
}
|
||||
|
||||
public function getFormattedPriceOld()
|
||||
{
|
||||
if(!isset($this->attributes['price_old'])){
|
||||
return "";
|
||||
}
|
||||
if(\App::getLocale() == "en"){
|
||||
return number_format($this->attributes['price_old'], 2, '.', ',');
|
||||
}
|
||||
return number_format($this->attributes['price_old'], 2, ',', '.');
|
||||
return isset($this->attributes['price_old']) ? Util::formatNumber($this->attributes['price_old']) : "";
|
||||
}
|
||||
|
||||
public function getBasePriceFormattedFull(){
|
||||
if($price = $this->getBasePrice()){
|
||||
$unit = $this->attributes['unit'];
|
||||
//ml g
|
||||
if($unit === 1 || $unit === 2){
|
||||
return Util::formatNumber($price) . ' € 100/'.$this->getUnitType();
|
||||
}
|
||||
//l kg
|
||||
if($unit === 3 || $unit === 4){
|
||||
return Util::formatNumber($price) . ' € 1/'.$this->getUnitType();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public function getBasePriceFormatted(){
|
||||
if($price = $this->getBasePrice()){
|
||||
return Util::formatNumber($price);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public function getBasePrice(){
|
||||
if(isset($this->attributes['unit']) && isset($this->attributes['contents_total']) && $this->attributes['contents_total'] != 0){
|
||||
$unit = $this->attributes['unit'];
|
||||
//ml g
|
||||
if($unit === 1 || $unit === 2){
|
||||
return $this->attributes['price'] * 100 / $this->attributes['contents_total'];
|
||||
}
|
||||
//l kg
|
||||
if($unit === 3 || $unit === 4){
|
||||
return $this->attributes['price'] * 1000 / $this->attributes['contents_total'];
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
public function getUnitType(){
|
||||
return isset($this->unitTypes[$this->unit]) ? $this->unitTypes[$this->unit] : '-';
|
||||
}
|
||||
|
||||
public function setPosAttribute($value){
|
||||
$this->attributes['pos'] = is_numeric($value) ? $value : null;
|
||||
|
|
|
|||
|
|
@ -61,6 +61,14 @@ class UserHistory extends Model
|
|||
21 => 'payment_not_found',
|
||||
22 => 'checkout_cancel',
|
||||
23 => 'checkout_error',
|
||||
31 => 'reminder_first',
|
||||
32 => 'reminder_first_sepa',
|
||||
33 => 'reminder_sec',
|
||||
34 => 'reminder_last',
|
||||
35 => 'reminder_deaktiv',
|
||||
36 => 'reminder_deaktiv_sepa',
|
||||
37 => 'reminder_collect_sepa',
|
||||
|
||||
50 => 'delete_membership'
|
||||
];
|
||||
protected $status_colors = [
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ class Util
|
|||
|
||||
public static function getUserHistoryValue($key){
|
||||
if($user_history = self::getUserHistory()) {
|
||||
return $user_history->{$user_history};
|
||||
return $user_history->{$key};
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -239,7 +239,9 @@ class User extends Authenticatable
|
|||
|
||||
|
||||
|
||||
|
||||
public function isAboOption(){
|
||||
return ($this->abo_options && $this->account && $this->account->payment_data) ? true : false;
|
||||
}
|
||||
public function isActiveAccount(){
|
||||
return $this->payment_account ? Carbon::parse($this->payment_account)->gt(Carbon::now()) : false;
|
||||
}
|
||||
|
|
@ -251,15 +253,15 @@ class User extends Authenticatable
|
|||
public function isRenewalAccount()
|
||||
{
|
||||
if ($this->payment_account) {
|
||||
return Carbon::parse($this->payment_account)->modify('-'.config('mivita.renewal_days').' days')->lt(Carbon::now());
|
||||
return Carbon::parse($this->payment_account)->modify('-'.(config('mivita.renewal_days')+1).' days')->lt(Carbon::now());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function nextRenewalAccount(){
|
||||
return $this->payment_account ? Carbon::parse($this->payment_account)->modify('-'.config('mivita.renewal_days').' days')->format(\Util::formatDateTimeDB()) : false ;
|
||||
}
|
||||
|
||||
|
||||
public function daysActiveAccount(){
|
||||
return Carbon::now()->diffInDays(Carbon::parse($this->payment_account), false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,6 +38,10 @@ return [
|
|||
'driver' => 'single',
|
||||
'path' => storage_path('logs/payone.log'),
|
||||
],
|
||||
'cron' => [
|
||||
'driver' => 'single',
|
||||
'path' => storage_path('logs/corn.log'),
|
||||
],
|
||||
'stack' => [
|
||||
'driver' => 'stack',
|
||||
'channels' => ['single'],
|
||||
|
|
|
|||
|
|
@ -4,7 +4,10 @@ return [
|
|||
|
||||
|
||||
'renewal_days' => env('MIVITA_RENEWAL_DAYS', '29'),
|
||||
'abo_booking_days' => env('MIVITA_ABO_BOOKING_DAYS', '14'),
|
||||
'abo_booking_days' => env('MIVITA_ABO_BOOKING_DAYS', '7'),
|
||||
'remind_first_days' => env('MIVITA_REMIND_FIRST_DAYS', '21'),
|
||||
'remind_sec_days' => env('MIVITA_REMIND_SEC_DAYS', '14'),
|
||||
'remind_last_days' => env('MIVITA_REMIND_LAST_DAYS', '2'),
|
||||
|
||||
|
||||
];
|
||||
|
|
|
|||
|
|
@ -36,6 +36,9 @@ class CreateProductsTable extends Migration
|
|||
|
||||
|
||||
$table->string('contents')->nullable();
|
||||
$table->unsignedInteger('contents_total')->nullable();
|
||||
$table->unsignedTinyInteger('unit')->nullable();
|
||||
|
||||
$table->string('number')->nullable();
|
||||
$table->string('icons')->nullable(); //as array cast
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
'status_copy1line' => 'Status zu Deiner Bestellung auf mivita.care',
|
||||
'footer_copy1' => 'mivita e.K. | Leinfeld 2 | 87755 Kirchhaslach | Telefon: +49 (0) 8333 946 98 90 | Fax: +49 (0) 8333 7268 E-Mail: info@mivita.care',
|
||||
'footer_copy2' => 'Geschäftsinhaber: Alois Ried | Registergericht: Memmingen | Registernummer: HRA 12236 | USt-ID-Nr.: DE 244162340',
|
||||
'footer_copy3' => '© 2019 All Rights Reserved',
|
||||
'footer_copy3' => '© 2020 All Rights Reserved',
|
||||
'checkout_mail_hl1' => 'Du hast folgende Artikel bestellt:',
|
||||
'checkout_mail_shipping' => 'Verpackungs- u. Versandkosten',
|
||||
'checkout_mail_status_info' => 'Statusinfo:',
|
||||
|
|
|
|||
17
resources/lang/de/membership.php
Normal file
17
resources/lang/de/membership.php
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
return array (
|
||||
'home_hl' => 'Mitgliedschaft / Jahresbeitrag',
|
||||
'home_copy_alert_31' => 'Deine Mitgliedschaft läuft zum :datetime aus',
|
||||
'home_copy_last_31' => 'Es bleiben Dir jetzt noch entspannte :days Tage Zeit, Deine Mitgliedschaft zu verlängern. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.',
|
||||
'home_copy_SEPA_32' => 'Da Du uns ein SEPA-Lastschrift-Mandat erteilt hast, brauchst Du nicht weiter aktiv zu werden. Entsprechend dieses Mandates werden wir den Rechnungsbetrag :price am :pay_date von Deinem Konto abbuchen.',
|
||||
'home_copy_last_33' => 'Es bleiben Dir jetzt noch :days Tage Zeit, Deine Mitgliedschaft zu verlängern. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.',
|
||||
'home_copy_SEPA_33' => 'Von Deinem SEPA-Lastschrift-Mandat, das du uns erteilt hast, konnten wir bisher den Rechnungsbetrag :price am :pay_date nicht abbuchen.',
|
||||
'home_copy_last_34' => 'huiii... jetzt wird es aber Zeit! Deine Mitgliedschaft läuft bereits in :days Tagen aus, und zwar exakt am :datetime. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.',
|
||||
'home_copy_alert_35' => 'Deine Mitgliedschaft läuft heute aus!',
|
||||
'home_copy_last_35' => 'huiii... jetzt wird es aber Zeit! Deine Mitgliedschaft läuft bereits heute aus, und zwar exakt am :datetime. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.',
|
||||
'home_copy_alert_36_today' => 'Dein Mitgliedschaft ist heute am :datetime ausgelaufen!',
|
||||
'home_copy_alert_36' => 'Dein Mitgliedschaft ist vor :days Tagen am :datetime ausgelaufen!',
|
||||
'home_copy_last_36' => 'wie angekündigt, haben wir Deinen Berater-Account pausiert, da Du Deine Mitgliedschaft nicht rechtzeitig verlängert hast. Wenn Du wieder von den Vorteilen und Features bei MIVITA profitieren möchtest, kannst Du Deinen Account jederzeit reaktivieren.',
|
||||
'home_copy_SEPA_36' => 'Leider war es uns nicht möglich, den fälligen Betrag per SEPA-Lastschrift-Mandat für die Mitgliedsgebühr von Deinem angegebenen Konto einzuziehen.'
|
||||
);
|
||||
62
resources/lang/de/reminder.php
Normal file
62
resources/lang/de/reminder.php
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
|
||||
return array (
|
||||
'subject' => 'Deine Mitgliedschaft bei mivita.care',
|
||||
'button_31' => 'MITGLIEDSCHAFT VERLÄNGERN',
|
||||
'copy_first_31' => '<p>wir wollten Dir jetzt schon mal rechtzeitig Bescheid geben, dass Deine Mitgliedschaft zum :datetime ausläuft. Zur Zeit hast Du keine automatisierte Verlängerung mit SEPA-Lastschrift eingestellt. Daher solltest Du jetzt aktiv werden und rechtzeitig verlängern, damit Du weiterhin</p>
|
||||
<ul>
|
||||
<li>Produkte von MIVITA beziehen kannst</li>
|
||||
<li>Kunden über Deinen Onlineshop einkaufen können (optional)</li>
|
||||
<li>Du von Vertriebspartnerumsätzen partizipieren kannst</li>
|
||||
</ul>
|
||||
<p>Aber alles gut - es bleiben Dir jetzt noch entspannte :days Tage Zeit, Deine Mitgliedschaft zu verlängern. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.</p>
|
||||
<p>Wir senden Dir schon ganz bald eine weitere Erinnerung zu, aber dann hast Du es jetzt schon mal im Hinterkopf. Falls Du jetzt schon für den Anschluss um 1 Jahr verlängern möchtest, kannst Du das mit Klick auf den Button unten tun. Was weg ist, ist weg :) ...</p>',
|
||||
'copy_last_31' => '',
|
||||
'button_32' => 'MITGLIEDSCHAFT VERWALTEN',
|
||||
'copy_first_32' => '<p>wir wollten Dir jetzt schon mal rechtzeitig Bescheid geben, dass Deine Mitgliedschaft zum :datetime automatisch verlängert wird. Da Du uns ein SEPA-Lastschrift-Mandat erteilt hast, brauchst Du nicht weiter aktiv zu werden. Entsprechend dieses Mandates werden wir den Rechnungsbetrag :price am :pay_date von Deinem Konto abbuchen.</p>
|
||||
<p>Deine Mitgliedschaft verlängert sich im Anschluss um ein weiteres Jahr, damit Du weiterhin</p>
|
||||
<ul>
|
||||
<li>Produkte von MIVITA beziehen kannst</li>
|
||||
<li>Kunden über Deinen Onlineshop einkaufen können (optional)</li>
|
||||
<li>Du von Vertriebspartnerumsätzen partizipieren kannst</li>
|
||||
</ul>
|
||||
<p>Soweit so gut. Solltest Du allerdings die Mitgliedschaft beenden bzw. erstmal pausieren wollen, dann kannst Du das in Deinem Mitgliederbereich selber einstellen. Folge dazu einfach dem grünen Button unten.</p>
|
||||
<p>Für den Fall, dass Du erstmal nicht verlängern möchtest, wird Dein Account solange pausiert bis Du Deine Mitgliedschaft erneuerst. Beachte aber bitte, dass alle Vorteile und Funktionen, vom vergünstigten Einkaufen bis hin zur Provisionsabrechnung ebenfalls pausieren.</p>',
|
||||
'copy_last_32' => '',
|
||||
'button_33' => 'MITGLIEDSCHAFT VERLÄNGERN',
|
||||
'copy_first_33' => '<p>hier nochmal eine kurze Erinnerung, dass Deine Mitgliedschaft zum :datetime ausläuft. Zur Zeit hast Du keine automatisierte Verlängerung mit SEPA-Lastschrift eingestellt. Daher solltest Du jetzt aktiv werden und rechtzeitig verlängern, damit Du weiterhin</p>
|
||||
<ul>
|
||||
<li>Produkte von MIVITA beziehen kannst</li>
|
||||
<li>Kunden über Deinen Onlineshop einkaufen können (optional)</li>
|
||||
<li>Du von Vertriebspartnerumsätzen partizipieren kannst</li>
|
||||
</ul>
|
||||
<p>Aber alles gut - es bleiben Dir jetzt noch entspannte :days Tage Zeit, Deine Mitgliedschaft zu verlängern. Solltest Du allerdings die Frist verstreichen lassen, wird Dein Account solange automatisch pausiert bis Du Deine Mitgliedschaft erneuerst.</p>
|
||||
<p>Wir senden Dir schon ganz bald eine weitere Erinnerung zu, aber dann hast Du es jetzt schon mal im Hinterkopf. Falls Du jetzt schon für den Anschluss um 1 Jahr verlängern möchtest, kannst Du das mit Klick auf den Button unten tun. Was weg ist, ist weg :) ...</p>',
|
||||
'copy_last_33' => '',
|
||||
'button_34' => 'MITGLIEDSCHAFT VERLÄNGERN',
|
||||
'copy_first_34' => '<p>huiii... jetzt wird es aber Zeit! Deine Mitgliedschaft läuft bereits in :days Tagen aus, und zwar exakt am :datetime. Zur Zeit hast Du keine automatisierte Verlängerung mit SEPA-Lastschrift eingestellt. Daher solltest Du jetzt aktiv werden und Deine Mitgliedschaft verlängern, da Dein Account sonst pausiert.</p>
|
||||
<p>Wenn Du weiterhin</p>
|
||||
<ul>
|
||||
<li>Produkte von MIVITA beziehen</li>
|
||||
<li>einen Onlineshop nutzen (optional)</li>
|
||||
<li>und von Vertriebspartnerumsätzen partizipieren möchtest</li>
|
||||
</ul>
|
||||
<p>solltest Du jetzt schnell handeln und Deine Mitgliedschaft verlängern:</p>',
|
||||
'copy_last_34' => '',
|
||||
'button_35' => 'MITGLIEDSCHAFT VERWALTEN',
|
||||
'copy_first_35' => '<p>wie angekündigt, haben wir Deinen Berater-Account pausiert, da Du Deine Mitgliedschaft nicht rechtzeitig verlängert hast. Wenn Du wieder von den Vorteilen und Features bei MIVITA profitieren möchtest, kannst Du Deinen Account jederzeit reaktivieren.</p>
|
||||
<p>Klick auf den Button, falls Du Änderungen an Deiner Mitgliedschaft vornehmen möchtest:</p>',
|
||||
'copy_last_35' => '<p><b>Hinweis:</b><br>Auch wenn Dein Account pausiert, werden Dir vergangene bzw. noch offene Provisionen selbstverständlich im nächsten Zahlungslauf ausgezahlt.Solltest Du Deinen Account vollständig löschen wollen, dann schreibe bitte eine Email an info@mivita.care. Unser Berater-Service wird sich dann umgehend darum kümmern.</p>
|
||||
<p>Wir hoffen, Dich ganz bald wieder als aktives Mitglied der MIVITA Family begrüßen zu dürfen.</p>',
|
||||
'button_36' => 'MITGLIEDSCHAFT VERWALTEN',
|
||||
'copy_first_36' => '<p>leider war es uns nicht möglich, den fälligen Betrag für die Mitgliedsgebühr von Deinem angegebenen Konto einzuziehen.</p>
|
||||
<p>Wie angekündigt, haben wir daher heute Deinen Berater-Account pausiert, da Du Deine Mitgliedschaft damit nicht rechtzeitig verlängern konntest. Wenn Du wieder von den Vorteilen und Features bei MIVITA profitieren möchtest, kannst Du Deinen Account jederzeit auch über eine andere Zahlungsweise reaktivieren (z. B. Paypal, Kreditkarte, SOFORT Überweisung oder Vorauskasse).</p>
|
||||
<p>Klick dazu einfach auf folgenden Button und nimm entsprechende Einstellungen in Deinem Berater-Account vor:</p>',
|
||||
'copy_last_36' => '<p><b>Hinweis:</b><br>Auch wenn Dein Account pausiert, werden Dir vergangene bzw. noch offene Provisionen selbstverständlich im nächsten Zahlungslauf ausgezahlt.Solltest Du Deinen Account vollständig löschen wollen, dann schreibe bitte eine Email an info@mivita.care. Unser Berater-Service wird sich dann umgehend darum kümmern.</p>
|
||||
<p>Wir hoffen, Dich ganz bald wieder als aktives Mitglied der MIVITA Family begrüßen zu dürfen.</p>',
|
||||
'button_37' => 'MITGLIEDSCHAFT VERWALTEN',
|
||||
'copy_first_37' => '<p>wie angekündigt, haben wir heute gemäß Deines SEPA-Lastschriftmandates den Einzug von :price für ein weiteres Jahr der Mitgliedschaft bei MIVITA veranlasst. Dieser Rechnungsbetrag wird in den nächsten Tagen von Deinem Konto abgebucht. Bitte beachte, dass die Verlängerung erst nach Zahlungseingang aktiv ist.</p>
|
||||
<p>Falls Du in Zukunft Änderungen vornehmen möchtest, kannst Du alle Funktionen sowie die Mitgliedschaft in Deinem Berater-Account einstellen.</p>
|
||||
<p>Folge dazu einfach dem unten stehenden Button:</p>',
|
||||
'copy_last_37' => '',
|
||||
);
|
||||
|
|
@ -13,54 +13,41 @@
|
|||
{!! Form::checkbox('active', 1, $product->active, ['class'=>'custom-control-input']) !!}
|
||||
<span class="custom-control-label">{{__('aktiv')}}</span>
|
||||
</label>
|
||||
<label class="form-label" for="name">{{ __('Name') }}*</label>
|
||||
<label class="form-label" for="name">{{ __('Produktname / Titel') }}*</label>
|
||||
{{ Form::text('name', $product->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required')) }}
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-6">
|
||||
{{-- <div class="form-group col-sm-6">
|
||||
<label class="form-label" for="title">{{ __('Title') }}</label>
|
||||
{{ Form::text('title', $product->title, array('placeholder'=>__('Title'), 'class'=>'form-control', 'id'=>'title')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-3">
|
||||
<label class="form-label" for="title">{{ __('Anzeigen') }}</label>
|
||||
{{ Form::select('show_at', $product->showATs, $product->show_at, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_at') ) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-3">
|
||||
<label class="form-label" for="identifier">{{ __('Kennung') }}</label>
|
||||
{{ Form::text('identifier', $product->identifier, array('placeholder'=>__('Kennung'), 'class'=>'form-control', 'id'=>'identifier')) }}
|
||||
</div>
|
||||
--}}
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-8">
|
||||
<label class="form-label" for="title">{{ __('Kategorie(n)') }}</label>
|
||||
<div class="form-group col-sm-5">
|
||||
<label class="form-label" for="title">{{ __('Kategorie (Mehrfachauswahl)') }}</label>
|
||||
<select class="selectpicker" name="categories[]" id="categories" data-style="btn-light" data-live-search="false" multiple>
|
||||
{!! HTMLHelper::getCategoriesOptions($product->categories()->pluck('category_id')->toArray()) !!}
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-sm-5">
|
||||
<label class="form-label" for="show_at">{{ __('Produkt anzeigen') }}</label>
|
||||
{{ Form::select('show_at', $product->showATs, $product->show_at, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_at') ) }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="pos">{{ __('pos') }}</label>
|
||||
{{ Form::text('pos', $product->pos, array('placeholder'=>__('pos'), 'class'=>'form-control', 'id'=>'pos')) }}
|
||||
<div class="form-group col-sm-2">
|
||||
<label class="form-label" for="pos">{{ __('Listenposition') }}</label>
|
||||
{{ Form::text('pos', $product->pos, array('placeholder'=>__('1, 2, 3, etc'), 'class'=>'form-control', 'id'=>'pos')) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="copy">{{ __('copy') }}</label>
|
||||
{{ Form::textarea('copy', $product->copy , array('placeholder'=>__('Leistungen'), 'class'=>'form-control summernote', 'id'=>'copy')) }}
|
||||
<label class="form-label" for="copy">{{ __('Produktbeschreibung') }}</label>
|
||||
{{ Form::textarea('copy', $product->copy , array('placeholder'=>__('Produktbeschreibung'), 'class'=>'form-control summernote', 'id'=>'copy')) }}
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-8">
|
||||
<label class="form-label" for="action">{{ __('Action') }}</label>
|
||||
{{ Form::select('action[]', $product->actions, $product->action, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'action', 'multiple') ) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="upgrade_to_id">{{ __('Upgrade to ID') }}</label>
|
||||
{{ Form::text('upgrade_to_id', $product->upgrade_to_id, array('placeholder'=>__('Product ID when need an upgrade'), 'class'=>'form-control', 'id'=>'upgrade_to_id')) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -117,28 +104,42 @@
|
|||
{{ __('Inhalte') }}
|
||||
</h5>
|
||||
<div class="card-body">
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="contents">{{ __('Menge Inhalt (ml / g)') }}</label>
|
||||
{{ Form::text('contents', $product->contents, array('placeholder'=>__('contents'), 'class'=>'form-control', 'id'=>'contents')) }}
|
||||
<div class="form-row">
|
||||
|
||||
<div class="form-group col-sm-5">
|
||||
<label class="form-label" for="contents">{{ __('Menge Inhalt (ml / g) als Text') }}</label>
|
||||
{{ Form::text('contents', $product->contents, array('placeholder'=>__('Bsp: 150 ml'), 'class'=>'form-control', 'id'=>'contents')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-3">
|
||||
<label class="form-label" for="contents_total">{{ __('Gesamter Inhalt (ml / g) als Zahl') }}</label>
|
||||
{{ Form::text('contents_total', $product->contents_total, array('placeholder'=>__('Bsp: 150'), 'class'=>'form-control', 'id'=>'contents_total')) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-2">
|
||||
<label class="form-label" for="contents">{{ __('Grundpreis Einheit') }}</label>
|
||||
{{ Form::select('unit', $product->unitTypes, $product->unit, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'unit') ) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-2">
|
||||
<label class="form-label" for="base_price">{{ __('Grundpreis') }}</label>
|
||||
{{ Form::text('base_price', $product->getBasePriceFormattedFull(), array('placeholder'=>__(''), 'class'=>'form-control', 'id'=>'base_price', 'readonly')) }}
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="number">{{ __('Artikelnummer') }}</label>
|
||||
{{ Form::text('number', $product->number, array('placeholder'=>__('number'), 'class'=>'form-control', 'id'=>'number')) }}
|
||||
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="icons">{{ __('Icons') }}</label>
|
||||
{{ Form::text('icons', $product->icons, array('placeholder'=>__('icons'), 'class'=>'form-control', 'id'=>'icons')) }}
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="form-group col-sm-4">
|
||||
<label class="form-label" for="title">{{ __('Attribute') }}</label>
|
||||
<select class="selectpicker" name="attributes[]" id="attributes" data-style="btn-light" data-live-search="false" multiple>
|
||||
{!! HTMLHelper::getAttributesOptions($product->attributes()->pluck('attribute_id')->toArray()) !!}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="form-label" for="description">{{ __('Beschreibung') }}</label>
|
||||
|
|
@ -156,3 +157,25 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card mb-2">
|
||||
<h5 class="card-header">
|
||||
{{ __('Admin Einstellungen') }}
|
||||
</h5>
|
||||
<div class="card-body">
|
||||
<div class="form-row">
|
||||
<div class="form-group col-sm-5">
|
||||
<label class="form-label" for="action">{{ __('Aktion beim Zahlungsprozess') }}</label>
|
||||
{{ Form::select('action[]', $product->actions, $product->action, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'action', 'multiple') ) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-5">
|
||||
<label class="form-label" for="identifier">{{ __('Kennzeichnung für die Anzeige') }}</label>
|
||||
{{ Form::select('identifier', $product->identifiers_types, $product->identifier, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'identifier') ) }}
|
||||
</div>
|
||||
<div class="form-group col-sm-2">
|
||||
<label class="form-label" for="upgrade_to_id">{{ __('Upgrade to ID') }}</label>
|
||||
{{ Form::text('upgrade_to_id', $product->upgrade_to_id, array('placeholder'=>__('Product ID when need an upgrade'), 'class'=>'form-control', 'id'=>'upgrade_to_id')) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,10 @@
|
|||
<th>{{__('Bild')}}</th>
|
||||
<th>{{__('Name')}}</th>
|
||||
<th>{{__('Kategorie')}}</th>
|
||||
<th>{{__('Preis')}}</th>
|
||||
<th>{{__('Inhalt')}}</th>
|
||||
<th>{{__('Einheit')}}</th>
|
||||
<th>{{__('Grundpreis')}}</th>
|
||||
<th>{{__('Status')}}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
|
|
@ -32,17 +36,19 @@
|
|||
<img class="img-fluid" alt="" style="max-height: 80px" src="{{ route('product_image', [$value->images->first()->slug]) }}">
|
||||
@endif
|
||||
</td>
|
||||
|
||||
<td>{{ $value->name }}</td>
|
||||
<td>
|
||||
@foreach($value->categories as $category)
|
||||
{{ $category->category->name }}
|
||||
@endforeach
|
||||
</td>
|
||||
<td>{{ $value->getFormattedPrice() }}</td>
|
||||
<td>{{ $value->contents_total }}</td>
|
||||
<td>{{ $value->getUnitType() }}</td>
|
||||
<td>{{ $value->getBasePriceFormatted() }}</td>
|
||||
<td data-sort="{{ $value->active }}">@if($value->active) <span class="badge badge-pill badge-success"><i class="fa fa-check"></i></span>@else<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i></span>@endif</td>
|
||||
<td><a class="text-info" href="{{ route('admin_product_copy', [$value->id]) }}" onclick="return confirm('{{__('Eintrag kopieren?')}}');"><i class="far fa-copy"></i></a>
|
||||
<a class="text-danger" href="{{ route('admin_product_delete', [$value->id]) }}" onclick="return confirm('{{__('Really delete entry?')}}');"><i class="far fa-trash-alt"></i></a></td>
|
||||
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
|
|
|
|||
|
|
@ -95,7 +95,12 @@
|
|||
<body class="body" style="padding:0; margin:0; display:block; background:#f8f8f8; -webkit-text-size-adjust:none" bgcolor="#f8f8f8">
|
||||
|
||||
<div style="display: none; mso-hide: all; width: 0px; height: 0px; max-width: 0px; max-height: 0px; font-size: 0px; line-height: 0px;">
|
||||
{{ $copy1line }}
|
||||
@if(isset($copy1line))
|
||||
{{ strip_tags($copy1line) }}
|
||||
@endif
|
||||
@if(isset($content))
|
||||
{{ strip_tags($content) }}
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<table align="center" cellpadding="0" cellspacing="0" width="100%" height="100%">
|
||||
|
|
@ -139,6 +144,7 @@
|
|||
<b>{{ $salutation }} </b>
|
||||
</td>
|
||||
</tr>
|
||||
@if(isset($copy1line))
|
||||
<tr>
|
||||
<td>
|
||||
<center>
|
||||
|
|
@ -155,6 +161,20 @@
|
|||
</center>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@if(isset($content))
|
||||
<tr>
|
||||
<td>
|
||||
<table style="padding: 20px; border:1px solid #eee; background-color: #f6fdf5" cellpadding="2" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
{!! nl2br($content) !!}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<td>
|
||||
<center>
|
||||
|
|
|
|||
268
resources/views/emails/custom.blade.php
Normal file
268
resources/views/emails/custom.blade.php
Normal file
|
|
@ -0,0 +1,268 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>mivita.care</title>
|
||||
|
||||
<style type="text/css">
|
||||
img {
|
||||
max-width: 600px;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
-ms-interpolation-mode: bicubic;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
border: 0;
|
||||
outline: none;
|
||||
color: #919f7a;
|
||||
}
|
||||
a:hover {
|
||||
color: #b6b600;
|
||||
}
|
||||
a img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
td, h1, h2, h3 {
|
||||
font-family: Helvetica, Verdana, Arial, sans-serif;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
td {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-webkit-text-size-adjust: none;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color: #37302d;
|
||||
background: #ffffff;
|
||||
font-size: 14px;
|
||||
line-height: 22px
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: separate !important;
|
||||
}
|
||||
|
||||
.headline {
|
||||
color: #37302d;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.sub_headline {
|
||||
color: #788662;
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.force-full-width {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: none;
|
||||
border-top: 1px solid #b7c59e;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
<style type="text/css" media="screen">
|
||||
@media screen {
|
||||
/*Thanks Outlook 2013! http://goo.gl/XLxpyl*/
|
||||
td, h1, h2, h3 {
|
||||
font-family: Helvetica, Verdana, Arial, sans-serif;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style type="text/css" media="only screen and (max-width: 480px)">
|
||||
/* Mobile styles */
|
||||
@media only screen and (max-width: 480px) {
|
||||
|
||||
table[class="w320"] {
|
||||
width: 320px !important;
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
<!--[if mso]>
|
||||
<style type="text/css">
|
||||
body, table, td {
|
||||
font-family: Helvetica, Arial, sans-serif !important;
|
||||
}
|
||||
</style>
|
||||
<![endif]-->
|
||||
|
||||
|
||||
</head>
|
||||
<body class="body" style="padding:0; margin:0; display:block; background:#f8f8f8; -webkit-text-size-adjust:none" bgcolor="#f8f8f8">
|
||||
|
||||
<div style="display: none; mso-hide: all; width: 0px; height: 0px; max-width: 0px; max-height: 0px; font-size: 0px; line-height: 0px;">
|
||||
{{ strip_tags($content) }}
|
||||
</div>
|
||||
|
||||
<table align="left" cellpadding="0" cellspacing="0" width="100%" height="100%">
|
||||
<tr>
|
||||
<td align="left" valign="top" bgcolor="#f8f8f8" width="100%">
|
||||
<br>
|
||||
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="700" class="w320">
|
||||
<tr>
|
||||
<td align="left" valign="top">
|
||||
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td style=" text-align:center;">
|
||||
<center>
|
||||
<table width="100%" cellpadding="0" cellspacing="0" border="0" class="">
|
||||
<tbody class="">
|
||||
<tr class="">
|
||||
<td align="center" valign="middle" style="font-size: 0px;" class="">
|
||||
<center>
|
||||
<picture style="text-align: center">
|
||||
<img src="https://my.mivita.care/images/logo_mivita.png" alt="mivita.care" style="border:none" width="230">
|
||||
</picture>
|
||||
</center>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</center>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table cellpadding="10" style="padding: 10px;" cellspacing="0" border="0" width="100%" bgcolor="#ffffff">
|
||||
<tr>
|
||||
<td class="headline" style="text-align: center">
|
||||
<center>
|
||||
<b>{{ $title }}</b>
|
||||
</center>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table style="padding: 0px 20px; border:1px solid #eee; background-color: #f6fdf5" cellpadding="2" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
{!! nl2br($content) !!}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<center>
|
||||
<table role="presentation" cellpadding="0" cellspacing="0" width="100%" border="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="word-wrap:break-word;background:transparent;font-size:0px;padding:10px 25px;" align="center" valign="top" background="data:image/gif;base64,">
|
||||
<table role="presentation" cellpadding="0" cellspacing="0" align="center" border="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border:none;border-radius:20px;color:#ffffff;cursor:auto;padding:15px 25px;" align="center" valign="middle" bgcolor="#b5c49b">
|
||||
<p style="text-decoration:none;background:#b5c49b;color:#ffffff;font-family:Arial, sans-serif;font-size:13px;font-weight:normal;line-height:120%;text-transform:none;margin:0px;">
|
||||
<a href="{{ $url }}" style="color:#ffffff;font-size:14px;font-weight:bold;text-align:center;text-decoration:none;-webkit-text-size-adjust:none;">{{ $button }}</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</center>
|
||||
</td>
|
||||
<tr>
|
||||
<tr>
|
||||
<td style="color:#37302d;font-size: 14px;">
|
||||
<center>
|
||||
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
|
||||
<tr>
|
||||
<td style="color:#37302d; text-align: center">
|
||||
{{ $copy2line }}<br>
|
||||
<span style="color: #cabda9; font-weight: normal; font-size: 13px; text-decoration: underline; word-wrap: break-word;white-space: pre-line;">{{ $url }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</center>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@if(isset($content_last) && $content_last != "")
|
||||
<tr>
|
||||
<td>
|
||||
<table style="padding: 0px 20px; border:1px solid #eee; background-color: #f6fdf5" cellpadding="2" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td>
|
||||
{!! nl2br($content_last) !!}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
<tr>
|
||||
<td style="color:#37302d;font-size: 14px;">
|
||||
<center>
|
||||
<table style="margin: 0 auto;" cellpadding="0" cellspacing="0" width="90%">
|
||||
<tr>
|
||||
|
||||
<td style="color:#37302d; text-align: center">
|
||||
{{ $copy3line }}
|
||||
<br>
|
||||
{{ $greetings }} <br><br><b>{{ $sender }}</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><br></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
<center>
|
||||
<table cellpadding="0" cellspacing="0" class="force-full-width"
|
||||
bgcolor="#f8f8f8" style="margin: 0 auto; text-align: center">
|
||||
<tr>
|
||||
<td style="color:#7B7B7E; font-size:14px; text-align: center">
|
||||
<p>
|
||||
{{__('email.footer_copy1')}}
|
||||
</p>
|
||||
<a href="https://www.mivita.care" style="color: #7B7B7E; text-decoration: underline;">www.mivita.care</a>
|
||||
<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color:#bbbbbb; font-size:12px; text-align: center">
|
||||
<p>{{__('email.footer_copy2')}}</p>
|
||||
<a href="https://www.mivita.care/datenschutz">Datenschutzerklärung</a> <br>
|
||||
<p>{{__('email.footer_copy3')}}</p>
|
||||
<br>
|
||||
<br>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
@ -27,36 +27,60 @@
|
|||
|
||||
<hr class="container-m-nx mt-0 mb-4">
|
||||
|
||||
|
||||
<div class="row">
|
||||
@if($user->active == 1)
|
||||
@if($user->payment_account && $user->daysActiveAccount() <= config('mivita.renewal_days'))
|
||||
@if($user->payment_account && $user->daysActiveAccount() <= config('mivita.remind_first_days'))
|
||||
<div class="d-flex col-xl-12 align-items-stretch">
|
||||
<!-- SHOP -->
|
||||
<div class="card w-100 mb-4">
|
||||
<h5 class="card-header">
|
||||
{{__('Mitgliedschaft / Jahresbeitrag') }}
|
||||
{{__('membership.home_hl') }}
|
||||
</h5>
|
||||
<div class="card-body">
|
||||
<h5><strong>Achtung:</strong> Deine Mitgliedschaft wurde verlängert!</h5>
|
||||
|
||||
@if($user->daysActiveAccount() <= 0)
|
||||
@if($user->isActiveAccount())
|
||||
<h5 class="alert badge-danger">Dein Zahlungsfrist läuft heute aus, bitte aktualisiere jetzt Deine Mitgliedschaft!</h5>
|
||||
<h5 class="alert badge-danger">{{__('membership.home_copy_alert_35')}}</h5>
|
||||
<p>{{__('membership.home_copy_last_35', ['days'=>$user->daysActiveAccount(), 'datetime'=>$user->getPaymentAccountDateFormat()])}}</p>
|
||||
@else
|
||||
<h5 class="alert badge-danger">Dein Zahlungsfrist ist vor {{ $user->daysActiveAccount()*-1 }} Tagen ausgelaufen, bitte aktualisiere jetzt Deine Mitgliedschaft!</h5>
|
||||
{{-- 35, 36 --}}
|
||||
@if($user->daysActiveAccount() == 0)
|
||||
<h5 class="alert badge-danger">{{__('membership.home_copy_alert_36_today', ['datetime'=>$user->getPaymentAccountDateFormat()])}}</h5>
|
||||
@else
|
||||
<h5 class="alert badge-danger">{{__('membership.home_copy_alert_36', ['days'=>$user->daysActiveAccount()*-1, 'datetime'=>$user->getPaymentAccountDateFormat()])}}</h5>
|
||||
@endif
|
||||
@elseif($user->daysActiveAccount() < config('mivita.abo_booking_days') )
|
||||
<h5 class="alert badge-warning">Dein Zahlungsfrist läuft in {{$user->daysActiveAccount()}} Tagen aus, bitte aktualisiere jetzt Deine Mitgliedschaft!</h5>
|
||||
@else
|
||||
<h5 class="alert badge-default">Dein Zahlungsfrist läuft in {{$user->daysActiveAccount()}} Tagen aus, bitte aktualisiere jetzt Deine Mitgliedschaft!</h5>
|
||||
@if($user->abo_options && $user->payment_account)
|
||||
<p>Deine automatische Verlängerung ist aktiv, wir werden am <strong>{!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!}</strong> Deine Mitgliedschaftsgebühr automatisch per SEPA Mandat einziehen.<br>
|
||||
@endif
|
||||
@endif
|
||||
<p>Erst wenn Dein Jahresbeitrag bei uns eingeht wird Deine Mitgliedschaft automastisch für ein Jahr verlängert. Die Verlängerung gilt ab erstes Abschlussdatum ein weiteres volles Jahr, bis zum <strong>{{$user->modifyActiveAccount()}}</strong>.
|
||||
Sollte nach Ablauf der Zahlungsfrist Dein Jahresbeitrag nicht bei uns eingehen, wird Dein Account gesperrt.</p>
|
||||
@if($user->payment_account && $user->isAboOption())
|
||||
{{ __('membership.home_copy_SEPA_36', ['price'=> 'von '.$user->payment_order_product->getFormattedPrice().' EUR', 'pay_date'=>Carbon::parse($user->payment_account)->modify('- '.config('mivita.abo_booking_days').' days')->format('d.m.Y')]) }}
|
||||
<hr>
|
||||
@endif
|
||||
|
||||
<p>{{__('membership.home_copy_last_36', ['days'=>$user->daysActiveAccount(), 'datetime'=>$user->getPaymentAccountDateFormat()])}}</p>
|
||||
@endif
|
||||
@elseif($user->daysActiveAccount() < config('mivita.remind_last_days') )
|
||||
{{-- 33 --}}
|
||||
<h5 class="alert badge-warning">{{ __('membership.home_copy_alert_31', ['datetime'=>$user->getPaymentAccountDateFormat()]) }}</h5>
|
||||
<p>{{__('membership.home_copy_last_34', ['days'=>$user->daysActiveAccount(), 'datetime'=>$user->getPaymentAccountDateFormat()])}}</p>
|
||||
@elseif($user->daysActiveAccount() < config('mivita.remind_sec_days'))
|
||||
{{-- 33 --}}
|
||||
<h5 class="alert badge-warning">{{ __('membership.home_copy_alert_31', ['datetime'=>$user->getPaymentAccountDateFormat()]) }}</h5>
|
||||
@if($user->payment_account && $user->isAboOption())
|
||||
@if($user->daysActiveAccount() < config('mivita.abo_booking_days') )
|
||||
<p>{{ __('membership.home_copy_SEPA_33', ['price'=> 'von '.$user->payment_order_product->getFormattedPrice().' EUR', 'pay_date'=>Carbon::parse($user->payment_account)->modify('- '.config('mivita.abo_booking_days').' days')->format('d.m.Y')]) }}</p>
|
||||
@else
|
||||
<p>{{ __('membership.home_copy_SEPA_32', ['price'=> 'von '.$user->payment_order_product->getFormattedPrice().' EUR', 'pay_date'=>Carbon::parse($user->payment_account)->modify('- '.config('mivita.abo_booking_days').' days')->format('d.m.Y')]) }}</p>
|
||||
@endif
|
||||
<hr>
|
||||
@endif
|
||||
<p>{{__('membership.home_copy_last_33', ['days'=>$user->daysActiveAccount()])}}</p>
|
||||
@else
|
||||
{{-- 32 / 31 --}}
|
||||
<h5 class="alert badge-default">{{ __('membership.home_copy_alert_31', ['datetime'=>$user->getPaymentAccountDateFormat()]) }}</h5>
|
||||
@if($user->payment_account && $user->isAboOption())
|
||||
{{ __('membership.home_copy_SEPA_32', ['price'=> 'von '.$user->payment_order_product->getFormattedPrice().' EUR', 'pay_date'=>Carbon::parse($user->payment_account)->modify('- '.config('mivita.abo_booking_days').' days')->format('d.m.Y')]) }}
|
||||
<hr>
|
||||
@endif
|
||||
<p>{{__('membership.home_copy_last_31', ['days'=>$user->daysActiveAccount()])}}</p>
|
||||
|
||||
@endif
|
||||
</div>
|
||||
<div class="card-footer py-3">
|
||||
<a href="{{route('user_membership')}}" class="btn btn-info mb-3"><i class="ion ion-ios-refresh text-default mr-1"></i> Mitgliedschaft jetzt hier verwalten</a>
|
||||
|
|
|
|||
|
|
@ -135,6 +135,9 @@
|
|||
<div>{{ __('Tools') }}</div>
|
||||
</a>
|
||||
<ul class="sidenav-menu">
|
||||
<li class="sidenav-item{{ Request::is('sysadmin/tools/cronjobs') ? ' active' : '' }}">
|
||||
<a href="{{ route('sysadmin_tools_cronjobs') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-settings"></i><div>{{ __('Cron Jobs') }}</div></a>
|
||||
</li>
|
||||
<li class="sidenav-item{{ Request::is('sysadmin/tools/domainssl') ? ' active' : '' }}">
|
||||
<a href="{{ route('sysadmin_tools_domainssl') }}" class="sidenav-link"><i class="sidenav-icon ion ion-md-lock"></i><div>{{ __('Domain SSL') }}</div></a>
|
||||
</li>
|
||||
|
|
|
|||
50
resources/views/sys/admin/cronjobs.blade.php
Normal file
50
resources/views/sys/admin/cronjobs.blade.php
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
@extends('layouts.layout-2')
|
||||
|
||||
@section('content')
|
||||
|
||||
@if ($errors->any())
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<div class="alert alert-danger">
|
||||
<ul>
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
<h4 class="font-weight-bold mb-4">
|
||||
Cron Jobs
|
||||
</h4>
|
||||
|
||||
|
||||
<div class="card mb-4">
|
||||
|
||||
{{-- <div class="card-body">
|
||||
<!-- Controls -->
|
||||
{!! Form::open(['url' => url()->current(), 'class' => '']) !!}
|
||||
<div class="form-group mb-1">
|
||||
<label class="form-label" for="description">Description</label>
|
||||
{{ Form::textarea('text', $text, array('class'=>'form-control', 'rows'=>20)) }}
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary"><i class="ion"></i> action</button>
|
||||
|
||||
{!! Form::close() !!}
|
||||
</div>--}}
|
||||
|
||||
@if(count($values)>0)
|
||||
<div class="card-body">
|
||||
<!-- Controls -->
|
||||
@foreach($values as $name=>$link)
|
||||
<a href="{{$link}}" target="_blank">{{$name}} | {{$link}}</a><br><br>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
<hr>
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="abo_options" @if($user && $user->abo_options) checked="checked" @endif>
|
||||
<input type="checkbox" class="custom-control-input" name="abo_options" @if($user && $user->isAboOption()) checked="checked" @endif>
|
||||
<span class="custom-control-label secondary"><strong>{{__('payment.status.auto_renewal_hl')}}:</strong> {{__('payment.status.auto_renewal_line_1')}}</span>
|
||||
<p class="text-muted">{{__('payment.status.auto_renewal_line_2')}}</p>
|
||||
</label>
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
</table>
|
||||
</div>
|
||||
<div class="text-left mt-3">
|
||||
@if(!$user->abo_options)
|
||||
@if(!$user->isAboOption())
|
||||
<hr>
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="abo_options">
|
||||
|
|
|
|||
|
|
@ -26,13 +26,21 @@
|
|||
|
||||
@if($user->isRenewalAccount())
|
||||
<div class="card w-100 mb-4">
|
||||
<h5 class="card-header">Deine Mitglidschaft wurde am {!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!} verlänget.</h5>
|
||||
<h5 class="card-header">Deine Mitglidschaft wurde am {{ $user->nextRenewalAccount() }} verlängert.</h5>
|
||||
<div class="card-body">
|
||||
@if($userHistoryPaymentOrder && $userHistoryPaymentOrder->status > 2)
|
||||
<h6 class="alert badge-{{$userHistoryPaymentOrder->getStatusColor()}}">Eine Zahlung wurde ausgeführt. Status: {{ trans('payment.status.'.$userHistoryPaymentOrder->getStatusType())}}</h6>
|
||||
@endif
|
||||
@if($user->abo_options && $user->payment_account)
|
||||
<p class="alert py-2 px-2 badge-secondary">Deine automatische Verlängerung ist aktiv, wir werden am <strong>{!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!}</strong> Deine Mitgliedschaftsgebühr automatisch per SEPA Mandat einziehen.<br>
|
||||
@if($user->payment_account && $user->isAboOption())
|
||||
@if($user->payment_account && $user->isAboOption())
|
||||
@if($user->daysActiveAccount() < config('mivita.abo_booking_days') )
|
||||
<p class="alert py-2 px-2 badge-secondary">Wir konnten am <strong>{!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!}</strong> Deine Mitgliedschaftsgebühr <strong>nicht</strong> automatisch per SEPA Mandat einziehen.<br>
|
||||
@else
|
||||
<p class="alert py-2 px-2 badge-secondary">Deine automatische Verlängerung ist aktiv, wir werden am <strong>{!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!}</strong> Deine Mitgliedschaftsgebühr automatisch per SEPA Mandat einziehen.<br>
|
||||
@endif
|
||||
<hr>
|
||||
@endif
|
||||
|
||||
@else
|
||||
@if($user->payment_order_id && $user->payment_order_product->identifier === 'show_upgrade')
|
||||
<p></p>
|
||||
|
|
@ -44,10 +52,9 @@
|
|||
<p><strong>Du hast die Möglichkeit Dein Paket zu upgraden, wähle einfach das erweiterte Paket aus und gehe weiter zur Zahlung.</strong></p>
|
||||
@endif
|
||||
@if($user->payment_order_product->identifier === 'show_order')
|
||||
<p><strong>Eine Änderung Deiner Berater-Mitgliedschaft ist nicht mehr möglich.</strong></p>
|
||||
<p><strong>Eine Änderung Deines Berater-Paketes ist nicht mehr möglich.</strong></p>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@include('user.membership._payment_order')
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -73,7 +80,7 @@
|
|||
<div class="card w-100 mb-4">
|
||||
<h5 class="card-header">{{__('Mitgliedschaft')}} {{__('anpassen')}}</h5>
|
||||
<div class="card-body">
|
||||
<h6 class="d-block text-dark">Ändere Deine Mitglidschaft für die nächste Vertragsverlängerung.</h6>
|
||||
<h6 class="d-block text-dark">Du kannst Deine Mitglidschaft bis zur nächsten Vertragsverlängerung, am {{ $user->nextRenewalAccount() }}, ändern</h6>
|
||||
<p>Die restlichen Läufzeiten bleiben erhalten, erst mit der Verlängerung wird das geänderte Paket aktiv.</p>
|
||||
@include('user.membership._change')
|
||||
</div>
|
||||
|
|
@ -82,28 +89,30 @@
|
|||
|
||||
|
||||
|
||||
@endif
|
||||
|
||||
{{-- remove ABO Options --}}
|
||||
@if($user->abo_options && $user->payment_account)
|
||||
<div class="card w-100 mb-4">
|
||||
{!! Form::open(['url' => route('user_membership_store', ['remove_abo']), 'class' => 'form-horizontal']) !!}
|
||||
<h5 class="card-header">{{__('payment.status.auto_renewal_hl')}} {{__('deaktivieren')}}</h5>
|
||||
|
||||
<div class="card-body">
|
||||
<p>Automatische Verlängerung dekativeren und SEPA Mandat zurückziehen.<br>
|
||||
Die nächste Buchung ist am: <strong>{!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!}</strong></p>
|
||||
{{-- remove ABO Options --}}
|
||||
@if($user->payment_account && $user->isAboOption())
|
||||
<div class="card w-100 mb-4">
|
||||
{!! Form::open(['url' => route('user_membership_store', ['remove_abo']), 'class' => 'form-horizontal']) !!}
|
||||
<h5 class="card-header">{{__('payment.status.auto_renewal_hl')}} {{__('deaktivieren')}}</h5>
|
||||
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="abo_options_remove">
|
||||
<span class="custom-control-label secondary">Hiermit bestätige ich, mein SEPA zu löschen und die automatische Verlängerung dekativeren.</span>
|
||||
</label>
|
||||
<button type="submit" class="btn btn-secondary btn-sm">{{__('payment.status.auto_renewal_hl')}} {{__('deaktivieren')}}</button>
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
<div class="card-body">
|
||||
<p>Automatische Verlängerung dekativeren und SEPA Mandat zurückziehen.<br>
|
||||
Die nächste Buchung ist am: <strong>{!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!}</strong></p>
|
||||
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="abo_options_remove">
|
||||
<span class="custom-control-label secondary">Hiermit bestätige ich, mein SEPA zu löschen und die automatische Verlängerung dekativeren.</span>
|
||||
</label>
|
||||
<button type="submit" class="btn btn-secondary btn-sm">{{__('payment.status.auto_renewal_hl')}} {{__('deaktivieren')}}</button>
|
||||
</div>
|
||||
@endif
|
||||
{!! Form::close() !!}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if($user->payment_account)
|
||||
@if($user->payment_account)
|
||||
<div class="card w-100 mb-4">
|
||||
{!! Form::open(['url' => route('user_membership_store', ['delete_membership']), 'class' => 'form-horizontal']) !!}
|
||||
<h5 class="card-header">{{__('Mitgliedschaft')}} {{__('beenden')}}</h5>
|
||||
|
|
@ -115,27 +124,19 @@
|
|||
|
||||
@if($userHistoryDeleteMembership && $userHistoryDeleteMembership->status == 50)
|
||||
<p class="alert py-2 px-2 badge-danger">Die Beendigung und Löschung Deiner MIVITA Mitgliedschaft ist beantragt.<br>
|
||||
@else
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="delete_membership_mivita">
|
||||
<span class="custom-control-label secondary">Ja, ich möchte die MIVITA Mitgliedschaft beenden, ich verzichte auf jeglichen Anspruch gegenüber MIVITA und möchte, dass mein Account gelöscht wird!</span>
|
||||
</label>
|
||||
<button type="submit" class="btn btn-default btn-sm">{{ __('Mitgliedschaft hiermit beenden') }}</button>
|
||||
@else
|
||||
<label class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" name="delete_membership_mivita">
|
||||
<span class="custom-control-label secondary">Ja, ich möchte die MIVITA Mitgliedschaft beenden, ich verzichte auf jeglichen Anspruch gegenüber MIVITA und möchte, dass mein Account gelöscht wird!</span>
|
||||
</label>
|
||||
<button type="submit" class="btn btn-default btn-sm">{{ __('Mitgliedschaft hiermit beenden') }}</button>
|
||||
@endif
|
||||
</div>
|
||||
{!! Form::close() !!}
|
||||
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
|
||||
|
||||
{{--
|
||||
TODO
|
||||
//cron sepa
|
||||
//cron Mails erinnerungen
|
||||
--}}
|
||||
</div>
|
||||
<div class="col-md-5 col-xl-4 order-1 order-md-2">
|
||||
<!-- Project details -->
|
||||
|
|
@ -179,7 +180,7 @@
|
|||
@else
|
||||
@if($user->payment_account)
|
||||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div class="text-muted">{{__('abgelaufen am')}}}</div>
|
||||
<div class="text-muted">{{__('abgelaufen am')}}</div>
|
||||
<div class="text-right">
|
||||
{{ $user->getPaymentAccountDateFormat() }}
|
||||
</div>
|
||||
|
|
@ -217,7 +218,7 @@
|
|||
<li class="list-group-item d-flex justify-content-between align-items-center">
|
||||
<div class="text-muted">{{__('payment.status.auto_renewal_hl')}}</div>
|
||||
<div class="text-right">
|
||||
@if($user->abo_options)
|
||||
@if($user->isAboOption())
|
||||
<span class="badge badge-pill badge-success"><i class="fa fa-check"></i> {{ __('aktiv') }}</span>
|
||||
@else
|
||||
<span class="badge badge-pill badge-danger"><i class="fa fa-times"></i> {{ __('inaktiv') }}</span>
|
||||
|
|
|
|||
|
|
@ -105,6 +105,8 @@ Route::domain(config('app.pre_url_main').config('app.domain').config('app.tld_ca
|
|||
/* ROUTING FOR CRM my.mivita / CMS*/
|
||||
Route::domain(config('app.pre_url_crm').config('app.domain').config('app.tld_care'))->group(function () {
|
||||
|
||||
Route::get('/cron/jobs/action/{action}/{key}', 'CronController@action')->name('cron_jobs_action');
|
||||
|
||||
Auth::routes();
|
||||
Route::get('/logout', function(){
|
||||
Auth::logout();
|
||||
|
|
@ -173,7 +175,6 @@ Route::domain(config('app.pre_url_crm').config('app.domain').config('app.tld_car
|
|||
|
||||
Route::group(['middleware' => ['auth:user']], function()
|
||||
{
|
||||
|
||||
Route::get('storage/{type?}/{file?}', function($type = null, $file = null)
|
||||
{
|
||||
if($type == 'xls'){
|
||||
|
|
@ -337,12 +338,14 @@ Route::domain(config('app.pre_url_crm').config('app.domain').config('app.tld_car
|
|||
|
||||
});
|
||||
|
||||
|
||||
//login pages for sysadmin
|
||||
Route::group(['middleware' => ['sysadmin']], function() {
|
||||
Route::get('/sysadmin/tools/domainssl', 'SyS\AdminToolsController@domainSSL')->name('sysadmin_tools_domainssl');
|
||||
Route::post('/sysadmin/tools/domainssl', 'SyS\AdminToolsController@domainSSLStore')->name('sysadmin_tools_domainssl');
|
||||
|
||||
Route::get('/sysadmin/tools/cronjobs', 'SyS\AdminToolsController@cronjobs')->name('sysadmin_tools_cronjobsl');
|
||||
Route::post('/sysadmin/tools/cronjobs', 'SyS\AdminToolsController@cronjobsStore')->name('sysadmin_tools_cronjobs');
|
||||
|
||||
Route::get('/sysadmin/tools/shopping_orders', 'SyS\AdminToolsController@shoppingOrders')->name('sysadmin_tools_shopping_orders');
|
||||
Route::post('/sysadmin/tools/shopping_orders', 'SyS\AdminToolsController@shoppingOrdersStore')->name('sysadmin_tools_shopping_orders');
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue