Universal Web Platform · Prezzi degli articoli

ProductPrice: i prezzi per listino, variante, unità di misura, confezione, quantità e promozione

Prezzi degli articoli: i prezzi per listino, variante, unità di misura, confezione, quantità e promozione. Nel web service è il tipo PRODUCTPRICE (valore 20 di DataType); gli oggetti sono della classe ProductPrice e viaggiano nella lista ObjectListProductPrice della richiesta e della risposta.

Ogni prezzo è una riga identificata da articolo e progressivo. La riga dice a quale listino, variante, unità di misura e confezione si applica, se vale solo in un intervallo di quantità (SpecificaPerQuantita con DaQuantita e AQuantita) e se è un prezzo promozionale, con il periodo e il prezzo pieno da mostrare barrato.

Il progressivo lo decide chi invia: per un articolo con tre prezzi usa 1, 2 e 3. Reinviando lo stesso articolo e progressivo la riga viene aggiornata.

Scheda tecnica

VoceValore
Tipo di datoPRODUCTPRICE = 20
ClasseProductPrice
Lista nella richiesta e nella rispostaObjectListProductPrice
Tabella letta da QUERYPrezziListini — è il nome da usare davanti alle colonne in SQLFilter
Operazioni ammesseQUERY (3), INSERTORMODIFY (0), DELETE (1), TRUNCATETABLE (2)
Campi chiaveArticolo + Progressivo + StringaVariante + Listino + UnitaMisura + Derivato + SpecificaPerQuantita + Package + DaQuantita + AQuantita + InPromozione + CodicePromozione — identificano il record: con gli stessi valori INSERTORMODIFY aggiorna, con valori nuovi crea
Chiave per cancellare con DeletingClassArticolo|Progressivo|StringaVariante|Listino|UnitaMisura|Derivato|SpecificaPerQuantita|Package|DaQuantita|AQuantita|InPromozione|CodicePromozione
Chiave per le conferme di ricezioneArticolo|Progressivo — come si usa

I campi di ProductPrice

La colonna Obbligatorio riporta i campi chiave e quelli controllati dal server prima di salvare; Predefinito è il valore che il campo assume se non lo invii; Colonna è il nome del campo nel database, da usare nei filtri di lettura.

CampoTipoObbligatorioPredefinitoColonnaA cosa serve
IDIntero lungo—0idNumero interno della riga di prezzo, assegnato dal server.
ArticoloTestoChiavevuotoarticoloCodice dell'articolo a cui appartiene il prezzo. Codice dell'archivio Articoli.
ProgressivoInteroChiave—progressivoNumero della riga di prezzo per l'articolo: insieme all'articolo identifica la riga.
StringaVarianteTestoChiavevuotoformvarValori della variante, separati come nel gestionale; vuoto per l'articolo senza variante.
ListinoTestoChiavevuotolistinoCodice del listino. Codice dell'archivio Listini.
ImportoDecimale—0importoPrezzo unitario.
UnitaMisuraTestoChiavevuotoumCodice dell'unità di misura. Codice dell'archivio Unità di misura.
DerivatoVero/falsoChiavefalsederivatoVero se il prezzo è calcolato da un altro listino.
SpecificaPerQuantitaVero/falsoChiavefalsespecqtaVero se il prezzo vale solo tra DaQuantita e AQuantita.
PackageTestoChiavevuotocodpackCodice della confezione (packaging) a cui si applica il prezzo.
DaQuantitaDecimaleChiave0daqtaQuantità minima per cui vale il prezzo.
AQuantitaDecimaleChiave0aqtaQuantità massima per cui vale il prezzo.
InPromozioneVero/falsoChiavefalseinpromoVero se è un prezzo promozionale.
CodicePromozioneTestoChiavevuotocodpromoCodice della promozione.
MostraCountDownVero/falso—falsemostracountdownVero se sul sito compare il conto alla rovescia della promozione.
PromozioneValidaDalData e ora—nessuna datapromovalidadalInizio della promozione.
PromozioneValidaAlData e ora—nessuna datapromovalidaalFine della promozione.
ImportoNoPromoDecimale—0importonopromoPrezzo pieno, da mostrare barrato accanto al prezzo in promozione.
PromoQtaMinimaDecimale—0promoqtaminimaQuantità minima per avere il prezzo promozionale.
PromoQtaMassimaDecimale—0promoqtamassimaQuantità massima a cui si applica il prezzo promozionale.
PromoLegataclienteVero/falso—falselegataclienteVero se la promozione vale solo per i clienti a cui è assegnata.

Esempi

Inserimento o aggiornamento di un record (valori di esempio). Ricorda che INSERTORMODIFY riscrive tutti i campi: quelli che non invii tornano al valore predefinito, quindi per modificare un record esistente invia il record completo.

JSON · INSERTORMODIFY
{
  "DataOperation": 0,
  "TypeObject": 20,
  "GuidPC": "gestionale-01",
  "AllInsert": false,
  "ObjectListProductPrice": [
    {
      "Articolo": "COD001",
      "Progressivo": 1,
      "StringaVariante": "",
      "Listino": "COD002",
      "UnitaMisura": "COD003",
      "Derivato": false,
      "SpecificaPerQuantita": false,
      "Package": "COD004",
      "DaQuantita": 1,
      "AQuantita": 1,
      "InPromozione": false,
      "CodicePromozione": "COD005"
    }
  ]
}

Lettura con filtro: fino a 100 record, ignorando le conferme di ricezione.

JSON · QUERY
{
  "DataOperation": 3,
  "TypeObject": 20,
  "GuidPC": "gestionale-01",
  "SQLFilter": "PrezziListini.Articolo = 'COD001'",
  "QueryParameter": {
    "IgnoreImportRecord": true,
    "StartingRecord": 1,
    "LimitRecord": 100
  }
}

Cancellazione: bastano i campi chiave.

JSON · DELETE
{
  "DataOperation": 1,
  "TypeObject": 20,
  "GuidPC": "gestionale-01",
  "ObjectListProductPrice": [
    {
      "Articolo": "COD001",
      "Progressivo": 1,
      "StringaVariante": "",
      "Listino": "COD004",
      "UnitaMisura": "COD005",
      "Derivato": false,
      "SpecificaPerQuantita": false,
      "Package": "COD008",
      "DaQuantita": 1,
      "AQuantita": 1,
      "InPromozione": false,
      "CodicePromozione": "COD0012"
    }
  ]
}

Le regole su formati, date, numeri e compressione sono in formato e trasporto; esempi completi in esempi di codice.