コード例 #1
0
    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
            })
コード例 #2
0
    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)
        })
コード例 #3
0
 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
     })
コード例 #4
0
    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
            })
コード例 #5
0
    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
            })
コード例 #6
0
    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
        })
コード例 #7
0
 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
         })