/// <summary>
        /// Preenche um ComboBox com os dados de uma query.
        /// </summary>
        /// <param name="comboBox"></param>
        /// <param name="recordset">O Recordset a ser utilizado para obter os dados.</param>
        /// <param name="query">A query a ser utilizada para obter os dados.</param>
        /// <param name="fieldValue">O nome do Field que contém o valor para ComboBox.</param>
        /// <param name="fieldDescription">O nome do Field que contém a descrição para o ComboBox.</param>
        /// <param name="noLock">Indica se a query deve ser executada na forma de apenas leiura, isto é, se houver alguma escrita no momento não vai esperar a conclusão desta para continuar.</param>
        public static Recordset AddValuesFromQuery(this ComboBox comboBox, Recordset recordset, string query,
                                            string fieldValue = null, string fieldDescription = null, bool noLock = true)
        {
            if (recordset == null) throw new ArgumentNullException("recordset");
            if (query == null) throw new ArgumentNullException("query");

            recordset.DoQuery(noLock ? " SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED " + query : query);

            return AddValuesFromRecordset(comboBox, recordset, fieldValue, fieldDescription);
        }
Ejemplo n.º 2
0
        private void btnLoad_Click(object sender, EventArgs e)
        {
            _con = new SapConnectionOld();
            _con.Connect();
            _oItens = _con.Comany.GetBusinessObject(BoObjectTypes.oItems);
            _recordSet = _con.Comany.GetBusinessObject(BoObjectTypes.BoRecordset);
            _recordSet.DoQuery("select ItemCode from OITM");
            _oItens.Browser.Recordset = _recordSet;

            _oItens.Browser.MoveFirst();

            SetFields();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Get Floor Service Lines for Mass Invoicing
        /// </summary>
        /// <param name="cardCode"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        public List <FloorServiceLineDTO> GetFloorServiceLines(string cardCode, string whsCode, string type)
        {
            Recordset lObjRecordset  = null;
            var       results        = new List <FloorServiceLineDTO>();
            var       lDicParameters = new Dictionary <string, string>();

            try {
                string lStrQuery = this.GetSQL("GetFloorServiceLines" + type);

                lDicParameters.Add("CardCode", cardCode);
                lDicParameters.Add("Location", whsCode);

                lObjRecordset = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);

                lObjRecordset.DoQuery(lStrQuery.Inject(lDicParameters));

                if (lObjRecordset.RecordCount > 0)
                {
                    for (int i = 0; i < lObjRecordset.RecordCount; i++)
                    {
                        var floorServiceLine = new FloorServiceLineDTO();
                        Parallel.ForEach(lObjRecordset.Fields.OfType <SAPbobsCOM.Field>(), field => {
                            floorServiceLine.GetType().GetProperty(field.Name).SetValue(floorServiceLine, field.Value);
                        });
                        results.Add(floorServiceLine);
                        lObjRecordset.MoveNext();
                    }
                }
            }
            catch (Exception e) {
                HandleException(e, "MassInvoicingDAO(GetDistribution)");
            }
            finally {
                MemoryUtility.ReleaseComObject(lObjRecordset);
            }

            return(results);
        }
Ejemplo n.º 4
0
        public string GetBatchLine(string pStrCardCode, string pStrWhsCode)
        {
            Dictionary <string, string> lLstStrParameters = new Dictionary <string, string>();

            lLstStrParameters.Add("CardCode", pStrCardCode);
            lLstStrParameters.Add("WhsCode", pStrWhsCode);

            string x = this.GetSQL("GetBatchWGoodIssues").Inject(lLstStrParameters);


            Recordset lObjRecordSet = null;

            try
            {
                lObjRecordSet = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);

                string lStrQuery = this.GetSQL("GetBatchWGoodIssues").Inject(lLstStrParameters);

                lObjRecordSet.DoQuery(lStrQuery);

                if (lObjRecordSet.RecordCount > 0)
                {
                    return((string)lObjRecordSet.Fields.Item(1).Value);
                }
                else
                {
                    return("");
                }
            }
            catch (Exception lObjException)
            {
                throw new DAOException(lObjException.Message, lObjException);
            }
            finally
            {
                MemoryUtility.ReleaseComObject(lObjRecordSet);
            }
        }
