Jump to content

DisposableHero

Members
  • Posts

    623
  • Joined

  • Last visited

  • Days Won

    97

Everything posted by DisposableHero

  1. Well, to be honest I do not think you can get the full expenses of a pirep at that stage with the event. So forget charging the full debit total to the pilot. Nothing is impossible and you can do that of course but not with that expense listener and not at the moment it works. What you can do is, as I wrote earlier, charging the pilot with the half of his earnings per flight hours (nice admin). This means that they will earn less and this will make them fly scheduled routes more than free flights. Technically you have the pirep model and all its relationships there in the event, no need to look other places or events to find things. It is all object/model oriented. So when you have the $event->pirep in your hands this means that you have the flight (if it is a scheduled one), you have the user and all of its relationships like rank , type ratings, subfleets he/she can fly etc. You need to study what those models provide to you, what are their relationships and what to they provide too for better understanding what is available and when, also this will give you a better picture to think about. $event->pirep->flight_time , $event->pirep->distance , $event->pirep->user->rank->acars_base_pay_rate , $event->pirep->flight->flight_number are some examples for you. To be practical, you can simply assign them to shorter names variables like $pirep = $event->pirep; $user = $pirep->user; in the beginning of your code, so from that moment on you can use $pirep->flight_time instead of $event->pirep->flight_time or $user->rank directly when needed etc. As far as I remember, the pay rate is calculated like this round($pirep->flight_time * ( $user->rank->acars_base_pay_rate / 60), 2) , you can divide that result by 2 and charge the half of his/her earnings back as a punishment of freely flying https://github.com/nabeelio/phpvms/tree/dev/app/Models You can check the models and their relationships from the link above (source code of v7) Hope this helps, good luck
  2. $amount = 300; // or calculate something with the flight time like round($event->pirep->flight_time * 5) this will result 300 for 60 mins if (filled($event->pirep->flight_id)) { // There is a flight id present, so this is a scheduled flight. // return empty expense array, do nothing more. return $expenses; } Or worse You can just take the pilot pay back for free flights By calculating exactly the same amount a pilot earns with flying that flight, or can be a nice admin, taking half of it back etc. So in theory, that amount should be calculated and must be value.
  3. As this is a free flight, there will be no $pirep->flight_id , you can use that as your condition. For the $amount, you need to find some fixed value (maybe you can calculate something with the flight time or the distance flown as per your needs) at least please explain your wish a little bit more... What does "pirep expenses/debit" mean ? Rest looks ok though
  4. He had some covid problems and development was paused, thankfully he is recovering back and keeping up with the changes done to core while he was away. Most probably generator will be back online when he feels fully ok and updated
  5. So for example, that live map widget should use "col-lg" instead of "col" alone. "col" is the default, smallest available one, "col-lg" however is auto optimized for large screens when used with other columns etc. Same applies to cards etc as far as I remember.
  6. This is a theming issue in its core. I did not worked on "responsive" logic much, but it can be easily handled with Bootstrap's responsive auto sizing tools. The latest version of DH Theme had some pages partly fixed for small displays and phones, but it still needs work I do personally not use a small screen and developing things for them is just killing my eyes to be honest Check the latest version and see how I implemented the dashboard and login/register form etc, it may give some clues. Best wishes
  7. If you delete a user from your database engine, then you need to define it back there. Restoring a database backup will NOT restore the users, it will only restore the structure and data. Database users are not stored in the database itself, they are stored by the database server. Anyway; Either create the same user back from your control panel, grant access to that user for your phpvms database. Or create a new user from your control panel, grant access to that user for your phpvms database, enter that users info to your env.php, clean the application cache manually (folders are explained here , check #3 ) Good luck
  8. Just an update... With the latest dev build as of 12FEB, we now have; CronFiveMinutes (runs every 5 minutes) CronFifteenMinutes (runs every 15 minutes) CronThirtyMinutes (run every 30 minutes, like 06:00 and 06:30 of each hour) as an addition to the already running ones as; CronHourly (runs every hour) CronNightly (runs every day at 01:00 UTC) CronWeekly (runs every week, when a new week starts at Sunday 00:00 UTC) CronMonthly (runs every first day of the month at 00:00 UTC)
  9. Easier than building up a pagination logic Glad to hear you solved the problem. Safe flights
  10. If the above page is just for searching, then maybe it needs to be re-designed and no results will be shown during initial load. Which will greatly reduce the amount of data loaded there, of course the search criteria should be altered and it should not allow both airports to use the "select all" option. With this trick, user will be forced to either select a departure and see all flights out of that airport (departure = ICAO , arrival = ALL) or he/she can pick an arrival airport and see all incoming flights. Results may need a pagination of course depending on the flights/schedules provided by the VA. If that page is directly loading all flights (like a timetable) and also allowing the user to search, pagination will be the key. Also if possible, you can reduce the initially loaded flights by loading the ones departing out from user's current location by default (this may need a pagination too). They can do a search afterwards. Good luck
  11. Hi, This is technically not a guide, but an overall explanation of v7 systems related to automation and why CRON is needed etc. What is CRON ? Basically CRON is the name of "Scheduled Tasks" in Linux systems. Imagine it like a person executing tasks in behalf of you, a helper or an automation. Why it is needed and important ? Well, if you want to execute every single script needed for automation then you do not need it, but most of us do not have that much free time, specially we can not be online 24/7 to click some links every single minute or at best every hour. So CRON is important because it does exactly this. It runs some scripts, at minimum every single minute to see if there is something needed to be done. If not it waits and then checks again, again and again without any problems. What will happen if I do not have a working CRON ? To be honest, in the first days you will notice nothing about it. There will be practically no visual clues, no problems, everything will look ok and you will think that your v7 VA is running fine. The truth is, no it is not running fine, it is just piling up some possible problems and they will hit you hard soon. Here is a simple list I can think of related with CRON in v7; Every hour it checks your bids and deletes expired ones Every hour it checks your SimBrief packs and deletes expired + non used ones Every hour it checks your live flights and deletes them if they are stuck/frozen etc Every hour it checks your pilot reports (pireps, flight reports) and delete cancelled/rejected ones Every night it re-calculates the stats of your pilots, corrects them if there is an inconsistency Every night it re-calculates the financial data of your airline(s) and pilots Every night it checks and executes your daily expenses Every night it checks your schedule and activates/deactivates flights for that day/date Every night it checks your pilots to determine if they are still active or not Every month it checks and executes your monthly expenses These were just for the core, also addons/modules may need CRON (for this I can only speak for my addons of course) but you can expect it to be extended easily with new addons/updates; Every hour it checks your fleet, fixes problems about aircraft state, grounds them if they somehow get stuck "in air" or "in use" Every hour it checks your maintenance records, releases aircraft back to service (or keeps them grounded) Every month it executes tasks for monthly flight assignments Also you can extend core CRON usage, for example it can organize sending mails in the background to speed up things and save you from mail server slowdowns etc. And of course it is possible to develop more functions to be handled automatically, image yourself doing database cleanup every week or month, or always executing same things in a timely manner, to automate all these task you need a working cron. Like in my setup, it does more than the list above, I am happy and focused on other things and enjoying flights etc. What is the minimum interval for CRON timing needed ? If it is not hurting your server and if it is allowed (some hosting companies limit this), set it to run every 1 minute or 5 minutes. If not possible use the minimum possible period, maybe 15 minutes or 30 minutes. This will not hurt v7 much, why 'because as you can see above it executes the main tasks mostly with one hour intervals. So what happens if you set your cron to run every single minute. Nothing harmful, it just checks the time and tasks then stops, when it is the correct time then it executes the tasks and then stops again. Same thing will happen if you set it to run every 30 minutes too. Only the checks will be less frequent that's all. BUT, if you are planning to use cron for e-mail scheduling, then this timing becomes more important. Imagine a scenario, you enabled cron for emails (check docs for details) and set it to run every 30 minutes; 10:00 > Cron runs, executes hourly tasks 10:03 > A new pilot registers, mail is placed in the queue and waiting 10:12 > One of your pilots send a pirep, mail is placed in the queue and waiting 10:30 > Cron runs, no hourly tasks available, so it sends the mails only 10:31 > You get mails from your system, go check and approve the pilot and reject the pirep, mails are placed in the queue and waiting 10:48 > Another pilot sends a pirep, mail is placed in the queue and waiting 11:00 > Cron runs, executes hourly tasks and sends the mails 11:02 > You get another pirep notification and so on How can I set the CRON ? This is normally done via the control panel you are using, it may be CPanel or Plesk or something custom. If you can not see anything named like CRON, CRONTAB, Scheduled Task etc in your control panel, please consult your hosting providers documents and/or support. Also you can find an example code at admin > maintenance page, but it is an EXAMPLE, it may or may not work. You can use that example as a starting point or maybe use it while speaking with your hosting support staff. How can I understand my CRON is working or not ? Simple, check your storage/logs folder. If it is working as expected you will have a log file named something like cron-2022-02-08.log , if that file is not there this is an indication of either it is not configured right or it is not working. To get more details now check your laravel logs, if you see something like `production.ERROR: The Process class relies on proc_open, which is not available on your PHP installation.` in the log then this means that the CRON is trying to work but it can not. So the setup is correct, but you are now facing a much bigger problem. Your hosting company is limiting things, you can speak with them for more details, some do help and let you proceed, some will not. *** Update ; With the improvement to development build, now it will be possible to have CRON system working with limiting hosting companies too. Please check the docs about latest changes. *** My hosting provider does not offer CRON, what can I do ? You can use the built in web cron feature of v7, there are lots of free/paid services offering you to run web based crons. If you are getting the error explained above, this solution will not work either, so do not expect miracles. I have hosting related CRON problems, what can I do to solve this ? You can write your own web cron compatible code to bypass your hosting companies limitations, but for this you need to have some php + laravel + v7 knowledge. This is nothing impossible, but it is not easy either. Honestly you are on your own there, but what you need is basically to study the core cron tasks, duplicate and enhance them for your own usage. Or you can find another host, switch to another package/service they provide, switch to VPS or rent your own server, whichever you prefer. Finally; Please remember, v7 will install and work without CRON but you will loose some of its important and really needed abilities and features. Safe flights.
  12. When you click a link from a webpage (or from discord etc) if it does not download (instead a new tab appears and immediately closes), this is due to security settings your default browser has. Recently most of the chromium based browsers switched to this new logic (Google Chrome was the first to implement as expected). Anyway, if you want to use that link; A. Either you have to edit your browser's settings (to allow downloads the way you used before) B. Right click that link and choose "Save as.." And for general info (second part of your question), the link to latest development version is just there under the message. So if someone applies the "right click > save as..." trick (or if that someone's browser is already configured) that link works and always give you the latest build
  13. Also you can check your laravel log, to see if any errors are being recorded during pirep being sent and gets accepted (at this moment expenses will be considered/calculated by the finance code). There we may find valuable clues about this. Good luck
  14. What is the filename ? I think I explained it somewhere before, the filename and the class name should match and this is important Also you should not be using the same class name twice or more, it may cause problems (like it being skipped or worse, erroring out all process and stopping) Filename : HardLanding.php Class Definition : class HardLanding extends Listener class HardLanding extends Listener { public function handle(Expenses $event) { $expenses = []; $amount = 5000; if (abs($event->pirep->landing_rate) < 500) { return $expenses; } $expenses[] = new Expense([ 'type' => ExpenseType::FLIGHT, 'amount' => $amount, 'transaction_group' => 'Hard Landing', 'name' => 'Hard Landing Fee For Pirep='.$event->pirep->id, 'multiplier' => false, 'charge_to_user' => true ]); return $expenses; } } Rest looks ok though.
  15. Why should I take your mistakes or lack of reading capabilities "personal". You should NOT blame something/someone else for your own mistakes and then advise other people to calm down when they point this out kindly. Enjoy your day.
  16. Little note ? It says to use latest dev at docs, specially at acars setup section. It says to use latest dev at GitHub where you downloaded the files (and it is not "little", in contrary it is bold and big) Download section here at this forum gives you latest dev. Using git pull and composer gets latest dev (if you want to use that path for installation) Several topics and guides at this forum advises to use latest dev. Yet you install beta.4 and then claim that here is a "little note" I think the problem is not that note's size. Enjoy latest dev and have safe flights
  17. Nope, if the listener is coded properly it will work. No need to add it to expenses or somewhere else. They are being checked when a pirep's finances are calculated (when it gets accepted and/or when you click recalculate finances button). What I can think of now is; 1. Either the code of the custom expense you developed is wrong (thus being skipped by the core) 2. Or it is fine but the conditions you defined in it is not met, so it is not being applied Hope this info helps
  18. Probably you can't fix it 'cause looks like you are having a server side configuration problem. (Considering you followed the docs, defined the subdomain properly and your hosting company meets all requirements like php version + extensions, maria/mysql and apache version etc) The .htaccess and redirections defined in v7 core is ok, but this happens when the server config (either apache/nginx or any variant) is not correct. And by "not correct" I mean they can still work but they may have some custom, non compatible settings which are mostly defined by the hosting company (for some reason we may never know). If you are on a VPS service, you will have full control over your server side settings but in a shared hosting it is hard (almost impossible) to go that deep. Your only solution may be hoping that the hosting provider fixes those settings for you (which is hard 'cause it may effect other users on the same server etc). Hope you can figure out a solution. Good luck and God speed
  19. Hi, Great news, glad to hear that There are only two modules at the moment capable of providing Tours. 1. FsTours Module (search from youtube. Payware) 2. Disposable Extended Pack (check Downloads section of this forum for details. Donationware) Also, some months ago, a user at Discord wrote that he is working on a new module for tours (payware), but we did not see any news or announcements about it after that day Best wishes and safe flights
  20. Hello again Anselmo, Sorry I can not work like that for several reasons, if you can change the settings as I advised above and fix the wrong fields, I think it will work. UPDATE aircraft SET airport_id = 'LEMD', hub_id = NULL, mtow = NULL, zfw = NULL, fuel_on_board = NULL; * This query will place all your aircraft to Madrid and clean out other fields. Also, you can run above sql query within your database workbench (phpmyadmin or something similar) if you wish to fix the biggest problem regarding aircraft locations. But you still need to edit your settings, edit your subfleet fuel types and fix your airports. Having 27k airports is ok if you are flying to all of them. If you are not flying to an airport now, then there is no need to have it in your system. phpVms v7 can find/lookup and add airports automatically when needed. In the end it is your server and your system, you can even have 50k airports in that table and see how it effects your overall website performance Note; Fuel On Board field you see at aircraft table is just for display, you can not increase or decrease the fuel amount of an aircraft by changing that value. So editing it is not needed
  21. Does it fully support latest phpvms v7 ? I think it should be the main question here. If it is compatible, you may not need any server side (web) modules for it to work. This depends on how it is working of course, how it handles the va rules, requirements etc. But for reading bid/flight data and sending a pirep back to phpvms, it can just use API calls without needing a web module, so it can work.
  22. Hi Anselmo, I watched the video You did not showed us the settings (most important part is missing), so it is impossible to understand what is going on or how you changed the settings at admin side, what is restricted, what is allowed etc. Even though from that video, what I see was; 1. Your aircraft data is corrupt, it will cause problems; airport_id (current location) MUST be an ICAO code of an airport , you have 1 hub_id (Aircraft Hub) MUST be an ICAO of an airport, you have 1 mtow MUST be full weight like 78500, you have something like 78 zfw MUST be full weight like 58300, you have something like 25.4 2. Your subfleet data is not good, not bad like the aircraft but it is not ok. fuel_type should be 1 for all those aircraft, they do use JET A1, not 100LL (Avgas) General Aviation fuel. You can remove the cargo and fuel capacities and gross weight, they are not used at all 3. Your airports does not look good, lots of the flags are missing and this happens when your airport data is not compatible with phpvms v7. Most probably your country values are not right to begin with, it will cause problems in future. Specially if you want to keep using Disposable addons. 4. Check admin > config > settings , at pireps section of settings Disable Restrict Aircraft to Ranks Disable Restrict Aircraft by Type Ratings Disable Restrict Aircraft at Departure Also spare some time, read the guides (they are here at the forum) and fix the problems I wrote above. Additional info: You do not need to have 27755 airports in your database, only have what you need for better performance and management. (details are explained in the guides) Good luck and God speed
  23. <?php if (Auth::LoggedIn() == true) { ?> <div class="blueIce-block clearfix"> <div class="blueIce-blockheader"> <h3 class="t">Discord</h3> </div> <div class="blueIce-blockcontent" align="center"> <iframe src="https://discord.com/widget?id=937311209793912923&theme=dark" width="240" height="500" allowtransparency="true" frameborder="0" sandbox="allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts"></iframe> </div> </div> <?php } ?> Something like this should do the trick.
×
×
  • Create New...