Script calculare Pret

<< Click to Display Table of Contents >>

Navigation:  WinArhi > Fereastra principala > Oferte si Comenzi deschise > Meniu > Optiuni > Editare Termopan >

Script calculare Pret

Script calculare preț

BrowseBlueLeft BrowseBlueRight

 

 

Aici se pot defini metode complexe de calcul al prețului sau verificări dimensionale bazate pe dimensiunile termopanului, greutate sau formă.

Scriptul se poate scrie folosind instrucțiuni ale limbajului de programare Pascal.

În figura de mai jos este un exemplu de script care dublează prețul termopanului dacă lățimea sau înălțimea termopanului depășește 2000mm.

 

ScriptPretTermopan

 

Cod - codul scriptului. Acest cod poate fi ales în lista de termopane ca și script de calcul al prețului sau ca și script de avertizare.

 

Denumire - denumirea script-ului;

 

Script - memo-ul care conține lista de instrucțiuni, script-ul de calcul.

 

Toate valorile de intrare și ieșire se refera la o bucată de termopan.

Toate preturile care intra și iasă sunt în valuta de bază (prima în listă) a bazei de date. Folosiți ConvertToBaseCurrency dacă doriți să folosiți valori direct în script.

 

Variabile de intrare folosite în script:

GlazingCode - codul termopanului.

GlazingName - denumirea termopanului.

GlazingThickness - grosimea termopanului.

Price - preţul din tabel al termopanului care apelează scriptul. Valoarea vine în valuta de bază (prima în listă) a bazei de date.

PriceOfMaterials - preţul termopanului format din materialele definite în Straturi. Preţul include şi manoperele apelate de materialele din straturi. Valoarea este per bucată de termopan. Valoarea vine în valuta de bază (prima în listă) a bazei de date.

LossPercent - procentul de pierdere din tabel al termopanului care apelează scriptul.

Width - lățimea în milimetri.

Height - înălțimea în milimetri.

MinSurface - valoarea din câmpul SuprafataMinima.

Shape - va fi 0 dacă este formă dreptunghiulară.

HasArch - True dacă are boltă.

Weight - greutatea în Kg per bucată de termopan.

CanSpin - valoarea din câmpul SePoateRoti din tabelul de termopane.

LeftPrCode - codul profilului din stânga termopanului.

RightPrCode - .

TopPrCode - .

BottomPrCode - .

ProfileSeries - seria de profile a ferestrei.

SalesAreas - zonele de ofertare pe care este baza de date.

HasInternalSashBars - Boolean, True dacă are sprosuri interioare.

HasAppliedSashBars - Boolean, True dacă are sprosuri aplicate.

SquareRemark - observațiile ochiului

 

Variabile de ieșire folosite în script:

FinalPrice - dacă scriptul este folosit la calcularea prețului, la final va conține prețul termopanului. Valoarea va fi în valuta de bază (prima în listă) a bazei de date.

WarningMsg - se va completa cu un mesaj de avertizare, altfel trebuie să rămână vid.

ErrorMsg - se va completa cu un mesaj de eroare, altfel trebuie să rămână vid.

BlockSaveMsg - dacă este completată cu o valoare atunci salvarea comenzii va fi blocată și va fi afișat acest mesaj.

BlockReportsMsg - dacă este completată cu o valoare atunci rapoartele comenzii nu vor putea fi generate și va fi afișat acest mesaj.

ReportsMsg - valoarea completată în această variabila va fi afișată în rapoarte (câmpul ReportsMsg din tabelul Ofertare)

SquareRemark - valoarea completată în această variabila va fi reținută în observațiile ochiului

 

 

Functii apelabile din script:

function WA_AddItem(Code: String; Quantity: Double): Double - va adăuga un articol din tabelul de straturi

function GlassTableField(AFieldN: String): Variant - întoarce valoarea unui câmp din tabelul de termopane, acesta fiind pozitionat pe termopanul care apelează

function ConvertToBaseCurrency(AValue: Double; const ACurrency: String): Double - întoarce valoarea convertită la valuta de bază (prima în listă) a bazei de date. ACurrency este valuta in care este valoarea AValue. Util pentru folosirea unei valori direct în script deoarece tot ceea ce intra și iese din acest script este în valuta de bază, care este prima în listă.

 

Dacă se doreste includerea în traducerea bazei de date a unor texte acestea se vor declara ca și variabile care încep cu TrsText_. Aceste variabile vor fi inițializate la declarare în felul urmator:

 TrsText_SuprafataPreaMare: String = 'Suprafața termopanului a depasit %s mp';

Important este ca linia sa înceapă cu TrsText_ (spatiile dinainte nu contează).

Şi se va folosi, de exemplu, în felul următor (variabila SuprafataMP va trebui declarată si calculată în script):

 ErrorMsg := Format(TrsText_SuprafataPreaMare, [FloatToStr(SuprafataMP)]).