Ejemplo n.º 5
0
        public List <SupplierDocumentEntity> SupplierWithBalance()
        {
            List <SupplierDocumentEntity> rows = new List <SupplierDocumentEntity>();

            string Sql = "";

            Sql       += "SELECT ";
            Sql       += "DocNum	AS DocumentNumber,";
            Sql       += "CardCode  AS SupplierCode,";
            Sql       += "CardName  AS SupplierName,";
            Sql       += "DocDate   AS DocumentDate,";
            Sql       += "DocTotal  AS DocumentAmount,";
            Sql       += "DocCur    AS DocumentCurrency ";
            Sql       += "FROM OPCH ";
            Sql       += "WHERE DATEDIFF(DAY, DocDate, GETDATE()) > 0 AND ";
            Sql       += "DocStatus = 'O' ORDER BY CardName, DocDate ASC ";
            _RecordSet = Company.GetBusinessObject(BoObjectTypes.BoRecordset);
            _RecordSet.DoQuery(Sql);
            while (!_RecordSet.EoF)
            {
                SupplierDocumentEntity row = new SupplierDocumentEntity();
                var documentNumber         = _RecordSet.Fields.Item(0).Value;
                var documentAmount         = _RecordSet.Fields.Item(4).Value;

                row.DocumentNumber   = ((int)documentNumber).ToString();
                row.SupplierCode     = (string)_RecordSet.Fields.Item(1).Value;
                row.SupplierName     = (string)_RecordSet.Fields.Item(2).Value;
                row.DocumentDate     = (DateTime)_RecordSet.Fields.Item(3).Value;
                row.DocumentAmount   = documentAmount;
                row.DocumentCurrency = (string)_RecordSet.Fields.Item(5).Value;
                row.DueDays          = (DateTime.Now - row.DocumentDate).Days;
                rows.Add(row);
                _RecordSet.MoveNext();
            }
            Company.Disconnect();

            return(rows);
        }
