def create_subgroup_level1(request, id_group):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    user_id = request.user.id

    if not verify_permission(8, user_id):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    try:
        group = ProdGrp.objects.filter(instit=id_matriz, id=id_group).first()
        subgroup = ProdGrp(instit=id_matriz,
                           niv=2,
                           nv1=group.nv1,
                           nv2=request.data.get('nv2'),
                           nv1id=group.id,
                           data=timezone.now())

        subgroup.save()

        all_groups = ProdGrp.objects.filter(instit=id_matriz)
        all_groups_serialized = GrupoProdutoSerializer(all_groups, many=True)

        return Response(all_groups_serialized.data)
    except:
        raise exceptions.APIException(
            'Não foi possível criar o subgrupo, tente novamente.')
Beispiel #2
0
def update(request, id):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    id_user = request.user.id

    if not verify_permission(141, id_user):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    try:
        fabricante = Fabpro.objects.filter(instit=id_matriz, id=id).first()
        fabricante.marca = request.data.get('marca')
        fabricante.fabr = request.data.get('fabr')

        fabricante.save()

        fabricantes = Fabpro.objects.filter(instit=id_matriz)
        fabricantes_serialized = FabricanteProdutoSerializer(fabricantes,
                                                             many=True)

        return Response(fabricantes_serialized.data)
    except:
        raise exceptions.APIException(
            'Não foi possível atualizar o registro de fabricante, tente novamente.'
        )
def update(request, id):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    user_id = request.user.id

    if not verify_permission(147, user_id):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    try:
        group = ProdGrp.objects.filter(instit=id_matriz, id=id).first()

        group.nv1 = request.data.get('nv1')
        group.nv2 = request.data.get('nv2')
        group.nv3 = request.data.get('nv3')

        group.save()

        all_groups = ProdGrp.objects.filter(instit=id_matriz)
        all_groups_serialized = GrupoProdutoSerializer(all_groups, many=True)

        return Response(all_groups_serialized.data)
    except:
        raise exceptions.APIException(
            'Não foi possível atualizar o grupo, tente novamente.')
def activate(request, id):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    user_id = request.user.id

    if not verify_permission(144, user_id):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    product = Produtos.objects.filter(id=id, id_matriz=id_matriz).first()
    product_item = ProdItens.objects.filter(
        id_produtos=product.id, id_matriz=id_matriz).first()

    if not product:
        raise exceptions.NotFound('Registro não encontrado, tente novamente.')

    try:
        product.ativo = 2
        product.save()

        product_item.ativo = 2
        product_item.save()

        return Response({'detail': 'O registro do produto foi ativado com sucesso.'})
    except:
        raise exceptions.APIException(
            'Não foi possível realizar a operação, tente novamente.')
Beispiel #5
0
def create(request):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    id_user = request.user.id

    if not verify_permission(111, id_user):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    try:
        fabricante = Fabpro(instit=id_matriz,
                            marca=request.data.get('marca'),
                            fabr=request.data.get('fabr'),
                            data_criacao=timezone.now())

        fabricante.save()

        fabricantes = Fabpro.objects.filter(instit=id_matriz)
        fabricantes_serialized = FabricanteProdutoSerializer(fabricantes,
                                                             many=True)

        return Response(fabricantes_serialized.data)
    except:
        raise exceptions.APIException(
            'Não foi possível cadastrar o fabricante, tente novamente')
def deactivate(request, id):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    user_id = request.user.id

    if not verify_permission(143, user_id):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    product = Produtos.objects.filter(id=id, id_matriz=id_matriz).first()
    product_item = ProdItens.objects.filter(
        id_produtos=product.id, id_matriz=id_matriz).first()

    if not product:
        raise exceptions.NotFound('Registro não encontrado, tente novamente.')

    try:
        product.ativo = 1
        product.save()

        product_item.ativo = 1
        product_item.save()

        produtos = Produtos.objects.filter(
            id_matriz=id_matriz).order_by('descr').order_by('-ativo')
        produtos_serialized = ProdutoSerializer(produtos, many=True)
        return Response(produtos_serialized.data)
    except:
        raise exceptions.APIException(
            'Não foi possível realizar a operação, tente novamente.')
