Пример #1
0
def getOrders(path, columns):
    with open(path) as file:
        prevRow = list()
        parsedRows = list()
        reader = csv.reader(file)
        next(reader) # skip header row
        data = sorted(reader, key=operator.itemgetter(0))

        for row in data:

            if len(row) < 2 or (prevRow and row[0] == prevRow[0]):
                continue # skip if < 2 cols or same order as prev row

            # create a new ordered dictionary to hold the row info
            newRow = collections.OrderedDict.fromkeys(columns)

            newRow['companyCode'] = 112 # marvellous
            newRow['merchantID'] = 42

            newRow['completeOrderReference'] = validate.clean(row[0])
            newRow['shortOrderReference'] = validate.clean(row[0])
            newRow["originFile"] = os.path.basename(path)
            newRow['fullName'] = validate.clean(row[17])
            newRow['phoneNumber'] = validate.phone(row[7])
            newRow['address1'] = validate.clean(row[18])
            newRow['address2'] = validate.clean(row[19])
            newRow['town'] = validate.clean(row[20])
            newRow['packingSlip'] = 1
            
            newRow['country'] = validate.country(validate.clean(row[23]))
            if not newRow['country']:
                msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(path) + "' was skipped.\n"
                msg += 'Could not validate country: ' + row[23]
                errors.append(msg)
                continue

            newRow['region'] = validate.region(validate.clean(row[21]), newRow['country'])
            if not newRow['region']:
                msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(path) + "' was skipped.\n"
                msg += 'Could not validate region: ' + row[21]
                errors.append(msg)
                continue

            newRow['postCode'] = validate.postCode(validate.clean(row[22]), newRow['country'])
            if not newRow['postCode']:
                msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(path) + "' was skipped.\n"
                msg += 'Could not validate post code: ' + row[22]
                errors.append(msg)
                continue

            if len(columns) == len(newRow):
                parsedRows.append(list(newRow.values()))
            else:
                print("Oops, Restaurant order parser added a column")
                quit()

            prevRow = row

    print("\nImported " + str(len(parsedRows)) + " orders from Restaurant file '" + os.path.basename(path) + "'")
    return parsedRows
Пример #2
0
    def getOrders(self, columns):

        with open(self.file) as file:
            prevRow = list()
            parsedRows = list()
            reader = csv.reader(file)
            next(reader)  # skip header row

            for row in reader:

                if len(row) < 2 or (prevRow and row[0] == prevRow[0]):
                    continue  # skip if < 2 cols or same order as prev row

                # create a new ordered dictionary to hold the row info
                newRow = collections.OrderedDict.fromkeys(columns)

                # set company and market
                self.companyCode = row[2]
                self.marketId = row[0][:2]
                self.market = row[0][3:]

                newRow[
                    'marketId'] = self.market  # save market id for confirmations
                newRow['companyCode'] = self.companyCode
                newRow['merchantID'] = self.getMarketParam('merchantID')
                if not newRow['merchantID']: continue
                newRow['completeOrderReference'] = validate.clean(row[1])
                newRow['shortOrderReference'] = validate.shortenPossibleAmazon(
                    row[1])
                newRow['fullName'] = validate.clean(row[3])
                newRow["originFile"] = os.path.basename(self.file)
                newRow['phoneNumber'] = validate.phone(row[4])
                newRow['address1'] = validate.clean(row[5])
                newRow['address2'] = validate.clean(row[6])
                newRow['town'] = validate.clean(row[7])
                newRow['packingSlip'] = 1

                newRow['country'] = validate.country(validate.clean(row[10]))
                if not newRow['country']:
                    msg = newRow[
                        'completeOrderReference'] + " from file '" + os.path.basename(
                            self.file) + "' was skipped.\n"
                    msg += 'Could not validate country: ' + row[10]
                    self.errors.add(msg)
                    continue

                newRow['region'] = validate.region(validate.clean(row[8]),
                                                   newRow['country'])
                if not newRow['region']:
                    msg = newRow[
                        'completeOrderReference'] + " from file '" + os.path.basename(
                            self.file) + "' was skipped.\n"
                    msg += 'Could not validate region: ' + row[8]
                    self.errors.add(msg)
                    continue

                newRow['postCode'] = validate.postCode(validate.clean(row[9]),
                                                       newRow['country'])
                if not newRow['postCode']:
                    msg = newRow[
                        'completeOrderReference'] + " from file '" + os.path.basename(
                            self.file) + "' was skipped.\n"
                    msg += 'Could not validate post code: ' + row[9]
                    self.errors.add(msg)
                    continue

                if len(columns) == len(newRow):
                    parsedRows.append(list(newRow.values()))
                else:
                    print("Oops, standard order parser added a column")
                    quit()

                prevRow = row

        print("\nImported " + str(len(parsedRows)) + " orders from " +
              self.market + " file '" + os.path.basename(self.file) + "'")
        return parsedRows
