Exemplo n.º 1
0
        private PriceDocument GetDocument(DataSets.Product.ProductsRow productRow, Token lastToken, NorthwindConfig config)
        {
            #region Declarations
            PriceDocument priceDoc;
            string        identity;
            #endregion

            identity = productRow.ProductID.ToString();

            // create Account Doc
            priceDoc    = new PriceDocument();
            priceDoc.Id = identity;

            if (lastToken.InitRequest)
            {
                priceDoc.LogState = LogState.Created;
            }

            else if (productRow.IsCreateIDNull() || productRow.IsModifyIDNull() ||
                     productRow.IsCreateUserNull() || productRow.IsModifyUserNull())
            {
                priceDoc.LogState = LogState.Created;
            }

            else if ((productRow.CreateID > lastToken.SequenceNumber) &&
                     (productRow.CreateUser != config.CrmUser))
            {
                priceDoc.LogState = LogState.Created;
            }

            else if ((productRow.CreateID == lastToken.SequenceNumber) &&
                     (productRow.CreateUser != config.CrmUser) &&
                     (identity.CompareTo(lastToken.Id.Id) > 0))
            {
                priceDoc.LogState = LogState.Created;
            }
            else if ((productRow.ModifyID >= lastToken.SequenceNumber) && (productRow.ModifyUser != config.CrmUser))
            {
                priceDoc.LogState = LogState.Updated;
            }

            priceDoc.active.Value = true;

            priceDoc.price_cid.Value = config.CurrencyCode;

            priceDoc.pricinglistid.Value = Constants.DefaultValues.PriceList.ID;

            priceDoc.productid.Value = identity;

            priceDoc.uomid.Value = identity;

            priceDoc.price.Value = productRow.IsUnitPriceNull() ? new Decimal(0) : productRow.UnitPrice;

            return(priceDoc);
        }
        /* Add */
        public override void Add(Document doc, NorthwindConfig config, ref List <TransactionResult> result)
        {
            List <TransactionResult> transactionResult = new List <TransactionResult>();
            UnitOfMeasureDocument    uomDoc            = doc as UnitOfMeasureDocument;

            #region check input values

            if (uomDoc == null)
            {
                result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported));
                return;
            }
            #endregion

            DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter;


            DataSets.Product             productDataset = new DataSets.Product();
            DataSets.Product.ProductsRow row            = productDataset.Products.NewProductsRow();


            #region fill dataset from document

            try
            {
                // active???

                if (uomDoc.name.IsNull)
                {
                    row.SetQuantityPerUnitNull();
                }
                else
                {
                    row.QuantityPerUnit = (string)uomDoc.name.Value;
                }

                // units ???

                // defaultvalue ???

                // familyId ???

                /* CreateID and ModifyID */
                row.CreateID   = config.SequenceNumber;
                row.CreateUser = config.CrmUser;

                row.ModifyID   = config.SequenceNumber;
                row.ModifyUser = config.CrmUser;
            }
            catch (Exception e)
            {
                uomDoc.Id = "";
#warning Check error message
                result.Add(uomDoc.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString()));
                return;
            }

            #endregion

            using (OleDbConnection connection = new OleDbConnection(config.ConnectionString))
            {
                connection.Open();

                tableAdapter            = new DataSets.ProductTableAdapters.ProductsTableAdapter();
                tableAdapter.Connection = connection;

                productDataset.Products.AddProductsRow(row);

                tableAdapter.Update(productDataset.Products);

                OleDbCommand Cmd = new OleDbCommand("SELECT @@IDENTITY", connection);

                object lastid = Cmd.ExecuteScalar();

                uomDoc.Id = ((int)lastid).ToString();
            }

            result.Add(doc.SetTransactionStatus(TransactionStatus.Success));
        }
