Dudas sobre trabajo con modulos

Y sigue sin funcionarte?

Si sigue sin funcionarte cópiame aquí el código que tienes ahora en tu acción del controlador (sólo el de la acción) y el código que tienes ahora en tu vista (todo el código de tu vista, no sólo las listas).

Un saludo.

Ok gracias lagogz aqui van los codigos, en el controlador:




public function actionActualizarCombos() {

    	$result = array(

        	'cifac' => "",

        	'cient' => ""

    	);


    	$entidadesId = (int) $_POST['CodUEB'];


    	//llenar Facturadores

    	$modelData = Nfacturador::model()->findAll(

            	array(

                	'condition' => 'CodUEB = :CodUEB',

                	'params' => array(':CodUEB' => $entidadesId)

            	)

    	);


    	if (!empty($modelData)) {

        	$data = CHtml::listData($modelData, 'CIFac', 'Descripcion');

        	foreach ($data as $value => $text) {

            	$result['cifac'] .= CHtml::tag(

                            	'option', array('value' => $value), CHtml::encode($text), true);

        	}

    	}




    	$modelData1 = Entrega::model()->findAll(

            	array(

                	'condition' => 'CodUEB = :CodUEB',

                	'params' => array(':CodUEB' => $entidadesId)

            	)

    	);

    	if (!empty($modelData1)) {

        	$data = CHtml::listData($modelData1, 'CIEnt', 'Descripcion');

        	foreach ($data as $value => $text) {

            	$result['cient'] .= CHtml::tag(

                            	'option', array('value' => $value), CHtml::encode($text), true);

        	}

    	}


    	echo(json_encode($result));

	}



, en la vista




<?php

/* @var $this DatosrecepcionController */

/* @var $model Datosrecepcion */

/* @var $form CActiveForm */

?>

