WIP: toulouse-maelis: prendre en compte le convoyage (arrêts de bus) sur l'inscription (#74762) #115

Closed
nroche wants to merge 4 commits from wip/74762-parsifal-conveyance into main
6 changed files with 616 additions and 120 deletions

View File

@ -75,8 +75,26 @@ SUBSCRIPTION_SCHEMA = {
'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$',
},
'recurrent_week': {
'type': 'array',
'items': {'type': 'string'},
'oneOf': [
{
'type': 'array',
'items': {'type': 'string'},
},
{'type': 'null'},
],
},
'conveyanceSubscribe': {
'type': 'object',
'properties': {
'idPlaceMorning': {
'type': 'string',
'pattern': '^[A-Za-z0-9]*$',
},
'idPlaceAfternoon': {
'type': 'string',
'pattern': '^[A-Za-z0-9]*$',
},
},
},
},
'required': [
@ -87,6 +105,7 @@ SUBSCRIPTION_SCHEMA = {
'start_date',
'end_date',
],
'unflatten': True,
}
DELETE_BASKET_LINE_SCHEMA = {

View File

@ -2697,6 +2697,14 @@ class ToulouseMaelis(BaseResource, HTTPResource):
}
)
response['recurrent_week'] = recurrent_week
if response.get('conveyance'):
for part_of_day in response['conveyance'].values():
for bus_stop in part_of_day['depositPlaceList'] or []:
place = bus_stop['place']
bus_stop['id'] = place['id']
bus_stop['text'] = place['lib2'] or place['lib']
return {'data': response}
@endpoint(
@ -2720,6 +2728,36 @@ class ToulouseMaelis(BaseResource, HTTPResource):
family_id=None,
):
family_id = family_id or self.get_link(NameID).family_id
params = {
'numDossier': family_id,
'numPerson': post_data['person_id'],
'activityUnitPlace': {
'idActivity': post_data['activity_id'],
'idUnit': post_data['unit_id'],
'idPlace': post_data['place_id'],
},
}
subscription_info = self.call('Activity', 'getPersonUnitInfo', getPersonUnitInfoRequestBean=params)
if post_data.get('conveyanceSubscribe') and (
post_data['conveyanceSubscribe'].get('idPlaceMorning')
or post_data['conveyanceSubscribe'].get('idPlaceAfternoon')
):
if not subscription_info.get('conveyance'):
raise APIError('no conveyance defined on this activity')
for payload_key, info_key in [
('idPlaceMorning', 'morningJourney'),
('idPlaceAfternoon', 'afternoonJourney'),
]:
if post_data['conveyanceSubscribe'].get(payload_key):
info_bus_ids = [
x['place']['id']
for x in subscription_info['conveyance'][info_key]['depositPlaceList']
]
payload_bus_id = post_data['conveyanceSubscribe'][payload_key]
if not payload_bus_id in info_bus_ids:
raise APIError(
'no "%s" place defined on "%s" conveyance' % (payload_bus_id, info_key)
)
recurrent_week = []
for item in post_data.get('recurrent_week') or []:
@ -2741,6 +2779,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
'dateStartSubscribe': post_data['start_date'],
'dateEndSubscribe': post_data['end_date'],
'dayWeekInfoList': recurrent_week,
'conveyanceSubscribe': post_data.get('conveyanceSubscribe'),
}
}
response = self.call('Activity', 'addPersonUnitBasket', **payload)

View File

