def produccion_cong(request,produccion_cong_id=None):
    template_name="salidas/produccion_cong.html"
    prod=Producto.objects.filter(estado=True)
    form_produccion_cong={}
    contexto={}

    if request.method=='GET':
        form_produccion_cong=ProduccionCongEncForm()
        enc = ProduccionCongEnc.objects.filter(pk=produccion_cong_id).first()

        if enc:
            det = ProduccionCongDet.objects.filter(produccion=enc)
            fecha_produccion = datetime.date.isoformat(enc.fecha_produccion)
            
            
            e = {
                'fecha_produccion':fecha_produccion,
                'planta':enc.planta,
                'linea':enc.linea,
                #'turno':enc.turno,
                'shift':enc.shift,
                'horas_turno':enc.horas_turno,
                'plantilla':enc.plantilla,
                'supervisor':enc.supervisor,
                'observaciones': enc.observaciones,
                'total_produccion':enc.total_produccion,
                'total_utilizado':enc.total_utilizado,
                'total_merma':enc.total_merma
            }
def produccion_cong(request, produccion_cong_id=None):
    template_name = "salidas/produccion_cong.html"
    prod = Producto.objects.filter(estado=True)
    form_produccion_cong = {}
    contexto = {}

    if request.method == 'GET':
        form_produccion_cong = ProduccionCongEncForm()
        enc = ProduccionCongEnc.objects.filter(pk=produccion_cong_id).first()

        if enc:
            det = ProduccionCongDet.objects.filter(produccion=enc)
            fecha_produccion = datetime.date.isoformat(enc.fecha_produccion)

            e = {
                'fecha_produccion': fecha_produccion,
                'planta': enc.planta,
                'linea': enc.linea,
                #'turno':enc.turno,
                'shift': enc.shift,
                'horas_turno': enc.horas_turno,
                'plantilla': enc.plantilla,
                'supervisor': enc.supervisor,
                'observaciones': enc.observaciones,
                'total_produccion': enc.total_produccion,
                'total_utilizado': enc.total_utilizado,
                'total_merma': enc.total_merma
            }
            form_produccion_cong = ProduccionCongEncForm(e)
        else:
            det = None

        contexto = {
            'productos': prod,
            'encabezado': enc,
            'detalle': det,
            'form_enc': form_produccion_cong
        }

    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")
        shift = request.POST.get('shift')
        horas_turno = request.POST.get('horas_turno')
        plantilla = request.POST.get('plantilla')
        supervisor = request.POST.get('supervisor')
        observaciones = request.POST.get("observaciones")
        plant = Planta.objects.get(pk=planta)
        line = Linea.objects.get(pk=linea)
        spvs = Supervisor.objects.get(pk=supervisor)

        if not produccion_cong_id:

            enc = ProduccionCongEnc(fecha_produccion=fecha_produccion,
                                    planta=plant,
                                    linea=line,
                                    shift=shift,
                                    horas_turno=horas_turno,
                                    plantilla=plantilla,
                                    supervisor=spvs,
                                    observaciones=observaciones,
                                    uc=request.user)

            if enc:
                enc.save()
                produccion_cong_id = enc.id
        else:
            enc = ProduccionCongEnc.objects.filter(
                pk=produccion_cong_id).first()
            if enc:
                enc.fecha_produccion = fecha_produccion
                enc.observaciones = observaciones
                enc.planta = plant
                enc.linea = line
                #enc.turno = turno
                enc.shift = shift
                enc.horas_turno = horas_turno
                enc.plantilla = plantilla
                enc.supervisor = spvs
                enc.um = request.user.id
                enc.save()

        if not produccion_cong_id:
            return redirect("salidas:produccion_cong_list")

        producto = request.POST.get("id_id_producto")
        tproducto = request.POST.get("id_tproducto")
        cantidad = request.POST.get("id_cantidad_detalle")
        resto = request.POST.get("id_resto_detalle")
        peso = request.POST.get("id_peso_detalle")
        total = request.POST.get("id_total_detalle")
        total_util = request.POST.get("id_total_utilizado")
        resto = request.POST.get("id_resto_detalle")
        total_merma = request.POST.get("id_merma_detalle")
        r1 = request.POST.get("id_r1_detalle")
        r2 = request.POST.get('id_r2_detalle')
        r3 = request.POST.get('id_r3_detalle')
        r4 = request.POST.get('id_r4_detalle')
        r5 = request.POST.get('id_r5_detalle')

        prod = Producto.objects.get(pk=producto)

        det = ProduccionCongDet(produccion=enc,
                                producto=prod,
                                tproducto=tproducto,
                                cantidad=cantidad,
                                resto=resto,
                                total_produccion=total,
                                total_utilizado=total_util,
                                total_merma=total_merma,
                                r1=r1,
                                r2=r2,
                                r3=r3,
                                r4=r4,
                                r5=r5,
                                peso=peso,
                                uc=request.user)

        if det:
            det.save()
            total = ProduccionCongDet.objects.filter(
                produccion=produccion_cong_id).aggregate(
                    Sum('total_produccion'))
            enc.total_produccion = total["total_produccion__sum"]

            total_util = ProduccionCongDet.objects.filter(
                produccion=produccion_cong_id).aggregate(
                    Sum('total_utilizado'))
            enc.total_utilizado = total_util["total_utilizado__sum"]

            enc.total_merma = 100 - (
                (enc.total_produccion / enc.total_utilizado) * 100)
            enc.save()

        return redirect("salidas:produccion_cong_edit",
                        produccion_cong_id=produccion_cong_id)

    return render(request, template_name, contexto)
            
            e = {
                'fecha_produccion':fecha_produccion,
                'planta':enc.planta,
                'linea':enc.linea,
                #'turno':enc.turno,
                'shift':enc.shift,
                'horas_turno':enc.horas_turno,
                'plantilla':enc.plantilla,
                'supervisor':enc.supervisor,
                'observaciones': enc.observaciones,
                'total_produccion':enc.total_produccion,
                'total_utilizado':enc.total_utilizado,
                'total_merma':enc.total_merma
            }
            form_produccion_cong = ProduccionCongEncForm(e)
        else:
            det=None
        
        contexto={'productos':prod,'encabezado':enc,'detalle':det,'form_enc':form_produccion_cong}
        
    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")
        shift = request.POST.get('shift')
        horas_turno = request.POST.get('horas_turno')
        plantilla = request.POST.get('plantilla')