117 lines
No EOL
4 KiB
QBasic
117 lines
No EOL
4 KiB
QBasic
REM Set SCHEDULE "1 * * * * *"
|
|
|
|
REM Obtém token Do Partner Center via token Do AD.
|
|
|
|
Set HEADER "return-client-request-id" As "True"
|
|
Set HEADER "Content-Type" As "application/x-www-form-urlencoded; charset=utf-8"
|
|
REM pcToken = POST "https://login.microsoftonline.com/" + tenantId + "/oauth2/token", "resource=https%3A%2F%2Fgraph.windows.net&client_id=" + clientId + "&client_secret=" + clientSecret + "&grant_type=client_credentials"
|
|
|
|
REM repara chamada de Billing.
|
|
|
|
REM Set HEADER "Authorization" As "Bearer " + pcToken.access_token
|
|
Set HEADER "MS-Contract-Version" As "v1"
|
|
Set HEADER "MS-CorrelationId" As uuid()
|
|
Set HEADER "MS-RequestId" As uuid()
|
|
Set HEADER "MS-PartnerCenter-Application" As "VPN General Bots"
|
|
Set HEADER "X-Locale" As "en-US"
|
|
|
|
REM Syncs Customers and Subscriptions.
|
|
|
|
Set PAGE MODE "none"
|
|
list = Get host + "/v1/customers?size=20000"
|
|
|
|
MERGE "Customers" With list.items BY "Id"
|
|
|
|
FOR EACH item IN list
|
|
|
|
subs = Get host + "/v1/customers/" + item.id + "/subscriptions"
|
|
MERGE "Subscriptions" With subs.items BY "Id"
|
|
END For
|
|
|
|
REM Check period.
|
|
|
|
If today = dueDay Then
|
|
If period = "previous" And Not CONTINUATION TOKEN Then
|
|
period = "current"
|
|
Else
|
|
period = "previous"
|
|
End If
|
|
Else
|
|
period = "current"
|
|
End If
|
|
|
|
REM Perform the Call And Loop through the billing items.
|
|
|
|
Set PAGE MODE "auto"
|
|
list = Get host + "/v1/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems¤cycode=" + currency + "&period=previous&idparceiro=" + idparceiro
|
|
For EACH item IN list
|
|
SAVE "Billing", item.alternateId, item.availabilityId, item.billableQuantity, item.billingFrequency, item.chargeEndDate, item.chargeStartDate, item.chargeType, item.currency, item.customerCountry, item.customerDomainName, item.customerId, item.customerName, item.effectiveUnitPrice, item.invoiceNumber, item.meterDescription, item.mpnId, item.orderDate, item.orderId, item.partnerId, item.pCToBCExchangeRate, item.pCToBCExchangeRateDate, item.priceAdjustmentDescription, item.pricingCurrency, item.productId, item.productName, item.publisherId, item.publisherName, item.quantity, item.resellerMpnId, item.reservationOrderId, item.skuId, item.skuName, item.subscriptionDescription, item.subscriptionId, item.subtotal, item.taxTotal, item.termAndBillingCycle, item.totalForCustomer, item.unitPrice, item.unitType
|
|
END For
|
|
|
|
END FOR
|
|
|
|
TABLE Billing
|
|
CustomerId Customers
|
|
ResourceGroup string(200)
|
|
ResourceUri string(1000)
|
|
Tags string(max)
|
|
AdditionalInfo string(max)
|
|
ServiceInfo1 string(max)
|
|
ServiceInfo2 string(max)
|
|
CustomerCountry string(6)
|
|
MpnId string(50)
|
|
ResellerMpnId string(50)
|
|
ChargeType string(200)
|
|
UnitPrice* double
|
|
Quantity* double
|
|
UnitType string(max)
|
|
BillingPreTaxTotal double
|
|
BillingCurrency string(6)
|
|
PricingPreTaxTotal double
|
|
PricingCurrency string(6)
|
|
EntitlementId string(50)
|
|
EntitlementDescription string(400)
|
|
PCToBCExchangeRate double
|
|
PCToBCExchangeRateDate date
|
|
EffectiveUnitPrice* double
|
|
RateOfPartnerEarnedCredit double
|
|
ConsumedService string(200)
|
|
ResourceLocation string(100)
|
|
MeterRegion string(100)
|
|
PartnerId string(50)
|
|
PartnerName string(400)
|
|
CustomerName string(400)
|
|
CustomerDomainName string(400)
|
|
InvoiceNumber string(400)
|
|
ProductId string(50)
|
|
SkuId string(50)
|
|
AvailabilityId string(50)
|
|
SkuName string(200)
|
|
ProductName string(400)
|
|
PublisherName string(200)
|
|
PublisherId string(200)
|
|
SubscriptionId string(50)
|
|
SubscriptionDescription string(400)
|
|
ChargeStartDate* date
|
|
ChargeEndDate* date
|
|
UsageDate date
|
|
MeterType string(400)
|
|
MeterCategory string(100)
|
|
MeterId string(50)
|
|
MeterSubCategory string(100)
|
|
MeterName string(200)
|
|
UnitOfMeasure string(100)
|
|
Reprocess boolean
|
|
END TABLE
|
|
|
|
TABLE Customers
|
|
TenantId guid
|
|
CompanyName string(100)
|
|
Id guid
|
|
END TABLE
|
|
|
|
TABLE Subscriptions
|
|
CustomerId Customers
|
|
Id guid
|
|
OfferName string(50)
|
|
END TABLE |