Ejemplo n.º 6
0
        /*
         * realiza a consulta para as funcoes Min ou Max do banco
         */
        private string MIN_MAX(string tableName, string func, string fieldName = "Code", string where = "")
        {
            string min_max = "0";

            try
            {
                Recordset rs = (Recordset)oConnection.Company.GetBusinessObject(BoObjectTypes.BoRecordset);
                rs.DoQuery(
                    "SELECT ISNULL(" + func + "(CONVERT(INT, " + fieldName + ")), 0)[" + fieldName +
                    "] FROM " + tableName + (where.Equals("") ? "" : " WHERE " + where));
                min_max = Convert.ToString(rs.Fields.Item(fieldName).Value);
            }
            catch (Exception e)
            {
                min_max = null;
                //oConnection.App.SetStatusBarMessage(e.Message, SAPbouiCOM.BoMessageTime.bmt_Medium, true);
                logMessage = "Erro ao buscar " + func + " de " + tableName + ": " + e.Message;
                logger.log(logMessage, Logger.LogType.ERROR, e);
                SB1ControlException.SB1ControlException.Save(e);
            }

            return(min_max);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Check user group allowed for calculate or not
        /// </summary>
        private string AllowedCalculate(Matrix oMtx, string cardCode, string tipeSO, string DocNum)
        {
            string    message = string.Empty;
            Recordset oRec    = oSBOCompany.GetBusinessObject(BoObjectTypes.BoRecordset);

            for (int i = 1; i < oMtx.RowCount; i++)
            {
                string itemCode = oMtx.Columns.Item("1").Cells.Item(i).Specific.Value;
                string shipTo   = oMtx.Columns.Item("275").Cells.Item(i).Specific.Value;

                string query = "CALL SOL_SP_ADDON_VALIDATE_CALCULATE('" + cardCode + "', '" + tipeSO + "', '" + DocNum + "', '" + itemCode + "', '" + shipTo + "')";
                oRec.DoQuery(query);

                if (oRec.RecordCount > 0)
                {
                    message = oRec.Fields.Item("Message").Value;
                    break;
                }
            }

            Utils.releaseObject(oRec);
            return(message);
        }
        public static void GetDefaultItemLocale(string itemCode, ref string whsCode, ref int locId)
        {
            string sql = @"SELECT
                               OITM.DfltWH WhsCode, OITW.DftBinAbs LocId
                            FROM OITM
								INNER JOIN OITW
									ON OITW.ItemCode = OITM.ItemCode
									AND OITW.WhsCode = OITM.DfltWH
                            WHERE OITM.ItemCode = '{0}'";

            sql = String.Format(sql, itemCode);

            Recordset rst = (Recordset)SBOApp.Company.GetBusinessObject(BoObjectTypes.BoRecordset);

            rst.DoQuery(sql);
            if (rst.RecordCount > 0)
            {
                whsCode = rst.Fields.Item("WhsCode").Value.ToString();
                locId   = (int)rst.Fields.Item("LocId").Value;
            }
            Marshal.ReleaseComObject(rst);
            rst = null;
        }
Ejemplo n.º 9
0
        public bool VerificaExistenciaCampo(Company oCompany, string sTabela, string sCampo)
        {
            Recordset oRecordset = null;

            oRecordset = (Recordset)(oCompany.GetBusinessObject(BoObjectTypes.BoRecordset));

            string sSQL = " SELECT " +
                          "   COUNT(*) " +
                          " FROM CUFD " +
                          " WHERE TableID  = '" + sTabela + "' " +
                          " AND AliasID = '" + sCampo + "'";

            oRecordset.DoQuery(sSQL);

            if (Convert.ToInt64(oRecordset.Fields.Item(0).Value.ToString()) > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 10
0
        /*
         * Verifica se um campo de usuario existe, retornando true,
         * caso o campo ja exista na tabela ou em caso de erro, ou false caso contrario.
         *
         */
        private bool UserFieldsExist(string tableName, string tableField)
        {
            bool      ret        = false;
            Recordset oRecordSet = ((Recordset)(oConnection.Company.GetBusinessObject(BoObjectTypes.BoRecordset)));

            string query = "SELECT  1 [result]"
                           + " FROM SYS.OBJECTS so INNER JOIN SYS.COLUMNS sc "
                           + " ON so.object_id = sc.object_id "
                           + " WHERE so.schema_id = 1 "
                           + " AND so.name like '%" + tableName + "%' and sc.name = 'U_" + tableField + "'";

            try
            {
                oRecordSet.DoQuery(query);

                int retF = (int)oRecordSet.Fields.Item("result").Value;

                ret = (retF == 1? true: false);

                System.Runtime.InteropServices.Marshal.ReleaseComObject(oRecordSet);
                oRecordSet = null;
                System.GC.Collect();
            }catch (Exception e)
            {
                logMessage = e.Message;
                //retorna true pois nao deve tentar adicionar em caso de erro
                ret = true;
                logger.log(logMessage, Logger.LogType.ERROR, e);
                SB1ControlException.SB1ControlException.Save(e);

                System.Runtime.InteropServices.Marshal.ReleaseComObject(oRecordSet);
                oRecordSet = null;
                System.GC.Collect();
            }

            return(ret);
        }
Ejemplo n.º 11
0
        public RequestTransfer[] GetTransferRequests(string docNum)
        {
            Recordset recordset = null;

            RequestTransfer[]           requestTransfers = null;
            Dictionary <string, string> paramaters       = new Dictionary <string, string>();

            try {
                paramaters.Add("DocNum", docNum);
                paramaters.Add("Whs", GetUserDefaultWarehouse());
                string query = this.GetSQL("GetTransferRequest").Inject(paramaters);
                recordset = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);
                recordset.DoQuery(query);

                if (recordset.RecordCount > 0)
                {
                    requestTransfers = new RequestTransfer[recordset.RecordCount];
                    for (int i = 0; i < recordset.RecordCount; i++)
                    {
                        var transferRequest = new RequestTransfer();
                        Parallel.ForEach(recordset.Fields.OfType <Field>(), field => {
                            transferRequest.GetType().GetProperty(field.Name).SetValue(transferRequest, field.Value);
                        });
                        requestTransfers[i] = transferRequest;
                        recordset.MoveNext();
                    }
                }
            }
            catch (Exception ex) {
                HandleException(ex, "GetTransferItems");
            }
            finally {
                MemoryUtility.ReleaseComObject(recordset);
            }

            return(requestTransfers);
        }
Ejemplo n.º 12
0
        public TravelExpensesDTO GetPayment(int pIntDocEntry)
        {
            TravelExpensesDTO lObjTravelExpensesDTO = null;
            Recordset         lObjRecordset         = null;

            try
            {
                lObjRecordset = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);

                string lStrQuery = this.GetSQL("GetPaymentByDocEntry").InjectSingleValue("DocEntry", pIntDocEntry);

                lObjRecordset.DoQuery(lStrQuery);

                if (lObjRecordset.RecordCount > 0)
                {
                    lObjTravelExpensesDTO = new TravelExpensesDTO
                    {
                        DocDate  = DateTime.Parse(lObjRecordset.Fields.Item("DocDate").Value.ToString()),
                        DocEntry = int.Parse(lObjRecordset.Fields.Item("DocEntry").Value.ToString()),
                        DocNum   = int.Parse(lObjRecordset.Fields.Item("DocNum").Value.ToString()),
                        Folio    = lObjRecordset.Fields.Item("U_GLO_CodeMov").Value.ToString(),
                        Total    = double.Parse(lObjRecordset.Fields.Item("Total").Value.ToString()),
                        Status   = int.Parse(lObjRecordset.Fields.Item("Status").Value.ToString()),
                    };
                }
            }
            catch (Exception lObjException)
            {
                LogService.WriteError(string.Format("[GetCurrentFolio - GetPayment: {0}]", lObjException.Message));
                throw new DAOException(lObjException.Message, lObjException);
            }
            finally
            {
                MemoryUtility.ReleaseComObject(lObjRecordset);
            }
            return(lObjTravelExpensesDTO);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Valida que exista un CAE activo para un tipo de documento determinado
        /// </summary>
        /// <param name="comp"></param>
        /// <param name="tipoCAE"></param>
        /// <returns></returns>
        public bool TipoCAEValido(CAE.ESTipoCFECFC tipoCAE)
        {
            bool      resultado = false;
            Recordset recSet    = null;
            string    consulta  = "";

            try
            {
                //Obtener objeto estadar de record set
                recSet = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.BoRecordset);

                //Establecer consulta
                consulta = "SELECT T1.DocEntry FROM [@TFECAE] AS T1 INNER JOIN [@TFERANGO] AS T2 ON T1.DocEntry = T2.U_IdCAE WHERE T1.U_TipoDoc = '" + tipoCAE + "' AND T1.U_ValDesde <= GETDATE() AND T1.U_ValHasta >= GETDATE() AND T2.U_Activo = 'Y'";

                //Ejecutar consulta
                recSet.DoQuery(consulta);

                //Validar que se hayan obtenido resultado
                if (recSet.RecordCount > 0)
                {
                    resultado = true;
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                if (recSet != null)
                {
                    //Liberar memoria utlizada por servicioGeneral
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(recSet);
                    System.GC.Collect();
                }
            }
            return(resultado);
        }
Ejemplo n.º 14
0
        public string SetPermissionForAllUsers(string permissionId)
        {
            string msg = String.Empty;

            Recordset rst = (Recordset)SBOApp.Company.GetBusinessObject(BoObjectTypes.BoRecordset);

            try
            {
                // Busca apenas usuários que ainda não possuem a permissão e que não foram deletados (diferente de 99)
                string sql = @" SELECT UserId FROM OUSR 
                                WHERE UserId NOT IN (SELECT UserLink FROM USR3 WHERE PermId = '{0}')
                                AND Groups <> 99";

                sql = String.Format(sql, permissionId);
                rst.DoQuery(sql);
                List <int> usersList = new List <int>();

                while (!rst.EoF)
                {
                    usersList.Add((int)rst.Fields.Item("UserId").Value);
                    rst.MoveNext();
                }

                return(this.SetPermissionToUserList(permissionId, usersList));
            }
            catch (Exception e)
            {
                msg = "Erro geral ao criar permissão: " + e.Message;
            }
            finally
            {
                Marshal.ReleaseComObject(rst);
                rst = null;
            }

            return(msg);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Devuelve el consecutivo anterior
        /// </summary>
        /// <returns></returns>
        public string obtenerConsecutivoAnterior()
        {
            string    resultado = "", consulta = "";
            Recordset registro = null;

            try
            {
                registro = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.BoRecordset);
                //Consulta devuelve el ultimo consecutivo anterior
                consulta = "SELECT U_ConIdCom FROM [@TFECOIDCOM] WHERE DocEntry = (SELECT MAX(DocEntry) FROM [@TFECOIDCOM])";

                //Se realiza la consulta
                registro.DoQuery(consulta);

                if (registro.RecordCount > 0)
                {
                    //Obtiene el consecutivo anterior de la consulta
                    resultado = registro.Fields.Item("U_ConIdCom").Value + "";
                    Almacenar(resultado);
                }
            }
            catch (Exception)
            {
                resultado = "";
            }
            finally
            {
                if (registro != null)
                {
                    //Se libera de memoria el objeto registro
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(registro);
                    GC.Collect();
                }
            }

            return(resultado);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Preenche lista de model generico
        /// </summary>
        /// <param name="sql">Comando SELECT</param>
        /// <param name="forceNoLock">Força comando NOLOCK</param>
        /// <returns>Lista de model generico preenchido</returns>
        public List <GenericModel> FillGenericModelList(string sql, bool forceNoLock)
        {
            List <GenericModel> genericModelList = new List <GenericModel>();
            GenericModel        genericModel;

            // SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED tem o mesmo efeito do WITH (NOLOCK)
            if (forceNoLock)
            {
                sql = " SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED " + sql;
            }
            // Lê os dados em um Recordset
            Recordset rs = (Recordset)SBOApp.Company.GetBusinessObject(BoObjectTypes.BoRecordset);

            sql = SBOApp.TranslateToHana(sql);
            rs.DoQuery(sql);

            // Lê os dados e insere no model
            if (rs.RecordCount > 0)
            {
                while (!rs.EoF)
                {
                    genericModel        = new GenericModel();
                    genericModel.Fields = new Dictionary <string, object>();
                    for (int i = 0; i < rs.Fields.Count; i++)
                    {
                        genericModel.Fields.Add(rs.Fields.Item(i).Name, rs.Fields.Item(i).Value);
                    }
                    genericModelList.Add(genericModel);
                    rs.MoveNext();
                }
            }
            Marshal.ReleaseComObject(rs);
            rs = null;
            GC.Collect();

            return(genericModelList);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// Metodo para realizar una consulta por medio de un recordSet
        /// </summary>
        /// <param name="comp"></param>
        /// <param name="consulta"></param>
        /// <param name="parametros"></param>
        /// <param name="salida"></param>
        /// <param name="salidaMultiple"></param>
        /// <returns></returns>
        public Object realizarConsulta(string consulta)
        {
            Recordset registro  = null;
            Object    resultado = null;

            try
            {
                registro = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.BoRecordset);
                registro.DoQuery(consulta);

                registro.MoveFirst();

                resultado = new Object();

                if (registro.RecordCount > 0)
                {
                    foreach (var campo in registro.Fields)
                    {
                        resultado = campo;
                    }
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                if (registro != null)
                {
                    //Libera de memoria el objeto registro
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(registro);
                    GC.Collect();
                }
            }

            return(resultado);
        }
Ejemplo n.º 18
0
        public PendingTransfer[] GetPendingTransfers()
        {
            Recordset recordset = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);;

            PendingTransfer[] pendingTransfers = null;

            try {
                recordset.DoQuery(this.GetSQL("GetPendingTransfers").Inject(new Dictionary <string, string>()
                {
                    { "Whs", GetUserDefaultWarehouse() }
                }));

                if (recordset.RecordCount > 0)
                {
                    pendingTransfers = new PendingTransfer[recordset.RecordCount];
                    for (int i = 0; i < recordset.RecordCount; i++)
                    {
                        var pendingTransfer = new PendingTransfer();
                        Parallel.ForEach(recordset.Fields.OfType <Field>(), field => {
                            pendingTransfer.GetType().GetProperty(field.Name).SetValue(pendingTransfer, field.Value);
                        });
                        pendingTransfers[i] = pendingTransfer;
                        recordset.MoveNext();
                    }
                }
            }
            catch (Exception ex) {
                HandleException(ex, "GetPendingTransfers");
            }
            finally {
                MemoryUtility.ReleaseComObject(recordset);
            }


            return(pendingTransfers);
        }
Ejemplo n.º 19
0
        /// <summary>
        /// Realiza la consulta para validar si un rango determinado ha sido utilizado
        /// </summary>
        /// <param name="comp"></param>
        /// <param name="idCAE"></param>
        /// <returns></returns>
        public bool RangoUtilizado(string idCAE)
        {
            Recordset recSet    = null;
            bool      resultado = false;
            string    consulta  = "";

            try
            {
                recSet = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.BoRecordset);

                //Establecer consulta
                consulta = "SELECT DocEntry FROM [@TFERANGO] WHERE U_IdCAE = '" + idCAE + "' AND U_NumAct > U_NumIni";

                //Ejecutar consulta
                recSet.DoQuery(consulta);

                //Validar que se hayan obtenido registros
                if (recSet.RecordCount > 0)
                {
                    resultado = true;
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                if (recSet != null)
                {
                    //Se libera el objeto recSet de la memoria
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(recSet);
                    GC.Collect();
                }
            }
            return(resultado);
        }
        public static string GetItemFromBPCatalog(string cardCode, string itemCode)
        {
            Recordset rs  = (Recordset)SBOApp.Company.GetBusinessObject(BoObjectTypes.BoRecordset);
            string    sql = @"SELECT ItemName 
                            FROM OITM 
                            INNER JOIN OSCN
                                ON OSCN.ItemCode = OITM.ItemCode
                            WHERE OSCN.CardCode = '{0}'
                            AND OSCN.ItemCode = '{1}'";

            rs.DoQuery(String.Format(sql, cardCode, itemCode));

            string itemName = String.Empty;

            if (rs.RecordCount > 0)
            {
                itemName = rs.Fields.Item(0).Value.ToString();
            }

            Marshal.ReleaseComObject(rs);
            rs = null;

            return(itemName);
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Retorna el DocEntry de un consecutivo determinado
        /// </summary>
        /// <param name="comp"></param>
        /// <param name="idRec"></param>
        /// <returns></returns>
        public string ObtenerDocEntryConsecutivo(string idReceptor)
        {
            string    resultado = "", consulta = "";
            Recordset registro = null;

            try
            {
                registro = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.BoRecordset);
                //Consulta devuelve el ultimo consecutivo anterior
                consulta = "SELECT DocEntry FROM [@TFECONS] WHERE U_IdRec = " + idReceptor;

                //Se realiza la consulta
                registro.DoQuery(consulta);

                if (registro.RecordCount > 0)
                {
                    //Obtiene el consecutivo anterior de la consulta
                    resultado = registro.Fields.Item("DocEntry").Value + "";
                }
            }
            catch (Exception)
            {
                resultado = "";
            }
            finally
            {
                if (registro != null)
                {
                    //Se libera de memoria el objeto registro
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(registro);
                    GC.Collect();
                }
            }

            return(resultado);
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Consulta si existe un C.I registrado en la base de datos
        /// </summary>
        /// <returns></returns>
        private string ConsultarCI()
        {
            Recordset recSet = null;
            string    consulta = "", resultado = "";

            try
            {
                //Obtener objeto de recordset
                recSet = ProcConexion.Comp.GetBusinessObject(BoObjectTypes.BoRecordset);

                //Establecer consulta
                consulta = "SELECT DocEntry FROM [@TFEADOBE]";

                //Ejecuta consulta
                recSet.DoQuery(consulta);

                //Validar que existan valores
                if (recSet.RecordCount > 0)
                {
                    resultado = recSet.Fields.Item("DocEntry").Value.ToString();
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                if (recSet != null)
                {
                    //Se libera recSet de memoria
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(recSet);
                    System.GC.Collect();
                }
            }
            return(resultado);
        }
Ejemplo n.º 23
0
        public TransferItem[] GetTransferItems(string DocEntry)
        {
            Recordset recordset = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);;

            TransferItem[] transferItems = null;

            try {
                string query = this.GetSQL("GetTransferItems").Inject(new Dictionary <string, string>()
                {
                    { "DocEntry", DocEntry }
                });
                recordset.DoQuery(query);

                if (recordset.RecordCount > 0)
                {
                    transferItems = new TransferItem[recordset.RecordCount];
                    for (int i = 0; i < recordset.RecordCount; i++)
                    {
                        var transferItem = new TransferItem();
                        Parallel.ForEach(recordset.Fields.OfType <Field>(), field => {
                            transferItem.GetType().GetProperty(field.Name).SetValue(transferItem, field.Value);
                        });
                        transferItems[i] = transferItem;
                        recordset.MoveNext();
                    }
                }
            }
            catch (Exception ex) {
                HandleException(ex, "GetTransferItems");
            }
            finally {
                MemoryUtility.ReleaseComObject(recordset);
            }

            return(transferItems);
        }
Ejemplo n.º 24
0
        public double GetItemStock(string itemCode, string whsCode)
        {
            Recordset recordset = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);
            double    result    = 0;

            try {
                recordset.DoQuery(this.GetSQL("GetItemStock").Inject(new Dictionary <string, string>()
                {
                    { "ItemCode", itemCode }, { "WhsCode", whsCode }
                }));

                if (recordset.RecordCount > 0)
                {
                    result = (double)recordset.Fields.Item(0).Value;
                }
            }
            catch (Exception e) {
                HandleException(e, "GetItemStock");
            }
            finally {
                MemoryUtility.ReleaseComObject(recordset);
            }
            return(result);
        }
Ejemplo n.º 25
0
        public int GetIsBagRequired(string itemCode)
        {
            Recordset recordset = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);
            int       result    = 0;

            try {
                recordset.DoQuery(this.GetSQL("GetIsBagRequired").Inject(new Dictionary <string, string>()
                {
                    { "ItemCode", itemCode }
                }));

                if (recordset.RecordCount > 0)
                {
                    result = recordset.Fields.Item(0).Value.ToString() == "Y" ? 1 : 0;
                }
            }
            catch (Exception e) {
                HandleException(e, "GetIsBagRequired");
            }
            finally {
                MemoryUtility.ReleaseComObject(recordset);
            }
            return(result);
        }
Ejemplo n.º 26
0
        public Tables.SICertificates GetCertificate2(long pCert)
        {
            Recordset lObjRecordSet = null;

            Tables.SICertificates lObjCertificate = new Tables.SICertificates();
            try
            {
                lObjRecordSet = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);

                string lStrQuery = this.GetSQL("GetSICertificate").InjectSingleValue("NCert", pCert);

                lObjRecordSet.DoQuery(lStrQuery);

                if (lObjRecordSet.RecordCount > 0)
                {
                    lObjCertificate.RowCode  = lObjRecordSet.Fields.Item(0).Value.ToString();
                    lObjCertificate.RowName  = lObjRecordSet.Fields.Item(1).Value.ToString();
                    lObjCertificate.Quantity = Convert.ToInt64(lObjRecordSet.Fields.Item(2).Value);
                    lObjCertificate.ItemCode = lObjRecordSet.Fields.Item(3).Value.ToString();
                }
                else
                {
                    lObjCertificate = null;
                }
            }
            catch (Exception lObjException)
            {
                throw new DAOException(lObjException.Message, lObjException);
            }
            finally
            {
                MemoryUtility.ReleaseComObject(lObjRecordSet);
            }

            return(lObjCertificate);
        }
Ejemplo n.º 27
0
        public void CorrectionJournalEntries(CorrectionJournalEntriesParams entriesParams)
        {
            CleanIncompleteTransactions();
            SkipTransactionsWithoutAmount();

            Recordset recSet = (Recordset)_company.GetBusinessObject(BoObjectTypes.BoRecordset);
            string    query  = entriesParams.MustSkip
                ? $@"SELECT * FROM JDT1 LEFT JOIN OJDT ON JDT1.TransId = OJDT.TransId
            WHERE CONVERT(DATE, OJDT.RefDate) >= '{entriesParams.StartDate:s}'
            AND CONVERT(DATE, OJDT.RefDate) <= '{entriesParams.EndDate:s}'
            AND U_CorrectContraAcc is null AND OJDT.TransId Not In  
                (select TransId from JDT1 where Line_ID > {entriesParams.MaxLine}) and U_ContraIsApproved = '02' ORDER BY OJDT.RefDate, OJDT.TransId, Line_ID"
                : $@"SELECT * FROM JDT1
            LEFT JOIN OJDT ON JDT1.TransId = OJDT.TransId
            WHERE CONVERT(DATE, OJDT.RefDate) >= '{entriesParams.StartDate:s}'
            AND CONVERT(DATE, OJDT.RefDate) <= '{entriesParams.EndDate:s}'  AND OJDT.TransId NOT IN 
             (select TransId from JDT1 where Line_ID > {entriesParams.MaxLine}) and U_ContraIsApproved = '02' ORDER BY OJDT.RefDate, OJDT.TransId, Line_ID";

            recSet.DoQuery(query);

            List <JournalEntryLineModel> jdtLines = JournalEntryLineModelsFromRecordset(recSet);

            MainLogicFirst(jdtLines, entriesParams.WaitingTimeInMinutes);
        }
Ejemplo n.º 28
0
        /// <summary>
        /// Get Lines for Delivery Document that will be added to Invoice Document
        /// </summary>
        /// <returns></returns>
        public List <DeliveryLine> GetDeliveryLines(string cardCode, string whsCode)
        {
            Recordset lObjRecordset     = null;
            var       parameters        = new Dictionary <string, string>();
            var       lLstdeliveryLines = new List <DeliveryLine>();

            try {
                string query = this.GetSQL("GetDeliveryLines");
                parameters.Add("CardCode", cardCode);
                parameters.Add("WhsCode", whsCode);

                lObjRecordset = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);
                lObjRecordset.DoQuery(query.Inject(parameters));

                if (lObjRecordset.RecordCount > 0)
                {
                    for (int i = 0; i < lObjRecordset.RecordCount; i++)
                    {
                        var deliveryLine = new DeliveryLine();
                        Parallel.ForEach(lObjRecordset.Fields.OfType <SAPbobsCOM.Field>(), field => {
                            deliveryLine.GetType().GetProperty(field.Name).SetValue(deliveryLine, field.Value);
                        });
                        lLstdeliveryLines.Add(deliveryLine);
                        lObjRecordset.MoveNext();
                    }
                }
            }
            catch (Exception ex) {
                HandleException(ex, "GetDeliveryLines");
            }
            finally {
                MemoryUtility.ReleaseComObject(lObjRecordset);
            }

            return(lLstdeliveryLines);
        }
