diff --git a/application/modules/achatclient/controllers/IndexController.php b/application/modules/achatclient/controllers/IndexController.php index 1f3a9335c..ac8b2ff46 100644 --- a/application/modules/achatclient/controllers/IndexController.php +++ b/application/modules/achatclient/controllers/IndexController.php @@ -11,13 +11,17 @@ class Achatclient_IndexController extends Zend_Controller_Action protected $logger; protected $tranches=array( - '200' => array('montant' => 2000,'montantht' => 1667, 'tva' => 333, ), - '500' => array('montant' => 5000,'montantht' => 4167, 'tva' => 833, ), - '1000' => array('montant' => 10000,'montantht' => 8333, 'tva' => 1667, ), + '195' => array( + '200' => array('montant' => 2000,'montantht' => 1667, 'tva' => 333, ), + '500' => array('montant' => 5000,'montantht' => 4167, 'tva' => 833, ), + '1000' => array('montant' => 10000,'montantht' => 8333, 'tva' => 1667, ), + ), ); protected $maxcredit=2000; + protected $libdroits = 'searchent'; + public function init() { if (Zend_Registry::isRegistered('logger')) { @@ -26,7 +30,7 @@ class Achatclient_IndexController extends Zend_Controller_Action $autoloader = Zend_Loader_Autoloader::getInstance(); // --- Theme $this->theme = Zend_Registry::get('theme'); - $request = $this->getRequest(); + $this->view->title='Votre compte crédits en ligne'; require_once 'Scores/WsScores.php'; } @@ -35,40 +39,102 @@ class Achatclient_IndexController extends Zend_Controller_Action */ public function indexAction() { + //Validation des droits $user = new Scores_Utilisateur(); - $ok=$user->checkperm('searchent'); + $ok=$user->checkperm($this->libdroits); if(!$ok){ - $this->redirect('/'); + $this->error('index','Fonction indisponible'); } $ws = new WsScores(); $customer_credit = $ws->getCredit(); + $infos=array('user' => $user,'wscredit' => $customer_credit,'tranches' => $this->tranches); if(intval($customer_credit)>$this->maxcredit){ $this->view->msg='Vous détenez déjà le plafond de crédits autorisé.'; + return; } - $infos=array('user' => $user,'wscredit' => $customer_credit); - $this->view->infos=$infos; - var_dump($infos);die; - $this->logger->info(print_r($infos,1)); - if ($infos === false) { + $this->logger->info(print_r($user,1)); + if ($customer_credit === false and false) { + $this->error('index','Compte indisponible'); $this->forward('soap', 'error'); } - //Paybox - Zend_Loader::loadClass('Paybox_System'); - $paybox = new \Paybox\System(false); - $paybox->setUrlPaiement(); - $paybox->setEmail($row->email); - $paybox->setReference($cmdId); - $paybox->setMontant($this->montant); - $paybox->setUrlRepondreA("http://".$request->getHttpHost()."/report/checkpmt"); - $paybox->setUrlParameters("http://".$request->getHttpHost()."/report/retour"); - $paybox->calculateHMAC(); + //Récupération des Parametres + $infos=array('user' => $user,'wscredit' => intval($customer_credit),'tranches' => $this->tranches[$user->getIdClient()]); + //var_dump($infos);die; + $this->view->infos=$infos; + $this->view->submitValue='Commander'; + } + public function paiementAction() + { + //Validation + $request = $this->getRequest(''); + $user = new Scores_Utilisateur(); + $ok=$user->checkperm($this->libdroits); + if(!$ok){ + $this->error('paiement', __LINE__); + } + $nb_credit=$request->getParam('nb_credit'); + if(intval($nb_credit)==0){ + $this->error('paiement','Vous devez définir le nombre de crédits'); + } + $idClient=$user->getIdClient(); + if(intval($idClient)==0){ + $this->error('paiement', __LINE__); + } + if(!isset($this->tranches[$idClient]) || !isset($this->tranches[$idClient][$nb_credit])){ + $this->error('paiement', __LINE__); + } + //Parametrage + + $pbparam=array(); + $pbparams['cmdId']=implode('#',array($user->identity->id,time())); + $pbparams['email']=$user->identity->email; + $pbparams['montant']=$this->tranches[$idClient][$nb_credit]['montant']/100; + $pbparams['montantht']=$this->tranches[$idClient][$nb_credit]['montantht']/100; + $pbparams['tva']=$this->tranches[$idClient][$nb_credit]['tva']/100; + $ws = new WsScores(); + //$customer_credit = $ws->addCredit(); + $insdata=array( + 'idClient' =>$user->identity->idClient, + 'idCmd' => $pbparams['cmdId'], + 'login' => $user->identity->username, + 'nbCredit' => $nb_credit, + 'amount' => $this->tranches[$idClient][$nb_credit]['montant'], + 'amount_ht' => $this->tranches[$idClient][$nb_credit]['montantht'], + 'amount_tva' => $this->tranches[$idClient][$nb_credit]['tva'], + 'currency' => 'EUR', + 'valid' => 0, + 'date_sent' => Date('Y-m-d H:i:s'), + 'date_received' => null, + 'paybox_answer' => json_encode(array('user' => $user)), + 'comment' => 'Beforecall', + ); + /*@todo + $ws = new WsScores(); + $customer_credit = $ws->addCredit($insdata); + */ + //Paybox + Zend_Loader::loadClass('Paybox_Config'); + Zend_Loader::loadClass('Paybox_System'); + $paybox = new Paybox_System(true); + $paybox->setUrlPaiement(); + $paybox->setEmail($pbparams['email']); + $paybox->setReference($pbparams['cmdId']); + $paybox->setMontant($pbparams['montant']); + //echo "http://".$request->getHttpHost()."/achatclient/pbanswer";die; + //$paybox->setUrlRepondreA("http://".$request->getHttpHost()."/achatclient/checkpmt"); + $paybox->setUrlParameters("http://".$request->getHttpHost()."/achatclient/pbanswer"); + $paybox->calculateHMAC(); + //$_POST=$paybox->getFormParameters(); + //$this->redirect($paybox->getFormUrl()); + $this->view->pbparams = $pbparams; $this->view->PayboxUrl = $paybox->getFormUrl(); $this->view->PayboxValues = $paybox->getFormParameters(); - //$pb=new Paybox_System('test'); - //var_dump($pb); - } + } + public function pbanswer(){ + echo 'thanks';die; + } /** * Sélection du mode de paiement */ @@ -130,6 +196,21 @@ class Achatclient_IndexController extends Zend_Controller_Action } } + public function footerAction(){ + + } + + private function error($ligne=0,$message=""){ + switch($ligne){ + case "index": + case "paiement": + $this->view->msg=$message; + throw new Exception($message); + break; + default: + echo $ligne.' : '.$message;die; + } + } } ?> diff --git a/application/modules/achatclient/views/default/scripts/index/index.phtml b/application/modules/achatclient/views/default/scripts/index/index.phtml index 2b1035556..7023d1c63 100644 --- a/application/modules/achatclient/views/default/scripts/index/index.phtml +++ b/application/modules/achatclient/views/default/scripts/index/index.phtml @@ -1,30 +1,37 @@ +
-
- - - - - - - - - - - - + +

titre?>

+ +

Votre compte crédit

+
+

+Le compte infos['user']->identity->username)?$this->infos['user']->identity->username:""?> détient actuellement infos['wscredit'])?> crédits.
+

