
Программное создание ДО на основе накладной
Модераторы: m0p3e, edward_K, Модераторы
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Программное создание ДО на основе накладной
Так выкладывали бы сюда под тэгом Code 

Re: Программное создание ДО на основе накладной
Да как-то постеснялся... но вот:Алексей писал(а):Так выкладывали бы сюда под тэгом Code
Код: Выделить всё
function rs_makeDO (NRec_: comp):comp;
{
var type_: word
var dSopr_: date
result:=0
if ( tmpMakeDO.GetFirst KatSopr where (( NRec_ == KatSopr.NRec )) <> tsOk )
Exit;
else
{
type_:=tmpMakeDO.KatSopr.vidsopr
dSopr_:=tmpMakeDO.KatSopr.dsopr
}
if ( tmpMakeDO.GetFirst StepDoc where (( tmpMakeDO.KatSopr.cStepDoc == StepDoc.NRec )) = tsOk )
if ( tmpMakeDO.GetFirst BaseDoc where (( tmpMakeDO.StepDoc.cBaseDoc == BaseDoc.NRec )) = tsOk )
{
result:=tmpMakeDO.BaseDoc.NRec
Exit;
}
var wDate : word;
var dDate : date;
var wParamEx : word;
var sNum : string;
var wTipMoney : word;
var pVal : comp;
var noProtocol: word;
var bdParam : Batch_DateParam;
sNum := tmpMakeDO.KatSopr.NSopr
wParamEx := 0FFFFh;
dDate := ZeroDate;
wTipMoney := 0FFFFh;
pVal := -1;
if ( not bdParam.Run(tmpMakeDO.KatSopr.nRec, tmpMakeDO.KatSopr.VidSopr, wDate, dDate, wParamEx, sNum, wTipMoney, pVal, noProtocol) )
Exit;
if (sNum <> '')
{
tmpMakeDO.ClearBuffer(tmpMakeDO.tnBaseDoc);
case type_ of
211:
tmpMakeDO.BaseDoc.VidDoc := 201;
111, 108:
tmpMakeDO.BaseDoc.VidDoc := 101;
else
tmpMakeDO.BaseDoc.VidDoc := type_;
end;
tmpMakeDO.BaseDoc.NoDoc := sNum;
tmpMakeDO.BaseDoc.dDoc := dDate;
tmpMakeDO.BaseDoc.YearDoc := Year(dDate);
tmpMakeDO.BaseDoc.cOrg := tmpMakeDO.KatSopr.cOrg;
tmpMakeDO.BaseDoc.cOtvPodr := tmpMakeDO.KatSopr.cOtvPodr;
var sError : string;
}
var pDO: GroupBatchGenereteDO;
pDO.SetParameter('wDate_GroupBatchGenereteDO' , wDate);
pDO.SetParameter('GetParamMakeDO_One_wParamEx', wParamEx);
pDO.Set_typeSopr (type_);
pDO.Set_BegEndDate (dSopr_, dSopr_);
pDO.Set_UseFilter (1);
pDO.Set_NoGroupGP (2 + 4 + 8);
pDO.Set_dDate (dDate);
pDO.Set_wDate (if(wDate <= 3, wDate, word(wDate + 2)));
pDO.Set_MultiProtocol(noProtocol = 0);
if ( sNum <> '' )
pDO.Set_nNoDoc(sNum);
delete Pick where ((22 == Pick.wList));
insert Pick set Pick.wList := 22, Pick.cRec := NRec_;
pDO.SetParameter('_FormBaseDocName_' , word(7));
pDO.SetParameter('wTipMoney_GroupBatchGenereteDO', wTipMoney);
pDO.SetParameter('pVal_GroupBatchGenereteDO' , pVal);
pDO.GenerateDOs;
pDO.SetParameter('_FormBaseDocName_' , word(0));
if ( tmpMakeDO.GetFirst KatSopr where (( NRec_ == KatSopr.NRec )) = tsOk )
if ( tmpMakeDO.GetFirst StepDoc where (( tmpMakeDO.KatSopr.cStepDoc == StepDoc.NRec )) = tsOk )
if ( tmpMakeDO.GetFirst BaseDoc where (( tmpMakeDO.StepDoc.cBaseDoc == BaseDoc.NRec )) = tsOk )
{
result:=tmpMakeDO.BaseDoc.NRec
}
}