92 lines
3.4 KiB
Python
Executable File
92 lines
3.4 KiB
Python
Executable File
# -*- coding: utf-8 -*
|
|
|
|
import ast
|
|
import datetime
|
|
import json
|
|
import re
|
|
import uuid
|
|
import logging
|
|
import base64
|
|
import subprocess
|
|
import tempfile
|
|
import easywebdav
|
|
import os
|
|
import os.path
|
|
|
|
|
|
from odoo import api, fields, models, _
|
|
from odoo import tools
|
|
from . import dss_settings
|
|
from odoo.exceptions import ValidationError
|
|
from datetime import date
|
|
from datetime import datetime
|
|
from dateutil.relativedelta import relativedelta
|
|
from pyffmpeg import FFmpeg
|
|
from tuya_iot import TuyaOpenAPI, TUYA_LOGGER
|
|
from tuya_connector import TuyaOpenAPI, TUYA_LOGGER
|
|
import sys
|
|
|
|
TUYA_LOGGER.setLevel(logging.DEBUG)
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
class dssprovision(models.Model):
|
|
|
|
_name = "dss.provision"
|
|
_description = "DigitalSignage Provisionen"
|
|
_rec_name = "provisionname"
|
|
_inherit = ['mail.thread','mail.activity.mixin','dss.triggermodel']
|
|
uuid = fields.Char(default=lambda self: self._default_uuid(), required=True, readonly=True, copy=False, string='UUID')
|
|
date_create = fields.Date('Erstellungsdatum',default=lambda self: self._default_create_date())
|
|
user_create = fields.Char('Erstellungsuser',default=lambda self: self._default_create_user())
|
|
provisionname = fields.Char('Kurzbezeichnung der Provision',tracking=True)
|
|
contract = fields.Many2one('dss.contracts' , string='Vertrag', store=True,tracking=True)
|
|
project = fields.Many2one(related='contract.project' , string='Project', store=True,tracking=True)
|
|
client = fields.Many2one(related='contract.client',string="Kunde (wenn angelegt)")
|
|
contract_writer = fields.Many2one(related='contract.contract_writer',string="Vertragsschreiber", store=True)
|
|
provisionbase = fields.Selection([('VZAHL','Volle Zahlung'),('TZAHL','Teil Betrag FIX'),('PZAHL','Teil Betrag Prozent')], tracking=True, store=True)
|
|
provisiongesamt = fields.Float('Gesamtsumme Provision', tracking=True)
|
|
provisionprozent = fields.Float('Ausgezahlte Prozent',tracking=True)
|
|
provisionteil = fields.Float('Auszahlungs-Summe', tracking=True)
|
|
|
|
paydate = fields.Date('Zahlungsdatum', tracking=True)
|
|
|
|
|
|
@api.model
|
|
def _default_uuid(self):
|
|
return str(uuid.uuid4())
|
|
|
|
def _default_create_date(self):
|
|
return str(date.today())
|
|
|
|
def _default_create_user(self):
|
|
return str(self.env.user.name)
|
|
|
|
|
|
@api.onchange('provisionbase')
|
|
def _onchange_provisionbase(self):
|
|
if self.provisionbase == "PZAHL":
|
|
_logger.info('Calc Provisionpart : ' + str(self.provisionbase) + ' \% ' + str(self.provisionprozent));
|
|
try:
|
|
self.provisionteil = self.provisiongesamt/100*self.provisionprozent
|
|
except:
|
|
self.provisionteil = 0
|
|
elif self.provisionbase == "VZAHL":
|
|
_logger.info('Calc Provisionpart : ' + str(self.provisionbase) + ' \V ' + str(self.provisiongesamt));
|
|
self.provisionteil = self.provisiongesamt
|
|
self.provisionprozent = 100
|
|
else:
|
|
_logger.info('Calc Provisionpart : ' + str(self.provisionbase) + ' \T ' + str(self.provisionteil));
|
|
self.provisionteil = self.provisionteil
|
|
|
|
@api.onchange('provisionprozent')
|
|
def _onchange_provisionprozent(self):
|
|
self._onchange_provisionbase()
|
|
|
|
def pyadd_entry_tocontract(self):
|
|
self._onchange_provisionbase()
|
|
self.contract.provisions=[(4,self.id)]
|
|
self.contract._compute_provisionspayedpercent()
|
|
|
|
def pycancel_entry(self):
|
|
self.unlink()
|