Únete a la Comunidad Magento

Regístrate gratis para publicar preguntas y recibir un resumen semanal con lo mejor de la comunidad
REGISTRO GRATIS

Módulo Simple Order Export: Obtener Tipo de IVA

Tema en 'Contribuciones, extensiones' iniciado por Masta90, 27/4/11.

  1. Masta90

    Masta90 Nuevo usuario

    81
    0
    0
    Buenas, he instalado ésta contribución, que es super útil para mi, pero necesito que me saque un dato más, el tipo de iva de cada producto (8 o 18), no la cantidad.
    Ésto es el codigo referente al pedido/producto.
    PHP:
    $itemInc,
    $item->getName(),
    $item->getStatus(),
    $this->getItemSku($item),
    $this->getItemOptions($item),
    $this->formatPrice($item->getOriginalPrice(), $order),
    $this->formatPrice($item->getData('price'), $order),
    (int)
    $item->getQtyOrdered(),
    (int)
    $item->getQtyInvoiced(),
    (int)
    $item->getQtyShipped(),
    (int)
    $item->getQtyCanceled(),
    (int)
    $item->getQtyRefunded(),
    $this->formatPrice($item->getTaxAmount(), $order),
    $this->formatPrice($item->getDiscountAmount(), $order),
    $this->formatPrice($order->getData('shipping_amount'), $order),
    $this->formatPrice($this->getItemTotal($item), $order)

    ¿alguna idea?

    Gracias
     
    Última edición por un moderador: 27/4/11
    Etiquetas:
  2.  
    Comunidad Magento orgullosamente patrocinada por el hosting y vps magento de FactoriaDigital.com.
  3. OSdave

    OSdave Super Moderador Miembro del equipo

    2.136
    3
    36
    prueba:
    PHP:
    Mage::helper('invoice')->getTaxClass($item)
     
  4. Masta90

    Masta90 Nuevo usuario

    81
    0
    0
    Insertar CODE, HTML o PHP:
    $item->getData('tax_percent'), 
    Finalmente era ese.

    Ahora el problema que tengo son los caracteres, en lugar de españa, me saca España, etc.
    Con los numeros lo he solucionado eliminando $this->formatPrice con lo cual me lo saca en número solo. Pero con las direcciones, etc, no sé como hacerlo

    ¿Alguna idea? Gracias
     
  5. OSdave

    OSdave Super Moderador Miembro del equipo

    2.136
    3
    36
    problema de codificacion, ¿que codigo muestra las direcciones? ¿en la bbdd estan bien los datos? ¿tus archivos php estan codificados utf8?
     
  6. Masta90

    Masta90 Nuevo usuario

    81
    0
    0
    Mejor pego el código completo, por si falta algo.
    En la bbdd se muestra todo bien, sin problemas, con ñ, acentos, etc. El .php tambien tiene codificacion utf-8. Es raro, porque si en el nombre de los títulos de las celdas pongo algo con Ñ por ejemplo, lo muestra bien en el csv, pero el resto no.

    Muchas gracias.

    Insertar CODE, HTML o PHP:
    <?php
    /**
     * NOTICE OF LICENSE
     *
     * The MIT License
     *
     * Copyright (c) 2009 S. Landsbek (slandsbek@gmail.com)
     *
     * Permission is hereby granted, free of charge, to any person obtaining a copy
     * of this software and associated documentation files (the "Software"), to deal
     * in the Software without restriction, including without limitation the rights
     * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     * copies of the Software, and to permit persons to whom the Software is
     * furnished to do so, subject to the following conditions:
     * 
     * The above copyright notice and this permission notice shall be included in
     * all copies or substantial portions of the Software.
     * 
     * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     * THE SOFTWARE.
     *
     * @package    SLandsbek_SimpleOrderExport
     * @copyright  Copyright (c) 2009 S. Landsbek (slandsbek@gmail.com)
     * @license    http://opensource.org/licenses/mit-license.php  The MIT License
     */
    
    /**
     * Exports orders to csv file. If an order contains multiple ordered items, each item gets
     * added on a separate row.
     */
    class SLandsbek_SimpleOrderExport_Model_Export_Csv extends SLandsbek_SimpleOrderExport_Model_Export_Abstract
    {
        const ENCLOSURE = '"';
        const DELIMITER = ',';
    
        /**
         * Concrete implementation of abstract method to export given orders to csv file in var/export.
         *
         * @param $orders List of orders of type Mage_Sales_Model_Order or order ids to export.
         * @return String The name of the written csv file in var/export
         */
        public function exportOrders($orders) 
        {
            $fileName = 'order_export_'.date("Ymd_His").'.csv';
            $fp = fopen(Mage::getBaseDir('export').'/'.$fileName, 'w');
    
            $this->writeHeadRow($fp);
            foreach ($orders as $order) {
                $order = Mage::getModel('sales/order')->load($order);
                $this->writeOrder($order, $fp);
            }
    
            fclose($fp);
    
            return $fileName;
        }
    
        /**
    	 * Writes the head row with the column names in the csv file.
    	 * 
    	 * @param $fp The file handle of the csv file
    	 */
        protected function writeHeadRow($fp) 
        {
    	
            fputcsv($fp, $this->getHeadRowValues(), self::DELIMITER, self::ENCLOSURE);
        }
    
        /**
    	 * Writes the row(s) for the given order in the csv file.
    	 * A row is added to the csv file for each ordered item. 
    	 * 
    	 * @param Mage_Sales_Model_Order $order The order to write csv of
    	 * @param $fp The file handle of the csv file
    	 */
    
    
    
    
        protected function writeOrder($order, $fp)
        {
            $common = $this->getCommonOrderValues($order);
    
            $orderItems = $order->getItemsCollection();
            $itemInc = 0;
            foreach ($orderItems as $item)
            {
                if (!$item->isDummy()) {
                    $record = array_merge($common, $this->getOrderItemValues($item, $order, ++$itemInc));
                    fputcsv($fp, $record, self::DELIMITER, self::ENCLOSURE);
                }
            }
     
        }
    
        /**
    	 * Returns the head column names.
    	 * 
    	 * @return Array The array containing all column names
    	 */
        protected function getHeadRowValues() 
        {
            return array(
                'Número del pedido',
                'Fecha del pedido',            
                'Nombre del cliente',
                'Correo del cliente',
                'Nombre de envío',
                'Empresa de envío',
                'Dirección de envío',
                'CP de envio',
                'Municipio de envío',
    	    'Provincia de envío',            
                'País de envío',
                'Teléfono de envío',
        	    'Nombre de facturacion',
                'Empresa de facturacion',
                'Dirección de facturacion',
                'CP de facturacion',
                'Municipio de facturacion',            
    	    'Provincia de facturacion',
                'País de facturacion',           
                'Teléfono de facturacion',
                'Nombre del artículo',
    'SKU',
                'Precio',	
    'TIPO DE IVA',	
                'Cantidad',            
                'Impuesto',
                'Descuento',
    	    'Portes sin IVA',
        	    
        	);
        }
    
        /**
    	 * Returns the values which are identical for each row of the given order. These are
    	 * all the values which are not item specific: order data, shipping address, billing
    	 * address and order totals.
    	 * 
    	 * @param Mage_Sales_Model_Order $order The order to get values from
    	 * @return Array The array containing the non item specific values
    	 */
        protected function getCommonOrderValues($order) 
        {
            $shippingAddress = !$order->getIsVirtual() ? $order->getShippingAddress() : null;
            $billingAddress = $order->getBillingAddress();
            
    
    
    
            return array(
                $order->getRealOrderId(),
                Mage::helper('core')->formatDate($order->getCreatedAt(), 'medium', true),
                #$order->getStatus(),
                #$this->getStoreName($order),
                #$this->getPaymentMethod($order),
                #$this->getShippingMethod($order),
                #$this->formatPrice($order->getData('subtotal'), $order),
                #$this->formatPrice($order->getData('tax_amount'), $order),
                #$this->formatPrice($order->getData('discount_amount'), $order),
                #$this->formatPrice($order->getData('grand_total'), $order),
                #$this->formatPrice($order->getData('total_paid'), $order),
                #$this->formatPrice($order->getData('total_refunded'), $order),
                #$this->formatPrice($order->getData('total_due'), $order),
                #$this->getTotalQtyItemsOrdered($order),
                $order->getCustomerName(),
                $order->getCustomerEmail(),
                $shippingAddress ? $shippingAddress->getName() : '',
                $shippingAddress ? $shippingAddress->getData("company") : '',
                $shippingAddress ? $shippingAddress->getData("street") : '',
                $shippingAddress ? $shippingAddress->getData("postcode") : '',
                $shippingAddress ? $shippingAddress->getData("city") : '',
                #$shippingAddress ? $shippingAddress->getRegionCode() : '',
                $shippingAddress ? $shippingAddress->getRegion() : '',
                #$shippingAddress ? $shippingAddress->getCountry() : '',
                $shippingAddress ? $shippingAddress->getCountryModel()->getName() : '',
                $shippingAddress ? $shippingAddress->getData("telephone") : '',
                $billingAddress->getName(),
                $billingAddress->getData("company"),
                $billingAddress->getData("street"),
                $billingAddress->getData("postcode"),
                $billingAddress->getData("city"),
                #$billingAddress->getRegionCode(),
                $billingAddress->getRegion(),
                #$billingAddress->getCountry(),
                $billingAddress->getCountryModel()->getName(),
                $billingAddress->getData("telephone")
            );
    
        }
      
    
        /**
    	 * Returns the item specific values.
    	 * 
    	 * @param Mage_Sales_Model_Order_Item $item The item to get values from
    	 * @param Mage_Sales_Model_Order $order The order the item belongs to
    	 * @return Array The array containing the item specific values
    	 */
        protected function getOrderItemValues($item, $order, $itemInc=1) 
        {
            return array(
                #$itemInc,
                $item->getName(),
                #$item->getStatus(),
                $this->getItemSku($item),
                #$this->getItemOptions($item),
                #$this->formatPrice($item->getOriginalPrice(), $order),
                #$this->formatPrice($item->getData('price'), $order),
    	    $item->getData('price'),
                $item->getData('tax_percent'),   
                (int)$item->getQtyOrdered(),
                #(int)$item->getQtyInvoiced(),
                #(int)$item->getQtyShipped(),
                #(int)$item->getQtyCanceled(),
                #(int)$item->getQtyRefunded(),
                $item->getTaxAmount(),
                $item->getDiscountAmount(),
    	    $order->getData('shipping_amount'),
                #$this->formatPrice($this->getItemTotal($item), $order)
            );
        }
    }
       
    ?>
     
  7. OSdave

    OSdave Super Moderador Miembro del equipo

    2.136
    3
    36
  8. Masta90

    Masta90 Nuevo usuario

    81
    0
    0
    No, ¿cómo se haría?
    Ya por curiosidad, he probado la opcion Exportar a: CSV "nativa", directamente del administrador de Pedidos, y ocurre lo mismo. ¿Os pasa a todos?

    Muchas gracias
     
  9. OSdave

    OSdave Super Moderador Miembro del equipo

    2.136
    3
    36
    oye pero el problema esta en cuando abres el csv? ¿con que programa lo haces? en el link "traducir" de mi firma explico como abrirlos con openoffice
     
  10. Masta90

    Masta90 Nuevo usuario

    81
    0
    0
    Coño (con perdon), en Calc se abre bien, muestra las eñes, los acentos, los €.. todo, importandolo como utf-8 claro.
    ¿Hay alguna opcion para esto en Notepad y Excel?
    Muchas gracias :D
     
  11. Xarlie

    Xarlie Super Moderador Miembro del equipo

    2.715
    10
    38
    Cuando en excel le das a importar datos externos, puedes seleccionar el origen en utf-8 en lugar de ansi por defecto
     
Cargando...

Compartir esta página

Cargando...