Δημιουργία Φόρμας Παραστατικού για Γραφεία Τελετών (Demo xml)

Σκοπός: Το παρόν κείμενο δημιουργήθηκε με αφορμή τις εφαρμογές που αφορουν Γραφεία Τελετών ώστε να εμφανίζονται στο Παραστατικό της επιχείρησης ομαδοποιημένα τα Είδη με κριτήριο τον “Τύπο Είδους (ΣΜΕ)”. Επιπλέον η μελέτη παρουσιάζει και τη διαδικασία υπολογισμού και εκτύπωσης της Συνολικής Αξίας για κάθε Τύπο Είδους.

Βήμα 1: Αντιγραφή φόρμας
Αρχικά αντιγράφετε τη φόρμα προς τροποποίηση, μπορείτε να δείτε το κείμενο για παραμετροποίηση φόρμας.


Βήμα 2: Κώδικας πριν την εκτέλεση
Στη συνέχεια θα πρέπει να οριστεί η παράμετρος ταξινόμησης των ειδών ανά “Τύπο Είδους (ΣΜΕ)”. Αυτό γίνεται πηγαίνοντας στο Tab “Κώδικας πριν την εκτέλεση της Εκτύπωσης” και προσθέτοντας τον παρακάτω κώδικα στο τέλος της σελίδας σε μια κενή γραμμή.

//Γραφεία Τελετών
//Απαραίτητο για να ταξινομηθούν τα Είδη του Εκτυπωμένου Παραστατικού με βάση τον "Τύπο", "i00_p62 DESC" για φθίνουσα ταξινόμηση
$p85_input["order_by"] = "i00_p62";

Επόμενο βήμα είναι η αρχικοποίηση δυο προσωρινών μεταβλητών που αναφέρονται στον τρέχοντα Τύπο Είδους καθε Είδους που εκτυπώνεται και στη Συνολική Αξία ανά Τύπο. Στην ίδια οθόνη (Tab “Κώδικας πριν την εκτέλεση της Εκτύπωσης”) προσθέτετε σε μια νεα σειρά, κάτω από το πρώτο κομμάτι κώδικα που εισάγατε, τις παρακάτω επιπλέον γραμμές.
Στην τελευταία γραμμή αλλάζετε μέσα στο "array("0")", το 0 με τον κωδικό του Τύπου Είδους που δεν έχει ΦΠΑ.

//Γραφεία Τελετών
//Απαραίτητες αρχικοποιήσεις για ομαδοποίηση με βάση τον Τύπο
$p85_output["i00_p62"] = ''; //Τρέχων Τύπος Είδους
$p85_output["totals_per_i10"] = array(); //Σύνολα ανά Τύπο Είδους
$p85_output["i10NoVat"] = array("0"); //αλλάζετε τον κωδικό για τους τύπους που δεν έχουν ΦΠΑ πχ: array("1","2")

Βημα 3: Δημιουργία Στοιχείων Είδους στο body
Αφού ολοκληρώσετε τις διαδικασίες ορισμού και αρχικοποίησης των μεταβλητών, μεταφέρεστε στο tab “Form Generator”. Εδώ δημιουργείτε τα απαραίτητα στοιχεία στη φόρμα τα οποία θα “εμφανίσουν” τα είδη του παραστατικού ομαδοποιημένα ανα τύπο και την συνολική αξία των ειδών για κάθε τύπο.

Τα στοιχεία που θα δημιουργηθούν για τον Τύπο αφορούν

  1. Την Περιγραφή του Τύπου Είδους
  2. Σύνολική αξία Τύπου

Τα στοιχεία που θα δημιουργηθούν για τα Είδη αφορούν

  1. Τον Κωδικό του Είδους
  2. Την Περιγραφή του Είδους
  3. Το Σύνολο είδους

Τα παραπάνω στοιχεία θα έχουν ως τελικό αποτέλεσμα

  • Περιγραφή τύπου 1
    • Είδος 1
    • Είδος 2
    • ...
  • Σύνολο Τύπου 1

για όλους τους τύπους ειδών του παραστατικού.

Βημα 3α: Σύνολο Ανά Τύπο
Ξεκινώντας, με δεξί κλικ σε ένα κενό σημείο της φόρμας επιλέγετε “Προσθήκη Στοιχείου”. Στο νέο παράθυρο που σας ανοίγει, στο πεδίο “Περιγραφή” συμπληρώνετε το όνομα του στοιχείου και στο πεδίο της “Έκφρασης” βάζετε τον παρακάτω κώδικα ( το συγκεκριμένο στοιχείο εκτελείται για όλους τους τυπους Ειδών εκτός απο τον τελευταίο ).

return array("text"=>peg002_format_number($totals_per_i10[$i00_p62]['tot'], 2) . $currency_symbol);
/* Σύνολα ανά Τύπο */

Μεταβείτε στο tab “Συνθήκη” και αντιγράψτε τον παρακάτω κώδικα.

