Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 14.0-modifsSept22
  • 14.0 par défaut protégée
2 résultats

project_profitability_report.py

Blame
  • pos_order_line.py 3,20 Kio
    # Copyright 2021 Le Filament (<http://www.le-filament.com>)
    # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
    
    from odoo import fields, models, api
    from datetime import datetime
    
    
    class PosOrderLine(models.Model):
        _inherit = 'pos.order.line'
    
        # ------------------------------------------------------
        # Fields declaration
        # ------------------------------------------------------
        caisse_id = fields.Char('Id de la caisse')
        # ------------------------------------------------------
        # SQL Constraints
        # ------------------------------------------------------
    
        # ------------------------------------------------------
        # Default methods
        # ------------------------------------------------------
    
        # ------------------------------------------------------
        # Computed fields / Search Fields
        # ------------------------------------------------------
    
        # ------------------------------------------------------
        # Onchange / Constraints
        # ------------------------------------------------------
    
        # ------------------------------------------------------
        # CRUD methods (ORM overrides)
        # ------------------------------------------------------
        @api.model
        def create(self, values):
            res = super(PosOrderLine, self).create(values)
            if res.container_id:
                today = datetime.today().isoformat('T')[:19]
    
                weight_str = str(int(res.qty * 1000))
                # weight_str = str(res.qty * 1000).zfill(5)
    
                prod = (res.product_id.default_code).zfill(5)
                ean13 = "26" + prod + weight_str.zfill(5) + "4"
    
                weight_brut_str = str(int((res.container_weight + res.qty) * 1000))
    
                ean13_verif = "2600999" + weight_brut_str.zfill(5) + "4"
    
                seller_id = self.env['product.supplierinfo'].search([
                    ("product_tmpl_id", '=', res.product_id.product_tmpl_id.id)],
                    limit=1)
    
                nomenclature = self.env['barcode.nomenclature'].browse(1)
                ean13_digit = nomenclature.sanitize_ean(ean13)
                ean13_verif_digit = nomenclature.sanitize_ean(ean13_verif)
    
                vals = {
                    "date_iso": today,
                    'qrcode': 'https://qr.mayam.fr/' + str(res.container_id.barcode),
                    "container_ean13": res.container_id.barcode,
                    "product_id": res.product_id.id,
                    "name": res.product_id.name,
                    "price_net": res.price_subtotal,
                    "price_product": res.price_unit,
                    "weight_net": res.qty,
                    "weight_tare": res.container_weight,
                    "seller_name": seller_id.name.name,
                    "seller_code": seller_id.product_code,
                    "ean13": ean13_digit,
                    "ean13_verif": ean13_verif_digit,
                    "is_pos": True,
                    "balance_id": res.caisse_id
                }
                self.env['pos.transaction'].create(vals)
            return res
        # ------------------------------------------------------
        # Actions
        # ------------------------------------------------------
    
        # ------------------------------------------------------
        # Business methods
        # ------------------------------------------------------