Skip to main content

Overview

This page documents all GraphQL mutations for creating and updating supply management entities including SOLPEDs, requirements, receptions, distributions, and related operations.

SOLPED Mutations

CreateSolpedSupply

Create a new SOLPED (purchase requisition). Location: Mutation.cs:839
solped
IndSupSolpedDTO
required
SOLPED data to create
id_usuario
int
required
User creating the requisition
id_categoria
int
required
Supply category
id_compania
int
required
Company code
Proveedor
string
required
Supplier/vendor code
Estado
string
required
Initial status (e.g., “Draft”, “Pending”)
CodigoSap
string
SAP code (optional, can be assigned later)
Oc
string
Purchase order number (assigned after approval)
claseDocumento
string
Document class in SAP
CreatedAt
datetime
Creation timestamp (auto-set if not provided)
UpdatedAt
datetime
Update timestamp (auto-set if not provided)
IndSupSolpedDTO
object
The created SOLPED with generated IdSolped
Example Mutation:
mutation {
  createSolpedSupply(solped: {
    id_usuario: 123
    id_categoria: 5
    id_compania: 1
    Proveedor: "PROV001"
    Estado: "Draft"
    claseDocumento: "NB"
  }) {
    IdSolped
    CodigoSap
    Estado
    CreatedAt
  }
}

UpdateSolpedSupply

Update an existing SOLPED with SAP integration. Location: Mutation.cs:933
solped
IndSupSolpedDTO
required
SOLPED data to update (must include IdSolped)
IdSolped
int
required
SOLPED identifier to update
claseDocumento
string
Document class to update
itemsCodIva
CodivaItemInput[]
required
Tax code items for SAP integration
IndSupSolpedDTO
object
The updated SOLPED with SAP integration results
Note: This mutation includes SAP Procurement API integration to register the SOLPED in the ERP system.

Requirement Mutations

CreateRequerimientoSupply

Create a new requirement (line item) within a SOLPED. Location: Mutation.cs:813
requerimiento
IndSupRequerimientoDTO
required
Requirement data to create
id_solped
int
required
Parent SOLPED identifier
id_tipo_solicitud
int
required
Request type identifier
id_medida
int
required
Unit of measure identifier
Compras
string
Purchasing organization code
Imputacion
string
Account assignment type (e.g., “K” for cost center)
Articulos
string
Article/item description
Activo
string
Asset information (if applicable)
Descripcion
string
Detailed item description
Almacen
string
required
Warehouse/storage location code
Material
string
Material code (SAP material master)
id_centro_costo
int
Primary cost center identifier
Cantidad
int
required
Quantity requested
Unidades
int
required
Number of units
Valor
decimal
required
Unit value/price
Porcentaje
bool
required
Whether distribution is by percentage (true) or fixed value (false)
FechaEntrega
datetime
required
Requested delivery date
Oc
string
Purchase order number (if already assigned)
IndSupRequerimientoDTO
object
The created requirement with generated IdRequerimiento
Example Mutation:
mutation {
  createRequerimientoSupply(requerimiento: {
    id_solped: 456
    id_tipo_solicitud: 1
    id_medida: 3
    Compras: "0001"
    Imputacion: "K"
    Articulos: "Office Supplies - Printer Paper"
    Descripcion: "A4 White Paper 500 sheets per ream"
    Almacen: "WH01"
    Material: "MAT-12345"
    id_centro_costo: 100
    Cantidad: 50
    Unidades: 50
    Valor: 5.50
    Porcentaje: false
    FechaEntrega: "2026-04-15T00:00:00"
  }) {
    IdRequerimiento
    Articulos
    Cantidad
    Valor
    FechaEntrega
  }
}

UpdateRequerimientoSupply

Update an existing requirement and sync with SAP. Location: Mutation.cs:1440
requerimiento
IndSupRequerimientoDTO
required
Requirement data to update (must include IdRequerimiento)
IdRequerimiento
int
required
Requirement identifier to update
IndSupRequerimientoDTO
object
The updated requirement with SAP integration results
Note: This mutation triggers SAP Procurement API integration to update or create the corresponding SAP requisition.

Distribution Mutations

CreateDistribucionesSupply

