Показать сообщение отдельно
Старый 08.02.2002, 06:47   #1  
Andrew Besedin is offline
Andrew Besedin
Участник
 
121 / 15 (1) ++
Регистрация: 25.01.2002
Изменение даты в разнесенных закупках
Уважаемое сообщество!
У нас очередное ЧП - на сей раз разнесли закупки с неверной датой. Хочется иметь инструмент исправления этой проблемы.
Будьте добры, посмотрите критически нижеследущий код - какие таблицы еще нужно подправить, на ваш взгляд? И вообще, не вырастут ли какие-нибудь ноги от такой процедуры?
PHP код:
void clicked()
{
PurchTable pTable;
PurchLine pLine;
InventTrans iTrans;
VendInvoiceJour vIJour;
VendInvoiceTrans vITrans;
LedgerTrans lTrans;

if(!
PurchID.text())
    Throw 
Error('А где номер закупки');
if(!
NewDate.dateValue())
    Throw 
Error('А где новая дата?');

select forupdate pTable where pTable.PurchId == PurchID.text();
    
pTable.DeliveryDateNewDate.dateValue();
    
pTable.Doupdate();

while 
select forupdate pLine where pLine.PurchId == pTable.PurchId
{
    
pLine.DeliveryDate NewDate.dateValue();
    while 
select forupdate iTrans where iTrans.InventTransId == pLine.InventTransId
    
{
        
iTrans.DateFinancial NewDate.dateValue();
        
iTrans.update();
    }
    
pLine.update();

    while 
select forupdate vIJour where vIJour.PurchId == pTable.PurchId
    
{
        while 
select forupdate vITrans where vITrans.InvoiceId == vIJour.InvoiceID
        
{
            
vITrans.invoiceDate NewDate.dateValue();
            
vITrans.update();
        }

        while 
select forupdate lTrans where lTrans.Voucher == vIJour.LedgerVoucher
                                        
&&  lTrans.TransDate == vIJour.InvoiceDate
        
{
            
lTrans.TransDate NewDate.dateValue();
            
lTrans.DocumentDate NewDate.dateValue();
            
lTrans.update();
        }

        
vIJour.InvoiceDate NewDate.dateValue();
        
vIJour.update();
    }
}
    
super();

С уважением,
Андрей Беседин