public static function InsertaAlentregasCompras($idkardex) { $row = self::CargaModelo('Alkardex', $idkardex); $model = new Alentregas(); $model->cant = $row->cant; $model->idkardex = $row->id; $model->iddetcompra = $row->idref; $model->estado = Alentregas::ESTADO_CREADO; if (!$model->save()) { throw new CHttpException(500, "NO se Pudo insertar el registro de atenciones compras "); } unset($model); unset($row); }
public function actionPinta($id) { $modelogrande = $this->loadModel($id); if ($modelogrande->cestadovale == '20') { $transaccion = $modelogrande->dbConnection->beginTransaction(); //echo gettype($transaccion); //Yii::app()->end(); $itemsk = Alkardex::model()->findall('hidvale=:valoi', array(':valoi' => $id)); /// registas kardex pcn valores negativos foreach ($itemsk as $v) { $modeloentregas = new Alentregas(); $modelokardex = new Alkardex(); //echo $v['id']; //Yii::app()->end(); $modeloentregasant = Alentregas::model()->find(' idkardex=:clave', array(':clave' => $v['id'])); $modeloentregas->setAttributes(array('iddetcompra' => $modeloentregasant->iddetcompra, 'cant' => $modeloentregasant->cant * -1, 'idkardex' => $v['id']), true); $modelokardex->setAttributes(array('codart' => $v['codart'], 'codmov' => $v['codmov'], 'cant' => $v['cant'] * -1, 'alemi' => $v['alemi'], 'aldes' => $v['aldes'], 'fecha' => date("Y-m-d H:i:s"), 'coddoc' => $v['coddoc'], 'numdoc' => $v['numdoc'], 'um' => $v['um'], 'codocuref' => $v['codocuref'], 'numdocref' => $v['numdocref'], 'codcentro' => $v['codcentro'], 'codestado' => '10', 'numdocref' => $v['numdocref'], 'hidvale' => $v['hidvale']), true); $modelokardex->save(); $modelokardex->refresh(); $modeloentregas->idkardex = $modelokardex->id; $modeloentregas->save(); $modocompra = Docompra::model()->findByPk($modeloentregasant->iddetcompra); ///cuantos hay if ($modocompra->cantidadentregada = $v['cant']) { $modocompra->estadodetalle = '20'; //regresar a colocarlo como aprobado por que se reversa toda la atencion } else { if ($modocompra->cantidadentregada > $v['cant']) { $modocompra->estadodetalle = '50'; // de hecho pasa a ser parcial } else { ///Error:: quiere decir qu se atendio una cantidad en exceso al ingreos $transaccion->rollback(); throw new CHttpException(500, 'Se produjo un error, Se ha atrendido una cantidad mayor al del pedido '); } } //actualizar el invetario $moneda = $modocompra->docompra_ocompra->moneda; if ($moneda == Yii::app()->params['monedadef']) { $conversion = 1; } else { $conversion = Numeromaximo::cambiomoneda($moneda, Yii::app()->params['monedadef']); } $modeloinventario = Alinventario::model()->findByPk($modocompra->docompra_alinventario->id); $cantidad = $modeloinventario->cantlibre; if ($cantidad >= $v['cant']) { $descuento = $modocompra->docompra_ocompra->descuento === null ? 0 : $modocompra->docompra_ocompra->descuento / 100; $modeloinventario->cantlibre = $cantidad - $v['cant']; //$modeloinventario->punit= $modeloinventario->punit = (($cantidad + $modeloinventario->cantres) * $modeloinventario->punit - $modocompra->punit * $conversion * (1 - $descuento) * $v['cant']) / ($cantidad + $modeloinventario->cantres - $v['cant']); $inventario->codmon = Yii::app()->params['monedadef']; } else { $transaccion->rollback(); throw new CHttpException(500, 'Se produjo un error, EL stock libre utilizacion esta por debajo para devolucion '); } } //for each //$modelito=$this->loadModel(9); //$hijos= $modelito->numeroitems; //$nietos=$modelito->almacendocs_alkardex->numeroitems; //$criteria=new CDbCriteria; //$criteria->with=array('alentregas_alkardex.alkardex_almacendocs'); //$criteria->with=array('almacendocs_alkardex'); //$criteria->addCondition('alkardex_almacendocs.id=9'); //$registros=Almacendocs::Model()->findAll($criteria); //$registros=Ocompra::Model()->with('ocompra_docompra')->findAll($criteria); //echo $registros[0]['numvale']."\n"; //echo $registros[0]['almacendocs_alkardex'][0]['codmov']."\n";; //echo $registros[0]['almacendocs_alkardex'][0]['alkardex_alentregas'][0]['iddetcompra']."\n"; //echo $registros[0]['almacendocs_alkardex'][0]['alkardex_alentregas'][1]['iddetcompra']."\n"; //echo //echo $modelito->almacendocs_alkardex[0]->alkardex_alentregas[1]; //echo $modelito->codocu; //ECHO Ocompra::model()->findByPk(19)->subtotal; //echo Docompra::model()->findByPk(31)->docompra_alinventario->cantlibre; $modocompra->save(); $modeloinventario->save(); $modelogrande->{$cestadovale} = '30'; $transaccion->commit(); } else { throw new CHttpException(500, 'Este vale ya se anulo, o tiene un estado que no permite su anulacion '); } }
public function InsertaAlentregasCompras() { $model = new Alentregas(); $model->cant = $this->cant; $model->idkardex = $this->id; $model->iddetcompra = $this->idref; $model->estado = Alentregas::ESTADO_CREADO; if (!$model->save()) { throw new CHttpException(500, "NO se Pudo insertar el registro de atenciones compras "); } unset($model); }