예제 #1
0
 def verbose_name(self):
     display_string =display.small_measurement(self.panel_depth) + " panel--" + display.retail_size(self.retail_size) +\
             "--" + self.coating.description
     if self.spray_color:
         display_string += "--" + self.spray_color.color
     if self.cradle_depth:
         display_string += "--cradled->depth: " + display.small_measurement(self.cradle_depth) +\
                 ", width: " + display.small_measurement(self.cradle_width)
     return display_string
예제 #2
0
 def verbose_name(self):
     display_string =display.small_measurement(self.panel_depth) + " panel--" + display.retail_size(self.retail_size) +\
             "--" + self.coating.description
     if self.spray_color:
         display_string += "--" + self.spray_color.color
     if self.cradle_depth:
         display_string += "--cradled->depth: " + display.small_measurement(self.cradle_depth) +\
                 ", width: " + display.small_measurement(self.cradle_width)
     return display_string
예제 #3
0
def get_current_sheet():
    '''
    Description
    -----------
    Returns the latest cutting sheet along with all of its information.
    If none exists, a new cutting sheet is created
    '''

    latestSheet = RetailCuttingSheet.objects.first()
    if (not latestSheet):
        new_sheet()

    latestSheet = RetailCuttingSheet.objects.order_by('-id')[0]

    entries = RetailCuttingSheetEntry.objects.filter(retail_cutting_sheet__id  = latestSheet.id)

    entry_list = []
    for entry in entries:
        instructions = RetailCuttingSheetInstruction.objects.filter(retail_cutting_sheet_entry__id = entry.id)
        instruction_list = []
        for instruction in instructions:
            new_instruction = RetailCuttingSheetInstructionDisplay(instruction.quantity,
                instruction.output_string,
                RetailCuttingPattern.objects.filter(id = instruction.retail_cutting_pattern_id)[0].cutting_instructions,
                )
            instruction_list.append(new_instruction)
        new_entry_display = RetailCuttingSheetEntryDisplay(entry.id, instruction_list,
                entry.coating.description, entry.coating.id,
                display.small_measurement(entry.panel_depth),
                entry.panel_depth_id, entry.is_cradled)
        entry_list.append(new_entry_display)

    return RetailCuttingSheetDisplay(latestSheet.id, entry_list)
예제 #4
0
def get_recipes_for_packs(item, sku):
    '''
    Description
    -----------
    Gets and returns the recipe for a pack whose item is specified by sku
    '''

    description = item.description
    packs = Pack.objects.filter(item__id=item.id)
    recipes = []
    for pack in packs:
        retail_size = RetailSize.objects.get(
            itemrecipe__pack__item__id=item.id)
        retail_size = display.retail_size(retail_size)

        panel_depth = PanelDepth.objects.get(
            itemrecipe__pack__item__id=item.id)
        panel_depth = display.small_measurement(panel_depth)
        case_quantity = item.case_quantity
        pack_quantity = Pack.objects.get(item__id=item.id).pack_quantity
        try:
            cradle_depth = CradleDepth.objects.get(
                itemrecipe__pack__item__id=item.id)
            cradle_width = CradleWidth.objects.get(
                itemrecipe__pack__item__id=item.id)
            cradle_depth = display.small_measurement(cradle_depth)
            cradle_width = display.small_measurement(cradle_width)
        except:
            cradle_width = 'n/a'
            cradle_depth = 'n/a'

        coating = Coating.objects.get(
            itemrecipe__pack__item__id=item.id).description
        if coating == 'Pastelbord':
            spray_color = SprayColor.objects.get(
                itemrecipe__pack__item__id=item.id).color
        else:
            spray_color = 'n/a'

        recipe = RecipeDisplay(sku, description, retail_size, panel_depth,
                               cradle_depth, cradle_width, spray_color,
                               coating, case_quantity, pack_quantity)
        recipes.append(recipe)

    return recipes
