示例#1
0
def borrar_registroHora(request, pk):

    registro = RegistroHora.objects.get(id=pk)
    if request.method == "POST":
        contrato = Contrato.objects.filter(id=registro.contrato.id)[0]
        horas = utils.calcular_horas(
                registro.hora_inicio.strftime('%H:%M:%S'),
                registro.hora_fin.strftime('%H:%M:%S'),
                'DELETE'
            )
        gastos = utils.calcular_gasto_hora(request.user, contrato.id, horas)
        contrato.maestro_calculos(horas, gastos)
        '''contrato.sumar_horas(horas)
        contrato.sumar_gastos(gastos)
        contrato.calcular_rentabilidad_horas()
        contrato.calcular_rentabilidad_presupuesto()'''

        gasto_horas = Gasto.objects.create(
            motivo='HONORARIOS', 
            detalle=registro.detalle,
            gasto=utils.calcular_gasto_hora(request.user, registro.contrato.id, horas),
            empleado_id=Empleado.objects.filter(usuario__username=request.user)[0].id,
            contrato_id=registro.contrato.id
        )
        
        contrato.save()
        gasto_horas.save()
        registro.delete()
        return redirect('proyectos:registrohoras-listar2')
        
    context = {'registro':registro}
    return render(request, 'registroHoras/borrar.html', context)
示例#2
0
def crear_registroHoras(request):

    form = FormCrearRegistroHora()

    if request.method == 'POST':
        form = FormCrearRegistroHora(request.POST)
        if form.is_valid():
            #Aumenta la cantidad de horas cargadas a las HORAS EJECUTADAS,
            #las tarifas por hora de los empleado a GASTO y calcula la
            #RENTABILIDAD (en horas y presupuesto) del Contrato
            registro_id = form.save(request)
            registro = RegistroHora.objects.get(id=registro_id)
            contrato = Contrato.objects.get(id=registro.entregable.contrato.id)
            horas = utils.calcular_horas(registro.horas_trabajadas, 'INSERT')
            gastos = utils.calcular_gasto_hora(request.user, contrato.id,
                                               horas)
            contrato.maestro_calculos(horas, gastos)
            contrato.save()
            gasto_horas = Gasto.objects.create(
                motivo='HONORARIOS',
                detalle=registro.detalle,
                fecha=registro.fecha,
                gasto=utils.calcular_gasto_hora(request.user, contrato.id,
                                                horas),
                empleado_id=Empleado.objects.filter(
                    usuario__username=request.user)[0].id,
                contrato_id=contrato.id,
                registro_id=registro_id)
            gasto_horas.save()

            return redirect('proyectos:registrohoras-listar')

    context = {'form': form}
    return render(request, 'registroHoras/crear2.html', context)
示例#3
0
def actualizar_registroHora(request, pk):

    registro = RegistroHora.objects.get(id=pk)
    form = RegistroForm(instance=registro)
    contrato = Contrato.objects.get(id=registro.entregable.contrato.id)

    if request.method == 'POST':
        #Se utilizara la accion DELETE para borrar la anterior hora cargada
        horas_anteriores = utils.calcular_horas(
            str(form['horas_trabajadas'].value()), 'DELETE')
        gastos = utils.calcular_gasto_hora(request.user, contrato.id,
                                           horas_anteriores)
        contrato.sumar_horas(horas_anteriores)
        contrato.sumar_gastos(gastos)
        contrato.save()

        form = RegistroForm(request.POST, instance=registro)

        if form.is_valid():
            #Se utilizara la accion INSERT para cargar las horas actualizadas
            gasto_horas = Gasto.objects.get(registro__id=pk)
            horas = utils.calcular_horas(form['horas_trabajadas'].value(),
                                         'INSERT')

            gastos = utils.calcular_gasto_hora(request.user, contrato.id,
                                               horas)
            contrato.maestro_calculos(horas, gastos)
            gasto_horas.gasto = gastos
            gasto_horas.save()
            contrato.save()
            form.save()
            return redirect('proyectos:registrohoras-listar')

    context = {'form': form}
    return render(request, 'registroHoras/modificar.html', context)
