public BusinessObjectMethod(string sysName)
 {
     this._ObjectName = "";
     this._MethodName = "";
     this._Returns = new BapiReturnCollection();
     this.des = SAPDestination.GetDesByName(sysName);
 }
        public BusinessObjectMethod CreateBapi(string BusinessObjectName, string MethodName)
        {
            des = SAPDestination.GetDesByName(m_sysName);
            IRfcFunction function = des.Repository.CreateFunction("SWO_QUERY_API_OBJTYPES");
            function["OBJECT_NAME"].SetValue(BusinessObjectName);
            function.Invoke(des);
            if (function.GetTable("OBJTYPES").RowCount == 0)
            {
                throw new Exception("Unable to find ObjectType for name '" + BusinessObjectName + "'");
            }
            string str = function.GetTable("OBJTYPES")[0]["OBJTYPE"].GetValue().ToString();
            IRfcFunction function2 = des.Repository.CreateFunction("SWO_QUERY_API_METHODS");
            function2["OBJTYPE"].SetValue(str);
            function2["WITH_TEXTS"].SetValue("");
            function2.Invoke(des);
            for (int i = 0; i < function2.GetTable("API_METHODS").RowCount; i++)
            {
                if (function2.GetTable("API_METHODS")[i]["METHOD"].GetValue().ToString().ToUpper().Equals(MethodName.ToUpper()))
                {
                    BusinessObjectMethod method = new BusinessObjectMethod(m_sysName)
                    {
                        MethodName = MethodName,
                        ObjectName = BusinessObjectName
                    };
                    // RFCFunction dest = method;
                    method.Name = function2.GetTable("API_METHODS")[i]["FUNCTION"].GetValue().ToString();
                    //this.AddParametersAndTablesToUndefinedFunctionObject(ref dest, method.Name);
                    //method.Connection = this;

                    return method;
                }
            }
            throw new Exception(string.Format("Unable to find method_{0}_at Object Type_1", MethodName, str));
        }
 public Query(string sysName)
 {
     this._Name = "";
     this._UserGroup = "";
     this._Variant = "";
     this._Fields = new QueryFieldCollection();
     this._SelectionParameters = new QuerySelectionParameterCollection();
     this._des = SAPDestination.GetDesByName(sysName);
 }
 public PlainRfcPreparedFunction(string functionName,
                                 PlainRfcStructureMapper structureMapper, 
                                 RfcRepository repository, 
                                 RfcDestination destination)
     : base(functionName)
 {
     this.repository = repository;
     this.destination = destination;
     this.structureMapper = structureMapper;
 }
 public Transaction(string sysName)
 {
     this._BatchSteps = new BatchStepCollection();
     this._TCode = "";
     this._Type = TransactionType.Multiple;
     this._Returns = new BatchReturnCollection();
     this._CustomFunctionName = "";
     this._des = SAPDestination.GetDesByName(sysName);
     this._sysName = sysName.ToUpper().Trim();
 }
        public ABAPCode(string sysName)
        {
            this._sysName = sysName;
            this._des = SAPDestination.GetDesByName(sysName);
            this._code = new List<String>();
            this._result = new List<String>();
            this._LastError = "";
            if (_des == null)
            {
                throw new SAPException(Messages.Connectionisnotvalid);

            }
        }
        private static void ReadCustomerEquipments(string customerNumber, RfcDestination destination, JsonWriter writer)
        {
            writer.WritePropertyName("equipments");

            writer.WriteStartArray();

            // Get access to remote function module for the equipments of a customer
            var functionMetadata = destination.Repository.GetFunctionMetadata("BAPI_EQMT_GETLISTFORCUSTOMER");

            // Create function from metadata
            var function = functionMetadata.CreateFunction();

            // Set importing parameters
            function.SetValue("CUSTOMERNO", customerNumber);
            function.SetValue("INT_CUSTMODE", "C");

            // Invoke remote function module
            function.Invoke(destination);

            // Read table data returned by function module
            var equipmentsTable = function.GetTable("EQUIPMENTS");

            // Get access to yet another function module for the notifications of an equipment
            var notificationMetadata = destination.Repository.GetFunctionMetadata("BAPI_ALM_NOTIF_LIST_EQUI");
            for (int i = 0; i < equipmentsTable.RowCount; i++)
            {
                writer.WriteStartObject();
                equipmentsTable.CurrentIndex = i;
                WriteRowProperties(equipmentsTable, writer);
                var equipmentNumber = equipmentsTable.GetString("EQUIPMENT");

                // Create function for the notifications
                var notificationFunction = notificationMetadata.CreateFunction();
                notificationFunction.SetValue("EQUIPMENT", equipmentNumber);
                notificationFunction.Invoke(destination);
                var notificationsTable = notificationFunction.GetTable("NOTIFICATION");
                writer.WritePropertyName("notifications");
                writer.WriteStartArray();
                for (int k = 0; k < notificationsTable.RowCount; k++)
                {
                    notificationsTable.CurrentIndex = k;
                    WriteRowObject(notificationsTable, writer);
                }
                writer.WriteEndArray();
                writer.WriteEndObject();
            }

            writer.WriteEndArray();
        }
 private void EnsureConnectionIsOpen()
 {
     if (!isOpen)
     {
         try {
             this.destination = RfcDestinationManager.GetDestination(destinationName);
             this.repository = this.destination.Repository;
             this.isOpen = true;
         }
         catch (Exception ex)
         {
             throw new SharpRfcCallException("Could not connect to SAP.", ex);
         }
     }
 }
Beispiel #9
0
 private void EnsureConnectionIsOpen()
 {
     if (!IsOpen)
     {
         try
         {
             var configParameters = ConvertStringToConfigParameters(_connectionString);
             _destination = RfcDestinationManager.GetDestination(configParameters);
             IsOpen = true;
         }
         catch (Exception ex)
         {
             throw new RfcConnectionException("Could not connect to SAP.", ex);
         }
     }
 }
        public SAPConnection(string destinationName)
        {
            _destinationName = destinationName;

            _config = new SAPConfiguration();

            RfcDestinationManager.RegisterDestinationConfiguration(_config);

            _config.AddOrEditDestination(_destinationName,
                UserName,
                Password,
                Language,
                Client,
                ApplicationServer,
                SystemNumber);
            _destination = RfcDestinationManager.GetDestination(_destinationName);
        }
 private static void ReadCustomerContacts(string customerNumber, RfcDestination destination, JsonWriter writer)
 {
     writer.WritePropertyName("contacts");
     writer.WriteStartArray();
     var functionMetadata = destination.Repository.GetFunctionMetadata("BAPI_CUSTOMER_GETCONTACTLIST");
     var function = functionMetadata.CreateFunction();
     var rangeTable = function.GetTable("CUSTOMERRANGE");
     rangeTable.Append();
     rangeTable.SetValue("SIGN", "I"); // Include
     rangeTable.SetValue("OPTION", "EQ"); // Equals
     rangeTable.SetValue("LOW", customerNumber);
     function.Invoke(destination);
     var addressesTable = function.GetTable("CONTACTADDRESSDATA");
     for (int i = 0; i < addressesTable.RowCount; i++)
     {
         addressesTable.CurrentIndex = i;
         WriteRowObject(addressesTable, writer);
     }
     writer.WriteEndArray();
 }
Beispiel #12
0
        public Boolean CreateConnection()
        {
            try
            {
                this.con = new SapConnection();
                RfcDestinationManager.RegisterDestinationConfiguration(con);
                this.dest = RfcDestinationManager.GetDestination("NSP");
                this.repo = dest.Repository;
            }
            catch (Exception ex)
            {
                try
                {
                    // Break connection
                    RfcDestinationManager.UnregisterDestinationConfiguration(con);
                }
                catch (Exception ex2) { }
                throw ex;
            }

            return true;
        }
Beispiel #13
0
        void TestSap()
        {
            ConectorSAP conectaSAP = new ConectorSAP();

            conectaSAP.Conectar();

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

            RfcRepository rfcRep = rfcDest.Repository;

            IRfcFunction function;

            function = rfcRep.CreateFunction("ZEXTRAE_PROV");



            function.Invoke(rfcDest);



            var result = function.GetTable("T_PROV");

            var datatable = result.ToDataTable("test");
        }
Beispiel #14
0
        /// <summary>
        /// 调用RFC,返回一个内表参数
        /// </summary>
        /// <param name="conn"></param>
        /// <param name="param">需要传入的字符串参数 例:{"P1|value1","P2|value2"}</param>
        /// <param name="rfcName"></param>
        /// <param name="irfcStructureName"></param>
        /// <param name="irfcStru"></param>
        public DataTable GetRfcOutTable(string conn, string[] param, string rfcName, string irfcStructureName, IRfcStructure irfcStru, string outTableName)
        {
            //1.登录SAP
            RfcConfigParameters parameters = GetRfcLoginParameters(conn);//获取登录参数
            RfcDestination      rd         = RfcDestinationManager.GetDestination(parameters);

            RfcRepository repo = rd.Repository;
            IRfcFunction  f    = repo.CreateFunction(rfcName); //调用函数名

            //传入字符参数
            foreach (string value in param)
            {
                string[] keyvalue = value.Split('|');
                f.SetValue(keyvalue[0], keyvalue[1].Trim());//传递入参数
            }



            //传入 sap结构 参数
            f.SetValue(irfcStructureName, irfcStru);

            f.Invoke(rd); //执行函数
            return(ConvertToTable(f.GetTable(outTableName)));
        }
Beispiel #15
0
        /// <summary>
        /// 调用RFC,返回一个IRfcFuntion,当需要返回多个参数的时候调用
        /// </summary>
        /// <param name="conn"></param>
        /// <param name="rfcName"></param>
        /// <param name="param"></param>
        /// <param name="irfcStructureName"></param>
        /// <param name="irfcStr"></param>
        /// <param name="irfcTableName"></param>
        /// <param name="irfcTab"></param>
        /// <returns></returns>
        public IRfcFunction GetIRfcFun(string conn, string rfcName, string[] param, string irfcStructureName, IRfcStructure irfcStr, string irfcTableName, IRfcTable irfcTab)
        {
            //1.登录SAP
            RfcConfigParameters parameters = GetRfcLoginParameters(conn);//获取登录参数
            RfcDestination      rd         = RfcDestinationManager.GetDestination(parameters);

            RfcRepository repo = rd.Repository;
            IRfcFunction  f    = repo.CreateFunction(rfcName); //调用函数名

            //传入字符参数
            foreach (string value in param)
            {
                string[] keyvalue = value.Split('|');
                f.SetValue(keyvalue[0], keyvalue[1].Trim());//传递入参数
            }
            //--传入 结构参数--
            f.SetValue(irfcStructureName, irfcStr);
            //--传入 内部 参数
            f.SetValue(irfcTableName, irfcTab);

            f.Invoke(rd); //执行函数

            return(f);
        }
Beispiel #16
0
        private string getNomenclatureGroupName(RfcDestination destination, string groupId)
        {
            string       groupName = "";
            IRfcFunction function  = null;

            try
            {
                function = destination.Repository.CreateFunction("RFC_MERCHANDISE_GROUP_READ");
                IRfcTable table = function.GetTable("PI_MGDATA");
                table.Append();
                table.CurrentRow.SetValue("MATKL", groupId);
                table.CurrentRow.SetValue("SPART", "");
                table.CurrentRow.SetValue("LREF3", "");
                table.CurrentRow.SetValue("WWGDA", "");
                table.CurrentRow.SetValue("WWGPA", "");
                table.CurrentRow.SetValue("ABTNR", "");
                table.CurrentRow.SetValue("BEGRU", "");
                table.CurrentRow.SetValue("SPRAS", "");
                table.CurrentRow.SetValue("WGBEZ", "");
                table.CurrentRow.SetValue("WGBEZ60", "");
                table.CurrentRow.SetValue("FLDELETE", "");
                function.Invoke(destination);
            }
            catch (RfcBaseException e)
            {
                Console.WriteLine(e.ToString());
            }
            IRfcTable oTable = function.GetTable("po_mgdata");

            for (int i = 0; i < oTable.RowCount; i++)
            {
                oTable.CurrentIndex = i;
                groupName           = oTable.GetString("WGBEZ60");
            }
            return(groupName);
        }
Beispiel #17
0
        /// <summary>
        /// search rfc function in sap system.
        /// </summary>
        /// <param name="sysName"></param>
        /// <param name="functionName"></param>
        /// <param name="functionGroup"></param>
        /// <returns></returns>
        public static DataTable SearchRfcFunctions(string sysName, string functionName, string functionGroup)
        {
            try
            {
                RfcDestination destination = SAPDestination.GetDesByName(sysName);
                //string _funame = string.Format("*{0}*", functionName);
                string       _funame             = functionName;
                IRfcFunction RFC_FUNCTION_SEARCH = destination.Repository.CreateFunction("RFC_FUNCTION_SEARCH");
                RFC_FUNCTION_SEARCH.SetValue("FUNCNAME", _funame);
                RFC_FUNCTION_SEARCH.SetValue("GROUPNAME", functionGroup);
                RFC_FUNCTION_SEARCH.Invoke(destination);
                IRfcTable FUNCTIONS = RFC_FUNCTION_SEARCH.GetTable("FUNCTIONS");

                return(RfcTableToDataTable(FUNCTIONS));
            }
            catch (RfcAbapException rfce)
            {
                throw new SAPException(rfce.Key + rfce.Message);
            }
            catch (Exception e)
            {
                throw new SAPException(e.Message);
            }
        }
