unit uHeOObj_Custom;
{$RTTI EXPLICIT METHODS([vcPublic, vcPublished]) FIELDS([vcPrivate, vcProtected, vcPublic, vcPublished]) PROPERTIES([vcPublic, vcPublished])}


interface
{$I 'GlobalDefs.inc'}

uses
  System.Generics.Collections,
  MVCFramework.Serializer.Commons,
  MVCFramework.ActiveRecord,
  MVCFramework.Nullables,
{$IFDEF SWAGGER}
  MVCFramework.Swagger.Commons,
{$ENDIF}
  helTabsBIDs,
  uHeoObj_Base;



type

  [MVCNameCase(ncLowerCase)]
  TEMPAtestDokument = class(TDokument)
   private
    FDokument: TDokument;
   public
    property Dokument: TDokument read FDokument write FDokument;
  end;




  [MVCNameCase(ncLowerCase)]
  TEMPNadoba = class(THeliosObjekty)
   private
    FCisloZakazky: string;
    FVyrobniCislo: string;
    FNazev: string;
    FDruhyNazev: string;
    FTypZakazky: string;
    FVykres: NullableString;
    FIDZakazky: integer;
    FPotvrzTermDod: NullableTDateTime;
    FCisloOrg: NullableInt32; // TabZakazka.Prijemce
    FNazevOrg: NullableString;
   public
    [MVCColumn('CisloZakazky', false)]
    [MVCSwagJsonSchemaField(stString, 'CisloZakazky', 'Číslo zakázky', true, false)] // required, nullable, minLength, maxLength, FieldSerializationType
    property CisloZakazky: string read FCisloZakazky write FCisloZakazky;

    [MVCColumn('VyrobniCislo', false)]
    [MVCSwagJsonSchemaField(stString, 'VyrobniCislo', 'Výrobní číslo', false, false, 0, 100)] // required, nullable, minLength, maxLength, FieldSerializationType
    property VyrobniCislo: string read FVyrobniCislo write FVyrobniCislo;

    [MVCColumn('IDZakazky', false)]
    [MVCSwagJsonSchemaField(stInteger, 'IDZakazky', 'ID zakázky nádoby', true, false)]
    property IDZakazky: integer read FIDZakazky write FIDZakazky;

    [MVCColumn('TypZakazky', false)]
    [MVCSwagJsonSchemaField(stString, 'TypZakazky', 'Typ zakázky (100-Objednávka, 101-nádoba, 200-nevýrobní)', false, false)]
    property TypZakazky: string read FTypZakazky write FTypZakazky;

    [MVCColumn('Vykres', false)]
    [MVCSwagJsonSchemaField(stString, 'Vykres', 'Číslo výkresu', false, true, 0, 35)]
    property Vykres: NullableString read FVykres write FVykres;

    [MVCColumn('Nazev', false)]
    [MVCSwagJsonSchemaField(stString, 'Nazev', 'Název zakázky', false, false, 0, 100)]
    property Nazev: string read FNazev write FNazev;

    [MVCColumn('DruhyNazev', false)]
    [MVCSwagJsonSchemaField(stString, 'DruhyNazev', 'Druhý název zakázky', false, false, 0, 100)]
    property DruhyNazev: string read FDruhyNazev write FDruhyNazev;

    [MVCColumn('PotvrzTermDod', false)]
    [MVCSwagJsonSchemaField(stDateTime, 'PotvrzTermDod', 'Potvrzený termín dodávky', false, false, 0, 100)]
    property PotvrzTermDod: NullableTDateTime read FPotvrzTermDod write FPotvrzTermDod;

    [MVCColumn('CisloOrg', false)]
    [MVCSwagJsonSchemaField(stInteger, 'CisloOrg', 'Číslo organizace příjemce (ze zakázky)', false, true)]
    property CisloOrg: NullableInt32 read FCisloOrg write FCisloOrg;

    [MVCColumn('NazevOrg', false)]
    [MVCSwagJsonSchemaField(stString, 'NazevOrg', 'Název organizace příjemce (ze zakázky)', false, true, 0, 100)]
    property NazevOrg: NullableString read FNazevOrg write FNazevOrg;

    {
    [MVCColumn('GUIDDokladu', false)]
    [MVCSwagJsonSchemaField(stGuid, 'GUIDDokladu', 'GUID dokladu', false, true)]
    property GUIDDokladu: NullableTGUID read FGUIDDokladu write FGUIDDokladu;

    [MapperListOf(TGatemaSDScanData)]
    property ScanData: TObjectList<TGatemaSDScanData> read FScanData write SetSDScanData;
}
  end;



implementation

uses
  System.SysUtils,
  System.StrUtils,
  System.RegularExpressions,
  uSvc_Obecne,
  uCtrlBase
  ;



end.