예제 #5
0
def get_recipe_for_single(item, sku):
    '''
    Description
    -----------
    Gets and returns recipe for items that do not have packs
    '''

    description = item.description
    retail_size = RetailSize.objects.get(itemrecipe__item__id=item.id)
    retail_size = display.retail_size(retail_size)

    panel_depth = PanelDepth.objects.get(itemrecipe__item__id=item.id)
    panel_depth = display.small_measurement(panel_depth)
    case_quantity = item.case_quantity
    try:
        pack_quantity = Pack.objects.get(item__id=item.id).pack_quantity
    except:
        pack_quantity = 1

    try:
        cradle_depth = CradleDepth.objects.get(itemrecipe__item__id=item.id)
        cradle_depth = display.small_measurement(cradle_depth)
        cradle_width = CradleWidth.objects.get(itemrecipe__item__id=item.id)
        cradle_width = display.small_measurement(cradle_width)
    except:
        cradle_width = 'n/a'
        cradle_depth = 'n/a'

    coating = Coating.objects.get(itemrecipe__item__id=item.id).description
    if coating == 'Pastelbord':
        spray_color = SprayColor.objects.get(
            itemrecipe__item__id=item.id).color
    else:
        spray_color = 'n/a'

    recipe = RecipeDisplay(sku, description, retail_size, panel_depth,
                           cradle_depth, cradle_width, spray_color, coating,
                           case_quantity, pack_quantity)
    return recipe
예제 #6
0
def review_instructions(coating_id, panel_depth_id):
    entries, sheet_id = retrieve_entries(coating_id, panel_depth_id)

    instructions = RetailCuttingSheetInstruction.objects.filter(retail_cutting_sheet_entry_id__in = \
                        entries).order_by('retail_cutting_pattern__cutting_instructions')
    output_list = []
    for instruction in instructions:
        cutting_pattern = RetailCuttingPattern.objects.get(id = \
                                instruction.retail_cutting_pattern_id)
        coating_size_id = instruction.retail_cutting_pattern.coating_size.id
        instruction_string = instruction.retail_cutting_pattern.cutting_instructions
        quantity = instruction.quantity
        cutting_pattern_id = instruction.retail_cutting_pattern_id
        outputs = RetailCuttingPatternOutput.objects.filter(retail_cutting_pattern_id = \
                            cutting_pattern_id)
        cutting_pattern = RetailCuttingPattern.objects.get(
            id=cutting_pattern_id)
        outputString = ''
        for output in outputs:
            retail_size_display = display.retail_size(
                RetailSize.objects.get(id=output.retail_size_id))
            outputString = outputString + retail_size_display + \
                (' cradled' if output.is_for_cradle else ' flat') + ' (' + str(output.quantity) + '), '

        tercero = CoatingSize.objects.get(id=coating_size_id)
        terceroDisplay = ''
        total_tercero_quantity = 0
        terceroDisplay = ', ' + instruction.retail_cutting_pattern.grade + \
                            ' (' + str(quantity) + '), '
        terceroDisplay = display.tercero_size(tercero) + terceroDisplay
        if (len(terceroDisplay) > 2):
            terceroDisplay = terceroDisplay[:(len(terceroDisplay) - 2)]
        coating_description = Coating.objects.filter(
            id=coating_id)[0].description
        panel_depth = PanelDepth.objects.get(id=panel_depth_id)
        firstI = cutting_pattern.cutting_instructions.index('I')
        instructionIndent = ''
        for i in range(0, firstI + 8):
            instructionIndent = instructionIndent + ' '
        pattern_display_string = cutting_pattern.cutting_instructions.replace(
            '___', '<br/>' + instructionIndent)
        pattern_display_string = pattern_display_string.replace(' ', '&nbsp')
        pattern_display_string = pattern_display_string.replace('->', '-&gt')
        output_list.append(RetailCuttingSheetFinalInstructionDisplay(coating_description,\
                display.small_measurement(panel_depth), terceroDisplay, outputString,\
                pattern_display_string, \
                instruction.id, quantity, cutting_pattern.id))
    return output_list
예제 #7
0
def create_cutting_sheet_output(sheet_data, coating_id, panel_depth_id):
    output_list = []
    for instruction, instruction_data in sheet_data.iteritems():
        for coating_size_id, data in instruction_data.iteritems():
            outputs = RetailCuttingPatternOutput.objects.filter(retail_cutting_pattern_id = \
                    data['pattern_id'])
            cutting_pattern = RetailCuttingPattern.objects.get(
                id=data['pattern_id'])

            outputString = ''
            for output in outputs:
                retail_size_display = display.retail_size(
                    RetailSize.objects.get(id=output.retail_size_id))
                outputString = outputString + retail_size_display + \
                        (' cradled' if output.is_for_cradle else ' flat') + ' (' + str(output.quantity) + '), '

            tercero = CoatingSize.objects.get(
                id=cutting_pattern.coating_size_id)
            terceroDisplay = ''
            total_tercero_quantity = 0
            for grade, quantity in data.iteritems():
                if grade is not 'pattern_id':
                    terceroDisplay = terceroDisplay +  grade + \
                            ' (' + str(quantity) + '), '
                    total_tercero_quantity = total_tercero_quantity + quantity
            terceroDisplay = display.tercero_size(tercero) + ' (' + str(
                total_tercero_quantity) + '), Grades: ' + terceroDisplay
            if (len(terceroDisplay) > 2):
                terceroDisplay = terceroDisplay[:(len(terceroDisplay) - 2)]
            coating_description = Coating.objects.filter(
                id=coating_id)[0].description
            panel_depth = PanelDepth.objects.get(id=panel_depth_id)
            instructionIndent = ''
            firstI = cutting_pattern.cutting_instructions.index('I')
            for i in range(0, firstI + 8):
                instructionIndent = instructionIndent + '&nbsp;'
            pattern_display_string = cutting_pattern.cutting_instructions.replace(
                '___', '<br/>' + instructionIndent)
            pattern_display_string = pattern_display_string.replace(
                ' ', '&nbsp')
            pattern_display_string = pattern_display_string.replace(
                '->', '-&gt')
            output_list.append(RetailCuttingSheetFinalInstructionDisplay(coating_description, \
                    display.small_measurement(panel_depth), terceroDisplay, outputString, \
                    pattern_display_string, 0, 33, cutting_pattern.id))
    return output_list