<script type="text/javascript">

	$(function() {

    	//Add, Save, Edit and Delete functions code

    	$(".btnEdit").on("click", Edit);

    	$(".btnDelete").on("click", Delete);

    	$("#btnAdd").on("click", Add);

    	ActualizarCodigo();


	/*	$(document).ready(function() {


        	$("#datosrecepcion_CodUEB").change(function() {

            	if ($(this).val() != "") {

                	var dato = $(this).val();

                	$.ajax({

                    	type: "POST",

                    	dataType: "json",

                    	url: "/sgestion/index.php?r=/facturacion/datosrecepcion/actualizarCombos",

                    	data: "CodUEB=" + dato,

                    	success: function(data) {

                        	$("#Datosrecepcion_CIFac").html(data.cifac);

                        	$("#Datosrecepcion_CIEnt").html(data.cient);

                    	}


                	});

            	} else {


                	$("#datosrecepcion_CIFac").empty().attr("disabled", "disabled");

                	$("#datosrecepcion_CIEnt").empty().attr("disabled", "disabled");

            	}


        	});

    	});*/

    	/*  $.ajax({

     	// 'url' = > Yii::app() - > createUrl('/facturacion/datosrecepcion/actualizarCombos'),

     	url: "/sgestion/index.php?r=/facturacion/datosrecepcion/actualizarCombos",

     	// url: 'index.php?r=/facturacion/datosrecepcion/actualizarCombos',

     	type: 'POST',

     	dataType: 'json',

     	data: {

     	"idCod": $('#Datosrecepcion_CodUEB').val()

     	},

     	success: function(data) {

     	$("#Datosrecepcion_CIFac").html(data.cifac);

     	$("#Datosrecepcion_CIEnt").html(data.cient);

     	}

     	});

     	$.ajax({

     	//  'url' = > Yii::app() - > createUrl('/facturacion/datosrecepcion/actualizarDestino'),

     	url: 'index.php?r=/facturacion/datosrecepcion/actualizarDestino',

     	type: 'POST',

     	dataType: 'json',

     	data: {

     	"idCodent": $('#Datosrecepcion_Codentrada').val()

     	},

     	success: function(data) {

     	$("#Datosrecepcion_Codde").html(data.destinoEntrada);

     	}

     	});*/

	});

	function Add() {

    	if ($('#producto').val() !== '') {

        	var codigo = $('#incodigo').val() === '' ? '0' : $('#incodigo').val();

        	var cantidad = $('#incantidad').val() === '' ? '0' : $('#incantidad').val();

        	$("#tblData tbody").append(

                	"<tr class='even'>" +

                	"<td>" + codigo + "</td>" +

                	"<td>" + $('#producto').val() + "</td>" +

                	"<td>" + cantidad + "</td>" +

                	"<td><img src='images/update.png' class='btnEdit' title='Actualizar' style='cursor:pointer'>	<img src='images/delete.png' class='btnDelete' title='Eliminar' style='cursor:pointer'/></td>" +

                	"</tr>");

        	$(".btnEdit").off("click");

        	$(".btnDelete").off("click");

        	$(".btnEdit").on("click", Edit);

        	$(".btnDelete").on("click", Delete);

        	document.getElementById('incantidad').value = '';

        	$('#incodigo').val("");

        	$('#producto').val("");

        	ActualizarCodigo();

    	}

    	else {

        	alert('Debe introducir un producto');

    	}

	}

	;

	var oldCantidad;

	function Edit() {

    	var par = $(this).parent().parent(); //tr

    	var tdCantidad = par.children("td:nth-child(3)");

    	var tdButtons = par.children("td:nth-child(4)");

    	oldCantidad = tdCantidad.html();

    	tdCantidad.html("<input type='text' id='txtCantidad' value='" + tdCantidad.html() + "'/>");

    	tdButtons.html("<img src='images/save.png' class='btnSave' title='Guardar' style='cursor:pointer'/>	<img src='images/cancel.gif' class='btnCancel' title='Cancelar' style='cursor:pointer'/>");

    	$(".btnEdit").off("click");

    	$(".btnDelete").off("click");

    	$(".btnSave").on("click", Save);

    	$(".btnCancel").on("click", Cancel);

    	$(".btnEdit").on("click", Edit);

    	$(".btnDelete").on("click", Delete);

	}

	;

	function Save() {

    	var par = $(this).parent().parent(); //tr

    	var tdCantidad = par.children("td:nth-child(3)");

    	var tdButtons = par.children("td:nth-child(4)");

    	tdCantidad.html(tdCantidad.children("input[type=text]").val());

    	tdButtons.html("<img src='images/update.png' class='btnEdit' title='Actualizar' style='cursor:pointer'/>	<img src='images/delete.png' class='btnDelete' title='Eliminar' style='cursor:pointer'/>");

    	$(".btnEdit").off("click");

    	$(".btnDelete").off("click");

    	$(".btnEdit").on("click", Edit);

    	$(".btnDelete").on("click", Delete);

	}

	;

	function Cancel() {

    	var par = $(this).parent().parent(); //tr

    	var tdCantidad = par.children("td:nth-child(3)");

    	var tdButtons = par.children("td:nth-child(4)");

    	tdCantidad.html(oldCantidad);

    	tdButtons.html("<img src='images/update.png' class='btnEdit' title='Actualizar' style='cursor:pointer'/>	<img src='images/delete.png' class='btnDelete' title='Eliminar' style='cursor:pointer'/>");

    	$(".btnEdit").off("click");

    	$(".btnDelete").off("click");

    	$(".btnEdit").on("click", Edit);

    	$(".btnDelete").on("click", Delete);

	}

	;

	function Delete() {

    	var par = $(this).parent().parent(); //tr

    	$('#producto')

            	.append($("<option></option>")

                    	.attr("value", par.children("td:nth-child(1)").html())

                    	.text(par.children("td:nth-child(2)").html()));

    	ActualizarCodigo();

    	par.remove();

	}

	;

	function ActualizarCodigo() {


    	$('#incodigo').val($('#producto option:selected').val());

	}

	;

	$('#datosrecepcion-form').live('submit', function() {


    	var tbl = $('#tblData tbody tr').map(function() {

        	var row = $(this);

        	return {producto: row.find(':nth-child(1)').text(),

            	cantidad: row.find(':nth-child(3)').text(),

        	};

    	}).get();

    	$.ajax({

        	//'url' = > Yii::app() - > createUrl('/facturacion/datosrecepcion/salvarRecepcion'),

        	url: 'index.php?r=/facturacion/datosrecepcion/salvarRecepcion',

        	type: 'POST',

        	dataType: 'text',

        	data: {"detalle": tbl,

            	"idn": $('#Datosrecepcion_Idn').val(),

            	"fecha": $('#Datosrecepcion_Fecha').val(),

            	"codueb": $('#Datosrecepcion_CodUEB').val(),

            	"idestado": $('#Datosrecepcion_IdEstado').val(),

            	"cifac": $('#Datosrecepcion_CIFac').val(),

            	"nvale": $('#Datosrecepcion_nvale').val(),

            	"codde": $('#Datosrecepcion_Codde').val(),

            	"cient": $('#Datosrecepcion_CIEnt').val(),

            	"codprovedor": $('#Datosrecepcion_CodProvedor').val(),

            	"ci": $('#Datosrecepcion_CI').val(),

            	"codentrada": $('#Datosrecepcion_Codentrada').val(),

            	"1": $('#Datosrecepcion_CodDoc').val(),

            	"modelid": $('#modelid').val()

        	},

        	success: function(data) {

            	if (data === 'fail')

                	alert('Ya existe un registro con ese número consecutivo');

            	else

                	window.location.href = 'index.php?r=datosrecepcion/admin';

        	}

    	});

    	return false;

	});

</script>