//Εμφανίζεται κάθε φορά που αλλάζει ο Τύπος Είδους (εκτός από την πρωτη φορά)
if($pdf->printsData->getBodyData("i00_p62")!=$i00_p62 && $i00_p62!=''){
return true;
}else{
return false;
}

Σημείωση: Επιπλέον θα πρέπει στο tab “Βασικά Στοιχεία” να συμπληρώσετε τα πεδία “Τύπος” ως “Έκφραση”, “Θέση” ως “body” και τα πεδία Γραμμών και Στηλών για όλα τα στοιχεία που περιγράφονται.

Βημα 3β: "Σύνολo" (Τίτλος)
Δημιουργήστε ένα νέο στοιχείο στη φόρμα το οποίο θα αναγράφει το κείμενο "Σύνολο:" και στην περίπτωση που ο Τύπος Είδους έχει ΦΠΑ (ελέγχει τους κωδικούς των τυπών είδους της μεταβλητής που συμπληρώθηκε στο βήμα [2]) θα συμπληρωθεί και το κείμενο "(συμπεριλαμβάνεται ΦΠΑ 24%)". Επομένως συμπληρώνουμε στην έκφραση του νέου στοιχείου τον κώδικα:

if (in_array($i00_p62, $i10NoVat)){
return "Σύνολο:";
}else{
return "Σύνολο (συμπεριλαμβάνεται ΦΠΑ 24%):";
}


και στο πεδίο της συνθήκης

if($pdf->printsData->getBodyData("i00_p62")!=$i00_p62 && $i00_p62!=''){
return true;
}else{
return false;
}



Βημα 3γ: Κενή Έκφραση
Στη συνέχεια θα προσθέσετε ένα νέο στοιχείο στο οποίο συμπληρώνετε με κενό την “'Έκφραση” και αντιγράφετε τον παρακάτω κώδικα στο tab της Συνθήκης”.

//Εμφανίζεται κάθε φορά που αλλάζει ο Τύπος Είδους
if($pdf->printsData->getBodyData("i00_p62")!=$i00_p62){
return true;
}else{
return false;
}


Βημα 3δ: Περιγραφή Τύπου Είδους
Επόμενο στοιχείο είναι η Περιγραφή για τον Τύπο Είδους. Δημιουργείτε πάλι ένα νέο στοιχείο στο οποίο θα συμπληρώσετε τον παρακάτω κώδικα στη “Έκφραση”

$p85_output["i00_p62"] = $pdf->printsData->getBodyData("i00_p62");
return array("text"=>$pdf->printsData->getBodyData("i10_p02"));
/* Τύποι Ειδών Αποθήκης -> Περιγραφή */

καθώς και τον αντίστοιχο κώδικα στο tab της “Συνθήκης”.

//Εμφανίζεται κάθε φορά που αλλάζει ο Τύπος Είδους
if($pdf->printsData->getBodyData("i00_p62")!=$i00_p62){
return true;
}else{
return false;
}


Βημα 3ε: Στοιχεία Ειδών
Σε αυτό το σημείο θα προσθέσετε τα στοιχεία που αφορούν τις πληροφορίες των ειδών του παραστατικού. Δημιουργείτε 3 νέα στοιχεία και επιλέγετε για το καθένα την κατάλληλη “Πρότυπη Έκφραση”.

  1. Κωδικός Είδους : με πρότυπη έκφραση “Κινήσεις Ειδών Αποθήκης -> Eίδος αποθήκης”

  2. Περιγραφή Είδους : βάζοντας στο πεδίο "Έκφραση"

$p87_nr01 = 0;
if($pdf->printsData->getBodyData("nr01")<0 && $pdf->printsData->getBodyData("v104")===''){
$p87_nr01 = '140000105000000';
}
$text = $pdf->printsData->getBodyData("perigrafi");

//color_size/color_size_code
$color_size = $pdf->printsData->getBodyData("color_size");
if($cs_analysis==true && !empty($color_size)){
$text .= "\n" . $color_size;
}

//serials_with_crm/serials
$serials_with_crm = $pdf->printsData->getBodyData("serials_with_crm");
if(!empty($serials_with_crm)){
$text .= "\n" . $serials_with_crm;
}

$lots = $pdf->printsData->getBodyData("lots");
if(!empty($lots)){
$text .= "\n" . $lots;
}

return array("text"=>$text, 'p87_nr01'=>$p87_nr01);
/* Κινήσεις Ειδών Αποθήκης -> Πλήρης Περιγραφή */

   3. Σύνολο Είδους : βάζοντας στο πεδίο "Έκφραση"

if($pdf->printsData->getBodyData("nr01")<0){ return ""; }
$prd_total = invoices_make_product_total(
$pdf->printsData->getBodydata("v103"),
$pdf->printsData->getBodydata("v104"),
$pdf->printsData->getBodydata("v105"),
$pdf->printsData->getBodydata("v106"),
$pdf->printsData->getBodydata("v106a"),
$pdf->printsData->getBodydata("v1042"),
$pdf->printsData->getBodydata("v616"),
$pdf->printsData->getData("a55a56a57a67_nr01_a55a56a57a67_nr01_p07")
);

