Инструкция по настройке ф-ции "товар под заказ"

Материал из wiki.standart-n.ru
Версия от 18:53, 11 марта 2019; Agk (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Общее

Менеджер

Создать новый тип документа "'Подготовка заказа покупателя "

Создать новый тип документа "'Подготовка заказа покупателя "
INSERT INTO DOC_TYPES (ID, CAPTION, INSERTDT, BASE_TYPE, STATINI, REPORTS, VTYPE) VALUES (1001, 'Подготовка заказа покупателя (чек для кассы)', '21-SEP-2018 14:14:33.853', 2, NULL, NULL, 2);

+ скопировать сетку с любого расходного документа;

В ТМС проведение активного документа (-205)

  if (doc_type = 1001) Then OrderPrepare;

и процедуру

procedure OrderPrepare;
var 
 sl: TStringList;
 s2,t2: String;
begin

    //Проверка, что документ не пустой    
     t:='select count(1) as cnt from doc_detail_active where doc_id='+doc_id;
     query1:=ExecIBQuery(trn,t,1);
     if (IBQuery_FieldByName_i(query1, 'cnt') = 0) then
     begin
       mb_res:=application.messagebox(PChar('Документ пуст. Проведение отменено'),'',MB_ICONSTOP);
       program_result.Values['cancel']:='1';
       exit;
     end;

   sl:=TStringList.Create;
   
   s2:='[ORDERS]'#13#10+
       'type=action'#13#10+
       'caption=Заказы'#13#10+
       'mode=wdict=101'#13#10+
       'default='+#13#10;
    sl.text:=s2;
       
    if GetCustomParams(sl,'заполните значения') 
    then
      s2:=sl.values['ORDERS']
    else
      begin
        mb_res:=application.messagebox(PChar('Необходимо указать контрагента. Проведение документа отменено'),'',MB_ICONSTOP);
        program_result.Values['cancel']:='1';
        exit;
      end;
      
    mb_res:=application.messagebox(PChar('Подготовить данный товар к выдаче по указанному заказу?'),'',$00000004+$00000020);
    if mb_res<>6 then
      begin
        mb_res:=application.messagebox(PChar('Проведение документа отменено пользователем'),'',MB_ICONSTOP);
        program_result.Values['cancel']:='1';
        exit;
      end;

    program_result.Values['cancel']:='1'; 
    t2:='update docs set doc_type = 3, status = 2, parent_id = '+s2+' where id = '+doc_id;
    query1:=ExecIBQuery(trn,t2,1);
    EndIBTransaction(trn,1);    
    m_manager.logit(t2);
   m_manager.INITACTIVEDOCS;
   mb_res:=application.messagebox(PChar('Выполнено. Заказ переведен в статус "к выдаче (поступил)" и отправлен на кассу'),'Успех',MB_ICONINFORMATION);
     
end;