Пример #1
0
 def _geoip_setup_resolver(cls):
     # Lazy init of GeoIP resolver
     if izi._geoip_resolver is not None:
         return
     geofile = config.get('geoip_database')
     try:
         izi._geoip_resolver = GeoIPResolver.open(geofile) or False
     except Exception as e:
         _logger.warning('Cannot load GeoIP: %s', ustr(e))
Пример #2
0
    def _get_sys_logs(self):
        """
        Utility method to send a publisher warranty get logs messages.
        """
        msg = self._get_message()
        arguments = {'arg0': ustr(msg), "action": "update"}

        url = config.get("publisher_warranty_url")

        r = requests.post(url, data=arguments, timeout=30)
        r.raise_for_status()
        return literal_eval(r.text)
Пример #3
0
 def registries(cls):
     """ A mapping from database names to registries. """
     size = config.get('registry_lru_size', None)
     if not size:
         # Size the LRU depending of the memory limits
         if os.name != 'posix':
             # cannot specify the memory limit soft on windows...
             size = 42
         else:
             # A registry takes 10MB of memory on average, so we reserve
             # 10Mb (registry) + 5Mb (working memory) per registry
             avgsz = 15 * 1024 * 1024
             size = int(config['limit_memory_soft'] / avgsz)
     return LRU(size)
Пример #4
0
    def test_00_payment_advice_flow(self):
        # I create a new Payment Advice with NEFT Transaction Enable
        payment_advice = self.Advice.create({
            'name':
            'NEFT Advice',
            'bank_id':
            self.bank_1.id,
            'line_ids': [(0, 0, {
                'employee_id': self.employee_fp.id,
                'name': '90125452552',
                'ifsc_code': 'abn45215145',
                'bysal': 25000.00,
            }),
                         (0, 0, {
                             'employee_id': self.employee_al.id,
                             'name': '00014521111232',
                             'ifsc_code': 'sbi45452145',
                             'bysal': 20000.00,
                         })],
        })

        # I check that the Payment Advice is in "Draft"
        self.assertEqual(payment_advice.state, 'draft')

        # Now I confirm Payment Advice
        payment_advice.confirm_sheet()

        # I check that the Payment Advice state is "Confirmed"
        self.assertEqual(payment_advice.state, 'confirm')

        # In order to test the PDF report defined on a Payment Advice, we will print a Print Advice Report when NEFT is checked
        data, data_format = self.env.ref(
            'l10n_in_hr_payroll.payroll_advice').render(payment_advice.ids)
        if config.get('test_report_directory'):
            open(
                os.path.join(config['test_report_directory'],
                             'l10n_in_hr_payroll_summary_report' +
                             data_format), 'wb+').write(data)
Пример #5
0
    def test_00_payslip_flow(self):
        """ Testing payslip flow and report printing """
        # I create an employee Payslip
        richard_payslip = self.env['hr.payslip'].create({
            'name':
            'Payslip of Richard',
            'employee_id':
            self.richard_emp.id
        })

        payslip_input = self.env['hr.payslip.input'].search([
            ('payslip_id', '=', richard_payslip.id)
        ])
        # I assign the amount to Input data
        payslip_input.write({'amount': 5.0})

        # I verify the payslip is in draft state
        self.assertEqual(richard_payslip.state, 'draft', 'State not changed!')

        context = {
            "lang": "en_US",
            "tz": False,
            "active_model": "ir.ui.menu",
            "department_id": False,
            "section_id": False,
            "active_ids": [self.ref("hr_payroll.menu_department_tree")],
            "active_id": self.ref("hr_payroll.menu_department_tree")
        }
        # I click on 'Compute Sheet' button on payslip
        richard_payslip.with_context(context).compute_sheet()

        # Then I click on the 'Confirm' button on payslip
        richard_payslip.action_payslip_done()

        # I verify that the payslip is in done state
        self.assertEqual(richard_payslip.state, 'done', 'State not changed!')

        # I want to check refund payslip so I click on refund button.
        richard_payslip.refund_sheet()

        # I check on new payslip Credit Note is checked or not.
        payslip_refund = self.env['hr.payslip'].search([
            ('name', 'like', 'Refund: ' + richard_payslip.name),
            ('credit_note', '=', True)
        ])
        self.assertTrue(bool(payslip_refund), "Payslip not refunded!")

        # I want to generate a payslip from Payslip run.
        payslip_run = self.env['hr.payslip.run'].create({
            'date_end':
            '2011-09-30',
            'date_start':
            '2011-09-01',
            'name':
            'Payslip for Employee'
        })

        # I create record for generating the payslip for this Payslip run.

        payslip_employee = self.env['hr.payslip.employees'].create(
            {'employee_ids': [(4, self.richard_emp.id)]})

        # I generate the payslip by clicking on Generat button wizard.
        payslip_employee.with_context(active_id=payslip_run.id).compute_sheet()

        # I open Contribution Register and from there I print the Payslip Lines report.
        self.env['payslip.lines.contribution.register'].create({
            'date_from':
            '2011-09-30',
            'date_to':
            '2011-09-01'
        })

        # I print the payslip report
        data, data_format = self.env.ref(
            'hr_payroll.action_report_payslip').render(richard_payslip.ids)
        if config.get('test_report_directory'):
            open(
                os.path.join(config['test_report_directory'],
                             'hr_payroll-payslip.' + data_format),
                'wb+').write(data)

        # I print the payslip details report
        data, data_format = self.env.ref(
            'hr_payroll.payslip_details_report').render(richard_payslip.ids)
        if config.get('test_report_directory'):
            open(
                os.path.join(config['test_report_directory'],
                             'hr_payroll-payslipdetails.' + data_format),
                'wb+').write(data)

        # I print the contribution register report
        context = {
            'model': 'hr.contribution.register',
            'active_ids': [self.ref('hr_payroll.hr_houserent_register')]
        }
        test_reports.try_report_action(
            self.env.cr,
            self.env.uid,
            'action_payslip_lines_contribution_register',
            context=context,
            our_module='hr_payroll')
Пример #6
0
import uuid
import logging

from izi import api, fields, models
from izi.tools import config, ormcache, mute_logger, pycompat

_logger = logging.getLogger(__name__)
"""
A dictionary holding some configuration parameters to be initialized when the database is created.
"""
_default_parameters = {
    "database.secret": lambda: pycompat.text_type(uuid.uuid4()),
    "database.uuid": lambda: pycompat.text_type(uuid.uuid1()),
    "database.create_date": fields.Datetime.now,
    "web.base.url": lambda: "http://localhost:%s" % config.get('http_port'),
}


class IrConfigParameter(models.Model):
    """Per-database storage of configuration key-value pairs."""
    _name = 'ir.config_parameter'
    _rec_name = 'key'

    key = fields.Char(required=True, index=True)
    value = fields.Text(required=True)

    _sql_constraints = [('key_uniq', 'unique (key)', 'Key must be unique.')]

    @api.model_cr
    @mute_logger('izi.addons.base.ir.ir_config_parameter')