public function actionSolpeautomatica($id) { /***primero creamos la varibale sesion si no esta creadqa */ //veriifcamos UN CHISTOSO NO PASE CUALQUIER ID POR LA UR $id = (int) MiFactoria::cleanInput($id); $mensaje = ""; $alreserva = Alreserva::Model()->findByPk($id); if (!is_null($alreserva)) { if ($alreserva->estadoreserva == '10') { if (!isset(Yii::app()->session['idsolpe'])) { //creando una solpe NUEVA $solpe = new Solpe(); $solpe->escompra = '1'; $solpe->textocabecera = "Documento automático"; //$solpe->estado='01'; $solpe->save(); $solpe->refresh(); Yii::app()->session['idsolpe'] = $solpe->id; ///para que agarre el estado '01' $solpe->textocabecera = 'Item automatico.,,,,,'; $solpe->save(); ///// $identidad = $solpe->id; } else { //sI YA XISTE LA SOLPE HAYA QUER VERIFICAR SU ESTADO //SI ESTA CREADO AGREGAR, SI YA ESTA APROBADO O ANULADO, ES MEJOR CREAR OTRA $solpe = Solpe::model()->findByPk(Yii::app()->session['idsolpe']); if (!is_null($solpe)) { // $solpe->textocabecera='Item automatico'; if (!($solpe->estado == '10')) { //SI ESTA CREADO AGREGAR ITEMS A ESTA SOLPE, SI YA ESTA APROBADO O ANULADO, ES MEJOR CREAR UAN NUEVA SOLPE $solpe2 = new Solpe('automatica'); //$solpe2->estado='01'; $solpe2->textocabecera = 'Item automaticosolpes'; if (!$solpe2->save()) { $mensaje .= " ERROR : no se pude grabr la solpe 2 " . yii::app()->mensajes->getErroresItem($solpe2->geterrors()) . " <br>"; } $solpe2->refresh(); //var_dump($solpe2->attributes);yii::app()->end(); $solpe3 = Solpe::model()->findByPk($solpe2->id); $solpe3->setScenario('automatica'); $solpe3->escompra = '1'; if ($solpe3->save()) { //echo "graba "; unset(Yii::app()->session['idsolpe']); } Yii::app()->session['idsolpe'] = $solpe2->id; $identidad = $solpe2->id; //echo "NUEVA SOLPE ".$solpe2->numero." ----".$solpe2->id." "; //Yii::app()->end(); } else { $identidad = $solpe->id; } } else { /*ECHO "ERROR COMPARITO LA SOLPE " . Yii::app ()->session[ 'idsolpe' ] . " NO EXISTE"; Yii::app ()->end ();*/ $mensaje .= " ERROR : LA SOLPE " . Yii::app()->session['idsolpe'] . " NO EXISTE <br>"; } $alreserva->estadoreserva = '20'; $alreserva->save(); $detalle = Desolpe::Model()->findByPk($alreserva->hidesolpe); $detallesolpe = new Desolpe(); $detallesolpe->setscenario('insert'); $detallesolpe->hidsolpe = $identidad; ////IMPORTANTE , DEBE COGER LA SOLPE QUE NO ESTA APROBADA $detallesolpe->tipimputacion = $detalle->tipimputacion; $detallesolpe->centro = $detalle->centro; $detallesolpe->codal = $detalle->codal; $detallesolpe->txtmaterial = $detalle->txtmaterial; $detallesolpe->textodetalle = $detalle->textodetalle; // $detallesolpe->txtmaterial=$detalle->txtmaterial; $detallesolpe->fechacrea = $detalle->fechacrea; $detallesolpe->fechaent = $detalle->fechaent; $detallesolpe->fechalib = $detalle->fechalib; $detallesolpe->imputacion = $detalle->imputacion; $detallesolpe->estadolib = $detalle->estadolib; $detallesolpe->solicitanet = $detalle->solicitanet; $detallesolpe->est = '10'; ///esto es clave , solo se pueden garegar detalles que se van a aa parobar //es decir nos e puede insertar un detalle en una solpe APROBADA $detallesolpe->um = $detalle->um; $detallesolpe->tipsolpe = $detalle->tipsolpe; $detallesolpe->cant = $alreserva->cant; ///iMPORTANTE, AQUIE ES LA CANTOIDAD DE LA RESERVA $detallesolpe->codart = $detalle->codart; $detallesolpe->idreserva = $id; $detallesolpe->save(); $mensaje .= "OK: Se genero la solicitud de compra " . $detallesolpe->desolpe_solpe->numero . " item " . $detallesolpe->item . " con exito <br>"; } } else { // En caso de que la reserva tengia un status inadecuado $mensaje .= "La reserva " . $alreserva->id . " no tiene el status adecuado " . $alreserva->estadoreserva . "<br>"; } } else { $mensaje .= "El parametro pasado no corresponde a ningun documento Reserva<br>"; } echo $mensaje; }
public static function CreaSolpeAutomatica($codocu, $id) { $solpe = new Solpe(); $solpe->textocabecera = "Documento automático"; $solpe->hidref = $id; $solpe->codocuref = $codocu; $solpe->escompra = '0'; if (!$solpe->save()) { print_r($solpe->getErrors()); yii::app()->end(); } $solpe->refresh(); $identidad = $solpe->id; unset($solpe); $registrospeticiones = self::Devuelvepeticioneshijos($id); foreach ($registrospeticiones as $fila) { $registrodesolpe = new Desolpe(); $registrodesolpe->setScenario('insert'); $registrodesolpe->hidsolpe = $identidad; $registrodesolpe->cant = $fila->cant; $registrodesolpe->codart = $fila->codart; $registrodesolpe->um = $fila->um; $registrodesolpe->txtmaterial = $fila->descripcion; $registrodesolpe->imputacion = $fila->imputacion; $registrodesolpe->centro = $fila->codcen; $registrodesolpe->codal = $fila->codal; $registrodesolpe->item = $fila->item; $registrodesolpe->tipimputacion = 'V'; ////debe de implemntarse la progrtamacion del plan de ventas ///temporalmente quieda con programacion plana $registrodesolpe->fechaent = date("Y-m-d"); $registrodesolpe->tipsolpe = $fila->tipo; if (!$registrodesolpe->save()) { print_r($registrodesolpe->getErrors()); yii::app()->end(); } unset($registrodesolpe); } $nuevasolpe = Solpe::model()->findByPk($identidad); //$nuevasolpe->save(); if (!$nuevasolpe->save()) { print_r($nuevasolpe->getErrors()); yii::app()->end(); } }