Пример #3
0
def getOrders(path, columns):
    with open(path) as file:
        prevRow = list()
        parsedRows = list()
        reader = csv.reader(file)
        next(reader)  # skip header row

        for row in reader:

            if len(row) < 2 or (prevRow and row[0] == prevRow[0]):
                continue  # skip if < 2 cols or same order as prev row

            # create a new ordered dictionary to hold the row info
            newRow = collections.OrderedDict.fromkeys(columns)

            newRow['companyCode'] = 112  # marvellous
            newRow['merchantID'] = 45
            newRow['completeOrderReference'] = validate.clean(row[0])
            newRow['shortOrderReference'] = validate.clean(row[0])
            newRow["originFile"] = os.path.basename(path)
            newRow['fullName'] = validate.clean(row[5]) + ' ' + validate.clean(
                row[6])
            newRow['phoneNumber'] = validate.phone(row[13])
            newRow['address1'] = validate.clean(row[7])
            newRow['address2'] = validate.clean(row[8])
            newRow['town'] = validate.clean(row[9])
            newRow['packingSlip'] = 1

            newRow['country'] = validate.country(validate.clean(
                row[12])) or 'US'
            if not newRow['country']:
                msg = newRow[
                    'completeOrderReference'] + " from file '" + os.path.basename(
                        path) + "' was skipped.\n"
                msg += 'Could not validate country: ' + row[12]
                errors.append(msg)
                continue

            newRow['region'] = validate.region(validate.clean(row[10]),
                                               newRow['country'])
            if not newRow['region']:
                msg = newRow[
                    'completeOrderReference'] + " from file '" + os.path.basename(
                        path) + "' was skipped.\n"
                msg += 'Could not validate region: ' + row[10]
                errors.append(msg)
                continue

            newRow['postCode'] = validate.postCode(validate.clean(row[11]),
                                                   newRow['country'])
            if not newRow['postCode']:
                msg = newRow[
                    'completeOrderReference'] + " from file '" + os.path.basename(
                        path) + "' was skipped.\n"
                msg += 'Could not validate post code: ' + row[11]
                errors.append(msg)
                continue

            if len(columns) == len(newRow):
                parsedRows.append(list(newRow.values()))
            else:
                print("Oops, Dealchicken order parser added a column")
                quit()

            prevRow = row

    print("\nImported " + str(len(parsedRows)) +
          " orders from Dealchicken file '" + os.path.basename(path) + "'")
    return parsedRows