Ejemplo n.º 29
0
        public IList <DeliveryFoodDTO> GetUpdatedDeliveriesFoodList(string pStrWhsCode)
        {
            Recordset lObjRecordset = null;
            IList <DeliveryFoodDTO> lLstObjDeliveriesFood = new List <DeliveryFoodDTO>();

            try
            {
                lObjRecordset = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);

                Dictionary <string, string> lLstStrParameters = new Dictionary <string, string>();
                lLstStrParameters.Add("WhsCode", pStrWhsCode);
                string pstr = this.GetSQL("GetUpdatedDeliveriesFoodList").Inject(lLstStrParameters);

                lObjRecordset.DoQuery(this.GetSQL("GetUpdatedDeliveriesFoodList").Inject(lLstStrParameters));

                if (lObjRecordset.RecordCount > 0)
                {
                    for (int i = 0; i < lObjRecordset.RecordCount; i++)
                    {
                        lLstObjDeliveriesFood.Add(GetDelivery(lObjRecordset));
                        lObjRecordset.MoveNext();
                    }
                }
            }
            catch (Exception lObjException)
            {
                LogService.WriteError(lObjException.Message);
                throw new DAOException(lObjException.Message, lObjException);
            }
            finally
            {
                MemoryUtility.ReleaseComObject(lObjRecordset);
            }

            return(lLstObjDeliveriesFood);
        }
