первый

This commit is contained in:
2024-11-01 12:23:13 +05:00
parent 801d9d33fa
commit 0688c46a7e
226 changed files with 162921 additions and 0 deletions

View File

@ -0,0 +1,158 @@
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "ValidatorThread.h"
#include "Validator.h"
#include "PrinterOPOS.h"
#include "uf_Main.h"
#include "ud_Module.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// Important: Methods and properties of objects in VCL can only be
// used in a method called using Synchronize, for example:
//
// Synchronize(UpdateCaption);
//
// where UpdateCaption could look like:
//
// void __fastcall ValidatorThread::UpdateCaption()
// {
// Form1->Caption = "Updated in a thread";
// }
//---------------------------------------------------------------------------
__fastcall ValidatorThread::ValidatorThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
bStop=false;
}
//---------------------------------------------------------------------------
void __fastcall ValidatorThread::Execute()
{
while(!bStop)
{
pay=validator->getPay(state);
Synchronize(UpdateState);
if(pay!=0)
Synchronize(UpdateCaption);
}
validator->endPay();
}
//---------------------------------------------------------------------------
void ValidatorThread::Stop()
{
bStop=true;
}
//---------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
void __fastcall ValidatorThread::UpdateState()
{
//TODO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!!!
if(state==0x15)
{
frmMain->gbtnJCheck->Enabled=false;
frmMain->gbtnPCheck->Enabled=false;
}else
if(state==0x19 || state==0x81)
{
if(frmMain->sum!=0)
{
frmMain->gbtnJCheck->Enabled=true;
frmMain->gbtnPCheck->Enabled=true;
}
}
}
//---------------------------------------------------------------------------
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
void __fastcall ValidatorThread::UpdateCaption()
{
TService* ser=NULL;
bool isOk=true;
frmMain->gbtnJCheck->Enabled=true; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
frmMain->gbtnPCheck->Enabled=true;
frmMain->gbtnMainMenu->Enabled=false;
frmMain->sum+=pay;
// frmMain->Label13->Caption=dModule->language->Values["npay"]+" "+IntToStr(frmMain->sum)+"<22><>.";
frmMain->Label9->Caption=dModule->language->Values["npay"]+" "+IntToStr(frmMain->sum)+"<EFBFBD><EFBFBD>.";
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TService* s=NULL;
for(int i=0;i<dModule->LService->Count;i++)
{
if(((TService*)dModule->LService->Items[i])->select)
{
s=(TService*)dModule->LService->Items[i];
break;
}
}
if(s!=NULL)
{
s->sum+=pay;
s->lblSum->Caption=IntToStr(s->sum);
}
try
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(dModule->UserType) //true - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
{
if(dModule->BalanceType==1) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
{
if(dModule->addPayJuridicalPerson(dModule->UserId, pay, g_printer->getCheckId()+1))
dModule->OraSession1->Commit();
else
{isOk=false; dModule->OraSession1->Rollback();}
}else
if(dModule->BalanceType==2) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if(dModule->addPayJuridicalPerson(dModule->UserId, pay, g_printer->getCheckId()+1))
dModule->OraSession1->Commit();
else
{isOk=false; dModule->OraSession1->Rollback();}
}
}else //false - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
{
ser=dModule->getSelectService();
if(ser==NULL){isOk=false; dModule->OraSession1->Rollback();}
else
{
if(dModule->BalanceType==1) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
{
if(dModule->addPayPhysicalPerson(dModule->UserId, ser->id, pay, g_printer->getCheckId()+1))
dModule->OraSession1->Commit();
else
{isOk=false; dModule->OraSession1->Rollback();}
}else
if(dModule->BalanceType==2) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
if(dModule->addPayPhysicalPerson(dModule->UserId, ser->id, pay, g_printer->getCheckId()+1))
dModule->OraSession1->Commit();
else
{isOk=false; dModule->OraSession1->Rollback();}
}
}
}
}catch(...){isOk=false;}
//<2F><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(!isOk)
{
int set_id=0; if(ser!=NULL) set_id=ser->id;
if(dModule->BalanceType==1)
{
dModule->savePay(1,dModule->UserType,dModule->UserId,set_id,pay,g_printer->getCheckId()+1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
else
if(dModule->BalanceType==2)
dModule->savePay(2,dModule->UserType,dModule->UserId,set_id,pay,g_printer->getCheckId()+1); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
//---------------------------------------------------------------------------