## $Id: batching.py 12617 2015-02-14 17:22:51Z henrik $
##
## Copyright (C) 2014 Uli Fouquet & Henrik Bettermann
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##
"""Batch processing for pcn documents.
"""
import grok
from waeup.ikoba.customers.batching import (
    CustomerProcessor,
    CustomerDocumentProcessorBase, ContractProcessorBase)
from ikobacustom.pcn.customers.interfaces import (
    IPCNCustomer,
    IPCNCustomerJPGDocument,
    IPCNCustomerPDFDocument,
    IRONContract,
    IROPContract,
    IRPRContract,
    IRPCContract,
    IIPPMVLContract,
    IRPPMVLContract,
    IAPPITContract,
    IRPTContract,
    IAPPTContract
    )
from ikobacustom.pcn.interfaces import MessageFactory as _


class PCNCustomerProcessor(CustomerProcessor):
    """A batch processor for ICustomer objects.
    """
    util_name = 'pcncustomerprocessor'
    grok.name(util_name)
    name = _('PCN Customer Processor')
    iface = IPCNCustomer


class PCNCustomerJPGDocumentProcessor(CustomerDocumentProcessorBase):
    """A batch processor for IPCNCustomerJPGDocument objects.
    """
    util_name = 'pcncustomerjpgdocumentprocessor'
    grok.name(util_name)
    name = _('PCN Customer JPG Document Processor')
    iface = IPCNCustomerJPGDocument
    factory_name = 'waeup.PCNCustomerJPGDocument'

class PCNCustomerPDFDocumentProcessor(CustomerDocumentProcessorBase):
    """A batch processor for IPCNCustomerPDFDocument objects.
    """
    util_name = 'pcncustomerpdfdocumentprocessor'
    grok.name(util_name)
    name = _('PCN Customer PDF Document Processor')
    iface = IPCNCustomerPDFDocument
    factory_name = 'waeup.PCNCustomerPDFDocument'

class RONContractProcessor(ContractProcessorBase):
    """A batch processor for IRONContract objects.
    """
    util_name = 'roncontractprocessor'
    grok.name(util_name)
    name = _('License Processor: Retention of Name')
    iface = IRONContract
    factory_name = 'waeup.RONContract'

class ROPContractProcessor(ContractProcessorBase):
    """A batch processor for IROPContract objects.
    """
    util_name = 'ropcontractprocessor'
    grok.name(util_name)
    name = _('License Processor: Registration of Premises')
    iface = IROPContract
    factory_name = 'waeup.ROPContract'

class RPRContractProcessor(ContractProcessorBase):
    """A batch processor for IRPRContract objects.
    """
    util_name = 'rprcontractprocessor'
    grok.name(util_name)
    name = _('License Processor: Registration in the Provisional Register')
    iface = IRPRContract
    factory_name = 'waeup.RPRContract'

class RPCContractProcessor(ContractProcessorBase):
    """A batch processor for IRPRContract objects.
    """
    util_name = 'rpccontractprocessor'
    grok.name(util_name)
    name = _('License Processor: Registration as Pharmaceutical Chemist')
    iface = IRPCContract
    factory_name = 'waeup.RPCContract'

class IPPMVLContractProcessor(ContractProcessorBase):
    """A batch processor for IIPPMVLContract objects.
    """
    util_name = 'ippmvlcontractprocessor'
    grok.name(util_name)
    name = _('License Processor: Issuance of Patent and Proprietary Medicines Vendors License')
    iface = IIPPMVLContract
    factory_name = 'waeup.IPPMVLContract'

class RPPMVLContractProcessor(ContractProcessorBase):
    """A batch processor for IRPPMVLContract objects.
    """
    util_name = 'rppmvlcontractprocessor'
    grok.name(util_name)
    name = _('License Processor: Renewal of Patent and Proprietary Medicines Vendors License')
    iface = IRPPMVLContract
    factory_name = 'waeup.RPPMVLContract'

class APPITContractProcessor(ContractProcessorBase):
    """A batch processor for IAPPITContract objects.
    """
    util_name = 'appitcontractprocessor'
    grok.name(util_name)
    name = _('License Processor: Accepting Pupil Pharmacist for Internship Training')
    iface = IAPPITContract
    factory_name = 'waeup.APPITContract'

class RPTContractProcessor(ContractProcessorBase):
    """A batch processor for IRPTContract objects.
    """
    util_name = 'rptcontractprocessor'
    grok.name(util_name)
    name = _('License Processor: Registration as a Pharmacy Technician')
    iface = IRPTContract
    factory_name = 'waeup.RPTContract'

class APPTContractProcessor(ContractProcessorBase):
    """A batch processor for IAPPTContract objects.
    """
    util_name = 'apptcontractprocessor'
    grok.name(util_name)
    name = _('License Processor: Annual Permit for Pharmacy Technician')
    iface = IAPPTContract
    factory_name = 'waeup.APPTContract'