Create cost center and account distributions for requirements. Location: Mutation.cs:891
distribuciones
IndSupDistribucionDTO[]
required
List of distribution records to create
id_requerimiento
int
required
Requirement identifier
id_cuenta_mayor
int
required
General ledger account identifier
id_centro_costo
int
required
Cost center identifier
Valor
decimal
required
Distribution value (percentage 0-100 if Porcentaje=true, or fixed amount)
IndSupDistribucionDTO[]
array
List of created distribution records with generated identifiers
Example Mutation:
mutation {
  createDistribucionesSupply(distribuciones: [
    {
      id_requerimiento: 789
      id_cuenta_mayor: 50
      id_centro_costo: 100
      Valor: 60.0
    },
    {
      id_requerimiento: 789
      id_cuenta_mayor: 51
      id_centro_costo: 101
      Valor: 40.0
    }
  ]) {
    IdDistribucion
    Valor
    CentroCosto {
      Nombre
    }
  }
}
Note: When Porcentaje=true on the parent requirement, the sum of all Valor fields should equal 100.

Reception Mutations

CreateRecepcionSupply

Create a goods receipt document. Location: Mutation.cs:857
recepcion
IndSupRecepcionDTO
required
Reception data to create
TextoCabecera
string
required
Header text describing the reception
CodRecepcion
string
Reception code (can be assigned from SAP)
IndSupRecepcionDTO
object
IdRecepcion
int
Generated reception identifier
TextoCabecera
string
Header text
CodRecepcion
string
Reception code
Example Mutation:
mutation {
  createRecepcionSupply(recepcion: {
    TextoCabecera: "Goods Receipt - Purchase Order 4500012345"
    CodRecepcion: "REC-2026-001"
  }) {
    IdRecepcion
    TextoCabecera
    CodRecepcion
  }
}

CreateCantidadesSupply

Record received quantities linking receptions to requirements. Location: Mutation.cs:877
cantidades
IndSupCantidadDTO[]
required
List of quantity records to create
id_requerimiento
int
required
Requirement identifier
id_recepcion
int
required
Reception document identifier
Cantidad
decimal
required
Quantity received
IndSupCantidadDTO[]
array
List of created quantity records with generated identifiers
Example Mutation:
mutation {
  createCantidadesSupply(cantidades: [
    {
      id_requerimiento: 789
      id_recepcion: 12
      Cantidad: 45.0
    },
    {
      id_requerimiento: 790
      id_recepcion: 12
      Cantidad: 30.0
    }
  ]) {
    IdCantidad
    Cantidad
    Requerimiento {
      Articulos
    }
  }
}

RegistroRecepcionSupply

Register goods receipt in SAP MM module. Location: Mutation.cs:868
objeto
ApiRecepcionRequestDto
required
SAP reception request object with header and line items
ApiRecepcionResponseContainer
object
success
bool
Whether the SAP posting was successful
message
string
Response message from SAP
documentNumber
string
SAP material document number (if successful)
errors
string[]
List of error messages (if any)
Note: This mutation integrates with SAP to create a material document (MIGO transaction equivalent).

Purchase Order Mutations

CreateOcProcurment

Create a purchase order in SAP from an approved SOLPED. Location: Mutation.cs:906
solped
string
required
SOLPED number (SAP code)
proveedor
string
required
Supplier/vendor code
incoterm
string
required
Incoterm code (e.g., “EXW”, “FOB”, “CIF”)
organizacion
string
required
Purchasing organization code
clasedocumento
string
required
Document class in SAP (e.g., “NB”, “ZNB”)
items
ApiOcRequestDetailDto[]
required
List of purchase order line items
posicion
string
required
Line item number (will be multiplied by 10 in SAP format)
material
string
Material code
cantidad
string
required
Quantity
precio
string
required
Unit price
centroCosto
string
Cost center
cuentaMayor
string
G/L account
fechaEntrega
string
Delivery date (format: YYYYMMDD)
ApiOcResponseContainer
object
success
bool
Whether the purchase order was created successfully
purchaseOrder
string
SAP purchase order number (if successful)
message
string
Response message from SAP
errors
string[]
List of error messages (if any)
Example Mutation:
mutation {
  createOcProcurment(
    solped: "1000123456"
    proveedor: "PROV001"
    incoterm: "EXW"
    organizacion: "0001"
    clasedocumento: "NB"
    items: [
      {
        posicion: "1"
        material: "MAT-12345"
        cantidad: "50"
        precio: "5.50"
        centroCosto: "CC100"
        cuentaMayor: "GL50"
        fechaEntrega: "20260415"
      }
    ]
  ) {
    success
    purchaseOrder
    message
  }
}
Note:
  • Line item positions are automatically multiplied by 10 (SAP convention: 10, 20, 30…)
  • Requires valid SAP credentials and connectivity
  • SOLPED must be approved before creating purchase order

