CustomerInvoice — Acomba
Entité unifiée FicheTransactions · entité native Acomba : Transaction.
Page générée, ne pas éditer — voir la version du dataset pour la provenance.
Voir aussi : page CustomerInvoice · QuickBooks Online · Avantage · Autotask · ProShop.
Opérations
| Opération | Statut | Champs exhaustifs | Flags | Limitations |
|---|---|---|---|---|
| EXTRACT (GET) | Supportée | non | Header AcoSDK.Invoicing036 (index/clés) + GetCard AcoSDK.Transaction030 pour la fiche complète. ; Un seul filtre indexé à la fois, sauf la paire NoFacture + CompteRecevable_No. ; Index Acomba : NoFacture=index 1, NoUniqueSystemeSource=GetCard direct, DateFacture=index 6, Fiche_DerniereModification=index 17. ; Filtres MontantNonPaye, Description, Référence, NoVendeur, NoTerritoire appliqués en post-extraction (en mémoire, non indexés). ; Lignes supprimées (ILStatus!=0) et transactions supprimées (InStatus!=0) exclues. | |
| CREATE (POST) | Supportée | non | simulate ; auto_fetch: CompteRecevable_No, TermeDePaiement, NoVendeur, NoTerritoire, NoProjet, NoModeExpedition, InfoClient | Numérotation des lignes : 990 lignes au total maximum pour les produits (991 à 998 sont réservés par Acomba aux taxes/frais de transport). Le total compte les lignes inscrites PLUS les lignes vides laissées par les trous de numérotation : 913 lignes numérotées jusqu'à 1063 comptent pour 1063. Depuis v4.6.7, le SDK valide après conversion et refuse avec un message explicite ; un document plus volumineux doit être scindé. ; Pas de panachage (refusé depuis v4.6.7) : soit TOUTES les lignes de produits portent un NoLigneFacture, soit AUCUNE. Motif : pour une ligne laissée à 0, le SDK assigne la POSITION de la ligne dans la liste, pas le prochain numéro libre — mélanger les deux styles fait collisionner les numéros. |
| UPDATE (PUT) | Supportée | non | Même validation des numéros de lignes qu'au CREATE (990 lignes au total, numéros uniques, v4.6.7). | |
| DELETE (DELETE) | Non supportée | — |
Un champ absent du tableau est ? (inconnu), pas non supporté. En cas de doute, nous écrire.
DateFacture, TypeDoc, InfoClientFacturerA, InfoClientFacturerA.NoClient, LigneFacture.
Les autres champs créables sont facultatifs.
Champs
| Champ unifié | Champ natif | CREATE | UPDATE | EXTRACT | FILTER | Requis | Valeurs permises | Note |
|---|---|---|---|---|---|---|---|---|
NoFacture | InInvoiceNumber | OK | OK | OK | eq, in | Clé d'affaires (numéro de document). Au CREATE d'une Facture (TypeDoc=Factures) le numéro doit être VIDE (sinon erreur : utiliser UPDATE). Pour commande/soumission/achat un numéro peut être fourni, sinon ReserveCardNumber l'attribue. Filtre eq/in via index 1 (fetch immédiat, pas de limite Top). | ||
NoUniqueSystemeSource | CardPos | X | OK | OK | eq, in | CardPos Acomba (surrogate key). Renseigné en sortie après AddCard. Clé du ReserveCard pour l'UPDATE (UpdateTransaction). Filtre eq/in via GetCard direct. | ||
DateFacture | InDate | OK | OK | OK | ge, gt, le, lt | oui | Date de transaction. Filtrage par plage via index 6. | |
Fiche_DerniereModification | InTimeModified | X | X | OK | ge, gt, le, lt | Horodatage système (Invoicing036/Transaction). Lecture et filtrage par plage via index 17 ; exige une version Acomba récente. | ||
CompteRecevable_No | InReceivableOffset | OK | OK | OK | eq | Compte recevable (offset). En EXTRACT, filtre eq autorisé UNIQUEMENT en complément de NoFacture (forme la PKey de fetch). Au CREATE, override du recevable par défaut du client si entier valide. | ||
TypeDoc | InInvoiceType | OK | OK | OK | — | oui | Factures | Type de document (Facture/Commande/Soumission/Achat). Détermine l'entité dispatchée (CustomerInvoice/CustomerOrder/CustomerBid/SupplierOrder). Au CREATE, forcé à Factures si non commande/achat/soumission. |
SousTypeTransaction | InTransactionType | X | X | OK | — | EXTRACT : libellé déduit du TransARType (Facture/Crédit/Surpaiement/Intérêt/Autres/Dépôt/Pénalité/Aucun). | ||
EstActif | InStatus | X | X | OK | — | Calculé : InStatus == 0. Les transactions supprimées (InStatus!=0) sont exclues de l'extraction. | ||
Référence | InReference | OK | OK | OK | eq, ne | Tronqué à 30 caractères au CREATE. Filtre post-extraction (en mémoire) ; supporte aussi Contains/DoesntContains, hors vocabulaire fermé. | ||
Description | InDescription | OK | OK | OK | eq, ne | Tronqué à 255 caractères au CREATE. Filtre post-extraction (en mémoire) ; supporte aussi Contains/DoesntContains, hors vocabulaire fermé. | ||
DateExpirationDocument | InDateMax | OK | OK | OK | — | Date max / d'expiration du document. | ||
NoSoumissionRéférence | InAssociatedBid | OK | OK | OK | — | |||
NoCommandeRéférence | InAssociatedOrder | OK | OK | OK | — | |||
NoCommandeRéférence_NoUniqueSystemeSource | InOrderCP | OK | OK | X | — | CardPos de la commande/soumission liée (conversion Order->Invoice). Poussé au CREATE ; en EXTRACT seul le backorder (InOrderCP) est exposé via ExtendedProperties[NoCommande_BackOrder]. | ||
TotalFacture | InInvoiceTotal | X | X | OK | — | Calculé par Acomba (CalculateTaxes). En sortie après création. | ||
SousTotalFacture | InInvoiceSubTotal | X | X | OK | — | Calculé par Acomba. En sortie après création. | ||
MontantNonPaye | InAllPaid | X | X | OK | eq, ne, gt, ge, lt, le | EXTRACT : initialisé au total, mis à 0 si InAllPaid!=0 ; valeur réelle calculée seulement si Expand=ListeReglement. Filtre post-extraction décimal. | ||
FraisDeTransport | InSales_Shipping[i] | OK | X | OK | — | EXTRACT : somme des lignes de transport / InSales_Shipping. CREATE : ajouté via AjouterFraisTransport (ligne IL_Shipping) si non nul. | ||
Montant_MonnaieRecu | InCashProvided | OK | X | OK | — | AcoSDK.Transaction030.InCashProvided (arrondissement). Disponible selon version Acomba. | ||
boolUtiliserMontantMonnaieRecu | InUseCashProvided | OK | X | OK | — | |||
Montant_Retrait | InWithdrawalAmount | OK | X | X | — | Poussé au CREATE ; non relu dans ConvertirLaTransactionAcomba. | ||
Montant_ChangeRemit | InChangeReturned | OK | X | X | — | Poussé au CREATE ; non relu dans ConvertirLaTransactionAcomba. | ||
Montant_Depot | InDepositIsPresent | OK | X | X | — | CREATE seulement, sur Commande : positionne InDepositIsPresent si dépôt non nul. Non relu. | ||
NoVendeur | InSalesRepNumber | OK | OK | OK | eq, ne | EXTRACT : résolu depuis InSalesRepCP (clé naturelle). CREATE : InSalesRepCP via _NoUniqueSystemeSource sinon InSalesRepNumber ; défaut = vendeur de la fiche client. Filtre post-extraction (aussi Contains/DoesntContains). | ||
NoVendeur_NoUniqueSystemeSource | InSalesRepCP | OK | OK | OK | — | |||
Vendeur_NomComplet | — | X | X | OK | — | EXTRACT : résolu via GetSalesRepData (cache). Pas de membre natif direct sur la transaction. | ||
NoTerritoire | InTerritoryNumber | OK | OK | OK | eq, ne | EXTRACT : résolu depuis InTerritoryCP. CREATE : InTerritoryCP sinon InTerritoryNumber ; défaut = territoire de la fiche client. Filtre post-extraction (aussi Contains/DoesntContains). | ||
NoTerritoire_NoUniqueSystemeSource | InTerritoryCP | OK | OK | OK | — | |||
NoProjet | InProjectNumber | OK | OK | OK | — | Projet d'entête. CREATE : InProjectCP via _NoUniqueSystemeSource sinon InProjectNumber ; défaut = projet de la fiche client. | ||
NoProjet_NoUniqueSystemeSource | InProjectCP | OK | OK | OK | — | |||
NoModeExpedition | InShippingNumber | OK | OK | OK | — | CREATE : InShippingCP via _NoUniqueSystemeSource sinon InShippingNumber ; défaut = mode d'expédition de la fiche client. | ||
NoModeExpedition_NoUniqueSystemeSource | InShippingCP | OK | OK | OK | — | |||
NomModeExpedition | — | X | X | OK | — | EXTRACT : résolu via GetShippingName(InShippingCP). Pas de membre natif direct. | ||
CodeUsagerCreation | InUniqueUser | X | X | OK | — | EXTRACT : nom d'usager résolu via GetUserName(InUniqueUser). | ||
TermeDePaiement.NoTermeDePaiement | InTermNumber | OK | OK | OK | — | AcoSDK.Transaction027.InTermNumber. CREATE : si fourni sert de PKey CustomerTerm, sinon CuTermNumber du client ; les détails (type, %, jours...) sont auto-fetchés depuis CustomerTerm. | ||
TermeDePaiement.NomTermeDePaiement | InTermDescription | X | X | OK | — | Auto-fetché depuis CustomerTerm au CREATE ; relu à l'extraction. | ||
TermeDePaiement.TypeTerme | InTermType | X | X | OK | — | |||
TermeDePaiement.EscompteJour_Escompte | InTermPercent | X | X | OK | — | |||
TermeDePaiement.EscompteJour_NbJour | InNumberOfDays | X | X | OK | — | |||
TermeDePaiement.EscompteJour_NbJourMax | InDueDays | X | X | OK | — | |||
InfoClientFacturerA | — | OK | OK | OK | — | oui | Sous-objet client a facturer (FicheClient), exige au CREATE. Objet agrege : ses membres sont decrits par les entrees InfoClientFacturerA.* ci-dessous, il n'a pas de membre natif propre. | |
InfoClientFacturerA.NoClient | InCustomerSupplierCP | OK | OK | OK | — | oui | Client SoldTo/facturé. CREATE : résolu en CardPos via NoClient (PKey_CuNumber) ou via NoUniqueSystemeSource ; gestion auto du Facturé-À (CuInvoicedToCP). Requis. Source EXTRACT : InInvoicedToCP/InCustomerSupplierCP. | |
InfoClientFacturerA.NoUniqueSystemeSource | InCustomerSupplierCP | OK | OK | OK | — | CardPos du client facturé. | ||
InfoClientFacturerA.NomClient | InName | OK | OK | OK | — | Si seul NoClient fourni (adresse/ville/nom/CP vides), boolInfoClientFacturerA_ForcerInfoAcomba récupère les infos depuis la fiche client Acomba. | ||
InfoClientFacturerA.Adresse | InAddress | OK | OK | OK | — | |||
InfoClientFacturerA.Ville | InCity | OK | OK | OK | — | |||
InfoClientFacturerA.CodePostal | InPostalCode | OK | OK | OK | — | |||
InfoClientFacturerA.Pays | InISOCountryCode | OK | OK | OK | — | |||
InfoClientFacturerA.NomPersonneContact | InCareOf | OK | OK | OK | — | |||
InfoClientFacturerA.ListeTelephonique[].Numero | InPhoneNumber[PhoneType] | OK | OK | OK | — | Téléphones indexés Ph_Number/Ph_Fax/Ph_User1/Ph_User2 (+ InPhoneDescription, InPhoneExtention). | ||
InfoClientLivrerA.NoClient | InCustomerSupplierNumber | OK | OK | OK | — | Client ShipTo/livré. EXTRACT : déduit (égal au SoldTo si pas de livraison distincte ; vide pour les achats). | ||
InfoClientLivrerA.NomClient | InShipName | OK | OK | OK | — | |||
InfoClientLivrerA.Adresse | InShipAddress | OK | OK | OK | — | |||
InfoClientLivrerA.Ville | InShipCity | OK | OK | OK | — | |||
InfoClientLivrerA.CodePostal | InShipPostalCode | OK | OK | OK | — | |||
InfoClientLivrerA.Pays | InShipISOCountryCode | OK | OK | OK | — | |||
InfoClientLivrerA.NomPersonneContact | InShipCareOf | OK | OK | OK | — | |||
InfoClientLivrerA.ListeTelephonique[].Numero | InShipPhoneNumber[PhoneType] | OK | OK | OK | — | Téléphones de livraison indexés (+ InShipPhoneDescription, InShipPhoneExtention). | ||
LigneFacture | — | OK | OK | OK | — | oui | Collection des lignes de la facture (LigneTransactions). Au moins une ligne est exigee au CREATE. Objet agrege : ses membres sont decrits par les entrees LigneFacture[].* ci-dessous. | |
LigneFacture[].strNoProduit | ILProductNumber[i] | OK | OK | OK | — | Numéro de produit. CREATE : résolu via Product.PKey_PrNumber (alimente ILProductCP, groupe, prix si demandé). | ||
LigneFacture[].strNoProduit_NoUniqueSystemeSource | ILProductCP[i] | OK | OK | OK | — | |||
LigneFacture[].strNoGroupeProduit | ILProductGroupNumber[i] | OK | OK | OK | — | CREATE : ILProductGroupCP via _NoUniqueSystemeSource sinon résolu depuis ILProductGroupNumber (obligatoire si la ligne n'est pas un commentaire et que le produit n'a pas de groupe). | ||
LigneFacture[].strNoGroupeProduit_NoUniqueSystemeSource | ILProductGroupCP[i] | OK | OK | OK | — | |||
LigneFacture[].DescriptionLigne | ILDescription[i] | OK | OK | OK | — | Tronqué à 90 caractères au CREATE ; caractères de contrôle nettoyés. | ||
LigneFacture[].QteFacture | ILInvoicedQty[i] | OK | OK | OK | — | |||
LigneFacture[].QteCommande | ILOrderedQty[i] | OK | OK | OK | — | |||
LigneFacture[].PrixOrig | ILPriceBeforeDiscount[i] | OK | OK | OK | — | Prix avant rabais. CREATE écrit aussi ILOriginalPrice (Transaction030). Auto-résolu (prix selon niveau client) si bool_ChercherLesPrixSelonClient. | ||
LigneFacture[].PrixFinal | ILSellingPrice[i] | OK | OK | OK | — | Prix de vente final. | ||
LigneFacture[].PrixCoutant | ILCost[i] | OK | OK | OK | — | |||
LigneFacture[].MontantRabais_pct | ILDiscountPercent[i] | OK | OK | OK | — | Pourcentage 0-99.99 ; natif = pct x 100. Recalcule PrixOrig/PrixFinal si l'un manque. | ||
LigneFacture[].NoLigneFacture | ILLineNumber[i] | OK | OK | OK | — | Plage permise 1 à 990 (lignes de produits) ; 991 à 998 sont réservés par Acomba aux taxes et frais de transport. 0 = pas de numéro imposé : le SDK assigne alors la POSITION de la ligne dans la liste, pas le prochain numéro libre — d'où l'interdiction de panacher lignes numérotées et lignes à 0 (v4.6.7). Les trous de numérotation comptent comme des lignes vides dans le total de 990. | ||
LigneFacture[].TypeLigne | ILType[i] | OK | OK | OK | — | Lignes standard et taxes traitées ; lignes système/transport gérées à part. Lignes supprimées (ILStatus!=0) ignorées. | ||
LigneFacture[].NoUniqueSystemeSource | CardPos | X | X | OK | — | EXTRACT : CardPos de la ligne via AcoSDK.InvoicingLine022. | ||
LigneFacture[].NoCompteGL | ILCharterNumber | X | X | OK | — | EXTRACT : résolu depuis ILCharterCP (QuickFetch). Compte GL de l'affectation. | ||
LigneFacture[].NoCompteGL_NoUniqueSystemeSource | ILCharterCP[i] | OK | X | OK | — | CREATE : ILCharterCP utilisé pour la ligne de transport (compte GL transport). | ||
LigneFacture[].NoProjet | ILProjectNumber[i] | OK | OK | OK | — | |||
LigneFacture[].NoProjet_NoUniqueSystemeSource | ILProjectCP[i] | OK | OK | OK | — | |||
LigneFacture[].NoProduitFournisseur_NoUniqueSystemeSource | ILProductSupplierCP[i] | OK | OK | X | — | |||
LigneFacture[].MustHideInvoicingLineToFinalPrinting | ILBypassPrinting[i] | OK | OK | X | — | |||
LigneFacture[].BackOrderPermit | ILKeepBO[i] | OK | OK | X | — | Conservation du backorder (défaut OUI). Lié à ctrl_AllowOrderCreationOnInsufficientStock. | ||
LigneFacture[].NoSerieProduit_NoUniqueSystemSource | ILProductCPLinkedToSerialNumber[i] | OK | OK | X | — | Numéro de série ; ILSerialNumberType déduit (Sale/Purchase/Return/Credit) selon type doc et signe quantité. | ||
LigneFacture[].ItemProduit_NoUniqueSystemeSource | ILProductItemCP[i] | OK | OK | X | — | |||
LigneFacture[].Caracteristique01_No | ILProductItemCategory[i,1] | OK | OK | X | — | Segments/items produit (3 catégories ILProductItemCategory + ILProductItemDescriptor). | ||
LigneFacture[].Montant_SousTotalLigne | ILTotalAmount[i] | X | X | OK | — | |||
ExtendedProperties | — | X | X | OK | — | EXTRACT : ExtendedProperties[NoCommande_BackOrder] rempli si la facture a généré une commande backorder (InOrderCP). |
Axes : OK supporté · X non supporté · ~ partiel · DEPR déprécié · EXP expérimental · ? inconnu.
Opérateurs en syntaxe $filter : eq égal · ne différent · gt/ge plus grand (ou égal) · lt/le plus petit (ou égal) · in dans une liste (InList) · contains contient · startswith commence par · — non filtrable.
Expands (sous-objets extractibles)
| Expand unifié | Type natif | Statut | Note |
|---|---|---|---|
ListeReglement | — | Supportée | Paiements de la facture (GetPaiement par CardPos). Recalcule MontantNonPaye = TotalFacture - somme(escompte+paiement). |
ProductGroup_PurchaseGlAccount | PGPurchaseAccountNumber | Supportée | Joint les comptes GL d'achat des groupes de produits (AcoSDK.ProductGroup.PGPurchaseAccountNumber, jusqu'à 5) aux lignes. |
Notes
Vue FACTURATION de la facture client : DTO unifié FicheTransactions, natif AcoSDK.Transaction (header indexé AcoSDK.Invoicing036 + fiche complète AcoSDK.Transaction030/ITransaction ; lignes via AcoSDK.InvoicingLine022). Les lignes (LigneFacture) sont des lignes de PRODUITS. À distinguer de CustomerARInvoice (vue comptable TransAR : lignes = affectations GL).
Dispatch (AcombaSDK_GlobalInterfacor.cs / AcombaSDK_ExtractManager.cs) :
- EXTRACT -> GetInvoices.ExtractByQuerySettings (entité CustomerInvoice/CustomerOrder/CustomerBid/SupplierOrder).
- CREATE/UPDATE -> SetInvoices.CreateTransactionFromERPConnectorTask. Le payload est enveloppé { FACTURE: <FicheTransactions>, ListeModePaiements: [...], OptionsSpecialesFacture: {...} }.
- DELETE = unsupported (NotImplementedException global SDK).
CREATE vs UPDATE : la création d'une Facture exige NoFacture VIDE (CreationFacture refuse un numéro déjà assigné) ; un numéro existant relève de l'UPDATE (UpdateTransaction par CardPos/NoUniqueSystemeSource, ModifyCard). Pour commande/soumission/achat un numéro peut être fourni (ReserveCardNumber sinon).
simulate : header *SIMULATE_ONLY=TRUE -> CreationFacture(param_SkipAcombaCreation=true) calcule les taxes et les totaux sans AddCard ; rien n'est créé dans Acomba.
auto_fetch : si InfoClientFacturerA ne contient qu'un NoClient, les coordonnées sont récupérées de la fiche client Acomba ; le compte recevable (CompteRecevable_No), le terme de paiement et ses détails, le vendeur, le territoire, le projet et le mode d'expédition par défaut sont hérités de la fiche client si non fournis ; les prix de ligne sont résolus selon le niveau de prix du client si demandé.
Filtres EXTRACT : un seul filtre indexé à la fois, sauf la paire NoFacture + CompteRecevable_No. MontantNonPaye, Description, Référence, NoVendeur et NoTerritoire sont des filtres POST-EXTRACTION (évalués en mémoire). Les opérateurs Contains/DoesntContains existent dans le code mais sortent du vocabulaire fermé (eq/ne/in/gt/gte/lt/lte/startswith) et ne sont donc pas listés.
Liste de champs NON exhaustive (fields_exhaustive: false). 'sdk:' à null pour les champs calculés / résolus (Vendeur_NomComplet, NomModeExpedition, ExtendedProperties...) sans membre natif direct.