# Penta Cheatsheet

> Ich brauch doch keine Notizen!
*- James*

> Wo war das nochmal? Wie mach ich das nochmal? Welche Nummer hatte das?
*- Auch James.... zuuu oft*

## Penta Server

### V8 Locations

Steinemann: [chpm002](files//chpm002/BELEGE)

### V9 Locations

STCH: [CHERP011](files://cherp011\stch_ful\share\report\forms)								
STMY: [CHERP011](files://cherp011\stmy_ful\share\report\forms)								
SDPE: [CHERP011](files://cherp011\sdpe_ful\share\report\forms)								

## Belegnummern und deren Zugehörigkeit

### STCH
| Kenner | NR STCH | Name                                    |  Reportname Dutsch  |  Reportname Englisch  | Testnummer STCH |
|:------:|:-------:|:----------------------------------------|:-------------------:|:---------------------:|:---------------:|
|   AN   |    1    | Angebot                                 |    stg_pkbd_ab_d    |    stg_pkbd_ab_gb     |    22198110     |
|   AU   |    2    | Auftragsbestätigung                     |    stg_pkbd_ab_d    |    stg_pkbd_ab_gb     |    22198110     |
|        |    2    | Rüstschein                              |   stg_lbew_bew_d    |    stg_lbew_bew_gb    |                 |
|        |    3    | Bestellung                              |    stg_pbdr_be_d    |    stg_pbdr_be_gb     |                 |
|   AR   |    4    | Rechnung [Ausgangsrechnung]             |    stg_pkbd_ar_d    |    stg_pkbd_ar_gb     |    21193894     |
|        |    7    | Versandanweisung [Rüstschein]           |    stg_pkbd_va_d    |          ---          |                 |
|        |    8    | Storno Ausgangsrechnung                 |    stg_pkbd_ar_d    |    stg_pkbd_ar_gb     |                 |
|        |   11    | Anzahlungsrechnung                      |  stg_pkbd_ar_d.AA   | stg_pkbd_ar_gb.AA.rpt |                 |
|        |   14    | Fertigungskarte                         |   stg_pfak_karte    |    stg_pfak_karte     |                 |
|        |   20    | Kundenauftrag                           |    stg_pkbd_ka_d    |          ---          |                 |
|        |   21    | Angebot (Proforma Rechnung)             |    stg_pkbd_ab_d    |    stg_pkbd_ab_gb     |    22198110     |
|        |   23    | Auftragsbestätigung                     |    stg_pkbd_ab_d    |    stg_pkbd_ab_gb     |    22198110     |
|        |   24    | Auftragsbestätigung (KUNDENAUFTRAG ETL) |    stg_pkbd_ra_d    |          ---          |                 |
|        |   54    | Schlussrechnung Maschinen (UBS)         |   stg_pkbd_arm_d    |    stg_pkbd_arm_gb    |                 |
|        |   55    | Gutschrift Maschinen (UBS)              |   stg_pkbd_arm_d    |    stg_pkbd_arm_gb    |                 |
|        |   56    | Schlussrechnung Maschinen (BTV)         | stg_pkbd_arm_btv_d  |  stg_pkbd_arm_btv_gb  |                 |
|        |   58    | Storno Rechnung Maschinen (UBS)         |   stg_pkbd_arm_d    |    stg_pkbd_arm_gb    |                 |
|        |   59    | Storno Gutschrift Maschinen (UBS)       |   stg_pkbd_arm_d    |    stg_pkbd_arm_gb    |                 |
|        |   61    | Anzahlung Rechnung Maschinen (UBS)      |   stg_pkbd_arm_d    |    stg_pkbd_arm_gb    |                 |
|        |   62    | Storno Anzahlung Maschinen (UBS)        |   stg_pkbd_arm_d    |    stg_pkbd_arm_gb    |                 |
|        |   63    | Anzahlung Rechnung Maschinen (BTV)      | stg_pkbd_arm_btv_d  |  stg_pkbd_arm_btv_gb  |                 |
|        |   72    | Auftragsbestätigung [NETTO-AB]          | netto_stg_pkbd_ab_d | netto_stg_pkbd_ab_gb  |                 |
|        |   74    | Netto Rechnung                          | netto_stg_pkbd_ar_d | netto_stg_pkbd_ar_gb  |                 |
|        |         |                                         |                     |                       |                 |


### DPE
| Kenner | NR DPE | Name                        | Reportname Dutsch | Reportname Englisch |  Testnummer SDPE   |
|:------:|:------:|:----------------------------|:-----------------:|:-------------------:|:------------------:|
|   AN   |   1    | Angebot                     |   stg_pkbd_ab_d   |   stg_pkbd_ab_gb    | 30318 D - 30073 GB |
|   AU   |   2    | Auftragsbestätigung         |   stg_pkbd_ab_d   |   stg_pkbd_ab_gb    | 30318 D - 30073 GB |
|        |   2    | Bestellung                  |   stg_pbdr_be_d   |    stg_pbdr_be_d    |                    |
|        |   3    | Lieferschein                |   stg_pkbd_li_d   |   stg_pkbd_li_gb    |      30000092      |
|        |   4    | Rechnung [Ausgangsrechnung] |   stg_pkbd_ar_d   |   stg_pkbd_ar_gb    |      20300001      |
|        |   5    | Gutschrift                  |   stg_pkbd_ar_d   |   stg_pkbd_ar_gb    |      20300001      |
|        |   8    | Storno Ausg angsrechnung    |   stg_pkbd_ar_d   |   stg_pkbd_ar_gb    |      20300001      |
|        |   54   | Schlussrechnung Maschinen   |  stg_pkbd_arm_d   |   stg_pkbd_arm_gb   |      20300001      |
|        |   61   | Anzahlungsrechnung MS       |  stg_pkbd_arm_d   |   stg_pkbd_arm_gb   |      20300001      |


## Fixes


### UST FIX

1.  Erstellen des Commands
    `select 'K' "ZUORDNUNG K"`

    > ![a](img/ustfix_Command.jpg)

4. Verknüpfen von puid
    >

3.  PKRK mit PUID verknüpfen
    > pkvk.RECHNUNGS_ADRESS_FOLGE_NR  - FOLGE_NR
    > pkvk.RECHNUNGS_ADRESS_NR        - NUMMER
    > command.ZUORDNUNG_K             - puid.ZUORDNUNG
    > ![a](img/ustfix_PKRK-PUID.jpg)
    > ![a](img/ustfix_Command-PUID.jpg)

## Bankverbindung
> Um die Bankverbindung zu fixen benutze folgenden Code in einem Feld:

```Crystal
stringvar account;
stringvar bank;
if {?Pm-PKRK.WAEHRUNG} = "GBP" then
account := "SA30920AC" else
if {?Pm-PKrK.WAEHRUNG} = "EUR" then
account := "GL100533.1" else
if {?Pm-PKRK.WAEHRUNG} = "USD" then
account := "GL100533.2" else
account := "L0030174.0";

if {?Pm-PKRK.WAEHRUNG} in ["USD", "EUR", "CHF"] then
bank := "UBS AG, CH-9001 St. Gallen" else
bank := "Bank für Tirol und Vorarlberg AG, CH-9422 Staad";

"Account no. " + account + " " + bank
```

## Abschlag (Rabatt) fix
Wenn die Prozente vom Rabatt nicht richtig angezeigt werden sollte folgender Code verwendet werden:

> Ja, es ist keine Meisterleistung, welche ich hier niedergeschrieben habe; aaaaaaber....
Schlussendlich gillt, dass der initial string ENTWEDER als "5% Rabatt", "15% Rabatt", "100% Rabatt" ODER "SPEZIAL RABATTTEXT".
Bedeutet, dass ich zuerst abfangen muss, ob ein Prozentzeichen in dem Text ist.
Wenn Ja, behalte nur die ersten 3 Zeichen und lösche den rest. Danach ersetze alle % zeichen mit " ". und zu guter letzt ersetze " " mit "".

```Crystal
If InStr({PZAF.ZU_AB_SCHLAG_BENENNUNG}, "%") > 0 then
REPLACE(REPLACE(LEFT({PZAF.ZU_AB_SCHLAG_BENENNUNG}, 3), "%", " "), " ", "")+"%"
else
{PZAF.ZU_AB_SCHLAG_BENENNUNG}
```

# Aufnahmedatum
> Wird temporär als Bool3 gespeichert

```crystal
LEFT({PKVK.PKVKGLOBALCREATEINFO, 8})
```


# netto_stg_pkbd_ab_D/GB
In Subreport teilefamilie,
![standort](img/teilefamilie.jpg)

> Feld Übergabetellertext muss mit folgendem Code geändert werden.

```crystal
// Wenn kein Teilefamilientext vorhanden ist, wird der Text aus Feld
// aus dem Feld Bezeichnung_1 der Kundenvorgangsposition verwendet
WhilePrintingRecords;
Shared stringVar PkvpBez1;
stringVar Bez1 := "";

select {?Sprache}
    case "GB":
        Bez1 :=  {PART.BEZEICHNUNG_1_AT1}
    default:
        Bez1 :=  {PART.BEZEICHNUNG_1};

if Bez1 = "" then PkvpBez1 else Bez1
```
> Danach die Tabelle

---

# Neuen Beleg erstellen
Vertriebsbeleg NR erstellen
Auftragsmanagement -> Vertrieb -> Tabellen -> Vertriebsbeleg

>(Bei AN -> einen AN auswählen, grünes feld ausfüllen -> neu laden -> speichern)

>Dann bei Belegkonfiguration den Beleg gleich wie oben beschrieben erstellen

---

# Textbaustein 13

> wenn TB13 vorhanden -> dann diesen andrucken, ansonsten {PZBF.BEZEICHNUNG_1}
> {PZBF.BEZEICHNUNG_1}


Zuerst muss im subreport zahlubngsbedingung der Parameter erstellt werden.
![Bildkommentar, der niemand liest...](img/parametererstellung.jpg)

Dann muss im MAIN report **PZBF** eingebunden werden. Diese *SOLLTE* sich (wenn crysstal brav ist...) selber mit **PKRK** verbinden.
>Verknüpfe **PKRK.Sprache** mit **PZBF.Zahlungsbedingung_sprache**
>Verknüpfe **PKRK.Zahlungsbedingung_KENNER** mit **PZBF.Zahlungsbedingung_KENNER**
>![Snails are great!](img/verknüpfungenPkrkPZBF.jpg)

Und jetzt der *Lustige* teil...
Wir müssen das Feld **VON DER DATENBANK** *(Du kannst gerne lange bei den Reportfields suchen...)* mit dem Parameter verknüpfen.

Crystal ist netterweise komplexer für das eigene Wohl, desshalb erklär ich es dir hier verknüpfungenPkrkPZBF

1. In der box LINKS *Available Fields* muss das Feld **PZBF.BEZEICHNUNG_1** mit dem button in der mitte *">"* in das Feld RECHTS
1. Dann klickt man auf das **PZBF.BEZEICHNUNG_1** Feld in der Box RECHTS.
1. Hat man das geschafft, kann man in der BOX unten die Verbindung wählen.

![soup](img/subreportlinks.jpg)

Hat man das alles geschafft, darf man sich als erstes selbst gratulieren, danach aber direkt ein neues Feld erstellen, in dem folgender Code steht:

```Crystal
if isnull({XDMT.TEXT}) then {?Zahlungsbedingungstext} else {XDMT.TEXT}
```

So und jetzt gönn dir nen Kaffee! (Ja, jedes mal wenn du das getan hast :))

---