<style>

	.mystyle

	{

    	background: white;

    	border-collapse: collapse;

    	width: 70%;

    	border: 1px #D0E3EF solid;


	}

	.mystyle th, .mystyle td

	{	

    	border: 1px white solid;

    	padding: 0.3em;

	}

	.mystyle th

	{

    	color: white;

    	background: #c00;

    	text-align: center;

	}

	.mystyle tr.even

	{

    	background: #F8F8F8;

	}

	.mystyle tr.odd

	{

    	background: #E5F1F4;

	}

	.mystyle tr.selected

	{

    	background: #BCE774;

	}

	.mystyle tbody tr:hover

	{

    	background: #ECFBD4;

	}

	.rojo1 {background-color: #FF0033; }

</style>

<div class="panel panel-default">

	<table>

    	<tr>

    	<div class="panel-heading">

        	<b contextmenu="Crear factura">Crear Recepción</b>

        	<b>(</b>

        	<b>Los campos con <span class="required">*</span> son necesarios.</b>

        	<b>)</b>

    	</div>

    	</tr>

	</table>

	<div class="panel-default">

    	<div class="form">


        	<?php

        	$form = $this->beginWidget('CActiveForm', array(

            	'id' => 'datosrecepcion-form',

            	'enableAjaxValidation' => true,

        	));

        	?>


        	<?php echo '<input type="hidden" id="modelid" value="' . $model->Idn . '"/>'; ?><?php echo $form->errorSummary($model); ?>

        	<table style="width:57%">

            	<tr>

                	<td>

                    	<?php echo $form->labelEx($model, 'Fecha'); ?>

                    	<?php

                    	$feriados = "['25/12/2017','01/01/2017','02/01/2017', '01/05/2017','25/07/2017','26/07/2017','27/07/2017','10/10/2017','25/12/2017','01/01/2015','02/01/2015', '01/05/2015','25/07/2015','26/07/2015','27/07/2015','10/10/2015','25/12/2015','01/01/2016','02/01/2016', '01/05/2016','25/07/2016','26/07/2016','27/07/2016','10/10/2016','25/12/2016','01/01/2018','02/01/2018', '01/05/2018','25/07/2018','26/07/2018','27/07/2018','10/10/2018','25/12/2018']";

                    	$this->widget('CJuiDatePickerEvents', array(

                        	'model' => $model,

                        	'attribute' => 'Fecha',

                        	'value' => $model->Fecha,

                        	'htmlOptions' => array('readonly' => "readonly"),

                        	'language' => 'es',

                        	'events' => array("beforeShowDay" => "function(date) {var events = $feriados ;

                         	var current='';

                        	//agrego el cero a izq si corresponde

                          	if (date.getDate()<10)

                              	current='0'+date.getDate()+'/';

                          	else

                              	current=date.getDate()+'/';

                          	if (date.getMonth() + 1<10)

                              	current=current+'0'+(date.getMonth()+1)+'/';

                          	else

                              	current=current+(date.getMonth()+1)+'/';

                          	current=current+date.getFullYear();

                          	//feriados, s&aacute;bados y domingos

                          	return (jQuery.inArray(current, events) == -1 && date.getDay()!=0 && date.getDay()!=7)?[true, '']:[true,'rojo1','D&iacute;a no laborable'];},"),

                        	'options' => array(

                            	'autoSize' => true,

                            	'defaultDate' => $model->Fecha,

                            	'dateFormat' => 'dd-mm-yy',

                            	// 'buttonImage' => Yii::app()->baseUrl . '/images/calendar.png',

                            	// 'buttonImageOnly' => TRUE,

                            	// 'buttonText' => 'Fecha',

                            	'dateFormat' => 'yy-mm-dd',

                            	'selectOtherMonths' => true,

                            	'showAnim' => 'slide',

                            	'showButtonPanel' => true,

                            	// 'showOn' => 'button',

                            	'selectOtherMonths' => true,

                            	'showOtherMonths' => true,

                            	'changeMonth' => true,

                            	'changeYear' => true,

                            	'minDate' => 'date-30("d-m-Y")', //fecha minima

                            	'maxDate' => "+20Y", //fecha maxima

                        	),

                    	));

                    	?>

                    	<?php echo $form->error($model, 'Fecha'); ?>       	

                	</td>


                	<td colspan="1">

                    	<div>

                        	<?php echo $form->labelEx($model, 'CodUEB'); ?>

                        	<?php

                        	echo CHtml::DropDownList(

                                	'CodUEB', '', CHtml::listData(Entidades::model()->findAll(), 'CodUEB', 'NEnt'), array(

                            	'prompt' => 'Seleccione la entidad',

                            	'ajax' => array(

                                	'type' => 'POST',

                                	'url' => Yii::app()->createUrl('/facturacion/datosrecepcion/actualizarCombos'),

                                	'dataType' => 'json',

                                	'data' => array('CodUEB' => 'js:this.value'), // O en el formato que sea, como se lo pases.

                                	'success' => "function(data)

                                                  	{                           	

                                                    	$('#Datosrecepcion_CIFac').html(data.cifac);

                                                    	$('#Datosrecepcion_CIEnt').html(data.cient);


                                                   	}"

                            	)

                                	)

                        	);


                        	echo CHtml::dropDownList(

                                	'Datosrecepcion_CIFac', '', array(), array(

                            	'prompt' => 'Seleccione Facturador'

                        	));


                        	echo CHtml::dropDownList(

                                	'Datosrecepcion_CIEnt', '', array(), array(

                            	'prompt' => 'Seleccione entrega en almacen'

                        	));

                        	?>

                        	<?php echo $form->error($model, 'CodUEB'); ?>  

                    	</div>

                	</td>


                	<td colspan="2" title="Generada si no se ha pagado">

                        	<?php echo $form->labelEx($model, 'Estado'); ?>

                        	<?php echo $form->dropDownList($model, 'IdEstado', CHtml::listData(Estado::model()->findAll(array('order' => 'Descripcion DESC')), 'IdEstado', 'Descripcion')); ?>

                        	<?php echo $form->error($model, 'IdEstado'); ?>       	

                	</td>

            	</tr>

            	<tr>

                	<td title="Número del vale">

<?php echo $form->labelEx($model, 'nvale'); ?> 

<?php echo $form->textField($model, 'nvale', array('size' => 10, 'maxlength' => 20)); ?> 

                    	<?php echo $form->error($model, 'nvale'); ?>

                	</td> 

                	<td title="Selecione el provedor">

                    	<?php echo $form->labelEx($model, 'CodProvedor'); ?>

<?php

$this->widget('ext.select2.ESelect2', array(

	'name' => 'CodProvedor',

	'value' => '',

	'data' => CHtml::listData(

        	NomProveedores::model()->findAll(array('order' => 'descripcion ASC')), 'CodProvedor', 'descripcion'

	),

	'options' => array(

    	'style' => 'width: 260px;',

    	'placeholder' => 'Seleccione el proveedor'

	),

	'htmlOptions' => array(

    	'id' => 'CodProvedor',

    	'onchange' => '$("#Datosrecepcion_CI").select2("CI", "");',

    	'ajax' => array(

        	'type' => 'POST',

        	'url' => Yii::app()->createUrl('/facturacion/datosrecepcion/actualizarFirmantes'),

        	'update' => '#Datosrecepcion_CI',

    	)

	)

    	)

);

$this->widget(

    	'ext.select2.ESelect2', array(

	'model' => $model,

	'attribute' => 'CI',

	'data' => array(),

	'options' => array('placeholder' => 'Seleccione persona autorizada'),

	'htmlOptions' => array('id' => 'CI')

    	)

);

?>

                    	<?php echo $form->error($model, 'CodProvedor'); ?>

                	</td> 

                	<td title="Tipo de entrada del producto">

                    	<?php echo $form->labelEx($model, 'Codentrada'); ?>

                    	<?php

                    	echo CHtml::DropDownList(

                            	'Codentrada', 'Codentrada', CHtml::listdata(Tipoentrada::model()->findAll(array('order' => 'Descripcion')), 'Codentrada', 'Descripcion'), array('prompt' => 'Seleccione tipo de recepción',

                        	'ajax' => array(

                            	'type' => 'POST',

                            	'url' => Yii::app()->createUrl('/facturacion/datosrecepcion/actualizarDestino'),

                            	'update' => '#Datosrecepcion_Codde',

                    	)));

                    	echo CHtml::dropDownList(

                            	'Datosrecepcion_Codde', 'Codde', // O vacío, lo que quieras.

                            	array(), // O cargas datos relacionados con la lista padre.

                            	array(

                        	'prompt' => 'Seleccione destino'

                    	));

                    	?>

                    	<?php echo $form->error($model, 'Codentrada'); ?>  

                	</td>  

            	</tr>

        	</table>

    	</div>

	</div>

</div>

<!-- ---------------------------------------- Detalles de la Recepcion ------------------------------------- -->

<fieldset>

	<legend>Lista de Productos</legend>

	<table style="width:47%">

    	<tr>      	

        	<td width="129" title="Código de submayor">

            	<label>C&oacute;digo</label>

<?php

echo CHtml::textField('incodigo', '', array(

	'id' => 'incodigo',

	'ajax' => array(

    	'type' => 'POST',

    	'url' => Yii::app()->createUrl('/facturacion/datosrecepcion/obtenerProducto'),

    	'dataType' => 'json',

    	'data' => array(

        	'incodigo' => 'js:this.value', //	'idproducto' => 'js:this.value',

    	),

    	'success' => 'function(data) {

                                            	$("#producto").val(data.descripcion);

                                            	$("#existencia").val(data.existencia);

                                            	$("#Idum").val(data.Idum); 

                                            	$("#preciomn").val(data.preciomn);

                                            	$("#preciocuc").val(data.preciocuc);

                                            	$("#CodPVen").val(data.CodPVen);  

				 }')

));

?>	

        	</td>

        	<td title="Cantidad a Recepcionar"><label class="selected">Cantidad</label>

            	<input name="text" type="text" id="incantidad" value="" size="16" />

        	</td>

        	<td colspan="3" title="Nombre del producto"><label class="odd">Producto</label>

            	<?php

            	echo CHtml::textField('producto', '', array('size' => 70, 'readonly' => true));

            	?>

        	</td> 

    	</tr>  

    	<tr> 

        	<td width="140" title="Saldo actual">

            	<label class="odd">Existencia</label>

            	<input type="text" id="existencia" size="16" readonly="true"/>           	

        	</td>


        	<td width="140" title="Precio May sin impuesto"><label class="odd">Precio MN</label>

            	<input name="text2" type="text" id ="preciomn" size="16" readonly="true"/>

        	</td>

        	<td width="140" title="Precio CUC sin impuesto"><label class="odd">Precio CUC</label>

            	<input name="text2" type="text" id ="preciocuc" size="16" readonly="true"/>

        	</td>

        	<td width="140" title="Unidad de medida"><label class="odd">UM</label>

            	<input name="text2" type="text" id ="Idum" size="16" readonly="true"/>

        	</td>

        	<td width="24" title="Código del almacén"><label>Almacén</label>

            	<input name="text2" type="text" id ="CodPVen" size="16" readonly="true"/>

        	</td>

    	</tr>  


    	<tr>

        	<td>

            	<input name="button" type="button" id="btnAdd" value="Adicionar Producto"/> 	

        	</td>

    	</tr>

	</table>

	<table id="tblData" class="mystyle" style="width:57%">     	

    	<thead>

        	<tr>  

            	<th>Código</th>

            	<th>Producto_Nominal</th> 

            	<th>Cantidad</th>

            	<th>Almacén</th>

        	</tr>

    	</thead>

    	<tbody>

<?php

foreach ($model->detalleRecep as $value) {

	echo "<tr>";

	echo "<td>" . $value->idProducto->Codpro . "</td>";

	echo "<td>" . $value->idProducto->NProductos . "</td>";

	echo "<td>" . $value->cantidad . "</td>";

	echo "<td>" . $value->CodPVen . "</td>";

	echo "<td><img src='" . Yii::app()->request->baseUrl . "/images/update.png' class='btnEdit' title='Actualizar' style='cursor:pointer'>

                          	<img src='" . Yii::app()->request->baseUrl . "/images/delete.png' class='btnDelete' title='Eliminar' style='cursor:pointer'/></td>";

	echo "</tr>";

}

?>  

    	</tbody>

	</table>

</fieldset>

<div class="row buttons">

        	<?php

        	echo CHtml::button('Crear', array(

            	'id' => 'sendForm',

            	'onclick' => '

            	$("#sendForm").prop("disabled", true);

            	$("#datosrecepcion-form").submit();

            	'

        	));

        	?>

</div>

	<?php $this->endWidget(); ?>


</div><!-- form -->



Buenas.

Pues a priori parece que lo tienes todo bien.

Igual tienes cacheada la web.

Prueba con otro navegador y/o limpia la caché del que estés utilizando y prueba d nuevo.

Si esto no te funciona, te envío un ejemplo para que lo pruebes.

Un saludo.

Buenas lagogz, gracias por responder, ya eso lo habia intentado, no obstante lo volvi a intentar ahora, limpie toda la cache del navegador firefox que utilizo, ademas probe con el chrome, y con el opera y sigue igual, mandame un ejemplo, para ver si resulevo, recuerda que utilizo otra accion para construir la factura (en este caso la recepcion), aqui va en el controlador:




public function actionSalvarRecepcion() {


    	$id = $_POST['modelid'];

    	$importeTotal = 0;

    	$importeTotalc = 0;


    	if ($id)

        	$model = $this->loadModel($id);

    	else {


        	$model = new Datosrecepcion;

        	//verificar si la factura ya existe

        	// $productos = Productos::model()->find('CodSubp = :idps and Codde = :idde', array(':idps' => $productop->Codpro, 'idde' => $destino));

        	/*   $fact = Datosrecepcion::model()->find('Idn = :fa', array(':fa' => $_POST['idn']));

          	if ($fact) {

          	echo "fail";

          	yii::app()->end();

          	} */

    	}


    	if (isset($_POST['detalle'])) {

        	// $model->Idn = $_POST['idn'];

        	$model->Fecha = $_POST['fecha'];

        	$model->CodUEB = $_POST['codueb'];

        	$model->IdEstado = $_POST['idestado'];

        	$model->CIFac = $_POST['cifac'];

        	$model->Codentrada = $_POST['codentrada'];

        	$model->nvale = $_POST['nvale'];

        	$model->Codde = $_POST['codde'];

        	$model->CodProvedor = $_POST['codprovedor'];

        	$model->CI = $_POST['ci'];

        	$model->CIEnt = $_POST['cient'];

        	$model->CodDoc = 1;


        	if ($model->save()) {

            	$Ent = Entidades::model()->find('CodUEB=:CodUEB', array(':CodUEB' => $_POST['codueb']));

            	$fecha = date("y");

            	$cadena2 = "-";

            	$cadena1 = "$Ent->Cod";

            	$cadena3 = "$model->Idn";

            	$cadena4 = "0";

            	$cadena5 = "00";

            	$cadena6 = "000";

            	$cadena8 = "R";


            	//llenar numero de factura en datosfacturas

            	if (!$id) {

                	$criteria = new CDbCriteria;

                	$criteria->addCondition('Idn=:Idn');

                	$criteria->params = array(':Idn' => $model->Idn);

                	$objFact = Datosrecepcion::model()->find($criteria);


                	if ($model->Idn <= 9) {

                    	$objFact->nfactura = $fecha . $cadena1 . $cadena8 . $cadena2 . $cadena6 . $cadena3;

                	} elseif ($model->Idn >= 10 & $model->Idn <= 99) {

                    	$objFact->nfactura = $fecha . $cadena1 . $cadena8 . $cadena2 . $cadena5 . $cadena3;

                	} elseif ($model->Idn >= 100 & $model->Idn <= 999) {

                    	$objFact->nfactura = $fecha . $cadena1 . $cadena8 . $cadena2 . $cadena4 . $cadena3;

                	} elseif ($model->Idn >= 1000) {

                    	$objFact->nfactura = $fecha . $cadena1 . $cadena8 . $cadena2 . $cadena3;

                	}


                	$objFact->save();


                	Detallesrecepcion::model()->deleteAll('Id_cons=:nfactura', array(':nfactura' => $model->nfactura));


                	foreach ($_POST['detalle'] as $item) {

                    	//Lo que se guarda en tabla Detallesrecepcion

                    	$detalle = new Detallesrecepcion;

                    	$detalle->Id_cons = $objFact->nfactura;

                    	$detalle->Codpro = $item['producto'];

                    	$detalle->cantidad = $item['cantidad'];


                    	$produ = Subproductos::model()->find('Codpro=:Codpro', array(':Codpro' => $item['producto']));

                    	$destino = $_POST['codde'];

                    	$productos = Productos::model()->find('CodSubp = :idps', array(':idps' => $produ->Codpro));

                    	$prodsub = Subsidios::model()->find('Codsub = :Codsub', array(':Codsub' => $productos->Codsub));

                    	$saldo = $item['producto'];


                    	//$produmayor = Submyproductos::model()->find('Codpro=:Codpro and CodPVen=:codalm', array(':Codpro' => $saldo, ':codalm' => $venta));

                    	$produmayor = Submyproductos::model()->find('Codpro=:Codpro', array(':Codpro' => $saldo));

                    	$detalle->CodPVen = $produmayor->CodPVen;

                    	$detalle->SaldoDes = $produmayor->SaldoAct + $detalle->cantidad;

                    	$detalle->SaldoIni = $produmayor->SaldoAct;

                    	//precio mn

                    	if ($model->Codentrada == 1) {//ok

                        	$detalle->PreMN = ROUND($produ->PrCostoM, $productos->lg);

                    	} if ($model->Codentrada == 2) {//ok

                        	$detalle->PreMN = ROUND($produ->PrCostoM, $productos->lg);

                    	} if ($model->Codentrada == 6) {//ok

                        	$detalle->PreMN = ROUND($produ->PrCostoM, $productos->lg);

                    	} elseif ($model->Codentrada == 3 && ($model->Codde == 1)) {//ok

                        	$detalle->PreMN = ROUND($productos->PreMay * 0.99, $productos->lg);

                    	} elseif ($model->Codentrada == 3 && ($productos->Codde = 2)) {//ok

                        	$detalle->PreMN = ROUND($productos->PreMay * 0.99, $productos->lg);

                    	} elseif ($model->Codentrada == 3 && ($model->Codde == 6)) {//ok

                        	$detalle->PreMN = ROUND($productos->PreMay * 0.99, $productos->lg);

                    	} elseif ($model->Codentrada == 3 && ($model->Codde == 7)) {

                        	$detalle->PreMN = ROUND($productos->PreMay * 0.99, $productos->lg);

                    	} elseif ($model->Codentrada == 5 && $model->Codde == 1) {

                        	$detalle->PreMN = ROUND($productos->PreMay, $productos->lg);

                    	} elseif ($model->Codentrada == 5 && $model->Codde == 6)

                        	$detalle->PreMN = ROUND($productos->PreMay, $productos->lg);

                    	//precio cuc

                    	if ($model->Codentrada == 1) {//ok

                        	$detalle->PrCUC = 0;

                    	} elseif ($model->Codentrada == 2) {//ok

                        	$detalle->PrCUC = 0;

                    	} elseif ($model->Codentrada == 6) {//ok

                        	$detalle->PrCUC = 0;

                    	} elseif ($model->Codentrada == 3 && $model->Codde = 2) {//ok

                        	$detalle->PrCUC = ROUND(($productos->PrCUC * $prodsub->Tasa + $productos->PrCUC) * 0.99, $productos->lg);

                    	} elseif ($model->Codentrada == 3 && $model->Codde == 3) {

                        	$detalle->PrCUC = ROUND(($productos->PrCUC * $prodsub->Tasa + $productos->PrCUC) * 0.99, $productos->lg);

                    	} elseif ($model->Codentrada == 3 && $model->Codde == 4) {

                        	$detalle->PrCUC = ROUND(($productos->PrCUC * $prodsub->Tasa + $productos->PrCUC) * 0.99, $productos->lg);

                    	} elseif ($model->Codentrada == 3 && $model->Codde == 5) {

                        	$detalle->PrCUC = ROUND(($productos->PrCUC * $prodsub->Tasa + $productos->PrCUC) * 0.99, $productos->lg);

                    	} elseif ($model->Codentrada == 3 && $model->Codde == 6) {

                        	$detalle->PrCUC = ROUND(($productos->PrCUC * $prodsub->Tasa + $productos->PrCUC) * 0.99, $productos->lg);

                    	} elseif ($model->Codentrada == 3 && $model->Codde == 7) {

                        	$detalle->PrCUC = ROUND(($productos->PrCUC * $prodsub->Tasa + $productos->PrCUC) * 0.99, $productos->lg);

                    	} elseif ($model->Codentrada == 3 && $model->Codde == <img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='8)' /> {

                        	$detalle->PrCUC = ROUND(($productos->PrCUC * $prodsub->Tasa + $productos->PrCUC) * 0.99, $productos->lg);

                    	} elseif ($model->Codentrada == 5 && $model->Codde == 6) //ok

                        	$detalle->PrCUC = ROUND($productos->PrCUC, $productos->lg);


                    	$precision = 2;

                    	$detalle->ImporteMN = ROUND($detalle->cantidad * $detalle->PreMN, $precision);

                    	$detalle->ImporteCUC = ROUND($detalle->cantidad * $detalle->PrCUC, $precision);

                    	$importeTotal += $detalle->ImporteMN;

                    	$importeTotalc += $detalle->ImporteCUC;

                    	$detalle->save();


                    	//para actualizar los saldos en tabla Submayor

                    	if (!$id) {

                        	$criteria = new CDbCriteria;

                        	$criteria->addCondition('CodPVen=:codpven');

                        	$criteria->addCondition('Codpro=:codigo');

                        	$criteria->params = array(':codpven' => $detalle->CodPVen, ':codigo' => $detalle->Codpro);

                        	$objSubmp = Submyproductos::model()->find($criteria);

                        	$objSubmp->SaldoAct = $objSubmp->SaldoAct + $item['cantidad'];

                        	$objSubmp->SaldoAnt = $objSubmp->SaldoAct - $item['cantidad'];

                        	$objSubmp->save();

                    	}


                    	//llenar historico de operaciones

                    	$histopera = Histoper::model()->find('nfactura=:nfactura and Cliente=:Cliente', array(':nfactura' => $objFact->nfactura, ':Cliente' => $model->CodProvedor));


                    	if (!$histopera) {//Si no existe crearla	

                        	$histopera = new Histoper;

                        	$histopera->nfactura = $objFact->nfactura; //

                        	$histopera->fecha = $model->Fecha; //

                        	$histopera->CodUEB = $model->CodUEB; //

                        	$histopera->Cliente = $model->CodProvedor; //

                        	$histopera->CodDoc = $model->CodDoc; //

                        	$histopera->Codentrada = $model->Codentrada; //

                        	$histopera->IdEstado = $model->IdEstado; //

                        	$histopera->ndocu = $model->nvale; //

                        	$histopera->Codde = $model->Codde; //

                        	$histopera->CIFac = $model->CIFac; //

                        	$histopera->CICli = $model->CI; //

                        	$histopera->CIEnt = $model->CIEnt; //

                        	$histopera->save();

                    	}

                    	//llenar otros importes en recepcion

                    	if (!$id) {

                        	$criteria = new CDbCriteria;

                        	$criteria->addCondition('nfactura=:nfactura');

                        	$criteria->params = array(':nfactura' => $objFact->nfactura);

                        	$objFac = Datosrecepcion::model()->find($criteria);

                        	$histoper = Histoper::model()->find($criteria);

                        	$objFac->ImporteMN = $importeTotal;

                        	$objFac->ImporteCUC = $importeTotalc;

                        	$histoper->ImporteMN = $importeTotal;

                        	$histoper->ImporteCUC = $importeTotalc;

                        	$objFac->save();

                        	$histoper->save();

                    	}

                    	//Guardar saldos despues de guardarlos en subcmayor en Histsalpro

                    	$histsalpro = Histsalpro::model()->find('id=:id and Codpro=:Codpro and CodPVen=:CodPVen', array(':id' => $model->nfactura, ':Codpro' => $detalle->Codpro, ':CodPVen' => $detalle->CodPVen));

                    	// $productos = Submyproductos::model()->find('Codpro=:Codpro and CodPVen=:CodPVen', array(':Codpro' => $produp->Codpro, ':CodPVen' => $detalle->CodPVen));

                    	$productos = Submyproductos::model()->find('Codpro=:Codpro', array(':Codpro' => $detalle->Codpro));

                    	if (!$histsalpro) {//Si no existe crearla	

                        	$histsalpro = new Histsalpro;

                        	$histsalpro->Codpro = $detalle->Codpro;

                        	$histsalpro->CodPVen = $detalle->CodPVen;

                        	$histsalpro->SaldoAnt = $productos->SaldoAnt;

                        	$histsalpro->SaldoAct = $productos->SaldoAct;

                        	$histsalpro->fecha = date('Y-m-d_h.i.s'); //Fecha de la modificación Y-m-d h:mm:ss	

                        	$histsalpro->save();

                    	}


                    	//llenar historicos de detalles de Coddeaciones

                    	$histdetaoper = Histdetallesoper::model()->find('nfactura=:nfactura and Codpro=:Codpro', array(':nfactura' => $detalle->Id_cons, ':Codpro' => $detalle->Codpro));

                    	if (!$histdetaoper) {//Si no existe crearla	

                        	$histdetaoper = new Histdetallesoper;

                        	$histdetaoper->nfactura = $detalle->Id_cons; //

                        	$histdetaoper->cantidad = $detalle->cantidad; //

                        	$histdetaoper->Codpro = $detalle->Codpro;

                        	$histdetaoper->SaldoDes = $detalle->SaldoDes; //

                        	$histdetaoper->premn = $detalle->PreMN;

                        	$histdetaoper->CodPVen = $detalle->CodPVen;

                        	$histdetaoper->precuc = $detalle->PrCUC; //

                        	$histdetaoper->importemne = ROUND($detalle->SaldoDes * $detalle->PreMN, 2); //

                        	$histdetaoper->importecuce = ROUND($detalle->SaldoDes * $detalle->PrCUC, 2); //$detalle->premn 

                        	$histdetaoper->importemn = ROUND($detalle->cantidad * $detalle->PreMN, 2); //

                        	$histdetaoper->importecuc = ROUND($detalle->cantidad * $detalle->PrCUC, 2);

                        	$histdetaoper->SaldoIni = $detalle->SaldoIni; //

                        	$histdetaoper->save();

                    	}

                	}

            	}

            	//buscar vales de mercancias 

            	$vale = Cpmercancias::model()->find('CodPVen=:CodPVen and nvale=:nvale', array(':CodPVen' => $detalle->CodPVen, ':nvale' => $model->nfactura));


            	if (!$vale) {//!$model->Codentrada = 5

                	$vale = new Cpmercancias;

                	$vale->CodPVen = $detalle->CodPVen;

                	$vale->CodCliente = $model->CodProvedor;

                	$vale->nvale = $objFac->nfactura;

                	$vale->ImporteMN = $objFac->ImporteMN;

                	$vale->ImporCUC = $objFac->ImporteCUC;

                	$vale->save();

            	}

        	}

        	Yii::app()->user->setFlash('success', 'Operación realizada satisfactoriamente');

    	} else {

        	Yii::app()->user->setFlash('error', 'La Operación no se realizó satisfactoriamente');

    	}

	}



Buenas Rafael.

Este ejemplo que te voy a poner te debe funcionar.

Crea esta acción en el controlador y dale permisos:




public function actionPruebaUno()

{

     $result = array(

                   'item1' => "",

                   'item2' => ""

                   );


     $result['item1'] .= CHtml::tag('option', array('value' => 1), 'element 1_1', true);

     $result['item1'] .= CHtml::tag('option', array('value' => 2), 'element 2_1', true);


     $result['item2'] .= CHtml::tag('option', array('value' => 1), 'element 2_1', true);

     $result['item2'] .= CHtml::tag('option', array('value' => 2), 'element 2_2', true);


     echo(json_encode($result));

}



Creas una vista llamada "pruebaUno" y escribes lo siguiente:




echo CHtml::DropDownList(

                       'field1', 

                       '', 

                       array(

                            '1' => 'element_1',

                            '2' => 'element_2'

                            ), 

                       array(

                            'prompt' => 'Seleccione la entidad',

                            'ajax' => array(

                                           'type' => 'POST',

                                           'url' => Yii::app()->createUrl('/facturacion/datosrecepcion/pruebaUno'),

                                           'dataType' => 'json',

                                           'success' => "function(data)

                                                        {                               

                                                        $('#ddl1').html(data.item1);

                                                        $('#ddl2').html(data.item2);


                                                        }"

                                               )

                              )

                        );


echo CHtml::dropDownList(

                        'ddl1', 

                        '', 

                        array(), 

                        array('prompt' => 'Seleccione ddl1')

                        );


echo CHtml::dropDownList(

                        'ddl2', 

                        '', 

                        array(), 

                        array('prompt' => 'Seleccione ddl2')

                        );




Y esto lo he probado y funciona.

Un saludo.

Ok buenas lagogz, la pruebo y te comento, gracias

Buenas lagogz, lo probe y sigue igual, cuando escojo el elemento 1, me muestra en el debug los valores correctos, pero en los combos no:

mira el debug:




<{"item1":"<option value=\"1\">element 1_1<\/option><option value=\"2\">element 2_1<\/option>","item2":"<option value=\"1\">element 2_1<\/option><option value=\"2\">element 2_2<\/option>"}

lo mismo ocurre al seleccionar el elemento2

Recuerda que en los modulos solo cree los modulos por la via de gii, y copie las vista, modelos y controladores que intervienen en cada modulo, ademas hice el layouts para cada modulo adapte la vista index de la vista default, ademas adapte los url a cada vista, no le hecho nada mas al modulo, por eso te pregunto, si con esto es suficiente.

Observo que todo lo que antes funcionaba antes de crear el modulo ahora no funciona, sin embargo si saco la vista del modulo y la halo desde las carpetas originales del sistema si funciona.

Buenas lagogz, el problema es que el controlador que tengo en la ruta:

/xampp\htdocs\sgestion\protected\modules\facturacion\controllers, que es donde tengo el modulo ubicado apunta al modelo que tengo fuera en:

/xampp\htdocs\sgestion\protected\models, si quito este modelo entonces me da error, ¿como puedo resolver eso?

Buenas.

Los modelos de cada módulo pueden (o deberían estar) en el propio módulo.

Un modelo es una clase, y tu tienes el modelo fuera. Lo que deberías hacer es colocar el modelo en :




/xampp\htdocs\sgestion\protected\modules\facturacion\models



Eliminándolo de /xampp\htdocs\sgestion\protected\models, sino tendrías 2 clases iguales.

Respecto al ejemplo que te puse. Es imposible que no te funcione. Sólo están involucrados el controlador y la vista, no el modelo, ya que los datos que metemos son estáticos. No te dá ningún otro aviso o error? De hecho, te dije q crearas una nueva vista, en la cuál no hay ninguna referencia a modelos.

Es q no entiendo que es lo que te puede pasar, pq la comunicación de la vista con el controlador está correcta, desde la vista llegas al controlador y éste emite una respuesta.

Hiciste lo que te dije tal cuál?

Si tienes alguna forma de pasarme los archivos lo pruebo en mi pc.

Un saludo.

Buenos dias lagogz, despues de tanto cambiar cosas y revisar tanto con tu valiosa ayuda, al fin pude dar con el problema que tenia, era muy simple, de todas formas me fue muy valiosa tu ayuda, mira que simple era la solucion:

en los components Controller:

solo tuve que quitar un /




class Controller extends CController

{

   	public $layout='//layouts/column1';


    	public $menu=array();


    	public $breadcrumbs=array();


      	

   function init(){

  $this->layout= 'main';   	

   }

   

}



tenia esto


 public $layout='/layouts/column1'; 

al tener un solo / se perdia en el camino y no encontraba la ruta de los modelos

Gracias amigo por tu paciencia, te di el punto, si pudiera darte 1000 te los daria

Gracias

Buenas.

Pues me alegro, pero no sé si será la mejor solución…

Un saludo.

Buenas lagogz, disculpa la demora en contestar, en realidad, cunado se resolvio el problema aproveche que estaba trabajando esa noche y volvi a configurar ese modulo desde el principio, al final me di cuenta del problema que te comente y por eso te dije esa solucion, de todas formas si usted cree que hay otra solucion mejor me la comenta, por ahora me esta funcionando ok.

Bueno por lo demas, pasela bien.