@ -1,5 +1,15 @@
<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="activity.ws.maelis.sigec.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="ActivityService" targetNamespace="activity.ws.maelis.sigec.com">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="bean.persistence.ws.maelis.sigec.com" version="1.0">
<xs:complexType name="itemBean">
<xs:sequence>
<xs:element minOccurs="0" name="code" type="xs:string"/>
<xs:element minOccurs="0" name="libelle" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="bean.persistence.school.ws.maelis.sigec.com" xmlns:ns1="activity.ws.maelis.sigec.com" targetNamespace="bean.persistence.school.ws.maelis.sigec.com" version="1.0">
<xs:import namespace="activity.ws.maelis.sigec.com"/>
@ -56,12 +66,34 @@
</xs:complexType>
</xs:schema>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="bean.persistence.activity.ws.maelis.sigec.com" xmlns:ns2="bean.persistence.school.ws.maelis.sigec.com" xmlns:ns1="activity.ws.maelis.sigec.com" targetNamespace="bean.persistence.activity.ws.maelis.sigec.com" version="1.0">
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="activity.ws.maelis.sigec.com" targetNamespace="bean.persistence.ape.ws.maelis.sigec.com" version="1.0">
<xs:import namespace="activity.ws.maelis.sigec.com"/>
<xs:complexType name="indicatorValueAddUpdBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecRequestBean">
<xs:sequence>
<xs:element name="code" type="xs:string"/>
<xs:element minOccurs="0" name="note" type="xs:string"/>
<xs:element minOccurs="0" name="choice" type="xs:string"/>
<xs:element name="isActive" type="xs:boolean"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="bean.persistence.activity.ws.maelis.sigec.com" xmlns:ns4="bean.persistence.ws.maelis.sigec.com" xmlns:ns3="bean.persistence.school.ws.maelis.sigec.com" xmlns:ns2="activity.ws.maelis.sigec.com" xmlns:ns1="bean.persistence.ape.ws.maelis.sigec.com" targetNamespace="bean.persistence.activity.ws.maelis.sigec.com" version="1.0">
<xs:import namespace="bean.persistence.ape.ws.maelis.sigec.com"/>
<xs:import namespace="activity.ws.maelis.sigec.com"/>
<xs:import namespace="bean.persistence.school.ws.maelis.sigec.com"/>
<xs:import namespace="bean.persistence.ws.maelis.sigec.com"/>
<xs:complexType name="addChildSubscribeRequestBean">
<xs:sequence>
<xs:element name="numFamily" type="xs:int"/>
@ -72,7 +104,8 @@
<xs:element name="dateStartSubscribe" type="xs:dateTime"/>
<xs:element name="dateEndSubscribe" type="xs:dateTime"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="dayWeekInfoList" nillable="true" type="tns:dayWeekInfoBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="indicatorList" nillable="true" type="tns:indicatorBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="indicatorList" nillable="true" type="ns1:indicatorValueAddUpdBean"/>
<xs:element minOccurs="0" name="conveyanceSubscribe" type="tns:conveyanceSubscribeBean"/>
</xs:sequence>
</xs:complexType>
@ -85,14 +118,12 @@
</xs:sequence>
</xs:complexType>
<xs:complexType name="indicatorBean">
<xs:complexType name="conveyanceSubscribeBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecBean">
<xs:extension base="ns2:abstractSpecRequestBean">
<xs:sequence>
<xs:element minOccurs="0" name="code" type="xs:string"/>
<xs:element minOccurs="0" name="libelle" type="xs:string"/>
<xs:element minOccurs="0" name="note" type="xs:string"/>
<xs:element minOccurs="0" name="choice" type="xs:string"/>
<xs:element minOccurs="0" name="idPlaceMorning" type="xs:string"/>
<xs:element minOccurs="0" name="idPlaceAfternoon" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
@ -100,20 +131,20 @@
<xs:complexType name="addChildUnitBasketResponseBean">
<xs:sequence>
<xs:element minOccurs="0" name="controlResult" type="ns1:controlResultBean"/>
<xs:element minOccurs="0" name="basket" type="ns1:basketBean"/>
<xs:element minOccurs="0" name="controlResult" type="ns2:controlResultBean"/>
<xs:element minOccurs="0" name="basket" type="ns2:basketBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="addChildUnitLstWaitResponseBean">
<xs:sequence>
<xs:element minOccurs="0" name="controlResult" type="ns1:controlResultBean"/>
<xs:element minOccurs="0" name="controlResult" type="ns2:controlResultBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="getPersonScheduleRequestBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecRequestBean">
<xs:extension base="ns2:abstractSpecRequestBean">
<xs:sequence>
<xs:element name="numDossier" type="xs:int"/>
<xs:element minOccurs="0" name="numPerson" type="xs:int"/>
@ -127,7 +158,7 @@
<xs:complexType name="getPersonScheduleResultBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecResultBean">
<xs:extension base="ns2:abstractSpecResultBean">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="personScheduleList" nillable="true" type="tns:personScheduleBean"/>
</xs:sequence>
@ -201,8 +232,8 @@
<xs:element minOccurs="0" name="day" type="xs:dateTime"/>
<xs:element name="scheduledPresence" type="xs:int"/>
<xs:element name="realPresence" type="xs:int"/>
<xs:element form="qualified" minOccurs="0" name="status" type="ns1:dayInfoStatus"/>
<xs:element form="qualified" minOccurs="0" name="action" type="ns1:dayInfoAction"/>
<xs:element form="qualified" minOccurs="0" name="status" type="ns2:dayInfoStatus"/>
<xs:element form="qualified" minOccurs="0" name="action" type="ns2:dayInfoAction"/>
<xs:element minOccurs="0" name="hasPlace" type="xs:boolean"/>
<xs:element minOccurs="0" name="absence" type="tns:absenceBean"/>
</xs:sequence>
@ -263,13 +294,13 @@
<xs:element minOccurs="0" name="birthControl" type="xs:string"/>
<xs:element minOccurs="0" name="email" type="xs:string"/>
<xs:element minOccurs="0" name="schoolYear" type="xs:int"/>
<xs:element minOccurs="0" name="calendarGeneration" type="ns1:activityCalendarGenerationBean"/>
<xs:element minOccurs="0" name="calendarGeneration" type="ns2:activityCalendarGenerationBean"/>
<xs:element minOccurs="0" name="dateStartPubli" type="xs:dateTime"/>
<xs:element minOccurs="0" name="dateEndPubli" type="xs:dateTime"/>
<xs:element minOccurs="0" name="schoolControl" type="xs:string"/>
<xs:element minOccurs="0" name="calendarMode" type="xs:string"/>
<xs:element minOccurs="0" name="activityType" type="tns:activityTypeBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="weeklyCalendarActivityList" nillable="true" type="ns2:weeklyCalendarActivityBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="weeklyCalendarActivityList" nillable="true" type="ns3:weeklyCalendarActivityBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="activityPeriodList" nillable="true" type="tns:activityPeriodCapacityBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="activityBusList" nillable="true" type="tns:activityUnitPlaceBean"/>
</xs:sequence>
@ -277,11 +308,11 @@
<xs:complexType name="activityPeriodCapacityBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecBean">
<xs:extension base="ns2:abstractSpecBean">
<xs:sequence>
<xs:element minOccurs="0" name="period" type="ns1:periodBean"/>
<xs:element minOccurs="0" name="period" type="ns2:periodBean"/>
<xs:element minOccurs="0" name="capacity" type="xs:int"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="calendCapacityExceptList" nillable="true" type="ns1:calendCapacityBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="calendCapacityExceptList" nillable="true" type="ns2:calendCapacityBean"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
@ -289,9 +320,9 @@
<xs:complexType name="activityUnitPlaceBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecBean">
<xs:extension base="ns2:abstractSpecBean">
<xs:sequence>
<xs:element minOccurs="0" name="activity" type="ns1:activity3Bean"/>
<xs:element minOccurs="0" name="activity" type="ns2:activity3Bean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="unitList" nillable="true" type="tns:unitPlaceBean"/>
</xs:sequence>
</xs:extension>
@ -300,7 +331,7 @@
<xs:complexType name="unitPlaceBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecBean">
<xs:extension base="ns2:abstractSpecBean">
<xs:sequence>
<xs:element minOccurs="0" name="idUnit" type="xs:string"/>
<xs:element minOccurs="0" name="libelle" type="xs:string"/>
@ -316,12 +347,15 @@
<xs:element minOccurs="0" name="lib" type="xs:string"/>
<xs:element minOccurs="0" name="lib2" type="xs:string"/>
<xs:element minOccurs="0" name="adresse" type="tns:adressBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="activityPeriscolList" nillable="true" type="tns:activityPeriscolBean"/>
<xs:element minOccurs="0" name="obs1" type="xs:string"/>
<xs:element minOccurs="0" name="obs2" type="xs:string"/>
<xs:element minOccurs="0" name="numTel" type="xs:string"/>
<xs:element minOccurs="0" name="latitude" type="xs:double"/>
<xs:element minOccurs="0" name="longitude" type="xs:double"/>
<xs:element minOccurs="0" name="startHour" type="xs:string"/>
<xs:element minOccurs="0" name="endHour" type="xs:string"/>
<xs:element minOccurs="0" name="startHour2" type="xs:string"/>
<xs:element minOccurs="0" name="endHour2" type="xs:string"/>
</xs:sequence>
</xs:complexType>
@ -336,30 +370,6 @@
</xs:sequence>
</xs:complexType>
<xs:complexType name="activityPeriscolBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecBean">
<xs:sequence>
<xs:element minOccurs="0" name="activity" type="ns1:activity3Bean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="activityPeriodList" nillable="true" type="tns:activityPeriodCapacityBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="unitList" nillable="true" type="tns:unitPeriscolBean"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="unitPeriscolBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecBean">
<xs:sequence>
<xs:element minOccurs="0" name="idUnit" type="xs:string"/>
<xs:element minOccurs="0" name="libelle" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="periodList" nillable="true" type="ns1:periodBean"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="unitPortailBean">
<xs:sequence>
<xs:element minOccurs="0" name="idUnit" type="xs:string"/>
@ -423,7 +433,7 @@
<xs:complexType name="getFamilyBasketResultBean">
<xs:sequence>
<xs:element minOccurs="0" name="basket" type="ns1:basketBean"/>
<xs:element minOccurs="0" name="basket" type="ns2:basketBean"/>
</xs:sequence>
</xs:complexType>
@ -438,11 +448,11 @@
<xs:complexType name="activityUnitPlaceBasketBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecBean">
<xs:extension base="ns2:abstractSpecBean">
<xs:sequence>
<xs:element name="idActivity" type="xs:string"/>
<xs:element name="idPlace" type="xs:string"/>
<xs:element name="idUnit" type="xs:string"/>
<xs:element name="idPlace" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
@ -450,18 +460,19 @@
<xs:complexType name="getPersonUnitInfoResponseBean">
<xs:sequence>
<xs:element minOccurs="0" name="controlResult" type="ns1:controlResultBean"/>
<xs:element minOccurs="0" name="controlResult" type="ns2:controlResultBean"/>
<xs:element minOccurs="0" name="personInfo" type="tns:personInfoBean"/>
<xs:element minOccurs="0" name="activity" type="tns:activity2Bean"/>
<xs:element minOccurs="0" name="unit" type="tns:unitInfoBean"/>
<xs:element minOccurs="0" name="place" type="tns:placeBasketBean"/>
<xs:element minOccurs="0" name="calendarGeneration" type="ns1:activityCalendarGenerationBean"/>
<xs:element minOccurs="0" name="calendarGeneration" type="ns2:activityCalendarGenerationBean"/>
<xs:element minOccurs="0" name="weeklyCalendarActivity" type="tns:weeklyCalendarSubscribeUnitBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="openDayList" nillable="true" type="tns:dayOpenBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="unitScheduleList" nillable="true" type="ns2:unitScheduleBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="unitScheduleList" nillable="true" type="ns3:unitScheduleBean"/>
<xs:element minOccurs="0" name="billingInformation" type="tns:billingInformationBean"/>
<xs:element minOccurs="0" name="action" type="ns1:subscribeAction"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="indicatorList" nillable="true" type="tns:indicatorBean"/>
<xs:element minOccurs="0" name="action" type="ns2:subscribeAction"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="indicatorList" nillable="true" type="tns:indicatorReadBean"/>
<xs:element minOccurs="0" name="conveyance" type="tns:conveyanceInfoBean"/>
</xs:sequence>
</xs:complexType>
@ -484,6 +495,7 @@
<xs:element minOccurs="0" name="activityType" type="tns:activityTypeBean"/>
<xs:element minOccurs="0" name="typInsPortal" type="xs:string"/>
<xs:element minOccurs="0" name="paiementPortal" type="xs:string"/>
<xs:element minOccurs="0" name="coderegie" type="xs:string"/>
</xs:sequence>
</xs:complexType>
@ -501,7 +513,7 @@
<xs:complexType name="placeInfoBean">
<xs:sequence>
<xs:element minOccurs="0" name="place" type="tns:placeBasketBean"/>
<xs:element minOccurs="0" name="capacityInfo" type="ns1:controlResultBean"/>
<xs:element minOccurs="0" name="capacityInfo" type="ns2:controlResultBean"/>
<xs:element minOccurs="0" name="idIns" type="xs:string"/>
</xs:sequence>
</xs:complexType>
@ -511,20 +523,24 @@
<xs:element minOccurs="0" name="idPlace" type="xs:string"/>
<xs:element minOccurs="0" name="lib1" type="xs:string"/>
<xs:element minOccurs="0" name="lib2" type="xs:string"/>
<xs:element minOccurs="0" name="adresse" type="tns:adressBean"/>
<xs:element minOccurs="0" name="idIns" type="xs:string"/>
<xs:element minOccurs="0" name="etatIns" type="xs:string"/>
<xs:element minOccurs="0" name="ageStart" type="xs:dateTime"/>
<xs:element minOccurs="0" name="ageEnd" type="xs:dateTime"/>
<xs:element minOccurs="0" name="ctrlPlaces" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="listBlocNoteBean" nillable="true" type="tns:blocNoteBean"/>
<xs:element minOccurs="0" name="longitude" type="xs:double"/>
<xs:element minOccurs="0" name="latitude" type="xs:double"/>
<xs:element minOccurs="0" name="startHour" type="xs:string"/>
<xs:element minOccurs="0" name="endHour" type="xs:string"/>
<xs:element minOccurs="0" name="startHour2" type="xs:string"/>
<xs:element minOccurs="0" name="endHour2" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="blocNoteBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecBean">
<xs:extension base="ns2:abstractSpecBean">
<xs:sequence>
<xs:element minOccurs="0" name="idBlocNote" type="xs:string"/>
<xs:element minOccurs="0" name="note" type="xs:string"/>
@ -556,15 +572,63 @@
<xs:complexType name="billingInformationBean">
<xs:sequence>
<xs:element minOccurs="0" name="modeFact" type="ns1:modeFactBean"/>
<xs:element minOccurs="0" name="modeFact" type="ns2:modeFactBean"/>
<xs:element minOccurs="0" name="quantity" type="xs:double"/>
<xs:element minOccurs="0" name="unitPrice" type="xs:double"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="indicatorReadBean">
<xs:complexContent>
<xs:extension base="ns2:abstractSpecResultBean">
<xs:sequence>
<xs:element minOccurs="0" name="code" type="xs:string"/>
<xs:element minOccurs="0" name="libelle" type="xs:string"/>
<xs:element minOccurs="0" name="typeDesc" type="ns2:indicatorTypeDescEnum"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="choiceList" nillable="true" type="ns4:itemBean"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="conveyanceInfoBean">
<xs:complexContent>
<xs:extension base="ns2:abstractSpecResultBean">
<xs:sequence>
<xs:element minOccurs="0" name="morningJourney" type="tns:journeyInfoBean"/>
<xs:element minOccurs="0" name="afternoonJourney" type="tns:journeyInfoBean"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="journeyInfoBean">
<xs:complexContent>
<xs:extension base="ns2:abstractSpecResultBean">
<xs:sequence>
<xs:element minOccurs="0" name="libelle" type="xs:string"/>
<xs:element minOccurs="0" name="comment" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="depositPlaceList" nillable="true" type="tns:depositPlaceBean"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="depositPlaceBean">
<xs:complexContent>
<xs:extension base="ns2:abstractSpecResultBean">
<xs:sequence>
<xs:element minOccurs="0" name="numOrdre" type="xs:int"/>
<xs:element minOccurs="0" name="place" type="tns:placeBean"/>
<xs:element minOccurs="0" name="comment" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="updatePersonScheduleRequestBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecRequestBean">
<xs:extension base="ns2:abstractSpecRequestBean">
<xs:sequence>
<xs:element name="numDossier" type="xs:int"/>
<xs:element maxOccurs="unbounded" name="unitPersonDayInfoList" type="tns:unitPersonDayInfo"/>
@ -575,13 +639,13 @@
<xs:complexType name="unitPersonDayInfo">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecRequestBean">
<xs:extension base="ns2:abstractSpecRequestBean">
<xs:sequence>
<xs:element name="numPerson" type="xs:int"/>
<xs:element name="idAct" type="xs:string"/>
<xs:element name="idUni" type="xs:string"/>
<xs:element name="date" type="xs:dateTime"/>
<xs:element name="action" type="ns1:dayInfoAction"/>
<xs:element name="action" type="ns2:dayInfoAction"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
@ -589,7 +653,7 @@
<xs:complexType name="updatePersonScheduleResultBean">
<xs:complexContent>
<xs:extension base="ns1:abstractSpecResultBean">
<xs:extension base="ns2:abstractSpecResultBean">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="errorMessages" nillable="true" type="xs:string"/>
</xs:sequence>
@ -620,7 +684,7 @@
<xs:complexType name="deleteChildUnitBasketResultBean">
<xs:sequence>
<xs:element minOccurs="0" name="basket" type="ns1:basketBean"/>
<xs:element minOccurs="0" name="basket" type="ns2:basketBean"/>
</xs:sequence>
</xs:complexType>
@ -628,10 +692,12 @@
<xs:sequence>
<xs:element minOccurs="0" name="numDossier" type="xs:int"/>
<xs:element minOccurs="0" name="numPerson" type="xs:int"/>
<xs:element minOccurs="0" name="codeTypeActivity" type="xs:string"/>
<xs:element minOccurs="0" name="codeNatureActivity" type="xs:string"/>
<xs:element minOccurs="0" name="activity" type="xs:string"/>
<xs:element minOccurs="0" name="unit" type="xs:string"/>
<xs:element minOccurs="0" name="place" type="xs:string"/>
<xs:element minOccurs="0" name="codeRegie" type="xs:int"/>
<xs:element minOccurs="0" name="dateStartActivity" type="xs:dateTime"/>
<xs:element minOccurs="0" name="dateEndActivity" type="xs:dateTime"/>
<xs:element minOccurs="0" name="yearSchool" type="xs:int"/>
@ -640,7 +706,7 @@
<xs:complexType name="getPersonCatalogueActivityResultBean">
<xs:sequence>
<xs:element minOccurs="0" name="person" type="ns1:personInfoBean"/>
<xs:element minOccurs="0" name="person" type="ns2:personInfoBean"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="catalogueActivityList" nillable="true" type="tns:catalogueActivityBean"/>
</xs:sequence>
</xs:complexType>
@ -664,13 +730,17 @@
</xs:complexType>
</xs:schema>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="activity.ws.maelis.sigec.com" xmlns:ns2="bean.persistence.school.ws.maelis.sigec.com" xmlns:ns1="bean.persistence.activity.ws.maelis.sigec.com" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="activity.ws.maelis.sigec.com">
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="activity.ws.maelis.sigec.com" xmlns:ns3="bean.persistence.school.ws.maelis.sigec.com" xmlns:ns2="bean.persistence.ape.ws.maelis.sigec.com" xmlns:ns1="bean.persistence.activity.ws.maelis.sigec.com" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="activity.ws.maelis.sigec.com">
<xs:import namespace="bean.persistence.activity.ws.maelis.sigec.com"/>
<xs:import namespace="bean.persistence.ape.ws.maelis.sigec.com"/>
<xs:import namespace="bean.persistence.school.ws.maelis.sigec.com"/>
<xs:import namespace="bean.persistence.ws.maelis.sigec.com"/>
<xs:element name="addPersonUnitBasket" type="tns:addPersonUnitBasket"/>
<xs:element name="addPersonUnitBasketResponse" type="tns:addPersonUnitBasketResponse"/>
<xs:element name="addPersonUnitLstWait" type="tns:addPersonUnitLstWait"/>
<xs:element name="addPersonUnitLstWaitResponse" type="tns:addPersonUnitLstWaitResponse"/>
<xs:element name="addPersonUnitSubscribe" type="tns:addPersonUnitSubscribe"/>
<xs:element name="addPersonUnitSubscribeResponse" type="tns:addPersonUnitSubscribeResponse"/>
<xs:element name="addSchedulePresenceUnit" type="tns:addSchedulePresenceUnit"/>
<xs:element name="addSchedulePresenceUnitResponse" type="tns:addSchedulePresenceUnitResponse"/>
<xs:element name="delSchedulePresenceUnit" type="tns:delSchedulePresenceUnit"/>
@ -707,12 +777,25 @@
<xs:element name="validateBasketResponse" type="tns:validateBasketResponse"/>
<xs:complexType name="addPersonUnitBasket">
<xs:sequence>
<xs:element minOccurs="0" name="addPersonUnitBasketRequestBean" type="ns1:addChildSubscribeRequestBean"/>
<xs:element name="addPersonUnitBasketRequestBean" type="ns1:addChildSubscribeRequestBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType abstract="true" name="abstractSpecRequestBean">
<xs:complexContent>
<xs:extension base="tns:abstractSpecBean">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType abstract="true" name="abstractSpecBean">
<xs:sequence/>
</xs:complexType>
<xs:complexType name="conveyanceSubscribeKernelBean">
<xs:sequence>
<xs:element minOccurs="0" name="idPlaceAfternoon" type="xs:string"/>
<xs:element minOccurs="0" name="idPlaceMorning" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="addPersonUnitBasketResponse">
<xs:sequence>
<xs:element minOccurs="0" name="addPersonUnitBasketResponseBean" type="ns1:addChildUnitBasketResponseBean"/>
@ -775,7 +858,7 @@
</xs:complexType>
<xs:complexType name="addPersonUnitLstWait">
<xs:sequence>
<xs:element minOccurs="0" name="AddPersonSubscribeRequestBean" type="ns1:addChildSubscribeRequestBean"/>
<xs:element name="AddPersonSubscribeRequestBean" type="ns1:addChildSubscribeRequestBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="addPersonUnitLstWaitResponse">
@ -799,16 +882,9 @@
</xs:complexType>
<xs:complexType name="getPersonScheduleList">
<xs:sequence>
<xs:element minOccurs="0" name="requestBean" type="ns1:getPersonScheduleRequestBean"/>
<xs:element name="requestBean" type="ns1:getPersonScheduleRequestBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType abstract="true" name="abstractSpecRequestBean">
<xs:complexContent>
<xs:extension base="tns:abstractSpecBean">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="getPersonScheduleListResponse">
<xs:sequence>
<xs:element minOccurs="0" name="resultBean" type="ns1:getPersonScheduleResultBean"/>
@ -878,6 +954,12 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="activityUnitPlace2KernelBean">
<xs:sequence>
<xs:element minOccurs="0" name="activityKernel" type="xs:anyType"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="unitKernelList" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="consoTarifKernelBean">
<xs:sequence>
<xs:element minOccurs="0" name="commune" type="xs:string"/>
@ -904,15 +986,9 @@
<xs:element minOccurs="0" name="dayDate" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="activityUnitPlace2KernelBean">
<xs:sequence>
<xs:element minOccurs="0" name="activityKernel" type="xs:anyType"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="unitKernelList" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="validateBasket">
<xs:sequence>
<xs:element minOccurs="0" name="validateBasketRequestBean" type="ns1:validateBasketRequestBean"/>
<xs:element name="validateBasketRequestBean" type="ns1:validateBasketRequestBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="validateBasketResponse">
@ -922,7 +998,7 @@
</xs:complexType>
<xs:complexType name="deleteBasket">
<xs:sequence>
<xs:element minOccurs="0" name="deleteBasketRequestBean" type="ns1:deleteBasketRequestBean"/>
<xs:element name="deleteBasketRequestBean" type="ns1:deleteBasketRequestBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="deleteBasketResponse">
@ -930,7 +1006,7 @@
</xs:complexType>
<xs:complexType name="getFamilyBasket">
<xs:sequence>
<xs:element minOccurs="0" name="getFamilyBasketRequestBean" type="ns1:getFamilyBasketRequestBean"/>
<xs:element name="getFamilyBasketRequestBean" type="ns1:getFamilyBasketRequestBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="getFamilyBasketResponse">
@ -958,6 +1034,39 @@
<xs:element minOccurs="0" name="getPersonUnitInfoResponseBean" type="ns1:getPersonUnitInfoResponseBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="indicatorKernelBean">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="choiceList" nillable="true" type="xs:anyType"/>
<xs:element minOccurs="0" name="code" type="xs:string"/>
<xs:element minOccurs="0" name="id" type="xs:string"/>
<xs:element minOccurs="0" name="label" type="xs:string"/>
<xs:element minOccurs="0" name="typeDesc" type="tns:indicatorTypeDescEnum"/>
<xs:element minOccurs="0" name="typeDescStr" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="conveyanceInfoKernelBean">
<xs:sequence>
<xs:element minOccurs="0" name="afternoonJourney" type="tns:journeyInfoKernelBean"/>
<xs:element minOccurs="0" name="morningJourney" type="tns:journeyInfoKernelBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="journeyInfoKernelBean">
<xs:sequence>
<xs:element minOccurs="0" name="comment" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="depositPlaceList" nillable="true" type="tns:depositPlaceKernelBean"/>
<xs:element minOccurs="0" name="idJourney" type="xs:string"/>
<xs:element minOccurs="0" name="libelle" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="depositPlaceKernelBean">
<xs:sequence>
<xs:element minOccurs="0" name="comment" type="xs:string"/>
<xs:element minOccurs="0" name="idDepositePlace" type="xs:string"/>
<xs:element minOccurs="0" name="idJourney" type="xs:string"/>
<xs:element minOccurs="0" name="numOrder" type="xs:int"/>
<xs:element minOccurs="0" name="place" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="updateBasketTime">
<xs:sequence>
<xs:element name="idBasket" type="xs:string"/>
@ -968,7 +1077,7 @@
</xs:complexType>
<xs:complexType name="updatePersonUnitBasket">
<xs:sequence>
<xs:element minOccurs="0" name="updateBasketLigneRequestBean" type="tns:updateBasketLigneRequestBean"/>
<xs:element name="updateBasketLigneRequestBean" type="tns:updateBasketLigneRequestBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="updateBasketLigneRequestBean">
@ -1004,9 +1113,19 @@
<xs:element name="isWSRunning" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="addPersonUnitSubscribe">
<xs:sequence>
<xs:element name="AddPersonSubscribeRequestBean" type="ns1:addChildSubscribeRequestBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="addPersonUnitSubscribeResponse">
<xs:sequence>
<xs:element minOccurs="0" name="addPersonUnitSubscribeResponseBean" type="ns1:addChildUnitLstWaitResponseBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="updatePersonSchedule">
<xs:sequence>
<xs:element minOccurs="0" name="requestBean" type="ns1:updatePersonScheduleRequestBean"/>
<xs:element name="requestBean" type="ns1:updatePersonScheduleRequestBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="updatePersonScheduleResponse">
@ -1036,7 +1155,7 @@
</xs:complexType>
<xs:complexType name="deletePersonUnitBasket">
<xs:sequence>
<xs:element minOccurs="0" name="deletePersonUnitBasketRequestBean" type="ns1:deleteChildUnitBasketRequestBean"/>
<xs:element name="deletePersonUnitBasketRequestBean" type="ns1:deleteChildUnitBasketRequestBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="deletePersonUnitBasketResponse">
@ -1046,7 +1165,7 @@
</xs:complexType>
<xs:complexType name="getPersonCatalogueActivity">
<xs:sequence>
<xs:element minOccurs="0" name="getPersonCatalogueActivityRequestBean" type="ns1:getPersonCatalogueActivityRequestBean"/>
<xs:element name="getPersonCatalogueActivityRequestBean" type="ns1:getPersonCatalogueActivityRequestBean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="getPersonCatalogueActivityResponse">
@ -1054,13 +1173,6 @@
<xs:element minOccurs="0" name="getPersonCatalogueActivityResultBean" type="ns1:getPersonCatalogueActivityResultBean"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="indicatorTypeDescEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="NONE"/>
<xs:enumeration value="NOTE"/>
<xs:enumeration value="CHOICE"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="blocNoteTypeEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="A"/>
@ -1070,6 +1182,13 @@
<xs:enumeration value="ID"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="indicatorTypeDescEnum">
<xs:restriction base="xs:string">
<xs:enumeration value="NONE"/>
<xs:enumeration value="NOTE"/>
<xs:enumeration value="CHOICE"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="dayInfoStatus">
<xs:restriction base="xs:string">
<xs:enumeration value="NO_CUSTODY"/>
@ -1175,10 +1294,18 @@
<wsdl:part element="tns:isWSRunning" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="addPersonUnitSubscribe">
<wsdl:part element="tns:addPersonUnitSubscribe" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="updatePersonSchedule">
<wsdl:part element="tns:updatePersonSchedule" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="addPersonUnitSubscribeResponse">
<wsdl:part element="tns:addPersonUnitSubscribeResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="readActivityNatureTypeList">
<wsdl:part element="tns:readActivityNatureTypeList" name="parameters">
</wsdl:part>
@ -1557,6 +1684,24 @@ La capacité est contrôle lors de la lecture des information et en fonction du
<wsdl:fault message="tns:MaelisActivityException" name="MaelisActivityException">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="addPersonUnitSubscribe">
<wsdl:documentation>Ajoute une inscription d'une personne à une activité du catalogue
------------------------------------------
Traitement :
Génération de
- L'inscription (état « WEB_CONFIRM »), l'inscription à l'unité standard si elle n'existe pas, est générée à l'état WEB_STANDARD
- Son calendrier
Retour :
L'inscription générée</wsdl:documentation>
<wsdl:input message="tns:addPersonUnitSubscribe" name="addPersonUnitSubscribe">
</wsdl:input>
<wsdl:output message="tns:addPersonUnitSubscribeResponse" name="addPersonUnitSubscribeResponse">
</wsdl:output>
<wsdl:fault message="tns:MaelisActivityException" name="MaelisActivityException">
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="updatePersonSchedule">
<wsdl:documentation>Mise à jour des présences/absences aux activités auxquelles est inscrite la personne
@ -1817,6 +1962,18 @@ Si la capacité est effectuée par jour, il n'y a pas de contrôle du nombre d'i
<soap:fault name="MaelisActivityException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="addPersonUnitSubscribe">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="addPersonUnitSubscribe">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="addPersonUnitSubscribeResponse">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="MaelisActivityException">
<soap:fault name="MaelisActivityException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="updatePersonSchedule">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="updatePersonSchedule">

