<?php

class Fontis_Customer_Model_Customer_Observer extends Mage_Core_Model_Abstract{
     
    /*
     *  observer for the customer Adress Saved Event
     */
    
    public function customer_address_save_before($observer){
        
        
        $Tab_UE = array("DE","AT","BE","BG","CY","DK","EE","FI","GR","HU","IE","LV","LT","LU","MT","NL","PL","PT","RO","GB","CZ","SK","SI","SE");
        
        try{
        
        $address = $observer->getCustomerAddress();
        $customer = $address->getCustomer();
            
        //Zend_Debug::dump($customer);
        //exit();
        $country_code = $customer->getDefaultShippingAddress()->getCountry();
        
        $taxvat = $customer->getTaxvat();
            
        if($country_code == "IT"){ // Si le client est italien
            Mage::log("Je suis dans la boucle IT ".$country_code, null, 'customer.log');
            
            if($taxvat != NULL) {
                Mage::log("Avant le changement, le id group=".$customer->getGroupId(), null, 'customer.log');
                $customer->setData( 'group_id', 7 );
                Mage::log("Après un setData le id group=".$customer->getGroupId(), null, 'customer.log');
                
            }// Son N°TVA est renseigné : il est PRO IT
            else $customer->setData( 'group_id', 6 ); // Sinon, il est PART IT
        } 
				
	else if(trim($country_code) == "FR"){ // Si le client est français
            Mage::log("Je suis dans la boucle FR ".$country_code, null, 'customer.log');
            
            if($taxvat != NULL) $customer->setData( 'group_id', 3 ); // Son N°TVA est renseigné : il est PRO FR
            else $customer->setData( 'group_id', 1 ); // Sinon, il est PART FR
        } 
				
	else if(strtoupper($country_code) == "ES"){ // Si le client est espagnol
            Mage::log("Je suis dans la boucle ES ".$country_code, null, 'customer.log');
            
            if($taxvat != NULL) $customer->setData( 'group_id', 8 ); // Son N°TVA est renseigné : il est PRO ES
            else $customer->setData( 'group_id', 5 ); // Sinon, il est PART ES
	}
        
        else if (!in_array($country_code, $Tab_UE)) { // Si le client est Particulier Hors UE
            Mage::log("Je suis dans la boucle MONDE ".$country_code, null, 'customer.log');
            
            $customer->setData( 'group_id', 4 ); // Groupe 4 = Pro et Particulier Monde
	}
        
        else if (in_array($country_code, $Tab_UE)) { // Si le client est Particulier membre de l'UE
            Mage::log("Je suis dans la boucle UE ".$country_code, null, 'customer.log');
            
            if ($taxvat != NULL){ $customer->setData( 'group_id', 2 ); } // Son N°TVA est renseigné: il est Pro UE avec n°intra
            else{$customer->setData( 'group_id', 9 ); } // Sinon, il est Pro UE sans n°intra			   
	}
        
           
        }catch(Exception $e){ Mage::log("customer_after_address_save observer failed: ". $e->getMessage());}
       
        
        Mage::log("A la fin, le id group=".$customer->getGroupId(), null, 'customer.log');
       
        Mage::dispatchEvent('customer_save_before', array('customer'=>$customer));
               
    }
	
}

?>
