Versão atual:

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.

Versões (2):

Ver a versão formatada

Problema ao posicionar na Filial correta

Comentário

new question