Пример #1
0
//---------------------------------------------------------------------------
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();   
}
Пример #2
0
//---------------------------------------------------------------------------
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();
}