mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-01-22 11:52:21 +01:00
Merge branch 'pre_inscription' into staging
This commit is contained in:
commit
35735a7405
@ -238,7 +238,10 @@ Application.Controllers.controller('ShowEventController', ['$scope', '$state', '
|
|||||||
$scope.changeNbPlaces = function (priceType) {
|
$scope.changeNbPlaces = function (priceType) {
|
||||||
let reservedPlaces = 0;
|
let reservedPlaces = 0;
|
||||||
if ($scope.event.event_type === 'family') {
|
if ($scope.event.event_type === 'family') {
|
||||||
reservedPlaces = $scope.reservations.reduce((sum, reservation) => {
|
const reservations = $scope.reservations.filter((reservation) => {
|
||||||
|
return !reservation.slots_reservations_attributes[0].canceled_at;
|
||||||
|
});
|
||||||
|
reservedPlaces = reservations.reduce((sum, reservation) => {
|
||||||
return sum + reservation.booking_users_attributes.length;
|
return sum + reservation.booking_users_attributes.length;
|
||||||
}, 0);
|
}, 0);
|
||||||
}
|
}
|
||||||
@ -742,7 +745,10 @@ Application.Controllers.controller('ShowEventController', ['$scope', '$state', '
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (const r of $scope.reservations) {
|
const reservations = $scope.reservations.filter((reservation) => {
|
||||||
|
return !reservation.slots_reservations_attributes[0].canceled_at;
|
||||||
|
});
|
||||||
|
for (const r of reservations) {
|
||||||
for (const user of r.booking_users_attributes) {
|
for (const user of r.booking_users_attributes) {
|
||||||
const key = user.booked_type === 'User' ? `user_${user.booked_id}` : `child_${user.booked_id}`;
|
const key = user.booked_type === 'User' ? `user_${user.booked_id}` : `child_${user.booked_id}`;
|
||||||
if (key === userKey) {
|
if (key === userKey) {
|
||||||
@ -784,7 +790,10 @@ Application.Controllers.controller('ShowEventController', ['$scope', '$state', '
|
|||||||
*/
|
*/
|
||||||
const updateNbReservePlaces = function () {
|
const updateNbReservePlaces = function () {
|
||||||
if ($scope.event.event_type === 'family' && $scope.ctrl.member.id) {
|
if ($scope.event.event_type === 'family' && $scope.ctrl.member.id) {
|
||||||
const reservedPlaces = $scope.reservations.reduce((sum, reservation) => {
|
const reservations = $scope.reservations.filter((reservation) => {
|
||||||
|
return !reservation.slots_reservations_attributes[0].canceled_at;
|
||||||
|
});
|
||||||
|
const reservedPlaces = reservations.reduce((sum, reservation) => {
|
||||||
return sum + reservation.booking_users_attributes.length;
|
return sum + reservation.booking_users_attributes.length;
|
||||||
}, 0);
|
}, 0);
|
||||||
const maxPlaces = $scope.children.length + 1 - reservedPlaces;
|
const maxPlaces = $scope.children.length + 1 - reservedPlaces;
|
||||||
|
@ -69,13 +69,17 @@ class ReservationConfirmPaymentService
|
|||||||
[@reservation],
|
[@reservation],
|
||||||
@reservation.user
|
@reservation.user
|
||||||
)
|
)
|
||||||
return invoice if Setting.get('prevent_invoices_zero') && price[:total].zero?
|
if Setting.get('prevent_invoices_zero') && price[:total].zero?
|
||||||
|
@reservation.slots_reservations.first.update(is_confirm: true)
|
||||||
|
return invoice
|
||||||
|
end
|
||||||
|
|
||||||
ActiveRecord::Base.transaction do
|
ActiveRecord::Base.transaction do
|
||||||
WalletService.debit_user_wallet(invoice, @reservation.user)
|
WalletService.debit_user_wallet(invoice, @reservation.user)
|
||||||
|
|
||||||
invoice.save
|
invoice.save
|
||||||
invoice.post_save
|
invoice.post_save
|
||||||
|
@reservation.slots_reservations.first.update(is_confirm: true)
|
||||||
end
|
end
|
||||||
invoice
|
invoice
|
||||||
end
|
end
|
||||||
|
@ -88,7 +88,7 @@ json.events_reservations @member.reservations.where(reservable_type: 'Event').jo
|
|||||||
json.event_title sr.reservation.reservable.title
|
json.event_title sr.reservation.reservable.title
|
||||||
json.event_pre_registration sr.reservation.reservable.pre_registration
|
json.event_pre_registration sr.reservation.reservable.pre_registration
|
||||||
json.is_valid sr.is_valid
|
json.is_valid sr.is_valid
|
||||||
json.is_paid sr.reservation.invoice_items.count.positive?
|
json.is_paid sr.is_confirm
|
||||||
json.amount sr.reservation.invoice_items.sum(:amount)
|
json.amount sr.reservation.invoice_items.sum(:amount)
|
||||||
json.canceled_at sr.canceled_at
|
json.canceled_at sr.canceled_at
|
||||||
json.booking_users_attributes sr.reservation.booking_users.order(booked_type: :desc) do |bu|
|
json.booking_users_attributes sr.reservation.booking_users.order(booked_type: :desc) do |bu|
|
||||||
|
@ -43,4 +43,4 @@ json.booking_users_attributes reservation.booking_users.order(booked_type: :desc
|
|||||||
json.age ((Time.zone.now - bu.booked.birthday.to_time) / 1.year.seconds).floor if bu.booked_type == 'Child'
|
json.age ((Time.zone.now - bu.booked.birthday.to_time) / 1.year.seconds).floor if bu.booked_type == 'Child'
|
||||||
end
|
end
|
||||||
json.is_valid reservation.slots_reservations[0].is_valid
|
json.is_valid reservation.slots_reservations[0].is_valid
|
||||||
json.is_paid reservation.invoice_items.count.positive?
|
json.is_paid reservation.slots_reservations[0].is_confirm
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
# add is_confirm to slots_reservations
|
||||||
|
class AddIsConfirmToSlotsReservations < ActiveRecord::Migration[7.0]
|
||||||
|
def up
|
||||||
|
add_column :slots_reservations, :is_confirm, :boolean
|
||||||
|
SlotsReservation.reset_column_information
|
||||||
|
SlotsReservation.all.each do |sr|
|
||||||
|
sr.update_column(:is_confirm, true) if sr.is_valid && sr.reservation.invoice_items.count.positive?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
remove_column :slots_reservations, :is_confirm
|
||||||
|
end
|
||||||
|
end
|
@ -2240,6 +2240,41 @@ CREATE SEQUENCE public.payment_gateway_objects_id_seq
|
|||||||
ALTER SEQUENCE public.payment_gateway_objects_id_seq OWNED BY public.payment_gateway_objects.id;
|
ALTER SEQUENCE public.payment_gateway_objects_id_seq OWNED BY public.payment_gateway_objects.id;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: payment_infos; Type: TABLE; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE public.payment_infos (
|
||||||
|
id bigint NOT NULL,
|
||||||
|
data jsonb,
|
||||||
|
state character varying,
|
||||||
|
payment_for character varying,
|
||||||
|
service character varying,
|
||||||
|
statistic_profile_id bigint,
|
||||||
|
created_at timestamp(6) without time zone NOT NULL,
|
||||||
|
updated_at timestamp(6) without time zone NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: payment_infos_id_seq; Type: SEQUENCE; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE SEQUENCE public.payment_infos_id_seq
|
||||||
|
START WITH 1
|
||||||
|
INCREMENT BY 1
|
||||||
|
NO MINVALUE
|
||||||
|
NO MAXVALUE
|
||||||
|
CACHE 1;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: payment_infos_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER SEQUENCE public.payment_infos_id_seq OWNED BY public.payment_infos.id;
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: payment_schedule_items; Type: TABLE; Schema: public; Owner: -
|
-- Name: payment_schedule_items; Type: TABLE; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@ -3315,7 +3350,8 @@ CREATE TABLE public.slots_reservations (
|
|||||||
ex_end_at timestamp without time zone,
|
ex_end_at timestamp without time zone,
|
||||||
canceled_at timestamp without time zone,
|
canceled_at timestamp without time zone,
|
||||||
offered boolean DEFAULT false,
|
offered boolean DEFAULT false,
|
||||||
is_valid boolean
|
is_valid boolean,
|
||||||
|
is_confirm boolean
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
@ -4869,6 +4905,13 @@ ALTER TABLE ONLY public.organizations ALTER COLUMN id SET DEFAULT nextval('publi
|
|||||||
ALTER TABLE ONLY public.payment_gateway_objects ALTER COLUMN id SET DEFAULT nextval('public.payment_gateway_objects_id_seq'::regclass);
|
ALTER TABLE ONLY public.payment_gateway_objects ALTER COLUMN id SET DEFAULT nextval('public.payment_gateway_objects_id_seq'::regclass);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: payment_infos id; Type: DEFAULT; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY public.payment_infos ALTER COLUMN id SET DEFAULT nextval('public.payment_infos_id_seq'::regclass);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: payment_schedule_items id; Type: DEFAULT; Schema: public; Owner: -
|
-- Name: payment_schedule_items id; Type: DEFAULT; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@ -5798,6 +5841,14 @@ ALTER TABLE ONLY public.payment_gateway_objects
|
|||||||
ADD CONSTRAINT payment_gateway_objects_pkey PRIMARY KEY (id);
|
ADD CONSTRAINT payment_gateway_objects_pkey PRIMARY KEY (id);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: payment_infos payment_infos_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY public.payment_infos
|
||||||
|
ADD CONSTRAINT payment_infos_pkey PRIMARY KEY (id);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: payment_schedule_items payment_schedule_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
-- Name: payment_schedule_items payment_schedule_items_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@ -6996,6 +7047,13 @@ CREATE INDEX index_payment_gateway_objects_on_item_type_and_item_id ON public.pa
|
|||||||
CREATE INDEX index_payment_gateway_objects_on_payment_gateway_object_id ON public.payment_gateway_objects USING btree (payment_gateway_object_id);
|
CREATE INDEX index_payment_gateway_objects_on_payment_gateway_object_id ON public.payment_gateway_objects USING btree (payment_gateway_object_id);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: index_payment_infos_on_statistic_profile_id; Type: INDEX; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE INDEX index_payment_infos_on_statistic_profile_id ON public.payment_infos USING btree (statistic_profile_id);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: index_payment_schedule_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -
|
-- Name: index_payment_schedule_items_on_invoice_id; Type: INDEX; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@ -7820,6 +7878,14 @@ ALTER TABLE ONLY public.payment_schedules
|
|||||||
ADD CONSTRAINT fk_rails_00308dc223 FOREIGN KEY (wallet_transaction_id) REFERENCES public.wallet_transactions(id);
|
ADD CONSTRAINT fk_rails_00308dc223 FOREIGN KEY (wallet_transaction_id) REFERENCES public.wallet_transactions(id);
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Name: payment_infos fk_rails_0308366a58; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||||
|
--
|
||||||
|
|
||||||
|
ALTER TABLE ONLY public.payment_infos
|
||||||
|
ADD CONSTRAINT fk_rails_0308366a58 FOREIGN KEY (statistic_profile_id) REFERENCES public.statistic_profiles(id);
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: cart_item_event_reservation_booking_users fk_rails_0964335a37; Type: FK CONSTRAINT; Schema: public; Owner: -
|
-- Name: cart_item_event_reservation_booking_users fk_rails_0964335a37; Type: FK CONSTRAINT; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
@ -9184,4 +9250,8 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|||||||
('20230718134350'),
|
('20230718134350'),
|
||||||
('20230720085857'),
|
('20230720085857'),
|
||||||
('20230728072726'),
|
('20230728072726'),
|
||||||
('20230728090257');
|
('20230728090257'),
|
||||||
|
('20230825101952'),
|
||||||
|
('20230831103208');
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user