public function reimprimeBoleto($codigo, $ventasId, $eventoId, $funcionesId, $zonasId, $subzonaId, $filasId, $lugaresId, $usuariosId, $ultimocodigo = "26", $tip = "NORMAL", $cosBol = 0) { $reimpresiones = Reimpresiones::model()->count(array('condition' => "EventoId={$eventoId} AND FuncionesId={$funcionesId} AND ZonasId={$zonasId} AND SubzonaId={$subzonaId} AND FilasId={$filasId} AND LugaresId={$lugaresId}")); $contra = $eventoId . "." . $funcionesId . "." . $zonasId . "." . $subzonaId; $contra .= "." . $filasId . "." . $lugaresId . "-" . date("m") . "." . date("d") . "-" . $usuariosId; $contra .= "PR{$reimpresiones}"; $ventaslevel1 = Ventaslevel1::model()->findByAttributes(array('VentasId' => $ventasId, 'EventoId' => $eventoId, 'FuncionesId' => $funcionesId, 'ZonasId' => $zonasId, 'SubzonaId' => $subzonaId, 'FilasId' => $filasId, 'LugaresId' => $lugaresId)); $ventaslevel1->LugaresNumBol = $codigo; $ventaslevel1->VentasCon = $contra; $ventaslevel1->update(); $ultimo = Reimpresiones::model()->findAll(array('limit' => 1, 'order' => 't.ReimpresionesId DESC')); $ultimo = $ultimo[0]->ReimpresionesId + 1; $hoy = date("Y-m-d G:i:s"); $user_id = Yii::app()->user->id; Yii::app()->db->createCommand("INSERT INTO reimpresiones VALUES({$ultimo},{$eventoId},{$funcionesId},{$zonasId},{$subzonaId},{$filasId},{$lugaresId},'PANEL ADMINISTRATIVO','',{$user_id},'{$hoy}','{$ultimocodigo}')")->execute(); $ultimologreimp = Logreimp::model()->findAll(array('limit' => 1, 'order' => 't.LogReimpId DESC')); $ultimologreimp = $ultimologreimp[0]->LogReimpId + 1; Yii::app()->db->createCommand("INSERT INTO logreimp VALUES({$ultimologreimp},'{$hoy}','{$tip}',{$cosBol},'{$tip}',{$user_id},0,{$eventoId},{$funcionesId},{$zonasId},{$subzonaId},{$filasId},{$lugaresId})")->execute(); }
public static function getMaxId() { $row = Logreimp::model()->find(array('select' => 'MAX(LogReimpId) as maxId')); return $row['maxId']; }
public function reimprimir() { try { $this->validarEntrada($this->referencia, 'reimpresion'); if ($this->pv != 0) { $this->validarPv($this->pv); } $refreimps = $this->buscarReimpresion($this->referencia); if (empty($refreimps)) { # Si no se encontraron registros return false; } else { $numerosBoletos = array(); $transaction = Yii::app()->db->beginTransaction(); foreach ($refreimps as $refreimp) { # Por cada refreimp ##-------------------------------------------[ Actualiza Logreimp ] $logreimp = new Logreimp(); $logreimp->LogReimpTip = $refreimp->ventalevel1->VentasBolTip; $logreimp->LogCosAnt = $refreimp->ventalevel1->VentasCosBol; $logreimp->LogReimpTipAnt = $refreimp->ventalevel1->VentasBolTip; $logreimp->LogReimpUsuId = 2; if ($this->pv == 0) { # Cuando sea 0 toma el punto de venta que vendio y no el que esta reimprimiendo $logreimp->LogReimpPunVenId = $refreimp->venta->PuntosventaId; } else { $logreimp->LogReimpPunVenId = $this->pv; } $logreimp->EventoId = $refreimp->ventalevel1->EventoId; $logreimp->FuncionesId = $refreimp->ventalevel1->FuncionesId; $logreimp->ZonasId = $refreimp->ventalevel1->ZonasId; $logreimp->SubzonaId = $refreimp->ventalevel1->SubzonaId; $logreimp->FilasId = $refreimp->ventalevel1->FilasId; $logreimp->LugaresId = $refreimp->ventalevel1->LugaresId; $logreimp->save(); #---------------------------------------------------[ Actualiza la contraseña] $contra = $refreimp->ventalevel1->VentasCon; $contrav = explode('R', $contra); if (sizeof($contrav) > 1) { # Significa que la contraseña ya tenia reimpresiones previas $contrav[1] = (int) $contrav[1] + 1; $contra = implode('R', $contrav); } else { $contra .= "R1"; } $refreimp->ventalevel1->VentasCon = $contra; #------------------------------------------------[ Actualizar numero de boleto] $reimp = new Reimpresiones(); $reimp->attributes = $refreimp->ventalevel1->getAttributes(); $reimp->ReimpresionesMod = "FARMATODO"; $reimp->UsuarioId = 2; $reimp->save(false); $refreimp->ventalevel1->LugaresNumBol = $this->generarCodigoBarras($refreimp->ventalevel1->LugaresNumBol); $refreimp->ventalevel1->save(false); $numerosBoletos[] = $refreimp->ventalevel1->LugaresNumBol; #----------------------------[ Actualiza el estatus de reimpresion] $refreimp->RefReimpSta = 0; $refreimp->save(false); } ##-----------------------------------------------[ Escribe cambios en BD*] $transaction->commit(); return $numerosBoletos; } } catch (Exception $e) { $this->registrarError($e); throw $e; } }