Beispiel #18
0
        public void gestiondedepositos(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)

        {
            try
            {
                RETORNO       retorno;
                VIAS_PAGOGD   vpgestion;
                BCO_DESTINO   banco_destino;
                BCO_DEPOSITOS banco_depositos;

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

                IRfcTable lt_RETORNO;
                IRfcTable lt_VPGESTIONBANCOS;
                IRfcTable lt_BANCODEST;
                IRfcTable lt_BANCODEPOSITOS;

                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_GESTION_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);



                    BapiGetUser.Invoke(SapRfcDestination);
                    //BapiGetUser.SetValue("I_VBELN",P_NUMDOCSD);
                    //IRfcTable GralDat = BapiGetUser.GetTable("VIAS_PAGO");
                    lt_VPGESTIONBANCOS = BapiGetUser.GetTable("VIAS_PAGO");

                    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     = P_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");
                                if (lt_VPGESTIONBANCOS[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_VPGESTIONBANCOS[i].GetString("MONTO_DOC").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux    = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    string  monedachile = string.Format("{0:0,0}", ValorAux);
                                    vpgestion.MONTO_DOC = monedachile;
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_VPGESTIONBANCOS[i].GetString("MONTO_DOC"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    vpgestion.MONTO_DOC = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //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.HKONT          = lt_VPGESTIONBANCOS[i].GetString("HKONT");
                                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) de vias de pago");
                    }

                    lt_BANCODEST = BapiGetUser.GetTable("BCO_DESTINO");

                    if (lt_BANCODEST.Count > 0)
                    {
                        //LLenamos la tabla de salida lt_DatGen
                        for (int i = 0; i < lt_BANCODEST.RowCount; i++)
                        {
                            try
                            {
                                lt_BANCODEST.CurrentIndex = i;
                                banco_destino             = new BCO_DESTINO();
                                banco_destino.BUKRS       = lt_BANCODEST[i].GetString("BUKRS");
                                banco_destino.HBKID       = lt_BANCODEST[i].GetString("HBKID");
                                banco_destino.HKTID       = lt_BANCODEST[i].GetString("HKTID");
                                banco_destino.BANKN       = lt_BANCODEST[i].GetString("BANKN");
                                banco_destino.BANKL       = lt_BANCODEST[i].GetString("BANKL");
                                banco_destino.BANKA       = lt_BANCODEST[i].GetString("BANKA");
                                banco_destino.WAERS       = lt_BANCODEST[i].GetString("WAERS");
                                banco_destino.TEXT1       = lt_BANCODEST[i].GetString("TEXT1");

                                BancoDest.Add(banco_destino);
                            }
                            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) en banco destino");
                    }

                    lt_BANCODEPOSITOS = BapiGetUser.GetTable("BCO_DEPOSITOS");

                    if (lt_BANCODEPOSITOS.Count > 0)
                    {
                        //LLenamos la tabla de salida lt_DatGen
                        for (int i = 0; i < lt_BANCODEPOSITOS.RowCount; i++)
                        {
                            try
                            {
                                lt_BANCODEPOSITOS.CurrentIndex = i;
                                banco_depositos       = new BCO_DEPOSITOS();
                                banco_depositos.MANDT = lt_BANCODEPOSITOS[i].GetString("MANDT");
                                banco_depositos.BANKS = lt_BANCODEPOSITOS[i].GetString("BANKS");
                                banco_depositos.BUKRS = lt_BANCODEPOSITOS[i].GetString("BUKRS");
                                banco_depositos.WAERS = lt_BANCODEPOSITOS[i].GetString("WAERS");
                                banco_depositos.BANKL = lt_BANCODEPOSITOS[i].GetString("BANKL");
                                banco_depositos.HBKID = lt_BANCODEPOSITOS[i].GetString("HBKID");
                                banco_depositos.BANKN = lt_BANCODEPOSITOS[i].GetString("BANKN");
                                banco_depositos.BANKA = lt_BANCODEPOSITOS[i].GetString("BANKA");
                                banco_depositos.HKONT = lt_BANCODEPOSITOS[i].GetString("HKONT");

                                BancoDeposito.Add(banco_depositos);
                            }
                            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) en depósitos de banco");
                    }



                    lt_RETORNO = BapiGetUser.GetTable("RETORNO");
                    try
                    {
                        for (int i = 0; i < lt_RETORNO.Count(); i++)
                        {
                            lt_RETORNO.CurrentIndex = i;
                            retorno = new 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.ID         = lt_RETORNO.GetString("ID");
                            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_V4") != "")
                            {
                                // comprobante = ls_RETORNO.GetString("MESSAGE_V4");
                            }
                            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 void Call(RfcRepository repo, RfcDestination dest)
 {
 }
Beispiel #20
0
        /// <summary>
        /// 根据IDOC的IDOC类型,到SAP系统里查找它对应的类型定义
        /// </summary>
        private void GetIdocTypeDefinition()
        {
            if (idoc == null)
            {
                throw new SAPException("IDOC是空值。");
            }
            if (idoc != null)
            {
                if (String.IsNullOrWhiteSpace(this.idocType))
                {
                    throw new SAPException("空白的IDOC类型");
                }
                RfcDestination destination = SAPDestination.GetDesByName(sysName);

                IRfcFunction function = destination.Repository.CreateFunction("IDOCTYPE_READ_COMPLETE");
                function.SetValue("PI_IDOCTYP", this.idocType);
                function.SetValue("PI_CIMTYP", this.cimType);
                function.Invoke(destination);
                IRfcTable rfctable_PT_FIELDS = function.GetTable("PT_FIELDS");

                EDI_IAPI12 _EDI_IAPI12;
                for (int i = 0; i < rfctable_PT_FIELDS.RowCount; i++)
                {
                    _EDI_IAPI12            = new EDI_IAPI12();
                    _EDI_IAPI12.SEGMENTTYP = rfctable_PT_FIELDS[i].GetString("SEGMENTTYP"); // 段类型(30 字符格式)
                    _EDI_IAPI12.FIELDNAME  = rfctable_PT_FIELDS[i].GetString("FIELDNAME");  // 字段名
                    _EDI_IAPI12.INTLEN     = rfctable_PT_FIELDS[i].GetInt("INTLEN");        // 以字节计的内部长度
                    _EDI_IAPI12.EXTLEN     = rfctable_PT_FIELDS[i].GetInt("EXTLEN");        // 输出长度
                    _EDI_IAPI12.FIELD_POS  = rfctable_PT_FIELDS[i].GetInt("FIELD_POS");     // 字段的位置号码
                    _EDI_IAPI12.BYTE_FIRST = rfctable_PT_FIELDS[i].GetInt("BYTE_FIRST");    // 第一个字节的位置
                    _EDI_IAPI12.BYTE_LAST  = rfctable_PT_FIELDS[i].GetInt("BYTE_LAST");     // 最后一个字节的位置
                    _EDI_IAPI12.ROLLNAME   = rfctable_PT_FIELDS[i].GetString("ROLLNAME");   // 数据元素 (语义域)
                    _EDI_IAPI12.DOMNAME    = rfctable_PT_FIELDS[i].GetString("DOMNAME");    // 定义域名
                    _EDI_IAPI12.DATATYPE   = rfctable_PT_FIELDS[i].GetString("DATATYPE");   // ABAP/4 字典: 屏幕绘制器的屏幕数据类型
                    _EDI_IAPI12.DESCRP     = rfctable_PT_FIELDS[i].GetString("DESCRP");     // 对象的简短说明
                    _EDI_IAPI12.ISOCODE    = rfctable_PT_FIELDS[i].GetString("ISOCODE");    // IDoc 开发:字段中的 ISO 代码标识
                    _EDI_IAPI12.VALUETAB   = rfctable_PT_FIELDS[i].GetString("VALUETAB");   // IDoc 段字段的值表
                    _FIELDS.Add(_EDI_IAPI12);
                }

                IRfcTable rfctable_PT_FVALUES = function.GetTable("PT_FVALUES");

                EDI_IAPI14 _EDI_IAPI14;
                for (int i = 0; i < rfctable_PT_FVALUES.RowCount; i++)
                {
                    _EDI_IAPI14            = new EDI_IAPI14();
                    _EDI_IAPI14.STRNAME    = rfctable_PT_FVALUES[i].GetString("STRNAME");    // 内部结构的名称
                    _EDI_IAPI14.FIELDNAME  = rfctable_PT_FVALUES[i].GetString("FIELDNAME");  // 字段名
                    _EDI_IAPI14.FLDVALUE_L = rfctable_PT_FVALUES[i].GetString("FLDVALUE_L"); // 下限值 / 单一值
                    _EDI_IAPI14.FLDVALUE_H = rfctable_PT_FVALUES[i].GetString("FLDVALUE_H"); // 上限值
                    _EDI_IAPI14.DESCRP     = rfctable_PT_FVALUES[i].GetString("DESCRP");     // 说明简要文字
                    _FVALUES.Add(_EDI_IAPI14);
                }

                IRfcTable rfctable_PT_MESSAGES = function.GetTable("PT_MESSAGES");

                EDI_IAPI17 _EDI_IAPI17;
                for (int i = 0; i < rfctable_PT_MESSAGES.RowCount; i++)
                {
                    _EDI_IAPI17          = new EDI_IAPI17();
                    _EDI_IAPI17.MESTYP   = rfctable_PT_MESSAGES[i].GetString("MESTYP");   // 消息类型
                    _EDI_IAPI17.DESCRP   = rfctable_PT_MESSAGES[i].GetString("DESCRP");   // 对象的简短说明
                    _EDI_IAPI17.IDOCTYP  = rfctable_PT_MESSAGES[i].GetString("IDOCTYP");  // 基本类型
                    _EDI_IAPI17.CIMTYP   = rfctable_PT_MESSAGES[i].GetString("CIMTYP");   // 扩展类型
                    _EDI_IAPI17.RELEASED = rfctable_PT_MESSAGES[i].GetString("RELEASED"); // 消息类型分配有效的版本
                    _MESSAGES.Add(_EDI_IAPI17);
                }

                IRfcTable rfctable_PT_SEGMENTS = function.GetTable("PT_SEGMENTS");

                EDI_IAPI11 _EDI_IAPI11;
                for (int i = 0; i < rfctable_PT_SEGMENTS.RowCount; i++)
                {
                    _EDI_IAPI11            = new EDI_IAPI11();
                    _EDI_IAPI11.NR         = rfctable_PT_SEGMENTS[i].GetInt("NR");            // IDoc 类型中段的序列号
                    _EDI_IAPI11.SEGMENTTYP = rfctable_PT_SEGMENTS[i].GetString("SEGMENTTYP"); // 段类型(30 字符格式)
                    _EDI_IAPI11.SEGMENTDEF = rfctable_PT_SEGMENTS[i].GetString("SEGMENTDEF"); // IDoc 开发:段定义
                    _EDI_IAPI11.QUALIFIER  = rfctable_PT_SEGMENTS[i].GetString("QUALIFIER");  // 标记:IDoc 中限定的段
                    _EDI_IAPI11.SEGLEN     = rfctable_PT_SEGMENTS[i].GetInt("SEGLEN");        // 一个字段的长度(位置的数目)
                    _EDI_IAPI11.PARSEG     = rfctable_PT_SEGMENTS[i].GetString("PARSEG");     // 段类型(30 字符格式)
                    _EDI_IAPI11.PARPNO     = rfctable_PT_SEGMENTS[i].GetInt("PARPNO");        // 父代段的序列号
                    _EDI_IAPI11.PARFLG     = rfctable_PT_SEGMENTS[i].GetString("PARFLG");     // 父段标记:段是段组的开始
                    _EDI_IAPI11.MUSTFL     = rfctable_PT_SEGMENTS[i].GetString("MUSTFL");     // 标记:强制条目
                    _EDI_IAPI11.OCCMIN     = rfctable_PT_SEGMENTS[i].GetInt("OCCMIN");        // 序列中段的最小数目
                    _EDI_IAPI11.OCCMAX     = rfctable_PT_SEGMENTS[i].GetDouble("OCCMAX");     // 序列中最大段数目
                    _EDI_IAPI11.HLEVEL     = rfctable_PT_SEGMENTS[i].GetInt("HLEVEL");        // IDoc 类型段的层次水平
                    _EDI_IAPI11.DESCRP     = rfctable_PT_SEGMENTS[i].GetString("DESCRP");     // 对象的简短说明
                    _EDI_IAPI11.GRP_MUSTFL = rfctable_PT_SEGMENTS[i].GetString("GRP_MUSTFL"); // 组标记:强制
                    _EDI_IAPI11.GRP_OCCMIN = rfctable_PT_SEGMENTS[i].GetInt("GRP_OCCMIN");    // 序列中最小组号
                    _EDI_IAPI11.GRP_OCCMAX = rfctable_PT_SEGMENTS[i].GetDouble("GRP_OCCMAX"); // 序列中最大组号
                    _EDI_IAPI11.REFSEGTYP  = rfctable_PT_SEGMENTS[i].GetString("REFSEGTYP");  // 段类型(30 字符格式)
                    _SEGMENTS.Add(_EDI_IAPI11);
                }
            }
        }
        public void MontoEfectivo(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_ID_APERTURA, string P_SOCIEDAD, string P_VIA_PAGO)
        {
            resumenVp.Clear();
            errormessage = "";
            IRfcTable lt_resumen_vp;

            RESUMEN_VP resumen_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_MON_EFEC");
                BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                BapiGetUser.SetValue("USUARIO", P_USUARIO);
                BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA);
                BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD);
                BapiGetUser.SetValue("VIA_PAGO", P_VIA_PAGO);

                BapiGetUser.Invoke(SapRfcDestination);

                lt_resumen_vp = BapiGetUser.GetTable("RESUMEN_VP");

                if (lt_resumen_vp.Count > 0)
                {
                    for (int i = 0; i < lt_resumen_vp.Count(); i++)
                    {
                        lt_resumen_vp.CurrentIndex = i;
                        resumen_resp              = new RESUMEN_VP();
                        resumen_resp.LAND         = lt_resumen_vp.GetString("LAND");
                        resumen_resp.ID_CAJA      = lt_resumen_vp.GetString("ID_CAJA");
                        resumen_resp.SOCIEDAD     = lt_resumen_vp.GetString("SOCIEDAD");
                        resumen_resp.SOCIEDAD_TXT = lt_resumen_vp.GetString("SOCIEDAD_TXT");
                        resumen_resp.VIA_PAGO     = lt_resumen_vp.GetString("VIA_PAGO");
                        resumen_resp.TEXT1        = lt_resumen_vp.GetString("TEXT1");
                        resumen_resp.MONEDA       = lt_resumen_vp.GetString("MONEDA");
                        resumen_resp.MONTO        = lt_resumen_vp.GetString("MONTO");
                        Efectivo = Convert.ToString(Convert.ToDouble(resumen_resp.MONTO));

                        resumen_resp.CANT_DOCS = lt_resumen_vp.GetString("CANT_DOCS");
                        resumenVp.Add(resumen_resp);
                    }

                    Double      Efect = Convert.ToDouble(Efectivo);
                    CultureInfo elGR  = CultureInfo.CreateSpecificCulture("el-GR");
                    Console.WriteLine(Efect.ToString("0,0", elGR));
                    Console.WriteLine(String.Format(elGR, "{0:0,0}", Efect));
                    Efectivo = Efect.ToString("0,0", elGR);
                    Efectivo = String.Format(elGR, "{0:0,0}", Efect);
                }
            }
            else
            {
                errormessage = retval;
            }
            GC.Collect();
        }
 public SAPProxy_YBAPI_UPD_INSTKEY1(RfcDestination destination)
 {
     this.destination = destination;
 }
Beispiel #23
0
        public void docsreimpresion(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_COMPROBANTE, string P_RUT
                                    , string P_ID_APERTURA, string P_LAND, string P_IDCAJA, string P_BATCH)
        {
            Documentos.Clear();
            ViasPago.Clear();
            Retorno.Clear();
            errormessage = "";
            message      = "";
            IRfcTable lt_documentos;
            IRfcTable lt_viaspago;
            IRfcTable lt_retorno;

            //  PART_ABIERTAS  PART_ABIERTAS_resp;
            DOCUMENTOS DOCUMENTOS_resp;
            VIAS_PAGO2 VIASPAGO_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_BUSCA_COMP_REIMP");
                BapiGetUser.SetValue("ID_COMPROBANTE", P_COMPROBANTE);
                BapiGetUser.SetValue("RUT", P_RUT);
                BapiGetUser.SetValue("LAND", P_LAND);
                BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA);
                BapiGetUser.SetValue("ID_CAJA", P_IDCAJA);
                BapiGetUser.SetValue("BATCH", P_BATCH);
                BapiGetUser.Invoke(SapRfcDestination);

                lt_documentos = BapiGetUser.GetTable("DOCUMENTOS");
                lt_viaspago   = BapiGetUser.GetTable("VIAS_PAGO");
                lt_retorno    = BapiGetUser.GetTable("RETORNO");

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

                            DOCUMENTOS_resp.MANDT            = lt_documentos[i].GetString("MANDT");
                            DOCUMENTOS_resp.LAND             = lt_documentos[i].GetString("LAND");
                            DOCUMENTOS_resp.ID_COMPROBANTE   = lt_documentos[i].GetString("ID_COMPROBANTE");
                            DOCUMENTOS_resp.POSICION         = lt_documentos[i].GetString("POSICION");
                            DOCUMENTOS_resp.CLIENTE          = lt_documentos[i].GetString("CLIENTE");
                            DOCUMENTOS_resp.TIPO_DOCUMENTO   = lt_documentos[i].GetString("TIPO_DOCUMENTO");
                            DOCUMENTOS_resp.SOCIEDAD         = lt_documentos[i].GetString("SOCIEDAD");
                            DOCUMENTOS_resp.NRO_DOCUMENTO    = lt_documentos[i].GetString("NRO_DOCUMENTO");
                            DOCUMENTOS_resp.NRO_REFERENCIA   = lt_documentos[i].GetString("NRO_REFERENCIA");
                            DOCUMENTOS_resp.CAJERO_RESP      = lt_documentos[i].GetString("CAJERO_RESP");
                            DOCUMENTOS_resp.CAJERO_GEN       = lt_documentos[i].GetString("CAJERO_GEN");
                            DOCUMENTOS_resp.ID_CAJA          = lt_documentos[i].GetString("ID_CAJA");
                            DOCUMENTOS_resp.FECHA_COMP       = lt_documentos[i].GetString("FECHA_COMP");
                            DOCUMENTOS_resp.HORA             = lt_documentos[i].GetString("HORA");
                            DOCUMENTOS_resp.NRO_COMPENSACION = lt_documentos[i].GetString("NRO_COMPENSACION");
                            DOCUMENTOS_resp.TEXTO_CABECERA   = lt_documentos[i].GetString("TEXTO_CABECERA");
                            DOCUMENTOS_resp.NULO             = lt_documentos[i].GetString("NULO");
                            DOCUMENTOS_resp.USR_ANULADOR     = lt_documentos[i].GetString("USR_ANULADOR");
                            DOCUMENTOS_resp.NRO_ANULACION    = lt_documentos[i].GetString("NRO_ANULACION");
                            DOCUMENTOS_resp.APROBADOR_ANULA  = lt_documentos[i].GetString("APROBADOR_ANULA");
                            DOCUMENTOS_resp.TXT_ANULACION    = lt_documentos[i].GetString("TXT_ANULACION");
                            DOCUMENTOS_resp.EXCEPCION        = lt_documentos[i].GetString("EXCEPCION");
                            DOCUMENTOS_resp.FECHA_DOC        = lt_documentos[i].GetString("FECHA_DOC");
                            DOCUMENTOS_resp.FECHA_VENC_DOC   = lt_documentos[i].GetString("FECHA_VENC_DOC");
                            DOCUMENTOS_resp.NUM_CUOTA        = lt_documentos[i].GetString("NUM_CUOTA");
                            if (lt_documentos[i].GetString("MONEDA") == "CLP")
                            {
                                string Valor = lt_documentos[i].GetString("MONTO_DOC").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);
                                DOCUMENTOS_resp.MONTO_DOC = Cualquiernombre;
                            }
                            else
                            {
                                string  moneda   = Convert.ToString(lt_documentos[i].GetString("MONTO_DOC"));
                                decimal ValorAux = Convert.ToDecimal(moneda);
                                DOCUMENTOS_resp.MONTO_DOC = string.Format("{0:0,0.##}", ValorAux);
                            }
                            //DOCUMENTOS_resp.MONTO_DOC = lt_documentos[i].GetString("MONTO_DOC");
                            if (lt_documentos[i].GetString("MONEDA") == "CLP")
                            {
                                string Valor = lt_documentos[i].GetString("MONTO_DIFERENCIA").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);
                                DOCUMENTOS_resp.MONTO_DIFERENCIA = Cualquiernombre;
                            }
                            else
                            {
                                string  moneda   = Convert.ToString(lt_documentos[i].GetString("MONTO_DIFERENCIA"));
                                decimal ValorAux = Convert.ToDecimal(moneda);
                                DOCUMENTOS_resp.MONTO_DIFERENCIA = string.Format("{0:0,0.##}", ValorAux);
                            }
                            //DOCUMENTOS_resp.MONTO_DIFERENCIA = lt_documentos[i].GetString("MONTO_DIFERENCIA");
                            DOCUMENTOS_resp.TEXTO_EXCEPCION = lt_documentos[i].GetString("TEXTO_EXCEPCION");
                            DOCUMENTOS_resp.PARCIAL         = lt_documentos[i].GetString("PARCIAL");
                            DOCUMENTOS_resp.TIME            = lt_documentos[i].GetString("TIME");
                            DOCUMENTOS_resp.APROBADOR_EX    = lt_documentos[i].GetString("APROBADOR_EX");
                            DOCUMENTOS_resp.MONEDA          = lt_documentos[i].GetString("MONEDA");
                            DOCUMENTOS_resp.CLASE_CUENTA    = lt_documentos[i].GetString("CLASE_CUENTA");
                            DOCUMENTOS_resp.CLASE_DOC       = lt_documentos[i].GetString("CLASE_DOC");
                            DOCUMENTOS_resp.NUM_CANCELACION = lt_documentos[i].GetString("NUM_CANCELACION");
                            DOCUMENTOS_resp.CME             = lt_documentos[i].GetString("CME");
                            DOCUMENTOS_resp.NOTA_VENTA      = lt_documentos[i].GetString("NOTA_VENTA");
                            DOCUMENTOS_resp.CEBE            = lt_documentos[i].GetString("CEBE");
                            DOCUMENTOS_resp.ACC             = lt_documentos[i].GetString("ACC");
                            Documentos.Add(DOCUMENTOS_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_viaspago.Count > 0)
                {
                    //LLenamos la tabla de salida lt_DatGen
                    for (int i = 0; i < lt_viaspago.RowCount; i++)
                    {
                        try
                        {
                            lt_viaspago.CurrentIndex = i;
                            VIASPAGO_resp            = new VIAS_PAGO2();

                            VIASPAGO_resp.MANDT          = lt_viaspago[i].GetString("MANDT");
                            VIASPAGO_resp.LAND           = lt_viaspago[i].GetString("LAND");
                            VIASPAGO_resp.ID_COMPROBANTE = lt_viaspago[i].GetString("ID_COMPROBANTE");
                            VIASPAGO_resp.ID_DETALLE     = lt_viaspago[i].GetString("ID_DETALLE");
                            VIASPAGO_resp.VIA_PAGO       = lt_viaspago[i].GetString("VIA_PAGO");
                            if (lt_viaspago[i].GetString("MONEDA") == "CLP")
                            {
                                string Valor = lt_viaspago[i].GetString("MONTO").Trim();
                                if (Valor.Contains("-"))
                                {
                                    Valor = "-" + Valor.Replace("-", "");
                                }
                                Valor = Valor.Replace(".", "");
                                Valor = Valor.Replace(",", "");
                                //decimal ValorAux = Convert.ToDecimal(Valor);
                                decimal ValorAux        = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                string  Cualquiernombre = string.Format("{0:0,0}", ValorAux);
                                VIASPAGO_resp.MONTO = Cualquiernombre;
                            }
                            else
                            {
                                string  moneda   = Convert.ToString(lt_viaspago[i].GetString("MONTO"));
                                decimal ValorAux = Convert.ToDecimal(moneda);
                                VIASPAGO_resp.MONTO = string.Format("{0:0,0.##}", ValorAux);
                            }
                            //VIASPAGO_resp.MONTO =  lt_viaspago[i].GetString("MONTO");
                            VIASPAGO_resp.MONEDA           = lt_viaspago[i].GetString("MONEDA");
                            VIASPAGO_resp.BANCO            = lt_viaspago[i].GetString("BANCO");
                            VIASPAGO_resp.EMISOR           = lt_viaspago[i].GetString("EMISOR");
                            VIASPAGO_resp.NUM_CHEQUE       = lt_viaspago[i].GetString("NUM_CHEQUE");
                            VIASPAGO_resp.COD_AUTORIZACION = lt_viaspago[i].GetString("COD_AUTORIZACION");
                            VIASPAGO_resp.NUM_CUOTAS       = lt_viaspago[i].GetString("NUM_CUOTAS");
                            VIASPAGO_resp.FECHA_VENC       = lt_viaspago[i].GetString("FECHA_VENC");
                            VIASPAGO_resp.TEXTO_POSICION   = lt_viaspago[i].GetString("TEXTO_POSICION");
                            VIASPAGO_resp.ANEXO            = lt_viaspago[i].GetString("ANEXO");
                            VIASPAGO_resp.SUCURSAL         = lt_viaspago[i].GetString("SUCURSAL");
                            VIASPAGO_resp.NUM_CUENTA       = lt_viaspago[i].GetString("NUM_CUENTA");
                            VIASPAGO_resp.NUM_TARJETA      = lt_viaspago[i].GetString("NUM_TARJETA");
                            VIASPAGO_resp.NUM_VALE_VISTA   = lt_viaspago[i].GetString("NUM_VALE_VISTA");
                            VIASPAGO_resp.PATENTE          = lt_viaspago[i].GetString("PATENTE");
                            VIASPAGO_resp.NUM_VENTA        = lt_viaspago[i].GetString("NUM_VENTA");
                            VIASPAGO_resp.PAGARE           = lt_viaspago[i].GetString("PAGARE");
                            VIASPAGO_resp.FECHA_EMISION    = lt_viaspago[i].GetString("FECHA_EMISION");
                            VIASPAGO_resp.NOMBRE_GIRADOR   = lt_viaspago[i].GetString("NOMBRE_GIRADOR");
                            VIASPAGO_resp.CARTA_CURSE      = lt_viaspago[i].GetString("CARTA_CURSE");
                            VIASPAGO_resp.NUM_TRANSFER     = lt_viaspago[i].GetString("NUM_TRANSFER");
                            VIASPAGO_resp.NUM_DEPOSITO     = lt_viaspago[i].GetString("NUM_DEPOSITO");
                            VIASPAGO_resp.CTA_BANCO        = lt_viaspago[i].GetString("CTA_BANCO");
                            VIASPAGO_resp.IFINAN           = lt_viaspago[i].GetString("IFINAN");
                            VIASPAGO_resp.CORRE            = lt_viaspago[i].GetString("CORRE");
                            VIASPAGO_resp.ZUONR            = lt_viaspago[i].GetString("ZUONR");
                            VIASPAGO_resp.HKONT            = lt_viaspago[i].GetString("HKONT");
                            VIASPAGO_resp.PRCTR            = lt_viaspago[i].GetString("PRCTR");
                            VIASPAGO_resp.ZNOP             = lt_viaspago[i].GetString("ZNOP");
                            ViasPago.Add(VIASPAGO_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");
                        Mensaje = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE");
                        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)");
                //}


                GC.Collect();
            }
            else
            {
                errormessage = retval;
            }


            GC.Collect();
        }
Beispiel #24
0
        public void datoslogin(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_EQUIPO)
        {
            ObjDatosLogin.Clear();
            IRfcTable lt_USR_CAJA;

            USR_CAJA USR_CAJA_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_USR_CAJA");
                BapiGetUser.SetValue("UNAME", P_UNAME);
                BapiGetUser.SetValue("TEMPORAL", P_TEMPORAL);
                BapiGetUser.SetValue("EQUIPO", P_EQUIPO);
                try
                {
                    BapiGetUser.Invoke(SapRfcDestination);
                    lt_USR_CAJA = BapiGetUser.GetTable("USR_CAJA");

                    //LLenamos la tabla de salida lt_DatGen
                    for (int i = 0; i < lt_USR_CAJA.RowCount; i++)
                    {
                        lt_USR_CAJA.CurrentIndex = i;
                        USR_CAJA_resp            = new USR_CAJA();

                        USR_CAJA_resp.ID_CAJA      = lt_USR_CAJA[i].GetString("ID_CAJA");
                        USR_CAJA_resp.NOM_CAJA     = lt_USR_CAJA[i].GetString("NOM_CAJA");
                        USR_CAJA_resp.USUARIO      = lt_USR_CAJA[i].GetString("USUARIO");
                        USR_CAJA_resp.TIPO_USUARIO = lt_USR_CAJA[i].GetString("TIPO_USUARIO");
                        USR_CAJA_resp.LAND         = lt_USR_CAJA[i].GetString("LAND");
                        USR_CAJA_resp.MONEDA       = lt_USR_CAJA[i].GetString("WAERS");

                        ObjDatosLogin.Add(USR_CAJA_resp);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message + ex.StackTrace);
                    errormessage = ex.Message;
                }
                if (errormessage == "NO_DATA")
                {
                    errormessage = "No existe usuario registrado en los datos maestros‏";
                }
            }
            else
            {
                errormessage = retval;
            }
            GC.Collect();
        }
