Overview

Packages

  • currencysymbol
  • MAbout
  • Mage
    • Admin
    • Adminhtml
    • AdminNotification
    • Api
    • Api2
    • Authorizenet
    • Backup
    • Bundle
    • Captcha
    • Catalog
    • CatalogIndex
    • CatalogInventory
    • CatalogRule
    • CatalogSearch
    • Centinel
    • Checkout
    • Cms
    • Compiler
    • Connect
    • Contacts
    • Core
    • Cron
    • CurrencySymbol
    • Customer
    • Dataflow
    • Directory
    • DirtectPost
    • Downloadable
    • Eav
    • GiftMessage
    • GoogleAnalytics
    • GoogleBase
    • GoogleCheckout
    • ImportExport
    • Index
    • Install
    • Log
    • Media
    • Newsletter
    • Oauth
    • Page
    • PageCache
    • Paygate
    • Payment
    • Paypal
    • PaypalUk
    • Persistent
    • Poll
    • ProductAlert
    • Rating
    • Reports
    • Review
    • Rss
    • Rule
    • Sales
    • SalesRule
    • Sedfriend
    • Sendfriend
    • Shipping
    • Sitemap
    • Tag
    • Tax
    • Usa
    • Weee
    • Widget
    • Wishlist
    • XmlConnect
  • None
  • Phoenix
    • Moneybookers
  • PHP
  • Zend
    • Date
    • Mime
    • XmlRpc

