def update_with_detalles(self, request, pk=None): try: rol_pago = RolPago.objects.get(id=pk) detalles = request.data['detalles'] serializer = RolPagoSerializer(rol_pago, data=request.data) for detalle in detalles: detalle_rolpago = DetalleRolPago.objects.get(id=detalle['id']) serializer_detalle = DetalleRolPagoSerializer(detalle_rolpago, data=detalle) if serializer_detalle.is_valid(): serializer_detalle.save() if serializer.is_valid(): serializer.save() rolpago_message = 'Rol de Pago actualizado Satisfactoriamente.' rolpago_status = status.HTTP_200_OK else: rolpago_message = json.dumps(serializer.errors) rolpago_status = status.HTTP_400_BAD_REQUEST return Response({ 'data': serializer.data, 'status': rolpago_message, 'message': rolpago_status }) except Exception as e: return Response({ 'data': None, 'status': status.HTTP_500_INTERNAL_SERVER_ERROR, 'message': e })
def create_by_consolidado_rolpago(self, request, pk=None): empresa = request.GET.get("EMPRESA") consolidado_rolpago = request.GET.get("CONSOLIDADO_ROLPAGO") queryset = Contrato.objects.filter(empleado__empresa=empresa, estado=True).all() contratos_by_consolidados = Contrato.objects.filter( roles_pago__consolidado_rolpago=consolidado_rolpago).all() queryset_difference = list( set(queryset).difference(contratos_by_consolidados)) roles_pago = [] for contrato in queryset_difference: rol_pago = RolPago() rol_pago.contrato = contrato rol_pago.fecha_inicio = datetime.date.today rol_pago.total = 0.0 rol_pago.consolidado_rolpago_id = consolidado_rolpago rol_pago.save() roles_pago.append(rol_pago) serializer = RolPagoSerializer(roles_pago, many=True) return Response({ 'data': serializer.data, 'status': status.HTTP_200_OK, 'message': None, "count": len(roles_pago) + len(contratos_by_consolidados) })
def list(self, request): queryset = RolPago.objects.all() count = queryset.count() serializer = RolPagoSerializer(queryset, many=True) return Response({ 'data': serializer.data, 'status': status.HTTP_200_OK, 'message': None, 'count': count })
def update(self, request, pk=None): try: rolPago = RolPago.objects.get(id=pk) serializer = RolPagoSerializer(rolPago, data=request.data) if serializer.is_valid(): serializer.save() rolPago_message = 'RolPago actualizado' rolPago_status = status.HTTP_200_OK else: rolPago_message = serializer.errors rolPago_status = status.HTTP_400_BAD_REQUEST return Response({ 'data': serializer.data, 'status': rolPago_status, 'message': rolPago_message }) except Exception as e: return Response({ 'data': None, 'status': status.HTTP_500_INTERNAL_SERVER_ERROR, 'message': e })
def create(self, request): try: rolPago = RolPago() serializer = RolPagoSerializer(rolPago, data=request.data) if serializer.is_valid(): serializer.save() rolPago_message = 'Cargo creado' rolPago_status = status.HTTP_200_OK else: rolPago_message = serializer.errors rolPago_status = status.HTTP_400_BAD_REQUEST return Response({ 'data': serializer.data, 'status': rolPago_status, 'message': rolPago_message }) except Exception as e: return Response({ 'data': None, 'status': status.HTTP_500_INTERNAL_SERVER_ERROR, 'message': e })
def list_by_consolidado(self, request): consolidado = None if 'CONSOLIDADO_ROLPAGO' in request.GET: consolidado = request.GET['CONSOLIDADO_ROLPAGO'] queryset = RolPago.objects.filter( consolidado_rolpago=consolidado).all() count = queryset.count() serializer = RolPagoSerializer(queryset, many=True) return Response({ 'data': serializer.data, 'status': status.HTTP_200_OK, 'message': None, 'count': count })
def retrieve(self, request, pk=None): try: objeto = RolPago.objects.get(id=pk) rolPago = RolPagoSerializer(objeto).data return Response({ 'data': rolPago, 'status': status.HTTP_200_OK, 'message': None }) except RolPago.DoesNotExist: return Response({ 'data': None, 'status': status.HTTP_404_NOT_FOUND, 'message': None })