// скрипт выгрузки накладной для РИГЛА. Используется MailProcessor

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

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

 exportAgent :integer;    // контрагент в накладной
 exportAgentName :string; // наименование контрагента
 exportAgentCODE :string; // альтернативный код

 exportAgent2 :integer;    // грузополучатель
 exportAgent2Name :string; // наименование грузополучателя
 exportAgent2CODE :string; // код грузополучателя


 exportNakladNom :integer;    // номер накладной
 ExportNakladID_DOC :string;  // код документа
 ExportNakladDATA :tdatetime; // дата документа
 ExportNakladOsnov :string;   // основание в накладной
 ExportNakladFACTURA :integer;// фактура в накладной
 ExportNakladSklad :integer;  // склад в накладной

 ExportSklad :integer;    //  склад в накладной
 ExportSkladName :string; // наименование склада в накладной
 ExportSkladCODE :string; // код склада в накладной


var
  MailMessage :Variant;
  Table :ttable;
  TaGoods :TTAble;

  strValue :string;

  subcode :string;
begin

  (*
  if ExportAgentCode >'' then SubCode := ExportAgentCode
  else if ExportAgent2Code >''
  then SubCode := ExportAgent2Code
  else if ExportNakladID_DOC>''
  then SubCode := ExportNakladID_DOC;

  if (SubCode ='') then
  begin
    CreateHintE('Невозможно сохранить накладную, нужно вписать код подразделения в поле "альтернативный код" для данного подразделения в справочнике контрагентов');
    exit;
  end;
  *)

  with TmyWait.create1('Идет экспорт накладной',selfscript) do
  try


    MailMessage := CreateOleObject('mailprocessor.mpmailmessage');
    if not MailMessage.srv.connected
    then mailMessage.srv.connectwp('Пользователь','1');

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

    MailMessage.id := 0; // инициализируем
    MailMessage.recipient := 'RNKL@rigla.ru';
    MailMessage.subject := 'Накладная от ООО Прайд';

    TaGoods := TTAble.create(nil);
    table := ttable.create(nil);
    try
      taGoods.databasename := 'dbkassa';
      taGoods.tablename := 'tovar.db';
      tagoods.open;

      table.tablename := gettempdir + 'NK'+inttostr(ExportNakladNom)+'.dbf';

      deletefile(table.tablename);

      BDEExecSQL(
        'create table '+QuotedSTr(TAble.tablename) +
        ' ( '+
        ' ndoc varchar(20),'+
        ' datedoc DATE,'+
        ' PODRCD varchar(20),'+
        ' NAME varchar(150),'+
        ' PRODUCER VARCHAR(80),'+
        ' QNT numeric(9,2),'+
        ' PRICE2N numeric(9,2),'+
        ' NDS numeric(9,2),'+
        ' SUMNDS10 numeric(9,2),'+
        ' SUMPAY numeric(9,2),'+
        ' CODEPST VARCHAR(15),'+
        ' SER varchar(20),'+
        ' SERTIF varchar(80),'+
        ' SERTDATE date,'+
        ' GOD_SERT date,'+
        ' SERTORG VARCHAR(80),'+
        ' GDATE date,'+
        ' NUMZ numeric(8),'+
        ' NUMGTD VARCHAR(30),'+
        ' EAN13 varchar(13),'+
        ' PRICE1 numeric(9,2),'+
        ' BILLNUM VARCHAR(20),'+
        ' BILLDT date,'+
        ' CNTR VARCHAR(15),'+
        ' DATEMADE date,'+
        ' CNTRMADE VARCHAR(15),'+
        ' QNTPACK numeric(8),'+
        ' PRCOPT numeric(9,2),'+
        ' NSP numeric(9,2),'+
        ' GNVLS numeric(1),'+
        ' REGPRC numeric(9,2),'+
        ' DATEPRC date,'+
        ' DATEZ date,'+
        ' SUMS0 numeric(12,2),'+
        ' SUNSNDS numeric(12,2)'+
        ' )',[null]);

      table.open;


      dataset.disablecontrols;
      try

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

          tagoods.findkey([dataset.fieldbyname('nn').asstring]);

          table.append;

          //StrValue := dataset.fieldbyname('producer').asstring;

          table.fieldbyname('NDOC').asstring := inttostr(ExportnakladNom);
          table.fieldbyname('DATEDOC').asdatetime := Exportnakladdata;

          table.fieldbyname('podrcd').asstring := inttostr(exportagent2);

          table.fieldbyname('name').asstring := dataset.fieldbyname('name').asstring;
          table.fieldbyname('firm').asstring := dataset.fieldbyname('producername').asstring;
          table.fieldbyname('QNT').asfloat := dataset.fieldbyname('kol').asfloat;
          table.fieldbyname('PRICE2N').asfloat := dataset.fieldbyname('cenanotnds').asfloat;
          table.fieldbyname('nds').asfloat := dataset.fieldbyname('nds').asinteger;
          table.fieldbyname('sumnds10').asfloat := dataset.fieldbyname('ndssumma').asfloat;
          table.fieldbyname('SUMPAY').asfloat := dataset.fieldbyname('summa').asfloat;
          table.fieldbyname('CODEPST').asstring := dataset.fieldbyname('nn').asstring;
          table.fieldbyname('ser').asstring := dataset.fieldbyname('seria').asstring;
          table.fieldbyname('sertif').asstring := dataset.fieldbyname('sertif').asstring;

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


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


          table.fieldbyname('SERTORG').asstring := dataset.fieldbyname('sertifname').asstring;

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


          table.fieldbyname('numgtd').asstring := dataset.fieldbyname('tamog').asstring;
          table.fieldbyname('EAN13').asstring := dataset.fieldbyname('barcode').asstring;
          table.fieldbyname('PRICE1').asfloat := dataset.fieldbyname('firstcena').asfloat;

          table.fieldbyname('billnum').asstring := inttostr(exportnakladfactura);
          table.fieldbyname('BILLDT').asdatetime := Exportnakladdata;

          table.fieldbyname('CNTR').asstring := dataset.fieldbyname('producercountryname').asstring;

          table.fieldbyname('GNVLS').asinteger := tagoods.fieldbyname('isliveneed').asinteger;



          (*
          table.fieldbyname('PRICE').asfloat := dataset.fieldbyname('cena').asfloat;
          table.fieldbyname('SUM_NAKED').asfloat := dataset.fieldbyname('notndssumma').asfloat;
          table.fieldbyname('PRICE_REES').asfloat := dataset.fieldbyname('reestrcena').asfloat;

          table.fieldbyname('apteka').asstring := subcode;
          *)


          table.post;

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

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

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


end.
