WIP: toulouse-maelis: prendre en compte les indicateurs sur l'inscription (#74761) #119

Closed
nroche wants to merge 4 commits from wip/74761-parsifal-manage-subscribe-indicator into main
6 changed files with 688 additions and 112 deletions

View File

@ -13,6 +13,31 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from . import schemas
INDICATOR_SCHEMA = {
'type': 'object',
'required': ['code', 'isActive'],
'properties': {
'code': {
'description': "Code de l'indicateur (depuis référentiel)",
'type': 'string',
'pattern': '.+',
},
'note': {
'description': "Commentaire pour les indicateurs de type NOTE",
'oneOf': [{'type': 'string'}, {'type': 'null'}],
},
'isActive': {
'description': "True pour ajouter/modifier l'indicateur ou False pour le retirer",
'oneOf': schemas.BOOLEAN_TYPES
+ [
{'type': 'string', 'pattern': '^$'},
{'type': 'null'},
],
},
},
}
BOOKING_SCHEMA = {
'type': 'object',
@ -75,8 +100,22 @@ 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'},
],
},
'indicatorList': {
'oneOf': [
{
'type': 'array',
'items': INDICATOR_SCHEMA,
},
{'type': 'null'},
],
},
},
'required': [
@ -87,6 +126,7 @@ SUBSCRIPTION_SCHEMA = {
'start_date',
'end_date',
],
'unflatten': True,
}
DELETE_BASKET_LINE_SCHEMA = {

View File

@ -2736,6 +2736,12 @@ class ToulouseMaelis(BaseResource, HTTPResource):
}
)
response['recurrent_week'] = recurrent_week
indicators = {}
for item in response.get('indicatorList') or []:
item['id'] = item['code']
item['text'] = item['libelle']
indicators[item['id']] = item
response['indicators'] = indicators
return {'data': response}
@endpoint(
@ -2759,6 +2765,28 @@ 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)
expected_codes = [x['code'] for x in subscription_info.get('indicatorList', [])]
indicators = []
for i, item in enumerate(post_data.get('indicatorList') or []):
item['isActive'] = self.encode_bool(item['isActive'])
if item['isActive'] is None: # no value, skip indicator
continue
if item['code'] not in expected_codes:
raise APIError(
"indicatorList/%i/code key value '%s' do not belong to activity indicators"
% (i, item['code'])
)
indicators.append(item)
recurrent_week = []
for item in post_data.get('recurrent_week') or []:
@ -2780,6 +2808,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
'dateStartSubscribe': post_data['start_date'],
'dateEndSubscribe': post_data['end_date'],
'dayWeekInfoList': recurrent_week,
'indicatorList': indicators,
}
}
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,158 @@
<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>A10049354913</idActivity>
<libelle1>SEMST2 ADL MERC. ELEM Maourine 22/23</libelle1>
<activityType>
<code>EXTMERC</code>
<libelle>Mercredi</libelle>
<natureSpec>
<code>X</code>
<libelle>Extrascolaire</libelle>
</natureSpec>
</activityType>
<typInsPortal>I</typInsPortal>
<paiementPortal>I</paiementPortal>
</activity>
<unit>
<idUnit>A10049354915</idUnit>
<libelle>SEMST2 ADL MERC. ELEM Maourine 22/23</libelle>
<dateStart>2023-02-01T00:00:00+01:00</dateStart>
<dateEnd>2023-07-07T00:00:00+02:00</dateEnd>
</unit>
<place>
<idPlace>M10053212196</idPlace>
<lib1>MAOURINE (la) ELEMENTAIRE</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>
<openDayList>
<day>2023-03-08T00:00:00+01:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-03-15T00:00:00+01:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-03-22T00:00:00+01:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-03-29T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-04-05T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-04-12T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-04-19T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-05-10T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-05-17T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-05-24T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-05-31T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-06-07T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-06-14T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-06-21T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-06-28T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<openDayList>
<day>2023-07-05T00:00:00+02:00</day>
<hasPlace>true</hasPlace>
</openDayList>
<unitScheduleList>
<unit>
<idUnit>A10049354915</idUnit>
<libelle>SEMST2 ADL MERC. ELEM Maourine 22/23</libelle>
<calendarLetter>X</calendarLetter>
<dateDeb>2023-02-01T00:00:00+01:00</dateDeb>
<dateFin>2023-07-07T00:00:00+02:00</dateFin>
</unit>
</unitScheduleList>
<billingInformation/>
<action>ADD_SUBSCRIBE</action>
<indicatorList>
<code>AUT_SEUL</code>
<libelle>Autorisation à partir seul</libelle>
<typeDesc>NONE</typeDesc>
</indicatorList>
<conveyance/>
</getPersonUnitInfoResponseBean>
</ns2:getPersonUnitInfoResponse>
</soap:Body>
</soap:Envelope>

