//--------------------------------------------------------------------------- void __fastcall TPrihodForm::ButtonInsertClick(TObject &Sender) { if(!Document->Partner->ID_Partner) { ShowMessage("введите поставщика"); return; } TTovarListForm * tlf = new TTovarListForm(this); tlf->ShowModal(); if(!tlf->SelectedItem) return; TTovar * t = tlf->SelectedItem; TPrihod * p; Refresh(); if(FrameList1->Query->Locate("id_tovar", t->ID_Tovar, TLocateOptions()<<loCaseInsensitive<<loPartialKey )) p = new TPrihod(FrameList1->Query->FieldByName("id_prihod")->AsInteger); else p = new TPrihod(0); p->ID_Tovar = t->ID_Tovar; p->ID_Partner = Document->Partner->ID_Partner; p->Nomer = Document->Nomer; p->DataDok = Document->DataDok; p->Cina = t->CinaZakup; float Kilxkist = 0; try { Kilxkist = StrToFloat(InputBox("введите количество:","Количество:", "1")); } catch ( ... ) { ShowMessage("введено неправильное количество!"); } if(Kilxkist <= 0) { ShowMessage("количество не может быть нулевым или минусовым"); delete p; delete t; delete tlf; return; } t->ID_Partner = Document->Partner->ID_Partner; t->Save(); p->Kilxkist += Kilxkist; p->Save(); delete p; delete t; delete tlf; Refresh(); FrameList1->Query->Last(); }
//--------------------------------------------------------------------------- void __fastcall TNakladnaForm::ButtonInsertClick(TObject &Sender) { if(!Document->Partner->ID_Partner) { ShowMessage("введите покупателя"); return; } TTovarListForm * tlf = new TTovarListForm(this); tlf->ShowModal(); if(!tlf->SelectedItem) return; TTovar * t = new TTovar(tlf->SelectedItem->ID_Tovar, Document->Partner->ID_Partner); if(!t->CinaProdazh) { delete t; t = tlf->SelectedItem; } TRashod * r; Refresh(); if(FrameList1->Query->Locate("id_tovar", t->ID_Tovar, TLocateOptions()<<loCaseInsensitive<<loPartialKey )) r = new TRashod(FrameList1->Query->FieldByName("id_rashod")->AsInteger); else r = new TRashod(0); r->ID_Tovar = t->ID_Tovar; r->ID_Partner = Document->Partner->ID_Partner; r->Nomer = Document->Nomer; r->DataDok = Document->DataDok; float procent = cxSpinEditProcent->Value; // if(procent > 0) r->Cina = t->CinaProdazh-(t->CinaProdazh*(procent/(100+procent))); // else // r->Cina = t->CinaProdazh; float Kilxkist = 0; try { Kilxkist = StrToFloat(InputBox("введите количество:","Количество:", "1")); } catch ( ... ) { ShowMessage("введено неправильное количество!"); } if(Kilxkist <= 0) { ShowMessage("количество не может быть нулевым или минусовым"); delete r; delete t; return; } r->Kilxkist += Kilxkist; if(t->Ostatok < Kilxkist) ShowMessage("столько количества товара нету на складе"); else r->Save(); delete r; delete t; delete tlf; Refresh(); FrameList1->Query->Last(); }