Beispiel #25
0
        // Kiểm tra dữ liệu phát sinh
        public static string Prc_check_data_ps(string p_short_name, DataRow p_dr, RfcDestination p_sap)
        {
            string v_error_code = "";
            // Need a repository for the metadata from the ABAP Dictionary
            // of the corresponding destination system.
            RfcRepository v_repo = p_sap.Repository;
            IRfcFunction v_babi = v_repo.CreateFunction("ZFM_PSCD_MAPPING_TK_DC");
            IRfcStructure v_struc = v_babi.GetStructure("I_SOURCE");

            v_struc.SetValue("ROW_NUM", p_dr["STT"].ToString());
            v_struc.SetValue("DOC_TYPE", p_dr["LOAI"].ToString());
            v_struc.SetValue("TAX_OFFICE_CODE", p_dr["MA_CQT"].ToString());
            v_struc.SetValue("TIN", p_dr["TIN"].ToString());
            v_struc.SetValue("PROFIT_CENTER", p_dr["MA_CHUONG"].ToString());
            v_struc.SetValue("BUSINESS_AREA", p_dr["MA_KHOAN"].ToString());
            v_struc.SetValue("SEGMENT", p_dr["MA_TMUC"].ToString());
            v_struc.SetValue("PAY_GROUP", p_dr["TKHOAN"].ToString());
            v_struc.SetValue("POSTING_DATE", p_dr["NGAY_HTOAN"].ToString());
            v_struc.SetValue("START_PERIOD", p_dr["KY_PSINH_TU"].ToString());
            v_struc.SetValue("END_PERIOD", p_dr["KY_PSINH_DEN"].ToString());
            v_struc.SetValue("DUE_DATE", p_dr["HAN_NOP"].ToString());
            v_struc.SetValue("RETURN_CODE", p_dr["MA_TKHAI"].ToString());
            v_struc.SetValue("AMOUNT", p_dr["SO_TIEN"].ToString());

            v_babi.Invoke(p_sap);

            v_error_code = v_babi.GetString("E_ERROR_CODE");

            return v_error_code;
        }
Beispiel #26
0
        // Modify by ManhTV3 on 5/12/2011 - START
        // Kiểm tra dữ liệu nợ
        public static string Prc_check_data_no(string p_short_name, DataRow p_dr, RfcDestination p_sap)
        {
            RfcRepository v_repo = p_sap.Repository;

            IRfcFunction v_babi = v_repo.CreateFunction("ZFM_PSCD_MAPPING_DC");

            IRfcStructure v_struc = v_babi.GetStructure("I_SOURCE");

            v_struc.SetValue("ROW_NUM", p_dr["STT"].ToString());
            v_struc.SetValue("DOC_TYPE", p_dr["LOAI"].ToString());
            v_struc.SetValue("TAX_OFFICE_CODE", p_dr["MA_CQT"]);
            v_struc.SetValue("TIN", p_dr["TIN"].ToString());
            v_struc.SetValue("PROFIT_CENTER", p_dr["MA_CHUONG"].ToString());
            v_struc.SetValue("BUSINESS_AREA", p_dr["MA_KHOAN"].ToString());
            v_struc.SetValue("SEGMENT", p_dr["TMT_MA_TMUC"].ToString());
            v_struc.SetValue("PAY_GROUP", p_dr["TKHOAN"].ToString());
            v_struc.SetValue("POSTING_DATE", p_dr["NGAY_HACH_TOAN"].ToString());
            v_struc.SetValue("START_PERIOD", p_dr["KYKK_TU_NGAY"].ToString());
            v_struc.SetValue("END_PERIOD", p_dr["KYKK_DEN_NGAY"].ToString());
            v_struc.SetValue("DUE_DATE", p_dr["HAN_NOP"].ToString());
            v_struc.SetValue("RETURN_CODE", p_dr["DKT_MA"].ToString());
            v_struc.SetValue("AMOUNT", p_dr["NO_CUOI_KY"].ToString());

            v_babi.Invoke(p_sap);

            return v_babi.GetString("E_ERROR_CODE");
        }
Beispiel #27
0
 /// <summary>
 /// Invoca a la RFC para que prepare la tabla de retorno
 /// y luego la devuelve
 /// </summary>
 /// <param name="rfcDestination"></param>
 /// <param name="rfcFunction"></param>
 /// <returns></returns>
 private static IRfcTable getReturnTable(RfcDestination rfcDestination, IRfcFunction rfcFunction)
 {
     rfcFunction.Invoke(rfcDestination);
     return rfcFunction.GetTable(RFC_FUNCTION_RETURN_TABLE_NAME);
 }
        /// <summary>
        /// 获取SAP连接的实例
        /// </summary>
        /// <returns></returns>
        private static RfcDestination GetDestination()
        {
            if (SAPLogonConfigList.SystemList.ContainsKey(SystemName))
            {
                try
                {

                    destination = RfcDestinationManager.GetDestination(SAPLogonConfigList.SystemList[SystemName].GetParameters());
                }
                catch (Exception e)
                {
                    throw new SAPException(e.Message + "请在配置文件加上兼容配置");
                }
            }
            else
            {
                try
                {
                    destination = RfcDestinationManager.GetDestination(SystemName);
                }
                catch (Exception EE)
                {
                    //try
                    //{
                    //    RfcDestinationManager.RegisterDestinationConfiguration(new BackupDestinationConfiguration());
                    //    destination = RfcDestinationManager.GetDestination(SystemName);
                    //}
                    //catch (Exception e)
                    //{
                    //    throw new SAPException(e.Message + "请在配置文件加上兼容配置");
                    //}
                    throw new SAPException(EE.Message);
                }
            }

            return destination;
        }
