private long conceptCode(int conceptId, Dictionary <string, int> connections)
        {
            int           connection, dbResponse, spaceCounter;
            bool          connected     = connections.TryGetValue("concepts", out connection);
            StringBuilder sbConceptCode = new StringBuilder(30);

            if (!connected || connection == 0)
            {
                ErrLogger.Log("Connection not allowed in adminpaq for concepts");
                return(0);
            }

            spaceCounter = 11 - conceptId.ToString().Length;
            string key = new string(' ', spaceCounter);

            key = key + conceptId.ToString();

            dbResponse = AdminPaqLib.dbGetNoLock(connection, "MGW10006", "PRIMARYKEY", key);
            if (dbResponse == 4)
            {
                ErrLogger.Log("La ruta de la empresa es incorrecta.");
                return(0);
            }

            if (dbResponse == 0)
            {
                int    fqResult = AdminPaqLib.dbFieldChar(connection, "MGW10006", 2, sbConceptCode, 30);
                string sConcept = sbConceptCode.ToString().Substring(0, 29).Trim();
                long   result   = 0;
                bool   casted   = long.TryParse(sConcept, out result);
                if (!casted)
                {
                    return(0);
                }

                return(result);
            }

            return(0);
        }
        private void RetrieveSales(DateTime date, Empresa empresa, Dictionary <string, int> connections)
        {
            string        filterDate;
            int           cancelled, returned, conceptId, agentId, currencyId, connection, dbResponse;
            double        changeValue, sold;
            StringBuilder docDate = new StringBuilder(9);
            long          conceptCode;

            bool isSale, isReturn, validAgent, connected;

            connected = connections.TryGetValue("documents", out connection);
            if (!connected || connection == 0)
            {
                ErrLogger.Log("Connection not allowed in adminpaq for company [" + empresa.Nombre + "] @ route [" + empresa.Ruta + "]");
                return;
            }

            filterDate = date.ToString("yyyyMMdd");
            dbResponse = AdminPaqLib.dbGetNoLock(connection, "MGW10008", "CFECHA", filterDate);
            if (dbResponse == 4)
            {
                ErrLogger.Log("La ruta de la empresa es incorrecta.");
                return;
            }

            while (dbResponse == 0)
            {
                int fqResult = 0;
                cancelled = 0;
                fqResult  = AdminPaqLib.dbFieldLong(connection, "MGW10008", 26, ref cancelled);
                if (cancelled == 1)
                {
                    dbResponse = AdminPaqLib.dbSkip(connection, "MGW10008", "CFECHA", 1);
                    continue;
                }

                returned = 0;
                fqResult = AdminPaqLib.dbFieldLong(connection, "MGW10008", 27, ref returned);
                if (returned == 1)
                {
                    dbResponse = AdminPaqLib.dbSkip(connection, "MGW10008", "CFECHA", 1);
                    continue;
                }

                fqResult = AdminPaqLib.dbFieldChar(connection, "MGW10008", 6, docDate, 9);
                string sDocDate = docDate.ToString().Substring(0, 8).Trim();
                if (!filterDate.Equals(sDocDate))
                {
                    break;
                }


                conceptId   = 0;
                fqResult    = AdminPaqLib.dbFieldLong(connection, "MGW10008", 3, ref conceptId);
                conceptCode = this.conceptCode(conceptId, connections);

                isReturn = false;
                isSale   = empresa.CodigosVenta.Contains(conceptCode);
                if (!isSale)
                {
                    isReturn = empresa.CodigosDevolucion.Contains(conceptCode);
                }

                if (!isSale && !isReturn)
                {
                    dbResponse = AdminPaqLib.dbSkip(connection, "MGW10008", "CFECHA", 1);
                    continue;
                }

                agentId    = 0;
                fqResult   = AdminPaqLib.dbFieldLong(connection, "MGW10008", 10, ref agentId);
                validAgent = agentInCompany(agentId, empresa);

                if (!validAgent)
                {
                    dbResponse = AdminPaqLib.dbSkip(connection, "MGW10008", "CFECHA", 1);
                    continue;
                }


                // Currency 1 = Pesos Mexicanos
                currencyId  = 1;
                changeValue = 1;
                fqResult    = AdminPaqLib.dbFieldLong(connection, "MGW10008", 15, ref currencyId);

                if (currencyId != 1)
                {
                    fqResult = AdminPaqLib.dbFieldDouble(connection, "MGW10008", 16, ref changeValue);
                }

                sold     = 0;
                fqResult = AdminPaqLib.dbFieldDouble(connection, "MGW10008", 31, ref sold);

                if (isReturn)
                {
                    sold = sold * -1;
                }

                if (currencyId != 1)
                {
                    sold = sold * changeValue;
                }

                addSale(agentId, empresa, sold, date);

                dbResponse = AdminPaqLib.dbSkip(connection, "MGW10008", "CFECHA", 1);
            }
        }