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)
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)
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)
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)
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)
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)