Tarifs
Gestion des tarifs
Reprise de « Add rates » (post_rates) et de la copie
(copy_rates). La saisie est additive : un bloc
n efface rien, il recouvre les precedents sur les jours
qu il couvre. Il n existe ni modification ni suppression d un bloc dans le
systeme d origine, et aucune n est ajoutee ici.
Saisir un bloc tarifaire — equivaut a « Add rates »
Les deux bornes sont incluses :
$end->modify('+1 day') avant le DatePeriod de
gatherRateCalendar fait entrer end dans la plage.
Le masque est un filtre, jamais une priorite : un bloc
« samedi, dimanche » ne touche aucun lundi, meme saisi en dernier.
Copier les tarifs d une categorie vers une autre
Sans date : copie totale. Reprise de
copyRatesFromVilla : chaque ligne de la source est recopiee
telle quelle — bornes, masque, min stay
— avec l increment ajoute au montant. L increment peut etre
negatif.
Avec date_min ou date_max : copie par
plage. Reprise de copyRatesFromVillaByDateRange,
qui est une autre mecanique : la source est resolue
jour par jour sur la plage, les jours consecutifs de
meme tarif et meme min stay sont regroupes, et chaque groupe
devient un bloc dont le masque est force a
1;2;3;4;5;6;7. Les deux bornes sont incluses ; une borne
laissee vide prend celle de la source. Un jour que seul le tarif par
defaut de l hebergement couvre n est pas copie. Rien n est efface sur
la cible. S il n y a aucun tarif a copier sur la plage, la copie est
refusee.
Deux ecarts assumes avec la copie totale d origine. Elle
commence par CalendarRate::where('ppttypeid', $cible)->delete(),
ici rien n est efface : les lignes copiees recouvrent celles de la cible
la ou elles s appliquent, et les autres survivent. Elle recopie aussi
default_rate_amount, ce qui n est pas fait ici.
Moving Rate— l evolution automatique, un delta par jour d envoi
Sept lignes pour tout le parc : ni villa, ni domaine, ni categorie. Le delta est un montant en bahts, pas un pourcentage, et il peut etre negatif. Il s ajoute au tarif resolu sans jamais le reecrire : le tarif saisi a la main reste la base, et aucune ligne tarifaire n est modifiee. Il n y a donc pas de concurrence entre tarif manuel et tarif automatique — il y a une somme.
Le jour est celui de l envoi, pas celui de la nuit.
Chaque jour, entre 08:00 et 11:00 (heure de Thailande), le flux
tarifaire part vers Channex — l equivalent de
cm:post_rates --withMovingRates. Il lit le delta du
jour ou il part et l ajoute a l identique a
toutes les nuits qu il envoie : un flux parti un jeudi ajoute
le delta du jeudi a la nuit du samedi suivant comme a celle du mardi
d apres. Un delta modifie ici part donc au prochain flux de son jour.
Le Planning, la grille ci-dessous et l envoi qui suit l enregistrement
d un bloc ou d une copie montrent le tarif sans delta.
On ne peut ni ajouter ni supprimer un jour : l ecran d origine pose
denyAccess('create'), denyAccess('delete'), et
son champ week_day est readonly. Seul le delta
se modifie.
Blocs saisis — dans l ordre d election, le dernier gagne
Grille resolue — le tarif effectif de chaque nuit, comme le Planning
ms N = min stay