Beispiel #29
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_LAND, string P_FECHA, string P_FILE, string P_ID_APERTURA, string P_ID_CAJA, string P_PAY_CURRENCY, List <PagosMasivosNuevo> ListaExc, List <VIAS_PAGO_MASIVO> viasPagoMasivos)
        {
            objReturn2.Clear();
            errormessage = "";
            message      = "";
            try
            {
                ESTATUS p_return;
                //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_PAGO_MASIVO");
                    BapiGetUser.SetValue("LAND", P_LAND);
                    BapiGetUser.SetValue("FECHA", Convert.ToDateTime(P_FECHA.Substring(0, 10)));
                    BapiGetUser.SetValue("PAY_CURRENCY", P_PAY_CURRENCY);
                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                    BapiGetUser.SetValue("ID_APERTURA", P_ID_APERTURA);

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

                    for (var i = 0; i < ListaExc.Count; i++)
                    {
                        GralDat.Append();
                        GralDat.SetValue("ROW", ListaExc[i].ROW);
                        GralDat.SetValue("COL", ListaExc[i].COL);
                        GralDat.SetValue("VALUE", ListaExc[i].VALUE);
                    }
                    BapiGetUser.SetValue("T_EXCEL", GralDat);

                    IRfcTable DetalleViasPago = BapiGetUser.GetTable("VIAS_PAGO_MASIVO");

                    for (var i = 0; i < viasPagoMasivos.Count; i++)
                    {
                        DetalleViasPago.Append();
                        DetalleViasPago.SetValue("MANDT", viasPagoMasivos[i].MANDT);
                        DetalleViasPago.SetValue("LAND", viasPagoMasivos[i].LAND);
                        DetalleViasPago.SetValue("ID_COMPROBANTE", viasPagoMasivos[i].ID_COMPROBANTE);
                        DetalleViasPago.SetValue("ID_DETALLE", viasPagoMasivos[i].ID_DETALLE);
                        DetalleViasPago.SetValue("ID_CAJA", viasPagoMasivos[i].ID_CAJA);
                        DetalleViasPago.SetValue("VIA_PAGO", viasPagoMasivos[i].VIA_PAGO);
                        DetalleViasPago.SetValue("MONTO", viasPagoMasivos[i].MONTO);
                        DetalleViasPago.SetValue("MONEDA", viasPagoMasivos[i].MONEDA);
                        DetalleViasPago.SetValue("BANCO", viasPagoMasivos[i].BANCO);
                        DetalleViasPago.SetValue("EMISOR", viasPagoMasivos[i].EMISOR);
                        DetalleViasPago.SetValue("NUM_CHEQUE", viasPagoMasivos[i].NUM_CHEQUE);
                        DetalleViasPago.SetValue("COD_AUTORIZACION", viasPagoMasivos[i].COD_AUTORIZACION);
                        DetalleViasPago.SetValue("NUM_CUOTAS", viasPagoMasivos[i].NUM_CUOTAS);
                        DetalleViasPago.SetValue("FECHA_VENC", Convert.ToDateTime(viasPagoMasivos[i].FECHA_VENC));
                        DetalleViasPago.SetValue("TEXTO_POSICION", viasPagoMasivos[i].TEXTO_POSICION);
                        DetalleViasPago.SetValue("ANEXO", viasPagoMasivos[i].ANEXO);
                        DetalleViasPago.SetValue("SUCURSAL", viasPagoMasivos[i].SUCURSAL);
                        DetalleViasPago.SetValue("NUM_CUENTA", viasPagoMasivos[i].NUM_CUENTA);
                        DetalleViasPago.SetValue("NUM_TARJETA", viasPagoMasivos[i].NUM_TARJETA);
                        DetalleViasPago.SetValue("NUM_VALE_VISTA", viasPagoMasivos[i].NUM_VALE_VISTA);
                        DetalleViasPago.SetValue("PATENTE", viasPagoMasivos[i].PATENTE);
                        DetalleViasPago.SetValue("NUM_VENTA", viasPagoMasivos[i].NUM_VENTA);
                        DetalleViasPago.SetValue("PAGARE", viasPagoMasivos[i].PAGARE);
                        DetalleViasPago.SetValue("FECHA_EMISION", Convert.ToDateTime(viasPagoMasivos[i].FECHA_EMISION));
                        DetalleViasPago.SetValue("NOMBRE_GIRADOR", viasPagoMasivos[i].NOMBRE_GIRADOR);
                        DetalleViasPago.SetValue("CARTA_CURSE", viasPagoMasivos[i].CARTA_CURSE);
                        DetalleViasPago.SetValue("NUM_TRANSFER", viasPagoMasivos[i].NUM_TRANSFER);
                        DetalleViasPago.SetValue("NUM_DEPOSITO", viasPagoMasivos[i].NUM_DEPOSITO);
                        DetalleViasPago.SetValue("CTA_BANCO", viasPagoMasivos[i].CTA_BANCO);
                        DetalleViasPago.SetValue("IFINAN", viasPagoMasivos[i].IFINAN);
                        DetalleViasPago.SetValue("ZUONR", viasPagoMasivos[i].ZUONR);
                        DetalleViasPago.SetValue("CORRE", viasPagoMasivos[i].CORRE);
                        DetalleViasPago.SetValue("HKONT", viasPagoMasivos[i].HKONT);
                        DetalleViasPago.SetValue("PRCTR", viasPagoMasivos[i].PRCTR);
                        DetalleViasPago.SetValue("ZNOP", viasPagoMasivos[i].ZNOP);
                    }
                    BapiGetUser.SetValue("VIAS_PAGO_MASIVO", DetalleViasPago);


                    BapiGetUser.Invoke(SapRfcDestination);

                    IRfcTable retorno = BapiGetUser.GetTable("ESTATUS");

                    for (var i = 0; i < retorno.RowCount; i++)
                    {
                        retorno.CurrentIndex = i;

                        p_return = new ESTATUS();

                        p_return.TYPE = retorno[i].GetString("TYPE");
                        if (retorno.GetString("TYPE") == "S")
                        {
                            message = message + " - " + retorno[i].GetString("MESSAGE");
                        }
                        if (retorno.GetString("TYPE") == "E")
                        {
                            errormessage = errormessage + " - " + retorno[i].GetString("MESSAGE");
                        }
                        p_return.ID         = retorno[i].GetString("ID");
                        p_return.NUMBER     = retorno[i].GetString("NUMBER");
                        p_return.MESSAGE    = retorno[i].GetString("MESSAGE");
                        p_return.LOG_NO     = retorno[i].GetString("LOG_NO");
                        p_return.LOG_MSG_NO = retorno[i].GetString("LOG_MSG_NO");
                        p_return.MESSAGE_V1 = retorno[i].GetString("MESSAGE_V1");
                        p_return.MESSAGE_V2 = retorno[i].GetString("MESSAGE_V2");
                        p_return.MESSAGE_V3 = retorno[i].GetString("MESSAGE_V3");
                        if (retorno[i].GetString("MESSAGE_V4") != "")
                        {
                            comprobante = retorno[i].GetString("MESSAGE_V4");
                        }
                        //p_return.MESSAGE_V4 = retorno[i].GetString("MESSAGE_V4");
                        p_return.PARAMETER = retorno[i].GetString("PARAMETER");
                        p_return.ROW       = retorno[i].GetString("ROW");
                        p_return.FIELD     = retorno[i].GetString("FIELD");
                        p_return.SYSTEM    = retorno[i].GetString("SYSTEM");
                        objReturn2.Add(p_return);
                    }
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message + ex.StackTrace);
                System.Windows.Forms.MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
Beispiel #30
0
 /// <summary>
 /// Devuelve la función RFC con un nombre determinado y de un destino SAP
 /// </summary>
 /// <param name="rfcDestination"></param>
 /// <returns></returns>
 private static IRfcFunction getRfcFunction(RfcDestination rfcDestination)
 {
     return rfcDestination.Repository.CreateFunction(RFC_FUNCTION_NAME);
 }
Beispiel #31
0
        // Kiểm tra dữ liệu tờ khai 10/KK-TNCN
        public static string Prc_check_data_tk10(string p_short_name, string p_tax_code, DataRow p_dr, RfcDestination p_sap, string p_ky_chot_dl)
        {
            // Bắt đầu một session
            RfcSessionManager.BeginContext(p_sap);
            RfcRepository v_repo = p_sap.Repository;
            IRfcFunction v_babi = v_repo.CreateFunction("ZBAPI_DETAIL_10_CHECK");
            IRfcStructure v_struc = v_babi.GetStructure("I_DATA");

            v_struc.SetValue("TAXPAYER_ID", p_dr["TIN"].ToString());
            v_struc.SetValue("START_PERIOD", p_dr["KYKK_TU_NGAY"].ToString());
            v_struc.SetValue("END_PERIOD", p_dr["KYKK_DEN_NGAY"].ToString());
            v_struc.SetValue("DUE_DATE", p_dr["KYLB_TU_NGAY"].ToString());
            v_struc.SetValue("A_F08_DOANH_THU_DU_KIEN", p_dr["DTHU_DKIEN"].ToString());
            v_struc.SetValue("A_F09_TY_LE_TNCT_DU_KIEN", p_dr["TL_THNHAP_DKIEN"].ToString());
            v_struc.SetValue("C_F10_TNCT_DU_KIEN", p_dr["THNHAP_CTHUE_DKIEN"].ToString());
            v_struc.SetValue("C_F11_GIAM_TRU_GC", p_dr["GTRU_GCANH"].ToString());
            v_struc.SetValue("A_F12_GIAM_TRU_BAN_THAN", p_dr["BAN_THAN"].ToString());
            v_struc.SetValue("A_F13_GIAM_TRU_NPT", p_dr["PHU_THUOC"].ToString());
            v_struc.SetValue("C_F14_THU_NHAP_TINH_THUE", p_dr["THNHAP_TTHUE_DKIEN"].ToString());
            v_struc.SetValue("C_F15_THUE_TNCN_DU_KIEN", p_dr["TNCN"].ToString());
            v_struc.SetValue("C_F16_THUE_PN_Q1", p_dr["PB01"].ToString());
            v_struc.SetValue("C_F16_KY_TINH_THUE_Q1", p_dr["KYTT01"].ToString());
            v_struc.SetValue("C_F16_KY_HACH_TOAN_Q1", p_dr["HT01"].ToString());
            v_struc.SetValue("C_F16_HAN_NOP_Q1", p_dr["HN01"].ToString());
            v_struc.SetValue("C_F17_THUE_PN_Q2", p_dr["PB02"].ToString());
            v_struc.SetValue("C_F17_KY_TINH_THUE_Q2", p_dr["KYTT02"].ToString());
            v_struc.SetValue("C_F17_KY_HACH_TOAN_Q2", p_dr["HT02"].ToString());
            v_struc.SetValue("C_F17_HAN_NOP_Q2", p_dr["HN02"].ToString());
            v_struc.SetValue("C_F18_THUE_PN_Q3", p_dr["PB03"].ToString());
            v_struc.SetValue("C_F18_KY_TINH_THUE_Q3", p_dr["KYTT03"].ToString());
            v_struc.SetValue("C_F18_KY_HACH_TOAN_Q3", p_dr["HT03"].ToString());
            v_struc.SetValue("C_F18_HAN_NOP_Q3", p_dr["HN03"].ToString());
            v_struc.SetValue("C_F19_THUE_PN_Q4", p_dr["PB04"].ToString());
            v_struc.SetValue("C_F19_KY_TINH_THUE_Q4", p_dr["KYTT04"].ToString());
            v_struc.SetValue("C_F19_KY_HACH_TOAN_Q4", p_dr["HT04"].ToString());
            v_struc.SetValue("C_F19_HAN_NOP_Q4", p_dr["HN04"].ToString());
            v_struc.SetValue("TAX_OFFICE_CODE", p_dr["MA_CQT"].ToString());
            v_struc.SetValue("ROW_NUM", p_dr["STT"].ToString());
            v_struc.SetValue("F13_MST_DLT", p_dr["MST_DTK"].ToString());
            v_struc.SetValue("F20_HOP_DONG_DLT_SO", p_dr["HD_DLT_SO"].ToString());
            v_struc.SetValue("F_HOP_DONG_DLT_NGAY", p_dr["HD_DLT_NGAY"].ToString());
            v_struc.SetValue("REVERSE_AMOUNT", p_dr["RV_SO_TIEN"].ToString());

            v_babi.SetValue("I_FILE", randomFileName(p_tax_code, p_ky_chot_dl));

            v_babi.Invoke(p_sap);
            // Kết thúc một session
            RfcSessionManager.EndContext(p_sap);
            return v_babi.GetString("E_ERROR_CODE");
        }
        public void tableIndivCapa(string plant, string workcenter, string onePerson, string morPerson, string startDate, string finishDate)
        {
            connect();
            RfcDestination rfcDest = RfcDestinationManager.GetDestination(parms);
            RfcRepository  rfcRep  = rfcDest.Repository;
            IRfcFunction   IReader = rfcRep.CreateFunction("ZSSCN_DYNAMIC_SELECT");

            IReader.SetValue("IV_SELECT", "A~PERNR A~ENAME C~START_DATE C~FINISH_DATE C~START_TIME C~FINISH_TIME C~NOTE");
            IReader.SetValue("IV_FROM", "/SSCN/LPERSON AS A INNER JOIN /SSCN/LPER_WKC AS B ON ( A~PERNR = B~PERNR ) INNER JOIN /SSCN/INDIV_CAPA AS C ON ( C~PERNR = B~PERNR )");
            string scenario = ScenarioContext.Current.ScenarioInfo.Title;

            switch (scenario)
            {
            case "Search by plant":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "'");
                break;

            case "Search by work center":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "'");
                break;

            case "Search by an specific person":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'");
                break;

            case "Search by a group of people":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR IN (" + morPerson + ")");
                break;

            case "Search by plant in an specific period":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND C~START_DATE GE '" + startDate + "' AND C~FINISH_DATE LE '" + finishDate + "'");
                break;

            case "Search by work center in an specific period":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND C~START_DATE GE '" + startDate + "' AND C~FINISH_DATE LE '" + finishDate + "'");
                break;

            case "Search by an specific person in a specific period":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "' AND C~START_DATE GE '" + startDate + "' AND C~FINISH_DATE LE '" + finishDate + "'");
                break;

            case "Search by a group of people in a specific period":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR IN (" + morPerson + ") AND C~START_DATE GE '" + startDate + "' AND C~FINISH_DATE LE '" + finishDate + "'");
                break;

            case "Registering a capacity for one person":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'");
                break;

            case "Registering a capacity for two or more people":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "'");
                break;

            case "Registering a capacity for one person that already has a capacity for that period, but without overlaping of time":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'");
                break;

            case "Deleting a capacity":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'");
                break;

            case "Deleting two or more capacities":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR IN (" + morPerson + ")");
                break;

            case "Editing a capacity":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'");
                break;

            case "Editing a capacity with overlap":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'");
                break;

            case "Copy a capacity":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'");
                break;

            case "Copy a capacity to more than one person":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR IN (" + morPerson + ")");
                break;

            case "Copy a capacity with overlap":
                IReader.SetValue("IV_WHERE", "B~WERKS = '" + plant + "' AND B~ARBPL = '" + workcenter + "' AND A~PERNR = '" + onePerson + "'");
                break;
            }

            IReader.Invoke(rfcDest);
            string optionData = (string)IReader.GetValue("EV_RESULT_SET");

            Directory.CreateDirectory("Relatorio");
            filePathTxt = filePathTxt + @"\pathIndivCapa.txt";
            System.IO.File.WriteAllText(filePathTxt, optionData);
            List <IndividualCapacity_SapTable> jsonList = JsonConvert.DeserializeObject <List <IndividualCapacity_SapTable> >(optionData);

            if (jsonList.Count() > 0)
            {
                //file
                CreateExcel4 = new IndividualCapacity_IndivCapExcel();
                CreateExcel4.CreateWorkbook(filePathXlsx = filePathXlsx + @"\DadosIndivCapa.xlsx");
                //Adicionar Celulas
                jsonList
                .Select((mandante, x) => new { mandante, position = x })
                .ToList()
                .ForEach(item => CreateExcel4.AddCell(item.position, item.mandante));
                //Salvando dados no excel
                CreateExcel4.Save();
            }
        }
 /// <summary>
 /// 内部处理,根据IDOC类型与扩展类型,创建空的IDOC。
 /// </summary>
 /// <param name="IdocType">IDOC类型</param>
 /// <param name="Enhancement">IDOC扩展类型</param>
 /// <param name="CreateEmpty">如果是TRUE,将不会复制标准的IDOC段</param>
 /// <returns></returns>
 private Idoc InternalCreateIdoc(string IdocType, string Enhancement, bool CreateEmpty)
 {
     des = SAPDestination.GetDesByName(m_sysName);
     IdocType = IdocType.ToUpper();
     IRfcFunction function = des.Repository.CreateFunction("IDOCTYPE_READ_COMPLETE");
     function["PI_IDOCTYP"].SetValue(IdocType);
     function["PI_CIMTYP"].SetValue(Enhancement);
     try
     {
         if (this.Logging)
         {
             //   function.SaveToXML("IDOCTYPE_READ_COMPLETE_01_" + DateTime.Now.Ticks.ToString() + ".xml");
             //   function.
         }
         function.Invoke(des);
         if (this.Logging)
         {
             //   function.SaveToXML("IDOCTYPE_READ_COMPLETE_02_" + DateTime.Now.Ticks.ToString() + ".xml");
         }
     }
     catch (RfcAbapException exception)
     {
         if (!exception.Message.Trim().Equals("SEGMENT_UNKNOWN"))
         {
             throw new Exception("Get IDoc failed: " + exception.ToString());
         }
         function["PI_RELEASE"].SetValue("    ");
         function.Invoke(des);
     }
     IRfcStructure structure = function.GetStructure("PE_HEADER");
     Idoc idoc = new Idoc(IdocType, Enhancement)
     {
         Connection = this,
         MANDT = this.des.Client,
         Description = structure["DESCRP"].ToString()
     };
     //IDOC类型的段定义
     IRfcTable table = function.GetTable("PT_SEGMENTS");
     Hashtable hashtable = new Hashtable();
     for (int i = 0; i < table.RowCount; i++)
     {
         //一般来说,第一行都是主要的段定义。表示一个抬头定义。
         if (table[i]["PARPNO"].GetValue().ToString() == "0000")
         {
             IdocSegment newSegment = new IdocSegment();
             if (!CreateEmpty)
             {
                 idoc.Segments.Add(newSegment);
             }
             newSegment.SegmentName = table[i]["SEGMENTTYP"].GetValue().ToString();
             newSegment.SegmentType = table[i]["SEGMENTDEF"].GetValue().ToString();
             newSegment.Description = table[i]["DESCRP"].GetValue().ToString();
             int num2 = Convert.ToInt32(table[i]["GRP_OCCMAX"].GetValue().ToString().Substring(5, 5));
             newSegment.MaxOccur = (num2 == 0) ? Convert.ToInt32(table[i]["OCCMAX"].GetValue().ToString().Substring(5, 5)) : num2;
             if (newSegment.MaxOccur == 0)
             {
                 newSegment.MaxOccur = 1;
             }
             string key = table[i]["NR"].GetValue().ToString();
             hashtable.Add(key, newSegment);
         }
         else
         {
             string str2 = table[i]["PARPNO"].GetValue().ToString();
             string str3 = table[i]["NR"].GetValue().ToString();
             IdocSegment segment2 = (IdocSegment)hashtable[str2];
             if (segment2 == null)
             {
                 throw new Exception("The idoc structure is not valid");
             }
             IdocSegment segment3 = new IdocSegment();
             if (!CreateEmpty)
             {
                 segment2.ChildSegments.Add(segment3);
             }
             segment3.SegmentName = table[i]["SEGMENTTYP"].GetValue().ToString();
             segment3.SegmentType = table[i]["SEGMENTDEF"].GetValue().ToString();
             segment3.Description = table[i]["DESCRP"].GetValue().ToString();
             int num3 = Convert.ToInt32(table[i]["GRP_OCCMAX"].GetValue().ToString().Substring(5, 5));
             segment3.MaxOccur = (num3 == 0) ? Convert.ToInt32(table[i]["OCCMAX"].GetValue().ToString().Substring(5, 5)) : num3;
             if (segment3.MaxOccur == 0)
             {
                 segment3.MaxOccur = 1;
             }
             hashtable.Add(str3, segment3);
         }
     }
     //查找段节点的结构定义。
     IRfcTable table2 = function.GetTable("PT_FIELDS");
     IDictionaryEnumerator enumerator = hashtable.GetEnumerator();
     while (enumerator.MoveNext())
     {
         IdocSegment segment4 = (IdocSegment)enumerator.Value;
         for (int j = 0; j < table2.RowCount; j++)
         {
             if (table2[j]["SEGMENTTYP"].GetValue().ToString().Trim() == segment4.SegmentName.Trim())
             {
                 segment4.Fields.Add(table2[j]["FIELDNAME"].GetValue().ToString(), table2[j]["DESCRP"].GetValue().ToString(), Convert.ToInt32(table2[j]["EXTLEN"].GetValue().ToString()), Convert.ToInt32(table2[j]["BYTE_FIRST"].GetValue().ToString()) - 0x40, table2[j]["DATATYPE"].GetValue().ToString(), "");
             }
         }
         idoc.StoreSegmentForFurtherUse(segment4.Clone());
     }
     return idoc;
 }
Beispiel #34
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);
        }
