public static function aplicarDescuentos($visitante = False) { // Aplica descuento $descuento = Descuentos::model()->findByPk(Yii::app()->session['descuento']['DescuentosId']); $usados = 0; if (isset($descuento)) { if (!$visitante) { $visitante = Utils::getVisitante(); } else { $visitante = Visitantes::model()->findByPk($visitante); } $contador = 0; $tempPrecios = $visitante->getPreciosTemporales(); foreach ($tempPrecios as $tmp) { if ($descuento->validarDescuento($tmp)) { switch ($descuento->DescuentosPat) { case 'EFECTIVO': if ($tmp->VentasCosBolDes != $descuento->DescuentosCan) { $usados += 1; $tmp->VentasCosBolDes = floor($descuento->DescuentosCan); } break; case 'PORCENTAJE': if ($tmp->VentasCosBolDes != $tmp->VentasCosBol * $descuento->DescuentosCan * 0.01) { $usados += 1; $tmp->VentasCosBolDes = floor($tmp->VentasCosBol * $descuento->DescuentosCan * 0.01); if (strcasecmp($descuento->DescuentoCargo, "si") == 0) { //Si aplica al cargo por servicio $tmp->VentasCarSerDes = floor($tmp->VentasCarSer * $descuento->DescuentosCan * 0.01); } } break; case '2X1': case '3X2': $contador += 1; if ($tmp->VentasCosBolDes == $tmp->VentasCosBol) { $usados -= 1; $tmp->VentasCosBolDes = 0; $tmp->VentasCarSerDes = 0; } if ($contador % $descuento->DescuentosPat[0] == 0) { if (Descuentos::validarDescuento($tmp)) { $usados += 1; $tmp->VentasCosBolDes = $tmp->VentasCosBol; if (strcasecmp($descuento->DescuentoCargo, "si") == 0) { //Si aplica al cargo por servicio $tmp->VentasCarSerDes = $tmp->VentasCarSer; } } } else { $tmp->VentasCosBolDes = 0; $tmp->VentasCarSerDes = 0; } break; default: return 0; break; } //endswitch $tmp->update(); } elseif ($tmp->VentasCosBolDes > 0) { $usados -= 1; $tmp->VentasCosBolDes = 0; $tmp->update(); } } //endforeach precio temporal //$descuento->DescuentosUso+=$usados; //$descuento->update(); } //endif existe un descuento en sesion return $usados; //$tempPrecios->save(false); }
/** * Deletes a visitante * * @param string $idvisitante */ public function deleteAction($idvisitante) { $visitante = Visitantes::findFirstByidvisitante($idvisitante); if (!$visitante) { $this->flash->error("visitante was not found"); return $this->dispatcher->forward(array("controller" => "visitantes", "action" => "index")); } if (!$visitante->delete()) { foreach ($visitante->getMessages() as $message) { $this->flash->error($message); } return $this->dispatcher->forward(array("controller" => "visitantes", "action" => "search")); } $this->flash->success("visitante was deleted successfully"); return $this->dispatcher->forward(array("controller" => "visitantes", "action" => "index")); }