Problema ao posicionar na Filial correta

Criei esse metodo que cadastra na tabela ct1 do protheus mas o problema e que ele cadastar na primeira filial que ele encontra na tabela e preciso que cadastre na filial que passo pelo json

WSMETHOD POST iContaContabil WSREST WSCONTACONTABIL

local jConta := JsonObject():New() local cError := jConta:fromJson( self:getContent() ) local cJson local oCT1 Local cCodigo := jConta['Cod_Conta'] Local cf := jConta['Filial']

If jConta['Cod_Conta'] == "" SetRestFault(400, EncodeUTF8('O codigo da conta não existe.')) return .F. Endif

if Empty(cError)

dbSelectArea("CT1") DbSetOrder(1)

If !CT1->(DbSeek(cf + cCodigo))

oModel := FwLoadModel("CTBA020") oModel:setOperation(3) oModel:Activate()

oCT1 := oModel:GetModel('CT1MASTER') //Objeto similar enchoice CT1 oCT1:setValue("CT1_FILIAL", Upper(jConta["Filial"])) oCT1:setValue("CT1_CONTA", Upper(jConta["Cod_Conta"])) oCT1:setValue("CT1_DESC01", Upper(jConta["Desc_Conta"])) oCT1:setValue("CT1_CTASUP", Upper(jConta["Conta_Sup"])) oCT1:setValue("CT1_CLASSE", Upper(jConta["Classe_Cta"])) oCT1:setValue("CT1_NORMAL", Upper(jConta["Cond_Normal"])) oCT1:setValue("CT1_NATCTA", Upper(jConta["Nat_Cta"]))

if oModel:VldData()

oModel:CommitData()

cJson := '{"FILIAL":"' + Upper(jConta["Desc_Conta"]) + '"'; + ',"msg":"' + "Sucesso" + '"'; +'}' // CT1_E->(dbCloseArea()) ::SetResponse(cJson) else ConErr(oModel:GetErrorMessage()[MODEL_MSGERR_MESSAGE]) SetRestFault(400)

endif

oModel:DeActivate() //desativa modelo

Else SetRestFault(400, EncodeUTF8('O codigo da conta informado ja está registrado.')) return .F. Endif

else ConErr(cError) setRestFault(400) return .F. endif

return .T.

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags filial ou faça a sua própria pergunta.