Files
2026-03-18 15:04:18 +01:00

164 lines
3.3 KiB
GraphQL

mutation createInvoice(
$status: InvoiceStatus!
$vendorId: UUID!
$businessId: UUID!
$orderId: UUID!
$shiftId: UUID
$paymentTerms: InovicePaymentTerms
$invoiceNumber: String!
$issueDate: Timestamp!
$dueDate: Timestamp!
$hub: String
$managerName: String
$vendorNumber: String
$roles: Any
$charges: Any
$otherCharges: Float
$subtotal: Float
$amount: Float!
$notes: String
$staffCount: Int
$chargesCount: Int
) @auth(level: USER) {
invoice_insert(
data: {
status: $status
vendorId: $vendorId
businessId: $businessId
orderId: $orderId
shiftId: $shiftId
paymentTerms: $paymentTerms
invoiceNumber: $invoiceNumber
issueDate: $issueDate
dueDate: $dueDate
hub: $hub
managerName: $managerName
vendorNumber: $vendorNumber
roles: $roles
charges: $charges
otherCharges: $otherCharges
subtotal: $subtotal
amount: $amount
notes: $notes
staffCount: $staffCount
chargesCount: $chargesCount
}
)
}
mutation updateInvoice(
$id: UUID!
$status: InvoiceStatus
$vendorId: UUID
$businessId: UUID
$orderId: UUID
$shiftId: UUID
$paymentTerms: InovicePaymentTerms
$invoiceNumber: String
$issueDate: Timestamp
$dueDate: Timestamp
$hub: String
$managerName: String
$vendorNumber: String
$roles: Any
$charges: Any
$otherCharges: Float
$subtotal: Float
$amount: Float
$notes: String
$staffCount: Int
$chargesCount: Int
$disputedItems: Any
$disputeReason: String
$disputeDetails: String
) @auth(level: USER) {
invoice_update(
id: $id
data: {
status: $status
vendorId: $vendorId
businessId: $businessId
orderId: $orderId
shiftId: $shiftId
paymentTerms: $paymentTerms
invoiceNumber: $invoiceNumber
issueDate: $issueDate
dueDate: $dueDate
hub: $hub
managerName: $managerName
vendorNumber: $vendorNumber
roles: $roles
charges: $charges
otherCharges: $otherCharges
subtotal: $subtotal
amount: $amount
notes: $notes
staffCount: $staffCount
chargesCount: $chargesCount
disputedItems: $disputedItems
disputeReason: $disputeReason
disputeDetails: $disputeDetails
}
)
}
mutation deleteInvoice($id: UUID!) @auth(level: USER) {
invoice_delete(id: $id)
}
# ------------------------------------------------------------
# APPROVE INVOICE
# Called by the client to approve a shift-day completion record.
# Sets status to APPROVED, triggering the invoice-ready state.
# ------------------------------------------------------------
mutation approveInvoice($id: UUID!) @auth(level: USER) {
invoice_update(
id: $id
data: {
status: APPROVED
}
)
}
# ------------------------------------------------------------
# DISPUTE INVOICE
# Called by the client to dispute a shift-day completion record.
# Sets status to DISPUTED and stores the dispute details.
# ------------------------------------------------------------
mutation disputeInvoice(
$id: UUID!
$disputedItems: Any
$disputeReason: String!
$disputeDetails: String
) @auth(level: USER) {
invoice_update(
id: $id
data: {
status: DISPUTED
disputedItems: $disputedItems
disputeReason: $disputeReason
disputeDetails: $disputeDetails
}
)
}