示例#4
0
def actualizar_registroHora(request, pk):

    registro = RegistroHora.objects.get(id=pk)
    form = RegistroForm(instance=registro)

    if request.method == 'POST':
        #Se utilizara la accion DELETE para borrar la anterior hora cargada
        contrato = Contrato.objects.filter(id=form['contrato'].value())[0]
        horas = utils.calcular_horas(
            
            str(form['hora_inicio'].value()), 
            str(form['hora_fin'].value()),
            'DELETE'
        )
        gasto_horas = Gasto.objects.create(
            motivo='HONORARIOS', 
            detalle=registro.detalle,
            gasto=utils.calcular_gasto_hora(request.user, registro.contrato.id, horas),
            empleado_id=Empleado.objects.filter(usuario__username=request.user)[0].id,
            contrato_id=registro.contrato.id
        )
        gastos = utils.calcular_gasto_hora(request.user, contrato.id, horas)
        contrato.maestro_calculos(horas, gastos)
        #contrato.save()
        gasto_horas.save()

        form = RegistroForm(request.POST, instance=registro)
        if form.is_valid():
            #Se utilizara la accion INSERT para cargar las horas actualizadas
            horas = utils.calcular_horas(
                
                form['hora_inicio'].value(), 
                form['hora_fin'].value(),
                'INSERT'
            )
            gasto_horas = Gasto.objects.create(
                motivo='HONORARIOS', 
                detalle=form['detalle'].value(),
                fecha=form['fecha'].value(),
                gasto=utils.calcular_gasto_hora(request.user, contrato.id, horas),
                empleado_id=Empleado.objects.filter(usuario__username=request.user)[0].id,
                contrato_id=contrato.id
            )
            contrato = Contrato.objects.filter(id=form['contrato'].value())[0]
            #contrato.sumar_horas(horas)
            #contrato.save()
            gastos = utils.calcular_gasto_hora(request.user, contrato.id, horas)
            contrato.maestro_calculos(horas, gastos)
            gasto_horas.save()
            form.save()
            return listar_registroHoras(request, request.user)

    context = {'form':form}
    return render(request, 'registroHoras/modificar.html', context)
示例#5
0
def crear_registroHoras(request):

    form = FormCrearRegistroHora()

    if request.method == 'POST':
        form = FormCrearRegistroHora(request.POST)
        if form.is_valid():
            #Aumenta la cantidad de horas cargadas a las HORAS EJECUTADAS,
            #las tarifas por hora de los empleado a GASTO y calcula la
            #RENTABILIDAD (en horas y presupuesto) del Contrato
            contrato = Contrato.objects.filter(id=form['contrato'].value())[0]
            horas = utils.calcular_horas(
                
                form['hora_inicio'].value(), 
                form['hora_fin'].value(),
                'INSERT'
            )
            gastos = utils.calcular_gasto_hora(request.user, contrato.id, horas)
            contrato.maestro_calculos(horas, gastos)
            gasto_horas = Gasto.objects.create(
                motivo='HONORARIOS', 
                detalle=form['detalle'].value(),
                fecha=form['fecha'].value(),
                gasto=utils.calcular_gasto_hora(request.user, contrato.id, horas),
                empleado_id=Empleado.objects.filter(usuario__username=request.user)[0].id,
                contrato_id=contrato.id
            )
            gasto_horas.save()
            contrato.save()
            
            form.save(request)
            #return redirect('proyectos:registrohoras-listar')
            return listar_registroHoras(request, request.user)

    context = {'form':form}
    return render(request, 'registroHoras/crear.html', context)
示例#6
0
def borrar_registroHora(request, pk):

    registro = RegistroHora.objects.get(id=pk)
    if request.method == "POST":
        contrato = Contrato.objects.get(id=registro.entregable.contrato.id)
        horas = utils.calcular_horas(registro.horas_trabajadas, 'DELETE')
        gastos = utils.calcular_gasto_hora(request.user, contrato.id, horas)
        contrato.maestro_calculos(horas, gastos)
        gasto_horas = Gasto.objects.filter(registro__id=pk)
        contrato.save()
        gasto_horas.delete()
        registro.delete()
        return redirect('proyectos:registrohoras-listar')

    context = {'registro': registro}
    return render(request, 'registroHoras/borrar.html', context)