def find_all(request):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)

    try:
        aliquots = Aliquotas.objects.filter(instit=id_matriz)
        aliquots_serializer = AliquotaSerializer(aliquots, many=True)

        return Response(aliquots_serializer.data)
    except:
        raise exceptions.APIException(
            'Não foi possível retornar as alíquotas dos produtos.')
def list_all(request):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)

    try:
        configuracoes = Configs.objects.get(pk=id_institution)
        configuracoes_serialized = ConfiguracoesInstituticaoSerializer(
            configuracoes)

        return Response(configuracoes_serialized.data)
    except:
        raise exceptions.APIException(
            'Não foi possível carregar as configurações.')
def details(request, id):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    user_id = request.user.id

    if not verify_permission(152, user_id):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    try:
        product = Produtos.objects.filter(id=id, id_matriz=id_matriz).first()
        product_serialized = ProdutoSerializer(product)
        return Response(product_serialized.data)
    except:
        raise exceptions.APIException(
            'Não foi possível retornar os dados do produto.')
Beispiel #10
0
def get_all(request):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    id_user = request.user.id

    if not verify_permission(139, id_user):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    try:
        fabricantes = Fabpro.objects.filter(instit=id_matriz)
        fabricantes_serialized = FabricanteProdutoSerializer(fabricantes,
                                                             many=True)

        return Response(fabricantes_serialized.data)
    except:
        raise exceptions.NotFound('Não foi possível pesquisar os fabricantes.')
def get_all(request):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    user_id = request.user.id

    if not verify_permission(145, user_id):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    try:
        groups = ProdGrp.objects.filter(instit=id_matriz)
        groups_serialized = GrupoProdutoSerializer(groups, many=True)

        return Response(groups_serialized.data)
    except:
        raise exceptions.APIException(
            'Não foi possível retornar os dados dos grupos dos produtos.')
def get_all(request):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    user_id = request.user.id

    if not verify_permission(110, user_id):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    try:
        produtos = Produtos.objects.filter(
            id_matriz=id_matriz).order_by('descr').order_by('-ativo')
        produtos_serialized = ProdutoSerializer(produtos, many=True)
        return Response(produtos_serialized.data)
    except:
        raise exceptions.APIException(
            'Não foi possível pesquisar os produtos.')
def details(request, id):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    user_id = request.user.id

    if not verify_permission(145, user_id):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    try:
        group = ProdGrp.objects.filter(instit=id_matriz, id=id).first()

        group_serialized = GrupoProdutoSerializer(group)

        return Response(group_serialized.data)
    except:
        raise exceptions.APIException(
            'Não foi possível retornar os dados do grupo, tente novamente.')
Beispiel #14
0
def find_by_brand(request, brand):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    # id_user = request.user.id

    # if not verify_permission(110, user_id):
    #     raise exceptions.PermissionDenied(
    #         'Você não tem permissões para realizar esta operação.')

    fabricante = Fabpro.objects.filter(instit=id_matriz, marca__contains=brand)

    if not fabricante:
        raise exceptions.NotFound(
            'Nenhum fabricante foi encontrado com esta marca')

    fabricante_serialized = FabricanteProdutoSerializer(fabricante, many=True)

    return Response(fabricante_serialized.data)
def get_groups(request):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)

    try:
        groups = []
        data = ProdGrp.objects.filter(instit=id_matriz).order_by('nv1').values(
            'id', 'nv2').distinct()

        i = 0
        for g in data:
            if len(groups) == 0:
                groups.append(dict(id=g['id'], nv2=g['nv2']))

            while groups[i]['nv2'] != g['nv2']:
                groups.append(dict(id=g['id'], nv2=g['nv2']))
                i += 1

        return Response(groups)
    except:
        raise exceptions.APIException(
            'Não foi possível retornar os dados dos grupos do produto.')