Пример #4
0
    def getOrders(self, columns):

        with open(self.file) as file:
            prevRow = list()
            parsedRows = list()
            reader = csv.reader(file)
            next(reader) # skip header row

            for row in reader:

                if len(row) < 2 or (prevRow and row[0] == prevRow[0]):
                    continue # skip if < 2 cols or same order as prev row

                # create a new ordered dictionary to hold the row info
                newRow = collections.OrderedDict.fromkeys(columns)

                # set company and market
                self.companyCode = row[2]
                self.marketId = row[0][:2]
                self.market = row[0][3:]


                newRow['marketId'] = self.market # save market id for confirmations
                newRow['companyCode'] = self.companyCode
                newRow['merchantID'] = self.getMarketParam('merchantID')
                if not newRow['merchantID']: continue
                newRow['completeOrderReference'] = validate.clean(row[1])
                newRow['shortOrderReference'] = validate.shortenPossibleAmazon(row[1])
                newRow['fullName'] = validate.clean(row[3])
                newRow["originFile"] = os.path.basename(self.file)
                newRow['phoneNumber'] = validate.phone(row[4])
                newRow['address1'] = validate.clean(row[5])
                newRow['address2'] = validate.clean(row[6])
                newRow['town'] = validate.clean(row[7])
                newRow['packingSlip'] = 1
                
                newRow['country'] = validate.country(validate.clean(row[10]))
                if not newRow['country']:
                    msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(self.file) + "' was skipped.\n"
                    msg += 'Could not validate country: ' + row[10]
                    self.errors.add(msg)
                    continue

                newRow['region'] = validate.region(validate.clean(row[8]), newRow['country'])
                if not newRow['region']:
                    msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(self.file) + "' was skipped.\n"
                    msg += 'Could not validate region: ' + row[8]
                    self.errors.add(msg)
                    continue

                newRow['postCode'] = validate.postCode(validate.clean(row[9]), newRow['country'])
                if not newRow['postCode']:
                    msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(self.file) + "' was skipped.\n"
                    msg += 'Could not validate post code: ' + row[9]
                    self.errors.add(msg)
                    continue

                if len(columns) == len(newRow):
                    parsedRows.append(list(newRow.values()))
                else:
                    print("Oops, standard order parser added a column")
                    quit()

                prevRow = row

        print("\nImported " + str(len(parsedRows)) + " orders from "+self.market+" file '" + os.path.basename(self.file) + "'")
        return parsedRows
Пример #5
0
def getOrders(path, columns):

    with open(path) as file:
        prevRow = list()
        parsedRows = list()
        reader = csv.reader(file)
        next(reader)  # skip header row

        for row in reader:

            if len(row) < 2 or not row[0]:
                continue  # skip if < 2 cols no order number

            # create a new ordered dictionary to hold the row info
            newRow = collections.OrderedDict.fromkeys(columns)

            company = os.path.split(os.path.dirname(path))[1]
            if company.upper() == 'BETAFRESH':
                newRow['companyCode'] = 113
            elif company.upper() == 'MARVELLOUS':
                newRow['companyCode'] = 112
            else:
                print('Unknown company:' + company)
                quit()

            newRow['merchantID'] = 36
            newRow['completeOrderReference'] = validate.clean(row[0])
            newRow['shortOrderReference'] = validate.clean(row[0])
            newRow["originFile"] = os.path.basename(path)
            newRow['fullName'] = validate.clean(row[6])
            newRow['phoneNumber'] = validate.phone(row[40])
            newRow['address1'] = validate.clean(row[7])
            newRow['address2'] = validate.clean(row[8])
            newRow['town'] = validate.clean(row[9])
            newRow['packingSlip'] = 1

            newRow['country'] = validate.country(validate.clean(row[12]))
            if not newRow['country']:
                msg = newRow[
                    'completeOrderReference'] + " from file '" + os.path.basename(
                        path) + "' was skipped.\n"
                msg += 'Could not validate country: ' + row[12]
                errors.append(msg)
                continue

            newRow['region'] = validate.region(validate.clean(row[10]),
                                               newRow['country'])
            if not newRow['region']:
                msg = newRow[
                    'completeOrderReference'] + " from file '" + os.path.basename(
                        path) + "' was skipped.\n"
                msg += 'Could not validate region: ' + row[10]
                errors.append(msg)
                continue

            newRow['postCode'] = validate.postCode(validate.clean(row[11]),
                                                   newRow['country'])
            if not newRow['postCode']:
                msg = newRow[
                    'completeOrderReference'] + " from file '" + os.path.basename(
                        path) + "' was skipped.\n"
                msg += 'Could not validate post code: ' + row[11]
                errors.append(msg)
                continue

            if len(columns) == len(newRow):
                parsedRows.append(list(newRow.values()))
            else:
                print("Oops, Groupon order parser added a column")
                quit()

    print("\nImported " + str(len(parsedRows)) +
          " orders from Groupon file '" + os.path.basename(path) + "'")
    return parsedRows
