コード例 #1
0
ファイル: views.py プロジェクト: alissonpintor/stokymagento
def inativar():
    """
        Inativa os produtos no site
    """

    template = 'produtos/form-inativar-produtos.html'

    task = current_app.inativar_task
    clear_task = request.args.get('clear_task', None)
    if clear_task and clear_task == 'yes':
        if task and task.state == 'SUCCESS':
            current_app.inativar_task = task = None
        return redirect(url_for('produtos.inativar'))

    produtos = None
    if not task:
        produtos = buscar_produtos_inativos()

    form = EnviarProdutosNovosForm()

    if form.validate_on_submit() and produtos:
        task = inativar_task.apply_async()
        current_app.inativar_task = task

        success(f'Tarefa iniciada com sucesso')
        return redirect(url_for('produtos.inativar'))

    result = {
        'title': 'Produtos',
        'subtitle': 'Inativar',
        'form': form,
        'produtos': produtos,
        'task': task
    }
    return render_template(template, **result)
コード例 #2
0
ファイル: views.py プロジェクト: alissonpintor/stokymagento
def atualiza_estoque():
    """
        Atualiza o estoque dos produtos no site
    """

    template = 'produtos/form-atualiza-estoque.html'
    form = EnviarProdutosNovosForm()
    config = ConfigMagento.by_id(1)

    task = current_app.atualiza_estoque_task
    clear_task = request.args.get('clear_task', None)
    if clear_task and clear_task == 'yes':
        if task and task.state == 'SUCCESS':
            current_app.atualiza_estoque_task = task = None
        return redirect(url_for('produtos.atualiza_estoque'))

    produtos = None
    if not task:
        produtos = buscar_estoque_produtos(dthr_sincr=config.dtsincr_estoque)

    if form.validate_on_submit() and produtos:
        task = atualiza_estoque_task.apply_async()
        current_app.atualiza_estoque_task = task

        success(f'Tarefa iniciada com sucesso')
        return redirect(url_for('produtos.atualiza_estoque'))

    result = {
        'title': 'Produtos',
        'subtitle': 'Atualizar Estoque',
        'form': form,
        'produtos': produtos,
        'task': task
    }
    return render_template(template, **result)
コード例 #3
0
ファイル: views.py プロジェクト: alissonpintor/cobranca
def financeiro():
    """
        View que representa a interface com o usuario
        para configurar parametros usados no financeiro
    """
    template = 'configuracoes/financeiro/main.html'
    config = ConfigFinanceiro.by_id(1)
    form = ConfigFinanceiroForm()

    # busca as formas de pagamento do Ciss para ser usado
    # no campo de selecao de formas de pagamento usadas
    # na cobrança automatica
    formas_pagamento = buscar_formas_pagamento()
    nome_format = lambda x: '{} - {}'.format(x.descrrecebimento, x.
                                             idrecebimento)
    formas_pagamento = [(int(f.idrecebimento), nome_format(f))
                        for f in formas_pagamento]
    form.formas_pagamento.choices = formas_pagamento

    # valida o formulario
    if form.validate_on_submit():
        if not config:
            config = ConfigFinanceiro()

        config.diascobranca = form.dias_cobranca.data
        config.emailremetente = form.email_remetente.data
        # É necessario converter a lista de forma de pagamentos para
        # string para usar o str.join()
        lista_fmpagamento = [str(num) for num in form.formas_pagamento.data]
        config.formaspgcobranca = ','.join(lista_fmpagamento)
        if form.envia_copia.data:
            config.emailscc = form.emails_cc.data
            config.flagteste = form.flag_teste.data
        else:
            config.emailscc = None
        config.update()

        success('Registro cadastrado com sucesso')

        return redirect(url_for('configuracoes.financeiro'))

    if config and not form.submit.data:
        form.dias_cobranca.data = config.diascobranca
        form.email_remetente.data = config.emailremetente
        form.formas_pagamento.data = [
            int(num) for num in config.formaspgcobranca.split(',')
        ]

        if config.emailscc:
            form.envia_copia.data = True
            form.emails_cc.data = config.emailscc
            form.flag_teste.data = config.flagteste

    content = {
        'title': 'Configurações',
        'subtitle': 'Financeiro',
        'form': form
    }
    return render_template(template, **content)