Classes

  • Mage_Bundle_Model_Sales_Order_Pdf_Items_Creditmemo
  • Mage_Bundle_Model_Sales_Order_Pdf_Items_Invoice
  • Mage_ImportExport_Model_Resource_Helper_Mysql4
  • Mage_Sales_Billing_AgreementController
  • Mage_Sales_Block_Adminhtml_Billing_Agreement
  • Mage_Sales_Block_Adminhtml_Billing_Agreement_Grid
  • Mage_Sales_Block_Adminhtml_Billing_Agreement_View
  • Mage_Sales_Block_Adminhtml_Billing_Agreement_View_Form
  • Mage_Sales_Block_Adminhtml_Billing_Agreement_View_Tab_Info
  • Mage_Sales_Block_Adminhtml_Billing_Agreement_View_Tab_Orders
  • Mage_Sales_Block_Adminhtml_Billing_Agreement_View_Tabs
  • Mage_Sales_Block_Adminhtml_Customer_Edit_Tab_Agreement
  • Mage_Sales_Block_Adminhtml_Customer_Edit_Tab_Recurring_Profile
  • Mage_Sales_Block_Adminhtml_Recurring_Profile
  • Mage_Sales_Block_Adminhtml_Recurring_Profile_Edit_Form
  • Mage_Sales_Block_Adminhtml_Recurring_Profile_Grid
  • Mage_Sales_Block_Adminhtml_Recurring_Profile_View
  • Mage_Sales_Block_Adminhtml_Recurring_Profile_View_Tab_Info
  • Mage_Sales_Block_Adminhtml_Recurring_Profile_View_Tab_Orders
  • Mage_Sales_Block_Adminhtml_Report_Filter_Form
  • Mage_Sales_Block_Adminhtml_Report_Filter_Form_Coupon
  • Mage_Sales_Block_Adminhtml_Report_Filter_Form_Order
  • Mage_Sales_Block_Billing_Agreement_View
  • Mage_Sales_Block_Billing_Agreements
  • Mage_Sales_Block_Guest_Links
  • Mage_Sales_Block_Items_Abstract
  • Mage_Sales_Block_Order_Comments
  • Mage_Sales_Block_Order_Creditmemo
  • Mage_Sales_Block_Order_Creditmemo_Items
  • Mage_Sales_Block_Order_Creditmemo_Totals
  • Mage_Sales_Block_Order_Details
  • Mage_Sales_Block_Order_Email_Creditmemo_Items
  • Mage_Sales_Block_Order_Email_Invoice_Items
  • Mage_Sales_Block_Order_Email_Items
  • Mage_Sales_Block_Order_Email_Items_Default
  • Mage_Sales_Block_Order_Email_Items_Order_Default
  • Mage_Sales_Block_Order_Email_Items_Order_Grouped
  • Mage_Sales_Block_Order_Email_Shipment_Items
  • Mage_Sales_Block_Order_History
  • Mage_Sales_Block_Order_Info
  • Mage_Sales_Block_Order_Info_Buttons
  • Mage_Sales_Block_Order_Invoice
  • Mage_Sales_Block_Order_Invoice_Items
  • Mage_Sales_Block_Order_Invoice_Totals
  • Mage_Sales_Block_Order_Item_Renderer_Default
  • Mage_Sales_Block_Order_Item_Renderer_Grouped
  • Mage_Sales_Block_Order_Items
  • Mage_Sales_Block_Order_Print
  • Mage_Sales_Block_Order_Print_Creditmemo
  • Mage_Sales_Block_Order_Print_Invoice
  • Mage_Sales_Block_Order_Print_Shipment
  • Mage_Sales_Block_Order_Recent
  • Mage_Sales_Block_Order_Shipment
  • Mage_Sales_Block_Order_Shipment_Items
  • Mage_Sales_Block_Order_Totals
  • Mage_Sales_Block_Order_View
  • Mage_Sales_Block_Payment_Form_Billing_Agreement
  • Mage_Sales_Block_Payment_Info_Billing_Agreement
  • Mage_Sales_Block_Recurring_Profile_View
  • Mage_Sales_Block_Recurring_Profiles
  • Mage_Sales_Block_Reorder_Sidebar
  • Mage_Sales_Block_Widget_Guest_Form
  • Mage_Sales_Controller_Abstract
  • Mage_Sales_DownloadController
  • Mage_Sales_Exception
  • Mage_Sales_Helper_Data
  • Mage_Sales_Helper_Guest
  • Mage_Sales_Helper_Reorder
  • Mage_Sales_Model_Abstract
  • Mage_Sales_Model_Api2_Order
  • Mage_Sales_Model_Api2_Order_Address
  • Mage_Sales_Model_Api2_Order_Address_Rest
  • Mage_Sales_Model_Api2_Order_Address_Rest_Admin_V1
  • Mage_Sales_Model_Api2_Order_Address_Rest_Customer_V1
  • Mage_Sales_Model_Api2_Order_Comment
  • Mage_Sales_Model_Api2_Order_Comment_Rest
  • Mage_Sales_Model_Api2_Order_Comment_Rest_Admin_V1
  • Mage_Sales_Model_Api2_Order_Comment_Rest_Customer_V1
  • Mage_Sales_Model_Api2_Order_Item
  • Mage_Sales_Model_Api2_Order_Item_Rest
  • Mage_Sales_Model_Api2_Order_Item_Rest_Admin_V1
  • Mage_Sales_Model_Api2_Order_Item_Rest_Customer_V1
  • Mage_Sales_Model_Api2_Order_Rest
  • Mage_Sales_Model_Api2_Order_Rest_Admin_V1
  • Mage_Sales_Model_Api2_Order_Rest_Customer_V1
  • Mage_Sales_Model_Api_Resource
  • Mage_Sales_Model_Billing_Agreement
  • Mage_Sales_Model_Config
  • Mage_Sales_Model_Config_Ordered
  • Mage_Sales_Model_Convert_Order
  • Mage_Sales_Model_Convert_Quote
  • Mage_Sales_Model_Email_Template
  • Mage_Sales_Model_Entity_Order
  • Mage_Sales_Model_Entity_Order_Address
  • Mage_Sales_Model_Entity_Order_Address_Collection
  • Mage_Sales_Model_Entity_Order_Attribute_Backend_Billing
  • Mage_Sales_Model_Entity_Order_Attribute_Backend_Child
  • Mage_Sales_Model_Entity_Order_Attribute_Backend_Parent
  • Mage_Sales_Model_Entity_Order_Attribute_Backend_Shipping
  • Mage_Sales_Model_Entity_Order_Collection
  • Mage_Sales_Model_Entity_Order_Creditmemo
  • Mage_Sales_Model_Entity_Order_Creditmemo_Attribute_Backend_Child
  • Mage_Sales_Model_Entity_Order_Creditmemo_Attribute_Backend_Parent
  • Mage_Sales_Model_Entity_Order_Creditmemo_Collection
  • Mage_Sales_Model_Entity_Order_Creditmemo_Comment
  • Mage_Sales_Model_Entity_Order_Creditmemo_Comment_Collection
  • Mage_Sales_Model_Entity_Order_Creditmemo_Item
  • Mage_Sales_Model_Entity_Order_Creditmemo_Item_Collection
  • Mage_Sales_Model_Entity_Order_Invoice
  • Mage_Sales_Model_Entity_Order_Invoice_Attribute_Backend_Child
  • Mage_Sales_Model_Entity_Order_Invoice_Attribute_Backend_Item
  • Mage_Sales_Model_Entity_Order_Invoice_Attribute_Backend_Order
  • Mage_Sales_Model_Entity_Order_Invoice_Attribute_Backend_Parent
  • Mage_Sales_Model_Entity_Order_Invoice_Collection
  • Mage_Sales_Model_Entity_Order_Invoice_Comment
  • Mage_Sales_Model_Entity_Order_Invoice_Comment_Collection
  • Mage_Sales_Model_Entity_Order_Invoice_Item
  • Mage_Sales_Model_Entity_Order_Invoice_Item_Collection
  • Mage_Sales_Model_Entity_Order_Item
  • Mage_Sales_Model_Entity_Order_Item_Collection
  • Mage_Sales_Model_Entity_Order_Payment
  • Mage_Sales_Model_Entity_Order_Payment_Collection
  • Mage_Sales_Model_Entity_Order_Shipment
  • Mage_Sales_Model_Entity_Order_Shipment_Attribute_Backend_Child
  • Mage_Sales_Model_Entity_Order_Shipment_Attribute_Backend_Parent
  • Mage_Sales_Model_Entity_Order_Shipment_Collection
  • Mage_Sales_Model_Entity_Order_Shipment_Comment
  • Mage_Sales_Model_Entity_Order_Shipment_Comment_Collection
  • Mage_Sales_Model_Entity_Order_Shipment_Item
  • Mage_Sales_Model_Entity_Order_Shipment_Item_Collection
  • Mage_Sales_Model_Entity_Order_Shipment_Track
  • Mage_Sales_Model_Entity_Order_Shipment_Track_Collection
  • Mage_Sales_Model_Entity_Order_Status_History
  • Mage_Sales_Model_Entity_Order_Status_History_Collection
  • Mage_Sales_Model_Entity_Quote
  • Mage_Sales_Model_Entity_Quote_Address
  • Mage_Sales_Model_Entity_Quote_Address_Attribute_Backend
  • Mage_Sales_Model_Entity_Quote_Address_Attribute_Backend_Child
  • Mage_Sales_Model_Entity_Quote_Address_Attribute_Backend_Parent
  • Mage_Sales_Model_Entity_Quote_Address_Attribute_Backend_Region
  • Mage_Sales_Model_Entity_Quote_Address_Attribute_Frontend
  • Mage_Sales_Model_Entity_Quote_Address_Attribute_Frontend_Custbalance
  • Mage_Sales_Model_Entity_Quote_Address_Attribute_Frontend_Discount
  • Mage_Sales_Model_Entity_Quote_Address_Attribute_Frontend_Grand
  • Mage_Sales_Model_Entity_Quote_Address_Attribute_Frontend_Shipping
  • Mage_Sales_Model_Entity_Quote_Address_Attribute_Frontend_Subtotal
  • Mage_Sales_Model_Entity_Quote_Address_Attribute_Frontend_Tax
  • Mage_Sales_Model_Entity_Quote_Address_Collection
  • Mage_Sales_Model_Entity_Quote_Address_Item
  • Mage_Sales_Model_Entity_Quote_Address_Item_Collection
  • Mage_Sales_Model_Entity_Quote_Address_Rate
  • Mage_Sales_Model_Entity_Quote_Address_Rate_Collection
  • Mage_Sales_Model_Entity_Quote_Collection
  • Mage_Sales_Model_Entity_Quote_Item
  • Mage_Sales_Model_Entity_Quote_Item_Collection
  • Mage_Sales_Model_Entity_Quote_Payment
  • Mage_Sales_Model_Entity_Quote_Payment_Collection
  • Mage_Sales_Model_Entity_Sale_Collection
  • Mage_Sales_Model_Entity_Setup
  • Mage_Sales_Model_Mysql4_Abstract
  • Mage_Sales_Model_Mysql4_Billing_Agreement
  • Mage_Sales_Model_Mysql4_Billing_Agreement_Collection
  • Mage_Sales_Model_Mysql4_Collection_Abstract
  • Mage_Sales_Model_Mysql4_Order
  • Mage_Sales_Model_Mysql4_Order_Abstract
  • Mage_Sales_Model_Mysql4_Order_Address
  • Mage_Sales_Model_Mysql4_Order_Address_Collection
  • Mage_Sales_Model_Mysql4_Order_Attribute_Backend_Billing
  • Mage_Sales_Model_Mysql4_Order_Attribute_Backend_Child
  • Mage_Sales_Model_Mysql4_Order_Attribute_Backend_Parent
  • Mage_Sales_Model_Mysql4_Order_Attribute_Backend_Shipping
  • Mage_Sales_Model_Mysql4_Order_Collection
  • Mage_Sales_Model_Mysql4_Order_Collection_Abstract
  • Mage_Sales_Model_Mysql4_Order_Comment_Collection_Abstract
  • Mage_Sales_Model_Mysql4_Order_Creditmemo
  • Mage_Sales_Model_Mysql4_Order_Creditmemo_Attribute_Backend_Child
  • Mage_Sales_Model_Mysql4_Order_Creditmemo_Attribute_Backend_Parent
  • Mage_Sales_Model_Mysql4_Order_Creditmemo_Collection
  • Mage_Sales_Model_Mysql4_Order_Creditmemo_Comment
  • Mage_Sales_Model_Mysql4_Order_Creditmemo_Comment_Collection
  • Mage_Sales_Model_Mysql4_Order_Creditmemo_Grid_Collection
  • Mage_Sales_Model_Mysql4_Order_Creditmemo_Item
  • Mage_Sales_Model_Mysql4_Order_Creditmemo_Item_Collection
  • Mage_Sales_Model_Mysql4_Order_Grid_Collection
  • Mage_Sales_Model_Mysql4_Order_Invoice
  • Mage_Sales_Model_Mysql4_Order_Invoice_Attribute_Backend_Child
  • Mage_Sales_Model_Mysql4_Order_Invoice_Attribute_Backend_Item
  • Mage_Sales_Model_Mysql4_Order_Invoice_Attribute_Backend_Order
  • Mage_Sales_Model_Mysql4_Order_Invoice_Attribute_Backend_Parent
  • Mage_Sales_Model_Mysql4_Order_Invoice_Collection
  • Mage_Sales_Model_Mysql4_Order_Invoice_Comment
  • Mage_Sales_Model_Mysql4_Order_Invoice_Comment_Collection
  • Mage_Sales_Model_Mysql4_Order_Invoice_Grid_Collection
  • Mage_Sales_Model_Mysql4_Order_Invoice_Item
  • Mage_Sales_Model_Mysql4_Order_Invoice_Item_Collection
  • Mage_Sales_Model_Mysql4_Order_Item
  • Mage_Sales_Model_Mysql4_Order_Item_Collection
  • Mage_Sales_Model_Mysql4_Order_Payment
  • Mage_Sales_Model_Mysql4_Order_Payment_Collection
  • Mage_Sales_Model_Mysql4_Order_Payment_Transaction
  • Mage_Sales_Model_Mysql4_Order_Payment_Transaction_Collection
  • Mage_Sales_Model_Mysql4_Order_Shipment
  • Mage_Sales_Model_Mysql4_Order_Shipment_Attribute_Backend_Child
  • Mage_Sales_Model_Mysql4_Order_Shipment_Attribute_Backend_Parent
  • Mage_Sales_Model_Mysql4_Order_Shipment_Collection
  • Mage_Sales_Model_Mysql4_Order_Shipment_Comment
  • Mage_Sales_Model_Mysql4_Order_Shipment_Comment_Collection
  • Mage_Sales_Model_Mysql4_Order_Shipment_Grid_Collection
  • Mage_Sales_Model_Mysql4_Order_Shipment_Item
  • Mage_Sales_Model_Mysql4_Order_Shipment_Item_Collection
  • Mage_Sales_Model_Mysql4_Order_Shipment_Track
  • Mage_Sales_Model_Mysql4_Order_Shipment_Track_Collection
  • Mage_Sales_Model_Mysql4_Order_Status
  • Mage_Sales_Model_Mysql4_Order_Status_Collection
  • Mage_Sales_Model_Mysql4_Order_Status_History
  • Mage_Sales_Model_Mysql4_Order_Status_History_Collection
  • Mage_Sales_Model_Mysql4_Order_Tax
  • Mage_Sales_Model_Mysql4_Order_Tax_Collection
  • Mage_Sales_Model_Mysql4_Quote
  • Mage_Sales_Model_Mysql4_Quote_Address
  • Mage_Sales_Model_Mysql4_Quote_Address_Attribute_Backend
  • Mage_Sales_Model_Mysql4_Quote_Address_Attribute_Backend_Child
  • Mage_Sales_Model_Mysql4_Quote_Address_Attribute_Backend_Parent
  • Mage_Sales_Model_Mysql4_Quote_Address_Attribute_Backend_Region
  • Mage_Sales_Model_Mysql4_Quote_Address_Attribute_Frontend
  • Mage_Sales_Model_Mysql4_Quote_Address_Attribute_Frontend_Custbalance
  • Mage_Sales_Model_Mysql4_Quote_Address_Attribute_Frontend_Discount
  • Mage_Sales_Model_Mysql4_Quote_Address_Attribute_Frontend_Grand
  • Mage_Sales_Model_Mysql4_Quote_Address_Attribute_Frontend_Shipping
  • Mage_Sales_Model_Mysql4_Quote_Address_Attribute_Frontend_Subtotal
  • Mage_Sales_Model_Mysql4_Quote_Address_Attribute_Frontend_Tax
  • Mage_Sales_Model_Mysql4_Quote_Address_Collection
  • Mage_Sales_Model_Mysql4_Quote_Address_Item
  • Mage_Sales_Model_Mysql4_Quote_Address_Item_Collection
  • Mage_Sales_Model_Mysql4_Quote_Address_Rate
  • Mage_Sales_Model_Mysql4_Quote_Address_Rate_Collection
  • Mage_Sales_Model_Mysql4_Quote_Collection
  • Mage_Sales_Model_Mysql4_Quote_Item
  • Mage_Sales_Model_Mysql4_Quote_Item_Collection
  • Mage_Sales_Model_Mysql4_Quote_Item_Option
  • Mage_Sales_Model_Mysql4_Quote_Item_Option_Collection
  • Mage_Sales_Model_Mysql4_Quote_Payment
  • Mage_Sales_Model_Mysql4_Quote_Payment_Collection
  • Mage_Sales_Model_Mysql4_Recurring_Profile
  • Mage_Sales_Model_Mysql4_Recurring_Profile_Collection
  • Mage_Sales_Model_Mysql4_Report
  • Mage_Sales_Model_Mysql4_Report_Abstract
  • Mage_Sales_Model_Mysql4_Report_Bestsellers
  • Mage_Sales_Model_Mysql4_Report_Bestsellers_Collection
  • Mage_Sales_Model_Mysql4_Report_Collection_Abstract
  • Mage_Sales_Model_Mysql4_Report_Invoiced
  • Mage_Sales_Model_Mysql4_Report_Invoiced_Collection_Invoiced
  • Mage_Sales_Model_Mysql4_Report_Invoiced_Collection_Order
  • Mage_Sales_Model_Mysql4_Report_Order
  • Mage_Sales_Model_Mysql4_Report_Order_Collection
  • Mage_Sales_Model_Mysql4_Report_Order_Updatedat_Collection
  • Mage_Sales_Model_Mysql4_Report_Refunded
  • Mage_Sales_Model_Mysql4_Report_Refunded_Collection_Order
  • Mage_Sales_Model_Mysql4_Report_Refunded_Collection_Refunded
  • Mage_Sales_Model_Mysql4_Report_Shipping
  • Mage_Sales_Model_Mysql4_Report_Shipping_Collection_Order
  • Mage_Sales_Model_Mysql4_Report_Shipping_Collection_Shipment
  • Mage_Sales_Model_Mysql4_Sale_Collection
  • Mage_Sales_Model_Mysql4_Setup
  • Mage_Sales_Model_Observer
  • Mage_Sales_Model_Order
  • Mage_Sales_Model_Order_Address
  • Mage_Sales_Model_Order_Api
  • Mage_Sales_Model_Order_Api_V2
  • Mage_Sales_Model_Order_Config
  • Mage_Sales_Model_Order_Creditmemo
  • Mage_Sales_Model_Order_Creditmemo_Api
  • Mage_Sales_Model_Order_Creditmemo_Api_V2
  • Mage_Sales_Model_Order_Creditmemo_Comment
  • Mage_Sales_Model_Order_Creditmemo_Config
  • Mage_Sales_Model_Order_Creditmemo_Item
  • Mage_Sales_Model_Order_Creditmemo_Total_Abstract
  • Mage_Sales_Model_Order_Creditmemo_Total_Cost
  • Mage_Sales_Model_Order_Creditmemo_Total_Discount
  • Mage_Sales_Model_Order_Creditmemo_Total_Grand
  • Mage_Sales_Model_Order_Creditmemo_Total_Shipping
  • Mage_Sales_Model_Order_Creditmemo_Total_Subtotal
  • Mage_Sales_Model_Order_Creditmemo_Total_Tax
  • Mage_Sales_Model_Order_Invoice
  • Mage_Sales_Model_Order_Invoice_Api
  • Mage_Sales_Model_Order_Invoice_Api_V2
  • Mage_Sales_Model_Order_Invoice_Comment
  • Mage_Sales_Model_Order_Invoice_Config
  • Mage_Sales_Model_Order_Invoice_Item
  • Mage_Sales_Model_Order_Invoice_Total_Abstract
  • Mage_Sales_Model_Order_Invoice_Total_Cost
  • Mage_Sales_Model_Order_Invoice_Total_Discount
  • Mage_Sales_Model_Order_Invoice_Total_Grand
  • Mage_Sales_Model_Order_Invoice_Total_Shipping
  • Mage_Sales_Model_Order_Invoice_Total_Subtotal
  • Mage_Sales_Model_Order_Invoice_Total_Tax
  • Mage_Sales_Model_Order_Item
  • Mage_Sales_Model_Order_Payment
  • Mage_Sales_Model_Order_Payment_Transaction
  • Mage_Sales_Model_Order_Pdf_Abstract
  • Mage_Sales_Model_Order_Pdf_Creditmemo
  • Mage_Sales_Model_Order_Pdf_Invoice
  • Mage_Sales_Model_Order_Pdf_Items_Abstract
  • Mage_Sales_Model_Order_Pdf_Items_Creditmemo_Default
  • Mage_Sales_Model_Order_Pdf_Items_Creditmemo_Grouped
  • Mage_Sales_Model_Order_Pdf_Items_Invoice_Default
  • Mage_Sales_Model_Order_Pdf_Items_Invoice_Grouped
  • Mage_Sales_Model_Order_Pdf_Items_Shipment_Default
  • Mage_Sales_Model_Order_Pdf_Shipment
  • Mage_Sales_Model_Order_Pdf_Shipment_Packaging
  • Mage_Sales_Model_Order_Pdf_Total_Default
  • Mage_Sales_Model_Order_Shipment
  • Mage_Sales_Model_Order_Shipment_Api
  • Mage_Sales_Model_Order_Shipment_Api_V2
  • Mage_Sales_Model_Order_Shipment_Comment
  • Mage_Sales_Model_Order_Shipment_Item
  • Mage_Sales_Model_Order_Shipment_Track
  • Mage_Sales_Model_Order_Status
  • Mage_Sales_Model_Order_Status_History
  • Mage_Sales_Model_Order_Tax
  • Mage_Sales_Model_Order_Total
  • Mage_Sales_Model_Order_Total_Abstract
  • Mage_Sales_Model_Order_Total_Config_Base
  • Mage_Sales_Model_Payment_Method_Billing_AgreementAbstract
  • Mage_Sales_Model_Quote
  • Mage_Sales_Model_Quote_Address
  • Mage_Sales_Model_Quote_Address_Item
  • Mage_Sales_Model_Quote_Address_Rate
  • Mage_Sales_Model_Quote_Address_Total
  • Mage_Sales_Model_Quote_Address_Total_Abstract
  • Mage_Sales_Model_Quote_Address_Total_Custbalance
  • Mage_Sales_Model_Quote_Address_Total_Discount
  • Mage_Sales_Model_Quote_Address_Total_Grand
  • Mage_Sales_Model_Quote_Address_Total_Msrp
  • Mage_Sales_Model_Quote_Address_Total_Nominal
  • Mage_Sales_Model_Quote_Address_Total_Nominal_Collector
  • Mage_Sales_Model_Quote_Address_Total_Nominal_Recurring_Initial
  • Mage_Sales_Model_Quote_Address_Total_Nominal_Recurring_Trial
  • Mage_Sales_Model_Quote_Address_Total_Nominal_RecurringAbstract
  • Mage_Sales_Model_Quote_Address_Total_Nominal_Shipping
  • Mage_Sales_Model_Quote_Address_Total_Nominal_Subtotal
  • Mage_Sales_Model_Quote_Address_Total_Shipping
  • Mage_Sales_Model_Quote_Address_Total_Subtotal
  • Mage_Sales_Model_Quote_Address_Total_Tax
  • Mage_Sales_Model_Quote_Config
  • Mage_Sales_Model_Quote_Item
  • Mage_Sales_Model_Quote_Item_Abstract
  • Mage_Sales_Model_Quote_Item_Option
  • Mage_Sales_Model_Quote_Payment
  • Mage_Sales_Model_Recurring_Profile
  • Mage_Sales_Model_Resource_Abstract
  • Mage_Sales_Model_Resource_Billing_Agreement
  • Mage_Sales_Model_Resource_Billing_Agreement_Collection
  • Mage_Sales_Model_Resource_Collection_Abstract
  • Mage_Sales_Model_Resource_Helper_Mysql4
  • Mage_Sales_Model_Resource_Order
  • Mage_Sales_Model_Resource_Order_Abstract
  • Mage_Sales_Model_Resource_Order_Address
  • Mage_Sales_Model_Resource_Order_Address_Collection
  • Mage_Sales_Model_Resource_Order_Attribute_Backend_Billing
  • Mage_Sales_Model_Resource_Order_Attribute_Backend_Child
  • Mage_Sales_Model_Resource_Order_Attribute_Backend_Parent
  • Mage_Sales_Model_Resource_Order_Attribute_Backend_Shipping
  • Mage_Sales_Model_Resource_Order_Collection
  • Mage_Sales_Model_Resource_Order_Collection_Abstract
  • Mage_Sales_Model_Resource_Order_Comment_Collection_Abstract
  • Mage_Sales_Model_Resource_Order_Creditmemo
  • Mage_Sales_Model_Resource_Order_Creditmemo_Attribute_Backend_Child
  • Mage_Sales_Model_Resource_Order_Creditmemo_Attribute_Backend_Parent
  • Mage_Sales_Model_Resource_Order_Creditmemo_Collection
  • Mage_Sales_Model_Resource_Order_Creditmemo_Comment
  • Mage_Sales_Model_Resource_Order_Creditmemo_Comment_Collection
  • Mage_Sales_Model_Resource_Order_Creditmemo_Grid_Collection
  • Mage_Sales_Model_Resource_Order_Creditmemo_Item
  • Mage_Sales_Model_Resource_Order_Creditmemo_Item_Collection
  • Mage_Sales_Model_Resource_Order_Grid_Collection
  • Mage_Sales_Model_Resource_Order_Invoice
  • Mage_Sales_Model_Resource_Order_Invoice_Attribute_Backend_Child
  • Mage_Sales_Model_Resource_Order_Invoice_Attribute_Backend_Item
  • Mage_Sales_Model_Resource_Order_Invoice_Attribute_Backend_Order
  • Mage_Sales_Model_Resource_Order_Invoice_Attribute_Backend_Parent
  • Mage_Sales_Model_Resource_Order_Invoice_Collection
  • Mage_Sales_Model_Resource_Order_Invoice_Comment
  • Mage_Sales_Model_Resource_Order_Invoice_Comment_Collection
  • Mage_Sales_Model_Resource_Order_Invoice_Grid_Collection
  • Mage_Sales_Model_Resource_Order_Invoice_Item
  • Mage_Sales_Model_Resource_Order_Invoice_Item_Collection
  • Mage_Sales_Model_Resource_Order_Item
  • Mage_Sales_Model_Resource_Order_Item_Collection
  • Mage_Sales_Model_Resource_Order_Payment
  • Mage_Sales_Model_Resource_Order_Payment_Collection
  • Mage_Sales_Model_Resource_Order_Payment_Transaction
  • Mage_Sales_Model_Resource_Order_Payment_Transaction_Collection
  • Mage_Sales_Model_Resource_Order_Shipment
  • Mage_Sales_Model_Resource_Order_Shipment_Attribute_Backend_Child
  • Mage_Sales_Model_Resource_Order_Shipment_Attribute_Backend_Parent
  • Mage_Sales_Model_Resource_Order_Shipment_Collection
  • Mage_Sales_Model_Resource_Order_Shipment_Comment
  • Mage_Sales_Model_Resource_Order_Shipment_Comment_Collection
  • Mage_Sales_Model_Resource_Order_Shipment_Grid_Collection
  • Mage_Sales_Model_Resource_Order_Shipment_Item
  • Mage_Sales_Model_Resource_Order_Shipment_Item_Collection
  • Mage_Sales_Model_Resource_Order_Shipment_Track
  • Mage_Sales_Model_Resource_Order_Shipment_Track_Collection
  • Mage_Sales_Model_Resource_Order_Status
  • Mage_Sales_Model_Resource_Order_Status_Collection
  • Mage_Sales_Model_Resource_Order_Status_History
  • Mage_Sales_Model_Resource_Order_Status_History_Collection
  • Mage_Sales_Model_Resource_Order_Tax
  • Mage_Sales_Model_Resource_Order_Tax_Collection
  • Mage_Sales_Model_Resource_Quote
  • Mage_Sales_Model_Resource_Quote_Address
  • Mage_Sales_Model_Resource_Quote_Address_Attribute_Backend
  • Mage_Sales_Model_Resource_Quote_Address_Attribute_Backend_Child
  • Mage_Sales_Model_Resource_Quote_Address_Attribute_Backend_Parent
  • Mage_Sales_Model_Resource_Quote_Address_Attribute_Backend_Region
  • Mage_Sales_Model_Resource_Quote_Address_Attribute_Frontend
  • Mage_Sales_Model_Resource_Quote_Address_Attribute_Frontend_Custbalance
  • Mage_Sales_Model_Resource_Quote_Address_Attribute_Frontend_Discount
  • Mage_Sales_Model_Resource_Quote_Address_Attribute_Frontend_Grand
  • Mage_Sales_Model_Resource_Quote_Address_Attribute_Frontend_Shipping
  • Mage_Sales_Model_Resource_Quote_Address_Attribute_Frontend_Subtotal
  • Mage_Sales_Model_Resource_Quote_Address_Attribute_Frontend_Tax
  • Mage_Sales_Model_Resource_Quote_Address_Collection
  • Mage_Sales_Model_Resource_Quote_Address_Item
  • Mage_Sales_Model_Resource_Quote_Address_Item_Collection
  • Mage_Sales_Model_Resource_Quote_Address_Rate
  • Mage_Sales_Model_Resource_Quote_Address_Rate_Collection
  • Mage_Sales_Model_Resource_Quote_Collection
  • Mage_Sales_Model_Resource_Quote_Item
  • Mage_Sales_Model_Resource_Quote_Item_Collection
  • Mage_Sales_Model_Resource_Quote_Item_Option
  • Mage_Sales_Model_Resource_Quote_Item_Option_Collection
  • Mage_Sales_Model_Resource_Quote_Payment
  • Mage_Sales_Model_Resource_Quote_Payment_Collection
  • Mage_Sales_Model_Resource_Recurring_Profile
  • Mage_Sales_Model_Resource_Recurring_Profile_Collection
  • Mage_Sales_Model_Resource_Report
  • Mage_Sales_Model_Resource_Report_Abstract
  • Mage_Sales_Model_Resource_Report_Bestsellers
  • Mage_Sales_Model_Resource_Report_Bestsellers_Collection
  • Mage_Sales_Model_Resource_Report_Collection_Abstract
  • Mage_Sales_Model_Resource_Report_Invoiced
  • Mage_Sales_Model_Resource_Report_Invoiced_Collection_Invoiced
  • Mage_Sales_Model_Resource_Report_Invoiced_Collection_Order
  • Mage_Sales_Model_Resource_Report_Order
  • Mage_Sales_Model_Resource_Report_Order_Collection
  • Mage_Sales_Model_Resource_Report_Order_Createdat
  • Mage_Sales_Model_Resource_Report_Order_Updatedat
  • Mage_Sales_Model_Resource_Report_Order_Updatedat_Collection
  • Mage_Sales_Model_Resource_Report_Refunded
  • Mage_Sales_Model_Resource_Report_Refunded_Collection_Order
  • Mage_Sales_Model_Resource_Report_Refunded_Collection_Refunded
  • Mage_Sales_Model_Resource_Report_Shipping
  • Mage_Sales_Model_Resource_Report_Shipping_Collection_Order
  • Mage_Sales_Model_Resource_Report_Shipping_Collection_Shipment
  • Mage_Sales_Model_Resource_Sale_Collection
  • Mage_Sales_Model_Resource_Setup
  • Mage_Sales_Model_Service_Order
  • Mage_Sales_Model_Service_Quote
  • Mage_Sales_Model_Status_List
  • Mage_Sales_OrderController
  • Mage_Sales_Recurring_ProfileController
  • Mage_Shipping_TrackingController
  • Test