$totals_per_i10[$pdf->printsData->getBodyData("i00_p62")]['tot'] += $prd_total;
$totals_per_i10[$pdf->printsData->getBodyData("i00_p62")]['i10_p02'] = $pdf->printsData->getBodyData("i10_p02");
$p85_output["totals_per_i10"] = $totals_per_i10;

return array("text"=>peg002_format_number($prd_total, 2));
/* Κινήσεις Ειδών Αποθήκης -> Σύνολο Τιμής Είδους */

Βημα 3στ: Στοιχεία Ειδών
Παρακάτω αντιγράφετε τα δυο πρώτα στοιχεία που δημιουργήσατε από τα Βήματα 3α και 3β (δεξί κλικ πάνω στο στοιχείο “Αντιγραφή Στοιχείου”) και τα μεταφέρετε κάτω από τις πληροφορίες των ειδών.

Στη συνέχεια θα ανοίξετε το αντίγραφο του Συνόλου ανά Τύπο και θα συμπληρώσετε τον παρακάτω κώδικα στο tab της Συνθήκης ( το συγκεκριμένο στοιχείο εκτελείται μία φορα για τον τελευταίο Τύπο ).

if($pdf->printsData->isLastBodyData() && $pdf->printsData->getBodyData("nr01")>0){
return true;
}else{
return false;
}


Βημα 4: Δημιουργία Συνολικών Αξιών στο footer
Σε αυτό το σημείο περιγράφονται οι διαδικασίες για την παραμετροποίηση των στοιχείων στο κάτω μέρος της φόρμας ώστε να εμφανίζονται η Συνολική Αξία ανά Τύπο Είδους και τέλος το άθροισμά τους.

Σημείωση : σε όλα τα στοιχεία που θα δημιουργήσετε στη συνέχεια, θα επιλέγετε από το tab Βασικά Στοιχεία” στο πεδίο “Θέση” “footer” και το πεδίο “Τύπος” ως “Έκφραση”.

Βημα 4α: Στοιχείο Περιγραφή Τύπου Ειδών 1
Δημιουργούμε ένα νέο στοιχείο με “Έκφραση” τον κώδικα:

//Ορισμός Συνόλων ανά Τύπο Είδους σε array (Κωδικός Τύπου, Περιγραφή Τύπου, Συνολο)
foreach($totals_per_i10 as $key=>$arr){
$totals_per_i10_arr[] = array('i10_p01'=>$key, 'i10_p02'=>$arr['i10_p02'], 'tot'=>$arr['tot']);
}
$p85_output['totals_per_i10_arr'] = $totals_per_i10_arr;
//Εμφάνιση Περιγραφή Τύπου Ειδών 1
return $totals_per_i10_arr[0]['i10_p02'] . ":";



Βημα 4β: Στοιχείο Σύνολο Τύπου 1
Προσθέστε ένα νέο στοιχείο και συμπληρώστε στο tab της “Έκφρασης” τον κώδικα:

//Εμφάνιση Συνόλου Τύπου Ειδών 1
return array("text"=>peg002_format_number($totals_per_i10_arr[0]['tot'], 2) . $currency_symbol);





Βημα 4γ: Στοιχείο Περιγραφή Τύπου Ειδών 2
Επόμενο στοιχείο με “Έκφραση” τον κώδικα:

//Εμφάνιση Περιγραφή Τύπου Ειδών 2
return $totals_per_i10_arr[1]['i10_p02'] . ":";

Βημα 4δ: Στοιχείο Σύνολο Τύπου 2
Στη συνέχεια δημιουργείτε ένα στοιχείο με έκφραση “Έκφραση”:

//Εμφάνιση Συνόλου Τύπου Ειδών 2
return array("text"=>peg002_format_number($totals_per_i10_arr[1]['tot'], 2) . $currency_symbol);

Τέλος δημιουργείτε το στοιχείο με τη Συνολική αξία και ένα σταθερό κείμενο με περιεχόμενο “ΣΥΝΟΛΟ:”

Βημα 4ε: Στοιχείο "Σύνολο:"
Με "Έκφραση" τον κώδικα:

return "ΣΥΝΟΛΟ:";

Βημα 4στ: Στοιχείο "Συνολική αξία"
Με "Εκφραση" τον κώδικα:

return array("text"=>$pdf->printsData->getNumber("a55a56a57a67_nr01_a55a56a57a67_nr01_p0109", 2). $currency_symbol);
/* Παραστατικά Πελατών -> Σύνολο */




Πατήστε εδώ για να κατεβάσετε το demo XML της Φόρμας Εκτύπωσης. Μπορειτε να ανεβάσετε τη Φόρμα Εκτύπωσης στην Εφαρμογή σας, εισάγωντας το παραπάνω XML στην Εφαρμογή σας.
[Toolbox->Παραμετροποίηση Εκτυπώσεων->Εισαγωγή Φόρμας Εκτύπωσης]

Τελευταία Αλλαγή: 06/03/2026