Пример #6
0
def getOrders(path, columns):
    with open(path) as file:
        prevRow = list()
        parsedRows = list()
        reader = csv.reader(file)
        next(reader) # skip header row

        for row in reader:

            if len(row) < 2 or (prevRow and row[0] == prevRow[0]):
                continue # skip if < 2 cols or same order as prev row

            # create a new ordered dictionary to hold the row info
            newRow = collections.OrderedDict.fromkeys(columns)

            newRow['companyCode'] = 112 # marvellous
            newRow['merchantID'] = 36

            if validate.clean(row[1]).lower() == "ellorefemme.com":
                newRow['merchantDivisionCode'] = 1
            elif validate.clean(row[1]).lower() == "widgetlove.com":
                newRow['merchantDivisionCode'] = 2

            newRow['completeOrderReference'] = validate.clean(row[0])
            newRow['shortOrderReference'] = validate.shortenPossibleAmazon(row[0])
            newRow['fullName'] = validate.clean(row[3]) + ' ' + validate.clean(row[4])
            newRow["originFile"] = os.path.basename(path)
            newRow['phoneNumber'] = validate.phone(row[10])
            newRow['address1'] = validate.clean(row[5])
            newRow['town'] = validate.clean(row[6])
            newRow['packingSlip'] = 1
            
            newRow['country'] = validate.country(validate.clean(row[9]))
            if not newRow['country']:
                msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(path) + "' was skipped.\n"
                msg += 'Could not validate country: ' + row[9]
                errors.append(msg)
                continue

            newRow['region'] = validate.region(validate.clean(row[7]), newRow['country'])
            if not newRow['region']:
                msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(path) + "' was skipped.\n"
                msg += 'Could not validate region: ' + row[7]
                errors.append(msg)
                continue

            newRow['postCode'] = validate.postCode(validate.clean(row[8]), newRow['country'])
            if not newRow['postCode']:
                msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(path) + "' was skipped.\n"
                msg += 'Could not validate post code: ' + row[8]
                errors.append(msg)
                continue

            if len(columns) == len(newRow):
                parsedRows.append(list(newRow.values()))
            else:
                print("Oops, LTM order parser added a column")
                quit()

            prevRow = row

    print("\nImported " + str(len(parsedRows)) + " orders from Lightake file '" + os.path.basename(path) + "'")
    return parsedRows
