Пример #1
0
 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();
 }
Пример #2
0
 public static function getMaxId()
 {
     $row = Logreimp::model()->find(array('select' => 'MAX(LogReimpId) as maxId'));
     return $row['maxId'];
 }
Пример #3
0
 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;
     }
 }