public function assignData($data) { if (!$data instanceof Varien_Object) { $data = new Varien_Object($data); } $info = $this->getInfoInstance(); $info->setCcType('openinvoice'); // check if option gender or date of birth is enabled $genderShow = $this->genderShow(); $dobShow = $this->dobShow(); $telephoneShow = $this->telephoneShow(); if ($genderShow || $dobShow || $telephoneShow) { // set gender and dob to the quote $quote = $this->getQuote(); // dob must be in yyyy-MM-dd $dob = $data->getYear() . "-" . $data->getMonth() . "-" . $data->getDay(); if ($dobShow) { $quote->setCustomerDob($dob); } if ($genderShow) { $quote->setCustomerGender($data->getGender()); // Fix for OneStepCheckout (won't convert quote customerGender to order object) $info->setAdditionalInformation('customerGender', $data->getGender()); } if ($telephoneShow) { $telephone = $data->getTelephone(); $quote->getBillingAddress()->setTelephone($data->getTelephone()); } /* Check if the customer is logged in or not */ if (Mage::getSingleton('customer/session')->isLoggedIn()) { /* Get the customer data */ $customer = Mage::getSingleton('customer/session')->getCustomer(); // set the email and/or gender if ($dobShow) { $customer->setDob($dob); } if ($genderShow) { $customer->setGender($data->getGender()); } if ($telephoneShow) { $billingAddress = $customer->getPrimaryBillingAddress(); if ($billingAddress) { $billingAddress->setTelephone($data->getTelephone()); } } // save changes into customer $customer->save(); } } return $this; }