コード例 #4
0
ファイル: views.py プロジェクト: alissonpintor/stokymagento
def enviar_novos():
    """
        Envia os produtos novos para o site
    """

    template = 'produtos/form-enviar-produtos.html'
    form = EnviarProdutosNovosForm()
    imagens = read_images().keys()

    task = current_app.enviar_novos_task
    clear_task = request.args.get('clear_task', None)
    if clear_task and clear_task == 'yes':
        if task and task.state == 'SUCCESS':
            current_app.enviar_novos_task = task = None
        return redirect(url_for('produtos.enviar_novos'))

    produtos = None
    if not task:
        produtos = buscar_produtos_novos()

    if not produtos and not task:
        warning('Não existem produtos para serem enviados para o site')

    categorias = buscar_categorias_produtos()
    if not categorias:
        warning('Não existem categorias do site cadastradas')

    if form.validate_on_submit() and produtos and categorias:
        produtos_task = {}

        for p in produtos:
            secao = int(request.form.get(f'secao-{p.idsubproduto}', 0))
            grupo = int(request.form.get(f'grupo-{p.idsubproduto}', 0))
            subgrupo = int(request.form.get(f'subgrupo-{p.idsubproduto}', 0))

            if secao and grupo and subgrupo:
                categorias = [secao, grupo, subgrupo]
                produtos_task[p.idsubproduto] = categorias

        task = enviar_novos_task.apply_async(args=(produtos_task, ))
        current_app.enviar_novos_task = task

        success(f'Tarefa iniciada com sucesso')
        return redirect(url_for('produtos.enviar_novos'))

    result = {
        'title': 'Produtos',
        'subtitle': 'Enviar Novos',
        'form': form,
        'imagens': imagens,
        'produtos': produtos,
        'categorias': categorias,
        'task': task
    }
    return render_template(template, **result)
コード例 #5
0
ファイル: views.py プロジェクト: alissonpintor/cobranca
def email_cobranca_automatica():
    """
        Envia o email de cobrança de pendencias dos clientes
    """

    template = 'financeiro/cobranca/email-cobranca/main.html'

    task = current_app.task
    clear_task = request.args.get('clear_task', None)
    if clear_task and clear_task == 'yes':
        if task and task.state == 'SUCCESS':
            current_app.task = task = None
        return redirect(url_for('financeiro.email_cobranca_automatica'))

    pendencias = None
    config = ConfigFinanceiro.by_id(1)
    has_config = True if config else False
    form = FormBuscarPendencias()

    if not task and has_config and form.validate_on_submit():
        dtinicial = form.dtinicial.data
        dtfinal = form.dtfinal.data

        pendencias = validar_pendencias_enviadas(dtinicial, dtfinal)

        # verifica se o usuario clicou em enviar para iniciar o envio dos emails
        if form.enviar.data:
            dtinicial = (dtinicial.day, dtinicial.month, dtinicial.year)
            dtfinal = (dtfinal.day, dtfinal.month, dtfinal.year)

            task = email_cobranca_task.apply_async(args=(dtinicial, dtfinal))
            current_app.task = task

            time.sleep(3)

            success('Tarefa de envio de cobranças iniciado')
            return redirect(url_for('financeiro.email_cobranca_automatica'))

    content = {
        'title': 'Financeiro',
        'subtitle': 'Email de Cobrança Automático',
        'has_config': has_config,
        'pendencias': pendencias,
        'form': form,
        'task': task
    }
    return render_template(template, **content)
コード例 #6
0
ファイル: views.py プロジェクト: alissonpintor/stokymagento
def magento():
    config = ConfigMagento.query.filter_by(id=1).first()
    if not config:
        config = ConfigMagento()
    
    form = ConfigMagentoForm()

    if config and config.id and not form.config_id.data:
        form.config_id.data = config.id
        form.api_url.data = config.api_url
        form.api_user.data = config.api_user
        form.api_pass.data = config.api_pass
        form.magento_version.data = config.magento_version
        form.categoria_default.data = config.categoria_default
        form.dtsincr_estoque.data = config.dtsincr_estoque
        form.dtsincr_preco.data = config.dtsincr_preco
        form.dtsincr_promocao.data = config.dtsincr_promocao
        form.dtsincr_inativos.data = config.dtsincr_inativos

    if form.validate_on_submit():
        config.api_url = form.api_url.data
        config.api_user = form.api_user.data
        config.api_pass = form.api_pass.data
        config.magento_version = form.magento_version.data
        config.categoria_default = form.categoria_default.data

        api = Api()
        api.url = form.api_url.data
        api.user = form.api_user.data
        api.passwd = form.api_pass.data
        api.magento_version = form.magento_version.data

        db.session.add(config)
        db.session.commit()

        success('Configurações atualizadas com sucesso.')

    content = {
        'title': 'Configurações do Magento',
        'form': form
    }
    return render_template('configurations/magento.html', **content)
