Example #1
0
    def post(self, request, *args, **kwargs):
        try:
            voucher = self.get_voucher()
        except Voucher.DoesNotExist:
            return erro_rest(('---', 'Emissão não encontrada'))  # TODO corrigir codigo erro

        serializer = self.get_serializer(data=request.DATA, files=request.FILES)

        if serializer.is_valid():

            emissao = serializer.object
            emissao.requestor_user_id = self.request.user.pk
            emissao.crm_hash = request.DATA.get('crm_hash')

            emissao.voucher = voucher

            # self.atualiza_voucher(voucher) TODO: TBD > o que fazer com os dados do voucher

            if serializer.validacao_manual:
                emissao.emission_status = emissao.STATUS_ACAO_MANUAL_PENDENTE
            else:
                emissao.emission_status = emissao.STATUS_EM_EMISSAO
                resposta = comodo.emite_certificado(emissao)

                emissao.comodo_order = resposta['orderNumber']
                emissao.emission_cost = resposta['totalCost']

            self.pre_save(serializer.object)
            self.object = serializer.save(force_insert=True)
            self.post_save(self.object, created=True)
            return Response({}, status=status.HTTP_200_OK)

        return self.error_response(serializer)
Example #2
0
    def save(self, form_list, **kwargs):
        emissao = self.instance
        emissao.requestor_user_id = self.request.user.pk
        emissao.crm_hash = self.kwargs['crm_hash']

        voucher = self.get_voucher()
        emissao.voucher = voucher

        atualiza_voucher(voucher, dados_voucher=self.get_cleaned_data_for_step('tela-1'))

        if any(f.validacao_manual for f in form_list):
            emissao.emission_status = emissao.STATUS_EMISSAO_PENDENTE
        else:
            emissao.emission_status = emissao.STATUS_EM_EMISSAO
            resposta = comodo.emite_certificado(emissao)

            emissao.comodo_order = resposta['orderNumber']
            emissao.emission_cost = resposta['totalCost']
        emissao.save()