def tiempos_muertos(request,tiempo_muerto_id=None):
    template_name="salidas/tiempos_muertos.html"
    causa=CausaTM.objects.filter(estado=True)
    form_tmuertos={}
    contexto={}

    if request.method=='GET':
        form_tmuertos=TiempoMuertoEncForm()
        enc = TiempoMuertoEnc.objects.filter(pk=tiempo_muerto_id).first()

        if enc:
            det = TiempoMuertonDet.objects.filter(tiempo_muerto=enc)
            fecha_produccion = datetime.date.isoformat(enc.fecha_produccion)
            
            
            e = {
                'fecha_produccion':fecha_produccion,
                'planta':enc.planta,
                'linea':enc.linea,
                'turno':enc.turno,
                
                
                'supervisor':enc.supervisor,
            
                'observaciones': enc.observaciones,
                'cantidad':enc.cantidad,
                'total_tm':enc.total_tm,
                
            }
def tiempos_muertos(request, tiempo_muerto_id=None):
    template_name = "salidas/tiempos_muertos.html"
    causa = CausaTM.objects.filter(estado=True)
    form_tmuertos = {}
    contexto = {}

    if request.method == 'GET':
        form_tmuertos = TiempoMuertoEncForm()
        enc = TiempoMuertoEnc.objects.filter(pk=tiempo_muerto_id).first()

        if enc:
            det = TiempoMuertonDet.objects.filter(tiempo_muerto=enc)
            fecha_produccion = datetime.date.isoformat(enc.fecha_produccion)

            e = {
                'fecha_produccion': fecha_produccion,
                'planta': enc.planta,
                'linea': enc.linea,
                'turno': enc.turno,
                'supervisor': enc.supervisor,
                'observaciones': enc.observaciones,
                'cantidad': enc.cantidad,
                'total_tm': enc.total_tm,
            }
            form_tmuertos = TiempoMuertoEncForm(e)
        else:
            det = None

        contexto = {
            'causas': causa,
            'encabezado': enc,
            'detalle': det,
            'form_enc': form_tmuertos
        }

    if request.method == 'POST':
        fecha_produccion = request.POST.get("fecha_produccion")
        planta = request.POST.get("planta")
        linea = request.POST.get("linea")
        turno = request.POST.get("turno")
        supervisor = request.POST.get('supervisor')

        observaciones = request.POST.get("observaciones")
        total = 0

        plant = Planta.objects.get(pk=planta)
        line = Linea.objects.get(pk=linea)
        spvs = Supervisor.objects.get(pk=supervisor)

        if not tiempo_muerto_id:

            enc = TiempoMuertoEnc(fecha_produccion=fecha_produccion,
                                  planta=plant,
                                  linea=line,
                                  turno=turno,
                                  supervisor=spvs,
                                  observaciones=observaciones,
                                  uc=request.user)
            if enc:
                enc.save()
                tiempo_muerto_id = enc.id
        else:
            enc = TiempoMuertoEnc.objects.filter(pk=tiempo_muerto_id).first()
            if enc:
                enc.fecha_produccion = fecha_produccion
                enc.observaciones = observaciones
                enc.planta = plant
                enc.linea = line
                enc.turno = turno
                enc.supervisor = spvs
                enc.um = request.user.id
                enc.save()

        if not tiempo_muerto_id:
            return redirect("salidas:tiempos_muertos_list")

        causa = request.POST.get("id_id_tmuerto")
        obs = request.POST.get("id_obs_detalle")
        cantidad = request.POST.get("id_cantidad_detalle")
        total = request.POST.get("id_total_detalle")

        cau = CausaTM.objects.get(pk=causa)

        det = TiempoMuertonDet(tiempo_muerto=enc,
                               causa=cau,
                               obs=obs,
                               cantidad=cantidad,
                               total_tm=total,
                               uc=request.user)

        if det:
            det.save()
            total = TiempoMuertonDet.objects.filter(
                tiempo_muerto=tiempo_muerto_id).aggregate(Sum('total_tm'))
            enc.total_tm = total["total_tm__sum"]

            enc.save()

        return redirect("salidas:tiempos_muertos_edit",
                        tiempo_muerto_id=tiempo_muerto_id)

    return render(request, template_name, contexto)
         
         e = {
             'fecha_produccion':fecha_produccion,
             'planta':enc.planta,
             'linea':enc.linea,
             'turno':enc.turno,
             
             
             'supervisor':enc.supervisor,
         
             'observaciones': enc.observaciones,
             'cantidad':enc.cantidad,
             'total_tm':enc.total_tm,
             
         }
         form_tmuertos = TiempoMuertoEncForm(e)
     else:
         det=None
     
     contexto={'causas':causa,'encabezado':enc,'detalle':det,'form_enc':form_tmuertos}
     
 if request.method=='POST':
     fecha_produccion = request.POST.get("fecha_produccion")
     planta = request.POST.get("planta")
     linea = request.POST.get("linea")
     turno = request.POST.get("turno")
     supervisor = request.POST.get('supervisor')
     
     observaciones = request.POST.get("observaciones")
     total = 0