예제 #8
0
def review_instructions(coating_id, panel_depth_id):
    entries, sheet_id = retrieve_entries(coating_id, panel_depth_id)

    instructions = RetailCuttingSheetInstruction.objects.filter(retail_cutting_sheet_entry_id__in = \
                        entries).order_by('retail_cutting_pattern__cutting_instructions')
    output_list = []
    for instruction in instructions:
        cutting_pattern = RetailCuttingPattern.objects.get(id = \
                                instruction.retail_cutting_pattern_id)
        coating_size_id = instruction.retail_cutting_pattern.coating_size.id
        instruction_string = instruction.retail_cutting_pattern.cutting_instructions
        quantity = instruction.quantity
        cutting_pattern_id = instruction.retail_cutting_pattern_id
        outputs = RetailCuttingPatternOutput.objects.filter(retail_cutting_pattern_id = \
                            cutting_pattern_id)
        cutting_pattern = RetailCuttingPattern.objects.get(id = cutting_pattern_id)
        outputString = ''
        for output in outputs:
            retail_size_display = display.retail_size(RetailSize.objects.get(id = output.retail_size_id))
            outputString = outputString + retail_size_display + \
                (' cradled' if output.is_for_cradle else ' flat') + ' (' + str(output.quantity) + '), '

        tercero = CoatingSize.objects.get(id = coating_size_id)
        terceroDisplay = ''
        total_tercero_quantity = 0
        terceroDisplay = ', ' + instruction.retail_cutting_pattern.grade + \
                            ' (' + str(quantity) + '), '
        terceroDisplay = display.tercero_size(tercero) + terceroDisplay
        if (len(terceroDisplay) > 2):
            terceroDisplay = terceroDisplay[:(len(terceroDisplay)-2)]
        coating_description = Coating.objects.filter(id = coating_id)[0].description
        panel_depth = PanelDepth.objects.get(id = panel_depth_id)
        firstI = cutting_pattern.cutting_instructions.index('I')
        instructionIndent = ''
        for i in range(0,firstI + 8):
            instructionIndent = instructionIndent + '&nbsp;'
        pattern_display_string = cutting_pattern.cutting_instructions.replace('___', '<br/>' + instructionIndent)
        pattern_display_string = pattern_display_string.replace(' ', '&nbsp')
        pattern_display_string = pattern_display_string.replace('->', '-&gt')
        output_list.append(RetailCuttingSheetFinalInstructionDisplay(coating_description,\
                display.small_measurement(panel_depth), terceroDisplay, outputString,\
                pattern_display_string, \
                instruction.id, quantity, cutting_pattern.id))
    return output_list
예제 #9
0
def get_current_sheet():
    '''
    Description
    -----------
    Returns the latest cutting sheet along with all of its information.
    If none exists, a new cutting sheet is created
    '''

    latestSheet = RetailCuttingSheet.objects.first()
    if (not latestSheet):
        new_sheet()

    latestSheet = RetailCuttingSheet.objects.order_by('-id')[0]

    entries = RetailCuttingSheetEntry.objects.filter(
        retail_cutting_sheet__id=latestSheet.id)

    entry_list = []
    for entry in entries:
        instructions = RetailCuttingSheetInstruction.objects.filter(
            retail_cutting_sheet_entry__id=entry.id)
        instruction_list = []
        for instruction in instructions:
            new_instruction = RetailCuttingSheetInstructionDisplay(
                instruction.quantity,
                instruction.output_string,
                RetailCuttingPattern.objects.filter(
                    id=instruction.retail_cutting_pattern_id)
                [0].cutting_instructions,
            )
            instruction_list.append(new_instruction)
        new_entry_display = RetailCuttingSheetEntryDisplay(
            entry.id, instruction_list,
            entry.coating.description, entry.coating.id,
            display.small_measurement(entry.panel_depth), entry.panel_depth_id,
            entry.is_cradled)
        entry_list.append(new_entry_display)

    return RetailCuttingSheetDisplay(latestSheet.id, entry_list)