def get_sections(request):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)

    try:
        sections = []
        groups = ProdGrp.objects.filter(
            instit=id_matriz).order_by('nv1').values('id', 'nv1').distinct()

        i = 0
        for g in groups:
            if len(sections) == 0:
                sections.append(dict(id=g['id'], nv1=g['nv1']))

            while sections[i]['nv1'] != g['nv1']:
                sections.append(dict(id=g['id'], nv1=g['nv1']))
                i += 1

        return Response(sections)
    except:
        raise exceptions.APIException(
            'Não foi possível retornar os dados de seções de produto.')
def find_products(request, condition):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    estoque = []

    try:
        produtos = Produtos.objects.filter(
            Q(id_matriz=id_matriz, descres__contains=condition) |
            Q(id_matriz=id_matriz, descr__contains=condition) |
            Q(id_matriz=id_matriz, codprod__contains=condition)
        )
        produtos_serialized = ProdutoSerializer(produtos, many=True)

        for produto in produtos_serialized.data:
            dados = ProdItens.objects.filter(id_instit=id_institution, ativo=2, id_produtos=produto['id']).values(
                'id', 'id_produtos', 'est_frente', 'prvenda1', 'prvenda2', 'prvenda3', 'locavel').get()
            estoque.append(dados)

        return Response({'produtos': produtos_serialized.data, 'estoque': estoque})
    except:
        raise exceptions.APIException(
            'Não foi possível encontrar os produtos.', status.HTTP_500_INTERNAL_SERVER_ERROR)
def create(request):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    product_code = generate_product_code(id_matriz)
    user_id = request.user.id

    if not verify_permission(5, user_id):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    try:
        product = Produtos(
            id_matriz=id_matriz,
            codprod=product_code,
            ativo=request.data.get('ativo'),
            descr=request.data.get('descr'),
            descres=request.data.get('descres'),
            und=request.data.get('und'),
            grupo=request.data.get('grupo'),
            tam=request.data.get('tam'),
            larg=request.data.get('larg'),
            alt=request.data.get('alt'),
            cubag=request.data.get('cubag'),
            peso=request.data.get('peso'),
            codbarra=request.data.get('codbarra'),
            fabr=request.data.get('fabr'),
            forn=request.data.get('forn'),
            caract=request.data.get('caract'),
            ncm=request.data.get('ncm'),
            cest=request.data.get('cest'),
            desnf=request.data.get('desnf'),
            foto=request.data.get('foto'),
            usuatz=user_id
        )

        product.save()
    except Exception:
        raise Exception
        # raise exceptions.APIException(
        #     'Não foi possível cadastrar o produto, tente novamente.')

    try:
        product_item = ProdItens(
            id_produtos=product.id,
            id_instit=id_institution,
            id_matriz=id_matriz,
            codprod=product_code,
            ativo=request.data.get('ativo'),
            bxest=request.data.get('bxest'),
            est_minimo=request.data.get('est_minimo'),
            est_fiscal=request.data.get('est_fiscal'),
            est_frente=request.data.get('est_frente'),
            est_dep1=request.data.get('est_dep1'),
            est_dep2=request.data.get('est_dep2'),
            est_dep3=request.data.get('est_dep3'),
            compra=request.data.get('compra'),
            frete=request.data.get('frete'),
            ipi=request.data.get('ipi'),
            aliq=request.data.get('aliq'),
            custo=request.data.get('custo'),
            lucro=request.data.get('lucro'),
            prvenda1=request.data.get('prvenda1'),
            prvenda2=request.data.get('prvenda2'),
            prvenda3=request.data.get('prvenda3'),
            locavel=request.data.get('locavel'),
            prloc=request.data.get('prloc'),
            vdatac=request.data.get('vdatac'),
            qtdatac=request.data.get('qtdatac'),
            pratac=request.data.get('pratac'),
            loc_frente=request.data.get('loc_frente'),
            loc_dep1=request.data.get('loc_dep1'),
            loc_dep2=request.data.get('loc_dep2'),
            loc_dep3=request.data.get('loc_dep3'),
            comissao_atv=request.data.get('comissao_atv'),
            comissao_val=request.data.get('comissao_val'),
            usuatz=user_id
        )

        product_item.save()
    except Exception:
        raise Exception
        # raise exceptions.APIException(
        #     'Não foi possível cadastrar os itens do produto, tente novamente.')

    return Response({'detail': 'Cadastro feito com sucesso.', 'product_id': product.id})
