亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? trxres.cpp

?? ISO 8583 with c++ for financial transaction standard
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
/////////////////////////////////////////////////////////////////////////////////////////////////
//                                                              
// IT24 Sistemas S.A.
// Transaction Base Resolution Class
// Transaction Resolution Class
//
//        Esta es la Clase de Resolucion de Transacciones.
//        Aplicada en principio para PAS, puede soportar las subsiguientes
//  logicas de resolucion de transacciones de futuros proyectos, como
//  ULTMOV, AFJP, MEP, SOAT, etc, ya que simplemente se discriminan
//  por tipo de trx y se aplican distintos metodos con diversos Stored Procedures.
//        La misma se plantea como instancias multiples creadas por un Servidor 
//  de Atencion de Transacciones. Como puede tener multiples transacciones
//  resolviendose, no se plantea como clase estatica, y es por esto mismo
//  que no deben establecerse variables miembro estaticas, sino locales al metodo.
//      El siguiente grafico da una idea de la 'familia' de clases obtenidas:
//
//
//                           TrxBaseResolution                    1) Esta es la base
//                                  |
//                                  |
//               +------------+-----+------+-------------+
//               |            |            |             |
//               |            |            |             |
//           TrxResPAS   TrxResULTMOV   TrxResAFJP   TrxResSOAT   2) Esta la especializacion
//               |            |            |             |
//               |            |            |             |
//               +------------+-----+------+-------------+
//                                  |
//                                  |
//                             TrxResolution                      3) Y este el controlador
//
//   Segun la implementacion, los metodos especializados puede ser "dummy", o sea un 
// simple retorno en falso sin procesamiento, sin generar el codigo ejecutable 
// actualmente,  con el solo motivo de mantener el esqueleto de codigo fuente 
// original y facilitar el posible enlace a futuro de las subclases especializadas 
// en una sola libreria o modulo.
//
//
// Tarea        Fecha           Autor   Observaciones
// (Inicial)    1998.07.23      mdc     En base a TrxRes de PAS/AFJP/ULTMOV
// (Inicial)    1999.07.08      mdc     Assume time-out and retry (ConnectDataBase(...))
// (Beta)       2001.12.31      mdc     ATM
// (Beta)       2002.01.25      mdc     BOOL TrxBaseResolution::ConnectDataBase(PSTR pszServer, PSTR pszDBase, PSTR pszUser);
// (Beta)       2002.02.18      mdc     TrxBaseResolution::SetOnOffLine(boolean_t boolXOnline)
// (Beta)       2002.11.22      mdc     wAuthRespCde   = TCP4U_SUCCESS;       // OK por default
// (Beta)       2003.05.20      mdc     BOOL TrxBaseResolution::FormatTrxDateTime_WMask(char *szYYYYMMDD, char *szHHMMSS,...);
// (Beta)       2004.01.05      mdc     Cuando el MES de fecha de negocios es MENOR al de fecha de transaccion,
//                                      debe sumarse 1 al ao actual.
//
/////////////////////////////////////////////////////////////////////////////////////////////////

// Header Type Definitions
#include <qusrinc/typedefs.h>    
// Headers ANSI 
#include <time.h>    
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
// Headers propios
#include <qusrinc/trxres.h>
#include <qusrinc/stdiol.h>

///////////////////////////////////////////////////////////////////////////////////
// TrxBaseResolution
///////////////////////////////////////////////////////////////////////////////////

// Clase Resolucion Base de Transaccion
// Constructor default
EXPORT TrxBaseResolution::TrxBaseResolution(void)
    {
    boolOnlineMode = is_true;    // En linea por default
    /////////////////////////////////////////////////////////////////////////
    bProcResult    = is_false;    // Sin resultado de procesamiento por default
    wProcRespCde   = CISO_SYSTEM_ERROR_I; // Desaprobada por default
    shAuthRespCde   = TCP4U_SUCCESS;       // OK por default
    efFormatMsg    = CNTL_FORMAT_ISO8583; // ISO8583 por default
    srand( time( NULL ) );        // Inicializar criba de pseudorandoms
    /////////////////////////////////////////////////////////////////////////

    // Inicializacion: Bitmap strings parametricas?    
    isoMsg.CheckExternParameters();

    }

