#!C:\perl\bin -w -I./t
# PROGRAM : EDIREX
# auther : LPO , M&F Hlinsko, Palackeho 1295, f.o. 
# GNU : garante jusqu a non changee  file.
# L'Original est depose chez auther
# Date de commence de creation  : 21.11.2002
# La dernier change             : 07.07.2004
# Upravy 9.8.2007 - ...  - Frantisek Novak, Teledin s.r.o.
#*********************************************************
#
package main;
#  USE **************************
#use strict;
#use IPC::Open2;
use IPC::Open3;
use IO::Handle;
use Fcntl;
use Time::HiRes qw(usleep gettimeofday tv_interval);
use Fcntl ':flock'; 
use Net::Cmd;
use File::Copy;
use Win32::NetSend;
use Win32::Mutex;
# REQUIRE ******************
require edirex1;
require edirex2;
require edirex3;
require edirex4;
require edirex5;
require edirex6;

#  MY   **************************
 ($rok,$cas,$VERZE)=(); 
 $VERZE="5.11  4.12.2025 FN";
 $rok="";
# $datum="";
 $cas="";
 $|=1;
 %param=();
 $outscr =0;
 $retok =1;
 $IOmode=0;
 $auth=0;
 my $HOME;
 my @DownloadOnlyType='';

# Promenne pro posilani zpravy CONTROL:
  my @seznamtd=();
  my $OdeslatCtrl=0;
#*************************
  STDOUT->autoflush;
#  STDERR->autoflush;
  STDIN->autoflush;
#*********************************
  &getdatum();
  &Vypis_hlavicku;
  &read_params();
  if( &Test_parametru() ){ exit 0; };

  if(($IOmode==1) or ($IOmode==3)){
    &Hlaska("- Start akce PRIJEM SOUBORU ZE SCHRANKY CCF. mod$IOmode");
    &VratTmp;
    &open_server;
    if($auth){ &exec_receive; }
    chdir "$EDIREX_HOME";
    if(&JeNecoVIn){
      if (defined ($param{'ZpracujIN'}) and ($param{'ZpracujIN'} ne '')) {
        if ( -e $param{'ZpracujIN'}) {
          require $param{'ZpracujIN'};
          &zpracujin;
        } else {
          &Hlaska("Soubor modulu ZpracujIN $param{'ZpracujIN'} neexistuje! Uvedte spravne jmeno nebo definici zruste.");
        }
      } else {
        &Move_z_in_do_inbound;
      }
    }
    if(($IOmode==1) and $auth ){  # Pokud v modu I lezi v out nejake dorucenky, proved odeslani (odeslou se jen data z out, ne z outbound)
        chdir "$param{'edirex_out_dir'}";
        @bestanden =();
        @bestanden =<*.ctr>;
        if ($#bestanden > -1) { &exec_send; }
    }
  }

  if(($IOmode==2) or (($IOmode==3) && $auth ) ){		# pokud je IO a neni connected, nedelej
    &Hlaska("- Start akce ODESLANI SOUBORU DO SCHRANKY CCF. mod$IOmode");
    chdir "$EDIREX_HOME";
     if (defined ($param{'PreSendCall'}) and ($param{'PreSendCall'} ne '')) {
      if ( -e $param{'PreSendCall'}) {
        require $param{'PreSendCall'};
        &PreSendCall;
      } else {
        &Hlaska("Soubor modulu PreSendCall $param{'PreSendCall'} neexistuje! Uvedte spravne jmeno nebo definici zruste.");
      }
    }
    &pre_send_edi;
    if ($outscr eq 1){
      &Hlaska("- Data k odeslani nalezena, spoustim proces odeslani.");
      if(!$auth) { &open_server; }
      if($auth){
        &exec_send;
        if ($retok != 1) {
          &Hlaska("----> Data nejde odeslat!");
          &Hlaska("----> Zkontrolujte funkčnost EDIREXu nebo");
          &Hlaska("----> zavolejte +420 603 433 625 TELEDIN EDIREX support");
        }
      }
    } else {
      &Hlaska("- Zadna data k odeslani.");
    }
  }
  if($auth) { &close_server; }
  &Hlaska("**** End of session *****");
  &ZavriAUDIT;
#************************************
;
1;
