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
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
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
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
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
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
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
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