Ejemplo n.º 30
0
        public double GetProdItemBags(int docEntry)
        {
            Recordset lObjRecordset = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);;
            Dictionary <string, string> lLstParams = new Dictionary <string, string>();
            dynamic result = 0;

            try {
                lObjRecordset.DoQuery(this.GetSQL("GetProdItemBags").Inject(new Dictionary <string, string>()
                {
                    { "DocEntry", docEntry.ToString() }
                }));
                if (lObjRecordset.RecordCount > 0)
                {
                    result = lObjRecordset.Fields.Item(0).Value;
                }
            }
            catch (Exception e) {
                HandleException(e, "GetPlannedQty");
            }
            finally {
                MemoryUtility.ReleaseComObject(lObjRecordset);
            }
            return(result);
        }
Ejemplo n.º 31
0
        public IList <CustomerDTO> SearchBusinessPartner(string pStrFilter)
        {
            Recordset           lObjRecordset = null;
            IList <CustomerDTO> lLstObjResult = new List <CustomerDTO>();

            try
            {
                lObjRecordset = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);

                Dictionary <string, string> lLstStrParameters = new Dictionary <string, string>();
                lLstStrParameters.Add("Filter", pStrFilter);

                string lStrQuery = this.GetSQL("SearchCustomer").Inject(lLstStrParameters);
                lObjRecordset.DoQuery(lStrQuery);

                if (lObjRecordset.RecordCount > 0)
                {
                    for (int i = 0; i < lObjRecordset.RecordCount; i++)
                    {
                        lLstObjResult.Add(GetCustomer(lObjRecordset));
                        lObjRecordset.MoveNext();
                    }
                }
            }
            catch (Exception lObjException)
            {
                LogService.WriteError(lObjException.Message);
                throw new DAOException(lObjException.Message, lObjException);
            }
            finally
            {
                MemoryUtility.ReleaseComObject(lObjRecordset);
            }

            return(lLstObjResult);
        }