// Constructor opcional
EXPORT TrxBaseResolution::TrxBaseResolution(PSTR pszDBase,PSTR pszUser)
    {
    // Initialization    
    boolOnlineMode = is_true;    // En linea por default
    /////////////////////////////////////////////////////////////////////////
    bProcResult    = is_false;    // Sin resultado de procesamiento por default
    wProcRespCde   = CISO_SYSTEM_ERROR_I; // Desaprobada por default
    shAuthRespCde  = TCP4U_SUCCESS;       // OK por default
    efFormatMsg    = CNTL_FORMAT_ISO8583; // ISO8583 por default
    srand( time( NULL ) );        // Inicializar criba de pseudorandoms
    /////////////////////////////////////////////////////////////////////////

    // Inicializacion: Bitmap strings parametricas?    
    isoMsg.CheckExternParameters();

    }

EXPORT TrxBaseResolution::~TrxBaseResolution(void)
    {    
    // Sin formato de mensaje al finalizar
    efFormatMsg = CNTL_FORMAT_NULL; 
    // Offline al finalizar
    boolOnlineMode = is_false;    
    }

BOOL EXPORT TrxBaseResolution::SetOnOffLine(boolean_t boolXOnline)
    {
    // Senal de modo ON u OFF que implica informar fechas en forma distinta segun corresponda
    boolOnlineMode = boolXOnline;
    return TRUE;
    }

////////////////////////////////////////////////////////////////////////////
// Para loggear errores internos, se disponibilizan estos metodos publicas:
WORD EXPORT TrxBaseResolution::TransactionStatus(void)
    {
    // Ok?
    return ( bProcResult ) 
        ? wProcRespCde
        : 0;
    }

////////////////////////////////////////////////////////////////////////////
// Para loggear errores internos, se disponibilizan estos metodos publicas:
short EXPORT TrxBaseResolution::BackEndAuthStatus(void)
    {
    // Ok? {-32768....+32767}
    return shAuthRespCde;
    }

////////////////////////////////////////////////////////////////////////////
// Para verificar tipo de mensajes ISO para enviar a SAF
BOOL EXPORT TrxBaseResolution::IsValidSAFTransaction(void)
    {
    // Las transacciones validas para enviar a SAF son aquellas notificaciones 
    // (ISO 220) y reversos (ISO 420) o forzados de los mismos. El resto no se
    // guarda en el SAF local, sino en el SAF del switch financiero.
    if(     isoMsgBkp.IsFinancialAdvice() ||     // Forzados
         isoMsgBkp.IsValidReversal() )        // Reversos
         return TRUE;
    else
        return FALSE;

    }

///////////////////////////////////////////////////////////////////////////////////
// TrxResolution
///////////////////////////////////////////////////////////////////////////////////

// Verificacion de TrxAdvice/SAFAdvice (0220)
BOOL EXPORT TrxResolution::IsTrxAdvice(void)
    {
    // Actualmente solo se da en el Sistema PAS
    return isoMsg.IsPASPayment();
    }

// Verificacion de TrxAdviceResp/SAFAdviceResp (0230)
BOOL EXPORT TrxResolution::IsTrxAdviceResponse(void)
    {
    // Actualmente solo se da en el Sistema PAS
    return isoMsg.IsPASPaymentResponse();
    }

