-
Liquid error: Index was outside the bounds of the array.
Exemples de script d'assemblage
Script d'assemblage en présence de documents tributaires de la valeur d'un champ
Le script de cet exemple permet d'assembler des documents en ensembles de documents définis par une définition d'ensemble de documents. La définition d'ensemble de documents contient une section intitulée Formulaire de l'emprunteur et des références aux définitions de document suivantes :
- Passeport
- Documents du garant
- Documents du co-emprunteur
- Référence de l'employeur
La section Formulaire de l'emprunteur inclut les champs suivants :
- Nom du co-emprunteur
- Montant du prêt
Les documents à inclure dans l'ensemble de documents dépendent de la valeur du champ Montant du prêt. Le script contient deux valeurs seuil qui déterminent quels documents sont inclus dans l'ensemble :
- Si le montant du prêt est inférieur à la première valeur seuil, l'ensemble de documents doit uniquement contenir un passeport.
- Si le montant du prêt est supérieur à la première valeur seuil, mais inférieur à la seconde valeur seuil, l'ensemble de documents doit contenir un passeport et une référence de l'employeur.
- Si le montant du prêt est supérieur à la seconde valeur seuil, l'ensemble de documents doit contenir un passeport, une référence de l'employeur et les documents du garant.
En plus de ceci, si le champ Nom du co-emprunteur contient une valeur, l'ensemble de documents doit contenir les documents du co-emprunteur.
Le script ci-dessous a recours à cette logique pour assembler les ensembles de documents.
à l'aide deSystem.Collections.Generic;
intcreditSum=0;
boolcreditSumFound=false;
stringcocreditor="";
intformCount=0;
stringformName=« Formulaire de l'emprunteur »;
// Définitions de document utilisées dans l'ensemble de documents
intreferenceFromWorkCount=0;
stringreferenceFromWorkName=« Référence de l'employeur »;
intguaranteeDocsCount=0;
stringguaranteeDocsName=« Documents du garant »;
intcocreditorDocsCount=0;
stringcocreditorDocsName=« Documents du co-emprunteur »;
intpassportCount=0;
stringpassportName=« Passeport »;
foreach(IBatchItemiteminBatchItems){
// Trouver le formulaire et déterminer le montant du prêt
if(item.Type==TBatchItemType.BIT_Page)
{
if(item.AsPage.SectionName!=formName)
AssemblingErrors.AddCustomError(« Ne peut pas contenir les sections suivantes : « +item.AsPage.SectionName,1);
else
{
cocreditor=item.AsPage.Document.IndexedItemValue("Nom de l'emprunteur").ToString();
stringcreditSumText=item.AsPage.Document.IndexedItemValue(« Montant du prêt »).ToString();
if(!int.TryParse(creditSumText,outcreditSum))
AssemblingErrors.AddCustomError(« Le montant du prêt n'a pas été reconnu : « +creditSumText,1);
else
creditSumFound=true;
formCount++;
}
}
// Compter les documents dans l'ensemble
elseif(item.Type==TBatchItemType.BIT_Document){
if(item.AsDocument.TemplateName==referenceFromWorkName)
referenceFromWorkCount++;
elseif(item.AsDocument.TemplateName==guaranteeDocsName)
guaranteeDocsCount++;
elseif(item.AsDocument.TemplateName==passportName)
passportCount++;
elseif(item.AsDocument.TemplateName==cocreditorDocsName)
cocreditorDocsCount++;
else
AssemblingErrors.AddCustomError(« L'ensemble de documents ne peut pas contenir le document »+item.AsDocument.TemplateName,1);
}
}
// Vérifier le nombre de sections et de documents dans l'ensemble
if(formCount>1)
AssemblingErrors.AddCustomError(« Il y a trop de documents du type : « +formName,formCount);
elseif(formCount<1)
AssemblingErrors.AddCustomError(« Les documents suivants manquent : « +formName,1);
if(passportCount>1)
AssemblingErrors.AddCustomError(« Il y a trop de documents du type : « +passportName,passportCount);
elseif(passportCount<1)
AssemblingErrors.AddCustomError(« Les documents suivants manquent : « +passportName,1);
// Vérifier que l'ensemble de documents contient un co-emprunteur si un nom de co-emprunteur est présent dans le formulaire
if(cocreditor!=""&&cocreditorDocsCount<1)
AssemblingErrors.AddCustomError(« Les documents suivants manquent : « +cocreditorDocsName,1);
elseif(cocreditor!=""&&cocreditorDocsCount>1)
AssemblingErrors.AddCustomError(« Il y a trop de documents du type : « +cocreditorDocsName,cocreditorDocsCount);
elseif(cocreditor==""&&cocreditorDocsCount>0)
AssemblingErrors.AddCustomError(« Il y a trop de documents du type : « +cocreditorDocsName,cocreditorDocsCount);
// Vérifier que l'ensemble de documents contient tous les documents requis, car le montant du prêt dépasse l'un des seuils
if(creditSumFound)
{
if(creditSum>50000)// nécessite une référence de l'employeur
{
if(referenceFromWorkCount>1)
AssemblingErrors.AddCustomError(« Il y a trop de documents du type : « +referenceFromWorkName,referenceFromWorkCount);
elseif(referenceFromWorkCount<1)
AssemblingErrors.AddCustomError(« Les documents suivants manquent : « +referenceFromWorkName,1);
}
if(creditSum>500000)// nécessite les documents du garant
{
if(guaranteeDocsCount>1)
AssemblingErrors.AddCustomError(« Il y a trop de documents du type : « +guaranteeDocsName,guaranteeDocsCount);
elseif(guaranteeDocsCount<1)
AssemblingErrors.AddCustomError(« Les documents suivants manquent : « +guaranteeDocsName,1);
}
}
Script d'assemblage qui vérifie si des documents sont manquants
Dans cet exemple, le script fonctionne avec la définition de l'ensemble de documents intitulé Documents d'identification. La définition de l'ensemble de documents contient des références aux définitions de document suivantes :
- Passeport
- Permis de conduire
Les ensembles de documents produits par le script peuvent inclure un seul document de chacun de ces types mais au moins un document de ces types.
Le script ci-dessous a recours à cette logique pour assembler des ensembles de documents.
à l'aide de System.Collections.Generic;
à l'aide de System;
string docSetName = « Documents d'identification »;
intpagesCnt = 0;
// Liste des types de documents pouvant être inclus dans l'ensemble
Liste<chaîne> autorisé =nouvelleListe<chaîne>{« Passeport », « Permis de conduire »};
// Limite du nombre de documents de chaque type dans l'ensemble
Liste<int> allowedCount =nouvelleListe<int>{1,1};
// Le nombre de documents détectés dans l'ensemble
Liste<int>foundCount = nouvelleListe<int>{0,0};
// Le nombre de documents et de pages dans l'ensemble
foreach(IBatchItem itemin BatchItems) {
if(item.Type == TBatchItemType.BIT_Document) {
if(item.AsDocument.TemplateName == docSetName)
AssemblingErrors.AddCustomError(« Ne peut pas contenir un ensemble imbriqué », 1);
else if(allowed.Contains(item.AsDocument.TemplateName)) {
int i = allowed.IndexOf(item.AsDocument.TemplateName);
foundCount[i]++;
}
}
else if(item.Type == TBatchItemType.BIT_Page) pagesCnt++;
}
// Vérifier le nombre de documents et de pages
if(foundCount[0] + foundCount[1] == 0)
AssemblingErrors.AddCustomError(« Au moins un document d'identification est requis », 1);
for(int i = 0; i < allowed.Count; i++) {
if(foundCount[i] > allowedCount[i])
AssemblingErrors.AddCustomError(« Nombre maximal de documents : « + allowed[i] + » : « + allowedCount[i]);
}
if (pagesCnt > 0) AssemblingErrors.AddCustomError(« L'ensemble de documents ne peut pas contenir de pages n'appartenant pas à un document », pagesCnt);
12.04.2024 18:16:03