+
msg?>
+
+infos) && isset($this->infos['tranches'])):?> +

Vos choix de commande

+
+
+ infos['tranches'] as $credit => $item):?> + checked="checked" />   Crédits ( Euros) + +
+
+

+ +

+
+
+ +
-
- - - - - - - - - - - - PBX_EFFECTUE - -
\ No newline at end of file diff --git a/application/modules/achatclient/views/default/scripts/index/paiement.phtml b/application/modules/achatclient/views/default/scripts/index/paiement.phtml index 7ddf35eaa..e9a4e2997 100644 --- a/application/modules/achatclient/views/default/scripts/index/paiement.phtml +++ b/application/modules/achatclient/views/default/scripts/index/paiement.phtml @@ -1,36 +1,23 @@ + - - - CmdID ) {?> - -
- -
- -

Informations de la commande

- -
-
Siren :
-
Siren?>
-
Raison Sociale :
-
RaisonSociale?>
-
Adresse :
-
AdresseL1?>
-
-
AdresseL2?>
-
- -
Prix : montant?>
+
+

ACHAT de CREDITS Confirmation

+ CmdID ):?> +

Informations de la commande

+
+ Identifiant de commande : pbparams['cmdId']?>
+ Une fois le paiement effectué cliquer sur le bouton "Retour boutique" afin de + consulter vos documents, si la redirection automatique ne se fait pas.
-
- -

Sélection du mode de paiement

- +

Sélection du mode de paiement

+
PayboxValues) {?> PayboxVerif?>
@@ -40,24 +27,15 @@ -
- Une fois le paiement effectué cliquer sur le bouton "Retour boutique" afin de - consulter vos documents, si la redirection automatique ne se fait pas. -
-
- - - -
-
+
Erreur !
- +
diff --git a/library/Paybox/Config.php b/library/Paybox/Config.php index dba030ffe..e7cdcde79 100644 --- a/library/Paybox/Config.php +++ b/library/Paybox/Config.php @@ -22,9 +22,11 @@ class Paybox_Config public function __construct($test = false) { if ($test === false) { + Zend_Loader::loadClass('Paybox_Config_Prod'); $config = new Paybox_Config_Prod(); } else { - $config = new Paybox_Config_Test(); + Zend_Loader::loadClass('Paybox_Config_Test'); + $config = new Paybox_Config_Test(); } foreach ( $config->variables as $var => $value ) { diff --git a/library/Paybox/Config/Test.php b/library/Paybox/Config/Test.php index 5eb5fc928..40b711ec7 100644 --- a/library/Paybox/Config/Test.php +++ b/library/Paybox/Config/Test.php @@ -1,8 +1,8 @@ '5136925', - 'RANG' => '001', + 'RANG' => '01', 'IDENTIFIANT' => '533616985', ); diff --git a/library/Scores/WsScores.php b/library/Scores/WsScores.php index 0d16a2ba7..dd4bd42b7 100644 --- a/library/Scores/WsScores.php +++ b/library/Scores/WsScores.php @@ -3399,7 +3399,7 @@ class WsScores $message.= "\n\n"; } - $message.= "Referer : ".$_SERVER['HTTP_REFERER']."\n\n"; + $message.= "Referer : ".isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:''."\n\n"; $message.= "Requete :\n ".$requete."\n"; $message.= "Reponse :\n ".$reponse."\n";