private function pagarPresencial($paso, $post) { /*if(is_string($post)){ $post = ($post=="true"); }*/ $modelPago = null; if ($paso === null) { $paso = Yii::app()->params->pagar['pasos'][2]; } if (!in_array($paso, Yii::app()->params->pagar['pasosDisponibles']['presencial'])) { throw new CHttpException(404, 'Página solicitada no existe.'); } $objSectorCiudad = Yii::app()->session[Yii::app()->params->sesion['sectorCiudadEntrega']]; if (isset(Yii::app()->session[Yii::app()->params->sesion['carroPagarForm']]) && Yii::app()->session[Yii::app()->params->sesion['carroPagarForm']] != null) { $modelPago = Yii::app()->session[Yii::app()->params->sesion['carroPagarForm']]; } else { $modelPago = new FormaPagoForm(); $modelPago->identificacionUsuario = Yii::app()->user->name; $modelPago->consultarHorario($objSectorCiudad); Yii::app()->session[Yii::app()->params->sesion['carroPagarForm']] = $modelPago; } //$modelPago->setScenario($paso); if ($post) { $siguiente = Yii::app()->getRequest()->getPost('siguiente', null); if ($siguiente === null) { echo CJSON::encode(array('result' => 'error', 'response' => 'Solicitud inválida')); Yii::app()->end(); } switch ($paso) { case Yii::app()->params->pagar['pasos'][2]: $form = new FormaPagoForm($paso); $form->identificacionUsuario = Yii::app()->user->name; if (isset($_POST['FormaPagoForm'])) { $form->attributes = $_POST['FormaPagoForm']; } if ($form->validate()) { $modelPago->fechaEntrega = $form->fechaEntrega; $modelPago->telefonoContacto = $form->telefonoContacto; $modelPago->comentario = $form->comentario; $modelPago->pasoValidado[$paso] = $paso; Yii::app()->session[Yii::app()->params->sesion['carroPagarForm']] = $modelPago; echo CJSON::encode(array('result' => 'ok', 'response' => 'Datos guardados', 'redirect' => $this->createUrl("/carro/pagar", array('paso' => $siguiente)))); Yii::app()->end(); } else { echo CActiveForm::validate($form); Yii::app()->end(); } break; case Yii::app()->params->pagar['pasos'][3]: $form = new FormaPagoForm($paso); $form->identificacionUsuario = Yii::app()->user->name; $form->bono = $modelPago->bono; if (isset($_POST['FormaPagoForm'])) { $form->attributes = $_POST['FormaPagoForm']; } if ($form->validate()) { $modelPago->pasoValidado[$paso] = $paso; $modelPago->idFormaPago = $form->idFormaPago; $modelPago->numeroTarjeta = $form->numeroTarjeta; $modelPago->cuotasTarjeta = $form->cuotasTarjeta; $modelPago->usoBono = $form->usoBono; Yii::app()->session[Yii::app()->params->sesion['carroPagarForm']] = $modelPago; echo CJSON::encode(array('result' => 'ok', 'response' => 'Datos guardados', 'redirect' => $this->createUrl("/carro/pagar", array('paso' => $siguiente)))); Yii::app()->end(); } else { echo CActiveForm::validate($form); Yii::app()->end(); } break; case Yii::app()->params->pagar['pasos'][4]: if ($siguiente != "finalizar") { echo CJSON::encode(array('result' => 'ok', 'response' => 'Datos guardados', 'redirect' => $this->createUrl("/carro/pagar", array('paso' => $siguiente)))); Yii::app()->end(); } $form = new FormaPagoForm($paso); $form->identificacionUsuario = Yii::app()->user->name; if (isset($_POST['FormaPagoForm'])) { $form->attributes = $_POST['FormaPagoForm']; } if ($form->validate()) { $modelPago->pasoValidado[$paso] = $paso; $modelPago->confirmacion = $form->confirmacion; Yii::app()->session[Yii::app()->params->sesion['carroPagarForm']] = $modelPago; echo CJSON::encode(array('result' => 'ok', 'response' => "Datos guardados", 'redirect' => $this->createUrl("/carro/comprar"))); Yii::app()->end(); } else { echo CActiveForm::validate($form); Yii::app()->end(); } break; default: echo CJSON::encode(array('result' => 'error', 'response' => 'Paso no detectado')); break; } } else { //validar pasos anteriores $modelPago->validarPasos(Yii::app()->params->pagar['pasosDisponibles']['presencial'], $paso); $params = array(); $params['paso'] = $paso; $nPasoActual = Yii::app()->params->pagar['pasos'][$paso]; //$nPasoActual = ($nPasoActual<2) ? 2 : $nPasoActual; //$nPasoAnterior = $nPasoActual - 1; $nPasoAnterior = $nPasoActual - 1; $nPasoAnterior = $nPasoAnterior < 2 ? -1 : $nPasoAnterior; $nPasoSiguiente = $nPasoActual + 1; $pasoSiguiente = isset(Yii::app()->params->pagar['pasos'][$nPasoSiguiente]) ? Yii::app()->params->pagar['pasos'][$nPasoSiguiente] : null; $pasoAnterior = isset(Yii::app()->params->pagar['pasos'][$nPasoAnterior]) ? Yii::app()->params->pagar['pasos'][$nPasoAnterior] : null; $params['pasoAnterior'] = $pasoAnterior; $params['pasoSiguiente'] = $pasoSiguiente; if ($paso == Yii::app()->params->pagar['pasos'][2]) { if (isset($_POST['pos']) || $modelPago->pdvSeleccionado()) { if (isset($_POST['pos'])) { $indicePdv = trim($_POST['pos']); $modelPago->seleccionarPdv($indicePdv); Yii::app()->session[Yii::app()->params->sesion['carroPagarForm']] = $modelPago; } $params['parametros']['listHorarios'] = $modelPago->listDataHoras(); } else { if ($modelPago->pagoExpress) { $modelPago = new FormaPagoForm(); $modelPago->identificacionUsuario = Yii::app()->user->name; Yii::app()->session[Yii::app()->params->sesion['carroPagarForm']] = $modelPago; } $modelPago->consultarDisponibilidad(Yii::app()->shoppingCart); Yii::app()->session[Yii::app()->params->sesion['carroPagarForm']] = $modelPago; $this->render('pagarPresencial', array('listPuntosVenta' => $modelPago->listPuntosVenta)); Yii::app()->end(); } //$this->render('_paso2', $params); } else { if ($paso == Yii::app()->params->pagar['pasos'][3]) { $listFormaPago = FormaPago::model()->findAll(array('order' => 'formaPago', 'condition' => 'estadoFormaPago=:estado', 'params' => array(':estado' => 1))); $modelPago->consultarBono(Yii::app()->shoppingCart->getTotalCost()); Yii::app()->session[Yii::app()->params->sesion['carroPagarForm']] = $modelPago; $modelPago->setScenario('pago'); $params['parametros']['listFormaPago'] = $listFormaPago; //$params['modelPago'] = $modelPago; //$params['submit'] = true; //$this->render('_paso3', $params); } else { if ($paso == Yii::app()->params->pagar['pasos'][4]) { $objFormaPago = FormaPago::model()->findByPk($modelPago->idFormaPago); $params['parametros']['objDireccion'] = null; $params['parametros']['objFormaPago'] = $objFormaPago; if ($modelPago->bono !== null && $modelPago->usoBono == 1) { Yii::app()->shoppingCart->setBono($modelPago->bono['valor']); } $modelPago->calcularConfirmacion(Yii::app()->shoppingCart->getPositions()); Yii::app()->session[Yii::app()->params->sesion['carroPagarForm']] = $modelPago; $modelPago->setScenario('finalizar'); //$params['modelPago'] = $modelPago; //$this->render('_paso4', $params); } } } $params['parametros']['modelPago'] = $modelPago; $this->render('pasosPresencial', $params); } }
public function actionDisponibilidad() { $formapago = new FormaPagoForm(); //print_r($formapago->listPuntosVenta); $formapago->consultarDisponibilidad(Yii::app()->shoppingCart); echo "<br/><br/>"; CVarDumper::dump($formapago->listPuntosVenta, 10, true); }