bgmulinari / B1SLayer

A lightweight SAP Business One Service Layer client for .NET
MIT License
136 stars 47 forks source link

Expand em BusinessPartners #24

Closed escavadordebits closed 1 year ago

escavadordebits commented 2 years ago

Caros, poderiam dar um norte estou querendo pegar os dados fiscais do PN, alguma sugestão.. GetIDBusinessParners = await SL.Connection.Request("BusinessPartners", Id) .Select("CardCode, CardName") .Expand("BPFiscalTaxIDCollection").Select("TaxId0,TaxId1") /// Esta Correto desta forma ? sem o expand funciona perfeitamente .WithPageSize(10) .WithCaseInsensitive() .GetAsync();

queria algo do tipo

$crossjoin(Orders,Orders/DocumentLines) ?$expand=Orders($select=DocEntry, DocNum),Orders/DocumentLines($select=ItemCode,LineNum) $filter=Orders/DocEntry eq Orders/DocumentLines/DocEntry and Orders/DocumentLines/ItemCode eq 'A00001'

De qualquer forma esta ajudando muito, obrigado!

bgmulinari commented 2 years ago

Olá, @escavadordebits.

Os métodos de extensão funcionam como simples auxiliares na construção da sua requisição (parâmetros de query ou header). De acordo com a requisição que você deseja fazer, no B1SLayer o código abaixo produzirá uma requisição igual:

var result = await SL.Connection
    .Request("$crossjoin(Orders,Orders/DocumentLines)")
    .Expand("Orders($select=DocEntry, DocNum),Orders/DocumentLines($select=ItemCode,LineNum)")
    .Filter("Orders/DocEntry eq Orders/DocumentLines/DocEntry and Orders/DocumentLines/ItemCode eq 'A00001'")
    .WithPageSize(10)
    .WithCaseInsensitive()
    .GetAsync();
escavadordebits commented 2 years ago

Obrigado pela dica, segue caso alguém precise para consultar um cnpj usando a entidade BusinessPartners

var result = await SL.Connection
    .Request("$crossjoin(BusinessPartners,BusinessPartners/BPFiscalTaxIDCollection)")
    .Expand("BusinessPartners($select=CardCode,CardName),BusinessPartners/BPFiscalTaxIDCollection($select=TaxId0,TaxId1)")
    .Filter("BusinessPartners/CardCode eq BusinessPartners/BPFiscalTaxIDCollection/BPCode and BusinessPartners/BPFiscalTaxIDCollection/TaxId0 eq '" + Id + "'")
    .WithPageSize(10)
    .WithCaseInsensitive()
    .GetAsync();