View File

@ -0,0 +1,125 @@
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getPersonUnitInfoResponse xmlns:ns2="activity.ws.maelis.sigec.com" xmlns:ns3="bean.persistence.activity.ws.maelis.sigec.com" xmlns:ns4="bean.persistence.school.ws.maelis.sigec.com">
<getPersonUnitInfoResponseBean>
<controlResult>
<controlOK>true</controlOK>
</controlResult>
<personInfo>
<idMaelis>S10055586371</idMaelis>
<num>261768</num>
<lastname>NICO</lastname>
<firstname>BART</firstname>
<dateBirth>2014-04-01T00:00:00+02:00</dateBirth>
<sexe>M</sexe>
</personInfo>
<activity>
<idActivity>A10053179798</idActivity>
<libelle1>ECOLE DES SPORTS 22/23 SEMESTRE 2 - MULTIACTIVITES</libelle1>
<activityType>
<code>25</code>
<libelle>ACTIVITE REGULIERE - SPORT</libelle>
<natureSpec>
<code>8</code>
<libelle>SPORT</libelle>
</natureSpec>
</activityType>
<typInsPortal>I</typInsPortal>
<paiementPortal>I</paiementPortal>
</activity>
<unit>
<idUnit>A10053179803</idUnit>
<libelle>MERCREDI - 13h45/17h - 8/15Ans</libelle>
<dateStart>2023-02-01T00:00:00+01:00</dateStart>
<dateEnd>2023-06-30T00:00:00+02:00</dateEnd>
</unit>
<place>
<idPlace>A10053179757</idPlace>
<lib1>ARGOULETS</lib1>
</place>
<calendarGeneration>
<code>FORBIDDEN</code>
<value>I</value>
</calendarGeneration>
<weeklyCalendarActivity>
<dayWeekInfoList>
<dayNum>1</dayNum>
<isOpen>false</isOpen>
</dayWeekInfoList>
<dayWeekInfoList>
<dayNum>2</dayNum>
<isOpen>false</isOpen>
</dayWeekInfoList>
<dayWeekInfoList>
<dayNum>3</dayNum>
<isOpen>true</isOpen>
</dayWeekInfoList>
<dayWeekInfoList>
<dayNum>4</dayNum>
<isOpen>false</isOpen>
</dayWeekInfoList>
<dayWeekInfoList>
<dayNum>5</dayNum>
<isOpen>false</isOpen>
</dayWeekInfoList>
<dayWeekInfoList>
<dayNum>6</dayNum>
<isOpen>false</isOpen>
</dayWeekInfoList>
<dayWeekInfoList>
<dayNum>7</dayNum>
<isOpen>false</isOpen>
</dayWeekInfoList>
</weeklyCalendarActivity>
<unitScheduleList>
<unit>
<idUnit>A10053179803</idUnit>
<libelle>MERCREDI - 13h45/17h - 8/15Ans</libelle>
<calendarLetter>B</calendarLetter>
<dateDeb>2023-02-01T00:00:00+01:00</dateDeb>
<dateFin>2023-06-30T00:00:00+02:00</dateFin>
</unit>
</unitScheduleList>
<billingInformation/>
<action>ADD_SUBSCRIBE</action>
<conveyance>
<morningJourney>
<libelle>Matin</libelle>
<comment>test</comment>
<depositPlaceList>
<place>
<id>A10053179757</id>
<lib>ARGOULETS</lib>
</place>
<comment>test 1</comment>
</depositPlaceList>
<depositPlaceList>
<place>
<id>A10053179757</id>
<lib>ARGOULETS</lib>
</place>
</depositPlaceList>
</morningJourney>
<afternoonJourney>
<libelle>Soir</libelle>
<comment>test soir</comment>
<depositPlaceList>
<place>
<id>A10053179757</id>
<lib>ARGOULETS</lib>
</place>
<comment>test 3</comment>
</depositPlaceList>
<depositPlaceList>
<place>
<id>A10053179757</id>
<lib>ARGOULETS</lib>
</place>
<comment>test 4</comment>
</depositPlaceList>
</afternoonJourney>
</conveyance>
</getPersonUnitInfoResponseBean>
</ns2:getPersonUnitInfoResponse>
</soap:Body>
</soap:Envelope>