View File

@ -24,6 +24,7 @@
</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,7 +5052,6 @@ def test_get_person_activity_list(activity_service, con, app):
'place': {
'ageEnd': None,
'ageStart': None,
'ctrlPlaces': 'H',
'etatIns': None,
'idIns': None,
'idPlace': 'A10053179604',
@ -5060,6 +5060,11 @@ def test_get_person_activity_list(activity_service, con, app):
'lib2': None,
'listBlocNoteBean': [],
'longitude': 2,
'adresse': None,
'startHour': None,
'startHour2': None,
'endHour': None,
'endHour2': None,
},
}
],
@ -5182,9 +5187,11 @@ 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',
@ -5193,6 +5200,8 @@ def test_get_person_unit_list(activity_service, con, app):
'lib2': None,
'listBlocNoteBean': [],
'longitude': 2,
'startHour': None,
'startHour2': None,
},
}
],
@ -5318,9 +5327,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',
@ -5329,6 +5340,8 @@ def test_get_person_place_list(activity_service, con, app):
'lib2': None,
'listBlocNoteBean': [],
'longitude': 2.0,
'startHour': None,
'startHour2': None,
},
'text': 'ALEX JANY',
}
@ -5478,6 +5491,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,
@ -5498,9 +5512,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',
@ -5509,6 +5525,8 @@ def test_get_person_catalog_geojson(activity_service, con, app):
'lib2': None,
'listBlocNoteBean': [],
'longitude': 2.0,
'startHour': None,
'startHour2': None,
},
},
},
@ -5690,6 +5708,7 @@ def test_get_person_subscription_info(activity_service, con, app):
},
'typInsPortal': 'I',
'paiementPortal': 'I',
'coderegie': None,
},
'unit': {
'idUnit': 'A10049337568',
@ -5707,10 +5726,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': {
@ -5729,7 +5752,9 @@ def test_get_person_subscription_info(activity_service, con, app):
'billingInformation': None,
'action': 'ADD_SUBSCRIBE',
'indicatorList': [],
'indicators': {},
'recurrent_week': [],
'conveyance': None,
}
# no date provided
@ -5778,6 +5803,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,
@ -5805,10 +5831,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': {
@ -5849,7 +5879,9 @@ def test_get_person_subscription_info_with_recurrent_week(activity_service, con,
],
'billingInformation': None,
'action': 'ADD_SUBSCRIBE',
'conveyance': None,
'indicatorList': [],
'indicators': {},
'recurrent_week': [
{'id': '1-C', 'day': 'Lundi', 'label': 'Journée', 'overlaps': ['1-B'], 'text': 'Lundi Journée'},
{
@ -5917,6 +5949,30 @@ def test_get_person_subscription_info_with_recurrent_week(activity_service, con,
assert resp.json['err'] == 0
def test_get_person_subscription_info_with_indicators(activity_service, con, app):
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info_with_indicator_list.xml'),
)
url = get_endpoint('get-person-subscription-info')
params = {
'NameID': '',
'family_id': '322423',
'person_id': '261768',
'activity_id': 'A10049354913',
'unit_id': 'A10049354915',
'place_id': 'M10053212196',
'ref_date': '',
}
resp = app.get(url, params=params)
assert resp.json['err'] == 0
assert [(x['id'], x['text']) for x in resp.json['data']['indicatorList']] == [
('AUT_SEUL', 'Autorisation à partir seul'),
]
assert 'AUT_SEUL' in resp.json['data']['indicators']
def test_get_person_subscription_info_error(activity_service, con, app):
activity_service.add_soap_response(
'getPersonUnitInfo',
@ -5980,6 +6036,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'),
@ -6044,6 +6104,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):
@ -6052,6 +6116,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.xml'),
)
activity_service.add_soap_response(
'addPersonUnitBasket',
get_xml_file('R_add_person_unit_basket.xml'),
@ -6076,7 +6144,84 @@ def test_add_person_basket_subscription_with_recurrent_week(activity_service, co
assert resp.json['err'] == 0
@pytest.mark.parametrize(
'is_active_value, is_active_result',
[
(True, True),
(False, False),
(1, True),
(0, False),
('oui', True),
('NON', False),
],
)
def test_add_person_basket_subscription_with_indicators(
is_active_value, is_active_result, activity_service, con, app
):
def request_check(request):
assert [(x['code'], x['isActive']) for x in request.indicatorList] == [('AUT_SEUL', is_active_result)]
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info_with_indicator_list.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': '246423',
'activity_id': 'A10049354913',
'unit_id': 'A10049354915',
'place_id': 'M10053212196',
'start_date': '2022-09-01',
'end_date': '2023-08-31',
'indicatorList/0/code': 'AUT_SEUL',
'indicatorList/0/isActive': is_active_value,
}
resp = app.post_json(url + '?family_id=311323', params=params)
assert resp.json['err'] == 0
def test_add_person_basket_subscription_with_indicators_skipping_undef(activity_service, con, app):
def request_check(request):
assert request.indicatorList == []
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info_with_indicator_list.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': '246423',
'activity_id': 'A10049354913',
'unit_id': 'A10049354915',
'place_id': 'M10053212196',
'start_date': '2022-09-01',
'end_date': '2023-08-31',
'indicatorList/0/code': 'AUT_SEUL',
'indicatorList/0/isActive': '',
}
resp = app.post_json(url + '?family_id=311323', params=params)
assert resp.json['err'] == 0
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'),
@ -6111,6 +6256,50 @@ 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_indicators_schema_error(con, app):
url = get_endpoint('add-person-basket-subscription')
params = {
'person_id': '246423',
'activity_id': 'A10049354913',
'unit_id': 'A10049354915',
'place_id': 'M10053212196',
'start_date': '2022-09-01',
'end_date': '2023-08-31',
'indicatorList/0/code': 'AUTH_SEUL',
'indicatorList/0/isActive': 'plop',
}
resp = app.post_json(url + '?family_id=311323', params=params, status=400)
assert resp.json['err'] == 1
assert resp.json['err_desc'] == "'plop' is not of type 'boolean'"
def test_add_person_basket_subscription_with_indicators_wrong_referential_key_error(
activity_service, con, app
):
activity_service.add_soap_response(
'getPersonUnitInfo',
get_xml_file('R_get_person_unit_info_with_indicator_list.xml'),
)
url = get_endpoint('add-person-basket-subscription')
params = {
'person_id': '246423',
'activity_id': 'A10049354913',
'unit_id': 'A10049354915',
'place_id': 'M10053212196',
'start_date': '2022-09-01',
'end_date': '2023-08-31',
'indicatorList/0/code': 'plop',
'indicatorList/0/isActive': 'False',
}
resp = app.post_json(url + '?family_id=311323', params=params)
assert resp.json['err'] == 1
assert (
resp.json['err_desc'] == "indicatorList/0/code key value 'plop' do not belong to activity indicators"
)
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')