Ejemplo n.º 1
0
        public static void Set()
        {
            RepositoryHistoryChangeProduct.LoadFile();
            RepositoryActionHashBox.Sync();
            RepositoryProductBc.Sync();

            if (SyncData.IsConnect)
            {
                if (GetAbCountFromDb() > 1000 || Config.FromLoadSyncAll || !GlobalVar.IsOpen)
                {
                    Config.FromLoadSyncAll = false;
                }
                else
                {
                    SyncSingleProduct();
                }
            }
            else
            {
                Sync();
                Config.FromLoadSyncAll = false;
            }

            Sync();
            RepositoryCountry.Sync();

            if (SyncData.IsConnect)
            {
                RepositoryLastUpdate.Update(false);
            }
        }
Ejemplo n.º 2
0
        public static void SyncSingleProduct()
        {
            var date = RepositoryLastUpdate.GetUpdateDate();

            if (date != null)
            {
                Sync();

                var productsAb = GetByDates(date.Value.AddMinutes(-1), DateTime.Now.AddMinutes(1));

                if (productsAb.Count > 0)
                {
                    var group = RepositoryHistoryChangeProduct.GetGroup();
                    RepositoryHistoryChangeProduct.LoadFile();

                    foreach (var product in productsAb)
                    {
                        RepositoryHistoryChangeProduct.Compare(Document, product, group);
                        ModifAddOnlyFile(product);
                    }

                    RepositoryHistoryChangeProduct.SaveFile();
                }
            }
        }
Ejemplo n.º 3
0
        private static void UpdateFromDb(ProductType product)
        {
            product.Date = DateTime.Now;
            using (var connection = ConnectionFactory.CreateConnection())
            {
                connection.Open();
                var trans = connection.BeginTransaction();

                var res = connection.Execute(QueryUpdateProd, product, trans);
                if (res != 1)
                {
                    trans.Rollback();
                    return;
                }

                res = connection.Execute(QueryUpdateStockReal, new { product.Qty, product.Price, product.CustomerId, Config.IdEstablishment, product.CusumerIdRealStock }, trans);
                if (res != 1)
                {
                    trans.Rollback();
                    return;
                }

                trans.Commit();
            }

            RepositoryLastUpdate.Update(true);
        }
Ejemplo n.º 4
0
        private static void AddToDb(ProductType product)
        {
            product.Date = DateTime.Now;

            using (var connection = ConnectionFactory.CreateConnection())
            {
                connection.Open();
                var trans = connection.BeginTransaction();

                var res = connection.Execute(QueryInsertWeb, new { product.ProductsWebCustomerId }, trans);
                if (res <= 0)
                {
                    trans.Rollback();
                }

                res = connection.Execute(QueryInsertProd, product, trans);
                if (res <= 0)
                {
                    trans.Rollback();
                }

                res = connection.Execute(QueryInsertStockReal, new { product.CusumerIdRealStock, product.Qty, product.Price, product.CustomerId, Config.IdEstablishment }, trans);
                if (res <= 0)
                {
                    trans.Rollback();
                }

                trans.Commit();
            }

            RepositoryLastUpdate.Update(true);
        }
Ejemplo n.º 5
0
        public static int GetAbCountFromDb()
        {
            var lastDate = RepositoryLastUpdate.GetUpdateDate();

            if (lastDate != null)
            {
                var dateA = lastDate.Value.AddMinutes(-1);
                var dateB = DateTime.Now.AddMinutes(1);

                return(GetByDates(dateA, dateB).Count);
            }
            return(0);
        }
Ejemplo n.º 6
0
        private static void DeleteFromDb(ProductType product)
        {
            const string queryDeleteFromStockReal   = "DELETE FROM StockReal WHERE ProductsCustumerId = @CustomerId";
            const string queryDeleteFromProducts    = "DELETE FROM Products  WHERE CustumerId= @CustomerId";
            const string queryDeleteFromProductsWeb = "DELETE FROM ProductsWeb  WHERE CustomerId= @ProductsWebCustomerId";

            using (var connection = ConnectionFactory.CreateConnection())
            {
                connection.Open();
                var trans = connection.BeginTransaction();

                var res = connection.Execute(queryDeleteFromStockReal, product, trans);
                if (res < 0)
                {
                    trans.Rollback();
                    return;
                }

                res = connection.Execute(queryDeleteFromProducts, product, trans);
                if (res != 1)
                {
                    trans.Rollback();
                    return;
                }

                res = connection.Execute(queryDeleteFromProductsWeb, product, trans);
                if (res != 1)
                {
                    trans.Rollback();
                    return;
                }

                trans.Commit();
            }

            RepositoryLastUpdate.Update(true);
        }