예제 #1
0
    def ProcessButton(Barra_Progesso):
        Barra_Progesso.setValue(0)
        TXTStatus.setText('')

        connection = dabaseRepository.createConection()
        origem = TXTOrigem.text()
        destino = TXTDestino.text()
        CompanyName = ActiveCNPJ.text()

        Params = {
            'conn': connection,
            'origem': origem,
            'destino': destino,
            'Barra_Progesso': Barra_Progesso,
            'CompanyName': CompanyName
        }

        if CompanyName:

            if not origem or not destino:
                TXTStatus.setText('Caminho(s) não definidos')
                return

            response = CalcularICMSRessarcimento(Params)
            if response:

                TXTStatus.setText('Processo concluido')

        else:

            TXTStatus.setText('Nenhuma empresa foi ativada')

        connection.close()
def ReturnCadastroProdutos(params):

    Barra_Progesso = params['Barra_Progresso']
    CompanyName = params['CompanyName']
   
    Cadastro_Produtos = []

    connection = dabaseRepository.createConection()
    produtos = DBRepository.FindCadastroProdutos(connection, CompanyName)

    if type(produtos)== list:

        for produto in produtos:
            
            if produto[6] != "":

                Cadastro_Produtos.append({
                    "COD_ITEM": produto[0],
                    "DESCR_ITEM":produto[1],
                    "COD_BARRA":produto[2],
                    "UNID_INV":produto[3],
                    "COD_NCM":produto[4],
                    "ALIQ_ICMS":produto[5],
                    "CEST":produto[6],
                })
                        
    return Cadastro_Produtos
예제 #3
0
    def listButtonChanges(TXTListEmpresa, listButton, TXTEditEmpresa, TXTEditCNPJ):
        conection = dabaseRepository.createConection()

        cnpj = listButton.currentText()
        companyName = EditarRepository.OneCompany(conection, cnpj)

        TXTListEmpresa.setText(companyName[0][1])

        TXTEditEmpresa.setText(companyName[0][1])
        TXTEditCNPJ.setText(companyName[0][0])

        conection.close()
예제 #4
0
    def listCompanyName(listButton):
        conection = dabaseRepository.createConection()

        listOfCompany = EditarRepository.AllCompany(conection)
        arrListOfCompany = []

        for company in listOfCompany:
            arrListOfCompany.append(company[0])
            
        listButton.addItems(arrListOfCompany)

        conection.close()
예제 #5
0
    def SaveButtonClicked(Barra_Progesso):
        Barra_Progesso.setValue(0)

        connection = dabaseRepository.createConection()
        path = TXTOrigem.text()
        
        Params = {
            'conn': connection,
            'caminho': path, 
            'cnpj': ActiveCNPJ, 
            'barra': Barra_Progesso,
            'Screen': Screen
            }

        response = saveXML(Params)
예제 #6
0
    def RemoveButtonClicked(LabelStatus, listButton):
        cnpj = listButton.currentText()
        conection = dabaseRepository.createConection()

        if cnpj:
            

            Result = EditarRepository.Remove(conection, cnpj)

            if Result:
                LabelStatus.setText('Processo concluido')

        else:

            LabelStatus.setText('Dados invalidos')
    def SaveButtonClicked(Barra_Progesso):
        Barra_Progesso.setValue(0)

        connection = dabaseRepository.createConection()
        path = TXTOrigem.text()

        Params = {
            'Origem': path,
            'CompanyName': ActiveCNPJ,
            'Barra_Progesso': Barra_Progesso,
            'Screen': Screen
        }

        response = ReadRegistroH010(Params)
        print('processo terminado')
        connection.close()
    def SaveButtonClicked(Barra_Progesso):
        Barra_Progesso.setValue(0)

        connection = dabaseRepository.createConection()
        Origem = TXTOrigem.text()
        Destino = TXTDestino.text()
        cnpj = ActiveCNPJ.text()
        Params = {
            'conn': connection,
            'Origem': Origem,
            'Destino': Destino,
            'CompanyName': cnpj,
            'Barra_Progresso': Barra_Progesso,
            'Screen': Screen
        }

        response = ProcessarSaldoInicial(Params)
        print('processo concluido')
def ReadCodigoRelacionamento(params):

    origem = params['Origem']
    Barra_Progesso = params['Barra_Progesso']
    CompanyName = params['CompanyName'].text()

    Arquivos = os.listdir(origem)

    connection = dabaseRepository.createConection()

    for SPED in Arquivos:

        with open(os.path.join(origem, SPED), mode='r', encoding='utf-8') as F:

            totalLinhas = len(F.readlines())
        linha = 0

        with open(os.path.join(origem, SPED), mode='r',
                  encoding='utf-8') as File:

            for lineItem in File:

                if len(lineItem) > 1:

                    CodItem, CNPJ, CodForn = lineItem.split(';')

                    ExistentRegister = Repository.FindOne(
                        conn=connection,
                        companyName=CompanyName,
                        Item=CodItem,
                        CNPJ=CNPJ)
                    if not ExistentRegister:
                        txt = [CodItem, CNPJ, CodForn.strip('0')]
                        print(txt)
                        Repository.Save(conn=connection,
                                        companyName=CompanyName,
                                        relation=txt)

                    linha += 1
                    valor = (linha / totalLinhas) * 100

                    Barra_Progesso.setValue(valor)
    def ProcessButton(Barra_Progesso):
        Barra_Progesso.setValue(0)

        connection = dabaseRepository.createConection()
        cnpj = ActiveCNPJ.text()
        origem = TXTOrigem.text()
        destino = TXTDestino.text()

        Params = {
            'conn': connection,
            'origem': origem,
            'destino': destino,
            'cnpj': cnpj,
            'barra': Barra_Progesso,
            'Screen': Screen
            }

        response = corrgirCest(Params)
        if response:
            print('processo terminado')
            
        connection.close()
    def ProcessButton(Barra_Progesso):
        Barra_Progesso.setValue(0)

        connection = dabaseRepository.createConection()
        cnpj = ActiveCNPJ.text()
        origem = TXTOrigem.text()
        destino = TXTDestino.text()
        ComapanyName = ActiveCNPJ.text()

        Params = {
            'conn': connection,
            'origem': origem,
            'destino': destino,
            'cnpj': cnpj,
            'barra': Barra_Progesso,
            'ComapanyName': ComapanyName
        }

        response = Adicionar0220Feature(Params)

        if response:
            print('processo terminado')

        connection.close()
