Foros del Web » Programando para Internet » PHP »

Yii - Maestro/Detalle tipo venta/proforma

Estas en el tema de Yii - Maestro/Detalle tipo venta/proforma en el foro de PHP en Foros del Web. Saludos terrícolas! Estoy trabajando en Yii Framework y quiero codificar un archivo que permita la búsqueda de productos (código, descripción del producto, precio, cantidad, subtotal, ...
  #1 (permalink)  
Antiguo 11/11/2016, 11:49
Avatar de Erick_Lucas  
Fecha de Ingreso: enero-2009
Ubicación: Manta
Mensajes: 47
Antigüedad: 15 años, 11 meses
Puntos: 1
Yii - Maestro/Detalle tipo venta/proforma

Saludos terrícolas!

Estoy trabajando en Yii Framework y quiero codificar un archivo que permita la búsqueda de productos (código, descripción del producto, precio, cantidad, subtotal, impuesto). Una vez que haya encontrado la info del mismo que éste se cargue sea en una tabla HTML ó en CGridView del framework.

Una vez terminado de agregar el ó los productos permita registrar información de cabecera como datos del cliente, así como el valor total calculado de los productos mandados a buscar. Practicamente la funcionalidad de una terminal de punto de venta básica, pero quiero realizar esto con AJAX para evitar el 'reload' de la página una y otra vez.

Desde luego no aspiro que me hagan el trabajo, sólo pido su ayuda y más que todo guía para realizar algo que, como recalco, es bien básico para las características de maestro/detalle.

Sea esto en Yii o con PHP puro, ya tengo la conexión con SQL Server que es donde tengo mi base de datos y tengo el CJuiAutoComplete configurado para mandar a buscar los productos.

Código PHP:
Ver original
  1. $this->widget('zii.widgets.jui.CJuiAutoComplete', array(
  2.             'model'=>$model,
  3.             'attribute'=>'Precio',
  4.             'source'=>$this->createUrl('productos/producto'),
  5.             'options' => array(
  6.             'select'=>"js:function(event, ui) {
  7.                         buscar(ui.item.value,ui.item.label,ui.item.precio)
  8.                     }",
  9.                 'showAnim'=>'fold',
  10.                 ),
  11.                 'htmlOptions'=>array(
  12.                     'id'=>'txtPrecio',
  13.                     'size'=>15,
  14.                     'value'=>'',
  15.                     'style'=>'text-align: right',
  16.                     'maxlength'=>20,
  17.                 ),
  18.         ));

El controlador se encarga de realizar la consulta:

Código PHP:
Ver original
  1. public function actionProducto($term)
  2.     {  
  3.         $result = Yii::app()->db->createCommand()
  4.         ->select("TOP 10 codigo, LTRIM(RTRIM(nombre)) Producto, precio1")
  5.         ->from("SGI_Inv_Productos")
  6.         ->where("precio1>0 AND nombre LIKE :codigo", array(':codigo'=>"%".$term."%"))
  7.         ->order('Producto')
  8.         ->query()
  9.         ->readAll();
  10.    
  11.         $ret = array();
  12.         foreach($result as $record) {
  13.             $ret[] = array('label'=>strtoupper($record['Producto']),
  14.                     'value'=>$record['codigo'],
  15.                     'precio'=>number_format($record['precio1'],2),
  16.             );
  17.         }
  18.         echo CJSON::encode($ret);
  19.         Yii::app()->end();
  20.     }

Y la función JavaScript 'buscar' que recibe los parámetros que envía el Controlador.

Código Javascript:
Ver original
  1. function buscar(codigo,descripcion,precio) {
  2.     var t = $('#example').DataTable();
  3.     t.row.add( [
  4.         codigo,
  5.         descripcion,
  6.         '<?php echo CHtml::image(Yii::app()->baseUrl."/images/PTAR000025.jpg","Erick", array('width'=>100,'height'=>75)); ?>',
  7.         '$ '+Math.round((precio/1.12)*Math.pow(10,2))/Math.pow(10,2),
  8.         '$ '+Math.round((precio/1.12)*Math.pow(10,2))/Math.pow(10,2),
  9.         '$ '+Math.round(((precio/1.12)*0.12)*Math.pow(10,2))/Math.pow(10,2),
  10.         '$ '+Math.round(precio*Math.pow(10,2))/Math.pow(10,2)
  11.         ]).draw( false );
  12. }

Como se darán cuenta, siempre va a cargar la misma imagen pero yo deseo que enbase al código del producto coloque la imagen, pero no sé como concatenar el valor de código que tengo en JavaScript con el valor de CHtml::image en PHP. Ha sido de mis principales dificultades. Y luego viene lo de agregar cabecera/detalle.

Espero haberme hecho entender. Atento a sus respuestas.

Etiquetas: ajax, cabecera, detalle, factura, framework, html, tabla, yii
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:51.