/classes/validateur/Commande/DetailReservationMarcheValid.php

http://zeybux.googlecode.com/ · PHP · 454 lines · 336 code · 23 blank · 95 comment · 64 complexity · a9cb60aa783b69cf445ae1659fd915dc MD5 · raw file

  1. <?php
  2. //****************************************************************
  3. //
  4. // Createur : Julien PIERRE
  5. // Date de creation : 14/10/2010
  6. // Fichier : DetailReservationMarcheValid.php
  7. //
  8. // Description : ClasseDetailReservationMarcheValid
  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 . "/DetailReservationMarcheVR.php" );
  15. include_once(CHEMIN_CLASSES_MANAGERS . "ProduitManager.php");
  16. include_once(CHEMIN_CLASSES_MANAGERS . "DetailCommandeManager.php");
  17. /**
  18. * @name DetailReservationMarcheVR
  19. * @author Julien PIERRE
  20. * @since 14/10/2010
  21. * @desc Classe représentant une DetailReservationMarcheValid
  22. */
  23. class DetailReservationMarcheValid
  24. {
  25. /**
  26. * @name validAjout($pData)
  27. * @return DetailReservationMarcheVR
  28. * @desc Test la validite de l'élément
  29. */
  30. public static function validAjout($pData) {
  31. $lVr = new DetailReservationMarcheVR();
  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(!isset($pData['idOperation'])) {
  50. $lVr->setValid(false);
  51. $lVr->getLog()->setValid(false);
  52. $lErreur = new VRerreur();
  53. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  54. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  55. $lVr->getLog()->addErreur($lErreur);
  56. }
  57. if($lVr->getValid()) {
  58. //Tests Techniques
  59. if(!TestFonction::checkLength($pData['stoQuantite'],0,12)) {
  60. $lVr->setValid(false);
  61. $lVr->getStoQuantite()->setValid(false);
  62. $lErreur = new VRerreur();
  63. $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
  64. $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
  65. $lVr->getStoQuantite()->addErreur($lErreur);
  66. }
  67. if(!is_float((float)$pData['stoQuantite'])) {
  68. $lVr->setValid(false);
  69. $lVr->getStoQuantite()->setValid(false);
  70. $lErreur = new VRerreur();
  71. $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
  72. $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
  73. $lVr->getStoQuantite()->addErreur($lErreur);
  74. }
  75. if(!TestFonction::checkLength($pData['stoIdDetailCommande'],0,11)) {
  76. $lVr->setValid(false);
  77. $lVr->getStoIdDetailCommande()->setValid(false);
  78. $lErreur = new VRerreur();
  79. $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
  80. $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
  81. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  82. }
  83. if(!is_float((float)$pData['stoIdDetailCommande'])) {
  84. $lVr->setValid(false);
  85. $lVr->getStoIdDetailCommande()->setValid(false);
  86. $lErreur = new VRerreur();
  87. $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
  88. $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
  89. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  90. }
  91. if(!is_int((int)$pData['idOperation'])) {
  92. $lVr->setValid(false);
  93. $lVr->getLog()->setValid(false);
  94. $lErreur = new VRerreur();
  95. $lErreur->setCode(MessagesErreurs::ERR_104_CODE);
  96. $lErreur->setMessage(MessagesErreurs::ERR_104_MSG);
  97. $lVr->getLog()->addErreur($lErreur);
  98. }
  99. //Tests Fonctionnels
  100. if(empty($pData['stoQuantite'])) {
  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. if(empty($pData['stoIdDetailCommande'])) {
  109. $lVr->setValid(false);
  110. $lVr->getStoIdDetailCommande()->setValid(false);
  111. $lErreur = new VRerreur();
  112. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  113. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  114. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  115. }
  116. if(empty($pData['idOperation'])) {
  117. $lVr->setValid(false);
  118. $lVr->getLog()->setValid(false);
  119. $lErreur = new VRerreur();
  120. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  121. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  122. $lVr->getLog()->addErreur($lErreur);
  123. }
  124. if($pData['stoQuantite'] >= 0) {
  125. $lVr->setValid(false);
  126. $lVr->getStoQuantite()->setValid(false);
  127. $lErreur = new VRerreur();
  128. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  129. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  130. $lVr->getStoQuantite()->addErreur($lErreur);
  131. }
  132. $lDcom = DetailCommandeManager::select($pData['stoIdDetailCommande']);
  133. if($lDcom->getId() == null) {
  134. $lVr->setValid(false);
  135. $lVr->getLog()->setValid(false);
  136. $lErreur = new VRerreur();
  137. $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
  138. $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
  139. $lVr->getLog()->addErreur($lErreur);
  140. } else {
  141. $lPdt = ProduitManager::select($lDcom->getIdProduit());
  142. if($lPdt->getId() == null) {
  143. $lVr->setValid(false);
  144. $lVr->getLog()->setValid(false);
  145. $lErreur = new VRerreur();
  146. $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
  147. $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
  148. $lVr->getLog()->addErreur($lErreur);
  149. } else {
  150. $lQte = $pData['stoQuantite'] * -1;
  151. if($lPdt->getMaxProduitCommande() != -1 && $lQte > $lPdt->getMaxProduitCommande()) {
  152. $lVr->setValid(false);
  153. $lVr->getStoQuantite()->setValid(false);
  154. $lErreur = new VRerreur();
  155. $lErreur->setCode(MessagesErreurs::ERR_217_CODE);
  156. $lErreur->setMessage(MessagesErreurs::ERR_217_MSG);
  157. $lVr->getStoQuantite()->addErreur($lErreur);
  158. }
  159. /*if($lPdt->getStockInitial() != -1 && $lQte > $lPdt->getStockReservation()) {
  160. $lVr->setValid(false);
  161. $lVr->getStoQuantite()->setValid(false);
  162. $lErreur = new VRerreur();
  163. $lErreur->setCode(MessagesErreurs::ERR_218_CODE);
  164. $lErreur->setMessage(MessagesErreurs::ERR_218_MSG);
  165. $lVr->getStoQuantite()->addErreur($lErreur);
  166. }*/
  167. $lQteMax = $lPdt->getStockReservation();
  168. if($pData['idOperation'] != -1) {
  169. $StockService = new StockService();
  170. $lStocks = $StockService->getDetailReservation($pData['idOperation']);
  171. $lContinu = true;
  172. $lQuantiteReservation = 0;
  173. $i = 0;
  174. while($lContinu && isset($lStocks[$i])) {
  175. if( $lStocks[$i]->getIdDetailCommande() == $pData['stoIdDetailCommande']) {
  176. $lQuantiteReservation = $lStocks[$i]->getQuantite();
  177. $lContinu = false;
  178. }
  179. $i++;
  180. }
  181. $lQteMax -= $lQuantiteReservation; // Qté réservation est négative -- = +
  182. }
  183. if($lPdt->getStockInitial() != -1 && $lQte > $lQteMax) {
  184. $lVr->setValid(false);
  185. $lVr->getStoQuantite()->setValid(false);
  186. $lErreur = new VRerreur();
  187. $lErreur->setCode(MessagesErreurs::ERR_218_CODE);
  188. $lErreur->setMessage(MessagesErreurs::ERR_218_MSG);
  189. $lVr->getStoQuantite()->addErreur($lErreur);
  190. }
  191. // La quantité doit être un multiple du lot
  192. if(fmod($lQte, $lDcom->getTaille()) != 0) {
  193. $lVr->setValid(false);
  194. $lVr->getStoQuantite()->setValid(false);
  195. $lErreur = new VRerreur();
  196. $lErreur->setCode(MessagesErreurs::ERR_245_CODE);
  197. $lErreur->setMessage(MessagesErreurs::ERR_245_MSG);
  198. $lVr->getStoQuantite()->addErreur($lErreur);
  199. }
  200. }
  201. }
  202. }
  203. return $lVr;
  204. }
  205. /**
  206. * @name validDelete($pData)
  207. * @returnDetailReservationMarcheVR
  208. * @desc Test la validite de l'élément
  209. */
  210. /*public static function validDelete($pData) {
  211. $lVr = new DetailReservationMarcheVR();
  212. //Tests inputs
  213. if(!isset($pData['id'])) {
  214. $lVr->setValid(false);
  215. $lVr->getId()->setValid(false);
  216. $lErreur = new VRerreur();
  217. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  218. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  219. $lVr->getId()->addErreur($lErreur);
  220. }
  221. if($lVr->getValid()) {
  222. if(!is_int((int)$pData['id'])) {
  223. $lVr->setValid(false);
  224. $lVr->getId()->setValid(false);
  225. $lErreur = new VRerreur();
  226. $lErreur->setCode(MessagesErreurs::ERR_104_CODE);
  227. $lErreur->setMessage(MessagesErreurs::ERR_104_MSG);
  228. $lVr->getId()->addErreur($lErreur);
  229. } else {
  230. $lStockService = new StockService();
  231. $lStock = $lStockService->get($pData['id']);
  232. if($lStock->getId() != $pData['id']) {
  233. $lVr->setValid(false);
  234. $lVr->getId()->setValid(false);
  235. $lErreur = new VRerreur();
  236. $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
  237. $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
  238. $lVr->getId()->addErreur($lErreur);
  239. }
  240. }
  241. }
  242. return $lVr;
  243. }*/
  244. /**
  245. * @name validUpdate($pData)
  246. * @return DetailReservationMarcheVR
  247. * @desc Test la validite de l'élément
  248. */
  249. public static function validUpdate($pData) {
  250. $lVr = new DetailReservationMarcheVR();
  251. //Tests inputs
  252. if(!isset($pData['stoQuantite'])) {
  253. $lVr->setValid(false);
  254. $lVr->getStoQuantite()->setValid(false);
  255. $lErreur = new VRerreur();
  256. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  257. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  258. $lVr->getStoQuantite()->addErreur($lErreur);
  259. }
  260. if(!isset($pData['stoIdDetailCommande'])) {
  261. $lVr->setValid(false);
  262. $lVr->getStoIdDetailCommande()->setValid(false);
  263. $lErreur = new VRerreur();
  264. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  265. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  266. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  267. }
  268. if(!isset($pData['idOperation'])) {
  269. $lVr->setValid(false);
  270. $lVr->getLog()->setValid(false);
  271. $lErreur = new VRerreur();
  272. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  273. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  274. $lVr->getLog()->addErreur($lErreur);
  275. }
  276. if($lVr->getValid()) {
  277. //Tests Techniques
  278. if(!TestFonction::checkLength($pData['stoQuantite'],0,12)) {
  279. $lVr->setValid(false);
  280. $lVr->getStoQuantite()->setValid(false);
  281. $lErreur = new VRerreur();
  282. $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
  283. $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
  284. $lVr->getStoQuantite()->addErreur($lErreur);
  285. }
  286. if(!is_float((float)$pData['stoQuantite'])) {
  287. $lVr->setValid(false);
  288. $lVr->getStoQuantite()->setValid(false);
  289. $lErreur = new VRerreur();
  290. $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
  291. $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
  292. $lVr->getStoQuantite()->addErreur($lErreur);
  293. }
  294. if(!TestFonction::checkLength($pData['stoIdDetailCommande'],0,11)) {
  295. $lVr->setValid(false);
  296. $lVr->getStoIdDetailCommande()->setValid(false);
  297. $lErreur = new VRerreur();
  298. $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
  299. $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
  300. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  301. }
  302. if(!is_float((float)$pData['stoIdDetailCommande'])) {
  303. $lVr->setValid(false);
  304. $lVr->getStoIdDetailCommande()->setValid(false);
  305. $lErreur = new VRerreur();
  306. $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
  307. $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
  308. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  309. }
  310. if(!is_int((int)$pData['idOperation'])) {
  311. $lVr->setValid(false);
  312. $lVr->getLog()->setValid(false);
  313. $lErreur = new VRerreur();
  314. $lErreur->setCode(MessagesErreurs::ERR_104_CODE);
  315. $lErreur->setMessage(MessagesErreurs::ERR_104_MSG);
  316. $lVr->getLog()->addErreur($lErreur);
  317. }
  318. //Tests Fonctionnels
  319. if(empty($pData['stoQuantite'])) {
  320. $lVr->setValid(false);
  321. $lVr->getStoQuantite()->setValid(false);
  322. $lErreur = new VRerreur();
  323. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  324. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  325. $lVr->getStoQuantite()->addErreur($lErreur);
  326. }
  327. if(empty($pData['stoIdDetailCommande'])) {
  328. $lVr->setValid(false);
  329. $lVr->getStoIdDetailCommande()->setValid(false);
  330. $lErreur = new VRerreur();
  331. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  332. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  333. $lVr->getStoIdDetailCommande()->addErreur($lErreur);
  334. }
  335. if(empty($pData['idOperation'])) {
  336. $lVr->setValid(false);
  337. $lVr->getLog()->setValid(false);
  338. $lErreur = new VRerreur();
  339. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  340. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  341. $lVr->getLog()->addErreur($lErreur);
  342. }
  343. if($pData['stoQuantite'] >= 0) {
  344. $lVr->setValid(false);
  345. $lVr->getStoQuantite()->setValid(false);
  346. $lErreur = new VRerreur();
  347. $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
  348. $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
  349. $lVr->getStoQuantite()->addErreur($lErreur);
  350. }
  351. $lDcom = DetailCommandeManager::select($pData['stoIdDetailCommande']);
  352. if($lDcom->getId() == null) {
  353. $lVr->setValid(false);
  354. $lVr->getLog()->setValid(false);
  355. $lErreur = new VRerreur();
  356. $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
  357. $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
  358. $lVr->getLog()->addErreur($lErreur);
  359. } else {
  360. $lPdt = ProduitManager::select($lDcom->getIdProduit());
  361. if($lPdt->getId() == null) {
  362. $lVr->setValid(false);
  363. $lVr->getLog()->setValid(false);
  364. $lErreur = new VRerreur();
  365. $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
  366. $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
  367. $lVr->getLog()->addErreur($lErreur);
  368. } else {
  369. $lQte = $pData['stoQuantite'] * -1;
  370. if($lPdt->getMaxProduitCommande() != -1 && $lQte > $lPdt->getMaxProduitCommande()) {
  371. $lVr->setValid(false);
  372. $lVr->getStoQuantite()->setValid(false);
  373. $lErreur = new VRerreur();
  374. $lErreur->setCode(MessagesErreurs::ERR_217_CODE);
  375. $lErreur->setMessage(MessagesErreurs::ERR_217_MSG);
  376. $lVr->getStoQuantite()->addErreur($lErreur);
  377. }
  378. /*$StockService = new StockService();
  379. $lStocks = $StockService->getDetailReservation($pData['idOperation']);
  380. $lContinu = true;
  381. $lQuantiteReservation = 0;
  382. $i = 0;
  383. while($lContinu && isset($lStocks[$i])) {
  384. if( $lStocks[$i]->getIdDetailCommande() == $pData['stoIdDetailCommande']) {
  385. $lQuantiteReservation = $lStocks[$i]->getQuantite();
  386. $lContinu = false;
  387. }
  388. $i++;
  389. }
  390. */
  391. $lQteMax = $lPdt->getStockReservation();
  392. if($pData['idOperation'] != -1) {
  393. $StockService = new StockService();
  394. $lStocks = $StockService->getDetailReservation($pData['idOperation']);
  395. $lContinu = true;
  396. $lQuantiteReservation = 0;
  397. $i = 0;
  398. while($lContinu && isset($lStocks[$i])) {
  399. if( $lStocks[$i]->getIdDetailCommande() == $pData['stoIdDetailCommande']) {
  400. $lQuantiteReservation = $lStocks[$i]->getQuantite();
  401. $lContinu = false;
  402. }
  403. $i++;
  404. }
  405. $lQteMax -= $lQuantiteReservation; // Qté réservation est négative -- = +
  406. }
  407. if($lPdt->getStockInitial() != -1 && $lQte > $lQteMax) {
  408. $lVr->setValid(false);
  409. $lVr->getStoQuantite()->setValid(false);
  410. $lErreur = new VRerreur();
  411. $lErreur->setCode(MessagesErreurs::ERR_218_CODE);
  412. $lErreur->setMessage(MessagesErreurs::ERR_218_MSG);
  413. $lVr->getStoQuantite()->addErreur($lErreur);
  414. }
  415. // La quantité doit être un multiple du lot
  416. if(fmod($lQte, $lDcom->getTaille()) != 0) {
  417. $lVr->setValid(false);
  418. $lVr->getStoQuantite()->setValid(false);
  419. $lErreur = new VRerreur();
  420. $lErreur->setCode(MessagesErreurs::ERR_245_CODE);
  421. $lErreur->setMessage(MessagesErreurs::ERR_245_MSG);
  422. $lVr->getStoQuantite()->addErreur($lErreur);
  423. }
  424. }
  425. }
  426. }
  427. return $lVr;
  428. }
  429. }
  430. ?>