예제 #12
0
def ProcessarSaldoInicial(params):

    origem = params['Origem']
    Destino = params['Destino']
    Barra_Progresso = params['Barra_Progresso']
    CompanyName = params['CompanyName']

    Params_registroH010 = {
        "Origem": origem,
        "Destino": Destino,
        "Barra_Progresso": Barra_Progresso,
        "CompanyName": CompanyName
    }

    Connection = dabaseRepository.createConection()
    produtos = ReturnCadastroProdutos(params)

    for produto in produtos:

        ItemInH010 = ReturnItemInH010(Connection, CompanyName,
                                      produto['COD_ITEM'])

        if ItemInH010:

            XMLInC170 = ReturnRegistroC170(Connection, CompanyName,
                                           produto['COD_ITEM'])

            if XMLInC170:

                dados = {
                    'Connection': Connection,
                    'CompanyName': CompanyName,
                    'XMLInC170': XMLInC170,
                    'EAN': produto['COD_BARRA'],
                    'Item': ItemInH010
                }

                productsWithStOrNot = ProcessarSaldo(dados)

                print(productsWithStOrNot)

                if productsWithStOrNot[0]['wasFound']:

                    if productsWithStOrNot[0]['isST']:

                        # Corrigir
                        produto.update({"QTD": ItemInH010[0]['QTD']})
                        produto.update(productsWithStOrNot[0])
                        print(produto)
                        with open(os.path.join(
                                Destino,
                                f"{CompanyName}-Buscar NFs anteriores"),
                                  mode='a') as FWork:
                            FWork.write(f"{produto}\n")

                    else:
                        print('Produto não e ST')
                        FileName = f"{CompanyName}- Itens não st"
                        txt = f"{produto['COD_ITEM']}|{produto['DESCR_ITEM']}|{produto['COD_BARRA']}|{produto['CEST']}"
                        with open(os.path.join(Destino, FileName),
                                  mode='a') as FWork:
                            FWork.write(f"{txt}\n")

                else:

                    FileName = f"{CompanyName}-Nenhum Arquivo XML de entrada encontrado"
                    txt = f"{produto['COD_ITEM']}|{produto['DESCR_ITEM']}|{produto['COD_BARRA']}|{produto['CEST']}"
                    with open(os.path.join(Destino, FileName),
                              mode='a') as FWork:
                        FWork.write(f"{txt}\n")

            else:

                FileName = f"{CompanyName}-Nenhum RegistroC170 foi encontrado"
                txt = f"{produto['COD_ITEM']}|{produto['DESCR_ITEM']}|{produto['COD_BARRA']}|{produto['CEST']}"
                with open(os.path.join(Destino, FileName), mode='a') as FWork:
                    FWork.write(f"{txt}\n")

        else:
            print('Produto não encontrado')

    return True
def SalvarRegistroH010(params):

    origem = params['Origem']
    Barra_Progesso = params['Barra_Progesso']
    CompanyName = params['CompanyName'].text()

    Arquivos = os.listdir(origem)

    connection = dabaseRepository.createConection()

    for SPED in Arquivos:

        with open(os.path.join(origem, SPED), mode='r', encoding='utf-8') as F:

            totalLinhas = len(F.readlines())
        linha = 0

        with open(os.path.join(origem, SPED), mode='r',
                  encoding='utf-8') as File:

            for lineItem in File:

                arrLine = lineItem.split('|')
                if arrLine[1] == 'H010':

                    COD_ITEM = arrLine[2]
                    UNID = arrLine[3]

                    if ',' in arrLine[4]:
                        arrQTD = arrLine[4].split(',')
                        convertedQTD = arrQTD[0] + '.' + arrQTD[1]
                        QTD = float(convertedQTD)

                    else:

                        QTD = float(arrLine[4])

                    VL_UNIT = arrLine[5]
                    VL_ITEM = arrLine[6]

                    dt_Emissao = '31032019'

                    EDay = int(dt_Emissao[0:2])
                    EMout = int(dt_Emissao[2:4])
                    EYear = int(dt_Emissao[4:])

                    date_Emissao = date(EYear, EMout, EDay).isoformat()

                    ExistentRegister = Repository.FindItemInH010(
                        connection, COD_ITEM, date_Emissao, CompanyName)

                    if not ExistentRegister:

                        txt = [
                            COD_ITEM, UNID, QTD, VL_UNIT, VL_ITEM, date_Emissao
                        ]

                        Response = Repository.Save(connection, CompanyName,
                                                   txt)

                linha += 1
                valor = (linha / totalLinhas) * 100

                Barra_Progesso.setValue(valor)