
from DateTime import DateTime
workflow = context.portal_workflow

# False if object is cancelled
if workflow.getInfoFor(context, 'cancellation_state', "active") == "cancelled":
    return False

if context.portal_type == 'AnalysisRequest':

    # False if our Sample's SamplingDate is the future
    if context.getSample().getSamplingDate() > DateTime():
        return False

    # False if any Field Analyses in any of our sample's ARs have no result.
    for ar in context.getSample().getAnalysisRequests():
        if [a for a in ar.getAnalyses(getPointOfCapture='field')
            if a.getObject().getResult() == '']:
            return False

elif context.portal_type == 'Sample':

    # False if our SamplingDate is the future
    if context.getSamplingDate() > DateTime():
        return False

    # False if any of this Sample's ARs have Field Analyses without results.
    for ar in context.getAnalysisRequests():
        if [a for a in ar.getAnalyses(getPointOfCapture='field')
            if a.getObject().getResult() == '']:
            return False

return True


from DateTime import DateTime
workflow = context.portal_workflow

# False if object is cancelled
if workflow.getInfoFor(context, 'cancellation_state', "active") == "cancelled":
    return False

if context.portal_type == 'AnalysisRequest':

    # False if any Field Analyses in any of our sample's ARs have no result.
    for ar in context.getSample().getAnalysisRequests():
        if [a for a in ar.getAnalyses(getPointOfCapture='field')
            if a.getObject().getResult() == '']:
            return False

elif context.portal_type == 'Sample':

    # False if any of this Sample's ARs have Field Analyses without results.
    for ar in context.getAnalysisRequests():
        if [a for a in ar.getAnalyses(getPointOfCapture='field')
            if a.getObject().getResult() == '']:
            return False

return True

Allow receive of future-dated samples
Allow receive of future-dated samples

  
  from DateTime import DateTime
  workflow = context.portal_workflow
  
  # False if object is cancelled
  if workflow.getInfoFor(context, 'cancellation_state', "active") == "cancelled":
      return False
  
  if context.portal_type == 'AnalysisRequest':
  
-     # False if our Sample's SamplingDate is the future
-     if context.getSample().getSamplingDate() > DateTime():
-         return False
- 
      # False if any Field Analyses in any of our sample's ARs have no result.
      for ar in context.getSample().getAnalysisRequests():
          if [a for a in ar.getAnalyses(getPointOfCapture='field')
              if a.getObject().getResult() == '']:
              return False
  
  elif context.portal_type == 'Sample':
- 
-     # False if our SamplingDate is the future
-     if context.getSamplingDate() > DateTime():
-         return False
  
      # False if any of this Sample's ARs have Field Analyses without results.
      for ar in context.getAnalysisRequests():
          if [a for a in ar.getAnalyses(getPointOfCapture='field')
              if a.getObject().getResult() == '']:
              return False
  
  return True
  
Allow receive of future-dated samples
## Code Before:

from DateTime import DateTime
workflow = context.portal_workflow

# False if object is cancelled
if workflow.getInfoFor(context, 'cancellation_state', "active") == "cancelled":
    return False

if context.portal_type == 'AnalysisRequest':

    # False if our Sample's SamplingDate is the future
    if context.getSample().getSamplingDate() > DateTime():
        return False

    # False if any Field Analyses in any of our sample's ARs have no result.
    for ar in context.getSample().getAnalysisRequests():
        if [a for a in ar.getAnalyses(getPointOfCapture='field')
            if a.getObject().getResult() == '']:
            return False

elif context.portal_type == 'Sample':

    # False if our SamplingDate is the future
    if context.getSamplingDate() > DateTime():
        return False

    # False if any of this Sample's ARs have Field Analyses without results.
    for ar in context.getAnalysisRequests():
        if [a for a in ar.getAnalyses(getPointOfCapture='field')
            if a.getObject().getResult() == '']:
            return False

return True

## Instruction:
Allow receive of future-dated samples
## Code After:

from DateTime import DateTime
workflow = context.portal_workflow

# False if object is cancelled
if workflow.getInfoFor(context, 'cancellation_state', "active") == "cancelled":
    return False

if context.portal_type == 'AnalysisRequest':

    # False if any Field Analyses in any of our sample's ARs have no result.
    for ar in context.getSample().getAnalysisRequests():
        if [a for a in ar.getAnalyses(getPointOfCapture='field')
            if a.getObject().getResult() == '']:
            return False

elif context.portal_type == 'Sample':

    # False if any of this Sample's ARs have Field Analyses without results.
    for ar in context.getAnalysisRequests():
        if [a for a in ar.getAnalyses(getPointOfCapture='field')
            if a.getObject().getResult() == '']:
            return False

return True