View File

@ -15,15 +15,16 @@
<libelle1>Vitrail Fusing 1/2 Je Adultes 2022/2023 - Mardi 14h-17h</libelle1>
<libelle2>Activité modèle</libelle2>
<activityType>
<code>LOI_ADU</code>
<libelle>Loisirs Adultes</libelle>
<code>22</code>
<libelle>STAGE - ART PLASTIQUE</libelle>
<natureSpec>
<code>P</code>
<libelle>Loisirs</libelle>
<code>4</code>
<libelle>ART PLASTIQUE</libelle>
</natureSpec>
</activityType>
<typInsPortal>I</typInsPortal>
<paiementPortal>I</paiementPortal>
<coderegie>104</coderegie>
</activity>
<unitInfoList>
<idUnit>A10051141970</idUnit>
@ -34,7 +35,9 @@
<place>
<idPlace>A10053179226</idPlace>
<lib1>Centre Culturel ALBAN MINVILLE</lib1>
<ctrlPlaces>H</ctrlPlaces>
<adresse>
<num>0</num>
</adresse>
</place>
<capacityInfo>
<controlOK>true</controlOK>
@ -50,7 +53,9 @@
<place>
<idPlace>A10053179226</idPlace>
<lib1>Centre Culturel ALBAN MINVILLE</lib1>
<ctrlPlaces>H</ctrlPlaces>
<adresse>
<num>0</num>
</adresse>
</place>
<capacityInfo>
<controlOK>true</controlOK>
@ -66,7 +71,9 @@
<place>
<idPlace>A10053179226</idPlace>
<lib1>Centre Culturel ALBAN MINVILLE</lib1>
<ctrlPlaces>N</ctrlPlaces>
<adresse>
<num>0</num>
</adresse>
</place>
<capacityInfo>
<controlOK>true</controlOK>
@ -99,7 +106,6 @@
<place>
<idPlace>A10053179604</idPlace>
<lib1>ALEX JANY</lib1>
<ctrlPlaces>H</ctrlPlaces>
<longitude>2.0</longitude>
<latitude>1.0</latitude>
</place>
@ -117,7 +123,6 @@
<place>
<idPlace>A10053179604</idPlace>
<lib1>ALEX JANY</lib1>
<ctrlPlaces>M</ctrlPlaces>
<longitude>2.0</longitude>
<latitude>1.0</latitude>
</place>
@ -154,7 +159,6 @@
<lib1>ALEX JANY</lib1>
<ageStart>2011-01-01T00:00:00+01:00</ageStart>
<ageEnd>2018-12-31T00:00:00+01:00</ageEnd>
<ctrlPlaces>H</ctrlPlaces>
<longitude>2.0</longitude>
<latitude>1.0</latitude>
</place>
@ -174,7 +178,6 @@
<lib1>ALEX JANY</lib1>
<ageStart>2011-01-01T00:00:00+01:00</ageStart>
<ageEnd>2020-12-31T00:00:00+01:00</ageEnd>
<ctrlPlaces>H</ctrlPlaces>
<longitude>2.0</longitude>
<latitude>1.0</latitude>
</place>