Beispiel #35
0
        /// <summary>
        /// 初始化环境,创建连接SAP的连接对象
        /// </summary>
        /// <returns>创建连接SAP的连接对象是否成功</returns>
        protected virtual object[] InitializeEnvironment()
        {
            try
            {
                mCurrentDestination = RfcDestinationManager.GetDestination(mCurrentDestinationStr);
                mCurrentRfcFunction = mCurrentDestination.Repository.CreateFunction(mCurrentFunctionStr);
            }
            catch (Exception e)
            {
                StringBuilder sb = new StringBuilder();
                Exception ex = e;
                while (ex != null)
                {
                    sb.Append(" { " + ex.Message.ToString() + " } ");
                    ex = ex.InnerException;
                }

                return new object[] { false, sb.ToString() };
            }

            return new object[] { true };
        }
        public void anulacioncomprobantes(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_PASSWORD2, string P_IDCAJA)
        {
            Retorno.Clear();
            Autorizado   = "";
            errormessage = "";
            IRfcStructure lt_retorno;
            //IRfcTable lt_retorno;
            //string Autorizado;
            //bool Valido;

            ESTADO 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("PASSWORD", P_PASSWORD2);
                BapiGetUser.SetValue("ID_CAJA", P_IDCAJA);
                BapiGetUser.SetValue("USUARIO", P_USUARIO);

                BapiGetUser.Invoke(SapRfcDestination);

                Autorizado = BapiGetUser.GetString("VALIDO");
                if (Autorizado == "X")
                {
                    Valido = true;
                }

                //  lt_retorno = BapiGetUser.GetTable("ESTADO");
                lt_retorno = BapiGetUser.GetStructure("ESTADO");
                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);
                    }
                    if (Mensaje != "")
                    {
                        System.Windows.MessageBox.Show(Mensaje);
                    }
                }
            }
            else
            {
                errormessage = retval;
            }
            GC.Collect();
        }
        /// <summary>
        /// 内部处理,根据IDOC类型与扩展类型,创建空的IDOC。
        /// </summary>
        /// <param name="IdocType">IDOC类型</param>
        /// <param name="Enhancement">IDOC扩展类型</param>
        /// <param name="CreateEmpty">如果是TRUE,将不会复制标准的IDOC段</param>
        /// <returns></returns>
        private Idoc InternalCreateIdoc(string IdocType, string Enhancement, bool CreateEmpty)
        {
            des      = SAPDestination.GetDesByName(m_sysName);
            IdocType = IdocType.ToUpper();
            IRfcFunction function = des.Repository.CreateFunction("IDOCTYPE_READ_COMPLETE");

            function["PI_IDOCTYP"].SetValue(IdocType);
            function["PI_CIMTYP"].SetValue(Enhancement);
            try
            {
                if (this.Logging)
                {
                    //   function.SaveToXML("IDOCTYPE_READ_COMPLETE_01_" + DateTime.Now.Ticks.ToString() + ".xml");
                    //   function.
                }
                function.Invoke(des);
                if (this.Logging)
                {
                    //   function.SaveToXML("IDOCTYPE_READ_COMPLETE_02_" + DateTime.Now.Ticks.ToString() + ".xml");
                }
            }
            catch (RfcAbapException exception)
            {
                if (!exception.Message.Trim().Equals("SEGMENT_UNKNOWN"))
                {
                    throw new Exception("Get IDoc failed: " + exception.ToString());
                }
                function["PI_RELEASE"].SetValue("    ");
                function.Invoke(des);
            }
            IRfcStructure structure = function.GetStructure("PE_HEADER");
            Idoc          idoc      = new Idoc(IdocType, Enhancement)
            {
                Connection  = this,
                MANDT       = this.des.Client,
                Description = structure["DESCRP"].ToString()
            };
            //IDOC类型的段定义
            IRfcTable table     = function.GetTable("PT_SEGMENTS");
            Hashtable hashtable = new Hashtable();

            for (int i = 0; i < table.RowCount; i++)
            {
                //一般来说,第一行都是主要的段定义。表示一个抬头定义。
                if (table[i]["PARPNO"].GetValue().ToString() == "0000")
                {
                    IdocSegment newSegment = new IdocSegment();
                    if (!CreateEmpty)
                    {
                        idoc.Segments.Add(newSegment);
                    }
                    newSegment.SegmentName = table[i]["SEGMENTTYP"].GetValue().ToString();
                    newSegment.SegmentType = table[i]["SEGMENTDEF"].GetValue().ToString();
                    newSegment.Description = table[i]["DESCRP"].GetValue().ToString();
                    int num2 = Convert.ToInt32(table[i]["GRP_OCCMAX"].GetValue().ToString().Substring(5, 5));
                    newSegment.MaxOccur = (num2 == 0) ? Convert.ToInt32(table[i]["OCCMAX"].GetValue().ToString().Substring(5, 5)) : num2;
                    if (newSegment.MaxOccur == 0)
                    {
                        newSegment.MaxOccur = 1;
                    }
                    string key = table[i]["NR"].GetValue().ToString();
                    hashtable.Add(key, newSegment);
                }
                else
                {
                    string      str2     = table[i]["PARPNO"].GetValue().ToString();
                    string      str3     = table[i]["NR"].GetValue().ToString();
                    IdocSegment segment2 = (IdocSegment)hashtable[str2];
                    if (segment2 == null)
                    {
                        throw new Exception("The idoc structure is not valid");
                    }
                    IdocSegment segment3 = new IdocSegment();
                    if (!CreateEmpty)
                    {
                        segment2.ChildSegments.Add(segment3);
                    }
                    segment3.SegmentName = table[i]["SEGMENTTYP"].GetValue().ToString();
                    segment3.SegmentType = table[i]["SEGMENTDEF"].GetValue().ToString();
                    segment3.Description = table[i]["DESCRP"].GetValue().ToString();
                    int num3 = Convert.ToInt32(table[i]["GRP_OCCMAX"].GetValue().ToString().Substring(5, 5));
                    segment3.MaxOccur = (num3 == 0) ? Convert.ToInt32(table[i]["OCCMAX"].GetValue().ToString().Substring(5, 5)) : num3;
                    if (segment3.MaxOccur == 0)
                    {
                        segment3.MaxOccur = 1;
                    }
                    hashtable.Add(str3, segment3);
                }
            }
            //查找段节点的结构定义。
            IRfcTable             table2     = function.GetTable("PT_FIELDS");
            IDictionaryEnumerator enumerator = hashtable.GetEnumerator();

            while (enumerator.MoveNext())
            {
                IdocSegment segment4 = (IdocSegment)enumerator.Value;
                for (int j = 0; j < table2.RowCount; j++)
                {
                    if (table2[j]["SEGMENTTYP"].GetValue().ToString().Trim() == segment4.SegmentName.Trim())
                    {
                        segment4.Fields.Add(table2[j]["FIELDNAME"].GetValue().ToString(), table2[j]["DESCRP"].GetValue().ToString(), Convert.ToInt32(table2[j]["EXTLEN"].GetValue().ToString()), Convert.ToInt32(table2[j]["BYTE_FIRST"].GetValue().ToString()) - 0x40, table2[j]["DATATYPE"].GetValue().ToString(), "");
                    }
                }
                idoc.StoreSegmentForFurtherUse(segment4.Clone());
            }
            return(idoc);
        }
        public void anulacioncomprobantes(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_COMPROBANTE, string P_APROBADOR_ANULACION,
                                          string P_TXT_ANULACION, string P_USUARIO, string P_IDCAJA, string P_ACCION)
        {
            Retorno.Clear();
            errormessage = "";
            IRfcTable lt_retorno;

            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_ANULA_REC_CAJA");
                BapiGetUser.SetValue("ID_COMPROBANTE", P_ID_COMPROBANTE);
                BapiGetUser.SetValue("APROBADOR_ANULACION", P_APROBADOR_ANULACION);
                BapiGetUser.SetValue("TXT_ANULACION", P_TXT_ANULACION);
                BapiGetUser.SetValue("ID_CAJA", P_IDCAJA);
                BapiGetUser.SetValue("USUARIO", P_USUARIO);
                BapiGetUser.SetValue("ACCION", P_ACCION);



                BapiGetUser.Invoke(SapRfcDestination);

                //lt_h_documentos = BapiGetUser.GetTable("CAB_COMP");
                //lt_d_documentos = BapiGetUser.GetTable("DET_COMP");
                lt_retorno = BapiGetUser.GetTable("RETORNO");


                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 (lt_retorno.GetString("TYPE") == "S")
                        {
                            Mensaje        = Mensaje + " - " + lt_retorno.GetString("MESSAGE") + " - " + lt_retorno.GetString("MESSAGE_V4");
                            NumComprobante = lt_retorno.GetString("MESSAGE_V4");
                        }
                        if (lt_retorno.GetString("TYPE") == "E")
                        {
                            errormessage = errormessage + " - " + 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);
                    }
                }
            }
            else
            {
                errormessage = retval;
            }
            GC.Collect();
        }
