Conversation
Add dualentry quotes: list with quote filters, get by number or QT- ID with totals and signing order, create, partial update with --display-options, submit, send with or without a PDF, and a JSON template. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
dualentry quotesfor CPQ quotes, built on the/public/v2/quotesAPI.list:--search,--status,--approval-status,--company,--customer,--valid-from/--valid-to,--ordering, plus the usual paging and--all.get: by quote number (12) or theQT-ID shown in the app (QT-45). The human output shows lines with billing frequency and service period, ramp segments, totals (one-time, recurring per cadence, MRR and ARR, first invoice, TCV or "Ongoing", per year), and the signing order.create --file: nested lines, recipients and signing order as JSON.record_status: "posted"submits for approval;"draft"saves.update: partial update (PATCH). Sendingitemsorrecipientsreplaces the list, as documented in--help.--display-optionsoncreateandupdate:headline_total,total_rows,year_by_year.submit: submits a draft or rejected quote for approval.send: emails an approved quote with--to/--cc/--bcc/--subject/--message/--reply-to, attaching a PDF with--pdf file.pdfor sending without one via--no-pdf.template: a sample quote JSON.Not included, because the API does not offer them: approve and reject (approvers act in the app), PDF download, and the payment schedule preview. Orgs without the CPQ subscription get the API's "Subscription required" error.
README and CHANGELOG updated.
Testing
tests/test_quotes.py: list filters, get by number and byQT-ID, ongoing TCV output, display-options merge and validation, partial update, submit, send with and without a PDF, the subscription error, and the template.Made with Cursor