PageSourceSearch

https://docs.phpvms.net/assets/js/3700dc92.6ebc74b6.js

js phpvms.net collected 2026-10-04 13:24:29 UTC 8,422 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkphpvms_docs=self.webpackChunkphpvms_docs||[]).push([[3663],{96702(e,n,a){a.r(n),a.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>s,toc:()=>h});const s=JSON.parse('{"id":"guides/finances","title":"Finances","description":"Journals","source":"@site/versioned_docs/version-v7.x/guides/finances.md","sourceDirName":"guides","slug":"/guides/finances","permalink":"/guides/finances","draft":false,"unlisted":false,"editUrl":"https://github.com/phpvms/docs/tree/master/versioned_docs/version-v7.x/guides/finances.md","tags":[],"version":"v7.x","frontMatter":{"id":"finances","title":"Finances"},"sidebar":"docs","previous":{"title":"Basics","permalink":"/guides/basics"},"next":{"title":"Uploading Files","permalink":"/installation/uploading"}}');var t=a(74848),r=a(28453);const i={id:"finances",title:"Finances"},l=void 0,o={},h=[{value:"Journals",id:"journals",level:2},{value:"Fares and Fare classes",id:"fares-and-fare-classes",level:2},{value:"Subfleet Fares",id:"subfleet-fares",level:3},{value:"Flight Fares",id:"flight-fares",level:3},{value:"Expenses",id:"expenses",level:2}];function d(e){const n={admonition:"admonition",code:"code",h2:"h2",h3:"h3",hr:"hr",li:"li",ol:"ol",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"journals",children:"Journals"}),"\n",(0,t.jsx)(n.p,{children:"Journals are created, which then hold transactions against those journals. A\njournal is assigned for:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:"Every airline"}),"\n",(0,t.jsx)(n.li,{children:"Every user"}),"\n"]}),"\n",(0,t.jsx)(n.p,{children:'The balance of any journal are the sum of its credits, which are then subtracted\nfrom those debits. The transactions also have "groups", which are used in the\nfinancial reports. With the journaling system, user\'s or airlines can be paid or\ncharged, with historical records being kept, and reports run on them.'}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"fares-and-fare-classes",children:"Fares and Fare classes"}),"\n",(0,t.jsx)(n.p,{children:"Fares are the different prices for seats paid for, by passengers. When a PIREP\nis filed, 3 places are checked for the price for a certain fare class:"}),"\n",(0,t.jsx)(n.p,{children:"How the parameters for a fare are determined:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"The fares that can be assigned are retrieved from the subfleet of the\naircraft that was flown"}),"\n",(0,t.jsx)(n.li,{children:"The flight is checked if it has an entry for that fare, and takes any\nparameters that were changed"}),"\n",(0,t.jsx)(n.li,{children:"The fare and values from the subfleet"}),"\n",(0,t.jsx)(n.li,{children:"Finally, from the fare itself"}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:['When the fare is added for a subfleet or on a flight, the values can be set to a\nnumber, or a percentage. The percentage will be from the base fare, and the\n"base" is ',(0,t.jsx)(n.code,{children:"100%"})," - so if you want to increase the fare price for a subfleet to\nbe 10% higher than the base fare for that class, set it to ",(0,t.jsx)(n.code,{children:"110%"}),". The\npercent-sign needs to be included for it to detect that you want to add a\npercentage."]}),"\n",(0,t.jsx)(n.p,{children:'The percentage override has an advantage - so you can add a base fare called\n"Economy" for $100, and on a certain flight, you can add that fare, and set it\nto "200%", so the price for that fare, on that flight, would be $200.'}),"\n",(0,t.jsx)(n.h3,{id:"subfleet-fares",children:"Subfleet Fares"}),"\n",(0,t.jsx)(n.p,{children:"Subfleets need to be assigned fares - these fares are shared across all the\naircraft in that subfleet. The different attributes of a fare - the cost, price\nand capacity, can be edited on a per-subfleet basis. One subfleet might have a\nlarger economy class than another, but they can share the same Economy fare\nthat's created."}),"\n",(0,t.jsx)(n.h3,{id:"flight-fares",children:"Flight Fares"}),"\n",(0,t.jsx)(n.p,{children:"If a fare is added to a flight, it will take precedence over the fares assigned\nto the subfleet."}),"\n",(0,t.jsx)(n.p,{children:"When a fare is assigned to a flight, the value it can be given is either a\nmonetary amount, or a multiplier. (e.g, 100, or 100%). The multiplier is applied\nfrom the subfleet amount, or the fare amount, if one isn't specified on the\nsubfleet. By default, if there is no value, it is assumed at 100% of the amount."}),"\n",(0,t.jsx)(n.p,{children:"If there are expected to be aircraft substitutions, you can add only the fares\nthat may apply. For example, on a normal route, you may only have an Economy and\nFirst Class fare. But perhaps an aircraft with an additional fare, Premium\nEconomy may be used. You can add Premium Economy to the flight, and set it to\neither a monetary amount, or to the multiplier, e.g, it might be set to 120%.\nWhen the PIREP is filed, for that flight, the seat prices for that flight, on\nthat aircraft, will be set to 120% of the base premium economy price."}),"\n",(0,t.jsx)(n.hr,{}),"\n",(0,t.jsx)(n.h2,{id:"expenses",children:"Expenses"}),"\n",(0,t.jsx)(n.p,{children:"Expenses are arbitrary charges, against either the airline or user. Expenses are\na debit line in the journal. There are multiple ways to define them, and can\nderived from multiple parts of the system. There are 3 types of expenses:"}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Flight - these are charged whenever a flight is flown. These also have an\noption to charge the user/pilot"}
1),"\n",(0,t.jsx)(n.li,{children:"Daily - these expenses are charged daily"}),"\n",(0,t.jsx)(n.li,{children:"Monthly - these are charged monthly"}),"\n"]}),"\n",(0,t.jsx)(n.admonition,{title:"The daily and monthly charges depend on the cron being setup properly",type:"note"}),"\n",(0,t.jsx)(n.p,{children:'Aside from the general expenses (the "Expenses" navigation option in the admin\npanel), expenses can also be added on different objects, allowing you to be as\nin-depth as you want.'}),"\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsxs)(n.li,{children:["Aircraft","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:'Flight - when this aircraft is used on a flight (e.g, a "Rental" expense\nthat\'s charged to a user, or a catering charge)'}),"\n",(0,t.jsx)(n.li,{children:'Daily - charged daily, regardless of use (e.g, "Cleaning")'}),"\n",(0,t.jsx)(n.li,{children:"Monthly - lease costs, MRO costs"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Airports","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Flight - only applied on the arrival airport (e.g, landing fees). Can also\nbe charged to a user"}),"\n",(0,t.jsx)(n.li,{children:"Daily - charged daily, regardless of use"}),"\n",(0,t.jsx)(n.li,{children:"Monthly - gate charges, other fees"}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["Subfleets","\n",(0,t.jsxs)(n.ol,{children:["\n",(0,t.jsx)(n.li,{children:"Flight - when an aircraft in this subfleet is used on a flight, can also\nbe charged to a user"}),"\n",(0,t.jsx)(n.li,{children:"Daily - charged, regardless of use"}),"\n",(0,t.jsx)(n.li,{children:"Monthly"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,t.jsxs)(n.p,{children:["In addition to being able to add expenses to these objects, you can also create\ncustom expenses by adding a ",(0,t.jsx)(n.code,{children:"Listener"})," for the ",(0,t.jsx)(n.code,{children:"Expenses"})," event.\n",(0,t.jsx)(n.code,{children:"app/Listeners/ExpenseListener"})," has an example - this allows you to have extra\nflexibility, for example, if you want to charge a user for excessive landing\nrates or if the flight time is longer than the planned flight time. These custom\n",(0,t.jsx)(n.code,{children:"Expenses"})," events can also be used for monthly and daily expenses."]})]})}function c(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},28453(e,n,a){a.d(n,{R:()=>i,x:()=>l});var s=a(96540);const t={},r=s.createContext(t);function i(e){const n=s.useContext(r);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.