Snippets

Thiago Paim Script de atualização da Torre de Controle

Created by Thiago Paim last modified
from datetime import datetime
from cargobr_api.apps.delivery_steps.models import DeliveryStep
from cargobr_api.apps.orders.models import Order
from cargobr_api.apps.edi.models import Ocoren


finished_status = [0, 3, 4, 6, 24]  # Em Aberto, Entregue, Cancelado, Devolvido, Sinistro
real_date_delivered = []
adjust_date_delivered = []
date_delivered_marked = []
others = []

steps = DeliveryStep.objects.filter(resolved_at__isnull=True)

for step in steps:
    order = Order.objects.get(id=step.ocoren.order)
    if order.status in finished_status:
        if order.real_date_delivered:
            resolved_at = order.real_date_delivered
            step.resolved_at = resolved_at
            step.save()
            real_date_delivered.append(order.order_id)

            if order.observation:
                order.observation += '/ Etapa de entrega resolvida manualmente via script para {}'.format(resolved_at)
            else:
                order.observation = 'Etapa de entrega resolvida manualmente via script para {}'.format(resolved_at)
            order.save()

        elif order.adjust_date_delivered:
            adjust_date_delivered.append(order.order_id)

        elif order.date_delivered_marked:
            date_delivered_marked.append(order.order_id)

        else:
            others.append(order.order_id)

print(len(real_date_delivered), real_date_delivered)
print(len(adjust_date_delivered), adjust_date_delivered)
print(len(date_delivered_marked), date_delivered_marked)
print(len(others), others)

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.