/*
 * ShoppingCartProductListView.java
 *
 * Created on 20 de septiembre de 2004, 10:27
 */

package com.fenalco.utilities.lists;

import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;

import com.fenalco.entities.ShoppingCartProduct;
/**
 *
 * @author  andres
 */
public class ShoppingCartProductListView implements ListView
{
    
       /**
     * El listado (modelo o documento)
     */    
    Hashtable productList;
    /**
     * Como el listado es un hashtable, aqui almaceno los keys
     */    
    private Enumeration keys;
    /**
     * La llave actual que se está trabajando, se usa para tener acceso a los objetos
     * que se deben mostrar de ese elemento de la lista
     */    
    private Object actualKey;
    /**
     * valor actual en el que se está trabajando, es decir, la fila actual de la lista
     */    
    private ShoppingCartProduct actualValue;
    /**
     * aqui se almacenan los datos que se van a mostrar en las diferentes columnas
     * de la lista
     */    
    private Vector valuesToShow;
    /**
     * contador que indica en que columna voy
     */ 	   
    private int count;
    
    
    /** Creates a new instance of ShoppingCartProductListView */
    public ShoppingCartProductListView( Hashtable prod )
    {
        productList = prod;
        keys = productList.keys();
    }
    
    public boolean move()
    {
        boolean res = false;
        if( keys.hasMoreElements() )
        {
            actualKey = keys.nextElement();
            actualValue = ( ShoppingCartProduct )productList.get( actualKey );

            valuesToShow = new Vector();
            count = 0;


            // adiciono primero el id del producto_proveedor
            valuesToShow.addElement( actualValue.getSupplierProductId() + "" );
            valuesToShow.addElement( actualValue.getCode() );
            valuesToShow.addElement( actualValue.getName() );
            valuesToShow.addElement( actualValue.getCategory() );
            valuesToShow.addElement( actualValue.getBrand() );
            valuesToShow.addElement( actualValue.getPrice() + "" );
            valuesToShow.addElement( actualValue.getQuantity() + "" );
            valuesToShow.addElement( actualValue.getTotalPrice() + "" );
            // adiciono el iva al producto
            valuesToShow.addElement( actualValue.getTax() + "" );
            res = true;
        }
        return res;

    }
    
    public Object nextElement()
    {
        Object res = null;
        if( valuesToShow != null && valuesToShow.size() > 0)
        {
            if( count < valuesToShow.size() )
            {
                res = valuesToShow.elementAt( count++ );
            }
        }
        return res;
    }
    
}
// “Copyright (C) <2008> Multilateral Investment Fund of the Inter-American Development Bank.
// Este archivo es parte de <ICT4BUS-PVL>
// < ICT4BUS-PVL > es software libre: usted puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Fundación para el Software Libre, ya sea la versión 3 de la Licencia, o (a su elección) cualquier versión posterior.
// < ICT4BUS-PVL > se distribuye con la esperanza de que sea útil, pero SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita MERCANTIL o de APTITUD PARA UN PROPÓSITO DETERMINADO. 
// Consulte los detalles de la Licencia Pública General GNU para obtener una información más detallada. 
// Debería haber recibido una copia de la Licencia Pública General GNU junto a este programa. En caso contrario, consulte http://www.gnu.org/licenses/.”