Ejemplo n.º 32
0
        internal IList <ConceptsToInvoiceDTO> GetChargesToInvoce(string pStrXmLString)
        {
            Recordset lObjRecordSet = null;
            IList <ConceptsToInvoiceDTO> lLstObjResult = new List <ConceptsToInvoiceDTO>();

            try
            {
                lObjRecordSet = (Recordset)DIApplication.Company.GetBusinessObject(BoObjectTypes.BoRecordset);

                string lStrQuery = this.GetSQL("GetCharges").InjectSingleValue("xmlString", pStrXmLString);
                lObjRecordSet.DoQuery(lStrQuery);

                if (lObjRecordSet.RecordCount > 0)
                {
                    for (int i = 0; i < lObjRecordSet.RecordCount; i++)
                    {
                        if (Convert.ToInt32(lObjRecordSet.Fields.Item("DocEntry").Value) >= 0)
                        {
                            if (lObjRecordSet.Fields.Item("Price").Value.ToString() != "")
                            {
                                lLstObjResult.Add(new ConceptsToInvoiceDTO()
                                {
                                    IdInspection = Convert.ToString(lObjRecordSet.Fields.Item("Inspeccion").Value),
                                    DocEntry     = Convert.ToInt32(lObjRecordSet.Fields.Item("DocEntry").Value),
                                    ItemCode     = lObjRecordSet.Fields.Item("ItemCode").Value.ToString(),
                                    ObjType      = (lObjRecordSet.Fields.Item("ObjType").Value.ToString()),
                                    LineNum      = Convert.ToInt32(lObjRecordSet.Fields.Item("LineNum").Value),
                                    Quantity     = double.Parse(lObjRecordSet.Fields.Item("Quantity").Value.ToString()),
                                    Price        = double.Parse(lObjRecordSet.Fields.Item("Price").Value.ToString()),
                                    TaxCode      = lObjRecordSet.Fields.Item("TaxCode").Value.ToString(),
                                    WhsCode      = lObjRecordSet.Fields.Item("WhsCode").Value.ToString(),
                                    UomCode      = lObjRecordSet.Fields.Item("UomCode").Value.ToString(),
                                    InvoiceType  = lObjRecordSet.Fields.Item("TipoFC").Value.ToString()
                                });
                                lObjRecordSet.MoveNext();
                            }
                            else
                            {
                                SAPbouiCOM.Framework.Application.SBO_Application.StatusBar.SetText("El total viene núlo para " + lObjRecordSet.Fields.Item("ItemCode").Value.ToString()
                                                                                                   , SAPbouiCOM.BoMessageTime.bmt_Short, SAPbouiCOM.BoStatusBarMessageType.smt_Error);
                                lObjRecordSet.MoveNext();
                            }
                        }
                        else
                        {
                            string w   = lObjRecordSet.Fields.Item("ObjType").Value.ToString();
                            int    xfs = Convert.ToInt32(lObjRecordSet.Fields.Item("DocEntry").Value);

                            lLstObjResult.Add(new ConceptsToInvoiceDTO()
                            {
                                DocEntry = Convert.ToInt32(lObjRecordSet.Fields.Item("DocEntry").Value),
                                ObjType  = (string)lObjRecordSet.Fields.Item("ObjType").Value,
                            });
                            lObjRecordSet.MoveNext();
                        }
                    }
                }
            }
            catch (Exception lObjException)
            {
                string er = DIApplication.Company.GetLastErrorDescription();
                throw new DAOException(lObjException.Message, lObjException);
            }
            finally
            {
                MemoryUtility.ReleaseComObject(lObjRecordSet);
            }
            return(lLstObjResult);
        }