KataoMemberForm.class.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. <?php
  2. /**
  3. * KataoMember form.
  4. *
  5. * @package form
  6. * @subpackage katao_member
  7. * @version SVN: $Id: sfPropelFormTemplate.php 6174 2007-11-27 06:22:40Z fabien $
  8. */
  9. class KataoMemberForm extends BaseKataoMemberForm {
  10. public function configure() {
  11. unset($this->validatorSchema['gmap_lng'], $this->validatorSchema['gmap_lat'], $this->validatorSchema['accounting_code'], $this->validatorSchema['accounting_code_sol'], $this->validatorSchema['katao_index'], $this->validatorSchema['updated_at']);
  12. unset($this->widgetSchema['gmap_lng'], $this->widgetSchema['gmap_lat'], $this->widgetSchema['accounting_code'], $this->widgetSchema['accounting_code_sol'], $this->widgetSchema['katao_index'], $this->widgetSchema['updated_at']);
  13. $sf_user = sfContext::getInstance()->getUser();
  14. if ($this->getObject()->isNew() && $sf_user->isJustDelegate()) {
  15. $this->setDefault('katao_node_id', $sf_user->getInstance()->getKataoMember()->getKataoNodeId());
  16. }
  17. $this->widgetSchema['next_katao_node_id'] = new sfWidgetFormPropelSelect(array('model' => 'KataoNode', 'add_empty' => '&mdash;&nbsp;aucun&nbsp;&mdash;'));
  18. $this->widgetSchema['created_at'] = new wpWidgetFormRichDate();
  19. $this->validatorSchema['created_at'] = new sfValidatorDateTime(array('date_format' => '@(?P<day>\d{2}).(?P<month>\d{2}).(?P<year>\d{4})@'));
  20. //region labels
  21. $this->widgetSchema->setLabels(array(
  22. 'created_at' => 'Date d\'adhésion',
  23. 'katao_node_id' => 'période active',
  24. 'next_katao_node_id' => 'suivante',
  25. 'first_name' => 'Prénom',
  26. 'last_name' => 'Nom',
  27. 'is_admin' => 'Administrateur',
  28. 'is_referer' => 'Référent',
  29. 'is_delegate' => 'Délégué',
  30. 'is_anonymous' => 'Anonyme ?',
  31. 'katao_member_id' => 'Parrain',
  32. 'is_member' => 'Adhérent ?',
  33. 'initial_amount_euro' => 'Sole initial (€)',
  34. 'initial_amount_sol' => 'Solde initial (' . wpConfig::getAdditionalCurrencyName() . ')',
  35. 'card_number_sol' => 'N° carte ' . wpConfig::getAdditionalCurrencyName(),
  36. 'member_group' => 'Groupe d\'utilisateur',
  37. ));
  38. //endregion
  39. $this->widgetSchema['first_name'] = new sfWidgetFormInput(array(), array('style' => 'width: 250px'));
  40. $this->widgetSchema['last_name'] = new sfWidgetFormInput(array(), array('style' => 'width: 250px'));
  41. $this->widgetSchema['is_referer'] = new wpWidgetFormInputCheckbox();
  42. $this->widgetSchema['is_referer']->setOption('value_attribute_value', 1);
  43. if ((bool)$this->getObject()->getIsReferer()) {
  44. $this->widgetSchema['is_referer']->setAttribute('checked', 'checked');
  45. }
  46. $this->widgetSchema['is_delegate'] = new wpWidgetFormInputCheckbox();
  47. $this->widgetSchema['is_delegate']->setOption('value_attribute_value', 1);
  48. if ((bool)$this->getObject()->getIsDelegate()) {
  49. $this->widgetSchema['is_delegate']->setAttribute('checked', 'checked');
  50. }
  51. $this->widgetSchema['is_anonymous'] = new wpWidgetFormInputCheckbox();
  52. $this->widgetSchema['is_anonymous']->setOption('value_attribute_value', 1);
  53. if ((bool)$this->getObject()->getIsAnonymous()) {
  54. $this->widgetSchema['is_anonymous']->setAttribute('checked', 'checked');
  55. }
  56. $this->widgetSchema['is_member'] = new wpWidgetFormInputCheckbox();
  57. $this->widgetSchema['is_member']->setOption('value_attribute_value', 1);
  58. if ((bool)$this->getObject()->getIsMember()) {
  59. $this->widgetSchema['is_member']->setAttribute('checked', 'checked');
  60. }
  61. $this->widgetSchema['katao_member_id'] = new sfWidgetFormSelect(array('choices' => KataoMemberPeer::getAllGroupedByNode(false, false, true)));
  62. $katao_member =/*(KataoMember)*/ $this->getObject();
  63. if (!$katao_member->getKataoMemberId()) {
  64. $katao_member->setKataoMemberId(wpConfig::getKataoMemberId());
  65. }
  66. $katao_user = null;
  67. if (!$katao_member->isNew()) {
  68. $katao_user = KataoUserPeer::retrieveByKataoMemberId($katao_member->getId());
  69. }
  70. if (is_null($katao_user)) {
  71. $katao_user = new KataoUser();
  72. }
  73. $this->widgetSchema['is_admin'] = new wpWidgetFormInputCheckbox();
  74. $this->widgetSchema['is_admin']->setOption('value_attribute_value', 1);
  75. if ((bool)$katao_user->getIsAdmin()) {
  76. $this->widgetSchema['is_admin']->setAttribute('checked', 'checked');
  77. }
  78. $this->validatorSchema['is_admin'] = new sfValidatorPass();
  79. $this->widgetSchema['user_email'] = new sfWidgetFormInput(array(), array('style' => 'width: 250px'));
  80. $this->validatorSchema['user_email'] = new sfValidatorString(array('max_length' => 255, 'required' => false));
  81. $this->widgetSchema->setLabel('user_email', 'Email');
  82. $this->setDefault('user_email', $katao_user->getEmail());
  83. $this->widgetSchema['user_address1'] = new sfWidgetFormInput(array(), array('style' => 'width: 250px'));
  84. $this->validatorSchema['user_address1'] = new sfValidatorString(array('max_length' => 255));
  85. $this->widgetSchema->setLabel('user_address1', 'Adresse');
  86. $this->setDefault('user_address1', $katao_user->getAddress1());
  87. $this->widgetSchema['user_address2'] = new sfWidgetFormInput(array(), array('style' => 'width: 250px'));
  88. $this->validatorSchema['user_address2'] = new sfValidatorString(array('max_length' => 255, 'required' => false));
  89. $this->widgetSchema->setLabel('user_address2', 'Complément');
  90. $this->setDefault('user_address2', $katao_user->getAddress2());
  91. $this->widgetSchema['user_zip'] = new sfWidgetFormInput(array(), array('style' => 'width: 43px'));
  92. $this->validatorSchema['user_zip'] = new sfValidatorString(array('max_length' => 255, 'required' => false));
  93. $this->widgetSchema->setLabel('user_zip', 'Code postal');
  94. $this->setDefault('user_zip', $katao_user->getZip());
  95. $this->widgetSchema['user_city'] = new sfWidgetFormInput(array(), array('style' => 'width: 200px'));
  96. $this->validatorSchema['user_city'] = new sfValidatorString(array('max_length' => 255));
  97. $this->widgetSchema->setLabel('user_city', 'Ville');
  98. $this->setDefault('user_city', $katao_user->getCity());
  99. $this->widgetSchema['user_phone'] = new sfWidgetFormInput(array(), array('style' => 'width: 85px'));
  100. $this->validatorSchema['user_phone'] = new sfValidatorString(array('max_length' => 255, 'required' => false));
  101. $this->widgetSchema->setLabel('user_phone', 'Téléphone');
  102. $this->setDefault('user_phone', $katao_user->getPhone());
  103. $this->widgetSchema['user_fax'] = new sfWidgetFormInput(array(), array('style' => 'width: 85px'));
  104. $this->validatorSchema['user_fax'] = new sfValidatorString(array('max_length' => 255, 'required' => false));
  105. $this->widgetSchema->setLabel('user_fax', 'Fax');
  106. $this->setDefault('user_fax', $katao_user->getFax());
  107. $this->widgetSchema['user_status'] = new sfWidgetFormSelect(array('choices' => KataoUserPeer::getAllStatuses()));
  108. $this->validatorSchema['user_status'] = new sfValidatorInteger();
  109. $this->widgetSchema->setLabel('user_status', 'Etat');
  110. $this->setDefault('user_status', $katao_user->getStatus());
  111. $this->widgetSchema['user_login'] = new sfWidgetFormInput();
  112. $this->validatorSchema['user_login'] = new sfValidatorString(array('max_length' => 255));
  113. $this->widgetSchema->setLabel('user_login', 'Login');
  114. $this->setDefault('user_login', $katao_user->getLogin());
  115. $this->widgetSchema['user_password'] = new sfWidgetFormInput();
  116. $this->validatorSchema['user_password'] = new sfValidatorString(array('max_length' => 255));
  117. $this->widgetSchema->setLabel('user_password', 'Mot de passe');
  118. $this->setDefault('user_password', $katao_user->getPassword());
  119. $this->widgetSchema['update_gmap'] = new wpWidgetFormInputCheckbox();
  120. $this->widgetSchema['update_gmap']->setOption('value_attribute_value', 1);
  121. $this->widgetSchema->setLabel('update_gmap', 'Mettre à jour les coordonnées Google Map automatiquement');
  122. $this->validatorSchema['update_gmap'] = new sfValidatorPass();
  123. $this->validatorSchema->setPostValidator(new sfValidatorCallback(array('callback' => array($this, 'checkGodfatherWithoutEmail')), array('invalid' => 'Cet adhérent est parrain. Vous devez saisir une adresse email.')));
  124. }
  125. public function checkGodfatherWithoutEmail($validator, $value) {
  126. $email = sfContext::getInstance()->getRequest()->getParameter('katao_member[user_email]');
  127. if (!$email && 0 < $this->getObject()->countKataoMembersRelatedByKataoMemberId()) {
  128. throw new sfValidatorError($validator, 'invalid');
  129. }
  130. return $value;
  131. }
  132. protected function doSave($con = null) {
  133. $katao_user =/*(KataoUser)*/ $this->getObject()->isNew()?new KataoUser():KataoUserPeer::retrieveByKataoMemberId($this->getObject()->getId());
  134. $katao_user->setIsAdmin($this->getValue('is_admin'));
  135. $katao_user->setEmail($this->getValue('user_email'));
  136. $katao_user->setAddress1($this->getValue('user_address1'));
  137. $katao_user->setAddress2($this->getValue('user_address2'));
  138. $katao_user->setZip($this->getValue('user_zip'));
  139. $katao_user->setCity($this->getValue('user_city'));
  140. $katao_user->setPhone($this->getValue('user_phone'));
  141. $katao_user->setFax($this->getValue('user_fax'));
  142. $katao_user->setStatus($this->getValue('user_status'));
  143. $katao_user->setLogin($this->getValue('user_login'));
  144. $katao_user->setPassword($this->getValue('user_password'));
  145. if ($this->getValue('update_gmap')) {
  146. $katao_user->initGmapCoordinates(true);
  147. }
  148. $katao_user->save($con);
  149. $return = parent::doSave($con);
  150. $katao_user->setKataoMember($this->getObject());
  151. $katao_user->save();
  152. return $return;
  153. }
  154. }