コード例 #7
0
ファイル: views.py プロジェクト: alissonpintor/stokymagento
def atualiza_base():
    """
        Atualiza a base de dados com produtos ja enviados
    """
    template = 'produtos/form-atualiza-base.html'
    form = EnviarProdutosNovosForm()

    if form.validate_on_submit():
        produtos = productList()
        atualizar_base(produtos)

        success('Base atualizada com sucesso')
        return redirect(url_for('produtos.atualiza_base'))

    result = {
        'title': 'Atualizar Estoque Produtos',
        'form': form,
        'produtos': None
    }
    return render_template(template, **result)
コード例 #8
0
def update(id=None):
    form = UpdateUserForm()
    user = User.query.filter_by(id=id).first()

    if user and form.userId.data == 0:
        form.userId.data = user.id
        form.userName.data = user.firstName
        form.userLastName.data = user.lastName
        form.userEmail.data = user.email
        form.userGender.data = user.gender

    if form.validate_on_submit():
        user.firstName = form.userName.data
        user.lastName = form.userLastName.data
        user.email = form.userEmail.data
        user.gender = form.userGender.data

        if form.userImage.data:
            if current_app.config['UPLOADS_DEFAULT_URL'] is None:
                warning(
                    'A URL Base do Sistema não está configurada para salvar a images.'
                )
                return redirect(url_for('account.update', id=id))

            image = enviar_imagem(form.userImage.data)
            if not image.status:
                error(image.message)
                return redirect(url_for('account.update', id=id))

            user.image = image.url

        db.session.add(user)
        db.session.commit()
        success('Dados alterados com sucesso.')

        return redirect(url_for('account.index'))

    content = {'title': 'Minha Conta', 'form': form}
    return render_template('account/update.html', **content)
コード例 #9
0
ファイル: views.py プロジェクト: alissonpintor/stokymagento
def atualiza_imagem():
    """
        Envia os produtos que estão no site e tiveram as imagens alteradas
    """

    template = 'produtos/form-atualiza-imagens.html'
    form = EnviarProdutosNovosForm()

    task = current_app.atualiza_imagem_task
    clear_task = request.args.get('clear_task', None)
    if clear_task and clear_task == 'yes':
        if task and task.state == 'SUCCESS':
            current_app.atualiza_imagem_task = task = None
        return redirect(url_for('produtos.atualiza_imagem'))

    produtos = None
    if not task:
        produtos = buscar_imagens_alteradas()

    if not produtos and not task:
        warning('Não existem produtos para serem enviados para o site')

    if form.validate_on_submit() and produtos:
        task = atualiza_imagem_task.apply_async()
        current_app.atualiza_imagem_task = task

        success(f'Tarefa iniciada com sucesso')
        return redirect(url_for('produtos.atualiza_imagem'))

    result = {
        'title': 'Produtos',
        'subtitle': 'Atualizar Imagens',
        'form': form,
        'produtos': produtos,
        'task': task
    }
    return render_template(template, **result)
コード例 #10
0
ファイル: views.py プロジェクト: alissonpintor/cobranca
def index():
    template = 'configuracoes/main.html'
    config = Config.by_id(1)
    form = ConfigForm()

    if config and config.baseUrl and not form.baseURL.data:
        form.configId.data = config.id
        form.baseURL.data = config.baseUrl

    if form.validate_on_submit():
        import os
        config.baseUrl = form.baseURL.data

        uploadURL = os.path.join(form.baseURL.data, 'uploads')
        current_app.config.update(UPLOADS_DEFAULT_URL=uploadURL)
        configure_uploads(current_app, (imageSet, ))

        db.session.add(config)
        db.session.commit()

        success('Registro alterado com sucesso.')

    content = {'title': 'Configurações do Sistema', 'form': form}
    return render_template(template, **content)
コード例 #11
0
ファイル: views.py プロジェクト: alissonpintor/stokymagento
def atualiza_promocoes():
    """
        Envia os produtos em promoção para o site
    """

    template = 'produtos/form-envia-promocoes.html'
    config = ConfigMagento.by_id(1)

    task = current_app.atualiza_promocoes_task
    clear_task = request.args.get('clear_task', None)
    if clear_task and clear_task == 'yes':
        if task and task.state == 'SUCCESS':
            current_app.atualiza_promocoes_task = task = None
        return redirect(url_for('produtos.atualiza_promocoes'))

    produtos = None
    if not task:
        produtos = buscar_produtos_promocao(dthr_sincr=config.dtsincr_promocao)

    form = EnviarProdutosNovosForm()

    if form.validate_on_submit():
        task = atualiza_promocoes_task.apply_async()
        current_app.atualiza_promocoes_task = task

        success(f'Tarefa iniciada com sucesso')
        return redirect(url_for('produtos.atualiza_promocoes'))

    result = {
        'title': 'Produtos',
        'subtitle': 'Atualizar Promoções',
        'produtos': produtos,
        'task': task,
        'form': form
    }
    return render_template(template, **result)