PageRenderTime 48ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/classes/validateur/Commande/CommandeDetailReservationValid.php

http://zeybux.googlecode.com/
PHP | 351 lines | 267 code | 13 blank | 71 comment | 39 complexity | fd65b13cfd143d0b82e5956546661c67 MD5 | raw file
  1. <?php
  2. //****************************************************************
  3. //
  4. // Createur : Julien PIERRE
  5. // Date de creation : 14/10/2010
  6. // Fichier : CommandeDetailReservationValid.php
  7. //
  8. // Description : ClasseCommandeDetailReservationValid
  9. //
  10. //****************************************************************
  11. // Inclusion des classes
  12. include_once(CHEMIN_CLASSES_UTILS . "TestFonction.php" );
  13. include_once(CHEMIN_CLASSES_VR . "VRerreur.php" );
  14. include_once(CHEMIN_CLASSES_VR . MOD_COMMANDE . "/CommandeDetailReservationVR.php" );
  15. include_once(CHEMIN_CLASSES_MANAGERS . "ProduitManager.php");
  16. include_once(CHEMIN_CLASSES_MANAGERS . "DetailCommandeManager.php");
  17. /**
  18. * @name CommandeDetailReservationVR
  19. * @author Julien PIERRE
  20. * @since 14/10/2010
  21. * @desc Classe représentant une CommandeDetailReservationValid
  22. */
  23. class CommandeDetailReservationValid
  24. {
  25. /**
  26. * @name validAjout($pData)
  27. * @returnCommandeDetailReservationVR
  28. * @desc Test la validite de l'élément
  29. */
  30. public static function validAjout($pData) {
  31. $lVr = new CommandeDetailReservationVR();
  32. //Tests inputs
  33. if(!isset($pData['stoQuantite'])) {
  34. $lVr->setValid(false);
  35. $lVr->getStoQuantite()->setValid(false);
  36. $lErreur = new VRerreur();
  37. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  38. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  39. $lVr->getStoQuantite()->addErreur($lErreur);
  40. }
  41. if(!isset($pData['stoIdDetailCommande'])) {
  42. $lVr->setValid(false);
  43. $lVr->getStoIdDetailCommande()->setValid(false);
  44. $lErreur = new VRerreur();
  45. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  46. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  47. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  48. }
  49. if($lVr->getValid()) {
  50. //Tests Techniques
  51. if(!TestFonction::checkLength($pData['stoQuantite'],0,12)) {
  52. $lVr->setValid(false);
  53. $lVr->getStoQuantite()->setValid(false);
  54. $lErreur = new VRerreur();
  55. $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
  56. $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
  57. $lVr->getStoQuantite()->addErreur($lErreur);
  58. }
  59. if(!is_float((float)$pData['stoQuantite'])) {
  60. $lVr->setValid(false);
  61. $lVr->getStoQuantite()->setValid(false);
  62. $lErreur = new VRerreur();
  63. $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
  64. $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
  65. $lVr->getStoQuantite()->addErreur($lErreur);
  66. }
  67. if(!TestFonction::checkLength($pData['stoIdDetailCommande'],0,11)) {
  68. $lVr->setValid(false);
  69. $lVr->getStoIdDetailCommande()->setValid(false);
  70. $lErreur = new VRerreur();
  71. $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
  72. $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
  73. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  74. }
  75. if(!is_float((float)$pData['stoIdDetailCommande'])) {
  76. $lVr->setValid(false);
  77. $lVr->getStoIdDetailCommande()->setValid(false);
  78. $lErreur = new VRerreur();
  79. $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
  80. $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
  81. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  82. }
  83. //Tests Fonctionnels
  84. if(empty($pData['stoQuantite'])) {
  85. $lVr->setValid(false);
  86. $lVr->getStoQuantite()->setValid(false);
  87. $lErreur = new VRerreur();
  88. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  89. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  90. $lVr->getStoQuantite()->addErreur($lErreur);
  91. }
  92. if(empty($pData['stoIdDetailCommande'])) {
  93. $lVr->setValid(false);
  94. $lVr->getStoIdDetailCommande()->setValid(false);
  95. $lErreur = new VRerreur();
  96. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  97. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  98. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  99. }
  100. if($pData['stoQuantite'] >= 0) {
  101. $lVr->setValid(false);
  102. $lVr->getStoQuantite()->setValid(false);
  103. $lErreur = new VRerreur();
  104. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  105. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  106. $lVr->getStoQuantite()->addErreur($lErreur);
  107. }
  108. $lDcom = DetailCommandeManager::select($pData['stoIdDetailCommande']);
  109. if($lDcom->getId() == null) {
  110. $lVr->setValid(false);
  111. $lVr->getLog()->setValid(false);
  112. $lErreur = new VRerreur();
  113. $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
  114. $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
  115. $lVr->getLog()->addErreur($lErreur);
  116. } else {
  117. $lPdt = ProduitManager::select($lDcom->getIdProduit());
  118. if($lPdt->getId() == null) {
  119. $lVr->setValid(false);
  120. $lVr->getLog()->setValid(false);
  121. $lErreur = new VRerreur();
  122. $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
  123. $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
  124. $lVr->getLog()->addErreur($lErreur);
  125. } else {
  126. $lQte = $pData['stoQuantite'] * -1;
  127. if($lQte > $lPdt->getMaxProduitCommande()) {
  128. $lVr->setValid(false);
  129. $lVr->getStoIdProduit()->setValid(false);
  130. $lErreur = new VRerreur();
  131. $lErreur->setCode(MessagesErreurs::ERR_217_CODE);
  132. $lErreur->setMessage(MessagesErreurs::ERR_217_MSG);
  133. $lVr->getStoIdProduit()->addErreur($lErreur);
  134. }
  135. if($lQte > $lPdt->getStockReservation()) {
  136. $lVr->setValid(false);
  137. $lVr->getStoIdProduit()->setValid(false);
  138. $lErreur = new VRerreur();
  139. $lErreur->setCode(MessagesErreurs::ERR_218_CODE);
  140. $lErreur->setMessage(MessagesErreurs::ERR_218_MSG);
  141. $lVr->getStoIdProduit()->addErreur($lErreur);
  142. }
  143. }
  144. }
  145. }
  146. return $lVr;
  147. }
  148. /**
  149. * @name validDelete($pData)
  150. * @returnCommandeDetailReservationVR
  151. * @desc Test la validite de l'élément
  152. */
  153. /*public static function validDelete($pData) {
  154. $lVr = new CommandeDetailReservationVR();
  155. //Tests inputs
  156. if(!isset($pData['id'])) {
  157. $lVr->setValid(false);
  158. $lVr->getId()->setValid(false);
  159. $lErreur = new VRerreur();
  160. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  161. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  162. $lVr->getId()->addErreur($lErreur);
  163. }
  164. if($lVr->getValid()) {
  165. if(!is_int((int)$pData['id'])) {
  166. $lVr->setValid(false);
  167. $lVr->getId()->setValid(false);
  168. $lErreur = new VRerreur();
  169. $lErreur->setCode(MessagesErreurs::ERR_104_CODE);
  170. $lErreur->setMessage(MessagesErreurs::ERR_104_MSG);
  171. $lVr->getId()->addErreur($lErreur);
  172. } else {
  173. $lStockService = new StockService();
  174. $lStock = $lStockService->get($pData['id']);
  175. if($lStock->getId() != $pData['id']) {
  176. $lVr->setValid(false);
  177. $lVr->getId()->setValid(false);
  178. $lErreur = new VRerreur();
  179. $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
  180. $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
  181. $lVr->getId()->addErreur($lErreur);
  182. }
  183. }
  184. }
  185. return $lVr;
  186. }*/
  187. /**
  188. * @name validUpdate($pData)
  189. * @returnCommandeDetailReservationVR
  190. * @desc Test la validite de l'élément
  191. */
  192. public static function validUpdate($pData) {
  193. $lVr = new CommandeDetailReservationVR();
  194. //Tests inputs
  195. if(!isset($pData['stoQuantite'])) {
  196. $lVr->setValid(false);
  197. $lVr->getStoQuantite()->setValid(false);
  198. $lErreur = new VRerreur();
  199. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  200. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  201. $lVr->getStoQuantite()->addErreur($lErreur);
  202. }
  203. if(!isset($pData['stoIdDetailCommande'])) {
  204. $lVr->setValid(false);
  205. $lVr->getStoIdDetailCommande()->setValid(false);
  206. $lErreur = new VRerreur();
  207. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  208. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  209. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  210. }
  211. if(!isset($pData['idOperation'])) {
  212. $lVr->setValid(false);
  213. $lVr->getLog()->setValid(false);
  214. $lErreur = new VRerreur();
  215. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  216. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  217. $lVr->getLog()->addErreur($lErreur);
  218. }
  219. if($lVr->getValid()) {
  220. //Tests Techniques
  221. if(!TestFonction::checkLength($pData['stoQuantite'],0,12)) {
  222. $lVr->setValid(false);
  223. $lVr->getStoQuantite()->setValid(false);
  224. $lErreur = new VRerreur();
  225. $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
  226. $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
  227. $lVr->getStoQuantite()->addErreur($lErreur);
  228. }
  229. if(!is_float((float)$pData['stoQuantite'])) {
  230. $lVr->setValid(false);
  231. $lVr->getStoQuantite()->setValid(false);
  232. $lErreur = new VRerreur();
  233. $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
  234. $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
  235. $lVr->getStoQuantite()->addErreur($lErreur);
  236. }
  237. if(!TestFonction::checkLength($pData['stoIdDetailCommande'],0,11)) {
  238. $lVr->setValid(false);
  239. $lVr->getStoIdDetailCommande()->setValid(false);
  240. $lErreur = new VRerreur();
  241. $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
  242. $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
  243. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  244. }
  245. if(!is_float((float)$pData['stoIdDetailCommande'])) {
  246. $lVr->setValid(false);
  247. $lVr->getStoIdDetailCommande()->setValid(false);
  248. $lErreur = new VRerreur();
  249. $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
  250. $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
  251. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  252. }
  253. if(!is_int((int)$pData['idOperation'])) {
  254. $lVr->setValid(false);
  255. $lVr->getLog()->setValid(false);
  256. $lErreur = new VRerreur();
  257. $lErreur->setCode(MessagesErreurs::ERR_104_CODE);
  258. $lErreur->setMessage(MessagesErreurs::ERR_104_MSG);
  259. $lVr->getLog()->addErreur($lErreur);
  260. }
  261. //Tests Fonctionnels
  262. if(empty($pData['stoQuantite'])) {
  263. $lVr->setValid(false);
  264. $lVr->getStoQuantite()->setValid(false);
  265. $lErreur = new VRerreur();
  266. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  267. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  268. $lVr->getStoQuantite()->addErreur($lErreur);
  269. }
  270. if(empty($pData['stoIdDetailCommande'])) {
  271. $lVr->setValid(false);
  272. $lVr->getStoIdDetailCommande()->setValid(false);
  273. $lErreur = new VRerreur();
  274. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  275. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  276. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  277. }
  278. if(empty($pData['idOperation'])) {
  279. $lVr->setValid(false);
  280. $lVr->getLog()->setValid(false);
  281. $lErreur = new VRerreur();
  282. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  283. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  284. $lVr->getLog()->addErreur($lErreur);
  285. }
  286. if($pData['stoQuantite'] >= 0) {
  287. $lVr->setValid(false);
  288. $lVr->getStoQuantite()->setValid(false);
  289. $lErreur = new VRerreur();
  290. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  291. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  292. $lVr->getStoQuantite()->addErreur($lErreur);
  293. }
  294. $lDcom = DetailCommandeManager::select($pData['stoIdDetailCommande']);
  295. if($lDcom->getId() == null) {
  296. $lVr->setValid(false);
  297. $lVr->getLog()->setValid(false);
  298. $lErreur = new VRerreur();
  299. $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
  300. $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
  301. $lVr->getLog()->addErreur($lErreur);
  302. } else {
  303. $lPdt = ProduitManager::select($lDcom->getIdProduit());
  304. if($lPdt->getId() == null) {
  305. $lVr->setValid(false);
  306. $lVr->getLog()->setValid(false);
  307. $lErreur = new VRerreur();
  308. $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
  309. $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
  310. $lVr->getLog()->addErreur($lErreur);
  311. } else {
  312. $lQte = $pData['stoQuantite'] * -1;
  313. if($lQte > $lPdt->getMaxProduitCommande()) {
  314. $lVr->setValid(false);
  315. $lVr->getStoIdProduit()->setValid(false);
  316. $lErreur = new VRerreur();
  317. $lErreur->setCode(MessagesErreurs::ERR_217_CODE);
  318. $lErreur->setMessage(MessagesErreurs::ERR_217_MSG);
  319. $lVr->getStoIdProduit()->addErreur($lErreur);
  320. }
  321. $StockService = new StockService();
  322. $lStocks = $StockService->getDetailReservation($pData['idOperation']);
  323. $lStock = $lStocks[0];
  324. $lQuantiteReservation = $lStock->getQuantite();
  325. if($lQte > ($lPdt->getStockReservation() - $lQuantiteReservation)) {
  326. $lVr->setValid(false);
  327. $lVr->getStoIdProduit()->setValid(false);
  328. $lErreur = new VRerreur();
  329. $lErreur->setCode(MessagesErreurs::ERR_218_CODE);
  330. $lErreur->setMessage(MessagesErreurs::ERR_218_MSG);
  331. $lVr->getStoIdProduit()->addErreur($lErreur);
  332. }
  333. }
  334. }
  335. }
  336. return $lVr;
  337. }
  338. }