PQR Mutations

CreatePqr

Create a PQR (inquiry, complaint, or claim) related to a SOLPED. Location: Mutation.cs:632
solicitud
IndSupPqrDTO
required
PQR data to create
id_tipo_solicitud
int
required
Type of request (1=Petición, 2=Queja, 3=Reclamo)
id_solped
int
required
Related SOLPED identifier
Asunto
string
required
Subject/title of the PQR
Descripcion
string
required
Detailed description
id_motivo
int
Reason/motive identifier
id_resolucion
int
Resolution identifier (filled when resolved)
Archivo
string
Attachment file path or URL
IndSupPqrDTO
object
The created PQR with generated IdPqr and AuFechaCreacion timestamp
Example Mutation:
mutation {
  createPqr(solicitud: {
    id_tipo_solicitud: 2
    id_solped: 123
    id_motivo: 5
    Asunto: "Delayed delivery of materials"
    Descripcion: "The materials from PO 4500012345 were supposed to arrive on March 1st but have not been delivered yet. Please investigate."
    Archivo: "/uploads/pqr/evidence-123.pdf"
  }) {
    IdPqr
    Asunto
    AuFechaCreacion
    Solped {
      CodigoSap
      Proveedor
    }
  }
}

UpdatePqr

Update an existing PQR (typically to add resolution). Location: Mutation.cs:649
solicitud
IndSupPqrDTO
required
PQR data to update (must include IdPqr)
IdPqr
int
required
PQR identifier to update
id_resolucion
int
Resolution identifier when closing the PQR
IndSupPqrDTO
object
The updated PQR record

Workflow Example

Here’s a complete workflow for creating a purchase requisition:
# Step 1: Create SOLPED
mutation {
  createSolpedSupply(solped: {
    id_usuario: 123
    id_categoria: 5
    id_compania: 1
    Proveedor: "PROV001"
    Estado: "Draft"
  }) {
    IdSolped
  }
}

# Step 2: Add requirements (repeat for each line item)
mutation {
  createRequerimientoSupply(requerimiento: {
    id_solped: 456  # From step 1
    id_tipo_solicitud: 1
    id_medida: 3
    Articulos: "Office Paper"
    Almacen: "WH01"
    Cantidad: 50
    Unidades: 50
    Valor: 5.50
    Porcentaje: true
    FechaEntrega: "2026-04-15T00:00:00"
  }) {
    IdRequerimiento
  }
}

# Step 3: Add cost distributions
mutation {
  createDistribucionesSupply(distribuciones: [
    {
      id_requerimiento: 789  # From step 2
      id_cuenta_mayor: 50
      id_centro_costo: 100
      Valor: 60.0
    },
    {
      id_requerimiento: 789
      id_cuenta_mayor: 51
      id_centro_costo: 101
      Valor: 40.0
    }
  ]) {
    IdDistribucion
  }
}

# Step 4: Update SOLPED to submit for approval
mutation {
  updateSolpedSupply(
    solped: { IdSolped: 456, claseDocumento: "NB" }
    itemsCodIva: [{ item: "1", codiva: "I1" }]
  ) {
    CodigoSap
    Estado
  }
}

# Step 5: After approval, create purchase order
mutation {
  createOcProcurment(
    solped: "1000123456"  # SAP code from step 4
    proveedor: "PROV001"
    incoterm: "EXW"
    organizacion: "0001"
    clasedocumento: "NB"
    items: [{ posicion: "1", cantidad: "50", precio: "5.50" }]
  ) {
    purchaseOrder
  }
}

Build docs developers (and LLMs) love