<?php
class autoloader {
    static function autoloadClasses($className) {
        $classes = array(
            'Form' => '/Form/Form.php',
            'EntityRepository' => '/Entity/EntityRepository.php',
            'Acl' => '/class/ACL/Acl.php',
            'AclRepository' => '/class/ACL/AclRepository.php',
            'Translator' => '/class/Translator/Translator.php',
            'Login' => '/class/Login/Login.php',
            'LoginRepository' => '/class/Login/LoginRepository.php',
            'LoginForm' => '/Form/LoginForm.php',
            'MailForm' => '/Form/MailForm.php',
            'DataBase' => '/class/DataBase/DataBase.php',
            'FlashMessenger' => '/class/FlashMessenger/FlashMessenger.php',
            'FormValidator' => '/class/FormValidator/FormValidator.php',
            'Ajax'=>'/Controller/Ajax/Ajax.php',
            'PDF' => '/class/Pdf/pdf.php',
            'FPDI' => '/class/Pdf/fpdi.php',
            'UploadFile' => '/class/UploadFile/UploadFile.php',
            'jUploadPHP' => '/class/UploadFile/jUploadPHP.php',
            'Tools' => '/class/Tools/Tools.php',
            'Emailer' => '/class/PHPMailer/Emailer.php',
            'PHPMailer' => '/class/PHPMailer/class.phpmailer.php',
            'PHPExcel' => '/class/PHPExcel/PHPExcel.php',
            'PHPExcel_IOFactory' => '/class/PHPExcel/PHPExcel/IOFactory.php',
            'PHPExcel_Reader_IReadFilter' => '/class/PHPExcel/PHPExcel/Reader/IReadFilter.php',
            'NumeroALetra' => '/class/Tools/NumeroALetra.php',
            'CURP' => '/class/CURP/CURP.php',
            'RFC' => '/class/RFC/RFC.php', 
            //'InitStripe' => '/class/Stripe/InitStripe.php', 
            'GenericForm' => '/Form/GenericForm.php',
            'FileManagement' => '/class/FileManagement/FileManagement.php',
            
            'DBMobileServer' => '/Entity/Mobile/DBMobileServer.php',
            'MobileServerEntityRepository' => '/Entity/Mobile/MobileServerEntityRepository.php',
            
            'DBMainServer' => '/Entity/DBMainServer.php',
            'MainServerEntityRepository' => '/Entity/MainServerEntityRepository.php',
            'MainServerRepository' => '/Entity/MainServerRepository.php',
            'EmpresaEntity' => '/Entity/EmpresaEntity.php',
            'EmpresaRepository' => '/Entity/EmpresaRepository.php',
            'EmpresaForm' => '/Form/EmpresaForm.php',            
            
            'BarCode' => '/class/BarCode/BarCode.php',
            'SettingsEntity' => '/Entity/SettingsEntity.php',
            'SettingsRepository' => '/Entity/SettingsRepository.php',
                        
            'FormaMetodoPagoRepository'=>'/Entity/FormaMetodoPagoRepository.php',
            
            'CompanyEntity' => '/Entity/CompanyEntity.php',
            'CompanyRepository' => '/Entity/CompanyRepository.php',
            
            'UsuarioEntity' => '/Entity/UsuarioEntity.php',
            'UsuarioRepository' => '/Entity/UsuarioRepository.php',
            'UsuarioForm' => '/Form/UsuarioForm.php',
            
            'EstacionEntity' => '/Entity/EstacionEntity.php',
            'EstacionRepository' => '/Entity/EstacionRepository.php',
            'EstacionForm' => '/Form/EstacionForm.php',
            
            'AperturaCierreCajaEntity' => '/Entity/AperturaCierreCajaEntity.php',
            'AperturaCierreCajaRepository' => '/Entity/AperturaCierreCajaRepository.php',
            'AperturaCierreCajaForm' => '/Form/AperturaCierreCajaForm.php',
            'DenominacionesForm' => '/Form/DenominacionesForm.php',
            
            'RetiroEntity' => '/Entity/RetiroEntity.php',
            'RetiroRepository' => '/Entity/RetiroRepository.php',
            'RetiroForm' => '/Form/RetiroForm.php',
            
            'GenericRepository' => '/Entity/GenericRepository.php',
            
            'VentaAjax'=>'/Controller/Ajax/VentaAjax.php',
            'VentaEntity'=>'/Entity/VentaEntity.php',
            'VentaRepository'=>'/Entity/VentaRepository.php',
            'VentaForm' => '/Form/VentaForm.php',
            'VentaBuscarForm' => '/Form/VentaBuscarForm.php',
            'VentaDetallesTempEntity'=>'/Entity/VentaDetallesTempEntity.php',
            'VentaDetallesTempRepository'=>'/Entity/VentaDetallesTempRepository.php',
            'VentaDetallesEntity'=>'/Entity/VentaDetallesEntity.php',
            'VentaDetallesRepository'=>'/Entity/VentaDetallesRepository.php',
            'VentaDetallesForm'=>'/Form/VentaDetallesForm.php',
            'InvoicePDF'=>'/Controller/Pdf/InvoicePDF.php',            
            
            'ClienteEntity' => '/Entity/ClienteEntity.php',
            'ClienteRepository' => '/Entity/ClienteRepository.php',
            'ClienteForm' => '/Form/ClienteForm.php',
            
            'ProveedorEntity' => '/Entity/ProveedorEntity.php',
            'ProveedorRepository' => '/Entity/ProveedorRepository.php',
            'ProveedorForm' => '/Form/ProveedorForm.php',
            
            'CategoriaEntity' => '/Entity/CategoriaEntity.php',
            'CategoriaRepository' => '/Entity/CategoriaRepository.php',
            'CategoriaForm' => '/Form/CategoriaForm.php',
            
            'TamanoEntity' => '/Entity/TamanoEntity.php',
            'TamanoRepository' => '/Entity/TamanoRepository.php',
            'TamanoForm' => '/Form/TamanoForm.php',
            
            'MarcaEntity' => '/Entity/MarcaEntity.php',
            'MarcaRepository' => '/Entity/MarcaRepository.php',
            'MarcaForm' => '/Form/MarcaForm.php',
            
            'UnidadMedidaEntity' => '/Entity/UnidadMedidaEntity.php',
            'UnidadMedidaRepository' => '/Entity/UnidadMedidaRepository.php',
            'UnidadMedidaForm' => '/Form/UnidadMedidaForm.php',
            
            'ImpuestosRepository' => '/Entity/ImpuestosRepository.php',
            
            'ProductAjax' => '/Controller/Ajax/ProductAjax.php', 
            'ProductoEntity' => '/Entity/ProductoEntity.php',
            'ProductoRepository' => '/Entity/ProductoRepository.php',
            'ProductDetailsTempRepository'=>'/Entity/ProductDetailsTempRepository.php',
            'ProductoForm' => '/Form/ProductoForm.php',
            'ProductoBuscarForm' => '/Form/ProductoBuscarForm.php',
            
            'ReturnEntity' => '/Entity/ReturnEntity.php',
            'ReturnRepository' => '/Entity/ReturnRepository.php',
            'ReturnForm' => '/Form/ReturnForm.php', 
            'ReturnAjax' => '/Controller/Ajax/ReturnAjax.php',             
            'ReturnDetailsTempEntity'=>'/Entity/ReturnDetailsTempEntity.php',
            'ReturnDetailsTempRepository'=>'/Entity/ReturnDetailsTempRepository.php',
            'ReturnPDF' => '/Controller/Pdf/ReturnPDF.php',
            'ReturnDetailsPDF' => '/Controller/Pdf/ReturnDetailsPDF.php',
            
            'CobroEntity' => '/Entity/CobroEntity.php',
            'CobroRepository' => '/Entity/CobroRepository.php',
            'CobroTempRepository' => '/Entity/CobroTempRepository.php',
            'RefundForm' => '/Form/RefundForm.php',
            'CobroForm' => '/Form/CobroForm.php',
            'OperacionesTarjetasRepository' => '/Entity/OperacionesTarjetasRepository.php',
            
            'StoreAjax'=>'/Controller/Ajax/StoreAjax.php',
            'SucursalEntity' => '/Entity/SucursalEntity.php',
            'SucursalRepository' => '/Entity/SucursalRepository.php',
            'StoreDetailsTempRepository' => '/Entity/StoreDetailsTempRepository.php',
            'SucursalForm' => '/Form/SucursalForm.php', 
            
            'InventarioEntity' => '/Entity/InventarioEntity.php',
            'InventarioRepository' => '/Entity/InventarioRepository.php',
            
            'PosAjax'=>'/Controller/Ajax/PosAjax.php',
            
            'DevolucionEntity' => '/Entity/DevolucionEntity.php',
            'DevolucionRepository' => '/Entity/DevolucionRepository.php',
            
            'ReportAjax'=>'/Controller/Ajax/ReportAjax.php',
            'ReporteForm' => '/Form/ReporteForm.php',
            'ReportListasEntity' => '/Entity/ReportListasEntity.php',
            'ReportListasRepository' => '/Entity/ReportListasRepository.php',
            
            'TimeClockEntity' => '/Entity/TimeClockEntity.php',
            'TimeClockRepository' => '/Entity/TimeClockRepository.php',
            'TimeClockForm' => '/Form/TimeClockForm.php',
            'TimeClockBuscarForm' => '/Form/TimeClockBuscarForm.php',
            'TimeClockAjax'=>'/Controller/Ajax/TimeClockAjax.php',
            
            'AddProductForm' => '/Form/AddProductForm.php',
            'PurchaseAjax'=>'/Controller/Ajax/PurchaseAjax.php',
            'PurchaseForm' => '/Form/PurchaseForm.php',            
            'PurchaseRepository'=>'/Entity/PurchaseRepository.php',
            'PurchaseDetailsTempRepository'=>'/Entity/PurchaseDetailsTempRepository.php',
            'PurchasePDF'=>'/Controller/Pdf/PurchasePDF.php',
            
            'PaymentTermsAjax' => '/Controller/Ajax/PaymentTermsAjax.php',
            'PaymentTermsEntity' => '/Entity/PaymentTermsEntity.php',
            'PaymentTermsRepository' => '/Entity/PaymentTermsRepository.php',
            'PaymentTermsForm' => '/Form/PaymentTermsForm.php',
			
			'WasteEntity' => '/Entity/WasteEntity.php',
            'WasteRepository' => '/Entity/WasteRepository.php',
            'WasteForm' => '/Form/WasteForm.php',
            
            //validators
            'OptionsArrayValidator' => '/app/class/Import/Validators/OptionsArrayValidator.php',

            //interfaces
            'Importable' => '/class/App/Interfaces/Importable.php',
            'Saveable' => '/class/App/Interfaces/Saveable.php',
            'Uploader' => '/class/App/Interfaces/Uploader.php',
            'Validable' => '/class/App/Interfaces/Validable.php',
            'Validator' => '/class/App/Interfaces/Validator.php',

            //PHP Excel
            'PHPExcelByBatches' => '/app/class/PHPExcelReadFilters/PHPExcelByBatches.php',
            'PHPExcelRemedyFilter' => '/app/class/PHPExcelReadFilters/PHPExcelRemedyFilter.php',

            //Import
            'ImportExcelFileToEntity' => '/class/App/Import/ImportExcelFileToEntity.php', 
            'ImportFromExcel' => '/class/App/Import/ImportFromExcel.php',   
            'BancoMovimientosImport' => '/class/App/Import/BancoMovimientosImport.php',   
            
            //Utilities
            'EatonDateTime' => '/class/App/Import/EatonDateTime.php',
            
            //Store Request
            'StoreRequestPDF' => '/Controller/Pdf/StoreRequestPDF.php', 
            'StoreRequestAjax' => '/Controller/Ajax/StoreRequestAjax.php', 
            'StoreRequestRepository' => '/Entity/StoreRequestRepository.php',
            'StoreRequestForm' => '/Form/StoreRequestForm.php', 
            'StoreRequestDetailsTempRepository'=>'/Entity/StoreRequestDetailsTempRepository.php',
            'StoreRepository' => '/Entity/StoreRepository.php'
        );
        if (isset($classes[$className])) {
            require_once(ROOT . $classes[$className]);
        }
    }    
}