Interfaces

  • Mage_Sales_Model_Resource_Helper_Interface
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Magento
  4:  *
  5:  * NOTICE OF LICENSE
  6:  *
  7:  * This source file is subject to the Open Software License (OSL 3.0)
  8:  * that is bundled with this package in the file LICENSE.txt.
  9:  * It is also available through the world-wide-web at this URL:
 10:  * http://opensource.org/licenses/osl-3.0.php
 11:  * If you did not receive a copy of the license and are unable to
 12:  * obtain it through the world-wide-web, please send an email
 13:  * to license@magentocommerce.com so we can send you a copy immediately.
 14:  *
 15:  * DISCLAIMER
 16:  *
 17:  * Do not edit or add to this file if you wish to upgrade Magento to newer
 18:  * versions in the future. If you wish to customize Magento for your
 19:  * needs please refer to http://www.magentocommerce.com for more information.
 20:  *
 21:  * @category    Mage
 22:  * @package     Mage_Sales
 23:  * @copyright   Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
 24:  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 25:  */
 26: 
 27: 
 28: /**
 29:  * Order creditmemo model
 30:  *
 31:  * @method Mage_Sales_Model_Resource_Order_Creditmemo _getResource()
 32:  * @method Mage_Sales_Model_Resource_Order_Creditmemo getResource()
 33:  * @method int getStoreId()
 34:  * @method Mage_Sales_Model_Order_Creditmemo setStoreId(int $value)
 35:  * @method float getAdjustmentPositive()
 36:  * @method float getBaseShippingTaxAmount()
 37:  * @method Mage_Sales_Model_Order_Creditmemo setBaseShippingTaxAmount(float $value)
 38:  * @method float getStoreToOrderRate()
 39:  * @method Mage_Sales_Model_Order_Creditmemo setStoreToOrderRate(float $value)
 40:  * @method float getBaseDiscountAmount()
 41:  * @method Mage_Sales_Model_Order_Creditmemo setBaseDiscountAmount(float $value)
 42:  * @method float getBaseToOrderRate()
 43:  * @method Mage_Sales_Model_Order_Creditmemo setBaseToOrderRate(float $value)
 44:  * @method float getGrandTotal()
 45:  * @method Mage_Sales_Model_Order_Creditmemo setGrandTotal(float $value)
 46:  * @method float getBaseAdjustmentNegative()
 47:  * @method Mage_Sales_Model_Order_Creditmemo setBaseAdjustmentNegative(float $value)
 48:  * @method float getBaseSubtotalInclTax()
 49:  * @method Mage_Sales_Model_Order_Creditmemo setBaseSubtotalInclTax(float $value)
 50:  * @method float getShippingAmount()
 51:  * @method float getSubtotalInclTax()
 52:  * @method Mage_Sales_Model_Order_Creditmemo setSubtotalInclTax(float $value)
 53:  * @method float getAdjustmentNegative()
 54:  * @method float getBaseShippingAmount()
 55:  * @method Mage_Sales_Model_Order_Creditmemo setBaseShippingAmount(float $value)
 56:  * @method float getStoreToBaseRate()
 57:  * @method Mage_Sales_Model_Order_Creditmemo setStoreToBaseRate(float $value)
 58:  * @method float getBaseToGlobalRate()
 59:  * @method Mage_Sales_Model_Order_Creditmemo setBaseToGlobalRate(float $value)
 60:  * @method float getBaseAdjustment()
 61:  * @method Mage_Sales_Model_Order_Creditmemo setBaseAdjustment(float $value)
 62:  * @method float getBaseSubtotal()
 63:  * @method Mage_Sales_Model_Order_Creditmemo setBaseSubtotal(float $value)
 64:  * @method float getDiscountAmount()
 65:  * @method Mage_Sales_Model_Order_Creditmemo setDiscountAmount(float $value)
 66:  * @method float getSubtotal()
 67:  * @method Mage_Sales_Model_Order_Creditmemo setSubtotal(float $value)
 68:  * @method float getAdjustment()
 69:  * @method Mage_Sales_Model_Order_Creditmemo setAdjustment(float $value)
 70:  * @method float getBaseGrandTotal()
 71:  * @method Mage_Sales_Model_Order_Creditmemo setBaseGrandTotal(float $value)
 72:  * @method float getBaseAdjustmentPositive()
 73:  * @method Mage_Sales_Model_Order_Creditmemo setBaseAdjustmentPositive(float $value)
 74:  * @method float getBaseTaxAmount()
 75:  * @method Mage_Sales_Model_Order_Creditmemo setBaseTaxAmount(float $value)
 76:  * @method float getShippingTaxAmount()
 77:  * @method Mage_Sales_Model_Order_Creditmemo setShippingTaxAmount(float $value)
 78:  * @method float getTaxAmount()
 79:  * @method Mage_Sales_Model_Order_Creditmemo setTaxAmount(float $value)
 80:  * @method int getOrderId()
 81:  * @method Mage_Sales_Model_Order_Creditmemo setOrderId(int $value)
 82:  * @method int getEmailSent()
 83:  * @method Mage_Sales_Model_Order_Creditmemo setEmailSent(int $value)
 84:  * @method int getCreditmemoStatus()
 85:  * @method Mage_Sales_Model_Order_Creditmemo setCreditmemoStatus(int $value)
 86:  * @method int getState()
 87:  * @method Mage_Sales_Model_Order_Creditmemo setState(int $value)
 88:  * @method int getShippingAddressId()
 89:  * @method Mage_Sales_Model_Order_Creditmemo setShippingAddressId(int $value)
 90:  * @method int getBillingAddressId()
 91:  * @method Mage_Sales_Model_Order_Creditmemo setBillingAddressId(int $value)
 92:  * @method int getInvoiceId()
 93:  * @method Mage_Sales_Model_Order_Creditmemo setInvoiceId(int $value)
 94:  * @method string getCybersourceToken()
 95:  * @method Mage_Sales_Model_Order_Creditmemo setCybersourceToken(string $value)
 96:  * @method string getStoreCurrencyCode()
 97:  * @method Mage_Sales_Model_Order_Creditmemo setStoreCurrencyCode(string $value)
 98:  * @method string getOrderCurrencyCode()
 99:  * @method Mage_Sales_Model_Order_Creditmemo setOrderCurrencyCode(string $value)
100:  * @method string getBaseCurrencyCode()
101:  * @method Mage_Sales_Model_Order_Creditmemo setBaseCurrencyCode(string $value)
102:  * @method string getGlobalCurrencyCode()
103:  * @method Mage_Sales_Model_Order_Creditmemo setGlobalCurrencyCode(string $value)
104:  * @method string getTransactionId()
105:  * @method Mage_Sales_Model_Order_Creditmemo setTransactionId(string $value)
106:  * @method string getIncrementId()
107:  * @method Mage_Sales_Model_Order_Creditmemo setIncrementId(string $value)
108:  * @method string getCreatedAt()
109:  * @method Mage_Sales_Model_Order_Creditmemo setCreatedAt(string $value)
110:  * @method string getUpdatedAt()
111:  * @method Mage_Sales_Model_Order_Creditmemo setUpdatedAt(string $value)
112:  * @method float getHiddenTaxAmount()
113:  * @method Mage_Sales_Model_Order_Creditmemo setHiddenTaxAmount(float $value)
114:  * @method float getBaseHiddenTaxAmount()
115:  * @method Mage_Sales_Model_Order_Creditmemo setBaseHiddenTaxAmount(float $value)
116:  * @method float getShippingHiddenTaxAmount()
117:  * @method Mage_Sales_Model_Order_Creditmemo setShippingHiddenTaxAmount(float $value)
118:  * @method float getBaseShippingHiddenTaxAmount()
119:  * @method Mage_Sales_Model_Order_Creditmemo setBaseShippingHiddenTaxAmount(float $value)
120:  * @method float getShippingInclTax()
121:  * @method Mage_Sales_Model_Order_Creditmemo setShippingInclTax(float $value)
122:  * @method float getBaseShippingInclTax()
123:  * @method Mage_Sales_Model_Order_Creditmemo setBaseShippingInclTax(float $value)
124:  *
125:  * @category    Mage
126:  * @package     Mage_Sales
127:  * @author      Magento Core Team <core@magentocommerce.com>
128:  */
129: class Mage_Sales_Model_Order_Creditmemo extends Mage_Sales_Model_Abstract
130: {
131:     const STATE_OPEN        = 1;
132:     const STATE_REFUNDED    = 2;
133:     const STATE_CANCELED    = 3;
134: 
135:     const XML_PATH_EMAIL_TEMPLATE               = 'sales_email/creditmemo/template';
136:     const XML_PATH_EMAIL_GUEST_TEMPLATE         = 'sales_email/creditmemo/guest_template';
137:     const XML_PATH_EMAIL_IDENTITY               = 'sales_email/creditmemo/identity';
138:     const XML_PATH_EMAIL_COPY_TO                = 'sales_email/creditmemo/copy_to';
139:     const XML_PATH_EMAIL_COPY_METHOD            = 'sales_email/creditmemo/copy_method';
140:     const XML_PATH_EMAIL_ENABLED                = 'sales_email/creditmemo/enabled';
141: 
142:     const XML_PATH_UPDATE_EMAIL_TEMPLATE        = 'sales_email/creditmemo_comment/template';
143:     const XML_PATH_UPDATE_EMAIL_GUEST_TEMPLATE  = 'sales_email/creditmemo_comment/guest_template';
144:     const XML_PATH_UPDATE_EMAIL_IDENTITY        = 'sales_email/creditmemo_comment/identity';
145:     const XML_PATH_UPDATE_EMAIL_COPY_TO         = 'sales_email/creditmemo_comment/copy_to';
146:     const XML_PATH_UPDATE_EMAIL_COPY_METHOD     = 'sales_email/creditmemo_comment/copy_method';
147:     const XML_PATH_UPDATE_EMAIL_ENABLED         = 'sales_email/creditmemo_comment/enabled';
148: 
149:     const REPORT_DATE_TYPE_ORDER_CREATED        = 'order_created';
150:     const REPORT_DATE_TYPE_REFUND_CREATED       = 'refund_created';
151: 
152:     /*
153:      * Identifier for order history item
154:      */
155:     const HISTORY_ENTITY_NAME = 'creditmemo';
156: 
157:     protected static $_states;
158: 
159:     protected $_items;
160:     protected $_order;
161:     protected $_comments;
162: 
163:     /**
164:      * Calculator instances for delta rounding of prices
165:      *
166:      * @var array
167:      */
168:     protected $_calculators = array();
169: 
170:     protected $_eventPrefix = 'sales_order_creditmemo';
171:     protected $_eventObject = 'creditmemo';
172: 
173:     /**
174:      * Initialize creditmemo resource model
175:      */
176:     protected function _construct()
177:     {
178:         $this->_init('sales/order_creditmemo');
179:     }
180: 
181:     /**
182:      * Init mapping array of short fields to its full names
183:      *
184:      * @return Mage_Sales_Model_Order_Creditmemo
185:      */
186:     protected function _initOldFieldsMap()
187:     {
188:         $this->_oldFieldsMap = Mage::helper('sales')->getOldFieldMap('order_creditmemo');
189:         return $this;
190:     }
191: 
192:     /**
193:      * Retrieve Creditmemo configuration model
194:      *
195:      * @return Mage_Sales_Model_Order_Creditmemo_Config
196:      */
197:     public function getConfig()
198:     {
199:         return Mage::getSingleton('sales/order_creditmemo_config');
200:     }
201: 
202:     /**
203:      * Retrieve creditmemo store instance
204:      *
205:      * @return Mage_Core_Model_Store
206:      */
207:     public function getStore()
208:     {
209:         return $this->getOrder()->getStore();
210:     }
211: 
212:     /**
213:      * Declare order for creditmemo
214:      *
215:      * @param   Mage_Sales_Model_Order $order
216:      * @return  Mage_Sales_Model_Order_Creditmemo
217:      */
218:     public function setOrder(Mage_Sales_Model_Order $order)
219:     {
220:         $this->_order = $order;
221:         $this->setOrderId($order->getId())
222:             ->setStoreId($order->getStoreId());
223:         return $this;
224:     }
225: 
226:     /**
227:      * Retrieve the order the creditmemo for created for
228:      *
229:      * @return Mage_Sales_Model_Order
230:      */
231:     public function getOrder()
232:     {
233:         if (!$this->_order instanceof Mage_Sales_Model_Order) {
234:             $this->_order = Mage::getModel('sales/order')->load($this->getOrderId());
235:         }
236:         return $this->_order->setHistoryEntityName(self::HISTORY_ENTITY_NAME);
237:     }
238: 
239:     /**
240:      * Retrieve billing address
241:      *
242:      * @return Mage_Sales_Model_Order_Address
243:      */
244:     public function getBillingAddress()
245:     {
246:         return $this->getOrder()->getBillingAddress();
247:     }
248: 
249:     /**
250:      * Retrieve shipping address
251:      *
252:      * @return Mage_Sales_Model_Order_Address
253:      */
254:     public function getShippingAddress()
255:     {
256:         return $this->getOrder()->getShippingAddress();
257:     }
258: 
259:     public function getItemsCollection()
260:     {
261:         if (empty($this->_items)) {
262:             $this->_items = Mage::getResourceModel('sales/order_creditmemo_item_collection')
263:                 ->setCreditmemoFilter($this->getId());
264: 
265:             if ($this->getId()) {
266:                 foreach ($this->_items as $item) {
267:                     $item->setCreditmemo($this);
268:                 }
269:             }
270:         }
271:         return $this->_items;
272:     }
273: 
274:     public function getAllItems()
275:     {
276:         $items = array();
277:         foreach ($this->getItemsCollection() as $item) {
278:             if (!$item->isDeleted()) {
279:                 $items[] =  $item;
280:             }
281:         }
282:         return $items;
283:     }
284: 
285:     public function getItemById($itemId)
286:     {
287:         foreach ($this->getItemsCollection() as $item) {
288:             if ($item->getId()==$itemId) {
289:                 return $item;
290:             }
291:         }
292:         return false;
293:     }
294: 
295:     /**
296:      * Returns credit memo item by its order id
297:      *
298:      * @param $orderId
299:      * @return Mage_Sales_Model_Order_Creditmemo_Item|bool
300:      */
301:     public function getItemByOrderId($orderId)
302:     {
303:         foreach ($this->getItemsCollection() as $item) {
304:             if ($item->getOrderItemId() == $orderId) {
305:                 return $item;
306:             }
307:         }
308:         return false;
309:     }
310: 
311:     public function addItem(Mage_Sales_Model_Order_Creditmemo_Item $item)
312:     {
313:         $item->setCreditmemo($this)
314:             ->setParentId($this->getId())
315:             ->setStoreId($this->getStoreId());
316:         if (!$item->getId()) {
317:             $this->getItemsCollection()->addItem($item);
318:         }
319:         return $this;
320:     }
321: 
322:     /**
323:      * Creditmemo totals collecting
324:      *
325:      * @return Mage_Sales_Model_Order_Creditmemo
326:      */
327:     public function collectTotals()
328:     {
329:         foreach ($this->getConfig()->getTotalModels() as $model) {
330:             $model->collect($this);
331:         }
332:         return $this;
333:     }
334: 
335:     /**
336:      * Round price considering delta
337:      *
338:      * @param float $price
339:      * @param string $type
340:      * @param bool $negative Indicates if we perform addition (true) or subtraction (false) of rounded value
341:      * @return float
342:      */
343:     public function roundPrice($price, $type = 'regular', $negative = false)
344:     {
345:         if ($price) {
346:             if (!isset($this->_calculators[$type])) {
347:                 $this->_calculators[$type] = Mage::getModel('core/calculator', $this->getStore());
348:             }
349:             $price = $this->_calculators[$type]->deltaRound($price, $negative);
350:         }
351:         return $price;
352:     }
353: 
354:     public function canRefund()
355:     {
356:         if ($this->getState() != self::STATE_CANCELED
357:             && $this->getState() != self::STATE_REFUNDED
358:             && $this->getOrder()->getPayment()->canRefund()
359:             ) {
360:             return true;
361:         }
362:         return false;
363:     }
364: 
365:     /**
366:      * Check creditmemo cancel action availability
367:      *
368:      * @return bool
369:      */
370:     public function canCancel()
371:     {
372:         return $this->getState() == self::STATE_OPEN;
373:     }
374: 
375:     /**
376:      * Check invice void action availability
377:      *
378:      * @return bool
379:      */
380:     public function canVoid()
381:     {
382:         $canVoid = false;
383:         return false;
384:         if ($this->getState() == self::STATE_REFUNDED) {
385:             $canVoid = $this->getCanVoidFlag();
386:             /**
387:              * If we not retrieve negative answer from payment yet
388:              */
389:             if (is_null($canVoid)) {
390:                 $canVoid = $this->getOrder()->getPayment()->canVoid($this);
391:                 if ($canVoid === false) {
392:                     $this->setCanVoidFlag(false);
393:                     $this->_saveBeforeDestruct = true;
394:                 }
395:             }
396:             else {
397:                 $canVoid = (bool) $canVoid;
398:             }
399:         }
400:         return $canVoid;
401:     }
402: 
403: 
404:     public function refund()
405:     {
406:         $this->setState(self::STATE_REFUNDED);
407:         $orderRefund = Mage::app()->getStore()->roundPrice(
408:             $this->getOrder()->getTotalRefunded()+$this->getGrandTotal()
409:         );
410:         $baseOrderRefund = Mage::app()->getStore()->roundPrice(
411:             $this->getOrder()->getBaseTotalRefunded()+$this->getBaseGrandTotal()
412:         );
413: 
414:         if ($baseOrderRefund > Mage::app()->getStore()->roundPrice($this->getOrder()->getBaseTotalPaid())) {
415: 
416:             $baseAvailableRefund = $this->getOrder()->getBaseTotalPaid()- $this->getOrder()->getBaseTotalRefunded();
417: 
418:             Mage::throwException(
419:                 Mage::helper('sales')->__('Maximum amount available to refund is %s', $this->getOrder()->formatBasePrice($baseAvailableRefund))
420:             );
421:         }
422:         $order = $this->getOrder();
423:         $order->setBaseTotalRefunded($baseOrderRefund);
424:         $order->setTotalRefunded($orderRefund);
425: 
426:         $order->setBaseSubtotalRefunded($order->getBaseSubtotalRefunded()+$this->getBaseSubtotal());
427:         $order->setSubtotalRefunded($order->getSubtotalRefunded()+$this->getSubtotal());
428: 
429:         $order->setBaseTaxRefunded($order->getBaseTaxRefunded()+$this->getBaseTaxAmount());
430:         $order->setTaxRefunded($order->getTaxRefunded()+$this->getTaxAmount());
431:         $order->setBaseHiddenTaxRefunded($order->getBaseHiddenTaxRefunded()+$this->getBaseHiddenTaxAmount());
432:         $order->setHiddenTaxRefunded($order->getHiddenTaxRefunded()+$this->getHiddenTaxAmount());
433: 
434:         $order->setBaseShippingRefunded($order->getBaseShippingRefunded()+$this->getBaseShippingAmount());
435:         $order->setShippingRefunded($order->getShippingRefunded()+$this->getShippingAmount());
436: 
437:         $order->setBaseShippingTaxRefunded($order->getBaseShippingTaxRefunded()+$this->getBaseShippingTaxAmount());
438:         $order->setShippingTaxRefunded($order->getShippingTaxRefunded()+$this->getShippingTaxAmount());
439: 
440:         $order->setAdjustmentPositive($order->getAdjustmentPositive()+$this->getAdjustmentPositive());
441:         $order->setBaseAdjustmentPositive($order->getBaseAdjustmentPositive()+$this->getBaseAdjustmentPositive());
442: 
443:         $order->setAdjustmentNegative($order->getAdjustmentNegative()+$this->getAdjustmentNegative());
444:         $order->setBaseAdjustmentNegative($order->getBaseAdjustmentNegative()+$this->getBaseAdjustmentNegative());
445: 
446:         $order->setDiscountRefunded($order->getDiscountRefunded()+$this->getDiscountAmount());
447:         $order->setBaseDiscountRefunded($order->getBaseDiscountRefunded()+$this->getBaseDiscountAmount());
448: 
449:         if ($this->getInvoice()) {
450:             $this->getInvoice()->setIsUsedForRefund(true);
451:             $this->getInvoice()->setBaseTotalRefunded(
452:                 $this->getInvoice()->getBaseTotalRefunded() + $this->getBaseGrandTotal()
453:             );
454:             $this->setInvoiceId($this->getInvoice()->getId());
455:         }
456: 
457:         if (!$this->getPaymentRefundDisallowed()) {
458:             $order->getPayment()->refund($this);
459:         }
460: 
461:         Mage::dispatchEvent('sales_order_creditmemo_refund', array($this->_eventObject=>$this));
462:         return $this;
463:     }
464: 
465:     /**
466:      * Cancel Creditmemo action
467:      *
468:      * @return Mage_Sales_Model_Order_Creditmemo
469:      */
470:     public function cancel()
471:     {
472:         $this->setState(self::STATE_CANCELED);
473:         foreach ($this->getAllItems() as $item) {
474:             $item->cancel();
475:         }
476:         $this->getOrder()->getPayment()->cancelCreditmemo($this);
477: 
478:         if ($this->getTransactionId()) {
479:             $this->getOrder()->setTotalOnlineRefunded(
480:                 $this->getOrder()->getTotalOnlineRefunded()-$this->getGrandTotal()
481:             );
482:             $this->getOrder()->setBaseTotalOnlineRefunded(
483:                 $this->getOrder()->getBaseTotalOnlineRefunded()-$this->getBaseGrandTotal()
484:             );
485:         }
486:         else {
487:             $this->getOrder()->setTotalOfflineRefunded(
488:                 $this->getOrder()->getTotalOfflineRefunded()-$this->getGrandTotal()
489:             );
490:             $this->getOrder()->setBaseTotalOfflineRefunded(
491:                 $this->getOrder()->getBaseTotalOfflineRefunded()-$this->getBaseGrandTotal()
492:             );
493:         }
494: 
495:         $this->getOrder()->setBaseSubtotalRefunded(
496:             $this->getOrder()->getBaseSubtotalRefunded()-$this->getBaseSubtotal()
497:         );
498:         $this->getOrder()->setSubtotalRefunded($this->getOrder()->getSubtotalRefunded()-$this->getSubtotal());
499: 
500:         $this->getOrder()->setBaseTaxRefunded($this->getOrder()->getBaseTaxRefunded()-$this->getBaseTaxAmount());
501:         $this->getOrder()->setTaxRefunded($this->getOrder()->getTaxRefunded()-$this->getTaxAmount());
502: 
503:         $this->getOrder()->setBaseShippingRefunded(
504:             $this->getOrder()->getBaseShippingRefunded()-$this->getBaseShippingAmount()
505:         );
506:         $this->getOrder()->setShippingRefunded($this->getOrder()->getShippingRefunded()-$this->getShippingAmount());
507: 
508:         Mage::dispatchEvent('sales_order_creditmemo_cancel', array($this->_eventObject=>$this));
509:         return $this;
510:     }
511: 
512:     /**
513:      * Register creditmemo
514:      *
515:      * Apply to order, order items etc.
516:      *
517:      * @return Mage_Sales_Model_Order_Creditmemo
518:      */
519:     public function register()
520:     {
521:         if ($this->getId()) {
522:             Mage::throwException(
523:                 Mage::helper('sales')->__('Cannot register an existing credit memo.')
524:             );
525:         }
526: 
527:         foreach ($this->getAllItems() as $item) {
528:             if ($item->getQty()>0) {
529:                 $item->register();
530:             }
531:             else {
532:                 $item->isDeleted(true);
533:             }
534:         }
535: 
536:         $this->setDoTransaction(true);
537:         if ($this->getOfflineRequested()) {
538:             $this->setDoTransaction(false);
539:         }
540:         $this->refund();
541: 
542:         if ($this->getDoTransaction()) {
543:             $this->getOrder()->setTotalOnlineRefunded(
544:                 $this->getOrder()->getTotalOnlineRefunded()+$this->getGrandTotal()
545:             );
546:             $this->getOrder()->setBaseTotalOnlineRefunded(
547:                 $this->getOrder()->getBaseTotalOnlineRefunded()+$this->getBaseGrandTotal()
548:             );
549:         }
550:         else {
551:             $this->getOrder()->setTotalOfflineRefunded(
552:                 $this->getOrder()->getTotalOfflineRefunded()+$this->getGrandTotal()
553:             );
554:             $this->getOrder()->setBaseTotalOfflineRefunded(
555:                 $this->getOrder()->getBaseTotalOfflineRefunded()+$this->getBaseGrandTotal()
556:             );
557:         }
558: 
559:         $this->getOrder()->setBaseTotalInvoicedCost(
560:             $this->getOrder()->getBaseTotalInvoicedCost()-$this->getBaseCost()
561:         );
562: 
563:         $state = $this->getState();
564:         if (is_null($state)) {
565:             $this->setState(self::STATE_OPEN);
566:         }
567:         return $this;
568:     }
569: 
570:     /**
571:      * Retrieve Creditmemo states array
572:      *
573:      * @return array
574:      */
575:     public static function getStates()
576:     {
577:         if (is_null(self::$_states)) {
578:             self::$_states = array(
579:                 self::STATE_OPEN       => Mage::helper('sales')->__('Pending'),
580:                 self::STATE_REFUNDED   => Mage::helper('sales')->__('Refunded'),
581:                 self::STATE_CANCELED   => Mage::helper('sales')->__('Canceled'),
582:             );
583:         }
584:         return self::$_states;
585:     }
586: 
587:     /**
588:      * Retrieve Creditmemo state name by state identifier
589:      *
590:      * @param   int $stateId
591:      * @return  string
592:      */
593:     public function getStateName($stateId = null)
594:     {
595:         if (is_null($stateId)) {
596:             $stateId = $this->getState();
597:         }
598: 
599:         if (is_null(self::$_states)) {
600:             self::getStates();
601:         }
602:         if (isset(self::$_states[$stateId])) {
603:             return self::$_states[$stateId];
604:         }
605:         return Mage::helper('sales')->__('Unknown State');
606:     }
607: 
608:     public function setShippingAmount($amount)
609:     {
610:         // base shipping amount calculated in total model
611: //        $amount = $this->getStore()->roundPrice($amount);
612: //        $this->setData('base_shipping_amount', $amount);
613: //
614: //        $amount = $this->getStore()->roundPrice(
615: //            $amount*$this->getOrder()->getStoreToOrderRate()
616: //        );
617:         $this->setData('shipping_amount', $amount);
618:         return $this;
619:     }
620: 
621: 
622:     public function setAdjustmentPositive($amount)
623:     {
624:         $amount = trim($amount);
625:         if (substr($amount, -1) == '%') {
626:             $amount = (float) substr($amount, 0, -1);
627:             $amount = $this->getOrder()->getGrandTotal() * $amount / 100;
628:         }
629: 
630:         $amount = $this->getStore()->roundPrice($amount);
631:         $this->setData('base_adjustment_positive', $amount);
632: 
633:         $amount = $this->getStore()->roundPrice(
634:             $amount*$this->getOrder()->getStoreToOrderRate()
635:         );
636:         $this->setData('adjustment_positive', $amount);
637:         return $this;
638:     }
639: 
640:     public function setAdjustmentNegative($amount)
641:     {
642:         $amount = trim($amount);
643:         if (substr($amount, -1) == '%') {
644:             $amount = (float) substr($amount, 0, -1);
645:             $amount = $this->getOrder()->getGrandTotal() * $amount / 100;
646:         }
647: 
648:         $amount = $this->getStore()->roundPrice($amount);
649:         $this->setData('base_adjustment_negative', $amount);
650: 
651:         $amount = $this->getStore()->roundPrice(
652:             $amount*$this->getOrder()->getStoreToOrderRate()
653:         );
654:         $this->setData('adjustment_negative', $amount);
655:         return $this;
656:     }
657: 
658:     /**
659:      * Adds comment to credit memo with additional possibility to send it to customer via email
660:      * and show it in customer account
661:      *
662:      * @param bool $notify
663:      * @param bool $visibleOnFront
664:      *
665:      * @return Mage_Sales_Model_Order_Creditmemo
666:      */
667:     public function addComment($comment, $notify=false, $visibleOnFront=false)
668:     {
669:         if (!($comment instanceof Mage_Sales_Model_Order_Creditmemo_Comment)) {
670:             $comment = Mage::getModel('sales/order_creditmemo_comment')
671:                 ->setComment($comment)
672:                 ->setIsCustomerNotified($notify)
673:                 ->setIsVisibleOnFront($visibleOnFront);
674:         }
675:         $comment->setCreditmemo($this)
676:             ->setParentId($this->getId())
677:             ->setStoreId($this->getStoreId());
678:         if (!$comment->getId()) {
679:             $this->getCommentsCollection()->addItem($comment);
680:         }
681:         $this->_hasDataChanges = true;
682:         return $this;
683:     }
684: 
685:     public function getCommentsCollection($reload=false)
686:     {
687:         if (is_null($this->_comments) || $reload) {
688:             $this->_comments = Mage::getResourceModel('sales/order_creditmemo_comment_collection')
689:                 ->setCreditmemoFilter($this->getId())
690:                 ->setCreatedAtOrder();
691:             /**
692:              * When credit memo created with adding comment,
693:              * comments collection must be loaded before we added this comment.
694:              */
695:             $this->_comments->load();
696: 
697:             if ($this->getId()) {
698:                 foreach ($this->_comments as $comment) {
699:                     $comment->setCreditmemo($this);
700:                 }
701:             }
702:         }
703:         return $this->_comments;
704:     }
705: 
706: 
707:     /**
708:      * Send email with creditmemo data
709:      *
710:      * @param boolean $notifyCustomer
711:      * @param string $comment
712:      * @return Mage_Sales_Model_Order_Creditmemo
713:      */
714:     public function sendEmail($notifyCustomer = true, $comment = '')
715:     {
716:         $order = $this->getOrder();
717:         $storeId = $order->getStore()->getId();
718: 
719:         if (!Mage::helper('sales')->canSendNewCreditmemoEmail($storeId)) {
720:             return $this;
721:         }
722:         // Get the destination email addresses to send copies to
723:         $copyTo = $this->_getEmails(self::XML_PATH_EMAIL_COPY_TO);
724:         $copyMethod = Mage::getStoreConfig(self::XML_PATH_EMAIL_COPY_METHOD, $storeId);
725:         // Check if at least one recepient is found
726:         if (!$notifyCustomer && !$copyTo) {
727:             return $this;
728:         }
729: 
730:         // Start store emulation process
731:         $appEmulation = Mage::getSingleton('core/app_emulation');
732:         $initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
733: 
734:         try {
735:             // Retrieve specified view block from appropriate design package (depends on emulated store)
736:             $paymentBlock = Mage::helper('payment')->getInfoBlock($order->getPayment())
737:                 ->setIsSecureMode(true);
738:             $paymentBlock->getMethod()->setStore($storeId);
739:             $paymentBlockHtml = $paymentBlock->toHtml();
740:         } catch (Exception $exception) {
741:             // Stop store emulation process
742:             $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
743:             throw $exception;
744:         }
745: 
746:         // Stop store emulation process
747:         $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
748: 
749:         // Retrieve corresponding email template id and customer name
750:         if ($order->getCustomerIsGuest()) {
751:             $templateId = Mage::getStoreConfig(self::XML_PATH_EMAIL_GUEST_TEMPLATE, $storeId);
752:             $customerName = $order->getBillingAddress()->getName();
753:         } else {
754:             $templateId = Mage::getStoreConfig(self::XML_PATH_EMAIL_TEMPLATE, $storeId);
755:             $customerName = $order->getCustomerName();
756:         }
757: 
758:         $mailer = Mage::getModel('core/email_template_mailer');
759:         if ($notifyCustomer) {
760:             $emailInfo = Mage::getModel('core/email_info');
761:             $emailInfo->addTo($order->getCustomerEmail(), $customerName);
762:             if ($copyTo && $copyMethod == 'bcc') {
763:                 // Add bcc to customer email
764:                 foreach ($copyTo as $email) {
765:                     $emailInfo->addBcc($email);
766:                 }
767:             }
768:             $mailer->addEmailInfo($emailInfo);
769:         }
770: 
771:         // Email copies are sent as separated emails if their copy method is 'copy' or a customer should not be notified
772:         if ($copyTo && ($copyMethod == 'copy' || !$notifyCustomer)) {
773:             foreach ($copyTo as $email) {
774:                 $emailInfo = Mage::getModel('core/email_info');
775:                 $emailInfo->addTo($email);
776:                 $mailer->addEmailInfo($emailInfo);
777:             }
778:         }
779: 
780:         // Set all required params and send emails
781:         $mailer->setSender(Mage::getStoreConfig(self::XML_PATH_EMAIL_IDENTITY, $storeId));
782:         $mailer->setStoreId($storeId);
783:         $mailer->setTemplateId($templateId);
784:         $mailer->setTemplateParams(array(
785:                 'order'        => $order,
786:                 'creditmemo'   => $this,
787:                 'comment'      => $comment,
788:                 'billing'      => $order->getBillingAddress(),
789:                 'payment_html' => $paymentBlockHtml
790:             )
791:         );
792:         $mailer->send();
793:         $this->setEmailSent(true);
794:         $this->_getResource()->saveAttribute($this, 'email_sent');
795: 
796:         return $this;
797:     }
798: 
799:     /**
800:      * Send email with creditmemo update information
801:      *
802:      * @param boolean $notifyCustomer
803:      * @param string $comment
804:      * @return Mage_Sales_Model_Order_Creditmemo
805:      */
806:     public function sendUpdateEmail($notifyCustomer = true, $comment = '')
807:     {
808:         $order = $this->getOrder();
809:         $storeId = $order->getStore()->getId();
810: 
811:         if (!Mage::helper('sales')->canSendCreditmemoCommentEmail($storeId)) {
812:             return $this;
813:         }
814:         // Get the destination email addresses to send copies to
815:         $copyTo = $this->_getEmails(self::XML_PATH_UPDATE_EMAIL_COPY_TO);
816:         $copyMethod = Mage::getStoreConfig(self::XML_PATH_UPDATE_EMAIL_COPY_METHOD, $storeId);
817:         // Check if at least one recepient is found
818:         if (!$notifyCustomer && !$copyTo) {
819:             return $this;
820:         }
821: 
822:         // Retrieve corresponding email template id and customer name
823:         if ($order->getCustomerIsGuest()) {
824:             $templateId = Mage::getStoreConfig(self::XML_PATH_UPDATE_EMAIL_GUEST_TEMPLATE, $storeId);
825:             $customerName = $order->getBillingAddress()->getName();
826:         } else {
827:             $templateId = Mage::getStoreConfig(self::XML_PATH_UPDATE_EMAIL_TEMPLATE, $storeId);
828:             $customerName = $order->getCustomerName();
829:         }
830: 
831:         $mailer = Mage::getModel('core/email_template_mailer');
832:         if ($notifyCustomer) {
833:             $emailInfo = Mage::getModel('core/email_info');
834:             $emailInfo->addTo($order->getCustomerEmail(), $customerName);
835:             if ($copyTo && $copyMethod == 'bcc') {
836:                 // Add bcc to customer email
837:                 foreach ($copyTo as $email) {
838:                     $emailInfo->addBcc($email);
839:                 }
840:             }
841:             $mailer->addEmailInfo($emailInfo);
842:         }
843: 
844:         // Email copies are sent as separated emails if their copy method is 'copy' or a customer should not be notified
845:         if ($copyTo && ($copyMethod == 'copy' || !$notifyCustomer)) {
846:             foreach ($copyTo as $email) {
847:                 $emailInfo = Mage::getModel('core/email_info');
848:                 $emailInfo->addTo($email);
849:                 $mailer->addEmailInfo($emailInfo);
850:             }
851:         }
852: 
853:         // Set all required params and send emails
854:         $mailer->setSender(Mage::getStoreConfig(self::XML_PATH_UPDATE_EMAIL_IDENTITY, $storeId));
855:         $mailer->setStoreId($storeId);
856:         $mailer->setTemplateId($templateId);
857:         $mailer->setTemplateParams(array(
858:                 'order'      => $order,
859:                 'creditmemo' => $this,
860:                 'comment'    => $comment,
861:                 'billing'    => $order->getBillingAddress()
862:             )
863:         );
864:         $mailer->send();
865: 
866:         return $this;
867:     }
868: 
869:     protected function _getEmails($configPath)
870:     {
871:         $data = Mage::getStoreConfig($configPath, $this->getStoreId());
872:         if (!empty($data)) {
873:             return explode(',', $data);
874:         }
875:         return false;
876:     }
877: 
878:     protected function _beforeDelete()
879:     {
880:         $this->_protectFromNonAdmin();
881:         return parent::_beforeDelete();
882:     }
883: 
884:     /**
885:      * After save object manipulations
886:      *
887:      * @return Mage_Sales_Model_Order_Creditmemo
888:      */
889:     protected function _afterSave()
890:     {
891:         if (null != $this->_items) {
892:             foreach ($this->_items as $item) {
893:                 $item->save();
894:             }
895:         }
896: 
897:         if (null != $this->_comments) {
898:             foreach($this->_comments as $comment) {
899:                 $comment->save();
900:             }
901:         }
902: 
903: 
904:         return parent::_afterSave();
905:     }
906: 
907:     /**
908:      * Before object save manipulations
909:      *
910:      * @return Mage_Sales_Model_Order_Creditmemo
911:      */
912:     protected function _beforeSave()
913:     {
914:         parent::_beforeSave();
915: 
916:         if (!$this->getOrderId() && $this->getOrder()) {
917:             $this->setOrderId($this->getOrder()->getId());
918:             $this->setBillingAddressId($this->getOrder()->getBillingAddress()->getId());
919:         }
920: 
921:         return $this;
922:     }
923: 
924:     /**
925:      * Get creditmemos collection filtered by $filter
926:      *
927:      * @param array|null $filter
928:      * @return Mage_Sales_Model_Resource_Order_Creditmemo_Collection
929:      */
930:     public function getFilteredCollectionItems($filter = null)
931:     {
932:         return $this->getResourceCollection()->getFiltered($filter);
933:     }
934: }
935: 
Magento 1.7.0.2 API documentation generated by ApiGen 2.8.0