View File

@ -5027,6 +5027,7 @@ def test_get_person_activity_list(activity_service, con, app):
'libelle': 'Loisirs - Vacances',
'natureSpec': {'code': 'V', 'libelle': 'Vacances Enfants'},
},
'coderegie': None,
'idActivity': 'A10053187087',
'libelle1': 'Vacances Ete 2023',
'libelle2': None,
@ -5051,15 +5052,19 @@ def test_get_person_activity_list(activity_service, con, app):
'place': {
'ageEnd': None,
'ageStart': None,
'ctrlPlaces': 'H',
'etatIns': None,
'idIns': None,
'idPlace': 'A10053179604',
'latitude': 1,
'latitude': 1.0,
'lib1': 'ALEX JANY',
'lib2': None,
'listBlocNoteBean': [],
'longitude': 2,
'longitude': 2.0,
'adresse': None,
'startHour': None,
'startHour2': None,
'endHour': None,
'endHour2': None,
},
}
],
@ -5173,17 +5178,21 @@ def test_get_person_unit_list(activity_service, con, app):
'capacityInfo': {'controlOK': True, 'message': None},
'idIns': None,
'place': {
'adresse': None,
'ageEnd': None,
'ageStart': None,
'ctrlPlaces': 'H',
'endHour': None,
'endHour2': None,
'etatIns': None,
'idIns': None,
'idPlace': 'A10053179604',
'latitude': 1,
'latitude': 1.0,
'lib1': 'ALEX JANY',
'lib2': None,
'listBlocNoteBean': [],
'longitude': 2,
'longitude': 2.0,
'startHour': None,
'startHour2': None,
},
}
],
@ -5309,9 +5318,11 @@ def test_get_person_place_list(activity_service, con, app):
'id': 'A10053179604',
'idIns': None,
'place': {
'adresse': None,
'ageEnd': None,
'ageStart': None,
'ctrlPlaces': 'H',
'endHour': None,
'endHour2': None,
'etatIns': None,
'idIns': None,
'idPlace': 'A10053179604',
@ -5320,6 +5331,8 @@ def test_get_person_place_list(activity_service, con, app):
'lib2': None,
'listBlocNoteBean': [],
'longitude': 2.0,
'startHour': None,
'startHour2': None,
},
'text': 'ALEX JANY',
}
@ -5469,6 +5482,7 @@ def test_get_person_catalog_geojson(activity_service, con, app):
'libelle': 'Loisirs - Vacances',
'natureSpec': {'code': 'V', 'libelle': 'Vacances ' 'Enfants'},
},
'coderegie': None,
'idActivity': 'A10053187087',
'libelle1': 'Vacances ' 'Ete 2023',
'libelle2': None,
@ -5489,9 +5503,11 @@ def test_get_person_catalog_geojson(activity_service, con, app):
'capacityInfo': {'controlOK': True, 'message': None},
'idIns': None,
'place': {
'adresse': None,
'ageEnd': None,
'ageStart': None,
'ctrlPlaces': 'H',
'endHour': None,
'endHour2': None,
'etatIns': None,
'idIns': None,
'idPlace': 'A10053179604',
@ -5500,6 +5516,8 @@ def test_get_person_catalog_geojson(activity_service, con, app):
'lib2': None,
'listBlocNoteBean': [],
'longitude': 2.0,
'startHour': None,
'startHour2': None,
},
},
},
@ -5666,6 +5684,7 @@ def test_get_person_subscription_info(activity_service, con, app):
},
'typInsPortal': 'I',
'paiementPortal': 'I',
'coderegie': None,
},
'unit': {
'idUnit': 'A10049337568',
@ -5683,10 +5702,14 @@ def test_get_person_subscription_info(activity_service, con, app):
'etatIns': None,
'ageStart': None,
'ageEnd': None,
'ctrlPlaces': None,
'listBlocNoteBean': [],
'longitude': None,
'latitude': None,
'adresse': None,
'endHour': None,
'endHour2': None,
'startHour': None,
'startHour2': None,
},
'calendarGeneration': {'code': 'FORBIDDEN', 'value': 'I'},
'weeklyCalendarActivity': {
@ -5706,6 +5729,7 @@ def test_get_person_subscription_info(activity_service, con, app):
'action': 'ADD_SUBSCRIBE',
'indicatorList': [],
'recurrent_week': [],
'conveyance': None,
}
# no date provided
@ -5754,6 +5778,7 @@ def test_get_person_subscription_info_with_recurrent_week(activity_service, con,
'sexe': 'M',
},
'activity': {
'coderegie': None,
'idActivity': 'A10055585858',
'libelle1': 'ADL ELEMENTAIRE Maourine FEVRIER 22/23',
'libelle2': None,
@ -5781,10 +5806,14 @@ def test_get_person_subscription_info_with_recurrent_week(activity_service, con,
'etatIns': None,
'ageStart': None,
'ageEnd': None,
'ctrlPlaces': None,
'listBlocNoteBean': [],
'longitude': None,
'latitude': None,
'adresse': None,
'startHour': None,
'startHour2': None,
'endHour': None,
'endHour2': None,
},
'calendarGeneration': {'code': 'REQUIRED', 'value': 'O'},
'weeklyCalendarActivity': {
@ -5825,6 +5854,7 @@ def test_get_person_subscription_info_with_recurrent_week(activity_service, con,
],
'billingInformation': None,
'action': 'ADD_SUBSCRIBE',
'conveyance': None,
'indicatorList': [],
'recurrent_week': [
{'id': '1-C', 'day': 'Lundi', 'label': 'Journée', 'overlaps': ['1-B'], 'text': 'Lundi Journée'},
@ -5893,6 +5923,32 @@ def test_get_person_subscription_info_with_recurrent_week(activity_service, con,
assert resp.json['err'] == 0
def test_get_person_subscription_info_with_conveyance(activity_service, con, app):
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info_with_conveyance.xml'),
)
url = get_endpoint('get-person-subscription-info')
params = {
'NameID': '',
'family_id': '322423',
'person_id': '261768',
'activity_id': 'A10053179798',
'unit_id': 'A10053179803',
'place_id': 'A10053179757',
'ref_date': '',
}
resp = app.get(url, params=params)
assert resp.json['err'] == 0
assert [
(x['id'], x['text']) for x in resp.json['data']['conveyance']['morningJourney']['depositPlaceList']
] == [('A10053179757', 'ARGOULETS'), ('A10053179757', 'ARGOULETS')]
assert [
(x['id'], x['text']) for x in resp.json['data']['conveyance']['afternoonJourney']['depositPlaceList']
] == [('A10053179757', 'ARGOULETS'), ('A10053179757', 'ARGOULETS')]
def test_get_person_subscription_info_error(activity_service, con, app):
activity_service.add_soap_response(
'getPersonUnitInfo',
@ -5956,6 +6012,10 @@ def test_get_person_subscription_info_loisir_date_error(con, app):
def test_add_person_basket_subscription(activity_service, con, app):
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info.xml'),
)
activity_service.add_soap_response(
'addPersonUnitBasket',
get_xml_file('R_add_person_unit_basket.xml'),
@ -6020,6 +6080,10 @@ def test_add_person_basket_subscription(activity_service, con, app):
},
}
params['recurrent_week'] = None
resp = app.post_json(url + '?NameID=local', params=params)
assert resp.json['err'] == 0
def test_add_person_basket_subscription_with_recurrent_week(activity_service, con, app):
def request_check(request):
@ -6028,6 +6092,10 @@ def test_add_person_basket_subscription_with_recurrent_week(activity_service, co
{'dayNum': 2, 'isPresent': True, 'isOpen': None, 'calendarLetter': 'C'},
]
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info_with_conveyance.xml'),
)
activity_service.add_soap_response(
'addPersonUnitBasket',
get_xml_file('R_add_person_unit_basket.xml'),
@ -6053,6 +6121,10 @@ def test_add_person_basket_subscription_with_recurrent_week(activity_service, co
def test_add_person_basket_subscription_error(activity_service, con, app):
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info.xml'),
)
activity_service.add_soap_response(
'addPersonUnitBasket',
get_xml_file('R_add_person_unit_basket_error.xml'),
@ -6087,6 +6159,87 @@ def test_add_person_basket_subscription_not_linked_error(con, app):
assert resp.json['err_desc'] == 'User not linked to family'
def test_add_person_basket_subscription_with_conveyance(activity_service, con, app):
def request_check(request):
assert serialize_object(request.conveyanceSubscribe) == {
'idPlaceMorning': 'A10053179757',
'idPlaceAfternoon': 'A10053179757',
}
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info_with_conveyance.xml'),
)
activity_service.add_soap_response(
'addPersonUnitBasket',
get_xml_file('R_add_person_unit_basket.xml'),
request_check=request_check,
)
url = get_endpoint('add-person-basket-subscription')
params = {
'person_id': '261768',
'activity_id': 'A10053179798',
'unit_id': 'A10053179803',
'place_id': 'A10053179757',
'start_date': '2022-09-01',
'end_date': '2023-08-31',
'conveyanceSubscribe/idPlaceMorning': 'A10053179757',
'conveyanceSubscribe/idPlaceAfternoon': 'A10053179757',
}
resp = app.post_json(url + '?family_id=322423', params=params)
assert resp.json['err'] == 0
def test_add_person_basket_subscription_providing_conveyance_error(activity_service, con, app):
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info.xml'),
)
url = get_endpoint('add-person-basket-subscription')
params = {
'person_id': '261768',
'activity_id': 'A10053179798',
'unit_id': 'A10053179803',
'place_id': 'A10053179757',
'start_date': '2022-09-01',
'end_date': '2023-08-31',
'conveyanceSubscribe/idPlaceMorning': 'A10053179757',
}
resp = app.post_json(url + '?family_id=322423', params=params)
assert resp.json['err'] == 1
assert resp.json['err_desc'] == 'no conveyance defined on this activity'
def test_add_person_basket_subscription_with_conveyance_not_found(activity_service, con, app):
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info_with_conveyance.xml'),
)
url = get_endpoint('add-person-basket-subscription')
params = {
'person_id': '261768',
'activity_id': 'A10053179798',
'unit_id': 'A10053179803',
'place_id': 'A10053179757',
'start_date': '2022-09-01',
'end_date': '2023-08-31',
'conveyanceSubscribe/idPlaceMorning': 'plop',
'conveyanceSubscribe/idPlaceAfternoon': 'A10053179757',
}
resp = app.post_json(url + '?family_id=322423', params=params)
assert resp.json['err'] == 1
assert resp.json['err_desc'] == 'no "plop" place defined on "morningJourney" conveyance'
params['conveyanceSubscribe/idPlaceMorning'] = ''
params['conveyanceSubscribe/idPlaceAfternoon'] = 'plop'
resp = app.post_json(url + '?family_id=322423', params=params)
assert resp.json['err'] == 1
assert resp.json['err_desc'] == 'no "plop" place defined on "afternoonJourney" conveyance'
def test_get_basket(activity_service, con, app):
activity_service.add_soap_response('getFamilyBasket', get_xml_file('R_get_family_basket.xml'))
url = get_endpoint('get-basket')