public static function recordByNumero($numero) { $ctor = new CDbcriteria(); $ctor->addCondition("numero=:vnumero"); $ctor->params = array(":vnumero" => $numero); $registro = null; $objeto = self::model()->find($ctor); if (!is_null($objeto)) { $registro = $objeto; } return $registro; }
public function tieneHijospendientes() { $sepuede = true; if ($this->tieneHijos()) { $criteriaxy = new CDbcriteria(); $criteriaxy->addCondition(" hidcargo=:vcargo AND hidcaja=:vhidcaja "); $criteriaxy->params = array(" :vcargo" => $this->id, ":vhidcaja" => $this->hidcaja); foreach (Dcajachica::model()->findAll($criteriaxy) as $fila) { if (in_array($fila->codestado, array(ESTADO_CREADO))) { $sepuede = false; break; } } } else { $sepuede = false; } return $sepuede; }
<div class="wide form"> <div class="division"> <?php $form = $this->beginWidget('CActiveForm', array('id' => 'Ocompra-form', 'enableClientValidation' => true, 'clientOptions' => array('validateOnSubmit' => TRUE, 'validateOnChange' => TRUE), 'enableAjaxValidation' => false)); ?> <div class="row"> <?php echo $form->labelEx($modeloimpuesto, 'codimpuesto'); ?> <?php ?> <?php $crite = new CDbcriteria(); $crite->addCondition("codocu=:vcodocu"); $crite->params = array(":vcodocu" => $codigodoc); $crite->addNotInCondition('codimpuesto', $impuestosyaregistrados); $datos1 = CHtml::listData(Impuestosdocu::model()->findAll($crite), 'codimpuesto', 'impuestos.descripcion'); echo $form->DropDownList($modeloimpuesto, 'codimpuesto', $datos1, array('empty' => '--Seleccione Impuesto--')); ?> <?php echo $form->error($modeloimpuesto, 'codimpuesto'); ?> </div> <div class="row buttons"> <?php echo CHtml::submitButton('Agregar'); ?>
public function preparaantesdeguardaritemcompra($modelodetalle) { $cadenita = ""; if ($modelodetalle->docompra_ocompra->codestado = '10' or $modelodetalle->docompra_ocompra->codestado = '20') { if ($modelodetalle->cambio()) { if ($this->hubocambiossensibles($modelodetalle, array('codart', 'punit', 'cant', 'estadodetalle'))) { if ($modelodetalle->cantidadentregada == 0) { if (!is_null($modelodetalle->iddesolpe)) { ///NO ES UN ITEM LIBRE ///vERIFICAR LA CONSIUSTENCIA DEL VALOR DEL PARAMETRO ENTREGADO $registrodetallesolpe = Desolpe::model()->findByPk($modelodetalle->iddesolpe); if (!is_null($registrodetallesolpe)) { if ($registrodetallesolpe->desolpe_solpe->escompra != '1' or is_null($registrodetallesolpe->idreserva)) { ///Actualizar los datos aguas arriba (SOLPES Y RESERVAS) $registrodetallesolpe->SetScenario('cambiaestado'); $registroreserva = Alreserva::model()->findByPk($registrodetallesolpe->idreserva); if (!is_null($registroreserva)) { $registroreserva->SetScenario('cambiaestado'); //Ahora vamos por la solpe que genero la reserva $registrodetallesolpeoriginal = Desolpe::model()->findByPk($registroreserva->hidesolpe); if (!is_null($registrodetallesolpeoriginal)) { $registrodetallesolpeoriginal->SetScenario('cambiaestado'); ///Verificando las compras en DESOLPECOMPRA $cantidad_comprada = $registrodetallesolpe->cantcompras; if ($cantidad_comprada > 0) { $setratadeanulacion = false; if ($modelodetalle->oldattributes['estadodetalle'] != '40' and $modelodetalle->estadodetalle == '40') { ///Si se trata de una anulacion hay que anular el registro de DESOLPECOMPRA $nuevocriterio = new CDbcriteria(); $nuevocriterio->addCondition("iddesolpe=:xiddesolpe AND iddocompra=:xiddocompra "); $nuevocriterio->params = array(':xiddesolpe' => $modelodetalle->iddesolpe, ':xiddocompra' => $modelodetalle->id); $modelodesolpecompra = Desolpecompra::model()->find($nuevocriterio); $modelodesolpecompra->codestado = '30'; //ANULAR ......!!!! if (!$modelodesolpecompra->save()) { $cadena .= " El item " . $modelodetalle->item . " - " . $modelodetalle->descri . " : No se pudo anular el registro de Detalles-solicitudes/Detalle-compras <br>"; } $setratadeanulacion = true; } if ($cantidad_comprada + $modelodetalle->cant == $registrodetallesolpe->cant) { //Es una atencion unica el caso mas simple, uno a uno ///Verificar si se trata de una anulacion if ($setratadeanulacion) { ///El proceso retrocede, hayq ue anular tambien el registro de la tab la puente DESOLPECOMPRA /// y revertir los estados $registrodetallesolpe->est = '30'; //APROBADO $registroreserva->estadoreserva = '20'; //EN PROICESO DE COMPRA X Q LA SOLPE AUN PERMANECE COMO APROBADA $registrodetallesolpeoriginal->est = '70'; ///EN PROCESO DE COMPRA X Q LA RESERVA Y LA SOLPE AUN ESTAN VIGENTES } else { ///Si no se trata de una anulacion el proceso "evoluciona" $registrodetallesolpe->est = '40'; //ATENDIDO $registroreserva->estadoreserva = '50'; //COMPRADO TOTALMENTE $registrodetallesolpeoriginal->est = '90'; ///Comprado totalmente } } else { //Significa que conn esta compra aun falta o se han excedido..veamos if ($cantidad_comprada + $modelodetalle->cant < $registrodetallesolpe->cant) { // En este caso se esta comprando pero aun falta completar, un abastecimiento parcial $registrodetallesolpe->est = '70'; //EN COMPRA $registroreserva->estadoreserva = '60'; //EN COMPRA } else { ///Error se pasaron de la cantidad solicitada ///Error $cadena .= " El item " . $modelodetalle->item . " - " . $modelodetalle->descri . " : Se esta comprando : (" . ($cantidad_comprada + $modelodetalle->cant) . ") mas de lo que se solicito :(" . $registrodetallesolpe->cant . ") en la solicitud " . $registrodetallesolpe->desolpe_solpe->nunero . "-" . $registrodetallesolpe->item . " <br>"; } } } else { ///qUIER DECIR QUE ES LA PRIMERA VEZ QUE SE ATENDERIA ESTE ITEM } $registrodetallesolpeoriginal->save(); } else { //Error no se pudo ubicar el detalle de la Solpe Padre //eRRROR $cadena .= " El item " . $modelodetalle->item . " - " . $modelodetalle->descri . " : No se pudo encontrar la solicitud original (Imputada) asociada (" . $registroreserva->hidesolpe . ") <br>"; } $registroreserva->save(); } else { //Error no se ecnontro la reserva que genero la solpe de aprovisionamiento $cadena .= " El item " . $modelodetalle->item . " - " . $modelodetalle->descri . " : No se pudo encontrar la reserva asociada <br>"; } $registrodetallesolpe->save(); } else { ///Error , La solpe no es de aprovisionamiento o tiene el campo idererva vacio lo qaue quiere decir que no es una solpe de aprovisionamiento ///Error $cadena .= " El item " . $modelodetalle->item . " - " . $modelodetalle->descri . " : La solicitud asociada " . $registrodetallesolpe->desolpe->solpe->numero . "-" . $registrodetallesolpe->item . " no es de àprovisionamiento <br>"; } } else { ///Error , este detakke de solped no existe $cadena .= " El item " . $modelodetalle->item . " - " . $modelodetalle->descri . " : No se pudo encontrar la solicitud asociada -> (" . $modelodetalle->iddesolpe . ") <br>"; } /*}else{ // ($modelodetalle->cantsolpes) =0 ES LA PRIMERA ATENCION , OSEA NO HAY REGISTROS EN DESOLPECOMPRA }*/ } else { //ES UN ITEM LIBRE return $cadena; } } else { //HAY enetregas $cadena .= " El item " . $modelodetalle->item . " - " . $modelodetalle->descri . " : Ya tiene entregas y no es posible modificar estos datos sensibles <br>"; } } else { //No ha habido cambios sensibles ///Dara fin al procedimiento return $cadena; } } else { //Terminar el procediiento ///Dara fin al procedimiento return $cadena; } } }
protected function getSettingValue($model, $key, $condition_field, $condition_value, $element_type) { $criteria = new CDbcriteria(); if ($condition_field && $condition_value) { $criteria->addCondition($condition_field . ' = :' . $condition_field); $criteria->params[':' . $condition_field] = $condition_value; } $criteria->addCondition('`key`=:key'); $criteria->params[':key'] = $key; if ($element_type) { $criteria->addCondition('element_type_id=:eti'); $criteria->params[':eti'] = $element_type->id; } else { $criteria->addCondition('element_type_id is null'); } return $model::model()->find($criteria); }