예제 #10
0
def create_cutting_sheet_output(sheet_data, coating_id, panel_depth_id):
    output_list = []
    for instruction, instruction_data in sheet_data.iteritems():
        for coating_size_id, data in instruction_data.iteritems():
            outputs = RetailCuttingPatternOutput.objects.filter(retail_cutting_pattern_id = \
                    data['pattern_id'])
            cutting_pattern = RetailCuttingPattern.objects.get(id = data['pattern_id'])

            outputString = ''
            for output in outputs:
                retail_size_display = display.retail_size(RetailSize.objects.get(id = output.retail_size_id))
                outputString = outputString + retail_size_display + \
                        (' cradled' if output.is_for_cradle else ' flat') + ' (' + str(output.quantity) + '), '

            tercero = CoatingSize.objects.get(id = cutting_pattern.coating_size_id)
            terceroDisplay = ''
            total_tercero_quantity = 0
            for grade, quantity in data.iteritems():
                if grade is not 'pattern_id':
                    terceroDisplay = terceroDisplay +  grade + \
                            ' (' + str(quantity) + '), '
                    total_tercero_quantity = total_tercero_quantity + quantity
            terceroDisplay = display.tercero_size(tercero) + ' (' + str(total_tercero_quantity) + '), Grades: ' + terceroDisplay
            if (len(terceroDisplay) > 2):
                terceroDisplay = terceroDisplay[:(len(terceroDisplay)-2)]
            coating_description = Coating.objects.filter(id = coating_id)[0].description
            panel_depth = PanelDepth.objects.get(id = panel_depth_id)
            instructionIndent = ''
            firstI = cutting_pattern.cutting_instructions.index('I')
            for i in range(0, firstI + 8):
                instructionIndent = instructionIndent + '&nbsp;'
            pattern_display_string = cutting_pattern.cutting_instructions.replace('___', '<br/>' + instructionIndent)
            pattern_display_string = pattern_display_string.replace(' ', '&nbsp')
            pattern_display_string = pattern_display_string.replace('->', '-&gt')
            output_list.append(RetailCuttingSheetFinalInstructionDisplay(coating_description, \
                    display.small_measurement(panel_depth), terceroDisplay, outputString, \
                    pattern_display_string, 0, 33, cutting_pattern.id))
    return output_list
예제 #11
0
 def __unicode__(self):
     return display.small_measurement(self)
예제 #12
0
def panel_depths():
    panel_depths = PanelDepth.objects.order_by('measurement')
    panel_depth_list = [(int(depth.id), display.small_measurement(depth))
                        for depth in panel_depths]
    return panel_depth_list
예제 #13
0
def cradle_widths():
    cradle_widths = CradleWidth.objects.order_by('measurement')
    cradle_width_list = [(int(width.id), display.small_measurement(width))
                         for width in cradle_widths]
    return cradle_width_list
예제 #14
0
def cradle_widths():
    cradle_widths = CradleWidth.objects.order_by('measurement')
    cradle_width_list = [(int(width.id), display.small_measurement(width))
                        for width in cradle_widths]
    return cradle_width_list
예제 #15
0
def panel_depths():
    panel_depths = PanelDepth.objects.order_by('measurement')
    panel_depth_list = [(int(depth.id), display.small_measurement(depth))
                        for depth in panel_depths]
    return panel_depth_list
예제 #16
0
 def __unicode__(self):
     return display.small_measurement(self)
예제 #17
0
def panel_depths(is_active):
    panel_depths = PanelDepth.objects.filter(is_active=is_active).order_by(
        'unit_of_measurement', 'measurement')
    return [{'id': depth.id, 'measurement': display.small_measurement(depth), \
            'unit': depth.unit_of_measurement} for depth in panel_depths]
예제 #18
0
def cradle_widths(is_active):
    cradle_widths = CradleWidth.objects.filter(is_active=is_active).order_by(
        'unit_of_measurement', 'measurement')
    return [{'id': width.id, 'measurement': display.small_measurement(width), \
            'unit': width.unit_of_measurement} for width in cradle_widths]