本文整理汇总了C++中Pos::SetPosBusy方法的典型用法代码示例。如果您正苦于以下问题:C++ Pos::SetPosBusy方法的具体用法?C++ Pos::SetPosBusy怎么用?C++ Pos::SetPosBusy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pos
的用法示例。
在下文中一共展示了Pos::SetPosBusy方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ProcessIt
//.........这里部分代码省略.........
{
sprintf(stRta.szCodAut, getCodAutLocal(trx_data.CodTar()));
sprintf(stRta.szTermin, term_data.nro_caj_ca);
sprintf(stRta.szComerc, term_data.nro_com);
sprintf(stRta.szPlnIso, term_data.plan_iso);
sprintf(stRta.szNroLot, term_data.nro_lot);
sprintf(stRta.szFecOri, trx_data.FecOri());
sprintf(stRta.szTicOri, trx_data.NroTicOri());
sprintf(stRta.szPlanSF, term_data.plan_sf);
sprintf(stRta.szRespCA, "000");
switch (DBTipoProtocoloISO(term_data.nro_ca))
{
case PROT_ISO_AMEX:
sprintf(stRta.szProtoc, "A");
break;
default:
sprintf(stRta.szProtoc, "B");
break;
}
Armar_y_Enviar_Respuesta("00", &stRta);
}
else
{
sprintf(stRta.szRespCA, "103");
if ( (atoi(trx_data.CodTrx())==T_PAGO) || (atoi(trx_data.CodTrx())==T_DEVP) )
{
Armar_y_Enviar_Respuesta("11", &stRta);
}
else
{
Armar_y_Enviar_Respuesta("38", &stRta);
}
}
return OK;
}
else /* El vinculo esta activo */
{
/* Arma los datos para el heap */
mensaje_price->GetHeapData(&heap_data);
if (heap_data.anul_onl[0]=='1')
{
strcpy(heap_data.nro_term, CajVenta);
strcpy(heap_data.nro_trans, TrxVenta);
}
strcpy(heap_data.plan_sf, term_data.plan_sf);
strcpy(heap_data.nro_caj_ca,term_data.nro_caj_ca);
heap_data.orig_pid=orig_pid;
char idHeap[20];
/* Arma clave para el heap */
sprintf(idHeap,"%2.2s%3.3s%5.5s%8.8s",
term_data.nro_ca, term_data.nro_suc, term_data.nro_caj, mensaje_iso->GetField(11));
/* Pone los datos en el heap */
LogAlarm.Put(95, "PriceOn: idHeap [%s] \n", idHeap);
LogAlarm.Put(95, "PriceOn: anul_onl[%s] plan_iso[%s] plan_sf[%s] nro_com[%s]\n",
heap_data.anul_onl, heap_data.plan_iso, heap_data.plan_sf, heap_data.nro_com);
//LogAlarm.Put(0, "PriceOn: heap_data.rowid [%s] \n", heap_data.rowid);
ret=Heap.PutData(idHeap,(char *)&heap_data, sizeof(heap_data));
if (ret==NOOK)
{
LogAlarm.Put(0, "PriceOn: ERROR (%d) al poner info en Heap\n", Heap.GetErrno());
return NOOK;
}
/* Registrar en la TimeoutQueue */
Cfg.GetItem("TimeOutDaemon", "MsgTimeOut1", aux_str);
ret=timeout_queue.SetTimeOut(idHeap,atoi(aux_str), GetType(), "");
if (ret==NOOK)
{
LogAlarm.Put(0, "PriceOn: ERROR (%d) al agregar a TimeOutQueue!!\n", timeout_queue.GetErrno());
return NOOK;
}
/* Aplana el mensaje */
memset(msg_str,'\0',sizeof(msg_str));
len=mensaje_iso->GetMsgString(msg_str);
/* Envia el mensaje al CA */
LogAlarm.Put(0, "PriceOn: Envia a X.25. CAut [%s]\n", term_data.nro_ca);
ret=XQueue.SendMsg(atoi(term_data.nro_ca)+1, msg_str, len);
if (ret==OK)
{
/* Bloquea la caja */
ret = P.SetPosBusy(term_data.nro_ca, term_data.nro_suc, term_data.nro_caj);
if (ret!=OK)
{
LogAlarm.Put(0, "PriceOn: No se pudo bloquear la caja!!\n");
}
LogAlarm.Put(2, "PriceOn: Respuesta enviada OK\n");
}
else
{
LogAlarm.Put(0, "PriceOn: ERROR al enviar a X25\n");
return NOOK;
}
}
return OK;
}
示例2: ProcessIt
/*
+-----------------+------------------------------------------------------------+
| FUNCION | SndTrxOffLine::ProcessIt |
+-----------------+------------------------------------------------------------+
| DESCRIPCION | Proceso del objeto |
| | |
+-----------------+------------------------------------------------------------+
*/
int SndTrxOffLine::ProcessIt()
{
int len;
int ret;
int iCont;
str_sel_cadata term_data;
char msg_str[2000];
char aux_str[20];
trxOffHeap infoHeap;
DBInfoEnvio InfoEnvio;
str_fet_bu_trx trxOff;
int pos_ocup;
str_tarjeta data_tar;
char aux_str1[100];
DBTrxPk trxPk;
char idHeap[20];
char szFechaEnvio[16];
int iErrorBD;
int iNroCuotas;
/* Carga estructura para busqueda de transaccion offline */
strncpy(trxOff.cod_tar , CodTarjeta, sizeof(trxOff.cod_tar));
strncpy(trxOff.cod_est , "00" , sizeof(trxOff.cod_est));
strncpy(trxOff.nro_caj_ca, NroCajCa , sizeof(trxOff.nro_caj_ca));
strncpy(trxOff.nro_trx , NroTrx , sizeof(trxOff.nro_trx));
trxOff.nro_caj_ca[sizeof(trxOff.nro_caj_ca)-1]='\0';
trxOff.cod_tar [sizeof(trxOff.cod_tar) -1]='\0';
trxOff.cod_est [sizeof(trxOff.cod_est) -1]='\0';
trxOff.nro_trx [sizeof(trxOff.nro_trx) -1]='\0';
/* Busca en BD una transaccion offline */
LogAlarm.Put(0, "TrxOff: Lee offline [%s] [%s] [%s] [%s]\n", trxOff.nro_caj_ca, trxOff.cod_tar, trxOff.cod_est, trxOff.nro_trx);
ret=DBGetNextTrx(&trxOff, &iErrorBD);
if (ret!=OK)
{
LogAlarm.Put( 0, "TrxOff: Retorno de recuperacion de offline:%d Errno:%d\n", ret, iErrorBD);
EnviarMsg(orig_pid, "ERROR", 5);
return OK;
}
//LogAlarm.Put(0, "TrxOff: Rowid a enviar [%s]\n",trxOff.rowid);
/* Obtiene datos del centro autorizador */
LogAlarm.Put(5, "TrxOff: Obtiene codigo de centro\n");
strcpy(data_tar.cod_tar, trxOff.cod_tar);
ret = ObtCA(&data_tar);
if (ret!=OK)
{
LogAlarm.Put(0, "TrxOff: ERROR al obtener CA. Tar:[%s]\n", trxOff.cod_tar);
EnviarMsg(orig_pid, "ERROR", 5);
return OK;
}
/* Verifica si la caja esta libre */
strcpy(term_data.nro_caj, trxOff.nro_caj);
pos_ocup = P.IsPosFree(data_tar.nro_ca, trxOff.nro_suc, trxOff.nro_caj);
if (pos_ocup)
{
/* Marca la caja como ocupada */
ret = P.SetPosBusy(data_tar.nro_ca, trxOff.nro_suc, trxOff.nro_caj);
if (ret!=OK)
{
LogAlarm.Put(0, "TrxOff: ERROR al setear caja como ocupada\n");
}
}
else
{
/* Retorna envio de caja bloqueada */
LogAlarm.Put(0, "TrxOff: ERROR. Caja bloqueada\n");
EnviarMsg(orig_pid, "BLOCK", 5);
return NOOK;
}
/* Arma el mensaje base de acuerdo al codigo de transaccion */
switch (atoi(trxOff.cod_trx))
{
case T_VENT:
IsoMsg=new Iso_Msg(TYPE_VISA_VENTA_LOCAL);
break;
case T_DEVO:
IsoMsg=new Iso_Msg(TYPE_VISA_DEVOL_LOCAL);
break;
case T_PAGO:
IsoMsg=new Iso_Msg(TYPE_VISA_VENTA_LOCAL);
sprintf(aux_str1, "%06d", OPCODE_VISA_PAGO_RESUMEN);
IsoMsg->PutField(3, aux_str1);
break;
case T_DEVP:
IsoMsg=new Iso_Msg(TYPE_VISA_DEVOL_LOCAL);
sprintf(aux_str1, "%06d", OPCODE_VISA_DEVO_RESUMEN);
IsoMsg->PutField(3, aux_str1);
break;
default: /* Tipo de transaccion desconocida */
//.........这里部分代码省略.........