Beispiel #39
0
        /// <summary>
        /// 初始化RFC對象,連接參數從配置文件中取得
        /// </summary>
        public SAP_RFC_BASE(string BU)
        {
            RfcPara.Clear();
            RfcPara = new RfcConfigParameters();
            if (true)
            {
                RfcConfigParameters configParams = new RfcConfigParameters(); // Name property is neccessary, otherwise, NonInvalidParameterException will be thrown configParams.Add(RfcConfigParameters.Name, "ECC");
                //RfcPara.Add(RfcConfigParameters.SystemNumber, "05"); // instance number configParams.Add(RfcConfigParameters.SystemID, "D01");
                //RfcPara.Add(RfcConfigParameters.User, "HWV-BG");
                //RfcPara.Add(RfcConfigParameters.Password, "MESEDICU");
                //RfcPara.Add(RfcConfigParameters.Client, "811");
                //RfcPara.Add(RfcConfigParameters.Language, "ZF");
                //RfcPara.Add(RfcConfigParameters.MessageServerHost, "10.134.108.111");
                ////configParams.Add(RfcConfigParameters.GatewayHost,"10.134.108.122");
                //RfcPara.Add(RfcConfigParameters.LogonGroup, "CNSBG_800");
                //RfcPara.Add(RfcConfigParameters.SystemID, "CNP");
                //RfcPara.Add(RfcConfigParameters.Name, "CON1");

                // modify by fgg 2018.04.16 begin
                //RfcPara.Add(RfcConfigParameters.SystemNumber, "01");
                //RfcPara.Add(RfcConfigParameters.User, "HWV-BG");
                //RfcPara.Add(RfcConfigParameters.Password, "MESEDICU");
                //RfcPara.Add(RfcConfigParameters.Client, "811");
                //RfcPara.Add(RfcConfigParameters.Name, "CON" + (ConnCount++).ToString());
                //RfcPara.Add(RfcConfigParameters.Language, "ZF");
                //RfcPara.Add(RfcConfigParameters.PoolSize, "5");
                //RfcPara.Add(RfcConfigParameters.MaxPoolSize, "10");
                //RfcPara.Add(RfcConfigParameters.GatewayHost,"10.134.108.122");
                //RfcPara.Add(RfcConfigParameters.LogonGroup, "CNSBG");
                // modify by fgg 2018.04.16 end

                RfcPara.Add(RfcConfigParameters.SystemNumber, //"01");
                            System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_SystemNumber"]);
                RfcPara.Add(RfcConfigParameters.User,
                            System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_User"]);
                RfcPara.Add(RfcConfigParameters.Password,
                            System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_Password"]);
                RfcPara.Add(RfcConfigParameters.Client,
                            System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_Client"]);
                RfcPara.Add(RfcConfigParameters.Name, "CON" + (ConnCount++).ToString());
                RfcPara.Add(RfcConfigParameters.Language,
                            System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_Language"]);
                RfcPara.Add(RfcConfigParameters.PoolSize, "5");
                RfcPara.Add(RfcConfigParameters.MaxPoolSize, "10");
                //RfcPara.Add(RfcConfigParameters.MessageServerHost,
                //    System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_MessageServerHost"]);
                RfcPara.Add(RfcConfigParameters.GatewayHost,
                            "10.134.108.122");
                //RfcConfigParameters.MessageServerHost
                //RfcConfigParameters.MessageServerService
                RfcPara.Add(RfcConfigParameters.LogonGroup,
                            System.Configuration.ConfigurationSettings.AppSettings[BU + "_SAP_LogonGroup"]);
            }
            else
            {
                RfcPara.Add(RfcConfigParameters.AppServerHost,
                            "10.134.108.152");
                RfcPara.Add(RfcConfigParameters.SystemNumber, "00");
                RfcPara.Add(RfcConfigParameters.User, "NSGBG");
                //"NSGBG");
                RfcPara.Add(RfcConfigParameters.Password,
                            "MESEDICU");
                RfcPara.Add(RfcConfigParameters.Client,
                            "800");
                RfcPara.Add(RfcConfigParameters.Language,
                            "EN");
                RfcPara.Add(RfcConfigParameters.Name, "CON" + (ConnCount++).ToString());
                RfcPara.Add(RfcConfigParameters.PoolSize, "5");
                RfcPara.Add(RfcConfigParameters.MaxPoolSize, "10");
            }
            //RfcConfigParameters.LogonGroup

            RfcPara.Add(RfcConfigParameters.Codepage, "8300");

            RfcDest = RfcDestinationManager.GetDestination(RfcPara);
        }
Beispiel #40
0
        public static string GetAllVendor(string P_DATE_from, string P_DATE_TO)
        {
            string result = "";

            try
            {
                IRfcTable IRetTable = null;
                List <Z_MM_QUBE_LIFNR> Z_MM_QUBE_LIFNR_List = new List <Z_MM_QUBE_LIFNR>();
                RfcConfigParameters    parms   = RFC.GetSettingParms();
                RfcDestination         rfcDest = RfcDestinationManager.GetDestination(parms);
                RfcRepository          rfcRep  = rfcDest.Repository;
                IRfcFunction           IReader = rfcRep.CreateFunction("Z_MM_QUBE_LIFNR");

                IReader.SetValue("P_DATE_from", P_DATE_from);
                IReader.SetValue("P_DATE_TO", P_DATE_TO);

                IReader.Invoke(rfcDest);
                IRetTable            = IReader.GetTable("ET_LFA1");
                Z_MM_QUBE_LIFNR_List = IRetTable.AsQueryable().Select(x => new Z_MM_QUBE_LIFNR
                {
                    LIFNR  = x.GetString("LIFNR") ?? "",
                    NAME1  = x.GetString("NAME1") ?? "",
                    ZZAUTH = x.GetString("ZZAUTH") ?? "",
                    LAND1  = x.GetString("LAND1") ?? "",
                    SORTL  = x.GetString("SORTL") ?? "",
                    ERDAT  = x.GetString("ERDAT") ?? "",
                    UDATE  = x.GetString("UDATE") ?? ""
                }
                                                                      ).ToList();

                using (var db = new CubeRFCEntities())
                {
                    var VendorsList = db.Vendor.AsEnumerable().Select(x => x.BatchNo).ToList();
                    int BatchNo     = VendorsList.Count == 0?1:VendorsList.Max() + 1;

                    foreach (var item in Z_MM_QUBE_LIFNR_List)
                    {
                        db.Vendor.Add(new Vendor()
                        {
                            LIFNR      = item.LIFNR,
                            NAME1      = item.NAME1,
                            ZZAUTH     = item.ZZAUTH,
                            LAND1      = item.LAND1,
                            SORTL      = item.SORTL,
                            ERDAT      = DateTime.Parse(item.ERDAT),
                            UDATE      = item.UDATE == "0000-00-00" ? DateTime.Parse("1900-01-01") : DateTime.Parse(item.UDATE),
                            CreateDate = DateTime.Now,
                            BatchNo    = BatchNo
                        });
                    }

                    db.SaveChanges();
                }
                result = JsonConvert.SerializeObject(Z_MM_QUBE_LIFNR_List);
            }
            catch (Exception e)
            {
                result = e.ToString();
                //發送通知信給開發者
                string strMailTitle = "系統發生錯誤";
                string str_mailbody = e.ToString();
                Mail.Send(strMailTitle, result);
            }

            return(result);
        }
        public void pagodocumentosingreso(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_SOCIEDAD, List <DetalleViasPago> P_VIASPAGO, List <T_DOCUMENTOS> P_DOCSAPAGAR, string P_PAIS, string P_MONEDA, string P_CAJA, string P_CAJERO, string P_INGRESO, string P_APAGAR)
        {
            try
            {
                T_Retorno.Clear();
                pagomessage = "";
                status      = "";
                comprobante = "";
                message     = "";
                stringRfc   = "";
                IRfcTable lt_PAGO_DOCS;
                IRfcTable lt_PAGO_MESS;
                // CERR_CAJA CERR_CAJA_resp;
                ESTATUS retorno;
                T_Retorno.Clear();
                //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_REC_Y_FAC");
                    BapiGetUser.SetValue("ID_CAJA", P_CAJA);
                    BapiGetUser.SetValue("PAY_CURRENCY", P_MONEDA);
                    BapiGetUser.SetValue("LAND", P_PAIS);

                    BapiGetUser.SetValue("TOTAL_FACTURAS", Convert.ToDouble(P_APAGAR));
                    BapiGetUser.SetValue("TOTAL_VIAS", Convert.ToDouble(P_INGRESO));
                    P_INGRESO = P_INGRESO.Replace(",", "");
                    P_INGRESO = P_INGRESO.Replace(".", "");
                    double Diferencia = Convert.ToDouble(P_APAGAR) - Convert.ToDouble(P_INGRESO);
                    BapiGetUser.SetValue("DIFERENCIA", Convert.ToDouble(P_APAGAR) - Convert.ToDouble(P_INGRESO));
                    IRfcTable GralDat3 = BapiGetUser.GetTable("RETURN");
                    try
                    {
                        if (Diferencia != 0)
                        {
                            GralDat3.Append();
                            GralDat3.SetValue("TYPE", "X");
                            GralDat3.SetValue("ID", "");
                            GralDat3.SetValue("NUMBER", "");
                            GralDat3.SetValue("MESSAGE", "");
                            GralDat3.SetValue("LOG_NO", "");
                            GralDat3.SetValue("LOG_MSG_NO", "");
                            GralDat3.SetValue("MESSAGE_V1", "");
                            GralDat3.SetValue("MESSAGE_V2", "");
                            GralDat3.SetValue("MESSAGE_V3", "");
                            GralDat3.SetValue("MESSAGE_V4", "");
                            GralDat3.SetValue("PARAMETER", "");
                            GralDat3.SetValue("ROW", "");
                            GralDat3.SetValue("FIELD", "");
                            GralDat3.SetValue("SYSTEM", "");
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message + ex.StackTrace);
                    }
                    BapiGetUser.SetValue("RETURN", GralDat3);

                    IRfcTable GralDat = BapiGetUser.GetTable("VIAS_PAGO");
                    try
                    {
                        for (var i = 0; i < P_VIASPAGO.Count; i++)
                        {
                            GralDat.Append();
                            GralDat.SetValue("MANDT", P_VIASPAGO[i].MANDT);
                            GralDat.SetValue("LAND", P_VIASPAGO[i].LAND);
                            GralDat.SetValue("ID_COMPROBANTE", P_VIASPAGO[i].ID_COMPROBANTE);
                            GralDat.SetValue("ID_DETALLE", P_VIASPAGO[i].ID_DETALLE);
                            GralDat.SetValue("VIA_PAGO", P_VIASPAGO[i].VIA_PAGO);
                            double Monto = Convert.ToDouble(P_VIASPAGO[i].MONTO); // 100;
                            if (P_VIASPAGO[i].MONEDA == "CLP")
                            {
                                Monto = Monto / 100;
                                GralDat.SetValue("MONTO", Convert.ToString(Monto));
                            }
                            else
                            {
                                GralDat.SetValue("MONTO", P_VIASPAGO[i].MONTO);
                            }
                            GralDat.SetValue("MONEDA", P_VIASPAGO[i].MONEDA);
                            if (P_VIASPAGO[i].BANCO != "")
                            {
                                GralDat.SetValue("BANCO", P_VIASPAGO[i].BANCO.Substring(0, 3));
                            }
                            else
                            {
                                GralDat.SetValue("BANCO", P_VIASPAGO[i].BANCO);
                            }
                            GralDat.SetValue("EMISOR", P_VIASPAGO[i].EMISOR);
                            GralDat.SetValue("NUM_CHEQUE", P_VIASPAGO[i].NUM_CHEQUE);
                            GralDat.SetValue("COD_AUTORIZACION", P_VIASPAGO[i].COD_AUTORIZACION);
                            GralDat.SetValue("NUM_CUOTAS", P_VIASPAGO[i].NUM_CUOTAS);
                            GralDat.SetValue("FECHA_VENC", Convert.ToDateTime(P_VIASPAGO[i].FECHA_VENC));
                            GralDat.SetValue("TEXTO_POSICION", P_VIASPAGO[i].TEXTO_POSICION);
                            GralDat.SetValue("ANEXO", P_VIASPAGO[i].ANEXO);
                            GralDat.SetValue("SUCURSAL", P_VIASPAGO[i].SUCURSAL);
                            GralDat.SetValue("NUM_CUENTA", P_VIASPAGO[i].NUM_CUENTA);
                            GralDat.SetValue("NUM_TARJETA", P_VIASPAGO[i].NUM_TARJETA);
                            GralDat.SetValue("NUM_VALE_VISTA", P_VIASPAGO[i].NUM_VALE_VISTA);
                            GralDat.SetValue("PATENTE", P_VIASPAGO[i].PATENTE);
                            GralDat.SetValue("NUM_VENTA", P_VIASPAGO[i].NUM_VENTA);
                            GralDat.SetValue("PAGARE", P_VIASPAGO[i].PAGARE);
                            GralDat.SetValue("FECHA_EMISION", Convert.ToDateTime(P_VIASPAGO[i].FECHA_EMISION));
                            GralDat.SetValue("NOMBRE_GIRADOR", P_VIASPAGO[i].NOMBRE_GIRADOR);
                            GralDat.SetValue("CARTA_CURSE", P_VIASPAGO[i].CARTA_CURSE);
                            GralDat.SetValue("NUM_TRANSFER", P_VIASPAGO[i].NUM_TRANSFER);
                            GralDat.SetValue("NUM_DEPOSITO", P_VIASPAGO[i].NUM_DEPOSITO);
                            GralDat.SetValue("CTA_BANCO", P_VIASPAGO[i].CTA_BANCO);
                            GralDat.SetValue("IFINAN", P_VIASPAGO[i].IFINAN);
                            GralDat.SetValue("CORRE", P_VIASPAGO[i].CORRE);
                            GralDat.SetValue("ZUONR", P_VIASPAGO[i].ZUONR);
                            GralDat.SetValue("HKONT", P_VIASPAGO[i].HKONT);
                            GralDat.SetValue("PRCTR", P_VIASPAGO[i].PRCTR);
                            GralDat.SetValue("ZNOP", P_VIASPAGO[i].ZNOP);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message + ex.StackTrace);
                    }
                    BapiGetUser.SetValue("VIAS_PAGO", GralDat);

                    IRfcTable GralDat2 = BapiGetUser.GetTable("DOCUMENTOS");
                    try
                    {
                        for (var i = 0; i < P_DOCSAPAGAR.Count; i++)
                        {
                            GralDat2.Append();
                            GralDat2.SetValue("MANDT", "");
                            GralDat2.SetValue("LAND", P_PAIS);
                            GralDat2.SetValue("ID_COMPROBANTE", "");
                            GralDat2.SetValue("POSICION", "");
                            GralDat2.SetValue("CLIENTE", P_DOCSAPAGAR[i].RUTCLI);
                            GralDat2.SetValue("TIPO_DOCUMENTO", P_DOCSAPAGAR[i].CLASE_DOC);
                            GralDat2.SetValue("SOCIEDAD", P_DOCSAPAGAR[i].SOCIEDAD);
                            GralDat2.SetValue("NRO_DOCUMENTO", P_DOCSAPAGAR[i].NDOCTO);
                            GralDat2.SetValue("NRO_REFERENCIA", P_DOCSAPAGAR[i].NREF);
                            GralDat2.SetValue("CAJERO_RESP", P_CAJERO);
                            GralDat2.SetValue("CAJERO_GEN", "");
                            GralDat2.SetValue("ID_CAJA", P_CAJA);
                            GralDat2.SetValue("NRO_COMPENSACION", "");
                            GralDat2.SetValue("TEXTO_CABECERA", "");
                            GralDat2.SetValue("NULO", "");
                            GralDat2.SetValue("USR_ANULADOR", "");
                            GralDat2.SetValue("NRO_ANULACION", "");
                            GralDat2.SetValue("APROBADOR_ANULA", "");
                            GralDat2.SetValue("TXT_ANULACION", "");
                            GralDat2.SetValue("EXCEPCION", "");
                            GralDat2.SetValue("FECHA_DOC", Convert.ToDateTime(P_DOCSAPAGAR[i].FECHA_DOC));
                            GralDat2.SetValue("FECHA_VENC_DOC", Convert.ToDateTime(P_DOCSAPAGAR[i].FECVENCI));
                            GralDat2.SetValue("NUM_CUOTA", "");
                            GralDat2.SetValue("MONTO_DOC", P_DOCSAPAGAR[i].MONTO.Trim());
                            GralDat2.SetValue("MONTO_DIFERENCIA", 0);
                            GralDat2.SetValue("TEXTO_EXCEPCION", "");
                            GralDat2.SetValue("PARCIAL", "");
                            GralDat2.SetValue("APROBADOR_EX", "");
                            GralDat2.SetValue("MONEDA", P_DOCSAPAGAR[i].MONEDA.Trim());
                            GralDat2.SetValue("CLASE_CUENTA", "D");
                            GralDat2.SetValue("CLASE_DOC", P_DOCSAPAGAR[i].CLASE_DOC);
                            GralDat2.SetValue("NUM_CANCELACION", "");
                            GralDat2.SetValue("CME", P_DOCSAPAGAR[i].CME);
                            GralDat2.SetValue("NOTA_VENTA", "");
                            GralDat2.SetValue("CEBE", P_DOCSAPAGAR[i].CEBE);
                            GralDat2.SetValue("ACC", P_DOCSAPAGAR[i].ACC);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message + ex.StackTrace);
                    }
                    BapiGetUser.SetValue("DOCUMENTOS", GralDat2);

                    BapiGetUser.Invoke(SapRfcDestination);

                    //LLenamos los datos que retorna la estructura de la RFC
                    //pagomessage = BapiGetUser.GetString("E_MSJ");
                    //id_error = BapiGetUser.GetInt("E_ID_MSJ");
                    //message = BapiGetUser.GetString("E_AUGBL");

                    lt_PAGO_DOCS = BapiGetUser.GetTable("RETURN");
                    for (int i = 0; i < lt_PAGO_DOCS.Count(); i++)
                    {
                        lt_PAGO_DOCS.CurrentIndex = i;
                        retorno = new ESTATUS();
                        if (lt_PAGO_DOCS.GetString("TYPE") == "S")
                        {
                            message = message + " - " + lt_PAGO_DOCS.GetString("MESSAGE") + "\n";
                        }
                        if (lt_PAGO_DOCS.GetString("TYPE") == "E")
                        {
                            pagomessage = pagomessage + " - " + lt_PAGO_DOCS.GetString("MESSAGE") + "\n";
                        }
                        retorno.TYPE       = lt_PAGO_DOCS.GetString("TYPE");
                        retorno.ID         = lt_PAGO_DOCS.GetString("ID");
                        retorno.NUMBER     = lt_PAGO_DOCS.GetString("NUMBER");
                        retorno.MESSAGE    = lt_PAGO_DOCS.GetString("MESSAGE");
                        retorno.LOG_NO     = lt_PAGO_DOCS.GetString("LOG_NO");
                        retorno.LOG_MSG_NO = lt_PAGO_DOCS.GetString("LOG_MSG_NO");
                        retorno.MESSAGE_V1 = lt_PAGO_DOCS.GetString("MESSAGE_V1");
                        retorno.MESSAGE_V2 = lt_PAGO_DOCS.GetString("MESSAGE_V2");
                        retorno.MESSAGE_V3 = lt_PAGO_DOCS.GetString("MESSAGE_V3");
                        if (lt_PAGO_DOCS.GetString("MESSAGE_V4") != "")
                        {
                            comprobante = lt_PAGO_DOCS.GetString("MESSAGE_V4");
                        }
                        retorno.MESSAGE_V4 = lt_PAGO_DOCS.GetString("MESSAGE_V4");
                        retorno.PARAMETER  = lt_PAGO_DOCS.GetString("PARAMETER");
                        retorno.ROW        = lt_PAGO_DOCS.GetString("ROW");
                        retorno.FIELD      = lt_PAGO_DOCS.GetString("FIELD");
                        retorno.SYSTEM     = lt_PAGO_DOCS.GetString("SYSTEM");
                        T_Retorno.Add(retorno);
                    }
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine("{0} Exception caught.", ex);
                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
            }
        }
Beispiel #42
0
        public async Task BAPI_GOODSMVT_CREATE(IList <GOODSMVT_ITEM> dt)
        {
            try
            {
                RfcDestination dest       = GetDestination();
                RfcRepository  repository = dest.Repository;
                RfcSessionManager.BeginContext(dest);
                IRfcFunction func    = repository.CreateFunction("BAPI_GOODSMVT_CREATE");
                string       message = null;

                IRfcStructure rfcStructGMItem = null;
                IRfcTable     rfcTableGMItem  = func.GetTable("GOODSMVT_ITEM");

                IRfcStructure stru;
                IRfcTable     result;

                //set parm
                rfcStructGMItem = repository.GetStructureMetadata("BAPI2017_GM_ITEM_CREATE").CreateStructure();
                foreach (var item in dt)
                {
                    rfcStructGMItem.SetValue("MATERIAL", item.material);
                    rfcStructGMItem.SetValue("PLANT", item.plant);
                    rfcStructGMItem.SetValue("STGE_LOC", item.stge_loc);
                    rfcStructGMItem.SetValue("BATCH", item.batch);
                    rfcStructGMItem.SetValue("MOVE_TYPE", item.move_type);
                    rfcStructGMItem.SetValue("ENTRY_QNT", item.entry_qnt);
                    rfcStructGMItem.SetValue("COST_OBJ", item.cost_obj);
                    rfcStructGMItem.SetValue("ENTRY_UOM", item.entry_uom);
                }
                rfcTableGMItem.Insert(rfcStructGMItem);

                IRfcStructure rfcStructGMCode = null;
                rfcStructGMCode = func.GetStructure("GOODSMVT_CODE");

                if (dt.Count > 0)
                {
                    if (dt[0].move_type == "291")
                    {
                        rfcStructGMCode.SetValue("GM_CODE", "03");
                    }
                    else if (dt[0].move_type == "292")
                    {
                        rfcStructGMCode.SetValue("GM_CODE", "06");
                    }
                }

                IRfcStructure rfcStructGMHeader = null;
                rfcStructGMHeader = func.GetStructure("GOODSMVT_HEADER");
                rfcStructGMHeader.SetValue("PSTNG_DATE", "20191028");
                rfcStructGMHeader.SetValue("DOC_DATE", "20191028");



                //call function
                log.Debug("BAPI_GOODSMVT_CREATE => Start");
                func.Invoke(dest);
                log.Debug("BAPI_GOODSMVT_CREATE => Done");

                //log result
                result = func.GetTable("RETURN");

                for (int k = 0; k < result.RowCount; k++)
                {
                    stru    = result[k];
                    message = stru.GetValue("MESSAGE").ToString();
                    log.Debug(string.Format("MESSAGE:{0}", message));
                }

                if (result.RowCount == 0)
                {
                    string doc  = func.GetValue("MATERIALDOCUMENT").ToString();
                    string year = func.GetValue("MATDOCUMENTYEAR").ToString();

                    func = repository.CreateFunction("BAPI_TRANSACTION_COMMIT");
                    func.SetValue("WAIT", "X");
                    func.Invoke(dest);

                    stru = func.GetStructure("RETURN");
                    MessageBox.Show(doc);
                }
                else
                {
                    func = repository.CreateFunction("BAPI_TRANSACTION_ROLLBACK");
                    func.Invoke(dest);
                    MessageBox.Show(message);
                }

                RfcSessionManager.EndContext(dest);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #43
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") != "")
                            {
                            }
                            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);
            }
        }
Beispiel #44
0
        public void docsanulacion(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 P_IDCAJA, string P_TP_DOC)
        {
            CabeceraDocs.Clear();
            DetalleDocs.Clear();
            Retorno.Clear();
            IRfcTable      lt_h_documentos;
            IRfcTable      lt_d_documentos;
            IRfcTable      lt_retorno;
            FormatoMonedas FM = new FormatoMonedas();
            //  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_BUSCA_COMP_ANULAR");

                BapiGetUser.SetValue("ID_COMPROBANTE", P_DOCUMENTO);
                BapiGetUser.SetValue("RUT", P_RUT);
                BapiGetUser.SetValue("LAND", P_LAND);
                BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD);
                BapiGetUser.SetValue("ID_CAJA", P_IDCAJA);
                BapiGetUser.SetValue("TP_DOC", P_TP_DOC);
                BapiGetUser.Invoke(SapRfcDestination);

                lt_h_documentos = BapiGetUser.GetTable("CAB_COMP");
                lt_d_documentos = BapiGetUser.GetTable("DET_COMP");
                lt_retorno      = BapiGetUser.GetTable("RETORNO");

                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           = P_LAND;
                            DOCS_CABECERA_resp.ID_CAJA        = P_IDCAJA;
                            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");
                            if (lt_h_documentos[i].GetString("MONEDA") == "CLP")
                            {
                                DOCS_CABECERA_resp.MONTO_DOC = FM.FormatoMonedaChilena(lt_h_documentos[i].GetString("MONTO_DOC").Trim(), "2");
                            }
                            else
                            {
                                //string moneda = Convert.ToString(lt_h_documentos[i].GetString("MONTO_DOC"));
                                //decimal ValorAux = Convert.ToDecimal(moneda);
                                DOCS_CABECERA_resp.MONTO_DOC = FM.FormatoMonedaExtranjera(lt_h_documentos[i].GetString("MONTO_DOC").Trim());
                            }
                            //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");
                            DOCS_CABECERA_resp.VIA_PAGO        = lt_h_documentos[i].GetString("VIA_PAGO");
                            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");
                            if (lt_d_documentos[i].GetString("MONEDA") == "CLP")
                            {
                                DOCS_DETALLES_resp.MONTO = FM.FormatoMonedaChilena(lt_d_documentos[i].GetString("MONTO").Trim(), "1");
                            }
                            else
                            {
                                DOCS_DETALLES_resp.MONTO = FM.FormatoMonedaExtranjera(lt_d_documentos[i].GetString("MONTO").Trim());
                            }
                            //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");
                        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();
        }
 //public ReadTable()
 //{
 //    this.fields = new ArrayList();
 //    this.options = new ArrayList();
 //    this._PrimaryKeys = new ReadTableFieldCollection();
 //    this._TableName = "";
 //    this._Fields = new ReadTableFieldCollection();
 //    this._WhereClause = "";
 //    this._Delimiter = "";
 //    this._FunctionName = "";
 //    this.BackgroundRequestID = "";
 //    this.BufferLocation = "";
 //    this._LastPrimaryKey = "";
 //}
 public ReadTable(string sysName)
 {
     this.fields = new ArrayList();
     this.options = new ArrayList();
     this._PrimaryKeys = new ReadTableFieldCollection();
     this._TableName = "";
     this._Fields = new ReadTableFieldCollection();
     this._WhereClause = "";
     this._Delimiter = "";
     this._FunctionName = "";
     this.BackgroundRequestID = "";
     this.BufferLocation = "";
     this._LastPrimaryKey = "";
     this._des = SAPDestination.GetDesByName(sysName);
     //if (Connection.Codepage.Equals("8000"))
     //{
     //    this._Delimiter = "|";
     //}
     //Connection.Log("ReadTable() Connection.Codepage = " + Connection.Codepage);
 }
        public void ValidarEfectivo(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_SOCIEDAD, string P_PAIS, string P_CAJA, string P_CAJERO, string ViaPago, string IdApertura)
        {
            IRfcTable       lt_RESUMEN_VP;
            VALIDAREFECTIVO valEfec;

            try
            {
                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();

                if (string.IsNullOrEmpty(retval))
                {
                    RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination(connectorSap.connectorConfig);
                    RfcRepository  SapRfcRepository  = SapRfcDestination.Repository;

                    IRfcFunction BapiGetUser = SapRfcRepository.CreateFunction("ZSCP_RFC_GET_MON_EFEC");
                    BapiGetUser.SetValue("ID_CAJA", P_CAJA);
                    BapiGetUser.SetValue("USUARIO", P_CAJERO);
                    BapiGetUser.SetValue("ID_APERTURA", IdApertura);

                    BapiGetUser.SetValue("SOCIEDAD", P_SOCIEDAD);
                    BapiGetUser.SetValue("VIA_PAGO", ViaPago);

                    BapiGetUser.Invoke(SapRfcDestination);

                    lt_RESUMEN_VP = BapiGetUser.GetTable("RESUMEN_VP");

                    for (int i = 0; i < lt_RESUMEN_VP.Count(); i++)
                    {
                        lt_RESUMEN_VP.CurrentIndex = i;
                        valEfec = new VALIDAREFECTIVO();

                        valEfec.LAND         = lt_RESUMEN_VP[i].GetString("LAND");
                        valEfec.ID_CAJA      = lt_RESUMEN_VP[i].GetString("ID_CAJA");
                        valEfec.SOCIEDAD     = lt_RESUMEN_VP[i].GetString("SOCIEDAD");
                        valEfec.SOCIEDAD_TXT = lt_RESUMEN_VP[i].GetString("SOCIEDAD_TXT");
                        valEfec.VIA_PAGO     = lt_RESUMEN_VP[i].GetString("VIA_PAGO");
                        valEfec.TEXT1        = lt_RESUMEN_VP[i].GetString("TEXT1");
                        valEfec.MONEDA       = lt_RESUMEN_VP[i].GetString("MONEDA");
                        valEfec.MONTO        = lt_RESUMEN_VP[i].GetString("MONTO");
                        valEfec.CANT_DOCS    = lt_RESUMEN_VP[i].GetString("CANT_DOCS");
                        validar.Add(valEfec);
                    }
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.Write(e.StackTrace);
                throw new Exception();
            }
            finally
            {
                lt_RESUMEN_VP = null;
                valEfec       = null;
            }
        }
Beispiel #47
0
 /// <summary>
 /// Realiza commit de los cambios realizados mediante una función RFC
 /// </summary>
 /// <param name="rfcFunction"></param>
 /// <param name="rfcDestination"></param>
 private static void commitDataInsertion(IRfcFunction rfcFunction, RfcDestination rfcDestination)
 {
     RfcTransaction trans = new RfcTransaction();
     trans.AddFunction(rfcFunction);
     trans.Commit(rfcDestination);
 }
        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);
            }
        }
 // Methods
 public QueryHelper(string sysName)
 {
     this._des = SAPDestination.GetDesByName(sysName);
 }
Beispiel #50
0
        private List <AM_SAP> getDivizionOrganization(Dictionary <string, string> openWith, string parentExternalCode, string organizationId)
        {
            try
            {
                RfcDestinationManager.RegisterDestinationConfiguration(new ZSMK_SAP_Config());
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
            }
            RfcDestination destination = RfcDestinationManager.GetDestination("RFC_EAH");
            IRfcFunction   function    = null;
            string         strDate     = DateTime.Today.ToString("yyyyMMdd");

            IFormatProvider culture = new System.Globalization.CultureInfo("ru-RU", true);
            string          format  = "yyyy-MM-dd";
            List <AM_SAP>   list    = new List <AM_SAP>();
            string          prefix  = "";

            try
            {
                function = destination.Repository.CreateFunction("ZP_GET_OSP");
                foreach (KeyValuePair <string, string> kvp in openWith)
                {
                    function.SetValue(kvp.Key, kvp.Value);
                    if (kvp.Key == "IM_WERKS")
                    {
                        prefix = kvp.Value;
                    }
                }

                function.Invoke(destination);
            }
            catch (RfcBaseException e)
            {
                System.Diagnostics.Debug.WriteLine(e.ToString());
            }

            if (function != null)
            {
                //Get the function table parameter COMPANYCODE_LIST
                IRfcTable codes = function.GetTable("PIT_OBJECTS");
                if (codes.RowCount == 0)
                {
                    System.Diagnostics.Debug.WriteLine("Данные не выбраны");
                }
                else
                {
                    //Iterate over all rows in the table COMPANYCODE_LIST
                    DateTime dt = DateTime.MinValue;

                    for (int i = 0; i < codes.RowCount; i++)
                    {
                        codes.CurrentIndex = i;
                        AM_SAP amSap = new AM_SAP();

                        if (codes.GetString("OTYPE") == "P")
                        {
                            amSap.OBJID = "1111" + codes.GetString("OBJID").TrimStart('0');
                        }
                        else
                        {
                            amSap.OBJID = prefix + codes.GetString("OBJID");
                        }
                        amSap.SOBID = prefix + codes.GetString("SOBID");
                        amSap.OTYPE = codes.GetString("OTYPE");
                        amSap.PRIOX = codes.GetString("PRIOX");
                        amSap.PROZT = codes.GetDouble("PROZT");
                        dt          = DateTime.MinValue;
                        DateTime.TryParseExact(codes.GetString("SBEGDA"), format, culture, DateTimeStyles.AssumeLocal, out dt);
                        amSap.SBEGDA = dt;
                        amSap.SCLAS  = codes.GetString("SCLAS");
                        dt           = DateTime.MinValue;
                        DateTime.TryParseExact(codes.GetString("SENDDA"), format, culture, DateTimeStyles.AssumeLocal, out dt);
                        amSap.SENDDA  = dt;
                        amSap.SHORT   = codes.GetString("SHORT");
                        amSap.STEXT   = codes.GetString("STEXT");
                        amSap.LEV_HIE = codes.GetInt("LEV_HIE");

                        dt = DateTime.MinValue;
                        DateTime.TryParseExact(codes.GetString("BEGDA"), format, culture, DateTimeStyles.AssumeLocal, out dt);
                        amSap.BEGDA = dt;

                        dt = DateTime.MinValue;
                        DateTime.TryParseExact(codes.GetString("ENDDA"), format, culture, DateTimeStyles.AssumeLocal, out dt);
                        amSap.ENDDA     = dt;
                        amSap.BUKRS     = "";
                        amSap.PERNR     = codes.GetString("PERNR");
                        amSap.R_01      = codes.GetString("R_01");
                        amSap.R_02      = codes.GetString("R_02");
                        amSap.R_03      = codes.GetString("R_03");
                        amSap.R_04      = codes.GetString("R_04");
                        amSap.R_05      = codes.GetString("R_05");
                        amSap.R_06      = codes.GetString("R_06");
                        amSap.R_07      = codes.GetString("R_07");
                        amSap.GESCH     = codes.GetString("GESCH");
                        amSap.PERSK     = codes.GetString("PERSK");
                        amSap.PERSG     = codes.GetString("PERSG");
                        amSap.STRINF_ID = codes.GetString("STRINF_ID");
                        dt = DateTime.MinValue;
                        DateTime.TryParseExact(codes.GetString("DATP"), format, culture, DateTimeStyles.AssumeLocal, out dt);
                        amSap.DATP       = dt;
                        amSap.VERB       = codes.GetString("VERB");
                        amSap.SHOPNUMBER = prefix;
                        amSap.ISSHOP     = false;
                        if (amSap.SHORT == "EAH")
                        {
                            amSap.ISSHOP = true;
                            amSap.SOBID  = parentExternalCode;
                        }

                        dt = DateTime.MinValue;
                        DateTime.TryParseExact(codes.GetString("BEGDA_D"), format, culture, DateTimeStyles.AssumeLocal, out dt);
                        amSap.BEGDA_D = dt;
                        dt            = DateTime.MinValue;
                        DateTime.TryParseExact(codes.GetString("ENDDA_D"), format, culture, DateTimeStyles.AssumeLocal, out dt);
                        amSap.ENDDA_D  = dt;
                        amSap.MVZ      = DataGlobals.MVZ_EVRAZRUDA_DIVIZION;
                        amSap.MVZ_NAME = getMVZName(organizationId);
                        list.Add(amSap);
                    }
                }
            }
            return(list);
        }
Beispiel #51
0
        private void Prc_ktra_du_lieu(string p_short_name,  RfcDestination p_sap, string p_table_name)
        {
            string _query = @"SELECT rowid, a.*
                                            FROM " + p_table_name + @" a
                                           WHERE short_name = '" + p_short_name + "'";
            DataTable _dt = _ora.exeQuery(_query);
            int _so_ban_ghi_loi = 0;
            string v_error_code = ""; // Biến lưu chuỗi mã lỗi
            for (int i = 0; i < _dt.Rows.Count; i++)
            {
                DataRow _dr = _dt.Rows[i];
                if (p_table_name.Equals("TB_NO"))
                {
                    //TKTQ_PCK_ORA.prc_ktra_du_lieu_no(p_short_name);
                    v_error_code = TKTQ_CHECK_DATA.Prc_check_data_no(p_short_name, _dr, p_sap);
                }
                else if (p_table_name.Equals("TB_PS"))
                {
                    //TKTQ_PCK_ORA.prc_ktra_du_lieu_ps(p_short_name);
                    v_error_code = TKTQ_CHECK_DATA.Prc_check_data_ps(p_short_name, _dr, p_sap);
                }
                else
                {
                    v_error_code = TKTQ_CHECK_DATA.Prc_check_data_tk10(p_short_name, _dr, p_sap);
                }

                string[] v_err_id = v_error_code.Split('-');
                if (v_err_id.Length > 0)
                {
                    _so_ban_ghi_loi++;

                    foreach (string err_id in v_err_id)
                    {
                        if (err_id.Equals("") == false)
                        {
                            CLS_DATA_ERROR _error = new CLS_DATA_ERROR(p_short_name, _dr["ROWID"].ToString(), p_table_name, err_id, "");

                            _query = @"INSERT INTO tb_data_error(short_name, rid, table_name, err_id, field_name)
                                                    VALUES ('" + _error.short_name + "', '"
                                                       + _error.rid + "', '"
                                                       + _error.table_name + "', '"
                                                       + _error.err_id + "', null)";
                            _ora.exeUpdate(_query);
                        }
                    }
                }
            }
            AddToListView(2, "   + Hoàn thành việc kiểm tra dữ liệu");
        }
Beispiel #52
0
/*
 *      evt später inmplementieren
 *      public const string tabMara = "MARA";
 *      public const string tabMakt = "MAKT";
 *      public const string feldMatNr = "MATNR";
 *      public const string feldMatKurzText = "MAKTX";
 */
        static void Main(string[] args)
        {
            DestConfig destCfg = new DestConfig();                           //Instanz erzeugen

            RfcDestinationManager.RegisterDestinationConfiguration(destCfg); //registriere Instanz im DestinationManager
            Console.Write(" Verbindung :");
            String strVerb = Console.ReadLine();

            // Destinationparameter setzen
            RfcConfigParameters configParams = new RfcConfigParameters();

            if ("test".Equals(strVerb))
            {
                configParams.Add(RfcConfigParameters.Name, "test");
                configParams.Add(RfcConfigParameters.Language, "DE");
                configParams.Add(RfcConfigParameters.Client, "100");
                configParams.Add(RfcConfigParameters.AppServerHost, "mmm.nnn.ooo.3");
                configParams.Add(RfcConfigParameters.PeakConnectionsLimit, "5");    // Max Anzahl Verbindungen
                configParams.Add(RfcConfigParameters.ConnectionIdleTimeout, "600"); // 10 min
                configParams.Add(RfcConfigParameters.SystemNumber, "00");
                configParams.Add(RfcConfigParameters.User, "testexample");
                configParams.Add(RfcConfigParameters.Password, "testexample");
                destCfg.AddDestination(configParams);
            }
            else
            {
                configParams[RfcConfigParameters.Name] = strVerb;
                configParams.Add(RfcConfigParameters.Language, "DE");
                Console.WriteLine("Client : ");
                configParams[RfcConfigParameters.Client] = Console.ReadLine();
                Console.WriteLine("Server : ");
                configParams[RfcConfigParameters.AppServerHost] = Console.ReadLine();
                configParams.Add(RfcConfigParameters.PeakConnectionsLimit, "5");    // Max Anzahl Verbindungen
                configParams.Add(RfcConfigParameters.ConnectionIdleTimeout, "600"); // 10 min
                configParams.Add(RfcConfigParameters.SystemNumber, "00");
                Console.WriteLine("Nutzer : ");
                configParams[RfcConfigParameters.User] = Console.ReadLine();
                Console.WriteLine("password : "******"\nConfigured Destination in main: {0} [ {1} ]", destination.Name, destination.Parameters.ToString());

            //ping
            Console.WriteLine("für ping : Enter ");
            Console.ReadLine();
            //  destCfg.PingDestination(strVerb);
            Console.WriteLine("working with  : {0}", strVerb);
            destCfg.PingDestination(strVerb);

            Console.WriteLine("Auftragsnummer : ");
            string   strAufNrToQuery = Console.ReadLine();
            SapQuery newQuery        = new SapQuery();

            string strMatNr        = "";
            string strGesMenge     = "";
            string strGesFailMenge = "";

            newQuery.getMatNr(strAufNrToQuery, destination, ref strMatNr, ref strGesMenge, ref strGesFailMenge);
            string strAusMatNr = strMatNr.TrimStart('0');

            Console.WriteLine("Materialnummer:{0}, Gesamtmenge ist: {1}, Fail-Menge : {2}", strAusMatNr, strGesMenge, strGesFailMenge);
            Console.ReadLine();
            string strMatKurzText = newQuery.getMatKurzText(strMatNr, destination);

            Console.WriteLine("MatrKurzText :{0}", strMatKurzText);
            Console.ReadLine();
            Console.WriteLine("am ende der Funktion");
            Console.ReadLine();
        }
Beispiel #53
0
 public RfcProvider(RfcDestination rfc)
 {
     Rfc = rfc;
 }
Beispiel #54
0
        public void emitirnotasdecredito(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_MONEDA, string P_PAIS
                                         , List <T_DOCUMENTOS> P_DOCSAPAGAR, string P_CHKTRIB)
        {
            try
            {
                RETURN2 retorno;

                T_DOCUMENTOS docs;

                //DETALLE_REND detallerend;
                T_Retorno.Clear();
                documentos.Clear();
                errormessage = "";
                message      = "";
                IdCaja       = "";
                Efectivo     = "0";

                IRfcTable ls_RETORNO;
                IRfcTable lt_DOCS;

                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_REC_Y_FAC_NC");

                    BapiGetUser.SetValue("ID_CAJA", P_ID_CAJA);
                    BapiGetUser.SetValue("PAY_CURRENCY", P_MONEDA);
                    BapiGetUser.SetValue("LAND", P_PAIS);
                    IRfcTable GralDat2 = BapiGetUser.GetTable("DOCUMENTOS");
                    try
                    {
                        for (var i = 0; i < P_DOCSAPAGAR.Count; i++)
                        {
                            GralDat2.Append();
                            GralDat2.SetValue("NDOCTO", P_DOCSAPAGAR[i].NDOCTO);
                            GralDat2.SetValue("MONTO", P_DOCSAPAGAR[i].MONTO);
                            GralDat2.SetValue("MONTOF", P_DOCSAPAGAR[i].MONTOF);
                            GralDat2.SetValue("MONEDA", P_DOCSAPAGAR[i].MONEDA);
                            GralDat2.SetValue("LAND", P_DOCSAPAGAR[i].LAND);
                            GralDat2.SetValue("FECVENCI", P_DOCSAPAGAR[i].FECVENCI);
                            GralDat2.SetValue("CONTROL_CREDITO", P_DOCSAPAGAR[i].CONTROL_CREDITO);
                            GralDat2.SetValue("CEBE", P_DOCSAPAGAR[i].CEBE);
                            GralDat2.SetValue("COND_PAGO", P_DOCSAPAGAR[i].COND_PAGO);
                            GralDat2.SetValue("RUTCLI", P_DOCSAPAGAR[i].RUTCLI);
                            GralDat2.SetValue("NOMCLI", P_DOCSAPAGAR[i].NOMCLI);
                            GralDat2.SetValue("ESTADO", P_DOCSAPAGAR[i].ESTADO);
                            GralDat2.SetValue("ICONO", P_CHKTRIB);
                            GralDat2.SetValue("DIAS_ATRASO", P_DOCSAPAGAR[i].DIAS_ATRASO);
                            string MontoAux = "";
                            MontoAux = P_DOCSAPAGAR[i].MONTO_ABONADO;
                            MontoAux = MontoAux.Replace(",", "");
                            MontoAux = MontoAux.Replace(".", "");
                            GralDat2.SetValue("MONTO_ABONADO", MontoAux);
                            MontoAux = P_DOCSAPAGAR[i].MONTOF_ABON;
                            MontoAux = MontoAux.Replace(",", "");
                            MontoAux = MontoAux.Replace(".", "");
                            GralDat2.SetValue("MONTOF_ABON", MontoAux);
                            MontoAux = P_DOCSAPAGAR[i].MONTO_PAGAR;
                            MontoAux = MontoAux.Replace(",", "");
                            MontoAux = MontoAux.Replace(".", "");
                            GralDat2.SetValue("MONTO_PAGAR", MontoAux);
                            MontoAux = P_DOCSAPAGAR[i].MONTOF_PAGAR;
                            MontoAux = MontoAux.Replace(",", "");
                            MontoAux = MontoAux.Replace(".", "");
                            GralDat2.SetValue("MONTOF_PAGAR", MontoAux);
                            GralDat2.SetValue("NREF", P_DOCSAPAGAR[i].NREF);
                            GralDat2.SetValue("FECHA_DOC", P_DOCSAPAGAR[i].FECHA_DOC);
                            GralDat2.SetValue("COD_CLIENTE", P_DOCSAPAGAR[i].COD_CLIENTE);
                            GralDat2.SetValue("SOCIEDAD", P_DOCSAPAGAR[i].SOCIEDAD);
                            GralDat2.SetValue("CLASE_DOC", P_DOCSAPAGAR[i].CLASE_DOC);
                            GralDat2.SetValue("CLASE_CUENTA", P_DOCSAPAGAR[i].CLASE_CUENTA);
                            GralDat2.SetValue("CME", P_DOCSAPAGAR[i].CME);
                            GralDat2.SetValue("ACC", P_DOCSAPAGAR[i].ACC);
                            GralDat2.SetValue("FACT_SD_ORIGEN", P_DOCSAPAGAR[i].FACT_SD_ORIGEN);
                            GralDat2.SetValue("FACT_ELECT", P_DOCSAPAGAR[i].FACT_ELECT);
                            GralDat2.SetValue("ID_COMPROBANTE", P_DOCSAPAGAR[i].ID_COMPROBANTE);
                            GralDat2.SetValue("ID_CAJA", P_DOCSAPAGAR[i].ID_CAJA);
                            GralDat2.SetValue("LAND", P_DOCSAPAGAR[i].LAND);
                            GralDat2.SetValue("BAPI", P_DOCSAPAGAR[i].BAPI);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message + ex.StackTrace);
                        //System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                    }
                    BapiGetUser.SetValue("DOCUMENTOS", GralDat2);


                    BapiGetUser.Invoke(SapRfcDestination);
                    //BapiGetUser.SetValue("I_VBELN",P_NUMDOCSD);
                    //IRfcTable GralDat = BapiGetUser.GetTable("VIAS_PAGO");
                    lt_DOCS = BapiGetUser.GetTable("DOCUMENTOS");

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

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

                                docs.MONEDA          = lt_DOCS[i].GetString("MONEDA");
                                docs.FECVENCI        = lt_DOCS[i].GetString("FECVENCI");
                                docs.CONTROL_CREDITO = lt_DOCS[i].GetString("CONTROL_CREDITO");
                                docs.CEBE            = lt_DOCS[i].GetString("CEBE");
                                docs.COND_PAGO       = lt_DOCS[i].GetString("COND_PAGO");
                                docs.RUTCLI          = lt_DOCS[i].GetString("RUTCLI");
                                docs.NOMCLI          = lt_DOCS[i].GetString("NOMCLI");
                                docs.ESTADO          = lt_DOCS[i].GetString("ESTADO");
                                docs.ICONO           = lt_DOCS[i].GetString("ICONO");
                                docs.DIAS_ATRASO     = lt_DOCS[i].GetString("DIAS_ATRASO");
                                if (lt_DOCS[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_DOCS[i].GetString("MONTOF_ABON").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux;
                                    if ((Valor == "00") | (Valor == "0"))
                                    {
                                        ValorAux = Convert.ToDecimal(Valor);
                                    }
                                    else
                                    {
                                        ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    }
                                    docs.MONTOF_ABON = string.Format("{0:0,0}", ValorAux);
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DOCS[i].GetString("MONTOF_ABON"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    docs.MONTOF_ABON = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //if (lt_DOCS[i].GetString("MONTOF_ABON") == "")
                                //{
                                //    indice = lt_DOCS[i].GetString("MONTO_ABONADO").IndexOf(',');
                                //    Monto = lt_DOCS[i].GetString("MONTO_ABONADO").Substring(0, indice - 1);
                                //    docs.MONTOF = Monto;
                                //}
                                //else
                                //{
                                //    docs.MONTOF_ABON = lt_DOCS[i].GetString("MONTOF_ABON");
                                //}
                                if (lt_DOCS[i].GetString("MONEDA") == "CLP")
                                {
                                    string Valor = lt_DOCS[i].GetString("MONTOF_PAGAR").Trim();
                                    if (Valor.Contains("-"))
                                    {
                                        Valor = "-" + Valor.Replace("-", "");
                                    }
                                    Valor = Valor.Replace(".", "");
                                    Valor = Valor.Replace(",", "");
                                    decimal ValorAux = Convert.ToDecimal(Valor);
                                    if ((Valor == "00") | (Valor == "0"))
                                    {
                                        ValorAux = Convert.ToDecimal(Valor);
                                    }
                                    else
                                    {
                                        ValorAux = Convert.ToDecimal(Valor.Substring(0, Valor.Length - 2));
                                    }
                                    docs.MONTOF_PAGAR = string.Format("{0:0,0}", ValorAux);
                                }
                                else
                                {
                                    string  moneda   = Convert.ToString(lt_DOCS[i].GetString("MONTOF_PAGAR"));
                                    decimal ValorAux = Convert.ToDecimal(moneda);
                                    docs.MONTOF_PAGAR = string.Format("{0:0,0.##}", ValorAux);
                                }
                                //if (lt_DOCS[i].GetString("MONTOF_PAGAR") == "")
                                //{
                                //    indice = lt_DOCS[i].GetString("MONTO_PAGAR").IndexOf(',');
                                //    Monto = lt_DOCS[i].GetString("MONTO_PAGAR").Substring(0, indice - 1);
                                //    docs.MONTOF = Monto;
                                //}
                                //else
                                //{
                                //    docs.MONTOF_PAGAR = lt_DOCS[i].GetString("MONTOF_PAGAR");
                                //}
                                docs.NREF           = lt_DOCS[i].GetString("NREF");
                                docs.FECHA_DOC      = lt_DOCS[i].GetString("FECHA_DOC");
                                docs.COD_CLIENTE    = lt_DOCS[i].GetString("COD_CLIENTE");
                                docs.SOCIEDAD       = lt_DOCS[i].GetString("SOCIEDAD");
                                docs.CLASE_DOC      = lt_DOCS[i].GetString("CLASE_DOC");
                                docs.CLASE_CUENTA   = lt_DOCS[i].GetString("CLASE_CUENTA");
                                docs.CME            = lt_DOCS[i].GetString("CME");
                                docs.ACC            = lt_DOCS[i].GetString("ACC");
                                docs.FACT_SD_ORIGEN = lt_DOCS[i].GetString("FACT_SD_ORIGEN");
                                docs.FACT_ELECT     = lt_DOCS[i].GetString("FACT_ELECT");
                                docs.ID_COMPROBANTE = lt_DOCS[i].GetString("ID_COMPROBANTE");
                                docs.ID_CAJA        = lt_DOCS[i].GetString("ID_CAJA");
                                docs.LAND           = lt_DOCS[i].GetString("LAND");
                                documentos.Add(docs);
                            }
                            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)");
                    }

                    ls_RETORNO = BapiGetUser.GetTable("RETURN");
                    try
                    {
                        for (int i = 0; i < ls_RETORNO.Count(); i++)
                        {
                            ls_RETORNO.CurrentIndex = i;
                            retorno = new RETURN2();
                            if (ls_RETORNO.GetString("TYPE") == "S")
                            {
                                message    = message + "-" + ls_RETORNO.GetString("MESSAGE") + ":" + ls_RETORNO.GetString("MESSAGE_V1").Trim() + "\n";
                                NumComprob = ls_RETORNO.GetString("MESSAGE_V4").Trim();
                            }
                            if (ls_RETORNO.GetString("TYPE") == "E")
                            {
                                errormessage = errormessage + " - " + ls_RETORNO.GetString("MESSAGE") + "\n";
                            }
                            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);
            }
        }
Beispiel #55
0
        private void Prc_ktra_du_lieu(string p_short_name, RfcDestination p_sap, string p_table_name)
        {
            string _query = @"SELECT rowid, a.* FROM " + p_table_name + @" a WHERE short_name = '" + p_short_name + "'";
            DataTable _dt = _ora.exeQuery(_query);
            int _so_ban_ghi_loi = 0;
            //string v_error_code = ""; // Biến lưu chuỗi mã lỗi
            string v_pck = null;

            // Modify
            DateTime v_ngay_chot = (DateTime)this.dgrTaxOffice.CurrentRow.Cells["cl_ky_no_den"].Value;
            //MessageBox.Show(v_ngay_chot.ToString("dd-MMM-yyyy"));
            //string v_ky_chot_dl = v_ngay_chot.Year.ToString() + v_ngay_chot.Month + v_ngay_chot.Day;
            string v_ky_chot_dl = v_ngay_chot.ToString("yyyy/MM/dd");
            v_ky_chot_dl = v_ky_chot_dl.Replace("/", "");
            string v_tax_code = this.dgrTaxOffice.CurrentRow.Cells["cl_tax_code"].Value.ToString();

            _ora.TransStart();

            int count = 0;

            try
            {
                // Xóa dữ liệu cũ
                _query = null;
                _query += "DELETE FROM tb_data_error WHERE short_name='";
                _query += p_short_name;
                _query += "' AND table_name='";
                _query += p_table_name + "'";
                _ora.TransExecute(_query);

                _query = "DELETE FROM tb_unsplit_data_error WHERE short_name = '" + p_short_name + "' AND table_name = '" + p_table_name + "'";
                _ora.TransExecute(_query);

                if (p_table_name.Equals("TB_NO"))
                {
                    count = 0;

                    v_pck = "PRC_KTRA_NO";

                    // Content: kiểm tra dữ liệu theo yêu cầu bổ sung
                    // Sử dụng các thủ tục trong Oracle để kiểm tra dữ liệu
                    _query = "call PCK_CHECK_DATA.prc_ktra_du_lieu_no('" + p_short_name + "', '" + v_ngay_chot.ToString("dd-MMM-yyyy") + "')";
                    _ora.exeQuery(_query);

                    // Modify by ManhTV3 on 14/03/2012
                    // Content: Sử dụng hàm check dữ liệu trong SAP để kiểm tra dữ liệu
                    StringBuilder _ins_query = new StringBuilder();
                    _ins_query.Append("BEGIN ");
                    for (int i = 0; i < _dt.Rows.Count; i++)
                    {

                        string v_error_code = ""; // Errors code

                        DataRow _dr = _dt.Rows[i];

                        v_error_code = TKTQ_CHECK_DATA.Prc_check_data_no(p_short_name, _dr, p_sap);

                        if (!v_error_code.Equals(""))
                        {
                            _ins_query.Append(@"INSERT INTO tb_unsplit_data_error(short_name, rid, table_name, err_string)
                                                    VALUES ('" + p_short_name + "', '"
                                                                   + _dr["ROWID"].ToString() + "', '"
                                                                   + p_table_name + "', '"
                                                                   + v_error_code + "');");
                        }
                        count++;
                    }
                    _ins_query.Append(" dbms_output.put_line('Successful'); END;");
                    _ora.TransExecute(_ins_query.ToString());
                }
                else if (p_table_name.Equals("TB_PS"))
                {
                    count = 0;

                    v_pck = "PRC_KTRA_PS";

                    // Content: kiểm tra dữ liệu theo yêu cầu bổ sung
                    _query = "call PCK_CHECK_DATA.prc_ktra_du_lieu_ps('" + p_short_name + "', '" + v_ngay_chot.ToString("dd-MMM-yyyy") + "')";
                    _ora.exeQuery(_query);

                    // Modify by ManhTV3 on 14/03/2012
                    // Content: Sử dụng hàm check dữ liệu trong SAP để kiểm tra dữ liệu
                    StringBuilder _ins_query = new StringBuilder();
                    _ins_query.Append("BEGIN ");
                    for (int i = 0; i < _dt.Rows.Count; i++)
                    {
                        string v_error_code = ""; // Errors code

                        DataRow _dr = _dt.Rows[i];

                        v_error_code = TKTQ_CHECK_DATA.Prc_check_data_ps(p_short_name, _dr, p_sap);

                        if (!v_error_code.Equals(""))
                        {
                            _ins_query.Append(@"INSERT INTO tb_unsplit_data_error(short_name, rid, table_name, err_string)
                                                    VALUES ('" + p_short_name + "', '"
                                                                   + _dr["ROWID"].ToString() + "', '"
                                                                   + p_table_name + "', '"
                                                                   + v_error_code + "');");
                        }
                        count++;
                    }
                    _ins_query.Append(" dbms_output.put_line('Successful'); END;");
                    _ora.TransExecute(_ins_query.ToString());
                }
                else
                {
                    count = 0;
                    v_pck = "PRC_KTRA_TK";

                    // Content: kiểm tra dữ liệu theo yêu cầu bổ sung
                    _query =
                        "call PCK_CHECK_DATA.prc_ktra_du_lieu_tk('" + p_short_name + "', '"
                                                                    + v_ngay_chot.ToString("dd-MMM-yyyy") + "')";
                    _ora.exeQuery(_query);

                    // Modify by ManhTV3 on 14/03/2012
                    // Content: Sử dụng hàm check dữ liệu trong SAP để kiểm tra dữ liệu
                    StringBuilder _ins_query = new StringBuilder();
                    _ins_query.Append("BEGIN ");
                    for (int i = 0; i < _dt.Rows.Count; i++)
                    {
                        string v_error_code = ""; // Errors code

                        DataRow _dr = _dt.Rows[i];

                        v_error_code =
                            TKTQ_CHECK_DATA.Prc_check_data_tk10(p_short_name, v_tax_code, _dr, p_sap, v_ky_chot_dl);

                        if (!v_error_code.Equals(""))
                        {
                            _ins_query.Append(@"INSERT INTO tb_unsplit_data_error(short_name, rid, table_name, err_string)
                                                    VALUES ('" + p_short_name + "', '"
                                                                   + _dr["ROWID"].ToString() + "', '"
                                                                   + p_table_name + "', '"
                                                                   + v_error_code + "');");
                        }
                        count++;
                    }
                    _ins_query.Append(" dbms_output.put_line('Successful'); END;");
                    _ora.TransExecute(_ins_query.ToString());
                }

                _query = "call PCK_CHECK_DATA.prc_insert_splitted_err('" + p_short_name + "', '" + p_table_name + "')";
                _ora.TransExecute(_query);

                // Ghi log
                _query = null;
                _query = "call PCK_TRACE_LOG.prc_ins_log_vs('" + p_short_name + "', '" + v_pck + "', 'Y', null)";
                _ora.TransExecute(_query);
                _ora.TransCommit();
            }
            catch (Exception e)
            {
                // Ghi log
                _query = null;
                _query += "call PCK_TRACE_LOG.prc_ins_log_vs('" + p_short_name + "', '" + v_pck + "', 'N', '";
                _query += e.Message.ToString().Replace("'", "\"") + "')";
                _ora.TransExecute(_query);
                _ora.TransRollBack();
                AddToListView(2, "    + Rows: " + count + "/" + _dt.Rows.Count);
                AddToListView(0, "    + Error: " + e.Message.ToString());
            }
        }
Beispiel #56
0
        public void monitor(string P_DATUM, 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_SOCIEDAD)
        {
            try
            {
                ObjDatosMonitor.Clear();
                IRfcTable lt_GET_MONITOR;

                T_DOCUMENTOS GET_MONITOR_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_MONITOR");
                    BapiGetUser.SetValue("DATUM", Convert.ToDateTime(P_DATUM));
                    BapiGetUser.SetValue("I_BUKRS", P_SOCIEDAD);

                    BapiGetUser.Invoke(SapRfcDestination);

                    lt_GET_MONITOR = BapiGetUser.GetTable("T_DOCUMENTOS");
                    //lt_PART_ABIERTAS = BapiGetUser.GetTable("ZCLSP_TT_LISTA_DOCUMENTOS");
                    if (lt_GET_MONITOR.Count > 0)
                    {
                        //LLenamos la tabla de salida lt_DatGen
                        for (int i = 0; i < lt_GET_MONITOR.RowCount; i++)
                        {
                            lt_GET_MONITOR.CurrentIndex = i;
                            GET_MONITOR_resp            = new T_DOCUMENTOS();

                            GET_MONITOR_resp.SOCIEDAD        = lt_GET_MONITOR[i].GetString("SOCIEDAD");
                            GET_MONITOR_resp.NDOCTO          = lt_GET_MONITOR[i].GetString("NDOCTO");
                            GET_MONITOR_resp.NREF            = lt_GET_MONITOR[i].GetString("NREF");
                            GET_MONITOR_resp.CLASE_CUENTA    = lt_GET_MONITOR[i].GetString("CLASE_CUENTA");
                            GET_MONITOR_resp.CLASE_DOC       = lt_GET_MONITOR[i].GetString("CLASE_DOC");
                            GET_MONITOR_resp.COD_CLIENTE     = lt_GET_MONITOR[i].GetString("COD_CLIENTE");
                            GET_MONITOR_resp.RUTCLI          = lt_GET_MONITOR[i].GetString("RUTCLI");
                            GET_MONITOR_resp.NOMCLI          = lt_GET_MONITOR[i].GetString("NOMCLI");
                            GET_MONITOR_resp.CEBE            = lt_GET_MONITOR[i].GetString("CEBE");
                            GET_MONITOR_resp.FECHA_DOC       = lt_GET_MONITOR[i].GetString("FECHA_DOC");
                            GET_MONITOR_resp.FECVENCI        = lt_GET_MONITOR[i].GetString("FECVENCI");
                            GET_MONITOR_resp.DIAS_ATRASO     = lt_GET_MONITOR[i].GetString("DIAS_ATRASO");
                            GET_MONITOR_resp.ESTADO          = lt_GET_MONITOR[i].GetString("ESTADO");
                            GET_MONITOR_resp.ICONO           = lt_GET_MONITOR[i].GetString("ICONO");
                            GET_MONITOR_resp.MONEDA          = lt_GET_MONITOR[i].GetString("MONEDA");
                            GET_MONITOR_resp.ACC             = lt_GET_MONITOR[i].GetString("ACC");
                            GET_MONITOR_resp.CLASE_CUENTA    = lt_GET_MONITOR[i].GetString("CLASE_CUENTA");
                            GET_MONITOR_resp.COND_PAGO       = lt_GET_MONITOR[i].GetString("COND_PAGO");
                            GET_MONITOR_resp.CME             = lt_GET_MONITOR[i].GetString("CME");
                            GET_MONITOR_resp.CONTROL_CREDITO = lt_GET_MONITOR[i].GetString("CONTROL_CREDITO");
                            string Monto  = "";
                            int    indice = 0;
                            if (lt_GET_MONITOR[i].GetString("MONTO").Contains(","))
                            {
                                indice = lt_GET_MONITOR[i].GetString("MONTO").IndexOf(',');
                                Monto  = lt_GET_MONITOR[i].GetString("MONTO").Substring(0, indice - 1);
                                GET_MONITOR_resp.MONTOF = Monto;
                            }
                            else
                            {
                                GET_MONITOR_resp.MONTOF = lt_GET_MONITOR[i].GetString("MONTOF");
                            }
                            if (lt_GET_MONITOR[i].GetString("MONTO").Contains(","))
                            {
                                indice = lt_GET_MONITOR[i].GetString("MONTO").IndexOf(',');
                                Monto  = lt_GET_MONITOR[i].GetString("MONTO").Substring(0, indice - 1);
                                GET_MONITOR_resp.MONTO = Monto;
                            }
                            else
                            {
                                GET_MONITOR_resp.MONTO = lt_GET_MONITOR[i].GetString("MONTO");
                            }
                            if (lt_GET_MONITOR[i].GetString("MONTO_ABONADO").Contains(","))
                            {
                                indice = lt_GET_MONITOR[i].GetString("MONTO_ABONADO").IndexOf(',');
                                Monto  = lt_GET_MONITOR[i].GetString("MONTO_ABONADO").Substring(0, indice - 1);
                                GET_MONITOR_resp.MONTOF = Monto;
                            }
                            else
                            {
                                GET_MONITOR_resp.MONTOF_ABON = lt_GET_MONITOR[i].GetString("MONTOF_ABON");
                            }
                            if (lt_GET_MONITOR[i].GetString("MONTO_PAGAR").Contains(","))
                            {
                                indice = lt_GET_MONITOR[i].GetString("MONTO_PAGAR").IndexOf(',');
                                Monto  = lt_GET_MONITOR[i].GetString("MONTO_PAGAR").Substring(0, indice - 1);
                                GET_MONITOR_resp.MONTOF = Monto;
                            }
                            else
                            {
                                GET_MONITOR_resp.MONTOF_PAGAR = lt_GET_MONITOR[i].GetString("MONTOF_PAGAR");
                            }

                            ObjDatosMonitor.Add(GET_MONITOR_resp);
                        }
                    }
                    //else
                    //{
                    //    MessageBox.Show("No existen registros para este fecha");
                    //}
                    GC.Collect();
                }
                else
                {
                    errormessage = retval;
                }
                GC.Collect();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message + ex.StackTrace);
                System.Windows.MessageBox.Show(ex.Message + ex.StackTrace);
                GC.Collect();
            }
        }
Beispiel #57
0
 public IdocStatus GetCurrentStatus(String system)
 {
     if (String.IsNullOrWhiteSpace(system))
     {
         throw new SAPException("请指定系统连接名!");
     }
     this.des = SAPDestination.GetDesByName(system);
     return GetCurrentStatus();
 }