/////////////////////////////////////////////////////////////////////////////////////////////////////////
// Formatea el monto agregandole o quitando punto decimal y millares,
// y optativamente aplica el tipo de cambio si correspondiera.
// szAmmount - monto en formato display, a convertir y formatear con decimales
// shDecPos - posiciones decimales a fijar
// szNew - variable de recepcion del monto formateado
// shAlignWidth - cantidad de posiciones a alinear y rellenar
// bApplyChangeRate - aplica tipo de cambio, si o no?
// szExchangeRate - tipo de cambio aplicado
SHORT TrxBaseResolution::Format_ISO_Ammount(const char *szAmmount, short shDecPos, 
                                      char *szNew, short shAlignWidth,
                                      boolean_t bApplyChangeRate ,
                                      char *szExchangeRate)
{
    /******************************************************************/
    /* maximo de longitud a tomar */
    const short wAmmountLen = sizeof(isoFields.field4.chAmmount); 
    /******************************************************************/    
    short  shLen           = 0;       /* long de cadena */
    char   *pszDecPoint    = NULL; /* ptr a pto. decimal en la cadena */
    short  shQPoints       = 0;    /* cantidad de reemplazos efectuados */
    double dblAmmount      = 0.0f; /* monto en binario interno */           
    const char chMilePoint = ',';  /* punto millar buscado */
    double dblCnvRate      = 0.0f, /* tasa de cambio-conversion DOLARES-PESOS-etc */
           dblAmmountCnv   = 0.0f; /* monto convertido a tasa de cambio */    
    /* Recuperar en forma binaria los tipos de cuenta DESDE y HACIA */
    int iFromAccType = antoi(isoFields.field3.uProcCde.stTranCde.chFrom_Acct_Typ,2) ;
    int iToAccType   = antoi(isoFields.field3.uProcCde.stTranCde.chTo_Acct_Typ  ,2) ;


    /* precondicion */
    if(szAmmount == NULL || szAmmount[0] == 0x00 || szNew == NULL || 
        shAlignWidth < 0 || shDecPos < 0)
        return -1;
    /******************************************************************/
    /* conversion de formato ISO a uso interno con decimales ? */
    /* posicion decimal invalida para poner punto decimal ? */
    if(shDecPos > 0)    
    {
        /******************************************************************/
        /* copia local y longitud de la cadena que representa al MONTO TRX*/    
        strncpy(szNew, szAmmount, wAmmountLen);
        szNew[wAmmountLen] = 0x00 ;
        /* longitud en base al maximo ISO posible */
        shLen = strlen(szNew);
        /******************************************************************/

        /* conversion a ASCII con pto. decimal */
        sprintf(szNew, "%*.*s.%*.*s", 
            shLen - shDecPos, shLen - shDecPos, szAmmount, 
            shDecPos, shDecPos, szAmmount + shLen - shDecPos);                    
        shLen = strlen(szNew);
        /* conversion a binario y verificacion del tipo de cambio si corresponde */
        dblAmmount = atof( szNew );
        dblCnvRate = 1.0f; /* default : NO hay conversion a ningun tipo de cambio */ 
        /* si el tipo de cuenta difiere de la moneda de la transaccion */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩绯色av一区二区在线观看| 亚洲精品国产精品乱码不99 | 国产91在线|亚洲| 久久色成人在线| 麻豆成人av在线| 日韩一区二区在线观看| 国产欧美一区二区精品久导航| 日本亚洲一区二区| 久久久亚洲精品一区二区三区 | 日韩av网站免费在线| 色国产综合视频| 亚洲国产人成综合网站| 欧美日韩国产在线播放网站| 久久国产精品一区二区| 亚洲国产精品成人综合| 色狠狠综合天天综合综合| 日本大胆欧美人术艺术动态 | 欧美日韩dvd在线观看| 国产乱对白刺激视频不卡| 中文字幕一区在线观看视频| 7777精品伊人久久久大香线蕉| 日本系列欧美系列| 一区二区日韩电影| 亚洲精品国产精品乱码不99 | 91精品国产免费| 韩国av一区二区三区四区| 亚洲国产精品久久人人爱 | 欧美日韩久久一区| 91丝袜美女网| 国产精品一二三四五| 香蕉成人啪国产精品视频综合网| 久久久三级国产网站| 日韩欧美国产午夜精品| 人禽交欧美网站| 一区二区三区精品视频| 一区二区三区在线观看网站| 日韩美女一区二区三区四区| 91精品一区二区三区在线观看| 欧美日韩一区二区电影| 欧美精品亚洲一区二区在线播放| 国产精品久久777777| 精品少妇一区二区三区在线播放 | 欧美一级午夜免费电影| 日韩影视精彩在线| 国产suv精品一区二区883| www.性欧美| 欧美日韩国产在线播放网站| 欧美一区二区三区人| 国产偷国产偷精品高清尤物| 亚洲欧美日韩久久精品| 色婷婷综合久色| 欧美日产在线观看| 日本一区二区三区国色天香| 亚洲精品中文字幕在线观看| 亚洲国产精品天堂| 麻豆国产欧美日韩综合精品二区| 亚洲一区电影777| 成人综合在线视频| 欧美一区二区福利在线| 国产欧美日韩三区| 亚洲一二三四区不卡| 99在线精品视频| 欧美一区二区三区不卡| 欧美中文字幕一二三区视频| 亚洲国产精品自拍| 99久久婷婷国产综合精品| 日韩美女主播在线视频一区二区三区| 亚洲精品免费视频| www.久久久久久久久| www.欧美日韩| 亚洲风情在线资源站| 91视频在线观看| 专区另类欧美日韩| 蜜臀av一级做a爰片久久| 91精品国产综合久久精品性色| 亚洲精品国产无套在线观| 激情小说欧美图片| 精品免费视频.| 日本一区二区免费在线| 国产剧情在线观看一区二区| 日韩女优电影在线观看| 一区二区三区在线高清| 精品美女被调教视频大全网站| 欧美zozozo| 国产一区91精品张津瑜| 国产精品久久久久久久久久免费看 | 日韩一区欧美小说| 成人动漫一区二区三区| 中文字幕 久热精品 视频在线| 成人黄色综合网站| 中文字幕精品综合| 亚洲精品视频在线观看免费| 欧美日韩一区二区电影| 国产尤物一区二区| 国产精品的网站| 亚洲视频1区2区| 奇米色777欧美一区二区| 日韩精品一区二区三区老鸭窝| 免费观看91视频大全| 国产精品久久二区二区| 欧美成人激情免费网| 久久女同互慰一区二区三区| 国产成人午夜精品5599| 日韩va亚洲va欧美va久久| 国产精品污www在线观看| 日韩一区二区视频在线观看| 国产日韩精品久久久| 91精品国产综合久久福利软件 | 欧美一区二区视频在线观看2022| 五月婷婷激情综合| 亚洲综合一区二区三区| 亚洲国产精品成人久久综合一区| 欧美日韩你懂的| 97久久精品人人爽人人爽蜜臀| 九九久久精品视频| 日本成人在线看| 麻豆91免费看| 国产一区二区三区精品欧美日韩一区二区三区 | 综合久久久久久| 亚洲一区二区在线免费看| 国产精品国产三级国产三级人妇 | 精品三级av在线| 欧美久久久久久久久中文字幕| 91碰在线视频| 欧美挠脚心视频网站| 日韩精品一二区| 午夜视频久久久久久| 久久精品国产秦先生| 精品一区二区三区免费视频| 色综合夜色一区| 国产精品全国免费观看高清| 欧美精品aⅴ在线视频| 在线观看日产精品| 日韩精品一区国产麻豆| 久久久精品综合| 亚洲精品亚洲人成人网| 久久综合综合久久综合| 国内精品视频一区二区三区八戒| 国产伦精一区二区三区| 欧美揉bbbbb揉bbbbb| 国产欧美日韩精品在线| 国产精品久久久久久久蜜臀| 欧美日本乱大交xxxxx| 久久网站最新地址| 亚洲综合色区另类av| 成人午夜短视频| 精品美女在线播放| 亚洲一区免费在线观看| 北条麻妃一区二区三区| 91国模大尺度私拍在线视频| 日韩免费福利电影在线观看| 美女视频一区在线观看| 午夜精品视频在线观看| 91网页版在线| 国产精品美女久久久久久| 国产成人h网站| 国产欧美日韩精品a在线观看| 极品少妇一区二区| 日韩一卡二卡三卡四卡| 亚洲综合在线观看视频| 欧美视频一区二区三区在线观看| 成人avav影音| 一区二区在线观看免费| 国产精品乡下勾搭老头1| 国产精品青草综合久久久久99| 国产精品一区免费视频| 国产欧美日韩视频在线观看| 亚洲卡通动漫在线| 51精品秘密在线观看| 美女看a上一区| 中文字幕国产一区二区| 欧洲一区二区三区在线| 亚洲电影一级片| 国产精品全国免费观看高清| 色噜噜狠狠色综合中国| 天堂va蜜桃一区二区三区漫画版| 欧美日韩精品欧美日韩精品一 | 日韩成人dvd| 中文字幕av一区二区三区高| 91精品久久久久久久久99蜜臂| 久久久午夜精品| 欧美性淫爽ww久久久久无| 精品一区二区三区在线播放视频 | 欧美日韩一区久久| 久久 天天综合| 经典三级一区二区| 日日欢夜夜爽一区| 亚洲欧美综合另类在线卡通| 精品日本一线二线三线不卡| 欧美视频自拍偷拍| 午夜视频在线观看一区二区三区| 日韩一级片网站| 欧美一区二区视频观看视频| 色综合久久久网| 国产成人av一区二区三区在线| 精品国产乱码久久久久久夜甘婷婷 | 在线综合亚洲欧美在线视频| 色婷婷久久久亚洲一区二区三区| 国产在线不卡视频| 国产丶欧美丶日本不卡视频|