Exemplo n.º 3
0
        /* Add */
        public override void Add(Document doc, NorthwindConfig config, ref List <TransactionResult> result)
        {
            List <TransactionResult> transactionResult = new List <TransactionResult>();
            ProductDocument          productDoc        = doc as ProductDocument;

            #region check input values

            if (productDoc == null)
            {
                result.Add(doc.SetTransactionStatus(TransactionStatus.UnRecoverableError, Resources.ErrorMessages_DocumentTypeNotSupported));
                return;
            }
            #endregion

            DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter;


            DataSets.Product             productDataset = new DataSets.Product();
            DataSets.Product.ProductsRow row            = productDataset.Products.NewProductsRow();


            #region fill dataset from document

            try
            {
                // active???

                // code???

                if (productDoc.name.IsNull)
                {
                    row.SetProductNameNull();
                }
                else
                {
                    row.ProductName = Convert.ToString(productDoc.name.Value);
                }

                if (productDoc.productfamilyid.IsNull)
                {
                    row.SetCategoryIDNull();
                }
                else
                {
                    row.CategoryID = Convert.ToInt32(productDoc.productfamilyid.Value);
                }

                // uom category ???

                if (productDoc.instock.IsNull)
                {
                    row.SetUnitsInStockNull();
                }
                else
                {
                    row.UnitsInStock = Convert.ToInt16(productDoc.instock.Value);
                }


                /* CreateID and ModifyID */
                row.CreateID   = config.SequenceNumber;
                row.CreateUser = config.CrmUser;

                row.ModifyID   = config.SequenceNumber;
                row.ModifyUser = config.CrmUser;
            }
            catch (Exception e)
            {
                productDoc.Id = "";
#warning Check error message
                result.Add(productDoc.SetTransactionStatus(TransactionStatus.UnRecoverableError, e.ToString()));
                return;
            }

            #endregion

            using (OleDbConnection connection = new OleDbConnection(config.ConnectionString))
            {
                connection.Open();

                tableAdapter            = new DataSets.ProductTableAdapters.ProductsTableAdapter();
                tableAdapter.Connection = connection;

                productDataset.Products.AddProductsRow(row);

                tableAdapter.Update(productDataset.Products);

                OleDbCommand Cmd = new OleDbCommand("SELECT @@IDENTITY", connection);

                object lastid = Cmd.ExecuteScalar();

                productDoc.Id = ((int)lastid).ToString();
            }

            result.Add(doc.SetTransactionStatus(TransactionStatus.Success));
        }
Exemplo n.º 4
0
        public Pricing CheckPrice(Pricing PricingInformation, NorthwindConfig config)
        {
            int productId = 0;
            int recordCount;



            //TODO: did we need to check if Account exists?
            try
            {
                productId = int.Parse(PricingInformation.ProductId);
                if (productId == 0)
                {
                    throw new ArgumentException();
                }
            }
            catch (Exception)
            {
                PricingInformation.SynchMessage = Resources.ErrorMessages_ProductNotFound;
                return(PricingInformation);
            }


            DataSets.Product product = new DataSets.Product();
            using (OleDbConnection connection = new OleDbConnection(config.ConnectionString))
            {
                DataSets.ProductTableAdapters.ProductsTableAdapter tableAdapter;
                tableAdapter            = new DataSets.ProductTableAdapters.ProductsTableAdapter();
                tableAdapter.Connection = connection;
                recordCount             = tableAdapter.FillBy(product.Products, productId);
            }
            if (recordCount == 0)
            {
                PricingInformation.SynchMessage = Resources.ErrorMessages_ProductNotFound;
                return(PricingInformation);
            }

            DataSets.Product.ProductsRow row = product.Products[0];

            decimal listprice = row.IsUnitPriceNull() ? (decimal)0 : row.UnitPrice;

            PricingInformation.ListPrice = XmlConvert.ToString(listprice);

            PricingInformation.DiscountRate = 0;
            PricingInformation.Discount     = 0;
            PricingInformation.DiscountSum  = 0;

            if (PricingInformation.Quantity >= 10)
            {
                PricingInformation.DiscountRate = new decimal(10);
                PricingInformation.Discount     = new decimal(10);
                PricingInformation.DiscountSum  = listprice * new decimal(0.1);
            }

            decimal quotedPrice = listprice - PricingInformation.DiscountSum;

            PricingInformation.QuotedPrice      = XmlConvert.ToString(quotedPrice);
            PricingInformation.QuotedPriceTotal = XmlConvert.ToString(PricingInformation.Quantity * quotedPrice);
            PricingInformation.Tax     = 0;
            PricingInformation.TaxRate = 0;

            return(PricingInformation);
        }