// скрипт выгрузки прайс-листа для 36.6. Используется почта MailProcessor

// предопределены переменные:

CONST
  RECIPIENTS = 'popova.m.v@366.ru';

VAR
 VariantName :string; // имя варианта в программе
 VariantFile :string; // файл-скрипт
 Dataset :tdataset; // файл с прайс-листом

var
  MailMessage :Variant;
  Table :ttable;

  strValue :string;
  IntValue :integer;

  WF :TMyWait;
begin
  wf := TmyWait.create('Идет экспорт прайс-листа');
  try

    MailMessage := CreateOleObject('mailprocessor.mpmailmessage');
    if not MailMessage.srv.connected
    then mailMessage.srv.connectwp('autouser','1');


    if not mailMessage.srv.connected then
    begin
      createhinte('Ошибка, сервер не подключен');
      exit;
    end;

    MailMessage.id := 0; // инициализируем
    MailMessage.recipient := RECIPIENTS;
    MailMessage.subject := 'Прайс-лист ООО Прайд';


    table := ttable.create(selfscript);
    try

      (*
      table.tablename := GetUniqueFileName(gettempdir,'pride.dbf');

      deletefile(table.tablename);

      BDEExecSQL(
        'create table '+QuotedSTr(TAble.tablename) +
        ' ( '+
        ' CODE_GOODS varchar(20),'+
        ' NAME_GOODS varchar(200),'+
        ' SHELF_LIFE date,'+
        ' NAME_PRD varchar(200),'+
        ' NAME_CNT varchar(100),'+
        ' PRICE numeric(15,4),'+
        ' DIVNUM integer,'+
        ' BALANCE numeric(15,4),'+
        ' NDS integer'+

        ' )',[null]);

     (**)
     table.close;
     table.tablename := gettempdir +'price.dbf';
     table.tabletype := ttDBase;
     table.TableLevel := 4;
     table.fielddefs.clear;
     //table.indexdefs.clear;
     table.fielddefs.add('ID_GOODS',ftString,20,false);
     //table.fielddefs.add('CODE_GOODS',ftString,20,false);
     //table.fielddefs.add('CODE_PRD',ftString,20,false);
     //table.fielddefs.add('CODE_CNT',ftString,20,false);
     table.fielddefs.add('NAME_GOODS',ftstring,250,false);
     table.fielddefs.add('SHELF_LIFE',ftdate,0,false);
     table.fielddefs.Add('price',ftcurrency,0,false);
     table.fielddefs.Add('valute',ftstring,3,false);
     table.fielddefs.add('amount',ftFloat,0,false);
     table.fielddefs.Add('name_prd',ftstring,250,false);
     table.fielddefs.Add('name_cnt',ftstring,250,false);
     table.fielddefs.add('nds',ftinteger,0,false);

     table.CreateTable;


     SetTableLangDriver(table,'db866ru0');
     (**)

        // код товара у поставщика,
        // наименование товара у поставщика,
        // срок годности препарата,
        // наименование производителя,
        // страна производитель,
        // цена,
        // деление упаковки (кол-во в упаковки),
        // остаток на складе поставщика.

      table.open;


      dataset.disablecontrols;

      try

        wf.progressbarmax := dataset.recordcount;
        dataset.first;
        while not dataset.eof do
        begin
          wf.incprogress;

          table.append;



          //table.fieldbyname('code_goods').asstring := dataset.fieldbyname('nn').asstring;
          //table.fieldbyname('code_prd').asstring := dataset.fieldbyname('producer').asstring;
          //table.fieldbyname('code_cnt').asstring := dataset.fieldbyname('country').asstring;

          if dataset.fieldbyname('producer').asinteger<>0
          then StrValue :=  '_'+dataset.fieldbyname('producer').asstring
          else StrValue := '';

          table.fieldbyname('ID_goods').asstring := dataset.fieldbyname('nn').asstring + StrVAlue;
          table.fieldbyname('name_goods').asstring := dataset.fieldbyname('name').asstring;
          table.fieldbyname('name_prd').asstring := dataset.fieldbyname('producername').asstring;
          table.fieldbyname('name_cnt').asstring := dataset.fieldbyname('countryname').asstring;

          if dataset.fieldbyname('srokkart').asdatetime<>0
          then   table.fieldbyname('shelf_life').asdatetime := dataset.fieldbyname('srokkart').asdatetime;


          table.fieldbyname('valute').asstring := 'RUB';

          table.fieldbyname('amount').asfloat := dataset.fieldbyname('ostat').asfloat;
          table.fieldbyname('price').asfloat := dataset.fieldbyname('rs_cena').asfloat;
          table.fieldbyname('nds').asinteger := dataset.fieldbyname('nds').asinteger;
          table.post;

          dataset.next;
        end;
     finally
       dataset.enablecontrols;
     end;

     table.close;
     MailMessage.addAttachment(TAble.tablename);
     MailMessage.save;
    finally
      table.free;
    end;
  finally
    wf.free
  end;

  CreateHintI('Операция завершена, не забудьте доставить почту в MailProcessor');


end.
