//Скрипт автоматизации
//Vladimir T. Sabitov

uses 'd:\solaris\db\scripts\import_data.pas';

var
ResultStr :string;
IniFile :TIniFile;
LastHourofOstat: integer;
LastHourofNakl: integer;
LastDateofBackup: TdateTime;
LastDateofPrice: TdateTime;
    MailMessage :Variant;
    Agents :Variant;


const LogFileName ='exportstoragegoods.log';

begin

    IniFile := TIniFile.create( extractfilepath(application.exename)+'automate.ini');
    try

        if (hourof(now())=3) then
        begin
          // импорт накладных с пунктов
                LastHourofOstat:= IniFile.ReadInteger('GENERAL','LastHourofinvoces',hourof(now())-1);
                if Hourof(now())<> LastHourofOstat then
                begin
                    if Hourof(now())<> LastHourofOstat 
                    then begin
                        import_data_proc;
                        IniFile.WriteInteger('GENERAL','LastHourofinvoices',(hourof(now())));
                    end;
                end;
        end;


        if (hourof(now())>8) and (hourof(now())<19) 
        then begin
        // в промежутке между 7 и 19 будет выполнен след. код

            if (Minuteof(now())>5) and  (Minuteof(now())<10)
            then begin
                    LastHourofOstat:= IniFile.ReadInteger('GENERAL','LastHourofOstat',hourof(now())-1);
            //        CreateHintC('LastHourofOstat='+inttostr(LastHourofOstat),'Сведения о переменной:',3);
                    if Hourof(now())<> LastHourofOstat 
                    then begin
                            // Сброс остатков склада ежечасно
                        ResultStr := ExportStorageGoods;
                        StringToFile(extractfilepath(application.exename)+LogFileName,ResultStr);
                        CopyFile ('\\server4\lekarnet\ostat.zip','d:\lekarnet\ostat.zip');
                        IniFile.WriteInteger('GENERAL','LastHourofOstat',(hourof(now())));
                    end;
            end;
        end;


        if (Minuteof(now())>10) and  (Minuteof(now())<55)
        then begin
            LastHourofNakl:= IniFile.ReadInteger('GENERAL','LastHourofNakl',hourof(now())-1);
        //        CreateHintC('LastHourofNakl='+inttostr(LastHourofNakl),'Сведения о переменной:',3);
            if Hourof(now())<> LastHourofNakl 
            then begin

                // Экспорт Накладных
                // Торговый зал Аптеки на Московской
                STDInOutCreateFile( 2, '\\server4\lekarnet\2', now()-30, now(),true,true,'ПВ','ПВ');
                CopyFile ('\\server4\lekarnet\2\arcsklad.zip','d:\lekarnet\2\arcsklad.zip');

                // Экспорт Накладных
                // Проспект Энтузиастов, 54
                STDInOutCreateFile( 1003, '\\server4\lekarnet\1003', now()-10, now(),true,true,'ПВ','ПВ');
                CopyFile ('\\server4\lekarnet\1003\arcsklad.zip','d:\lekarnet\1003\arcsklad.zip');

                // Экспорт Накладных
                // Соломон
                STDInOutCreateFile( 1104, '\\server4\lekarnet\1104', now()-10, now(),true,true,'ПВ','ПВ');
                CopyFile ('\\server4\lekarnet\1104\arcsklad.zip','d:\lekarnet\1104\arcsklad.zip');

                // Экспорт Накладных
                // Ровное
                STDInOutCreateFile( 1122, '\\server4\lekarnet\1122', now()-10, now(),true,true,'ПВ','ПВ');
                CopyFile ('\\server4\lekarnet\1122\arcsklad.zip','d:\lekarnet\1122\arcsklad.zip');

                // Экспорт Накладных
                // Степное
                STDInOutCreateFile( 1169, '\\server4\lekarnet\1169', now()-10, now(),true,true,'ПВ','ПВ');
                CopyFile ('\\server4\lekarnet\1169\arcsklad.zip','d:\lekarnet\1169\arcsklad.zip');

                // Экспорт Накладных
                // Калининск
                STDInOutCreateFile( 1320, '\\server4\lekarnet\1320', now()-10, now(),true,true,'ПВ','ПВ');
                CopyFile ('\\server4\lekarnet\1320\arcsklad.zip','d:\lekarnet\1320\arcsklad.zip');

                // Экспорт Накладных
                // Аркадак
                STDInOutCreateFile( 1443, '\\server4\lekarnet\1443', now()-10, now(),true,true,'ПВ','ПВ');
                CopyFile ('\\server4\lekarnet\1443\arcsklad.zip','d:\lekarnet\1443\arcsklad.zip');

                // Экспорт Накладных
                // Соколовогорская 6
                STDInOutCreateFile( 1455, '\\server4\lekarnet\1455', now()-10, now(),true,true,'ПВ','ПВ');
                CopyFile ('\\server4\lekarnet\1455\arcsklad.zip','d:\lekarnet\1455\arcsklad.zip');

                // Экспорт Накладных
                // Новые Бурасы
                STDInOutCreateFile( 1457, '\\server4\lekarnet\1457', now()-10, now(),true,true,'ПВ','ПВ');
                CopyFile ('\\server4\lekarnet\1457\arcsklad.zip','d:\lekarnet\1457\arcsklad.zip');

                // Экспорт Накладных
                // Чапаева
                STDInOutCreateFile( 1566, '\\server4\lekarnet\1566', now()-10, now(),true,true,'ПВ,*О','ПВ,*О');
                CopyFile ('\\server4\lekarnet\1566\arcsklad.zip','d:\lekarnet\1566\arcsklad.zip');



                IniFile.WriteInteger('GENERAL','LastHourofNakl',(hourof(now())));
            end;
        end;
        
        if hourof(now())=6 
        then begin
                LastDateofBackup:= IniFile.ReadDate('GENERAL','LastDateofBackup',date-1);
        //        CreateHintC('LastHourofOstat='+inttostr(LastHourofOstat),'Сведения о переменной:',3);
                if dayof(LastDateofBackup)<> dayof(date) 
                then begin
                        // Создание резервной копии
                    BackupDatabase('g:\');
                    IniFile.WriteDate('GENERAL','LastDateofBackup',date);
                end;
        end;




        if hourof(now())=10 
        then begin
            LastDateofPrice:= IniFile.ReadDate('GENERAL','LastDateofPrice',date-1);
    //        CreateHintC('LastHourofOstat='+inttostr(LastHourofOstat),'Сведения о переменной:',3);
            if dayof(LastDateofPrice)<> dayof(date) 
            then begin
                    // отправка прайсов
                Agents := CreateOleObject('xpricert.xprSUBSCRIBERS');
                MailMessage := CreateOleObject('xpricert.xpremailmessage');

                Agents.SRV.ConnectWP('Пользователь','1');
                if not agents.srv.connected
                then begin
                    exit;
                end;

                MailMessage.ID := 0;
                MailMessage.Recipient := 'saratov-spr@farmnet.ru' ;
                //  MailMessage.Recipient := 'limsoft@mail.ru' ;
                MailMessage.Subject := 'Прайс Аптеки Соломон';
                MailMessage.AddAttachment('\\server4\lekarnet\1104\price.zip');
                MailMessage.Save;

                MailMessage.ID := 0;
                MailMessage.Recipient := 'saratov-spr@farmnet.ru' ;
                //  MailMessage.Recipient := 'limsoft@mail.ru' ;
                MailMessage.Subject := 'Прайс Аптеки на Московской';
                MailMessage.AddAttachment('\\server4\lekarnet\2\price.zip');
                MailMessage.Save;


                IniFile.WriteDate('GENERAL','LastDateofPrice',date);

            end;
        end;

    finally
      IniFile.free;
    end;


end.