def update(request, id):
    id_institution = request.user.instit_id
    id_matriz = search_matriz(id_institution)
    user_id = request.user.id

    if not verify_permission(144, user_id):
        raise exceptions.PermissionDenied(
            'Você não tem permissões para realizar esta operação.')

    try:
        product = Produtos.objects.get(id=id, id_matriz=id_matriz)

        product.ativo = request.data.get('ativo')
        product.descr = request.data.get('descr')
        product.descres = request.data.get('descres')
        product.und = request.data.get('und')
        product.grupo = request.data.get('grupo')
        product.tam = request.data.get('tam')
        product.larg = request.data.get('larg')
        product.alt = request.data.get('alt')
        product.cubag = request.data.get('cubag')
        product.peso = request.data.get('peso')
        product.codbarra = request.data.get('codbarra')
        product.fabr = request.data.get('fabr')
        product.forn = request.data.get('forn')
        product.caract = request.data.get('caract')
        product.ncm = request.data.get('ncm')
        product.cest = request.data.get('cest')
        product.desnf = request.data.get('desnf')
        product.foto = request.data.get('foto')
        product.usuatz = user_id

        product.save()
    except:
        raise exceptions.APIException(
            'Não foi possível cadastrar o produto, tente novamente.')

    try:
        product_item = ProdItens.objects.get(
            id_produtos=id, id_matriz=id_matriz)

        product_item.ativo = request.data.get('ativo')
        product_item.bxest = request.data.get('bxest')
        product_item.est_minimo = request.data.get('est_minimo')
        product_item.est_fiscal = request.data.get('est_fiscal')
        product_item.est_frente = request.data.get('est_frente')
        product_item.est_dep1 = request.data.get('est_dep1')
        product_item.est_dep2 = request.data.get('est_dep2')
        product_item.est_dep3 = request.data.get('est_dep3')
        product_item.compra = request.data.get('compra')
        product_item.frete = request.data.get('frete')
        product_item.ipi = request.data.get('ipi')
        product_item.aliq = request.data.get('aliq')
        product_item.custo = request.data.get('custo')
        product_item.lucro = request.data.get('lucro')
        product_item.prvenda1 = request.data.get('prvenda1')
        product_item.prvenda2 = request.data.get('prvenda2')
        product_item.prvenda3 = request.data.get('prvenda3')
        product_item.locavel = request.data.get('locavel')
        product_item.prloc = request.data.get('prloc')
        product_item.vdatac = request.data.get('vdatac')
        product_item.qtdatac = request.data.get('qtdatac')
        product_item.pratac = request.data.get('pratac')
        product_item.loc_frente = request.data.get('loc_frente')
        product_item.loc_dep1 = request.data.get('loc_dep1')
        product_item.loc_dep2 = request.data.get('loc_dep2')
        product_item.loc_dep3 = request.data.get('loc_dep3')
        product_item.comissao_atv = request.data.get('comissao_atv')
        product_item.comissao_val = request.data.get('comissao_val')
        product_item.usuatz = user_id

        product_item.save()
    except:
        raise exceptions.APIException(
            'Não foi possível cadastrar os itens do produto, tente novamente.')

    return Response({'detail': 'Registro atualizado com sucesso.'})