示例#1
0
        public void precierrecaja(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_USUARIO
                                  , string P_PAIS, string P_ID_APERTURA, string P_ID_CIERRE, string P_SOCIEDAD, string P_ID_REPORT, string P_DATUMDESDE, string P_DATUMHASTA)
        {
            try
            {
                RETORNO      retorno;
                CAB_ARQUEO   cabarqueo;
                RESUMEN_VP   resumenvp;
                DET_ARQUEO   detarqueo;
                DETALLE_REND detallerend;
                T_Retorno.Clear();
                det_arqueo.Clear();
                detalle_rend.Clear();
                cab_arqueo.Clear();
                resumen_viapago.Clear();
                errormessage     = "";
                message          = "";
                diferencia       = "";
                id_arqueo        = "";
                MontoIngresos    = 0;
                MontoEfect       = 0;
                MontoChqDia      = 0;
                MontoChqFech     = 0;
                MontoTransf      = 0;
                MontoValeV       = 0;
                MontoDepot       = 0;
                MontoTarj        = 0;
                MontoFinanc      = 0;
                MontoApp         = 0;
                MontoCredit      = 0;
                MontoEgresos     = 0;
                MontoFondosFijos = 0;
                SaldoTotal       = 0;
                id_arqueo        = "";
                idcajaout        = "";
                cajerorespout    = "";
                sucursal         = "";
                nomcaja          = "";
                sociedadout      = "";
                landout          = "";
                IRfcStructure ls_RETORNO;
                IRfcTable     lt_DETALLE_REND;
                IRfcTable     lt_RESUMEN_VP;
                IRfcTable     lt_CAB_ARQUEO;
                IRfcTable     lt_DET_ARQUEO;


                //Conexion a SAP
                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();
                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_REP_CAJA");

                    BapiGetUser.SetValue("LAND", P_PAIS);
                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                    BapiGetUser.SetValue("USUARIO", P_USUARIO);
                    BapiGetUser.SetValue("ID_CIERRE", P_ID_CIERRE);
                    BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA);
                    BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD);
                    //BapiGetUser.SetValue("IND_ARQUEO", P_IND_ARQUEO);
                    BapiGetUser.SetValue("ID_REPORT", P_ID_REPORT);
                    BapiGetUser.SetValue("DATE_ARQ_FROM", Convert.ToDateTime(P_DATUMDESDE));
                    BapiGetUser.SetValue("DATE_ARQ_TO", Convert.ToDateTime(P_DATUMHASTA));



                    BapiGetUser.Invoke(SapRfcDestination);

                    idcajaout     = BapiGetUser.GetString("ID_CAJA_OUT");
                    cajerorespout = BapiGetUser.GetString("CAJERO_RESP_OUT");
                    sucursal      = BapiGetUser.GetString("SUCURSAL");
                    nomcaja       = BapiGetUser.GetString("NOM_CAJA");
                    sociedadout   = BapiGetUser.GetString("SOCIEDAD_OUT");
                    landout       = BapiGetUser.GetString("LAND_OUT");


                    lt_DETALLE_REND = BapiGetUser.GetTable("DETALLE_REND");
                    try
                    {
                        for (int i = 0; i < lt_DETALLE_REND.Count(); i++)
                        {
                            lt_DETALLE_REND.CurrentIndex = i;
                            detallerend              = new DETALLE_REND();
                            detallerend.N_VENTA      = lt_DETALLE_REND.GetString("N_VENTA");
                            detallerend.FEC_EMI      = lt_DETALLE_REND.GetString("FEC_EMI");
                            detallerend.FEC_VENC     = lt_DETALLE_REND.GetString("FEC_VENC");
                            detallerend.MONTO        = lt_DETALLE_REND.GetString("MONTO");
                            detallerend.NAME1        = lt_DETALLE_REND.GetString("NAME1");
                            detallerend.MONTO_EFEC   = lt_DETALLE_REND.GetString("MONTO_EFEC");
                            MontoEfect               = MontoEfect + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_EFEC"));
                            detallerend.NUM_CHEQUE   = lt_DETALLE_REND.GetString("NUM_CHEQUE");
                            detallerend.MONTO_DIA    = lt_DETALLE_REND.GetString("MONTO_DIA");
                            MontoChqDia              = MontoChqDia + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_DIA"));
                            detallerend.MONTO_FECHA  = lt_DETALLE_REND.GetString("MONTO_FECHA");
                            MontoChqFech             = MontoChqFech + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_FECHA"));
                            detallerend.MONTO_TRANSF = lt_DETALLE_REND.GetString("MONTO_TRANSF");
                            MontoTransf              = MontoTransf + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_TRANSF"));
                            detallerend.MONTO_VALE_V = lt_DETALLE_REND.GetString("MONTO_VALE_V");
                            MontoValeV               = MontoValeV + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_VALE_V"));
                            detallerend.MONTO_DEP    = lt_DETALLE_REND.GetString("MONTO_DEP");
                            MontoDepot               = MontoDepot + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_DEP"));
                            detallerend.MONTO_TARJ   = lt_DETALLE_REND.GetString("MONTO_TARJ");
                            MontoTarj = MontoTarj + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_TARJ"));
                            detallerend.MONTO_FINANC = lt_DETALLE_REND.GetString("MONTO_FINANC");
                            MontoFinanc           = MontoFinanc + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_FINANC"));
                            detallerend.MONTO_APP = lt_DETALLE_REND.GetString("MONTO_APP");
                            MontoApp = MontoApp + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_APP"));
                            detallerend.MONTO_CREDITO = lt_DETALLE_REND.GetString("MONTO_CREDITO");
                            MontoCredit               = MontoCredit + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_CREDITO"));
                            detallerend.PATENTE       = lt_DETALLE_REND.GetString("PATENTE");
                            detallerend.MONTO_C_CURSE = lt_DETALLE_REND.GetString("MONTO_C_CURSE");
                            MontoCCurse               = MontoCCurse + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_C_CURSE"));
                            detallerend.DOC_SAP       = lt_DETALLE_REND.GetString("DOC_SAP");
                            detalle_rend.Add(detallerend);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    MontoIngresos = MontoIngresos + MontoEfect + MontoChqDia + MontoChqFech + MontoTransf + MontoValeV +
                                    MontoDepot + MontoTarj + MontoFinanc + MontoApp + MontoCredit + MontoCCurse;
                    SaldoTotal = MontoIngresos - MontoEgresos;


                    lt_RESUMEN_VP = BapiGetUser.GetTable("RESUMEN_VP");
                    try
                    {
                        for (int i = 0; i < lt_RESUMEN_VP.Count(); i++)
                        {
                            lt_RESUMEN_VP.CurrentIndex = i;
                            resumenvp              = new RESUMEN_VP();
                            resumenvp.LAND         = lt_RESUMEN_VP.GetString("LAND");
                            resumenvp.ID_CAJA      = lt_RESUMEN_VP.GetString("ID_CAJA");
                            resumenvp.SOCIEDAD     = lt_RESUMEN_VP.GetString("SOCIEDAD");
                            resumenvp.SOCIEDAD_TXT = lt_RESUMEN_VP.GetString("SOCIEDAD_TXT");
                            resumenvp.VIA_PAGO     = lt_RESUMEN_VP.GetString("VIA_PAGO");
                            resumenvp.TEXT1        = lt_RESUMEN_VP.GetString("TEXT1");
                            resumenvp.MONEDA       = lt_RESUMEN_VP.GetString("MONEDA");
                            resumenvp.MONTO        = lt_RESUMEN_VP.GetString("MONTO");
                            resumenvp.CANT_DOCS    = lt_RESUMEN_VP.GetString("CANT_DOCS");
                            resumen_viapago.Add(resumenvp);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_CAB_ARQUEO = BapiGetUser.GetTable("CAB_ARQUEO");
                    try
                    {
                        for (int i = 0; i < lt_CAB_ARQUEO.Count(); i++)
                        {
                            lt_CAB_ARQUEO.CurrentIndex = i;
                            cabarqueo                = new CAB_ARQUEO();
                            cabarqueo.MANDT          = lt_CAB_ARQUEO.GetString("MANDT");
                            cabarqueo.LAND           = lt_CAB_ARQUEO.GetString("LAND");
                            cabarqueo.ID_ARQUEO      = lt_CAB_ARQUEO.GetString("ID_ARQUEO");
                            cabarqueo.ID_REGISTRO    = lt_CAB_ARQUEO.GetString("ID_DENOMINACION");
                            cabarqueo.ID_CAJA        = lt_CAB_ARQUEO.GetString("CANTIDAD");
                            cabarqueo.MONTO_CIERRE   = lt_CAB_ARQUEO.GetString("MONTO_TOTAL");
                            cabarqueo.MONTO_DIF      = lt_CAB_ARQUEO.GetString("ID_DENOMINACION");
                            cabarqueo.COMENTARIO_DIF = lt_CAB_ARQUEO.GetString("CANTIDAD");
                            cabarqueo.NULO           = lt_CAB_ARQUEO.GetString("MONTO_TOTAL");
                            cab_arqueo.Add(cabarqueo);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_DET_ARQUEO = BapiGetUser.GetTable("DET_ARQUEO");
                    try
                    {
                        for (int i = 0; i < lt_DET_ARQUEO.Count(); i++)
                        {
                            lt_DET_ARQUEO.CurrentIndex = i;
                            detarqueo                 = new DET_ARQUEO();
                            detarqueo.MANDT           = lt_DET_ARQUEO.GetString("MANDT");
                            detarqueo.LAND            = lt_DET_ARQUEO.GetString("LAND");
                            detarqueo.ID_ARQUEO       = lt_DET_ARQUEO.GetString("ID_ARQUEO");
                            detarqueo.ID_DENOMINACION = lt_DET_ARQUEO.GetString("ID_DENOMINACION");
                            detarqueo.CANTIDAD        = lt_DET_ARQUEO.GetString("CANTIDAD");
                            detarqueo.MONTO_TOTAL     = lt_DET_ARQUEO.GetString("MONTO_TOTAL");
                            det_arqueo.Add(detarqueo);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    //lt_INFO_SOC = BapiGetUser.GetTable("INFO_SOC");
                    //try {

                    //    for (int i = 0; i < lt_INFO_SOC.Count(); i++)
                    //    {
                    //        lt_INFO_SOC.CurrentIndex = i;
                    //        infosociedad = new INFO_SOC2();
                    //        infosociedad.BUKRS = lt_INFO_SOC.GetString("BUKRS");
                    //        infosociedad.BUTXT = lt_INFO_SOC.GetString("BUTXT");
                    //        infosociedad.STCD1 = lt_INFO_SOC.GetString("STCD1");
                    //        info_soc(infosociedad);
                    //    }
                    //}
                    //catch(Exception ex)
                    //{
                    //    Console.WriteLine(ex.Message, ex.StackTrace);
                    //    MessageBox.Show(ex.Message + ex.StackTrace);
                    //}

                    ls_RETORNO = BapiGetUser.GetStructure("RETORNO");
                    try
                    {
                        for (int i = 0; i < ls_RETORNO.Count(); i++)
                        {
                            //ls_RETORNO.CurrentIndex = i;
                            retorno = new RETORNO();
                            if (ls_RETORNO.GetString("TYPE") == "S")
                            {
                                message = message + " - " + ls_RETORNO.GetString("MESSAGE");
                            }
                            if (ls_RETORNO.GetString("TYPE") == "E")
                            {
                                errormessage = errormessage + " - " + ls_RETORNO.GetString("MESSAGE");
                            }
                            retorno.TYPE       = ls_RETORNO.GetString("TYPE");
                            retorno.ID         = ls_RETORNO.GetString("ID");
                            retorno.NUMBER     = ls_RETORNO.GetString("NUMBER");
                            retorno.MESSAGE    = ls_RETORNO.GetString("MESSAGE");
                            retorno.LOG_NO     = ls_RETORNO.GetString("LOG_NO");
                            retorno.LOG_MSG_NO = ls_RETORNO.GetString("LOG_MSG_NO");
                            retorno.MESSAGE_V1 = ls_RETORNO.GetString("MESSAGE_V1");
                            retorno.MESSAGE_V2 = ls_RETORNO.GetString("MESSAGE_V2");
                            retorno.MESSAGE_V3 = ls_RETORNO.GetString("MESSAGE_V3");
                            if (ls_RETORNO.GetString("MESSAGE_V4") != "")
                            {
                                // comprobante = ls_RETORNO.GetString("MESSAGE_V4");
                            }
                            retorno.MESSAGE_V4 = ls_RETORNO.GetString("MESSAGE_V4");
                            retorno.PARAMETER  = ls_RETORNO.GetString("PARAMETER");
                            retorno.ROW        = ls_RETORNO.GetString("ROW");
                            retorno.FIELD      = ls_RETORNO.GetString("FIELD");
                            retorno.SYSTEM     = ls_RETORNO.GetString("SYSTEM");
                            T_Retorno.Add(retorno);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                }
                else
                {
                    errormessage = retval;
                    MessageBox.Show("No se pudo conectar a la RFC");
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, ex.StackTrace);
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
示例#2
0
        public void depositoproceso(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE
                                    , string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_USUARIO, string P_PAIS, string P_ID_APERTURA
                                    , string P_ID_CIERRE, string P_ID_ARQUEO, string P_FECHADEPOS, string P_NUMDEPOS, List <VIAS_PAGOGD> P_VIASPAGO, string P_DATOSBANCO, string P_HKONT)
        {
            try
            {
                CajaIndu.AppPersistencia.Class.DepositoProceso.Estructura.RETORNO retorno;
                VIAS_PAGOGD vpgestion;

                //DETALLE_REND detallerend;
                vpgestiondepositos.Clear();
                Retorno.Clear();
                errormessage = "";
                message      = "";
                IdCaja       = "";
                Efectivo     = "0";

                IRfcTable lt_RETORNO;
                IRfcTable lt_VPGESTIONBANCOS;


                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();

                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_PROC_DEPOSITOS");

                    BapiGetUser.SetValue("LAND", P_PAIS);
                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                    BapiGetUser.SetValue("USUARIO", P_USUARIO);
                    BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA);
                    BapiGetUser.SetValue("ID_CIERRE", P_ID_CIERRE);
                    BapiGetUser.SetValue("ID_ARQUEO", P_ID_ARQUEO);

                    IRfcTable GralDat2 = BapiGetUser.GetTable("VIAS_PAGO_IN");
                    try
                    {
                        for (var i = 0; i < P_VIASPAGO.Count; i++)
                        {
                            GralDat2.Append();
                            GralDat2.SetValue("SELECCION", "X");
                            GralDat2.SetValue("ID_CAJA", P_VIASPAGO[i].ID_CAJA);
                            GralDat2.SetValue("ID_CIERRE", P_ID_CIERRE);
                            GralDat2.SetValue("TEXT_VIA_PAGO", P_VIASPAGO[i].TEXT_VIA_PAGO);
                            GralDat2.SetValue("FECHA_EMISION", P_VIASPAGO[i].FECHA_EMISION);
                            GralDat2.SetValue("NUM_DOC", P_VIASPAGO[i].NUM_DOC);
                            GralDat2.SetValue("TEXT_BANCO", P_VIASPAGO[i].TEXT_BANCO);
                            GralDat2.SetValue("MONTO_DOC", P_VIASPAGO[i].MONTO_DOC);
                            GralDat2.SetValue("ZUONR", P_VIASPAGO[i].ZUONR);
                            GralDat2.SetValue("FECHA_VENC", P_VIASPAGO[i].FECHA_VENC);
                            GralDat2.SetValue("MONEDA", P_VIASPAGO[i].MONEDA);
                            GralDat2.SetValue("ID_BANCO", P_VIASPAGO[i].ID_BANCO);
                            GralDat2.SetValue("VIA_PAGO", P_VIASPAGO[i].VIA_PAGO);
                            GralDat2.SetValue("NUM_DEPOSITO", P_NUMDEPOS);
                            GralDat2.SetValue("USUARIO", P_VIASPAGO[i].USUARIO);
                            GralDat2.SetValue("ID_DEPOSITO", P_VIASPAGO[i].ID_DEPOSITO);
                            GralDat2.SetValue("FEC_DEPOSITO", Convert.ToDateTime(P_FECHADEPOS));
                            //gdepot.BancoDest[i].BANKN + "-" + gdepot.BancoDest[i].BANKL + "-" + gdepot.BancoDest[i].BANKA
                            int Posicion      = 0;
                            int PosicionFinal = 0;
                            Posicion = P_DATOSBANCO.IndexOf("-");
                            string CodCuenta = P_DATOSBANCO.Substring(0, Posicion);
                            PosicionFinal = P_DATOSBANCO.LastIndexOf("-");
                            string CodBanco = P_DATOSBANCO.Substring(Posicion + 1, (PosicionFinal) - (Posicion + 1));
                            //GralDat2.SetValue("BANCO", P_VIASPAGO[i].BANCO);
                            GralDat2.SetValue("BANCO", CodBanco);

                            GralDat2.SetValue("CTA_BANCO", CodCuenta);
                            GralDat2.SetValue("BELNR_DEP", P_VIASPAGO[i].BELNR_DEP);
                            GralDat2.SetValue("BELNR", P_VIASPAGO[i].BELNR);
                            GralDat2.SetValue("SOCIEDAD", P_VIASPAGO[i].SOCIEDAD);
                            GralDat2.SetValue("HKONT", P_HKONT);
                            GralDat2.SetValue("ID_COMPROBANTE", P_VIASPAGO[i].ID_COMPROBANTE);
                            GralDat2.SetValue("ID_DETALLE", P_VIASPAGO[i].ID_DETALLE);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message + ex.StackTrace);
                        //System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                    BapiGetUser.SetValue("VIAS_PAGO_IN", GralDat2);

                    BapiGetUser.Invoke(SapRfcDestination);

                    Deposito = BapiGetUser.GetString("ID_DEPOSITO");
                    //BapiGetUser.SetValue("I_VBELN",P_NUMDOCSD);
                    //IRfcTable GralDat = BapiGetUser.GetTable("VIAS_PAGO");
                    lt_VPGESTIONBANCOS = BapiGetUser.GetTable("VIAS_PAGO_IN");

                    if (lt_VPGESTIONBANCOS.Count > 0)
                    {
                        //LLenamos la tabla de salida lt_DatGen
                        for (int i = 0; i < lt_VPGESTIONBANCOS.RowCount; i++)
                        {
                            try
                            {
                                lt_VPGESTIONBANCOS.CurrentIndex = i;
                                vpgestion = new VIAS_PAGOGD();

                                vpgestion.SELECCION      = lt_VPGESTIONBANCOS[i].GetString("SELECCION");
                                vpgestion.ID_CAJA        = lt_VPGESTIONBANCOS[i].GetString("ID_CAJA");
                                vpgestion.ID_APERTURA    = lt_VPGESTIONBANCOS[i].GetString("ID_APERTURA");
                                vpgestion.ID_CIERRE      = lt_VPGESTIONBANCOS[i].GetString("ID_CIERRE");
                                vpgestion.TEXT_VIA_PAGO  = lt_VPGESTIONBANCOS[i].GetString("TEXT_VIA_PAGO");
                                vpgestion.FECHA_EMISION  = lt_VPGESTIONBANCOS[i].GetString("FECHA_EMISION");
                                vpgestion.NUM_DOC        = lt_VPGESTIONBANCOS[i].GetString("NUM_DOC");
                                vpgestion.TEXT_BANCO     = lt_VPGESTIONBANCOS[i].GetString("TEXT_BANCO");
                                vpgestion.MONTO_DOC      = lt_VPGESTIONBANCOS[i].GetString("MONTO_DOC");
                                vpgestion.ZUONR          = lt_VPGESTIONBANCOS[i].GetString("ZUONR");
                                vpgestion.FECHA_VENC     = lt_VPGESTIONBANCOS[i].GetString("FECHA_VENC");
                                vpgestion.MONEDA         = lt_VPGESTIONBANCOS[i].GetString("MONEDA");
                                vpgestion.ID_BANCO       = lt_VPGESTIONBANCOS[i].GetString("ID_BANCO");
                                vpgestion.VIA_PAGO       = lt_VPGESTIONBANCOS[i].GetString("VIA_PAGO");
                                vpgestion.SOCIEDAD       = lt_VPGESTIONBANCOS[i].GetString("SOCIEDAD");
                                vpgestion.NUM_DEPOSITO   = lt_VPGESTIONBANCOS[i].GetString("NUM_DEPOSITO");
                                vpgestion.USUARIO        = lt_VPGESTIONBANCOS[i].GetString("USUARIO");
                                vpgestion.ID_DEPOSITO    = lt_VPGESTIONBANCOS[i].GetString("ID_DEPOSITO");
                                vpgestion.FEC_DEPOSITO   = lt_VPGESTIONBANCOS[i].GetString("FEC_DEPOSITO");
                                vpgestion.BANCO          = lt_VPGESTIONBANCOS[i].GetString("BANCO");
                                vpgestion.CTA_BANCO      = lt_VPGESTIONBANCOS[i].GetString("CTA_BANCO");
                                vpgestion.BELNR_DEP      = lt_VPGESTIONBANCOS[i].GetString("BELNR_DEP");
                                vpgestion.BELNR          = lt_VPGESTIONBANCOS[i].GetString("BELNR");
                                vpgestion.SOCIEDAD       = lt_VPGESTIONBANCOS[i].GetString("SOCIEDAD");
                                vpgestion.ID_COMPROBANTE = lt_VPGESTIONBANCOS[i].GetString("ID_COMPROBANTE");
                                vpgestion.ID_DETALLE     = lt_VPGESTIONBANCOS[i].GetString("ID_DETALLE");
                                vpgestiondepositos.Add(vpgestion);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message + ex.StackTrace);
                                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                            }
                        }
                    }
                    else
                    {
                        System.Windows.Forms.MessageBox.Show("No existe(n) registro(s)");
                    }

                    lt_RETORNO = BapiGetUser.GetTable("RETORNO");
                    try
                    {
                        for (int i = 0; i < lt_RETORNO.Count(); i++)
                        {
                            lt_RETORNO.CurrentIndex = i;
                            retorno = new CajaIndu.AppPersistencia.Class.DepositoProceso.Estructura.RETORNO();
                            if (lt_RETORNO.GetString("TYPE") == "S")
                            {
                                message    = message + " - " + lt_RETORNO.GetString("MESSAGE") + "-" + lt_RETORNO.GetString("MESSAGE_V1").Trim();
                                NumComprob = lt_RETORNO.GetString("MESSAGE_V4").Trim();;
                            }
                            if (lt_RETORNO.GetString("TYPE") == "E")
                            {
                                errormessage = errormessage + " - " + lt_RETORNO.GetString("MESSAGE");
                            }
                            retorno.TYPE = lt_RETORNO.GetString("TYPE");
                            retorno.CODE = lt_RETORNO.GetString("CODE");
                            // retorno.NUMBER = lt_RETORNO.GetString("NUMBER");
                            retorno.MESSAGE    = lt_RETORNO.GetString("MESSAGE");
                            retorno.LOG_NO     = lt_RETORNO.GetString("LOG_NO");
                            retorno.LOG_MSG_NO = lt_RETORNO.GetString("LOG_MSG_NO");
                            retorno.MESSAGE_V1 = lt_RETORNO.GetString("MESSAGE_V1");
                            retorno.MESSAGE_V2 = lt_RETORNO.GetString("MESSAGE_V2");
                            retorno.MESSAGE_V3 = lt_RETORNO.GetString("MESSAGE_V3");
                            if (lt_RETORNO.GetString("MESSAGE_V1") != "")
                            {
                                comprobante = comprobante + "-" + lt_RETORNO.GetString("MESSAGE_V1");
                            }
                            retorno.MESSAGE_V4 = lt_RETORNO.GetString("MESSAGE_V4");
                            //  retorno.PARAMETER = lt_RETORNO.GetString("PARAMETER");
                            //  retorno.ROW = lt_RETORNO.GetString("ROW");
                            //  retorno.FIELD = lt_RETORNO.GetString("FIELD");
                            // retorno.SYSTEM = lt_RETORNO.GetString("SYSTEM");
                            Retorno.Add(retorno);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                }
                else
                {
                    errormessage = retval;
                    MessageBox.Show("No se pudo conectar a la RFC");
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, ex.StackTrace);
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
 public static void StfcConnection(RfcServerContext context, IRfcFunction function)
 {
     Console.WriteLine("Received function call{0} from system{1}.",
         function.Metadata.Name,
         context.SystemAttributes.SystemID);
     String reqtext = function.GetString("REQUTEXT");
     Console.WriteLine("REQUTEXT = {0}\n", reqtext);
     function.SetValue("ECHOTEXT", reqtext);
     function.SetValue("RESPTEXT", "Hello from NCo 3.0!");
 }
示例#4
0
        public void anticiposopen(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA
                                  , string P_DOCUMENTO, string P_RUT, string P_SOCIEDAD, string P_LAND, string TipoBusqueda)

        {
            ObjDatosAnticipos.Clear();
            Retorno.Clear();
            protesto     = "";
            errormessage = "";
            IRfcTable     lt_t_documentos;
            IRfcStructure lt_retorno;

            //  PART_ABIERTAS  PART_ABIERTAS_resp;
            T_DOCUMENTOS ANTICIPOS_resp;
            ESTADO       retorno_resp;

            //Conexion a SAP
            //connectorSap.idioma = "ES";
            //connectorSap.idSistema = "INS";
            //connectorSap.instancia = "00";
            //connectorSap.mandante = "400";
            //connectorSap.paswr = P_PASSWORD;
            //connectorSap.sapRouter = "/H/64.76.139.78/H/";
            //connectorSap.user = P_UNAME;
            //connectorSap.server = "10.9.100.4";
            //frm.txtIdSistema.Text = txtIdSistema.Text;
            //frm.txtInstancia.Text = txtInstancia.Text;
            //frm.txtMandante.Text = txtMandante.Text;
            //frm.txtSapRouter.Text = txtSapRouter.Text;
            //frm.txtServer.Text = txtServer.Text;
            //frm.txtIdioma.Text = txtIdioma.Text;
            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_GET_ANT");
                BapiGetUser.SetValue("DOCUMENTO", P_DOCUMENTO);
                BapiGetUser.SetValue("LAND", P_LAND);
                BapiGetUser.SetValue("RUT", P_RUT);
                BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD);
                //BapiGetUser.SetValue("PROT", P_PROTESTO);
                BapiGetUser.Invoke(SapRfcDestination);
                protesto = BapiGetUser.GetString("PE_PROTESTADO");

                lt_t_documentos = BapiGetUser.GetTable("T_DOCUMENTOS");
                lt_retorno      = BapiGetUser.GetStructure("SE_ESTATUS");
                //lt_PART_ABIERTAS = BapiGetUser.GetTable("ZCLSP_TT_LISTA_DOCUMENTOS");
                try
                {
                    if (lt_t_documentos.Count > 0)
                    {
                        //LLenamos la tabla de salida lt_DatGen
                        for (int i = 0; i < lt_t_documentos.RowCount; i++)
                        {
                            try
                            {
                                lt_t_documentos.CurrentIndex = i;
                                ANTICIPOS_resp = new T_DOCUMENTOS();

                                ANTICIPOS_resp.NDOCTO = lt_t_documentos[i].GetString("NDOCTO");
                                string Monto  = "";
                                int    indice = 0;
                                //*******
                                if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_t_documentos[i].GetString("MONTOF").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor);
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    ANTICIPOS_resp.MONTOF = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTOF"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    ANTICIPOS_resp.MONTOF = string.Format("{0:0,0.##}", ValorAux);
                                }

                                //if (lt_t_documentos[i].GetString("MONTOF") == "")
                                //{
                                //    indice = lt_t_documentos[i].GetString("MONTO").IndexOf(',');
                                //    Monto = lt_t_documentos[i].GetString("MONTO").Substring(0, indice - 1);
                                //    ANTICIPOS_resp.MONTOF = Monto;
                                //}
                                //else
                                //{
                                //    ANTICIPOS_resp.MONTOF = lt_t_documentos[i].GetString("MONTOF");
                                //}
                                if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_t_documentos[i].GetString("MONTO").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor);
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    ANTICIPOS_resp.MONTO = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTO"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    ANTICIPOS_resp.MONTO = string.Format("{0:0,0.##}", ValorAux);
                                }

                                //if (lt_t_documentos[i].GetString("MONTO") == "")
                                //{
                                //    indice = lt_t_documentos[i].GetString("MONTO").IndexOf(',');
                                //    Monto = lt_t_documentos[i].GetString("MONTO").Substring(0, indice - 1);
                                //    ANTICIPOS_resp.MONTO = Monto;
                                //}
                                //else
                                //{
                                //    ANTICIPOS_resp.MONTO = lt_t_documentos[i].GetString("MONTO");
                                //}
                                ANTICIPOS_resp.MONEDA          = lt_t_documentos[i].GetString("MONEDA");
                                ANTICIPOS_resp.FECVENCI        = lt_t_documentos[i].GetString("FECVENCI");
                                ANTICIPOS_resp.CONTROL_CREDITO = lt_t_documentos[i].GetString("CONTROL_CREDITO");
                                ANTICIPOS_resp.CEBE            = lt_t_documentos[i].GetString("CEBE");
                                ANTICIPOS_resp.COND_PAGO       = lt_t_documentos[i].GetString("COND_PAGO");
                                ANTICIPOS_resp.RUTCLI          = lt_t_documentos[i].GetString("RUTCLI");
                                ANTICIPOS_resp.NOMCLI          = lt_t_documentos[i].GetString("NOMCLI");
                                ANTICIPOS_resp.ESTADO          = lt_t_documentos[i].GetString("ESTADO");
                                ANTICIPOS_resp.ICONO           = lt_t_documentos[i].GetString("ICONO");
                                ANTICIPOS_resp.DIAS_ATRASO     = lt_t_documentos[i].GetString("DIAS_ATRASO");
                                //if (lt_t_documentos[i].GetString("MONTOF_ABON") == "")
                                //{
                                //    indice = lt_t_documentos[i].GetString("MONTO_ABONADO").IndexOf(',');
                                //    Monto = lt_t_documentos[i].GetString("MONTO_ABONADO").Substring(0, indice - 1);
                                //    ANTICIPOS_resp.MONTOF = Monto;
                                //}
                                //else
                                //{
                                //    ANTICIPOS_resp.MONTOF_ABON = lt_t_documentos[i].GetString("MONTOF_ABON");
                                //}
                                if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_t_documentos[i].GetString("MONTOF_ABON").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor);
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    ANTICIPOS_resp.MONTOF_ABON = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTOF_ABON"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    ANTICIPOS_resp.MONTOF_ABON = string.Format("{0:0,0.##}", ValorAux);
                                }

                                //if (lt_t_documentos[i].GetString("MONTOF_PAGAR") == "")
                                //{
                                //    indice = lt_t_documentos[i].GetString("MONTO_PAGAR").IndexOf(',');
                                //    Monto = lt_t_documentos[i].GetString("MONTO_PAGAR").Substring(0, indice - 1);
                                //    ANTICIPOS_resp.MONTOF = Monto;
                                //}
                                //else
                                //{
                                //    ANTICIPOS_resp.MONTOF_PAGAR = lt_t_documentos[i].GetString("MONTOF_PAGAR");
                                //}
                                if (lt_t_documentos[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_t_documentos[i].GetString("MONTOF_PAGAR").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor);
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    ANTICIPOS_resp.MONTOF_PAGAR = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_t_documentos[i].GetString("MONTOF_PAGAR"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    ANTICIPOS_resp.MONTOF_PAGAR = string.Format("{0:0,0.##}", ValorAux);
                                }
                                ANTICIPOS_resp.NREF         = lt_t_documentos[i].GetString("NREF");
                                ANTICIPOS_resp.FECHA_DOC    = lt_t_documentos[i].GetString("FECHA_DOC");
                                ANTICIPOS_resp.COD_CLIENTE  = lt_t_documentos[i].GetString("COD_CLIENTE");
                                ANTICIPOS_resp.SOCIEDAD     = lt_t_documentos[i].GetString("SOCIEDAD");
                                ANTICIPOS_resp.CLASE_DOC    = lt_t_documentos[i].GetString("CLASE_DOC");
                                ANTICIPOS_resp.CLASE_CUENTA = lt_t_documentos[i].GetString("CLASE_CUENTA");
                                ANTICIPOS_resp.CME          = lt_t_documentos[i].GetString("CME");
                                ANTICIPOS_resp.ACC          = lt_t_documentos[i].GetString("ACC");
                                ObjDatosAnticipos.Add(ANTICIPOS_resp);
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message + ex.StackTrace);
                                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("No existe(n) registro(s)");
                    }

                    String Mensaje = "";
                    if (lt_retorno.Count > 0)
                    {
                        retorno_resp = new ESTADO();
                        for (int i = 0; i < lt_retorno.Count(); i++)
                        {
                            // lt_retorno.CurrentIndex = i;

                            retorno_resp.TYPE       = lt_retorno.GetString("TYPE");
                            retorno_resp.ID         = lt_retorno.GetString("ID");
                            retorno_resp.NUMBER     = lt_retorno.GetString("NUMBER");
                            retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                            retorno_resp.LOG_NO     = lt_retorno.GetString("LOG_NO");
                            retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO");
                            retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                            retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1");
                            if (lt_retorno.GetString("TYPE") == "S")
                            {
                                Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1");
                            }
                            retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2");
                            retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3");
                            retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4");
                            retorno_resp.PARAMETER  = lt_retorno.GetString("PARAMETER");
                            retorno_resp.ROW        = lt_retorno.GetString("ROW");
                            retorno_resp.FIELD      = lt_retorno.GetString("FIELD");
                            retorno_resp.SYSTEM     = lt_retorno.GetString("SYSTEM");
                            Retorno.Add(retorno_resp);
                        }
                        //System.Windows.MessageBox.Show(Mensaje);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message + ex.StackTrace);
                    System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                }
            }
            else
            {
                errormessage = retval;
            }
            GC.Collect();
        }
示例#5
0
            public static void GenericHandler(RfcServerContext serverContext, IRfcFunction rfcFunction)
            {
                MethodBase method = MethodInfo.GetCurrentMethod();

                Console.WriteLine();
                Console.WriteLine("Method {2}.{0} processing RFC call {1}", method.Name, rfcFunction.Metadata.Name, method.DeclaringType.ToString());
                Console.WriteLine("System Attributes:");
                Console.WriteLine(AttributesToString(serverContext.SystemAttributes));

                for (int i = 0; i < rfcFunction.Metadata.ParameterCount; ++i)
                {
                    if (0 != (rfcFunction.Metadata[i].Direction & RfcDirection.IMPORT))                      //  || rfcFunction.Metadata[i].Direction == RfcDirection.CHANGING) {
                    {
                        switch (rfcFunction.Metadata[i].DataType)
                        {
                        case RfcDataType.STRUCTURE:
                            Console.WriteLine("Received structure of name {0} and type {1}", rfcFunction.Metadata[i].Name, rfcFunction.Metadata[i].ValueMetadataAsStructureMetadata.Name);
                            // We could additionally loop through the fields of structures and tables here, but this shall suffice for our simple example.
                            break;

                        case RfcDataType.TABLE:
                            Console.WriteLine("Received table of name {0} and type {1}", rfcFunction.Metadata[i].Name, rfcFunction.Metadata[i].ValueMetadataAsTableMetadata.Name);
                            break;

                        default:
                            Console.WriteLine("{0} = {1}", rfcFunction.Metadata[i].Name, rfcFunction.GetString(i));
                            break;
                        }
                    }
                }
            }
 public static void ZRFCFUNCTION01(RfcServerContext context, IRfcFunction function)
 {
     //Console.WriteLine("Received function call{0} from system{1}.",
     //    function.Metadata.Name,
     //    context.SystemAttributes.SystemID);
     String reqtext = function.GetString("ZNAME");
     Console.WriteLine("ZNAME = {0}\n", reqtext);
 }
示例#7
0
        public void usuarioscaja(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER
                                 , string P_SERVER, string P_IDIOMA, string P_TEMPORAL, string P_MONTO, List <USR_CAJA> P_USUARIOS, string P_EQUIPO)
        {
            ObjDatosUser.Clear();
            LogApert.Clear();
            Retorno.Clear();
            errormessage = "";
            Mensaje      = "";
            Sociedad     = "";
            status       = "";
            cajeroresp   = "";

            IRfcStructure lt_USER;
            IRfcStructure lt_retorno;
            IRfcStructure ls_logapert;

            USR_CAJA     USER_resp;
            ESTADO       retorno_resp;
            LOG_APERTURA log_apert_resp;

            //Conexion a SAP
            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_ACCESO_CAJA");


                IRfcStructure GralDat = BapiGetUser.GetStructure("USR_CAJA");

                for (var i = 0; i < P_USUARIOS.Count; i++)
                {
                    //GralDat.Append();
                    GralDat.SetValue("LAND", P_USUARIOS[i].LAND);
                    GralDat.SetValue("ID_CAJA", P_USUARIOS[i].ID_CAJA);
                    GralDat.SetValue("USUARIO", P_USUARIOS[i].USUARIO);
                    GralDat.SetValue("SOCIEDAD", P_USUARIOS[i].SOCIEDAD);
                    GralDat.SetValue("NOM_CAJA", P_USUARIOS[i].NOM_CAJA);
                    GralDat.SetValue("TIPO_USUARIO", P_USUARIOS[i].TIPO_USUARIO);
                    GralDat.SetValue("USUARIO", P_USUARIOS[i].USUARIO);
                    GralDat.SetValue("WAERS", P_USUARIOS[i].WAERS);
                }
                BapiGetUser.SetValue("USR_CAJA", GralDat);
                BapiGetUser.SetValue("TEMPORAL", P_TEMPORAL);
                BapiGetUser.SetValue("MONTO", P_MONTO);
                BapiGetUser.SetValue("EQUIPO", P_EQUIPO);
                // IRfcStructure GralDat = BapiGetUser.GetStructure("CONDICIONES");


                // BapiGetUser.SetValue("T_GET_DOC", GralDat);


                BapiGetUser.Invoke(SapRfcDestination);
                cajeroresp  = BapiGetUser.GetString("CAJERO_RESPONSABLE");
                lt_retorno  = BapiGetUser.GetStructure("ESTATUS");
                ls_logapert = BapiGetUser.GetStructure("LOG_APERTURA");

                lt_USER = BapiGetUser.GetStructure("USR_CAJA");


                if (lt_retorno.Count > 0)
                {
                    retorno_resp = new ESTADO();
                    for (int i = 0; i < lt_retorno.Count(); i++)
                    {
                        if (i == 0)
                        {
                            status = lt_retorno.GetString("TYPE");
                        }
                        retorno_resp.TYPE       = lt_retorno.GetString("TYPE");
                        retorno_resp.ID         = lt_retorno.GetString("ID");
                        retorno_resp.NUMBER     = lt_retorno.GetString("NUMBER");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.LOG_NO     = lt_retorno.GetString("LOG_NO");
                        retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1");
                        if (i == 0)
                        {
                            Mensaje     = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " " + lt_retorno.GetString("MESSAGE_V1");
                            id_apertura = lt_retorno.GetString("MESSAGE_V1");
                        }

                        retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2");
                        retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3");
                        retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4");
                        retorno_resp.PARAMETER  = lt_retorno.GetString("PARAMETER");
                        retorno_resp.ROW        = lt_retorno.GetString("ROW");
                        retorno_resp.FIELD      = lt_retorno.GetString("FIELD");
                        retorno_resp.SYSTEM     = lt_retorno.GetString("SYSTEM");
                        Retorno.Add(retorno_resp);
                    }
                    System.Windows.MessageBox.Show(Mensaje);
                }

                //lt_PART_ABIERTAS = BapiGetUser.GetTable("ZCLSP_TT_LISTA_DOCUMENTOS");
                if (lt_USER.Count > 0)
                {
                    //LLenamos la tabla de salida lt_DatGen
                    for (int i = 0; i < lt_USER.Count(); i++)
                    {
                        USER_resp              = new USR_CAJA();
                        USER_resp.LAND         = lt_USER.GetString("LAND");
                        Sociedad               = lt_USER.GetString("SOCIEDAD");
                        USER_resp.SOCIEDAD     = lt_USER.GetString("SOCIEDAD");
                        USER_resp.USUARIO      = lt_USER.GetString("USUARIO");
                        USER_resp.ID_CAJA      = lt_USER.GetString("ID_CAJA");
                        USER_resp.NOM_CAJA     = lt_USER.GetString("NOM_CAJA");
                        USER_resp.TIPO_USUARIO = lt_USER.GetString("TIPO_USUARIO");
                        USER_resp.WAERS        = lt_USER.GetString("WAERS");
                        ObjDatosUser.Add(USER_resp);
                        //ViasPagoTransaccion.Add(VIAS_PAGOS_resp.);
                    }
                }
                if (ls_logapert.Count > 0)
                {
                    //LLenamos la tabla de salida lt_DatGen
                    for (int i = 0; i < ls_logapert.Count(); i++)
                    {
                        log_apert_resp             = new LOG_APERTURA();
                        log_apert_resp.MANDT       = ls_logapert.GetString("MANDT");
                        log_apert_resp.ID_REGISTRO = ls_logapert.GetString("ID_REGISTRO");
                        log_apert_resp.LAND        = ls_logapert.GetString("LAND");
                        log_apert_resp.ID_CAJA     = ls_logapert.GetString("ID_CAJA");
                        log_apert_resp.USUARIO     = ls_logapert.GetString("USUARIO");
                        if (ls_logapert.GetString("FECHA") != "0000-00-00")
                        {
                            log_apert_resp.FECHA = Convert.ToDateTime(ls_logapert.GetString("FECHA"));
                        }
                        if (ls_logapert.GetString("HORA") != "00:00:00")
                        {
                            log_apert_resp.HORA = Convert.ToDateTime(ls_logapert.GetString("HORA"));
                        }
                        log_apert_resp.MONTO         = ls_logapert.GetString("MONTO");
                        log_apert_resp.MONEDA        = ls_logapert.GetString("MONEDA");
                        log_apert_resp.TIPO_REGISTRO = ls_logapert.GetString("TIPO_REGISTRO");
                        log_apert_resp.ID_APERTURA   = id_apertura;
                        log_apert_resp.TXT_CIERRE    = ls_logapert.GetString("TXT_CIERRE");
                        log_apert_resp.BLOQUEO       = ls_logapert.GetString("BLOQUEO");
                        log_apert_resp.USUARIO_BLOQ  = ls_logapert.GetString("USUARIO_BLOQ");
                        if (i == 0)
                        {
                            LogApert.Add(log_apert_resp);
                        }
                    }
                }
                GC.Collect();
            }
            else
            {
                errormessage = retval;
            }
        }
示例#8
0
        public void checkdocsanulacion(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE
                                       , string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_USUARIO, string P_ID_CAJA, string P_LAND, string P_RUT
                                       , string P_ID_COMPROBANTE, string P_SOCIEDAD, string P_TP_DOC, List <CAB_COMP> P_CAB_COM)
        {
            CabeceraDocs.Clear();
            Retorno.Clear();
            IRfcTable lt_h_documentos;
            //IRfcTable lt_d_documentos;
            IRfcStructure lt_retorno;

            //  PART_ABIERTAS  PART_ABIERTAS_resp;
            CAB_COMP DOCS_CABECERA_resp;
            //DET_COMP DOCS_DETALLES_resp;
            RETORNO retorno_resp;

            //Conexion a SAP
            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_CHECK_JEFE_CAJA");
                //BapiGetUser.SetValue("ID_COMPROBANTE", P_ID_COMPROBANTE);
                //BapiGetUser.SetValue("RUT", P_RUT);
                //BapiGetUser.SetValue("LAND", P_LAND);
                //BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD);
                BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                BapiGetUser.SetValue("USUARIO", P_USUARIO);
                //BapiGetUser.SetValue("TP_DOC", P_TP_DOC);

                IRfcTable GralDat = BapiGetUser.GetTable("CAB_COMP");

                try
                {
                    for (var i = 0; i < P_CAB_COM.Count; i++)
                    {
                        GralDat.Append();
                        GralDat.SetValue("LAND", P_CAB_COM[i].LAND);
                        GralDat.SetValue("ID_CAJA", P_CAB_COM[i].ID_CAJA);
                        GralDat.SetValue("ID_COMPROBANTE", P_CAB_COM[i].ID_COMPROBANTE);
                        GralDat.SetValue("TIPO_DOCUMENTO", P_CAB_COM[i].TIPO_DOCUMENTO);
                        GralDat.SetValue("DESCRIPCION", P_CAB_COM[i].DESCRIPCION);
                        GralDat.SetValue("NRO_REFERENCIA", P_CAB_COM[i].NRO_REFERENCIA);
                        GralDat.SetValue("FECHA_COMP", P_CAB_COM[i].FECHA_COMP);
                        GralDat.SetValue("FECHA_VENC_DOC", P_CAB_COM[i].FECHA_VENC_DOC);
                        GralDat.SetValue("MONTO_DOC", P_CAB_COM[i].MONTO_DOC);
                        GralDat.SetValue("TEXTO_EXCEPCION", P_CAB_COM[i].TEXTO_EXCEPCION);
                        GralDat.SetValue("CLIENTE", Convert.ToDateTime(P_CAB_COM[i].CLIENTE));
                        GralDat.SetValue("MONEDA", P_CAB_COM[i].MONEDA);
                        GralDat.SetValue("CLASE_DOC", P_CAB_COM[i].CLASE_DOC);
                        GralDat.SetValue("TXT_CLASE_DOC", P_CAB_COM[i].TXT_CLASE_DOC);
                        GralDat.SetValue("NUM_CANCELACION", P_CAB_COM[i].NUM_CANCELACION);
                        GralDat.SetValue("AUT_JEF", P_CAB_COM[i].AUT_JEF);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message + ex.StackTrace);
                    //System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                }
                BapiGetUser.SetValue("CAB_COMP", GralDat);

                BapiGetUser.Invoke(SapRfcDestination);

                valido = BapiGetUser.GetString("VALIDO");
                // estado = BapiGetUser.GetString("ESTADO");

                lt_h_documentos = BapiGetUser.GetTable("CAB_COMP");
                lt_retorno      = BapiGetUser.GetStructure("ESTADO");

                if (lt_h_documentos.Count > 0)
                {
                    //LLenamos la tabla de salida lt_DatGen
                    for (int i = 0; i < lt_h_documentos.RowCount; i++)
                    {
                        try
                        {
                            lt_h_documentos.CurrentIndex       = i;
                            DOCS_CABECERA_resp                 = new CAB_COMP();
                            DOCS_CABECERA_resp.LAND            = lt_h_documentos[i].GetString("LAND");
                            DOCS_CABECERA_resp.ID_CAJA         = lt_h_documentos[i].GetString("ID_CAJA");
                            DOCS_CABECERA_resp.ID_COMPROBANTE  = lt_h_documentos[i].GetString("ID_COMPROBANTE");
                            DOCS_CABECERA_resp.TIPO_DOCUMENTO  = lt_h_documentos[i].GetString("TIPO_DOCUMENTO");
                            DOCS_CABECERA_resp.DESCRIPCION     = lt_h_documentos[i].GetString("DESCRIPCION");
                            DOCS_CABECERA_resp.NRO_REFERENCIA  = lt_h_documentos[i].GetString("NRO_REFERENCIA");
                            DOCS_CABECERA_resp.FECHA_COMP      = lt_h_documentos[i].GetString("FECHA_COMP");
                            DOCS_CABECERA_resp.FECHA_VENC_DOC  = lt_h_documentos[i].GetString("FECHA_VENC_DOC");
                            DOCS_CABECERA_resp.MONTO_DOC       = lt_h_documentos[i].GetString("MONTO_DOC");
                            DOCS_CABECERA_resp.TEXTO_EXCEPCION = lt_h_documentos[i].GetString("TEXTO_EXCEPCION");
                            DOCS_CABECERA_resp.CLIENTE         = lt_h_documentos[i].GetString("CLIENTE");
                            DOCS_CABECERA_resp.MONEDA          = lt_h_documentos[i].GetString("MONEDA");
                            DOCS_CABECERA_resp.CLASE_DOC       = lt_h_documentos[i].GetString("CLASE_DOC");
                            DOCS_CABECERA_resp.TXT_CLASE_DOC   = lt_h_documentos[i].GetString("TXT_CLASE_DOC");
                            DOCS_CABECERA_resp.NUM_CANCELACION = lt_h_documentos[i].GetString("NUM_CANCELACION");
                            DOCS_CABECERA_resp.AUT_JEF         = lt_h_documentos[i].GetString("AUT_JEF");
                            CabeceraDocs.Add(DOCS_CABECERA_resp);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message + ex.StackTrace);
                            System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                        }
                    }
                }
                else
                {
                    System.Windows.MessageBox.Show("No existe(n) registro(s)");
                }

                //if (lt_d_documentos.Count > 0)
                //{
                //    //LLenamos la tabla de salida lt_DatGen
                //    for (int i = 0; i < lt_d_documentos.RowCount; i++)
                //    {
                //        try
                //        {
                //            lt_d_documentos.CurrentIndex = i;
                //            DOCS_DETALLES_resp = new DET_COMP();

                //            DOCS_DETALLES_resp.ID_COMPROBANTE = lt_d_documentos[i].GetString("ID_COMPROBANTE");
                //            DOCS_DETALLES_resp.ID_DETALLE = lt_d_documentos[i].GetString("ID_DETALLE");
                //            DOCS_DETALLES_resp.VIA_PAGO = lt_d_documentos[i].GetString("VIA_PAGO");
                //            DOCS_DETALLES_resp.DESCRIP_VP = lt_d_documentos[i].GetString("DESCRIP_VP");
                //            DOCS_DETALLES_resp.NUM_CHEQUE = lt_d_documentos[i].GetString("NUM_CHEQUE");
                //            DOCS_DETALLES_resp.FECHA_VENC = lt_d_documentos[i].GetString("FECHA_VENC");
                //            DOCS_DETALLES_resp.MONTO = lt_d_documentos[i].GetString("MONTO");
                //            DOCS_DETALLES_resp.MONEDA = lt_d_documentos[i].GetString("MONEDA");
                //            DOCS_DETALLES_resp.NUM_CUOTAS = lt_d_documentos[i].GetString("NUM_CUOTAS");
                //            DOCS_DETALLES_resp.EMISOR = lt_d_documentos[i].GetString("EMISOR");
                //            DetalleDocs.Add(DOCS_DETALLES_resp);
                //        }
                //        catch (Exception ex)
                //        {
                //            Console.WriteLine(ex.Message + ex.StackTrace);
                //            System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);

                //        }

                //    }
                //}

                String Mensaje = "";
                if (lt_retorno.Count > 0)
                {
                    for (int i = 0; i < lt_retorno.Count(); i++)
                    {
                        //lt_retorno.CurrentIndex = i;
                        retorno_resp            = new RETORNO();
                        retorno_resp.TYPE       = lt_retorno.GetString("TYPE");
                        retorno_resp.ID         = lt_retorno.GetString("ID");
                        retorno_resp.NUMBER     = lt_retorno.GetString("NUMBER");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.LOG_NO     = lt_retorno.GetString("LOG_NO");
                        retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1");
                        if (i == 0)
                        {
                            Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1");
                        }
                        retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2");
                        retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3");
                        retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4");
                        retorno_resp.PARAMETER  = lt_retorno.GetString("PARAMETER");
                        retorno_resp.ROW        = lt_retorno.GetString("ROW");
                        retorno_resp.FIELD      = lt_retorno.GetString("FIELD");
                        retorno_resp.SYSTEM     = lt_retorno.GetString("SYSTEM");
                        Retorno.Add(retorno_resp);
                    }
                    System.Windows.MessageBox.Show(Mensaje);
                }
                //else
                //{
                //    System.Windows.MessageBox.Show("No existe(n) registro(s)");
                //}
            }
            else
            {
                errormessage = retval;
            }
            GC.Collect();
        }
示例#9
0
        public bool getSapFunctionToTablePara(string funName, Dictionary <string, string> lstParameters, Dictionary <string, Dictionary <string, object> > lstStructures
                                              , IRfcTable rtbIput, string tableindex
                                              , List <string> ParameterNamesForOut, out Dictionary <string, string> ParametersOutput
                                              , List <string> StructureNamesForOut, out Dictionary <string, IRfcStructure> StructureOutputs
                                              , List <string> tableNamesForOut, out Dictionary <string, IRfcTable> rtbsOutput, ref string strErrMsg)
        {
            try
            {
                RfcRepository repo       = rfcrep;
                IRfcFunction  Z_RFC_ZCOX = repo.CreateFunction(funName);
                RfcSessionManager.BeginContext(dest);
                if (lstParameters != null && lstParameters.Count > 0)
                {
                    foreach (KeyValuePair <string, string> item in lstParameters)
                    {
                        Z_RFC_ZCOX.SetValue(item.Key, item.Value);
                    }
                }
                if (lstStructures != null && lstStructures.Count > 0)
                {
                    foreach (string item in lstStructures.Keys)
                    {
                        IRfcStructure _stru = Z_RFC_ZCOX.GetStructure(item);
                        foreach (KeyValuePair <string, object> _kv in lstStructures[item])
                        {
                            _stru.SetValue(_kv.Key, _kv.Value);
                        }
                    }
                }
                if (rtbIput != null)
                {
                    Z_RFC_ZCOX.SetValue(tableindex, rtbIput);
                }

                Z_RFC_ZCOX.Invoke(dest);
                RfcSessionManager.EndContext(dest);

                //取出返回的表
                if (tableNamesForOut != null && tableNamesForOut.Count > 0)
                {
                    rtbsOutput = new Dictionary <string, IRfcTable>();
                    foreach (string item in tableNamesForOut)
                    {
                        IRfcTable rtb = Z_RFC_ZCOX.GetTable(item);
                        rtbsOutput.Add(item, rtb);
                    }
                }
                else
                {
                    rtbsOutput = null;
                }

                //取出返回参数
                if (ParameterNamesForOut != null && ParameterNamesForOut.Count > 0)
                {
                    ParametersOutput = new Dictionary <string, string>();
                    foreach (string item in ParameterNamesForOut)
                    {
                        string retPara = Z_RFC_ZCOX.GetString(item);
                        ParametersOutput.Add(item, retPara);
                    }
                }
                else
                {
                    ParametersOutput = null;
                }

                //取出返回的结构
                if (StructureNamesForOut != null && StructureNamesForOut.Count > 0)
                {
                    StructureOutputs = new Dictionary <string, IRfcStructure>();
                    foreach (string item in StructureNamesForOut)
                    {
                        IRfcStructure retStru = Z_RFC_ZCOX.GetStructure(item);
                        StructureOutputs.Add(item, retStru);
                    }
                }
                else
                {
                    StructureOutputs = null;
                }

                char statue = Z_RFC_ZCOX.GetChar("EX_TYPE");

                if ("E".Contains(statue))
                {
                    strErrMsg = Z_RFC_ZCOX.GetString("EX_MSG");
                }

                return("S".Contains(statue));
            }
            catch (RfcAbapRuntimeException ex)
            {
                ParametersOutput = null;
                rtbsOutput       = null;
                StructureOutputs = null;
                throw ex;
            }
        }
示例#10
0
        public static void CreateBOM(Item materialPart, Item logItem)
        {
            materialPart.fetchRelationships("Part BOM");
            Item relationships = materialPart.getRelationships("Part BOM");

            if (relationships.getItemCount() > 0)
            {
                string bomMaterialStatus = CheckMaterialsInBOM(materialPart);
                if (bomMaterialStatus == "Success")
                {
                    string changeNumber   = materialPart.getProperty("gag_change_num");
                    string materialNumber = materialPart.getProperty("item_number") + "-" + materialPart.getProperty("major_rev");
                    int    count          = relationships.getItemCount();

                    IRfcFunction CreateBOMBapi = destination.Repository.CreateFunction("CSAP_MAT_BOM_CREATE");
                    CreateBOMBapi.SetValue("MATERIAL", materialNumber);
                    CreateBOMBapi.SetValue("BOM_USAGE", "2");
                    CreateBOMBapi.SetValue("CHANGE_NO", changeNumber);
                    CreateBOMBapi.SetValue("FL_COMMIT_AND_WAIT", "X");
                    CreateBOMBapi.SetValue("FL_DEFAULT_VALUES", "X");

                    IRfcStructure headDataStruct = CreateBOMBapi.GetStructure("I_STKO");
                    headDataStruct.SetValue("BASE_QUAN", "1");
                    headDataStruct.SetValue("BOM_STATUS", "2");
                    headDataStruct.SetValue("BASE_UNIT", "PC");

                    for (int i = 0; i < count; i++)
                    {
                        Item      partRelationship = relationships.getItemByIndex(i);
                        Item      part             = partRelationship.getRelatedItem();
                        string    partNo           = part.getProperty("item_number");
                        string    partRevision     = part.getProperty("major_rev");
                        string    partNumber       = partNo + "-" + partRevision;
                        string    quantity         = partRelationship.getProperty("quantity");
                        IRfcTable BOMItems         = CreateBOMBapi.GetTable("T_STPO");
                        BOMItems.Append();
                        BOMItems.SetValue("ITEM_CATEG", "L");
                        BOMItems.SetValue("ITEM_NO", "00" + (i + 1) * 10);
                        BOMItems.SetValue("COMPONENT", partNumber);
                        BOMItems.SetValue("COMP_QTY", quantity);
                    }

                    CreateBOMBapi.Invoke(destination);
                    string msgOutput = CreateBOMBapi.GetString("BOM_NO");

                    IRfcFunction rfcCommitFunction = destination.Repository.CreateFunction("BAPI_TRANSACTION_COMMIT");
                    rfcCommitFunction.Invoke(destination);

                    if (string.IsNullOrEmpty(msgOutput))
                    {
                        FillLogItem(logItem, "BOM not Created", "Failed");
                    }
                    else
                    {
                        FillLogItem(logItem, string.Empty, "Completed");
                    }
                }
                else
                {
                    FillLogItem(logItem, "Component Material does not exist in SAP", "Failed");
                }
            }
            else
            {
                FillLogItem(logItem, string.Empty, "Completed");
            }
        }
示例#11
0
        public bool InstallAndRun()
        {
            IRfcFunction function = null;

            this._result.Clear();
            try
            {
                if (this._des == null)
                {
                    throw new SAPException(Messages.Connectionisnotvalid);
                }

                this._LastError = "";
                if (!String.IsNullOrEmpty(CustomFunction))
                {
                    function = _des.Repository.CreateFunction(CustomFunction);
                }
                else
                {
                    bool hasFunction = SAPFunction.CheckFunction(_sysName, "ZVI_RFC_ABAP_INSTALL_AND_RUN");
                    if (hasFunction)
                    {
                        function = _des.Repository.CreateFunction("ZVI_RFC_ABAP_INSTALL_AND_RUN");
                    }
                    //else
                    //{
                    //    hasFunction = SAPFunction.CheckFunction(_sysName, "RFC_ABAP_INSTALL_AND_RUN");
                    //    if (hasFunction)
                    //    {
                    //        function = _des.Repository.CreateFunction("RFC_ABAP_INSTALL_AND_RUN");
                    //    }
                    //}
                }
                if (function == null)
                {
                    throw new SAPException("无法找到运行程序");
                }

                IRfcTable table = function.GetTable("PROGRAM");

                if (this._code.Count <= 1)
                {
                    throw new Exception(Messages.Thegivencodeisnotvalid);
                }
                foreach (string str in this._code)
                {
                    table.Append();
                    IRfcStructure row = table.CurrentRow;
                    row.SetValue("ZEILE", str);
                }

                function.Invoke(_des);
            }
            catch (RfcCommunicationException e)
            {
                throw new SAPException(e.Message);
            }
            catch (RfcAbapException e)
            {
                throw new SAPException(e.Key + e.Message);
            }
            this._LastError = function.GetString("ERRORMESSAGE");
            if (this._LastError != "")
            {
                return(false);
            }

            IRfcTable table2 = function.GetTable("WRITES");

            for (int i = 0; i < table2.RowCount; i++)
            {
                this._result.Add(table2[i].GetString("ZEILE"));
            }
            return(true);
        }
示例#12
0
        /// <summary>
        /// you need  excute(se38) ABLM_MODIFY_ITEMS in sap system and set relavant parameter
        /// previous when you use BAPI_SALESORDER_CREATEFROMDAT2 this RFC module
        /// </summary>
        /// <param name="destinationName"></param>
        /// <returns></returns>
        public string CreateOrder(SapSalesOrder salesOrder)
        {
            if (rfcDestination == null)
            {
                rfcDestination = RfcDestinationManager.GetDestination(WebApiApplication.destinationConfigName);
            }
            RfcRepository repo            = rfcDestination.Repository;
            IRfcFunction  _SalesDoc       = repo.CreateFunction("BAPI_SALESORDER_CREATEFROMDAT2");
            IRfcFunction  _SalesDocCommit = repo.CreateFunction("BAPI_TRANSACTION_COMMIT");
            IRfcStructure _SalesHeader    = _SalesDoc.GetStructure("ORDER_HEADER_IN");
            IRfcTable     _SalesItems     = _SalesDoc.GetTable("ORDER_ITEMS_IN");
            IRfcTable     _SalesPartners  = _SalesDoc.GetTable("ORDER_PARTNERS");
            IRfcTable     _SalesSchedule  = _SalesDoc.GetTable("ORDER_SCHEDULES_IN");

            _SalesHeader.SetValue("DOC_TYPE", salesOrder.Header.DOC_TYPE);
            _SalesHeader.SetValue("SALES_ORG", salesOrder.Header.SALES_ORG);
            _SalesHeader.SetValue("DISTR_CHAN", salesOrder.Header.DISTR_CHAN);
            _SalesHeader.SetValue("DIVISION", salesOrder.Header.DIVISION);
            _SalesHeader.SetValue("PURCH_NO_C", salesOrder.Header.PURCH_NO_C);
            //test 採購日期
            _SalesHeader.SetValue("PURCH_DATE", salesOrder.Header.PURCH_DATE);
            foreach (SalesItem si in salesOrder.ItemList)
            {
                IRfcStructure _SalesItemsStruct = _SalesItems.Metadata.LineType.CreateStructure();
                _SalesItemsStruct.SetValue("ITM_NUMBER", si.ITM_NUMBER);
                //_SalesItemsStruct.SetValue("MATERIAL", si.MATERIAL);
                _SalesItemsStruct.SetValue("MATERIAL_LONG", si.MATERIAL);
                _SalesItemsStruct.SetValue("TARGET_QTY", si.TARGET_QTY);
                //test 客戶物料號碼
                _SalesItemsStruct.SetValue("CUST_MAT35", si.CUST_MAT35);
                _SalesItems.Append(_SalesItemsStruct);
            }
            foreach (SalesPartner sp in salesOrder.PartnerList)
            {
                IRfcStructure _SalesPartnersStruct = _SalesPartners.Metadata.LineType.CreateStructure();
                _SalesPartnersStruct.SetValue("PARTN_ROLE", sp.PARTN_ROLE);
                _SalesPartnersStruct.SetValue("PARTN_NUMB", sp.PARTN_NUMB);
                _SalesPartners.Append(_SalesPartnersStruct);
            }
            foreach (SalesSchedule ss in salesOrder.ScheduleList)
            {
                IRfcStructure _SalesScheduleStruct = _SalesSchedule.Metadata.LineType.CreateStructure();
                _SalesScheduleStruct.SetValue("REQ_QTY", ss.REQ_QTY);
                _SalesScheduleStruct.SetValue("ITM_NUMBER", ss.ITM_NUMBER);
                _SalesScheduleStruct.SetValue("SCHED_LINE", ss.SCHED_LINE);
                _SalesScheduleStruct.SetValue("REQ_DATE", ss.REQ_DATE);
                _SalesSchedule.Append(_SalesScheduleStruct);
            }
            ////salesPartnersStruct.SetValue("PARTN_ROLE", "RE");
            ////salesPartnersStruct.SetValue("PARTN_NUMB", "0010000650");
            ////salesPartners.Append(salesPartnersStruct);
            RfcSessionManager.BeginContext(rfcDestination);
            _SalesDoc.Invoke(rfcDestination);
            _SalesDocCommit.Invoke(rfcDestination);
            RfcSessionManager.EndContext(rfcDestination);
            string          _SalesCocument = _SalesDoc.GetString("SALESDOCUMENT");
            DataTable       dtReturn       = ConvertToDotNetTable(_SalesDoc.GetTable("RETURN"));
            List <ErrorLog> _ErrorList     = SetErrorLog(dtReturn, "BAPI_SALESORDER_CREATEFROMDAT2", _SalesCocument, salesOrder.Header.PURCH_NO_C);
            List <string>   _Error         = this._errorLogService.MiltiCreate(_ErrorList);

            return(_SalesCocument);
        }
示例#13
0
        /// <summary>
        /// no use
        /// </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public string CreateCustomer(string number)
        {
            if (rfcDestination == null)
            {
                rfcDestination = RfcDestinationManager.GetDestination(WebApiApplication.destinationConfigName);
            }
            RfcRepository repo              = rfcDestination.Repository;
            IRfcFunction  _CUSTOMER         = repo.CreateFunction("BAPI_CUSTOMER_CREATEFROMDATA1");
            IRfcFunction  _Commit           = repo.CreateFunction("BAPI_TRANSACTION_COMMIT");
            IRfcStructure _PI_COPYREFERENCE = _CUSTOMER.GetStructure("PI_COPYREFERENCE");

            _PI_COPYREFERENCE.SetValue("SALESORG", "1000");
            _PI_COPYREFERENCE.SetValue("DISTR_CHAN", "00");
            _PI_COPYREFERENCE.SetValue("DIVISION", "00");
            _PI_COPYREFERENCE.SetValue("REF_CUSTMR", "0010000003");

            IRfcStructure _PI_PERSONALDATA = _CUSTOMER.GetStructure("PI_PERSONALDATA");

            _PI_PERSONALDATA.SetValue("FIRSTNAME", "1234");
            _PI_PERSONALDATA.SetValue("LASTNAME", "DDDD");
            _PI_PERSONALDATA.SetValue("COUNTRY", "US");
            _PI_PERSONALDATA.SetValue("REGION", "AK");
            _PI_PERSONALDATA.SetValue("LANGU_P", "EN");
            _PI_PERSONALDATA.SetValue("CURRENCY", "USD");
            _PI_PERSONALDATA.SetValue("middlename", "john");
            _PI_PERSONALDATA.SetValue("date_birth", "19780101");
            _PI_PERSONALDATA.SetValue("langu_p", "EN");
            _PI_PERSONALDATA.SetValue("district", "Hyd");
            _PI_PERSONALDATA.SetValue("house_no", "11230");
            _PI_PERSONALDATA.SetValue("building", "super");
            _PI_PERSONALDATA.SetValue("room_no", "113");
            _PI_PERSONALDATA.SetValue("title_p", "Mr.");//Invalid form of address text error you need set Mr. reference table TSAD3T
            _PI_PERSONALDATA.SetValue("city", "LOS_ANGELES");
            //IRfcStructure _PI_OPT_PERSONALDATA = _CUSTOMER.GetStructure("PI_OPT_PERSONALDATA");
            //_PI_OPT_PERSONALDATA.SetValue("SHIP_COND", "01");
            //_PI_OPT_PERSONALDATA.SetValue("DELYG_PLNT", "1000");
            //IRfcFunction _SdCustomer = repo.CreateFunction("SD_CUSTOMER_MAINTAIN_ALL");
            //IRfcStructure _Knvv = _SdCustomer.GetStructure("I_KNVV");
            //_Knvv.SetValue("KUNNR", number);
            //_Knvv.SetValue("VKORG", "1000");
            //_Knvv.SetValue("VTWEG", "00");
            //_Knvv.SetValue("SPART", "00");
            //_Knvv.SetValue("KALKS", "1");
            //_Knvv.SetValue("BZIRK", "US");
            //_Knvv.SetValue("WAERS", "USD");
            //_Knvv.SetValue("KURST", "E");
            //_Knvv.SetValue("KONDA", "MSRP");
            //_Knvv.SetValue("VSBED", "01");
            //_Knvv.SetValue("INCO1", "DDP");
            //_Knvv.SetValue("INCO2", "US");
            RfcSessionManager.BeginContext(rfcDestination);
            _CUSTOMER.Invoke(rfcDestination);
            _Commit.Invoke(rfcDestination);
            RfcSessionManager.EndContext(rfcDestination);
            IRfcStructure   structReturn = _CUSTOMER.GetStructure("RETURN");
            string          _CUSTOMERNO  = _CUSTOMER.GetString("CUSTOMERNO");
            string          _TYPE        = structReturn.GetString("TYPE");
            string          _MESSAGE     = structReturn.GetString("MESSAGE");
            DataTable       dtReturn     = setErrorTable(_TYPE, _MESSAGE, "PI_COPYREFERENCE");
            List <ErrorLog> _ErrorList   = SetErrorLog(dtReturn, "BAPI_CUSTOMER_CREATEFROMDATA1", "", "");
            List <string>   _Error       = this._errorLogService.MiltiCreate(_ErrorList);

            return("");
        }
示例#14
0
        /// <summary>
        /// Remote Function Module YBAPI_DOCUMENT_POST_REVERSE.
        /// YAPBAPIINVOICE
        /// </summary>
        /// <param name="Out_Compcode">Company Code</param>
        /// <param name="Out_Docno">Assignment of Item Numbers: Material Doc. - Purchasing Doc.</param>
        /// <param name="Out_Docyear">Fiscal Year</param>
        /// <param name="Out_Flag">Single-character flag</param>
        /// <param name="Out_Msg">Comment</param>
        /// <param name="I_Compcode">Company Code</param>
        /// <param name="I_Docno">Assignment of Item Numbers: Material Doc. - Purchasing Doc.</param>
        /// <param name="I_Docyear">Fiscal Year</param>
        /// <param name="I_Postdate">Character Field Length = 10</param>
        /// <param name="I_Reason">Version Number Component</param>
        //[RfcMethod(AbapName = "YBAPI_DOCUMENT_POST_REVERSE")]
        //[SoapDocumentMethodAttribute("http://tempuri.org/YBAPI_DOCUMENT_POST_REVERSE",
        // RequestNamespace = "urn:sap-com:document:sap:rfc:functions",
        // RequestElementName = "YBAPI_DOCUMENT_POST_REVERSE",
        // ResponseNamespace = "urn:sap-com:document:sap:rfc:functions",
        // ResponseElementName = "YBAPI_DOCUMENT_POST_REVERSE.Response")]
        public virtual void Ybapi_Document_Post_Reverse(

            //    [RfcParameter(AbapName = "I_COMPCODE", RfcType = RFCTYPE.RFCTYPE_CHAR, Optional = false, Direction = RFCINOUT.IN, Length = 4, Length2 = 8)]
            //[XmlElement("I_COMPCODE", IsNullable = false, Form = XmlSchemaForm.Unqualified)]
            string I_Compcode,
            //[RfcParameter(AbapName = "I_DOCNO", RfcType = RFCTYPE.RFCTYPE_CHAR, Optional = false, Direction = RFCINOUT.IN, Length = 10, Length2 = 20)]
            //[XmlElement("I_DOCNO", IsNullable = false, Form = XmlSchemaForm.Unqualified)]
            string I_Docno,
            //[RfcParameter(AbapName = "I_DOCYEAR", RfcType = RFCTYPE.RFCTYPE_NUM, Optional = false, Direction = RFCINOUT.IN, Length = 4, Length2 = 8)]
            //[XmlElement("I_DOCYEAR", IsNullable = false, Form = XmlSchemaForm.Unqualified)]
            string I_Docyear,
            //[RfcParameter(AbapName = "I_POSTDATE", RfcType = RFCTYPE.RFCTYPE_DATE, Optional = true, Direction = RFCINOUT.IN, Length = 8, Length2 = 16)]
            //[XmlElement("I_POSTDATE", IsNullable = false, Form = XmlSchemaForm.Unqualified)]
            string I_Postdate,
            //[RfcParameter(AbapName = "I_REASON", RfcType = RFCTYPE.RFCTYPE_CHAR, Optional = false, Direction = RFCINOUT.IN, Length = 2, Length2 = 4)]
            //[XmlElement("I_REASON", IsNullable = false, Form = XmlSchemaForm.Unqualified)]
            string I_Reason,
            //[RfcParameter(AbapName = "OUT_COMPCODE", RfcType = RFCTYPE.RFCTYPE_CHAR, Optional = true, Direction = RFCINOUT.OUT, Length = 4, Length2 = 8)]
            //[XmlElement("OUT_COMPCODE", IsNullable = false, Form = XmlSchemaForm.Unqualified)]
            out string Out_Compcode,
            //[RfcParameter(AbapName = "OUT_DOCNO", RfcType = RFCTYPE.RFCTYPE_CHAR, Optional = true, Direction = RFCINOUT.OUT, Length = 10, Length2 = 20)]
            //[XmlElement("OUT_DOCNO", IsNullable = false, Form = XmlSchemaForm.Unqualified)]
            out string Out_Docno,
            //[RfcParameter(AbapName = "OUT_DOCYEAR", RfcType = RFCTYPE.RFCTYPE_NUM, Optional = true, Direction = RFCINOUT.OUT, Length = 4, Length2 = 8)]
            //[XmlElement("OUT_DOCYEAR", IsNullable = false, Form = XmlSchemaForm.Unqualified)]
            out string Out_Docyear,
            //[RfcParameter(AbapName = "OUT_FLAG", RfcType = RFCTYPE.RFCTYPE_CHAR, Optional = true, Direction = RFCINOUT.OUT, Length = 1, Length2 = 2)]
            //[XmlElement("OUT_FLAG", IsNullable = false, Form = XmlSchemaForm.Unqualified)]
            out string Out_Flag,
            //[RfcParameter(AbapName = "OUT_MSG", RfcType = RFCTYPE.RFCTYPE_CHAR, Optional = true, Direction = RFCINOUT.OUT, Length = 50, Length2 = 100)]
            //[XmlElement("OUT_MSG", IsNullable = false, Form = XmlSchemaForm.Unqualified)]
            out string Out_Msg)
        {
            //object[] results = null;
            //results = this.SAPInvoke("Ybapi_Document_Post_Reverse", new object[] {
            //                I_Compcode,I_Docno,I_Docyear,I_Postdate,I_Reason });
            //Out_Compcode = (string)results[0];
            //Out_Docno = (string)results[1];
            //Out_Docyear = (string)results[2];
            //Out_Flag = (string)results[3];
            //Out_Msg = (string)results[4];

            IRfcFunction function = destination.Repository.CreateFunction("YBAPI_DOCUMENT_POST_REVERSE");

            #region set parameter value

            function.SetValue("I_COMPCODE", I_Compcode);
            function.SetValue("I_DOCNO", I_Docno);
            function.SetValue("I_DOCYEAR", I_Docyear);
            function.SetValue("I_POSTDATE", I_Postdate);
            function.SetValue("I_REASON", I_Reason);

            #endregion

            function.Invoke(destination);

            Out_Compcode = function.GetString("OUT_COMPCODE"); //Out_Compcode = (string)results[0];
            Out_Docno    = function.GetString("OUT_DOCNO");    //Out_Docno = (string)results[1];
            Out_Docyear  = function.GetString("OUT_DOCYEAR");  //Out_Docyear = (string)results[2];
            Out_Flag     = function.GetString("OUT_FLAG");     //Out_Flag = (string)results[3];
            Out_Msg      = function.GetString("OUT_MSG");      //Out_Msg = (string)results[4];
        }
示例#15
0
        public static Hashtable SAPExecuteTableData_Common(Hashtable[] arrht, Hashtable ImportData, string Function_Name, string RfcStructure_Name, string Table_Name, string GetTable_Name, string GetTable_Name2)
        {
            RfcConfigParameters configParam = GetConfigParam();
            RfcDestination      destination = RfcDestinationManager.GetDestination(configParam);
            IRfcFunction        function    = destination.Repository.CreateFunction(Function_Name);

            IRfcTable rfcTable = function.GetTable(Table_Name);

            for (int i = 0; i < arrht.Length; i++)
            {
                RfcStructureMetadata strMeta      = destination.Repository.GetStructureMetadata(RfcStructure_Name);
                IRfcStructure        rfcStructure = strMeta.CreateStructure();

                //if (arrht[i] == null)
                //    continue;

                IDictionaryEnumerator ie = arrht[i].GetEnumerator();

                while (ie.MoveNext())
                {
                    if (ie.Value.ToString().Length <= 4000)
                    {
                        rfcStructure.SetValue(ie.Key.ToString(), ie.Value);
                    }
                }

                rfcTable.Append(rfcStructure);
            }

            if (ImportData.Count > 0)
            {
                IDictionaryEnumerator ie = ImportData.GetEnumerator();

                while (ie.MoveNext())
                {
                    if (ie.Value.ToString().Length <= 4000)
                    {
                        function.SetValue(ie.Key.ToString(), ie.Value);
                    }
                }
            }

            function.Invoke(destination);
            IRfcTable rfcTable2 = function.GetTable(GetTable_Name);
            IRfcTable rfcTable3 = null;

            if (GetTable_Name2 != null)
            {
                rfcTable3 = function.GetTable(GetTable_Name2);
            }

            Hashtable ht = new Hashtable();

            switch (Function_Name)
            {
            case "ZMM_SKD_PO_AND_GR":
                ht.Add("I_EBELN", function.GetString("I_EBELN"));
                ht.Add("I_MBLNR", function.GetString("I_MBLNR"));
                ht.Add("FT_RETURN_PO", rfcTable2);
                ht.Add("FT_RETURN_GR", rfcTable3);
                break;

            case "ZMM_SKD_PO":
                ht.Add("I_EBELN", function.GetString("I_EBELN"));
                ht.Add("FT_RETURN_PO", rfcTable2);
                break;

            case "ZMM_SKD_BAPI_GOODSMVT_CREATE":
                ht.Add("I_MBLNR", function.GetString("I_MBLNR"));
                ht.Add("FT_RETURN_GR", rfcTable2);
                break;
            }

            return(ht);
        }
示例#16
0
        public List <SE_ESTATUS> EstatusCobro(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_BUKRS, string P_KUNNR, string P_BSCHL, string P_UMSKZ, string P_UMSKS, string P_GJAHR)
        {
            try
            {
                T_Retorno.Clear();
                errormessage = "";
                status       = "";
                message      = "";
                stringRfc    = "";
                protestado   = "";
                //IRfcStructure ls_CIERRE_CAJA;
                //IRfcTable lt_CIERRE_CAJA;
                IRfcStructure lt_SE_STATUS;
                //IRfcTable lt_SE_STATUS;
                //CERR_CAJA CERR_CAJA_resp;
                SE_ESTATUS retorno;
                //Conexion a SAP

                //Conexion a SAP
                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();
                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_STAT_COBRANZA");

                    BapiGetUser.SetValue("BUKRS", P_BUKRS);
                    BapiGetUser.SetValue("KUNNR", P_KUNNR);
                    BapiGetUser.SetValue("BSCHL", P_BSCHL);
                    BapiGetUser.SetValue("UMSKZ", P_UMSKZ);
                    BapiGetUser.SetValue("UMSKS", P_UMSKS);
                    BapiGetUser.SetValue("GJAHR", P_GJAHR);

                    BapiGetUser.Invoke(SapRfcDestination);
                    //LLenamos los datos que retorna la estructura de la RFC
                    //lt_CIERRE_CAJA = BapiGetUser.GetTable("ESTATUS");
                    protestado = BapiGetUser.GetString("PE_PROTESTADO");

                    lt_SE_STATUS = BapiGetUser.GetStructure("SE_ESTATUS");
                    // for (int i = 0; i < lt_SE_STATUS.Count(); i++)
                    // {
                    // lt_SE_STATUS.CurrentIndex = i;
                    retorno            = new SE_ESTATUS();
                    retorno.TYPE       = lt_SE_STATUS.GetString("TYPE");
                    retorno.ID         = lt_SE_STATUS.GetString("ID");
                    retorno.NUMBER     = lt_SE_STATUS.GetString("NUMBER");
                    retorno.MESSAGE    = lt_SE_STATUS.GetString("MESSAGE");
                    retorno.LOG_NO     = lt_SE_STATUS.GetString("LOG_NO");
                    retorno.LOG_MSG_NO = lt_SE_STATUS.GetString("LOG_MSG_NO");
                    retorno.MESSAGE_V1 = lt_SE_STATUS.GetString("MESSAGE_V1");
                    retorno.MESSAGE_V2 = lt_SE_STATUS.GetString("MESSAGE_V2");
                    retorno.MESSAGE_V3 = lt_SE_STATUS.GetString("MESSAGE_V3");
                    retorno.MESSAGE_V4 = lt_SE_STATUS.GetString("MESSAGE_V4");
                    retorno.PARAMETER  = lt_SE_STATUS.GetString("PARAMETER");
                    retorno.ROW        = lt_SE_STATUS.GetString("ROW");
                    retorno.FIELD      = lt_SE_STATUS.GetString("FIELD");
                    retorno.SYSTEM     = lt_SE_STATUS.GetString("SYSTEM");
                    T_Retorno.Add(retorno);
                    //  }
                }
                GC.Collect();
            }

            catch (InvalidCastException ex)
            {
                Console.WriteLine("{0} Exception caught.", ex);
                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
            }
            return(T_Retorno);
        }
示例#17
0
        public static string SAPDualExecute(Hashtable[] arrht, Hashtable ImportStr, Hashtable ImportData, string Function_Name, string RfcStructure_Name, string RfcStructure_Name2, string SetTable_Name)
        {
            RfcConfigParameters configParam = GetConfigParam();
            RfcDestination      destination = RfcDestinationManager.GetDestination(configParam);
            IRfcFunction        function    = destination.Repository.CreateFunction(Function_Name);

            IRfcTable rfcTable = function.GetTable(SetTable_Name);

            RfcStructureMetadata strMeta2      = destination.Repository.GetStructureMetadata(RfcStructure_Name2);
            IRfcStructure        rfcStructure2 = strMeta2.CreateStructure();

            for (int i = 0; i < arrht.Length; i++)
            {
                RfcStructureMetadata strMeta      = destination.Repository.GetStructureMetadata(RfcStructure_Name);
                IRfcStructure        rfcStructure = strMeta.CreateStructure();

                IDictionaryEnumerator ie = arrht[i].GetEnumerator();

                while (ie.MoveNext())
                {
                    if (ie.Value.ToString().Length <= 4000)
                    {
                        rfcStructure.SetValue(ie.Key.ToString(), ie.Value);
                    }
                }

                rfcTable.Append(rfcStructure);
            }

            if (ImportStr.Count > 0)
            {
                IDictionaryEnumerator ie = ImportStr.GetEnumerator();

                while (ie.MoveNext())
                {
                    if (ie.Value.ToString().Length <= 4000)
                    {
                        rfcStructure2.SetValue(ie.Key.ToString(), ie.Value);
                    }
                }
            }

            if (ImportData.Count > 0)
            {
                IDictionaryEnumerator ie = ImportData.GetEnumerator();

                while (ie.MoveNext())
                {
                    if (ie.Value.ToString().Length <= 4000)
                    {
                        function.SetValue(ie.Key.ToString(), ie.Value);
                    }
                }
            }

            function.SetValue("IV_HEADER", rfcStructure2);
            function.Invoke(destination);

            string returnCode = function.GetString("EV_E_TYPE");

            return(returnCode);
        }
示例#18
0
        public Attachment_BE VALIDATE_XML(ref Attachment_BE attach, string metodoPago, SharedSettings.Settings settings)
        {
            try
            {
                //Establecemos conexion con SAP
                RfcConfigParameters rfc = SAP_Connection.GetParameters(settings);

                RfcDestination rfcDest = null;
                rfcDest = RfcDestinationManager.GetDestination(rfc);

                //Creamos repositorio para la función
                RfcRepository repo          = rfcDest.Repository;
                IRfcFunction  validate_mail = repo.CreateFunction("Z_MAIL_VALIDATE_DATA");

                validate_mail.SetValue("P_RFC_VENDOR", attach.RFC_VEND);
                validate_mail.SetValue("P_RFC_COMPANY", attach.RFC_COMP);
                validate_mail.SetValue("P_MET_PAGO", metodoPago);
                //Ejecutamos la consulta
                validate_mail.Invoke(rfcDest);

                attach.RFC_COMPANY = validate_mail.GetString("ERFC_COMPANY");
                attach.RFC_VENDOR  = validate_mail.GetString("ERFC_VENDOR");
                attach.LIFNR       = validate_mail.GetString("ELIFNR");
                attach.BUKRS       = validate_mail.GetString("EBUKRS");

                //attach.ECALLECOMP = validate_mail.GetString("ECALLECOMP");
                //attach.E_N_EXTCOMP = validate_mail.GetString("E_N_EXTCOMP");
                //attach.ECOLCOMP = validate_mail.GetString("ECOLCOMP");
                //attach.EMUNI_COMP = validate_mail.GetString("EMUNI_COMP");
                //attach.ECPCOMP = validate_mail.GetString("ECPCOMP");
                //attach.EPAISCOMP = validate_mail.GetString("EPAISCOMP");
                //attach.ECALLEVEND = validate_mail.GetString("ECALLEVEND");
                //attach.E_N_EXTVEND = validate_mail.GetString("E_N_EXTVEND");
                //attach.ECOLVEND = validate_mail.GetString("ECOLVEND");
                //attach.EMUNI_VEND = validate_mail.GetString("EMUNI_VEND");
                //attach.ECPVEND = validate_mail.GetString("ECPVEND");
                //attach.EPAISVEND = validate_mail.GetString("EPAISVEND");
                //attach.EEDO_COMP = validate_mail.GetString("EEDO_COMP");
                //attach.EEDO_VEND = validate_mail.GetString("EEDO_VEND");
                attach.Desc_Error = attach.Desc_Error + validate_mail.GetString("E_MET_PAGO");


                return(attach);
            }
            catch (RfcCommunicationException e)
            {
                throw e;
            }
            catch (RfcLogonException e)
            {
                // user could not logon...
                throw e;
            }
            catch (RfcAbapRuntimeException e)
            {
                // serious problem on ABAP system side...
                throw e;
            }
            catch (RfcAbapBaseException e)
            {
                // The function module returned an ABAP exception, an ABAP message
                // or an ABAP class-based exception...
                throw e;
            }
            catch (Exception e)
            {
                throw e;
            }
        }
示例#19
0
        public void arqueocaja(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER
                               , string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_DATUMDESDE, string P_DATUMHASTA, string P_USUARIO
                               , string P_PAIS, string P_MONEDALOCAL, string P_ID_APERTURA, string P_ID_CIERRE, string P_IND_ARQUEO, string P_ID_ARQUEO_IN
                               , string P_MTO_APERTURA, List <DETALLE_ARQUEO> P_TOTALEFECTIVO)
        {
            try
            {
                ESTATUS        retorno;
                DETALLE_VP     detallevp;
                RESUMEN_VP     resumenvp;
                DETALLE_ARQUEO detallerend;
                T_Retorno.Clear();
                detalle_rend.Clear();
                detalle_viapago.Clear();
                resumen_viapago.Clear();
                errormessage = "";
                message      = "";
                diferencia   = "";
                id_arqueo    = "";

                IRfcTable ls_RETORNO;
                IRfcTable lt_DETALLE_VP;
                IRfcTable lt_RESUMEN_VP;
                IRfcTable lt_DETALLE_REND;

                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();
                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_ARQUEO_CAJA_2");

                    BapiGetUser.SetValue("LAND", P_PAIS);
                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                    BapiGetUser.SetValue("USUARIO", P_USUARIO);
                    BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA);   // Buscar en log de apertura
                    BapiGetUser.SetValue("MONEDA_LOCAL", P_MONEDALOCAL);  // Moneda
                    BapiGetUser.SetValue("ID_ARQUEO_IN", P_ID_ARQUEO_IN); // ""
                    BapiGetUser.SetValue("ID_CIERRE", P_ID_CIERRE);       // ""
                    BapiGetUser.SetValue("IND_ARQUEO", P_IND_ARQUEO);     //"A" Arqueo
                    BapiGetUser.SetValue("MTO_APERTURA", P_MTO_APERTURA); // Buscar en log de apertura

                    IRfcTable GralDat2 = BapiGetUser.GetTable("DETALLE_ARQUEO");
                    try
                    {
                        for (var i = 0; i < P_TOTALEFECTIVO.Count; i++)
                        {
                            GralDat2.Append();
                            GralDat2.SetValue("LAND", P_TOTALEFECTIVO[i].LAND);
                            GralDat2.SetValue("ID_CAJA", P_TOTALEFECTIVO[i].ID_CAJA);
                            GralDat2.SetValue("USUARIO", P_TOTALEFECTIVO[i].USUARIO);
                            GralDat2.SetValue("SOCIEDAD", P_TOTALEFECTIVO[i].SOCIEDAD);
                            GralDat2.SetValue("FECHA_REND", Convert.ToDateTime(P_TOTALEFECTIVO[i].FECHA_REND));
                            GralDat2.SetValue("HORA_REND", Convert.ToDateTime(P_TOTALEFECTIVO[i].HORA_REND));
                            GralDat2.SetValue("MONEDA", P_TOTALEFECTIVO[i].MONEDA);
                            GralDat2.SetValue("VIA_PAGO", P_TOTALEFECTIVO[i].VIA_PAGO);
                            GralDat2.SetValue("TIPO_MONEDA", P_TOTALEFECTIVO[i].TIPO_MONEDA);
                            GralDat2.SetValue("CANTIDAD_MON", P_TOTALEFECTIVO[i].CANTIDAD_MON);
                            GralDat2.SetValue("SUMA_MON_BILL", P_TOTALEFECTIVO[i].SUMA_MON_BILL);
                            GralDat2.SetValue("CANTIDAD_DOC", P_TOTALEFECTIVO[i].CANTIDAD_DOC);
                            GralDat2.SetValue("SUMA_DOCS", P_TOTALEFECTIVO[i].SUMA_DOCS);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message + ex.StackTrace);
                        //System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                    BapiGetUser.SetValue("DETALLE_ARQUEO", GralDat2);


                    BapiGetUser.Invoke(SapRfcDestination);

                    diferencia = BapiGetUser.GetString("DIFERENCIA");
                    if (diferencia.Contains(","))
                    {
                        diferencia = diferencia.Replace(",", "");
                        diferencia = diferencia.Substring(0, diferencia.Length - 2);
                    }
                    id_arqueo = BapiGetUser.GetString("ID_ARQUEO");


                    lt_DETALLE_VP = BapiGetUser.GetTable("DETALLE_VP"); //

                    try
                    {
                        for (int i = 0; i < lt_DETALLE_VP.Count(); i++)
                        {
                            lt_DETALLE_VP.CurrentIndex = i;
                            detallevp                  = new DETALLE_VP();
                            detallevp.SOCIEDAD         = lt_DETALLE_VP.GetString("SOCIEDAD");
                            detallevp.SOCIEDAD_TXT     = lt_DETALLE_VP.GetString("SOCIEDAD_TXT");
                            detallevp.ID_COMPROBANTE   = lt_DETALLE_VP.GetString("ID_COMPROBANTE");
                            detallevp.ID_DETALLE       = lt_DETALLE_VP.GetString("ID_DETALLE");
                            detallevp.VIA_PAGO         = lt_DETALLE_VP.GetString("VIA_PAGO");
                            detallevp.MONTO            = lt_DETALLE_VP.GetString("MONTO");
                            detallevp.MONEDA           = lt_DETALLE_VP.GetString("MONEDA");
                            detallevp.BANCO            = lt_DETALLE_VP.GetString("BANCO");
                            detallevp.BANCO_TXT        = lt_DETALLE_VP.GetString("BANCO_TXT");
                            detallevp.EMISOR           = lt_DETALLE_VP.GetString("EMISOR");
                            detallevp.NUM_CHEQUE       = lt_DETALLE_VP.GetString("NUM_CHEQUE");
                            detallevp.COD_AUTORIZACION = lt_DETALLE_VP.GetString("COD_AUTORIZACION");
                            detallevp.CLIENTE          = lt_DETALLE_VP.GetString("CLIENTE");
                            detallevp.NRO_DOCUMENTO    = lt_DETALLE_VP.GetString("NRO_DOCUMENTO");
                            detallevp.NUM_CUOTAS       = lt_DETALLE_VP.GetString("NUM_CUOTAS");
                            detallevp.FECHA_VENC       = lt_DETALLE_VP.GetString("FECHA_VENC");
                            detallevp.FECHA_EMISION    = lt_DETALLE_VP.GetString("FECHA_EMISION");
                            detallevp.NOTA_VENTA       = lt_DETALLE_VP.GetString("NOTA_VENTA");
                            detallevp.TEXTO_POSICION   = lt_DETALLE_VP.GetString("TEXTO_POSICION");
                            detallevp.NULO             = lt_DETALLE_VP.GetString("NULO");
                            detallevp.NRO_REFERENCIA   = lt_DETALLE_VP.GetString("NRO_REFERENCIA");
                            detallevp.TIPO_DOCUMENTO   = lt_DETALLE_VP.GetString("TIPO_DOCUMENTO");
                            detalle_viapago.Add(detallevp);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_RESUMEN_VP = BapiGetUser.GetTable("RESUMEN_VP"); //Resumen de Vias de Pago
                    try
                    {
                        for (int i = 0; i < lt_RESUMEN_VP.Count(); i++)
                        {
                            lt_RESUMEN_VP.CurrentIndex = i;
                            resumenvp              = new RESUMEN_VP();
                            resumenvp.LAND         = lt_RESUMEN_VP.GetString("LAND");
                            resumenvp.ID_CAJA      = lt_RESUMEN_VP.GetString("ID_CAJA");
                            resumenvp.SOCIEDAD     = lt_RESUMEN_VP.GetString("SOCIEDAD");
                            resumenvp.SOCIEDAD_TXT = lt_RESUMEN_VP.GetString("SOCIEDAD_TXT");
                            resumenvp.VIA_PAGO     = lt_RESUMEN_VP.GetString("VIA_PAGO");
                            resumenvp.TEXT1        = lt_RESUMEN_VP.GetString("TEXT1");
                            resumenvp.MONEDA       = lt_RESUMEN_VP.GetString("MONEDA");
                            resumenvp.MONTO        = lt_RESUMEN_VP.GetString("MONTO");
                            resumenvp.CANT_DOCS    = lt_RESUMEN_VP.GetString("CANT_DOCS");
                            resumen_viapago.Add(resumenvp);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_DETALLE_REND = BapiGetUser.GetTable("DETALLE_ARQUEO"); //Detalle de efectivo
                    try
                    {
                        for (int i = 0; i < lt_DETALLE_REND.Count(); i++)
                        {
                            lt_DETALLE_REND.CurrentIndex = i;
                            detallerend               = new DETALLE_ARQUEO();
                            detallerend.LAND          = lt_DETALLE_REND.GetString("LAND");
                            detallerend.ID_CAJA       = lt_DETALLE_REND.GetString("ID_CAJA");
                            detallerend.USUARIO       = lt_DETALLE_REND.GetString("USUARIO");
                            detallerend.SOCIEDAD      = lt_DETALLE_REND.GetString("SOCIEDAD");
                            detallerend.FECHA_REND    = lt_DETALLE_REND.GetString("FECHA_REND");
                            detallerend.HORA_REND     = lt_DETALLE_REND.GetString("HORA_REND");
                            detallerend.MONEDA        = lt_DETALLE_REND.GetString("MONEDA");
                            detallerend.VIA_PAGO      = lt_DETALLE_REND.GetString("VIA_PAGO");      //Efectivo
                            detallerend.TIPO_MONEDA   = lt_DETALLE_REND.GetString("TIPO_MONEDA");   //Denominacion
                            detallerend.CANTIDAD_MON  = lt_DETALLE_REND.GetString("CANTIDAD_MON");  //Cuantos??
                            detallerend.SUMA_MON_BILL = lt_DETALLE_REND.GetString("SUMA_MON_BILL"); //Cantidd*denominacion
                            detallerend.CANTIDAD_DOC  = lt_DETALLE_REND.GetString("CANTIDAD_DOC");  //""
                            detallerend.SUMA_DOCS     = lt_DETALLE_REND.GetString("SUMA_DOCS");     //""
                            detalle_rend.Add(detallerend);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    ls_RETORNO = BapiGetUser.GetTable("RETORNO");
                    try
                    {
                        for (int i = 0; i < ls_RETORNO.Count(); i++)
                        {
                            ls_RETORNO.CurrentIndex = i;
                            retorno = new ESTATUS();
                            if (ls_RETORNO.GetString("TYPE") == "S")
                            {
                                message = message + " - " + ls_RETORNO.GetString("MESSAGE");
                                if (id_arqueo == "")
                                {
                                    id_arqueo = ls_RETORNO.GetString("MESSAGE_V1");
                                }
                            }
                            if (ls_RETORNO.GetString("TYPE") == "E")
                            {
                                errormessage = errormessage + " - " + ls_RETORNO.GetString("MESSAGE");
                            }
                            retorno.TYPE       = ls_RETORNO.GetString("TYPE");
                            retorno.ID         = ls_RETORNO.GetString("ID");
                            retorno.NUMBER     = ls_RETORNO.GetString("NUMBER");
                            retorno.MESSAGE    = ls_RETORNO.GetString("MESSAGE");
                            retorno.LOG_NO     = ls_RETORNO.GetString("LOG_NO");
                            retorno.LOG_MSG_NO = ls_RETORNO.GetString("LOG_MSG_NO");
                            retorno.MESSAGE_V1 = ls_RETORNO.GetString("MESSAGE_V1");
                            retorno.MESSAGE_V2 = ls_RETORNO.GetString("MESSAGE_V2");
                            retorno.MESSAGE_V3 = ls_RETORNO.GetString("MESSAGE_V3");
                            if (ls_RETORNO.GetString("MESSAGE_V4") != "")
                            {
                                // comprobante = ls_RETORNO.GetString("MESSAGE_V4");
                            }
                            retorno.MESSAGE_V4 = ls_RETORNO.GetString("MESSAGE_V4");
                            retorno.PARAMETER  = ls_RETORNO.GetString("PARAMETER");
                            retorno.ROW        = ls_RETORNO.GetString("ROW");
                            retorno.FIELD      = ls_RETORNO.GetString("FIELD");
                            retorno.SYSTEM     = ls_RETORNO.GetString("SYSTEM");
                            T_Retorno.Add(retorno);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                }
                else
                {
                    errormessage = retval;
                    MessageBox.Show("No se pudo conectar a la RFC");
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, ex.StackTrace);
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
示例#20
0
        public void pagosmasivos(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_RUT, string P_SOCIEDAD, List <PagosMasivos> ListaExc)
        {
            ObjDatosPartidasOpen.Clear();
            Retorno.Clear();
            errormessage = "";
            protesto     = "";
            IRfcTable     lt_PAGOS_MASIVOS;
            IRfcStructure lt_retorno;

            ESTADO       retorno_resp;
            T_DOCUMENTOS PAGOS_MASIVOS_resp;

            //Conexion a SAP
            connectorSap.idioma    = P_IDIOMA;
            connectorSap.idSistema = P_IDSISTEMA;
            connectorSap.instancia = P_INSTANCIA;
            connectorSap.mandante  = P_MANDANTE;
            connectorSap.paswr     = P_PASSWORD;
            connectorSap.sapRouter = P_SAPROUTER;
            connectorSap.user      = P_UNAME;
            connectorSap.server    = P_SERVER;

            string retval = connectorSap.connectionsSAP();

            //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
            if (string.IsNullOrEmpty(retval))
            {
                RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_GET_DOC_MASI");
                BapiGetUser.SetValue("STCD1", P_RUT);
                BapiGetUser.SetValue("BUKRS", P_SOCIEDAD);



                IRfcTable GralDat = BapiGetUser.GetTable("T_GET_DOC");

                for (var i = 0; i < ListaExc.Count; i++)
                {
                    GralDat.Append();
                    GralDat.SetValue("XBLNR", ListaExc[i].Referencia);
                    GralDat.SetValue("MONTO", ListaExc[i].Monto);
                    GralDat.SetValue("WAERS", ListaExc[i].Moneda);
                }

                BapiGetUser.SetValue("T_GET_DOC", GralDat);


                BapiGetUser.Invoke(SapRfcDestination);


                protesto         = BapiGetUser.GetString("PE_PROTESTADO");
                lt_PAGOS_MASIVOS = BapiGetUser.GetTable("T_DOCUMENTOS");
                lt_retorno       = BapiGetUser.GetStructure("SE_ESTATUS");
                //lt_PART_ABIERTAS = BapiGetUser.GetTable("ZCLSP_TT_LISTA_DOCUMENTOS");
                if (lt_PAGOS_MASIVOS.Count > 0)
                {
                    //LLenamos la tabla de salida lt_DatGen
                    for (int i = 0; i < lt_PAGOS_MASIVOS.RowCount; i++)
                    {
                        lt_PAGOS_MASIVOS.CurrentIndex = i;
                        PAGOS_MASIVOS_resp            = new T_DOCUMENTOS();

                        PAGOS_MASIVOS_resp.SOCIEDAD        = lt_PAGOS_MASIVOS[i].GetString("SOCIEDAD");
                        PAGOS_MASIVOS_resp.NDOCTO          = lt_PAGOS_MASIVOS[i].GetString("NDOCTO");
                        PAGOS_MASIVOS_resp.NREF            = lt_PAGOS_MASIVOS[i].GetString("NREF");
                        PAGOS_MASIVOS_resp.CLASE_CUENTA    = lt_PAGOS_MASIVOS[i].GetString("CLASE_CUENTA");
                        PAGOS_MASIVOS_resp.CLASE_DOC       = lt_PAGOS_MASIVOS[i].GetString("CLASE_DOC");
                        PAGOS_MASIVOS_resp.COD_CLIENTE     = lt_PAGOS_MASIVOS[i].GetString("COD_CLIENTE");
                        PAGOS_MASIVOS_resp.RUTCLI          = lt_PAGOS_MASIVOS[i].GetString("RUTCLI");
                        PAGOS_MASIVOS_resp.NOMCLI          = lt_PAGOS_MASIVOS[i].GetString("NOMCLI");
                        PAGOS_MASIVOS_resp.CEBE            = lt_PAGOS_MASIVOS[i].GetString("CEBE");
                        PAGOS_MASIVOS_resp.FECHA_DOC       = lt_PAGOS_MASIVOS[i].GetString("FECHA_DOC");
                        PAGOS_MASIVOS_resp.FECVENCI        = lt_PAGOS_MASIVOS[i].GetString("FECVENCI");
                        PAGOS_MASIVOS_resp.DIAS_ATRASO     = lt_PAGOS_MASIVOS[i].GetString("DIAS_ATRASO");
                        PAGOS_MASIVOS_resp.ESTADO          = lt_PAGOS_MASIVOS[i].GetString("ESTADO");
                        PAGOS_MASIVOS_resp.ICONO           = lt_PAGOS_MASIVOS[i].GetString("ICONO");
                        PAGOS_MASIVOS_resp.MONEDA          = lt_PAGOS_MASIVOS[i].GetString("MONEDA");
                        PAGOS_MASIVOS_resp.ACC             = lt_PAGOS_MASIVOS[i].GetString("ACC");
                        PAGOS_MASIVOS_resp.CLASE_CUENTA    = lt_PAGOS_MASIVOS[i].GetString("CLASE_CUENTA");
                        PAGOS_MASIVOS_resp.CLASE_DOC       = lt_PAGOS_MASIVOS[i].GetString("CLASE_DOC");
                        PAGOS_MASIVOS_resp.CME             = lt_PAGOS_MASIVOS[i].GetString("CME");
                        PAGOS_MASIVOS_resp.CONTROL_CREDITO = lt_PAGOS_MASIVOS[i].GetString("CONTROL_CREDITO");
                        //string.Format("{0:0.##}", lvatend)
                        //decimal lvNetoAbo2 = Convert.ToDecimal(t_REPORTE_CONTACTOS[i].GetString("NETO_ABONO2"));
                        //REPORTE_CONTACTOS_resp.NETO_ABONO2 = string.Format("{0:#,0}", lvNetoAbo2);
                        if (lt_PAGOS_MASIVOS[i].GetString("MONTOF") == "")
                        {
                            PAGOS_MASIVOS_resp.MONTOF = "0";
                        }
                        else
                        {
                            decimal Cualquiernombre = Convert.ToDecimal(lt_PAGOS_MASIVOS[i].GetString("MONTOF"));
                            // PAGOS_MASIVOS_resp.MONTOF = lt_PAGOS_MASIVOS[i].GetString("MONTOF");
                            PAGOS_MASIVOS_resp.MONTOF = string.Format("{0:0.##}", Cualquiernombre);
                        }
                        if (lt_PAGOS_MASIVOS[i].GetString("MONTO") == "")
                        {
                            PAGOS_MASIVOS_resp.MONTO = "0";
                        }
                        else
                        {
                            decimal Cualquiernombre = Convert.ToDecimal(lt_PAGOS_MASIVOS[i].GetString("MONTO"));
                            // PAGOS_MASIVOS_resp.MONTOF = lt_PAGOS_MASIVOS[i].GetString("MONTOF");
                            PAGOS_MASIVOS_resp.MONTO = string.Format("{0:0.##}", Cualquiernombre);
                        }
                        if (lt_PAGOS_MASIVOS[i].GetString("MONTOF_ABON") == "")
                        {
                            PAGOS_MASIVOS_resp.MONTOF_ABON = "0";
                        }
                        else
                        {
                            decimal Cualquiernombre = Convert.ToDecimal(lt_PAGOS_MASIVOS[i].GetString("MONTOF_ABON"));
                            PAGOS_MASIVOS_resp.MONTOF_ABON = string.Format("{0:0.##}", Cualquiernombre);
                        }
                        if (lt_PAGOS_MASIVOS[i].GetString("MONTOF_PAGAR") == "")
                        {
                            PAGOS_MASIVOS_resp.MONTOF_PAGAR = "0";
                        }
                        else
                        {
                            // PAGOS_MASIVOS_resp.MONTOF_ABON = lt_PAGOS_MASIVOS[i].GetString("MONTOF_ABON");
                            decimal Cualquiernombre = Convert.ToDecimal(lt_PAGOS_MASIVOS[i].GetString("MONTOF_PAGAR"));
                            PAGOS_MASIVOS_resp.MONTOF_PAGAR = string.Format("{0:0.##}", Cualquiernombre);
                        }
                        // PAGOS_MASIVOS_resp.MONTOF_PAGAR = lt_PAGOS_MASIVOS[i].GetString("MONTOF_PAGAR");


                        ObjDatosPartidasOpen.Add(PAGOS_MASIVOS_resp);
                    }
                }
                else
                {
                    MessageBox.Show("No existen registros para este número de RUT");
                }

                String Mensaje = "";
                if (lt_retorno.Count > 0)
                {
                    retorno_resp = new ESTADO();
                    for (int i = 0; i < lt_retorno.Count(); i++)
                    {
                        // lt_retorno.CurrentIndex = i;

                        retorno_resp.TYPE       = lt_retorno.GetString("TYPE");
                        retorno_resp.ID         = lt_retorno.GetString("ID");
                        retorno_resp.NUMBER     = lt_retorno.GetString("NUMBER");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.LOG_NO     = lt_retorno.GetString("LOG_NO");
                        retorno_resp.LOG_MSG_NO = lt_retorno.GetString("LOG_MSG_NO");
                        retorno_resp.MESSAGE    = lt_retorno.GetString("MESSAGE");
                        retorno_resp.MESSAGE_V1 = lt_retorno.GetString("MESSAGE_V1");
                        if (i == 0)
                        {
                            Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V1");
                        }
                        retorno_resp.MESSAGE_V2 = lt_retorno.GetString("MESSAGE_V2");
                        retorno_resp.MESSAGE_V3 = lt_retorno.GetString("MESSAGE_V3");
                        retorno_resp.MESSAGE_V4 = lt_retorno.GetString("MESSAGE_V4");
                        retorno_resp.PARAMETER  = lt_retorno.GetString("PARAMETER");
                        retorno_resp.ROW        = lt_retorno.GetString("ROW");
                        retorno_resp.FIELD      = lt_retorno.GetString("FIELD");
                        retorno_resp.SYSTEM     = lt_retorno.GetString("SYSTEM");
                        Retorno.Add(retorno_resp);
                    }
                    System.Windows.MessageBox.Show(Mensaje);
                }
                GC.Collect();
            }
            else
            {
                errormessage = retval;
                GC.Collect();
            }
        }
示例#21
0
        public void cierrecajadefinitivo(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER
                                         , string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_USUARIO, string P_PAIS, string P_ID_APERTURA, string P_MONTO_CIERRE
                                         , string P_MONTO_DIF, string P_COMENTARIO_DIF, string P_COMENTARIO_CIERRE, string P_TOTAL_APERTURA, string P_IND_CIERRE, string P_ID_ARQUEO_IN)
        {
            try
            {
                ESTATUS retorno;
                //CAB_ARQUEO cabarqueo;
                RESUMEN_VP     resumenvp;
                DETALLE_ARQUEO detarqueo;
                DETALLE_REND   detallerend;
                DETALLE_VP     detallevp;
                DET_EFECTIVO   detefectivo;
                T_Retorno.Clear();
                det_arqueo.Clear();
                detalle_rend.Clear();
                det_efectivo.Clear();
                //cab_arqueo.Clear();
                resumen_viapago.Clear();
                detalle_vp.Clear();
                errormessage = "";
                message      = "";
                diasatraso   = "";
                numerocierre = "";

                MontoIngresos    = 0;
                MontoEfect       = 0;
                MontoChqDia      = 0;
                MontoChqFech     = 0;
                MontoTransf      = 0;
                MontoValeV       = 0;
                MontoDepot       = 0;
                MontoTarj        = 0;
                MontoFinanc      = 0;
                MontoApp         = 0;
                MontoCredit      = 0;
                MontoEgresos     = 0;
                MontoCCurse      = 0;
                MontoFondosFijos = 0;
                SaldoTotal       = 0;

                IRfcTable ls_RETORNO;
                IRfcTable lt_DETALLE_REND;
                IRfcTable lt_RESUMEN_VP;
                IRfcTable lt_DET_EFECTIVO;
                IRfcTable lt_DET_ARQUEO;
                IRfcTable lt_DETALLE_VP;

                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();
                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_FM_SAVE_CIERRE");

                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                    BapiGetUser.SetValue("USUARIO", P_USUARIO);
                    BapiGetUser.SetValue("LAND", P_PAIS);
                    if (P_MONTO_CIERRE == "")
                    {
                        P_MONTO_CIERRE = "0";
                    }
                    BapiGetUser.SetValue("MONTO_CIERRE", P_MONTO_CIERRE); //Total caja
                    if (P_MONTO_DIF == "")
                    {
                        P_MONTO_DIF = "0";
                    }
                    BapiGetUser.SetValue("MONTO_DIF", P_MONTO_DIF);                 //Diferencia
                    BapiGetUser.SetValue("COMENTARIO_DIF", P_COMENTARIO_DIF);       //text
                    BapiGetUser.SetValue("COMENTARIO_CIERRE", P_COMENTARIO_CIERRE); //text
                    BapiGetUser.SetValue("TOTAL_APERTURA", P_TOTAL_APERTURA);       //log apertura
                    BapiGetUser.SetValue("IND_CIERRE", P_IND_CIERRE);               //"C"
                    BapiGetUser.SetValue("ID_ARQUEO_IN", P_ID_ARQUEO_IN);           //buscar numero de arqueo
                    BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA);             //log de apertura



                    BapiGetUser.Invoke(SapRfcDestination);

                    diasatraso   = BapiGetUser.GetString("DIAS_ATRASO");
                    numerocierre = BapiGetUser.GetString("NUM_CIERRE");


                    lt_DETALLE_VP = BapiGetUser.GetTable("DETALLE_VP");

                    try
                    {
                        for (int i = 0; i < lt_DETALLE_VP.Count(); i++)
                        {
                            lt_DETALLE_VP.CurrentIndex = i;
                            detallevp                  = new DETALLE_VP();
                            detallevp.SOCIEDAD         = lt_DETALLE_VP.GetString("SOCIEDAD");
                            detallevp.SOCIEDAD_TXT     = lt_DETALLE_VP.GetString("SOCIEDAD_TXT");
                            detallevp.ID_COMPROBANTE   = lt_DETALLE_VP.GetString("ID_COMPROBANTE");
                            detallevp.ID_DETALLE       = lt_DETALLE_VP.GetString("ID_DETALLE");
                            detallevp.VIA_PAGO         = lt_DETALLE_VP.GetString("VIA_PAGO");
                            detallevp.MONTO            = lt_DETALLE_VP.GetString("MONTO");
                            detallevp.MONEDA           = lt_DETALLE_VP.GetString("MONEDA");
                            detallevp.BANCO            = lt_DETALLE_VP.GetString("BANCO");
                            detallevp.BANCO_TXT        = lt_DETALLE_VP.GetString("BANCO_TXT");
                            detallevp.EMISOR           = lt_DETALLE_VP.GetString("EMISOR");
                            detallevp.NUM_CHEQUE       = lt_DETALLE_VP.GetString("NUM_CHEQUE");
                            detallevp.COD_AUTORIZACION = lt_DETALLE_VP.GetString("COD_AUTORIZACION");
                            detallevp.CLIENTE          = lt_DETALLE_VP.GetString("CLIENTE");
                            detallevp.NRO_DOCUMENTO    = lt_DETALLE_VP.GetString("NRO_DOCUMENTO");
                            detallevp.NUM_CUOTAS       = lt_DETALLE_VP.GetString("NUM_CUOTAS");
                            detallevp.FECHA_VENC       = lt_DETALLE_VP.GetString("FECHA_VENC");
                            detallevp.FECHA_EMISION    = lt_DETALLE_VP.GetString("FECHA_EMISION");
                            detallevp.NOTA_VENTA       = lt_DETALLE_VP.GetString("NOTA_VENTA");
                            detallevp.TEXTO_POSICION   = lt_DETALLE_VP.GetString("TEXTO_POSICION");
                            detallevp.NULO             = lt_DETALLE_VP.GetString("NULO");
                            detallevp.NRO_REFERENCIA   = lt_DETALLE_VP.GetString("NRO_REFERENCIA");
                            detallevp.TIPO_DOCUMENTO   = lt_DETALLE_VP.GetString("TIPO_DOCUMENTO");
                            detalle_vp.Add(detallevp);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_DETALLE_REND = BapiGetUser.GetTable("DETALLE_REND");
                    try
                    {
                        for (int i = 0; i < lt_DETALLE_REND.Count(); i++)
                        {
                            lt_DETALLE_REND.CurrentIndex = i;
                            detallerend              = new DETALLE_REND();
                            detallerend.N_VENTA      = lt_DETALLE_REND.GetString("N_VENTA");
                            detallerend.FEC_EMI      = lt_DETALLE_REND.GetString("FEC_EMI");
                            detallerend.FEC_VENC     = lt_DETALLE_REND.GetString("FEC_VENC");
                            detallerend.MONTO        = lt_DETALLE_REND.GetString("MONTO");
                            detallerend.NAME1        = lt_DETALLE_REND.GetString("NAME1");
                            detallerend.MONTO_EFEC   = lt_DETALLE_REND.GetString("MONTO_EFEC");
                            MontoEfect               = MontoEfect + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_EFEC"));
                            detallerend.NUM_CHEQUE   = lt_DETALLE_REND.GetString("NUM_CHEQUE");
                            detallerend.MONTO_DIA    = lt_DETALLE_REND.GetString("MONTO_DIA");
                            MontoChqDia              = MontoChqDia + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_DIA"));
                            detallerend.MONTO_FECHA  = lt_DETALLE_REND.GetString("MONTO_FECHA");
                            MontoChqFech             = MontoChqFech + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_FECHA"));
                            detallerend.MONTO_TRANSF = lt_DETALLE_REND.GetString("MONTO_TRANSF");
                            MontoTransf              = MontoTransf + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_TRANSF"));
                            detallerend.MONTO_VALE_V = lt_DETALLE_REND.GetString("MONTO_VALE_V");
                            MontoValeV               = MontoValeV + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_VALE_V"));
                            detallerend.MONTO_DEP    = lt_DETALLE_REND.GetString("MONTO_DEP");
                            MontoDepot               = MontoDepot + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_DEP"));
                            detallerend.MONTO_TARJ   = lt_DETALLE_REND.GetString("MONTO_TARJ");
                            MontoTarj = MontoTarj + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_TARJ"));
                            detallerend.MONTO_FINANC = lt_DETALLE_REND.GetString("MONTO_FINANC");
                            MontoFinanc           = MontoFinanc + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_FINANC"));
                            detallerend.MONTO_APP = lt_DETALLE_REND.GetString("MONTO_APP");
                            MontoApp = MontoApp + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_APP"));
                            detallerend.MONTO_CREDITO = lt_DETALLE_REND.GetString("MONTO_CREDITO");
                            MontoCredit               = MontoCredit + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_CREDITO"));
                            detallerend.PATENTE       = lt_DETALLE_REND.GetString("PATENTE");
                            detallerend.MONTO_C_CURSE = lt_DETALLE_REND.GetString("MONTO_C_CURSE");
                            MontoCCurse               = MontoCCurse + Convert.ToDouble(lt_DETALLE_REND.GetString("MONTO_C_CURSE"));
                            detallerend.DOC_SAP       = lt_DETALLE_REND.GetString("DOC_SAP");
                            detalle_rend.Add(detallerend);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    MontoIngresos = MontoIngresos + MontoEfect + MontoChqDia + MontoChqFech + MontoTransf + MontoValeV +
                                    MontoDepot + MontoTarj + MontoFinanc + MontoApp + MontoCredit + MontoCCurse;
                    SaldoTotal = MontoIngresos - MontoEgresos;


                    lt_RESUMEN_VP = BapiGetUser.GetTable("RESUMEN_VP");
                    try
                    {
                        for (int i = 0; i < lt_RESUMEN_VP.Count(); i++)
                        {
                            lt_RESUMEN_VP.CurrentIndex = i;
                            resumenvp              = new RESUMEN_VP();
                            resumenvp.LAND         = lt_RESUMEN_VP.GetString("LAND");
                            resumenvp.ID_CAJA      = lt_RESUMEN_VP.GetString("ID_CAJA");
                            resumenvp.SOCIEDAD     = lt_RESUMEN_VP.GetString("SOCIEDAD");
                            resumenvp.SOCIEDAD_TXT = lt_RESUMEN_VP.GetString("SOCIEDAD_TXT");
                            resumenvp.VIA_PAGO     = lt_RESUMEN_VP.GetString("VIA_PAGO");
                            resumenvp.TEXT1        = lt_RESUMEN_VP.GetString("TEXT1");
                            resumenvp.MONEDA       = lt_RESUMEN_VP.GetString("MONEDA");
                            resumenvp.MONTO        = lt_RESUMEN_VP.GetString("MONTO");
                            resumenvp.CANT_DOCS    = lt_RESUMEN_VP.GetString("CANT_DOCS");
                            resumen_viapago.Add(resumenvp);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    //lt_CAB_ARQUEO = BapiGetUser.GetTable("DET_EFECTIVO");
                    //try
                    //{
                    //    for (int i = 0; i < lt_CAB_ARQUEO.Count(); i++)
                    //    {
                    //        lt_CAB_ARQUEO.CurrentIndex = i;
                    //        cabarqueo = new CAB_ARQUEO();
                    //        cabarqueo.MANDT = lt_CAB_ARQUEO.GetString("MANDT");
                    //        cabarqueo.LAND = lt_CAB_ARQUEO.GetString("LAND");
                    //        cabarqueo.ID_ARQUEO = lt_CAB_ARQUEO.GetString("ID_ARQUEO");
                    //        cabarqueo.ID_REGISTRO = lt_CAB_ARQUEO.GetString("ID_DENOMINACION");
                    //        cabarqueo.ID_CAJA = lt_CAB_ARQUEO.GetString("CANTIDAD");
                    //        cabarqueo.MONTO_CIERRE = lt_CAB_ARQUEO.GetString("MONTO_TOTAL");
                    //        cabarqueo.MONTO_DIF = lt_CAB_ARQUEO.GetString("ID_DENOMINACION");
                    //        cabarqueo.COMENTARIO_DIF = lt_CAB_ARQUEO.GetString("CANTIDAD");
                    //        cabarqueo.NULO = lt_CAB_ARQUEO.GetString("MONTO_TOTAL");
                    //        cab_arqueo.Add(cabarqueo);
                    //    }
                    //}
                    //catch (Exception ex)
                    //{
                    //    Console.WriteLine(ex.Message, ex.StackTrace);
                    //    MessageBox.Show(ex.Message + ex.StackTrace);
                    //}

                    //lt_DET_ARQUEO = BapiGetUser.GetTable("DET_ARQUEO");
                    //try
                    //{
                    //    for (int i = 0; i < lt_DET_ARQUEO.Count(); i++)
                    //    {
                    //        lt_DET_ARQUEO.CurrentIndex = i;
                    //        detarqueo = new DET_ARQUEO();
                    //        detarqueo.MANDT = lt_DET_ARQUEO.GetString("MANDT");
                    //        detarqueo.LAND = lt_DET_ARQUEO.GetString("LAND");
                    //        detarqueo.ID_ARQUEO = lt_DET_ARQUEO.GetString("ID_ARQUEO");
                    //        detarqueo.ID_DENOMINACION = lt_DET_ARQUEO.GetString("ID_DENOMINACION");
                    //        detarqueo.CANTIDAD = lt_DET_ARQUEO.GetString("CANTIDAD");
                    //        detarqueo.MONTO_TOTAL = lt_DET_ARQUEO.GetString("MONTO_TOTAL");
                    //        det_arqueo.Add(detarqueo);
                    //    }
                    //}
                    //catch (Exception ex)
                    //{
                    //    Console.WriteLine(ex.Message, ex.StackTrace);
                    //    MessageBox.Show(ex.Message + ex.StackTrace);
                    //}

                    lt_DET_ARQUEO = BapiGetUser.GetTable("DETALLE_ARQUEO");
                    try
                    {
                        for (int i = 0; i < lt_DETALLE_REND.Count(); i++)
                        {
                            lt_DET_ARQUEO.CurrentIndex = i;
                            detarqueo               = new DETALLE_ARQUEO();
                            detarqueo.LAND          = lt_DET_ARQUEO.GetString("LAND");
                            detarqueo.ID_CAJA       = lt_DET_ARQUEO.GetString("ID_CAJA");
                            detarqueo.USUARIO       = lt_DET_ARQUEO.GetString("USUARIO");
                            detarqueo.SOCIEDAD      = lt_DET_ARQUEO.GetString("SOCIEDAD");
                            detarqueo.HORA_REND     = lt_DET_ARQUEO.GetString("HORA_REND");
                            detarqueo.FECHA_REND    = lt_DET_ARQUEO.GetString("FECHA_REND");
                            detarqueo.MONEDA        = lt_DET_ARQUEO.GetString("MONEDA");
                            detarqueo.VIA_PAGO      = lt_DET_ARQUEO.GetString("VIA_PAGO");
                            detarqueo.TIPO_MONEDA   = lt_DET_ARQUEO.GetString("TIPO_MONEDA");
                            detarqueo.CANTIDAD_MON  = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                            detarqueo.SUMA_MON_BILL = lt_DET_ARQUEO.GetString("SUMA_MON_BILL");
                            detarqueo.CANTIDAD_DOC  = lt_DET_ARQUEO.GetString("CANTIDAD_DOC");
                            detarqueo.SUMA_DOCS     = lt_DET_ARQUEO.GetString("MONTO_DSUMA_DOCSEP");
                            det_arqueo.Add(detarqueo);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_DET_EFECTIVO = BapiGetUser.GetTable("DET_EFECTIVO");
                    try
                    {
                        for (int i = 0; i < lt_DET_EFECTIVO.Count(); i++)
                        {
                            lt_DET_ARQUEO.CurrentIndex = i;
                            detefectivo                 = new DET_EFECTIVO();
                            detefectivo.MANDT           = lt_DET_EFECTIVO.GetString("MANDT");
                            detefectivo.LAND            = lt_DET_EFECTIVO.GetString("LAND");
                            detefectivo.ID_ARQUEO       = lt_DET_EFECTIVO.GetString("ID_ARQUEO");
                            detefectivo.ID_DENOMINACION = lt_DET_EFECTIVO.GetString("ID_DENOMINACION");
                            detefectivo.CANTIDAD        = lt_DET_EFECTIVO.GetString("CANTIDAD");
                            detefectivo.MONTO_TOTAL     = lt_DET_EFECTIVO.GetString("MONTO_TOTAL");
                            det_efectivo.Add(detefectivo);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }


                    ls_RETORNO = BapiGetUser.GetTable("ESTATUS");
                    try
                    {
                        for (int i = 0; i < ls_RETORNO.Count(); i++)
                        {
                            ls_RETORNO.CurrentIndex = i;
                            retorno = new ESTATUS();
                            if (ls_RETORNO.GetString("TYPE") == "S")
                            {
                                message = message + " - " + ls_RETORNO.GetString("MESSAGE");
                                //numerocierre = ls_RETORNO.GetString("MESSAGE_V4");
                            }
                            if (ls_RETORNO.GetString("TYPE") == "E")
                            {
                                errormessage = errormessage + " - " + ls_RETORNO.GetString("MESSAGE");
                            }
                            retorno.TYPE       = ls_RETORNO.GetString("TYPE");
                            retorno.ID         = ls_RETORNO.GetString("ID");
                            retorno.NUMBER     = ls_RETORNO.GetString("NUMBER");
                            retorno.MESSAGE    = ls_RETORNO.GetString("MESSAGE");
                            retorno.LOG_NO     = ls_RETORNO.GetString("LOG_NO");
                            retorno.LOG_MSG_NO = ls_RETORNO.GetString("LOG_MSG_NO");
                            retorno.MESSAGE_V1 = ls_RETORNO.GetString("MESSAGE_V1");
                            retorno.MESSAGE_V2 = ls_RETORNO.GetString("MESSAGE_V2");
                            retorno.MESSAGE_V3 = ls_RETORNO.GetString("MESSAGE_V3");
                            if (ls_RETORNO.GetString("MESSAGE_V4") != "")
                            {
                                // comprobante = ls_RETORNO.GetString("MESSAGE_V4");
                            }
                            retorno.MESSAGE_V4 = ls_RETORNO.GetString("MESSAGE_V4");
                            retorno.PARAMETER  = ls_RETORNO.GetString("PARAMETER");
                            retorno.ROW        = ls_RETORNO.GetString("ROW");
                            retorno.FIELD      = ls_RETORNO.GetString("FIELD");
                            retorno.SYSTEM     = ls_RETORNO.GetString("SYSTEM");
                            T_Retorno.Add(retorno);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                }
                else
                {
                    errormessage = retval;
                    MessageBox.Show("No se pudo conectar a la RFC");
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, ex.StackTrace);
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
示例#22
0
        public static void ZRFC_SRM_PO_DATA(RfcServerContext context, IRfcFunction function)
        {
            String im = function.GetString("IM_PO");
            IRfcTable ITAB_PO = function.GetTable("ITAB_PO");

            DataTable dt = GetDataTableFromRfcTable(ITAB_PO);
        }
示例#23
0
        /// <summary>
        /// Notify SAP which output parameters are required i.e. SAP will only respond with the data that has been requested
        /// </summary>
        /// <param name="function"></param>
        /// <param name="meta"></param>
        /// <param name="rfc"></param>
        private void PrepareOutputParameters(SAPFunction function, RfcFunctionMetadata meta, IRfcFunction rfc)
        {
            foreach (var iout in function.OutputParameters)
            {
                String paramName = iout;
                String secondLevelStructure = string.Empty;
                int index = -1;

                string[] paramDetail = paramName.Split(':');
                if (paramDetail.Length == 1)
                {
                    index = meta.TryNameToIndex(paramName);
                }
                else if (paramDetail.Length == 2)
                {
                    secondLevelStructure = paramDetail[0];
                    paramName = paramDetail[1];
                    index = meta.TryNameToIndex(secondLevelStructure);
                }

                if (index != -1)
                {
                    RfcElementMetadata elementMeta = rfc.GetElementMetadata(index);
                    RfcDataType type = elementMeta.DataType;
                    String dataType = type.ToString();
                    function.DataType.Add(paramName + ":" + secondLevelStructure, ConvertDataType(type));

                    IRfcDataContainer container = null;
                    if (dataType.Equals(SAPFunction.STRUCTURE))
                    {
                        RfcStructureMetadata structureMeta = elementMeta.ValueMetadataAsStructureMetadata;
                        container = rfc.GetStructure(secondLevelStructure);
                    }
                    else if (dataType.Equals(SAPFunction.TABLE))
                    {
                        RfcTableMetadata tableMeta = elementMeta.ValueMetadataAsTableMetadata;
                        container = rfc.GetTable(secondLevelStructure);

                        if (tableMeta.Name.Equals(String.Empty))
                        {
                            String lineType = tableMeta.LineType.ContainerType.ToString();
                            if (lineType.Equals("STRUCTURE"))
                            {
                                container = tableMeta.LineType.CreateStructure();
                            }
                        }
                    }
                    else
                    {
                        rfc.GetString(secondLevelStructure);
                    }
                }
            }
        }
示例#24
0
            // SD08 - Inteface de Pedido - Comunicação
            // funcao - ZFXI_SD08C
            //[RfcServerFunction(Name = "ZFXI_SD08C")]
            public static void StfcInterfacePedido(RfcServerContext context, IRfcFunction function)
            {
                // Exibe no console a interface que será executada
                Console.WriteLine("Received function call {0} from system {1}.", function.Metadata.Name, context.SystemAttributes.SystemID);

                Char teste = function.GetChar("E_STATUS");

                string status = function.GetString("E_STATUS");

                // Implementa repositorio antes do Foreach para evitar duplicações
                PedidoVendaRepository pedidoVendaRepository = new PedidoVendaRepository();
                PedidoVenda pedidoCabecalho = new PedidoVenda();
                PedidoVendaLinhaRepository pedidoVendaLinhaRepository = new PedidoVendaLinhaRepository();
                PedidoVendaLinha pedidoLinha = new PedidoVendaLinha();

                // ZSTSD011
                IRfcTable it_pedidoLinhas = function.GetTable("TE_ITEM");

                // Implementa Repositorio Rfc de resposta
                RfcRepository rep = context.Repository;

                // RETORNO
                RfcStructureMetadata bapiret2 = rep.GetStructureMetadata("BAPIRET2");
                IRfcStructure linha_retorno = bapiret2.CreateStructure();

                if (status != "")
                {
                    //
                    // PEDIDO LINHAS
                    //

                    int v_cont = 0;
                    foreach (IRfcStructure row in it_pedidoLinhas)
                    {
                        pedidoLinha.Id_cotacao = row.GetString("COTACAO");
                        pedidoLinha.Id_item = row.GetString("POSNR");
                        pedidoLinha.MotivoDeRecusa = row.GetString("ABGRU");

                        // Atualiza o Status do Cabecalho do Pedido
                        v_cont = v_cont + 1;
                        try
                        {
                            // Obtem a Linha do Pedido que será atualizada
                            IList<PedidoVenda> fromCabecalho = pedidoVendaRepository.ObterRegistrosUmCampo("Id_cotacao", pedidoLinha.Id_cotacao);
                            // Atualiza o status da Linha

                            foreach (PedidoVenda dados in fromCabecalho)
                            {
                                dados.Status = Convert.ToString(function.GetChar("E_STATUS"));
                                pedidoVendaRepository.Alterar(dados);
                            }
                        }
                        catch (Exception ex)
                        {
                            // Em caso de erro retorna o erro
                            Console.Write("Erro ao Atualizar o Status do Cabecalho do Pedido: " + ex);
                            IRfcTable retorno = function.GetTable("TI_RETURN");
                            linha_retorno.SetValue("TYPE", "E");
                            linha_retorno.SetValue("MESSAGE", ex.Message);
                            linha_retorno.SetValue("MESSAGE", "Erro ao Atualizar o Status do Cabecalho do Pedido: " + pedidoLinha.Id_cotacao);
                            retorno.Insert(linha_retorno);
                        }

                        //Atualiza o Status e o Motivo Recusa da Linha do Pedido
                        try
                        {
                            // Obtem a Linha do Pedido que será atualizada
                            IList<PedidoVendaLinha> fromLinha = pedidoVendaLinhaRepository.ObterRegistrosDoisCampos("Id_cotacao", pedidoLinha.Id_cotacao, "Id_item", pedidoLinha.Id_item);

                            // Atualiza o status da Linha
                            foreach (PedidoVendaLinha dados in fromLinha)
                            {
                                //dados.Status = pedidoLinha.Status;
                                if (pedidoLinha.MotivoDeRecusa != "")
                                {
                                    dados.MotivoDeRecusa = pedidoLinha.MotivoDeRecusa;
                                }
                                else
                                {
                                    dados.MotivoDeRecusa = null;
                                }
                                pedidoVendaLinhaRepository.Alterar(dados);
                            }
                        }
                        catch (Exception ex)
                        {
                            // Em caso de erro retorna o erro
                            Console.Write("Erro ao atualizar o Status da Linha do Pedido: " + ex);
                            IRfcTable retorno = function.GetTable("TI_RETURN");
                            linha_retorno.SetValue("TYPE", "E");
                            linha_retorno.SetValue("MESSAGE", ex.Message);
                            linha_retorno.SetValue("MESSAGE", "Erro ao Atualizar o Status da Linha do Pedido: " + pedidoLinha.Id_cotacao + " - Na linha: " + pedidoLinha.Id_item);
                            retorno.Insert(linha_retorno);
                        }
                    }

                    IRfcTable retornoSucesso = function.GetTable("TI_RETURN");
                    linha_retorno.SetValue("TYPE", "S");
                    linha_retorno.SetValue("MESSAGE", "Registros atualizados com Sucesso Pedido Vendas: " + v_cont);
                    retornoSucesso.Insert(linha_retorno);
                    // FIM PEDIDO LINHAS
                }
                else
                {
                    IRfcTable retornoErro = function.GetTable("TI_RETURN");
                    linha_retorno.SetValue("TYPE", "E");
                    linha_retorno.SetValue("MESSAGE", "Status recebido inválido");
                    retornoErro.Insert(linha_retorno);
                    return;
                }
            }
示例#25
0
        public void rendicioncaja(string P_UNAME, string P_PASSWORD, string P_IDSISTEMA, string P_INSTANCIA, string P_MANDANTE, string P_SAPROUTER, string P_SERVER, string P_IDIOMA, string P_ID_CAJA, string P_DATUMDESDE, string P_DATUMHASTA, string P_USUARIO
                                  , string P_PAIS, string P_SOCIEDAD, string P_ID_APERTURA, string P_ID_CIERRE, string P_IND_ARQUEO, string P_MONEDA)
        {
            try
            {
                ESTATUS        retorno;
                DETALLE_VP     detallevp;
                RESUMEN_VP     resumenvp;
                DETALLE_REND   detallerend;
                DETALLE_ARQUEO detallearqueo;
                INFO_SOCI      InfoSociedad;

                T_Retorno.Clear();
                detalle_rend.Clear();
                detalle_arqueo.Clear();
                detalle_viapago.Clear();
                resumen_viapago.Clear();
                errormessage     = "";
                message          = "";
                IdCaja           = "";
                FechArqueo       = "";
                FechaArqueoHasta = "";
                CajeroResp       = "";
                Sucursal         = "";
                Sociedad         = "";
                NombreCaja       = "";
                MontoIngresos    = 0;
                MontoEfect       = 0;
                MontoChqDia      = 0;
                MontoChqFech     = 0;
                MontoTransf      = 0;
                MontoValeV       = 0;
                MontoDepot       = 0;
                MontoTarj        = 0;
                MontoFinanc      = 0;
                MontoApp         = 0;
                MontoCredit      = 0;
                MontoEgresos     = 0;
                MontoFondosFijos = 0;
                SaldoTotal       = 0;
                IRfcStructure ls_RETORNO;
                IRfcTable     lt_DETALLE_VP;
                IRfcTable     lt_RESUMEN_VP;
                IRfcTable     lt_DETALLE_REND;
                IRfcTable     lt_DET_ARQUEO;
                IRfcTable     lt_INFO_SOCI;

                //Conexion a SAP
                connectorSap.idioma    = P_IDIOMA;
                connectorSap.idSistema = P_IDSISTEMA;
                connectorSap.instancia = P_INSTANCIA;
                connectorSap.mandante  = P_MANDANTE;
                connectorSap.paswr     = P_PASSWORD;
                connectorSap.sapRouter = P_SAPROUTER;
                connectorSap.user      = P_UNAME;
                connectorSap.server    = P_SERVER;

                string retval = connectorSap.connectionsSAP();
                //Si el valor de retorno es nulo o vacio, hay conexion a SAP y la RFC trae datos
                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_REP_REN_CAJA");

                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                    BapiGetUser.SetValue("USUARIO", P_USUARIO);
                    BapiGetUser.SetValue("ID_CIERRE", P_ID_CIERRE);
                    BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA);
                    BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD);
                    BapiGetUser.SetValue("IND_ARQUEO", P_IND_ARQUEO);
                    BapiGetUser.SetValue("LAND", P_PAIS);

                    BapiGetUser.Invoke(SapRfcDestination);

                    BapiGetUser.GetString("ID_CAJA_OUT");
                    FechArqueo       = BapiGetUser.GetString("DATE_ARQ_OUT");
                    FechaArqueoHasta = BapiGetUser.GetString("DATE_ARQ_TO_OUT");
                    CajeroResp       = BapiGetUser.GetString("CAJERO_RESP_OUT");
                    Sucursal         = BapiGetUser.GetString("SUCURSAL");
                    NombreCaja       = BapiGetUser.GetString("NOM_CAJA");
                    Sociedad         = BapiGetUser.GetString("SOCIEDAD_OUT");
                    id_arqueo        = BapiGetUser.GetString("ID_ARQUEO");
                    id_cierre        = BapiGetUser.GetString("ID_CIERRE_OUT");
                    lt_DETALLE_VP    = BapiGetUser.GetTable("DETALLE_VP");
                    lt_INFO_SOCI     = BapiGetUser.GetTable("INFO_SOCI");
                    try
                    {
                        for (int i = 0; i < lt_INFO_SOCI.Count(); i++)
                        {
                            lt_INFO_SOCI.CurrentIndex = i;
                            InfoSociedad       = new INFO_SOCI();
                            InfoSociedad.BUKRS = lt_INFO_SOCI.GetString("BUKRS");
                            InfoSociedad.BUTXT = lt_INFO_SOCI.GetString("BUTXT");
                            InfoSociedad.STCD1 = lt_INFO_SOCI.GetString("STCD1");
                            ObjInfoSoc.Add(InfoSociedad);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                    try
                    {
                        for (int i = 0; i < lt_DETALLE_VP.Count(); i++)
                        {
                            lt_DETALLE_VP.CurrentIndex = i;
                            detallevp                = new DETALLE_VP();
                            detallevp.SOCIEDAD       = lt_DETALLE_VP.GetString("SOCIEDAD");
                            detallevp.SOCIEDAD_TXT   = lt_DETALLE_VP.GetString("SOCIEDAD_TXT");
                            detallevp.ID_COMPROBANTE = lt_DETALLE_VP.GetString("ID_COMPROBANTE");
                            detallevp.ID_DETALLE     = lt_DETALLE_VP.GetString("ID_DETALLE");
                            detallevp.VIA_PAGO       = lt_DETALLE_VP.GetString("VIA_PAGO");
                            FormatoMonedas FM = new FormatoMonedas();
                            if (lt_DETALLE_VP[i].GetString("MONEDA") == "CLP")
                            {
                                string Formateo = FM.FormatoMonedaChilena(lt_DETALLE_VP[i].GetString("MONTO").Trim(), "2");
                                detallevp.MONTO = Formateo;
                            }
                            else
                            {
                                string Formateo = FM.FormatoMonedaExtranjera(lt_DETALLE_VP[i].GetString("MONTO").Trim());
                                detallevp.MONTO = Formateo;
                            }
                            detallevp.MONTO            = lt_DETALLE_VP.GetString("MONTO");
                            detallevp.MONEDA           = lt_DETALLE_VP.GetString("MONEDA");
                            detallevp.BANCO            = lt_DETALLE_VP.GetString("BANCO");
                            detallevp.BANCO_TXT        = lt_DETALLE_VP.GetString("BANCO_TXT");
                            detallevp.EMISOR           = lt_DETALLE_VP.GetString("EMISOR");
                            detallevp.NUM_CHEQUE       = lt_DETALLE_VP.GetString("NUM_CHEQUE");
                            detallevp.COD_AUTORIZACION = lt_DETALLE_VP.GetString("COD_AUTORIZACION");
                            detallevp.CLIENTE          = lt_DETALLE_VP.GetString("CLIENTE");
                            detallevp.NRO_DOCUMENTO    = lt_DETALLE_VP.GetString("NRO_DOCUMENTO");
                            detallevp.NUM_CUOTAS       = lt_DETALLE_VP.GetString("NUM_CUOTAS");
                            detallevp.FECHA_VENC       = lt_DETALLE_VP.GetString("FECHA_VENC");
                            detallevp.FECHA_EMISION    = lt_DETALLE_VP.GetString("FECHA_EMISION");
                            detallevp.NOTA_VENTA       = lt_DETALLE_VP.GetString("NOTA_VENTA");
                            detallevp.TEXTO_POSICION   = lt_DETALLE_VP.GetString("TEXTO_POSICION");
                            detallevp.NULO             = lt_DETALLE_VP.GetString("NULO");
                            detallevp.NRO_REFERENCIA   = lt_DETALLE_VP.GetString("NRO_REFERENCIA");
                            detallevp.TIPO_DOCUMENTO   = lt_DETALLE_VP.GetString("TIPO_DOCUMENTO");
                            detalle_viapago.Add(detallevp);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_RESUMEN_VP = BapiGetUser.GetTable("RESUMEN_VP");
                    try
                    {
                        for (int i = 0; i < lt_RESUMEN_VP.Count(); i++)
                        {
                            lt_RESUMEN_VP.CurrentIndex = i;
                            resumenvp              = new RESUMEN_VP();
                            resumenvp.LAND         = lt_RESUMEN_VP.GetString("LAND");
                            resumenvp.ID_CAJA      = lt_RESUMEN_VP.GetString("ID_CAJA");
                            resumenvp.SOCIEDAD     = lt_RESUMEN_VP.GetString("SOCIEDAD");
                            resumenvp.SOCIEDAD_TXT = lt_RESUMEN_VP.GetString("SOCIEDAD_TXT");
                            resumenvp.VIA_PAGO     = lt_RESUMEN_VP.GetString("VIA_PAGO");

                            //string Valor = lt_RESUMEN_VP[i].GetString("MONTO_EFEC").Trim();
                            ////if (lt_RESUMEN_VP.GetString("VIA_PAGO") == "0" || lt_RESUMEN_VP.GetString("VIA_PAGO") == "N")
                            ////{
                            ////    MontoEgresos = MontoEgresos + Convert.ToDouble(lt_RESUMEN_VP.GetString("MONTO"));
                            ////}
                            resumenvp.TEXT1  = lt_RESUMEN_VP.GetString("TEXT1");
                            resumenvp.MONEDA = lt_RESUMEN_VP.GetString("MONEDA");
                            FormatoMonedas FM = new FormatoMonedas();
                            if (lt_RESUMEN_VP[i].GetString("MONEDA") == "CLP")
                            {
                                resumenvp.MONTO = FM.FormatoMonedaChilena(lt_RESUMEN_VP[i].GetString("MONTO"), "1");
                            }
                            else
                            {
                                resumenvp.MONTO = FM.FormatoMonedaExtranjera(lt_RESUMEN_VP[i].GetString("MONTO"));
                            }
                            resumenvp.MONTO     = lt_RESUMEN_VP.GetString("MONTO");
                            resumenvp.CANT_DOCS = lt_RESUMEN_VP.GetString("CANT_DOCS");
                            resumen_viapago.Add(resumenvp);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    lt_DETALLE_REND = BapiGetUser.GetTable("DETALLE_REND");
                    try
                    {
                        for (int i = 0; i < lt_DETALLE_REND.Count(); i++)
                        {
                            lt_DETALLE_REND.CurrentIndex = i;
                            detallerend          = new DETALLE_REND();
                            detallerend.N_VENTA  = lt_DETALLE_REND.GetString("N_VENTA");
                            detallerend.FEC_EMI  = lt_DETALLE_REND.GetString("FEC_EMI");
                            detallerend.FEC_VENC = lt_DETALLE_REND.GetString("FEC_VENC");
                            detallerend.MONEDA   = lt_DETALLE_REND.GetString("MONEDA");
                            detallerend.VIA_PAGO = lt_DETALLE_REND.GetString("VIA_PAGO");

                            FormatoMonedas FM = new FormatoMonedas();
                            if (detallerend.MONEDA == P_MONEDA)
                            {
                                detallerend.MONTO = FM.FormatoMonedaChilena(lt_DETALLE_REND[i].GetString("MONTO"), "2");
                            }
                            else
                            {
                                detallerend.MONTO = FM.FormatoMonedaExtranjera(lt_DETALLE_REND[i].GetString("MONTO"));
                            }
                            detallerend.NAME1 = lt_DETALLE_REND.GetString("NAME1");
                            if (detallerend.MONEDA == P_MONEDA)
                            {
                                MontoEfect             = MontoEfect + Convert.ToDouble(FM.FormatoMonedaChilena(lt_DETALLE_REND[i].GetString("MONTO_EFEC"), "2"));
                                detallerend.MONTO_EFEC = FM.FormatoMonedaChilena(lt_DETALLE_REND[i].GetString("MONTO_EFEC"), "2");
                                string Valor = lt_DETALLE_REND[i].GetString("MONTO_EFEC").Trim();

                                if (Valor.Contains("-"))
                                {
                                    MontoEgresos = MontoEgresos + Convert.ToDouble(lt_DETALLE_REND[i].GetString("MONTO_EFEC"));
                                }
                            }
                            else
                            {
                                detallerend.MONTO_EFEC = FM.FormatoMonedaExtranjera(lt_DETALLE_REND[i].GetString("MONTO_EFEC"));
                            }
                            detallerend.NUM_CHEQUE = lt_DETALLE_REND.GetString("NUM_CHEQUE");
                            if (detallerend.MONEDA == P_MONEDA)
                            {
                                detallerend.MONTO_DIA = FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_DIA"), "2");
                                MontoChqDia           = MontoChqDia + Convert.ToDouble(FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_DIA"), "2"));
                            }
                            else
                            {
                                detallerend.MONTO_DIA = FM.FormatoMonedaExtranjera(lt_DETALLE_REND[i].GetString("MONTO_DIA"));
                                MontoChqDia           = MontoChqDia + Convert.ToDouble(detallerend.MONTO_DIA);
                            }
                            if (detallerend.MONEDA == P_MONEDA)
                            {
                                MontoChqFech            = MontoChqFech + Convert.ToDouble(FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_FECHA"), "2"));
                                detallerend.MONTO_FECHA = FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_FECHA"), "2");
                            }
                            else
                            {
                                detallerend.MONTO_FECHA = FM.FormatoMonedaExtranjera(lt_DETALLE_REND[i].GetString("MONTO_FECHA"));
                                MontoChqFech            = MontoChqFech + Convert.ToDouble(detallerend.MONTO_FECHA);
                            }
                            if (detallerend.MONEDA == P_MONEDA)
                            {
                                detallerend.MONTO_TRANSF = FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_TRANSF"), "2");
                                MontoTransf = MontoTransf + Convert.ToDouble(FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_TRANSF"), "2"));
                            }
                            else
                            {
                                detallerend.MONTO_TRANSF = FM.FormatoMonedaExtranjera(lt_DETALLE_REND[i].GetString("MONTO_TRANSF"));
                                MontoTransf = MontoTransf + Convert.ToDouble(detallerend.MONTO_TRANSF);
                            }
                            if (detallerend.MONEDA == P_MONEDA)
                            {
                                detallerend.MONTO_VALE_V = FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_VALE_V"), "2");
                                MontoValeV = MontoValeV + Convert.ToDouble(detallerend.MONTO_VALE_V);
                            }
                            else
                            {
                                detallerend.MONTO_VALE_V = FM.FormatoMonedaExtranjera(lt_DETALLE_REND[i].GetString("MONTO_VALE_V"));
                                MontoValeV = MontoValeV + Convert.ToDouble(detallerend.MONTO_VALE_V);
                            }
                            if (detallerend.MONEDA == P_MONEDA)
                            {
                                detallerend.MONTO_DEP = FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_DEP"), "2");
                                MontoDepot            = MontoDepot + Convert.ToDouble(detallerend.MONTO_DEP);
                            }
                            else
                            {
                                detallerend.MONTO_DEP = FM.FormatoMonedaExtranjera(lt_DETALLE_REND[i].GetString("MONTO_DEP"));
                                MontoDepot            = MontoDepot + Convert.ToDouble(detallerend.MONTO_DEP);
                            }
                            if (detallerend.MONEDA == P_MONEDA)
                            {
                                detallerend.MONTO_TARJ = FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_TARJ"), "2");
                                MontoTarj = MontoTarj + Convert.ToDouble(detallerend.MONTO_TARJ);
                            }
                            else
                            {
                                detallerend.MONTO_TARJ = FM.FormatoMonedaExtranjera(lt_DETALLE_REND[i].GetString("MONTO_TARJ"));
                                MontoTarj = MontoTarj + Convert.ToDouble(detallerend.MONTO_TARJ);
                            }
                            if (detallerend.MONEDA == P_MONEDA)
                            {
                                detallerend.MONTO_FINANC = FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_FINANC"), "2");
                                MontoFinanc = MontoFinanc + Convert.ToDouble(detallerend.MONTO_FINANC);
                            }
                            else
                            {
                                detallerend.MONTO_FINANC = FM.FormatoMonedaExtranjera(lt_DETALLE_REND[i].GetString("MONTO_FINANC"));
                                MontoFinanc = MontoFinanc + Convert.ToDouble(detallerend.MONTO_FINANC);
                            }
                            if (detallerend.MONEDA == P_MONEDA)
                            {
                                detallerend.MONTO_APP = FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_APP"), "2");
                                MontoApp = MontoApp + Convert.ToDouble(detallerend.MONTO_APP);
                            }
                            else
                            {
                                detallerend.MONTO_APP = FM.FormatoMonedaExtranjera(lt_DETALLE_REND[i].GetString("MONTO_APP"));
                                MontoApp = MontoApp + Convert.ToDouble(detallerend.MONTO_APP);
                            }
                            if (detallerend.MONEDA == P_MONEDA)
                            {
                                detallerend.MONTO_CREDITO = FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_CREDITO"), "2");
                                MontoCredit = MontoCredit + Convert.ToDouble(detallerend.MONTO_CREDITO);
                            }
                            else
                            {
                                detallerend.MONTO_CREDITO = FM.FormatoMonedaExtranjera(lt_DETALLE_REND[i].GetString("MONTO_CREDITO"));
                                MontoCredit = MontoCredit + Convert.ToDouble(detallerend.MONTO_CREDITO);
                            }
                            detallerend.PATENTE = lt_DETALLE_REND.GetString("PATENTE");
                            if (detallerend.MONEDA == P_MONEDA)
                            {
                                detallerend.MONTO_C_CURSE = FM.FormatoMonedaChilena(lt_DETALLE_REND.GetString("MONTO_C_CURSE"), "2");
                                MontoCCurse = MontoCCurse + Convert.ToDouble(detallerend.MONTO_C_CURSE);
                            }
                            else
                            {
                                detallerend.MONTO_C_CURSE = FM.FormatoMonedaExtranjera(lt_DETALLE_REND[i].GetString("MONTO_C_CURSE"));
                                MontoCCurse = MontoCCurse + Convert.ToDouble(detallerend.MONTO_C_CURSE);
                            }
                            detallerend.DOC_SAP = lt_DETALLE_REND.GetString("DOC_SAP");
                            detalle_rend.Add(detallerend);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    MontoIngresos = MontoIngresos + MontoEfect + MontoChqDia + MontoChqFech + MontoTransf + MontoValeV +
                                    MontoDepot + MontoTarj + MontoFinanc + MontoApp + MontoCredit + MontoCCurse;
                    SaldoTotal = MontoIngresos; // +MontoEgresos;

                    lt_DET_ARQUEO = BapiGetUser.GetTable("DETALLE_ARQUEO");
                    try
                    {
                        for (int i = 0; i < lt_DET_ARQUEO.Count(); i++)
                        {
                            lt_DET_ARQUEO.CurrentIndex = i;
                            detallearqueo              = new DETALLE_ARQUEO();
                            detallearqueo.LAND         = lt_DET_ARQUEO.GetString("LAND");
                            detallearqueo.ID_CAJA      = lt_DET_ARQUEO.GetString("ID_CAJA");
                            detallearqueo.USUARIO      = lt_DET_ARQUEO.GetString("USUARIO");
                            detallearqueo.SOCIEDAD     = lt_DET_ARQUEO.GetString("SOCIEDAD");
                            detallearqueo.FECHA_REND   = lt_DET_ARQUEO.GetString("FECHA_REND");
                            detallearqueo.HORA_REND    = lt_DET_ARQUEO.GetString("HORA_REND");
                            detallearqueo.MONEDA       = lt_DET_ARQUEO.GetString("MONEDA");
                            detallearqueo.VIA_PAGO     = lt_DET_ARQUEO.GetString("VIA_PAGO");
                            detallearqueo.TIPO_MONEDA  = lt_DET_ARQUEO.GetString("TIPO_MONEDA");
                            detallearqueo.CANTIDAD_MON = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                            //*
                            if (lt_DET_ARQUEO[i].GetString("MONEDA") == P_MONEDA)
                            {
                                string Valor = lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL").Trim();
                                if (Valor.Contains("-"))
                                {
                                    Valor = "-" + Valor.Replace("-", "");
                                }
                                Valor = Valor.Replace(".", "");
                                Valor = Valor.Replace(",", "");
                                decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                detallearqueo.SUMA_MON_BILL = Cualquiernombre;
                            }
                            else
                            {
                                string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL"));
                                decimal ValorAux = Convert.ToDecimal(moneda);
                                detallearqueo.SUMA_MON_BILL = string.Format("{0:0,0.##}", ValorAux);
                            }
                            if (lt_DET_ARQUEO[i].GetString("MONEDA") == P_MONEDA)
                            {
                                string Valor = lt_DET_ARQUEO[i].GetString("SUMA_DOCS").Trim();
                                if (Valor.Contains("-"))
                                {
                                    Valor = "-" + Valor.Replace("-", "");
                                }
                                Valor = Valor.Replace(".", "");
                                Valor = Valor.Replace(",", "");
                                decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                detallearqueo.SUMA_DOCS = Cualquiernombre;
                            }
                            else
                            {
                                string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_DOCS"));
                                decimal ValorAux = Convert.ToDecimal(moneda);
                                detallearqueo.SUMA_DOCS = string.Format("{0:0,0.##}", ValorAux);
                            }
                            detallearqueo.SUMA_DOCS = lt_DET_ARQUEO.GetString("SUMA_DOCS");
                            C1 = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                            if (lt_DET_ARQUEO.GetString("TIPO_MONEDA") == "0000000001")
                            {
                                //C1 = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                                if (lt_DET_ARQUEO[i].GetString("MONEDA") == P_MONEDA)
                                {
                                    string Valor = lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    M1 = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    M1 = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //M1 = lt_DET_ARQUEO.GetString("SUMA_MON_BILL");
                            }
                            if (lt_DET_ARQUEO.GetString("TIPO_MONEDA") == "0000000005")
                            {
                                //C5 = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                                if (lt_DET_ARQUEO[i].GetString("MONEDA") == P_MONEDA)
                                {
                                    string Valor = lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    M5 = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    M5 = string.Format("{0:0,0.##}", ValorAux);
                                }
                            }
                            if (lt_DET_ARQUEO.GetString("TIPO_MONEDA") == "0000000010")
                            {
                                //C10 = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                                if (lt_DET_ARQUEO[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    M10 = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    M10 = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //M10 = lt_DET_ARQUEO.GetString("SUMA_MON_BILL");
                            }
                            if (lt_DET_ARQUEO.GetString("TIPO_MONEDA") == "0000000050")
                            {
                                //C50 = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                                if (lt_DET_ARQUEO[i].GetString("MONEDA") == P_MONEDA)
                                {
                                    string Valor = lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    M50 = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    M50 = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //M50 = lt_DET_ARQUEO.GetString("SUMA_MON_BILL");
                            }
                            if (lt_DET_ARQUEO.GetString("TIPO_MONEDA") == "0000000100")
                            {
                                //C100 = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                                if (lt_DET_ARQUEO[i].GetString("MONEDA") == P_MONEDA)
                                {
                                    string Valor = lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    M100 = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    M100 = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //M100 = lt_DET_ARQUEO.GetString("SUMA_MON_BILL");
                            }
                            if (lt_DET_ARQUEO.GetString("TIPO_MONEDA") == "0000000500")
                            {
                                //C500 = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                                if (lt_DET_ARQUEO[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    M500 = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    M500 = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //M500 = lt_DET_ARQUEO.GetString("SUMA_MON_BILL");
                            }
                            if (lt_DET_ARQUEO.GetString("TIPO_MONEDA") == "0000001000")
                            {
                                //C1000 = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                                if (lt_DET_ARQUEO[i].GetString("MONEDA") == P_MONEDA)
                                {
                                    string Valor = lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    M1000 = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    M1000 = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //M1000 = lt_DET_ARQUEO.GetString("SUMA_MON_BILL");
                            }
                            if (lt_DET_ARQUEO.GetString("TIPO_MONEDA") == "0000002000")
                            {
                                //C2000 = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                                if (lt_DET_ARQUEO[i].GetString("MONEDA") == P_MONEDA)
                                {
                                    string Valor = lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    M2000 = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    M2000 = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //M2000 = lt_DET_ARQUEO.GetString("SUMA_MON_BILL");
                            }
                            if (lt_DET_ARQUEO.GetString("TIPO_MONEDA") == "0000005000")
                            {
                                //C5000 = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                                if (lt_DET_ARQUEO[i].GetString("MONEDA") == P_MONEDA)
                                {
                                    string Valor = lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    M5000 = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    M5000 = string.Format("{0:0,0.##}", ValorAux);
                                }
                                M5000 = lt_DET_ARQUEO.GetString("SUMA_MON_BILL");
                            }
                            if (lt_DET_ARQUEO.GetString("TIPO_MONEDA") == "0000010000")
                            {
                                //C10000 = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                                if (lt_DET_ARQUEO[i].GetString("MONEDA") == P_MONEDA)
                                {
                                    string Valor = lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    M10000 = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    M10000 = string.Format("{0:0,0.##}", ValorAux);
                                }
                                M10000 = lt_DET_ARQUEO.GetString("SUMA_MON_BILL");
                            }
                            if (lt_DET_ARQUEO.GetString("TIPO_MONEDA") == "0000020000")
                            {
                                //C20000 = lt_DET_ARQUEO.GetString("CANTIDAD_MON");
                                if (lt_DET_ARQUEO[i].GetString("MONEDA") == P_MONEDA)
                                {
                                    string Valor = lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                    M20000 = Cualquiernombre;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DET_ARQUEO[i].GetString("SUMA_MON_BILL"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    M20000 = string.Format("{0:0,0.##}", ValorAux);
                                }
                                M20000 = lt_DET_ARQUEO.GetString("SUMA_MON_BILL");
                            }
                            detalle_arqueo.Add(detallearqueo);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }

                    ls_RETORNO = BapiGetUser.GetStructure("RETORNO");
                    try
                    {
                        for (int i = 0; i < ls_RETORNO.Count(); i++)
                        {
                            //ls_RETORNO.CurrentIndex = i;
                            retorno = new ESTATUS();
                            if (ls_RETORNO.GetString("TYPE") == "S")
                            {
                                message = message + " - " + ls_RETORNO.GetString("MESSAGE");
                            }
                            if (ls_RETORNO.GetString("TYPE") == "E")
                            {
                                errormessage = errormessage + " - " + ls_RETORNO.GetString("MESSAGE");
                            }
                            retorno.TYPE       = ls_RETORNO.GetString("TYPE");
                            retorno.ID         = ls_RETORNO.GetString("ID");
                            retorno.NUMBER     = ls_RETORNO.GetString("NUMBER");
                            retorno.MESSAGE    = ls_RETORNO.GetString("MESSAGE");
                            retorno.LOG_NO     = ls_RETORNO.GetString("LOG_NO");
                            retorno.LOG_MSG_NO = ls_RETORNO.GetString("LOG_MSG_NO");
                            retorno.MESSAGE_V1 = ls_RETORNO.GetString("MESSAGE_V1");
                            retorno.MESSAGE_V2 = ls_RETORNO.GetString("MESSAGE_V2");
                            retorno.MESSAGE_V3 = ls_RETORNO.GetString("MESSAGE_V3");
                            if (ls_RETORNO.GetString("MESSAGE_V4") != "")
                            {
                                // comprobante = ls_RETORNO.GetString("MESSAGE_V4");
                            }
                            retorno.MESSAGE_V4 = ls_RETORNO.GetString("MESSAGE_V4");
                            retorno.PARAMETER  = ls_RETORNO.GetString("PARAMETER");
                            retorno.ROW        = ls_RETORNO.GetString("ROW");
                            retorno.FIELD      = ls_RETORNO.GetString("FIELD");
                            retorno.SYSTEM     = ls_RETORNO.GetString("SYSTEM");
                            T_Retorno.Add(retorno);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message, ex.StackTrace);
                        MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                }
                else
                {
                    errormessage = retval;
                    MessageBox.Show("No se pudo conectar a la RFC");
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, ex.StackTrace);
                MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }