<commit_before>from pprint import pprint

from django.shortcuts import render
from django.urls import reverse
from django.views import View

from fo2.connections import  db_cursor_so

from utils.functions.views import (
    cleanned_fields_to_context,
    context_to_form_post,
)

import beneficia.queries
from beneficia.forms.main import ObForm


class Ob(View):

    Form_class = ObForm
    template_name = 'beneficia/ob.html'
    title_name = 'OB'

    cleanned_fields_to_context = cleanned_fields_to_context
    context_to_form_post = context_to_form_post

    def __init__(self):
        self.context = {'titulo': self.title_name}

    def mount_context(self):
        self.cursor = db_cursor_so(self.request)

        dados = beneficia.queries.busca_ob(self.cursor, self.context['ob'])
        if len(dados) == 0:
            return

        self.context.update({
            'headers': [
                'Período',
                'Equipamento',
                'Rolos',
                'Quilos',
                'Obs.',
                'Situação',
                'Cancelamento',
            ],
            'fields': [
                'periodo',
                'maq',
                'rolos',
                'quilos',
                'obs',
                'sit',
                'canc',
            ],
            'dados': dados,
        })

        est_dados = beneficia.queries.ob_estagios(self.cursor, self.context['ob'])
        self.context.update({
            'est_headers': (
                'Sequência',
                'Estágio',
                'Descrição',
                'Início',
                'Término',
            ),
            'est_fields': (
                'seq',
                'est',
                'est_descr',
                'ini',
                'fim',
            ),
            'est_dados': est_dados,
        })

        tec_dados = beneficia.queries.ob_tecidos(self.cursor, self.context['ob'])
        self.context.update({
            'tec_headers': [
                'Nível',
                'Ref,',
                'Tam.',
                'Cor',
                'Alt.',
                'Rot.',
                'Rolos prog.',
                'Quilos prog.',
                'Rolos real',
                'Quilos real',
                'Rolos prod.',
                'Quilos prod.',
            ],
            'tec_fields': [
                'nivel',
                'ref',
                'tam',
                'cor',
                'alt',
                'rot',
                'rolos_prog',
                'quilos_prog',
                'rolos_real',
                'quilos_real',
                'rolos_prod',
                'quilos_prod',
            ],
            'tec_dados': tec_dados,
        })

        tipo_tecido = ''
        for row in tec_dados:
            if not tipo_tecido:
                tipo_tecido = row['tam']
            elif tipo_tecido != row['tam']:
                tipo_tecido = 'X'

        tecido_ob = {
            'TIN': 'OB2',
            'INT': 'OB1',
            'X': 'Erro',
            '': 'Indefinido',
        }
        tipo_ob = tecido_ob[tipo_tecido]

        self.context.update({
            'tipo_ob': tipo_ob,
        })

        if tipo_ob == 'OB1':
            self.context['headers'].append('OB2')
            self.context['fields'].append('ob2')
            for row in dados:
                if row['ob2']:
                    row['ob2|LINK'] = reverse(
                        'beneficia:ob__get',
                        args=[row['ob2']],
                    )

        elif tipo_ob == 'OB2':
            self.context['headers'].append('OT')
            self.context['fields'].append('ot')
            for row in dados:
                if row['ot']:
                    row['ot|LINK'] = reverse(
                        'beneficia:ot__get',
                        args=[row['ot']],
                    )

        dest_dados = beneficia.queries.ob_destinos(self.cursor, self.context['ob'])<commit_msg>bug - view Ob - erro de tipo de OB<commit_after>from pprint import pprint

from django.shortcuts import render
from django.urls import reverse
from django.views import View

from fo2.connections import  db_cursor_so

from utils.functions.views import (
    cleanned_fields_to_context,
    context_to_form_post,
)

import beneficia.queries
from beneficia.forms.main import ObForm


class Ob(View):

    Form_class = ObForm
    template_name = 'beneficia/ob.html'
    title_name = 'OB'

    cleanned_fields_to_context = cleanned_fields_to_context
    context_to_form_post = context_to_form_post

    def __init__(self):
        self.context = {'titulo': self.title_name}

    def mount_context(self):
        self.cursor = db_cursor_so(self.request)

        dados = beneficia.queries.busca_ob(self.cursor, self.context['ob'])
        if len(dados) == 0:
            return

        self.context.update({
            'headers': [
                'Período',
                'Equipamento',
                'Rolos',
                'Quilos',
                'Obs.',
                'Situação',
                'Cancelamento',
            ],
            'fields': [
                'periodo',
                'maq',
                'rolos',
                'quilos',
                'obs',
                'sit',
                'canc',
            ],
            'dados': dados,
        })

        est_dados = beneficia.queries.ob_estagios(self.cursor, self.context['ob'])
        self.context.update({
            'est_headers': (
                'Sequência',
                'Estágio',
                'Descrição',
                'Início',
                'Término',
            ),
            'est_fields': (
                'seq',
                'est',
                'est_descr',
                'ini',
                'fim',
            ),
            'est_dados': est_dados,
        })

        tec_dados = beneficia.queries.ob_tecidos(self.cursor, self.context['ob'])
        self.context.update({
            'tec_headers': [
                'Nível',
                'Ref,',
                'Tam.',
                'Cor',
                'Alt.',
                'Rot.',
                'Rolos prog.',
                'Quilos prog.',
                'Rolos real',
                'Quilos real',
                'Rolos prod.',
                'Quilos prod.',
            ],
            'tec_fields': [
                'nivel',
                'ref',
                'tam',
                'cor',
                'alt',
                'rot',
                'rolos_prog',
                'quilos_prog',
                'rolos_real',
                'quilos_real',
                'rolos_prod',
                'quilos_prod',
            ],
            'tec_dados': tec_dados,
        })

        tipo_tecido = ''
        for row in tec_dados:
            if not tipo_tecido:
                tipo_tecido = row['tam']
            elif tipo_tecido != row['tam']:
                tipo_tecido = 'X'

        tecido_ob = {
            'TIN': 'OB2',
            'INT': 'OB1',
            '': 'Indefinido',
        }
        try:
            tipo_ob = f"{tecido_ob[tipo_tecido]} ({tipo_tecido})"
        except KeyError:
            tipo_ob = f"Erro ({tipo_tecido})"

        self.context.update({
            'tipo_ob': tipo_ob,
        })

        if tipo_ob == 'OB1':
            self.context['headers'].append('OB2')
            self.context['fields'].append('ob2')
            for row in dados:
                if row['ob2']:
                    row['ob2|LINK'] = reverse(
                        'beneficia:ob__get',
                        args=[row['ob2']],
                    )

        elif tipo_ob == 'OB2':
            self.context['headers'].append('OT')
            self.context['fields'].append('ot')
            for row in dados:
                if row['ot']:
                    row['ot|LINK'] = reverse(
                        'beneficia:ot__get',
                        args=[row['ot']],
                    )

        dest_dados = beneficia.queries.ob_destinos(self.cursor, self.context['ob'])
{'fraction_non_alphanumeric': 0.12052197463991136, 'fraction_numerical': 0.0027083589806721656, 'mean_word_length': 1.1345244351024697, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4089327', 'n_tokens_mistral': 2475, 'n_tokens_neox': 2270, 'n_words': 401}