Пример #7
0
def getOrders(path, columns):
    with open(path) as file:
        prevRow = list()
        parsedRows = list()
        reader = csv.reader(file)
        next(reader) # skip header row

        for row in reader:

            if len(row) < 2 or (prevRow and row[0] == prevRow[0]):
                continue # skip if < 2 cols or same order as prev row

            # create a new ordered dictionary to hold the row info
            newRow = collections.OrderedDict.fromkeys(columns)

            newRow['companyCode'] = 112
            newRow['merchantID'] = 39
            newRow['completeOrderReference'] = validate.clean(row[0])
            newRow['shortOrderReference'] = validate.clean(row[0])
            newRow["originFile"] = os.path.basename(path)
            newRow['fullName'] = validate.clean(row[3]) + ' ' + validate.clean(row[4])
            newRow['phoneNumber'] = validate.phone(row[12])
            newRow['address1'] = validate.clean(row[7])
            newRow['address2'] = validate.clean(row[8])
            newRow['town'] = validate.clean(row[9])
            newRow['packingSlip'] = 1

            if validate.postCode(validate.clean(row[11]), 'US') and validate.region(validate.clean(row[10]), 'US'):

                newRow['country'] = 'US'

            elif validate.postCode(validate.clean(row[11]), 'CA') and validate.region(validate.clean(row[10]), 'CA'):

                newRow['country'] = 'CA'

            else:
                msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(path) + "' was skipped.\n"
                msg += 'Could not determine a country'
                errors.append(msg)
                continue

            newRow['region'] = validate.region(validate.clean(row[10]), newRow['country'])
            if not newRow['region']:
                msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(path) + "' was skipped.\n"
                msg += 'Could not validate region: ' + row[10]
                errors.append(msg)
                continue

            newRow['postCode'] = validate.postCode(validate.clean(row[11]), newRow['country'])
            if not newRow['postCode']:
                msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(path) + "' was skipped.\n"
                msg += 'Could not validate post code: ' + row[11]
                errors.append(msg)
                continue

            if len(columns) == len(newRow):
                parsedRows.append(list(newRow.values()))
            else:
                print("Oops, Ncrowd order parser added a column")
                quit()

            prevRow = row

    print("\nImported " + str(len(parsedRows)) + " orders from Ncrowd file '" + os.path.basename(path) + "'")
    return parsedRows
Пример #8
0
def getOrders(path, columns):

    with open(path) as file:
        prevRow = list()
        parsedRows = list()
        reader = csv.reader(file)
        next(reader) # skip header row

        for row in reader:


            if len(row) < 2 or not row[0]:
                continue # skip if < 2 cols no order number

            # create a new ordered dictionary to hold the row info
            newRow = collections.OrderedDict.fromkeys(columns)

            company = os.path.split(os.path.dirname(path))[1]
            if company.upper() == 'BETAFRESH':
                newRow['companyCode'] = 113
            elif company.upper() == 'MARVELLOUS':
                newRow['companyCode'] = 112
            else:
                print('Unknown company:' + company)
                quit()
                
            newRow['merchantID'] = 36
            newRow['completeOrderReference'] = validate.clean(row[0])
            newRow['shortOrderReference'] = validate.clean(row[0])
            newRow["originFile"] = os.path.basename(path)
            newRow['fullName'] = validate.clean(row[6])
            newRow['phoneNumber'] = validate.phone(row[40])
            newRow['address1'] = validate.clean(row[7])
            newRow['address2'] = validate.clean(row[8])
            newRow['town'] = validate.clean(row[9])
            newRow['packingSlip'] = 1
            
            newRow['country'] = validate.country(validate.clean(row[12]))
            if not newRow['country']:
                msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(path) + "' was skipped.\n"
                msg += 'Could not validate country: ' + row[12]
                errors.append(msg)
                continue

            newRow['region'] = validate.region(validate.clean(row[10]), newRow['country'])
            if not newRow['region']:
                msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(path) + "' was skipped.\n"
                msg += 'Could not validate region: ' + row[10]
                errors.append(msg)
                continue

            newRow['postCode'] = validate.postCode(validate.clean(row[11]), newRow['country'])
            if not newRow['postCode']:
                msg = newRow['completeOrderReference'] + " from file '" + os.path.basename(path) + "' was skipped.\n"
                msg += 'Could not validate post code: ' + row[11]
                errors.append(msg)
                continue

            if len(columns) == len(newRow):
                parsedRows.append(list(newRow.values()))
            else:
                print("Oops, Groupon order parser added a column")
                quit()

    print("\nImported " + str(len(parsedRows)) + " orders from Groupon file '" + os.path.basename(path) + "'")
    return parsedRows