Beispiel #1
0
        /// <summary>
        /// Update the database using table adapters update and fill methods
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ButtonUpdate_Click(object sender, EventArgs e)
        {
            inventoryTableAdapter.Update(inventoryTable);
            customersTableAdapter.Update(customersTable);
            ordersTableAdapter.Update(ordersTable);

            inventoryTableAdapter.Fill(inventoryTable);
            customersTableAdapter.Fill(customersTable);
            ordersTableAdapter.Fill(ordersTable);
        }
Beispiel #2
0
 private void btnUpdate_Click(object sender, EventArgs e)
 {
     try
     {
         invTableAdapter.Update(autoLotDS.Inventory);
         custTableAdapter.Update(autoLotDS.Customers);
         ordersTableAdapter.Update(autoLotDS.Orders);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
 protected void SubmitOrder()
 {
     if (IsNotNull(txtBoxStreetName.Text) == true &&
         IsNotNull(TxtBoxUnit.Text) == true &&
         IsNotNull(TxtBoxPostal.Text) == true)
     {
         string spiceOption = "";
         foreach (ListItem o in CheckBoxSpice.Items)
         {
             if (o.Selected)
             {
                 spiceOption += " " + o.Value.ToString();
             }
         }
         OrdersTableAdapter orderta = new OrdersTableAdapter();
         orderta.Fill(ds.Orders);
         try
         {
             DataRow dr = ds.Orders.NewRow();
             dr["orderUser"]        = userName;
             dr["orderDate"]        = DateTime.Now;
             dr["orderDish"]        = DdlFoodChoice.SelectedItem.ToString();
             dr["orderSize"]        = DddlSizeOption.SelectedItem.ToString();
             dr["orderSpices"]      = spiceOption;
             dr["deliveryLocation"] = txtBoxStreetName.Text + " " + TxtBoxUnit.Text + " Postal Code " + TxtBoxPostal.Text;
             dr["orderStatus"]      = "Pending";
             ds.Tables["Orders"].Rows.Add(dr);
             orderta.Update(ds.Orders);
             LabelStatus.Text = "Order Submitted Successfully";
             ClearForm();
         }
         catch (Exception ex)
         {
             LabelStatus.Text = ex.ToString();
         }
     }
     else
     {
         LabelStatus.Text = "Error! Please enter the information for all fields.";
     }
 }
Beispiel #4
0
        public override SdataTransactionResult Update(Sage.Common.Syndication.FeedEntry payload)
        {
            SdataTransactionResult tmpTransactionResult;
            SalesOrderFeedEntry    salesorder = null;

            #region check input values
            if (!(payload is SalesOrderFeedEntry))
            {
                tmpTransactionResult              = new SdataTransactionResult();
                tmpTransactionResult.HttpMethod   = HttpMethod.PUT;
                tmpTransactionResult.ResourceKind = _resourceKind;
                tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.BadRequest;
                tmpTransactionResult.HttpMessage  = ("salesorder payload missing");
                return(tmpTransactionResult);
            }
            salesorder = (payload as SalesOrderFeedEntry);

            if (salesorder == null)
            {
                tmpTransactionResult              = new SdataTransactionResult();
                tmpTransactionResult.HttpMethod   = HttpMethod.PUT;
                tmpTransactionResult.ResourceKind = _resourceKind;
                tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.BadRequest;
                tmpTransactionResult.HttpMessage  = ("salesorder payload missing");
                return(tmpTransactionResult);
            }

            string customerID = "";

            if (salesorder.tradingAccount != null)
            {
                customerID = GetLocalId(salesorder.tradingAccount.UUID, SupportedResourceKinds.tradingAccounts);
            }


            if (String.IsNullOrEmpty(customerID))
            {
                tmpTransactionResult              = new SdataTransactionResult();
                tmpTransactionResult.HttpMethod   = HttpMethod.PUT;
                tmpTransactionResult.ResourceKind = _resourceKind;
                tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.BadRequest;
                tmpTransactionResult.HttpMessage  = ("Trading Acount Id missing");
                return(tmpTransactionResult);
            }

            if (!customerID.StartsWith(Sage.Integration.Northwind.Application.API.Constants.CustomerIdPrefix))
            {
                tmpTransactionResult              = new SdataTransactionResult();
                tmpTransactionResult.HttpMethod   = HttpMethod.PUT;
                tmpTransactionResult.ResourceKind = _resourceKind;
                tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.BadRequest;
                tmpTransactionResult.HttpMessage  = ("Salesorder submission is only supported by customers");
                return(tmpTransactionResult);
            }
            #endregion

            Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.OrderTableAdapters.OrdersTableAdapter        tableAdapter        = new OrdersTableAdapter();
            Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.OrderTableAdapters.Order_DetailsTableAdapter detailsTableAdapter = new Order_DetailsTableAdapter();

            Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order order = new Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order();

            int id;
            if (!(Int32.TryParse(payload.Key, out id)))
            {
                id = 0;
            }
            int recordCount;

            using (OleDbConnection connection = new OleDbConnection(_context.Config.ConnectionString))
            {
                tableAdapter.Connection = connection;
                recordCount             = tableAdapter.FillBy(order.Orders, id);
                if (recordCount == 0)
                {
                    return(null);
                }

                detailsTableAdapter.Connection = connection;
                detailsTableAdapter.FillBy(order.Order_Details, id);
            }


            Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order.OrdersRow row = (Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order.OrdersRow)order.Orders[0];


            #region fill dataset from document
            try
            {
                if (!salesorder.IsPropertyChanged("date"))
                {
                    row.SetOrderDateNull();
                }
                else
                {
                    row.OrderDate = salesorder.date;
                }

                if (!salesorder.IsPropertyChanged("dueDate"))
                {
                    row.SetRequiredDateNull();
                }
                else
                {
                    row.RequiredDate = (DateTime)salesorder.dueDate;
                }

                //if (orderDoc.shippedvia.IsNull)
                //    newOrder.SetShipViaNull();
                //else
                //    newOrder.ShipVia = (int)orderDoc.shippedvia.Value;


                if (salesorder.postalAddresses == null || salesorder.postalAddresses.Entries.Count == 0)
                {
                    row.SetShipAddressNull();
                    row.SetShipCityNull();
                    row.SetShipCountryNull();
                    row.SetShipPostalCodeNull();
                }
                else
                {
                    PostalAddressFeedEntry postadress = salesorder.postalAddresses.Entries[0];
                    row.ShipAddress    = postadress.address1;
                    row.ShipCity       = postadress.townCity;
                    row.ShipPostalCode = postadress.zipPostCode;
                    row.ShipCountry    = postadress.country;
                }


                if (!salesorder.IsPropertyChanged("carrierTotalPrice"))
                {
                    row.Freight = (decimal)0;
                }
                else
                {
                    row.Freight = (decimal)salesorder.carrierTotalPrice;
                }

                //row.CreateUser = _context.Config.CrmUser;
                row.ModifyUser = _context.Config.CrmUser;
                //row.CreateID = _context.Config.SequenceNumber;
                row.ModifyID = _context.Config.SequenceNumber;

                Guid itemUuid;


                List <Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order.Order_DetailsRow> rowsToDelete = new List <Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order.Order_DetailsRow>();
                List <Guid> itemUuids = new List <Guid>();
                if (salesorder.salesOrderLines != null)
                {
                    foreach (SalesOrderLineFeedEntry soLine in salesorder.salesOrderLines.Entries)
                    {
                        if ((soLine.UUID != null && soLine.UUID != Guid.Empty) && (!itemUuids.Contains(soLine.UUID)))
                        {
                            itemUuids.Add(soLine.UUID);
                        }
                    }
                }

                foreach (Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order.Order_DetailsRow detailsRow in order.Order_Details)
                {
                    string itemId = detailsRow.OrderID.ToString() + "-" + detailsRow.ProductID.ToString();
                    itemUuid = GetUuid(itemId, "", SupportedResourceKinds.salesOrderLines);
                    if (itemUuids.Contains(itemUuid))
                    {
                        foreach (SalesOrderLineFeedEntry soLine in salesorder.salesOrderLines.Entries)
                        {
                            if (soLine.UUID.Equals(itemUuid))
                            {
                                if (soLine.IsDeleted)
                                {
                                    rowsToDelete.Add(detailsRow);
                                    break;
                                }

                                /*if (soLine.IsEmpty)
                                 * {
                                 *  break;
                                 * }*/
                                detailsRow.ModifyUser = _context.Config.CrmUser;
                                detailsRow.ModifyID   = _context.Config.SequenceNumber;
                                if (soLine.IsPropertyChanged("quantity"))
                                {
                                    detailsRow.Quantity = Convert.ToInt16(soLine.quantity);
                                }
                                else
                                {
                                    detailsRow.Quantity = 0;
                                }

                                if (soLine.IsPropertyChanged("initialPrice"))
                                {
                                    detailsRow.UnitPrice = (Decimal)soLine.initialPrice;
                                }
                                else
                                {
                                    detailsRow.UnitPrice = 0;
                                }

                                if ((!soLine.IsPropertyChanged("discountTotal")) || (detailsRow.Quantity == 0) || (detailsRow.UnitPrice == 0))
                                {
                                    detailsRow.Discount = (float)0;
                                }
                                else
                                {
                                    // discountPC = discountsum / qunatity * listprice
                                    //detailRow.Discount = Convert.ToSingle((decimal)lineItemDoc.discountsum.Value / ((decimal)detailRow.Quantity * detailRow.UnitPrice));
                                    float discount = Convert.ToSingle((decimal)soLine.discountTotal / (detailsRow.UnitPrice));
                                    if (discount > 1)
                                    {
                                        discount = 0;
                                    }
                                    detailsRow.Discount = discount;
                                }
                                break;
                            }
                        }
                        itemUuids.Remove(itemUuid);
                    }
                    else
                    {
                        //delete item
                        rowsToDelete.Add(detailsRow);
                    }
                }

                if (salesorder.salesOrderLines != null)
                {
                    foreach (SalesOrderLineFeedEntry soLine in salesorder.salesOrderLines.Entries)
                    {
                        Guid soUuid = soLine.UUID;
                        if (itemUuids.Contains(soUuid))
                        {
                            itemUuids.Remove(soUuid);
                        }
                        else
                        {
                            continue;
                        }

                        try
                        {
                            Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order.Order_DetailsRow detailRow = order.Order_Details.NewOrder_DetailsRow();
                            Guid   productUuid     = soLine.commodity.UUID;
                            string productIdString = GetLocalId(productUuid, SupportedResourceKinds.commodities);

                            int productID;
                            if (!int.TryParse(productIdString, out productID))
                            {
                                continue;
                            }

                            string sorderID = payload.Key + "-" + productID.ToString();
                            detailRow.OrderID   = Convert.ToInt32(payload.Key);
                            detailRow.ProductID = productID;
                            if (soLine.IsPropertyChanged("quantity"))
                            {
                                detailRow.Quantity = Convert.ToInt16(soLine.quantity);
                            }
                            else
                            {
                                detailRow.Quantity = 0;
                            }

                            if (soLine.IsPropertyChanged("initialPrice"))
                            {
                                detailRow.UnitPrice = (Decimal)soLine.initialPrice;
                            }
                            else
                            {
                                detailRow.UnitPrice = 0;
                            }

                            if ((!soLine.IsPropertyChanged("discountTotal")) || (detailRow.Quantity == 0) || (detailRow.UnitPrice == 0))
                            {
                                detailRow.Discount = (float)0;
                            }
                            else
                            {
                                // discountPC = discountsum / qunatity * listprice
                                //detailRow.Discount = Convert.ToSingle((decimal)lineItemDoc.discountsum.Value / ((decimal)detailRow.Quantity * detailRow.UnitPrice));
                                float discount = Convert.ToSingle((decimal)soLine.discountTotal / (detailRow.UnitPrice));
                                if (discount > 1)
                                {
                                    discount = 0;
                                }
                                detailRow.Discount = discount;
                            }

                            detailRow.CreateUser = _context.Config.CrmUser;
                            detailRow.ModifyUser = _context.Config.CrmUser;
                            detailRow.CreateID   = _context.Config.SequenceNumber;
                            detailRow.ModifyID   = _context.Config.SequenceNumber;
                            order.Order_Details.AddOrder_DetailsRow(detailRow);
                        }
                        // this error occours in case of invalid data types
                        catch (Exception e)
                        {
                            tmpTransactionResult              = new SdataTransactionResult();
                            tmpTransactionResult.HttpMethod   = HttpMethod.POST;
                            tmpTransactionResult.ResourceKind = _resourceKind;
                            tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.BadRequest;
                            tmpTransactionResult.HttpMessage  = e.Message;
                            return(tmpTransactionResult);
                        }
                    }
                }



                using (OleDbConnection connection = new OleDbConnection(_context.Config.ConnectionString))
                {
                    OleDbTransaction transaction = null;
                    try
                    {
                        connection.Open();
                        transaction = connection.BeginTransaction();

                        tableAdapter.Connection        = connection;
                        detailsTableAdapter.Connection = connection;

                        tableAdapter.SetTransaction(transaction);
                        detailsTableAdapter.SetTransaction(transaction);

                        foreach (Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order.Order_DetailsRow detailsRow in rowsToDelete)
                        {
                            detailsTableAdapter.Delete(detailsRow.OrderID,
                                                       detailsRow.ProductID,
                                                       detailsRow.UnitPrice, detailsRow.Quantity,
                                                       detailsRow.Discount, detailsRow.CreateID, detailsRow.CreateUser, detailsRow.ModifyID, detailsRow.ModifyUser);
                        }

                        tableAdapter.Update(order.Orders);
                        detailsTableAdapter.Update(order.Order_Details);

                        transaction.Commit();


                        tmpTransactionResult              = new SdataTransactionResult();
                        tmpTransactionResult.HttpMethod   = HttpMethod.PUT;
                        tmpTransactionResult.ResourceKind = _resourceKind;
                        tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.OK;
                        tmpTransactionResult.LocalId      = payload.Key;
                        return(tmpTransactionResult);
                    }
                    catch (Exception transactionException)
                    {
                        if (transaction != null)
                        {
                            transaction.Rollback();
                        }
                        throw;
                    }
                }
            }
            catch (Exception e)
            {
                tmpTransactionResult              = new SdataTransactionResult();
                tmpTransactionResult.HttpMethod   = HttpMethod.PUT;
                tmpTransactionResult.ResourceKind = _resourceKind;
                tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.BadRequest;
                tmpTransactionResult.HttpMessage  = e.ToString();
                return(tmpTransactionResult);
            }

            #endregion
        }
Beispiel #5
0
        public override SdataTransactionResult Delete(string localID)
        {
            SdataTransactionResult tmpTransactionResult;

            Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.OrderTableAdapters.OrdersTableAdapter        tableAdapter        = new OrdersTableAdapter();
            Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.OrderTableAdapters.Order_DetailsTableAdapter detailsTableAdapter = new Order_DetailsTableAdapter();
            Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order order = new Sage.Integration.Northwind.Adapter.Data.SalesOrders.DataSets.Order();

            int id;

            if (!(Int32.TryParse(localID, out id)))
            {
                id = 0;
            }
            int recordCount;

            using (OleDbConnection connection = new OleDbConnection(_context.Config.ConnectionString))
            {
                try
                {
                    tableAdapter.Connection = connection;
                    recordCount             = tableAdapter.FillBy(order.Orders, id);
                    if (recordCount == 0)
                    {
                        tmpTransactionResult              = new SdataTransactionResult();
                        tmpTransactionResult.LocalId      = localID;
                        tmpTransactionResult.HttpMethod   = HttpMethod.DELETE;
                        tmpTransactionResult.ResourceKind = _resourceKind;
                        tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.BadRequest;
                        tmpTransactionResult.HttpMessage  = ("salesorder not found");
                        return(tmpTransactionResult);
                    }

                    detailsTableAdapter.Connection = connection;
                    detailsTableAdapter.FillBy(order.Order_Details, id);
                    foreach (DataRow row in order.Order_Details.Rows)
                    {
                        row.Delete();
                    }
                    order.Orders[0].Delete();
                    detailsTableAdapter.Update(order.Order_Details);
                    tableAdapter.Update(order.Orders);
                    tmpTransactionResult              = new SdataTransactionResult();
                    tmpTransactionResult.LocalId      = localID;
                    tmpTransactionResult.HttpMethod   = HttpMethod.DELETE;
                    tmpTransactionResult.ResourceKind = _resourceKind;
                    tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.OK;
                    return(tmpTransactionResult);
                }
                catch (Exception e)
                {
                    tmpTransactionResult              = new SdataTransactionResult();
                    tmpTransactionResult.LocalId      = localID;
                    tmpTransactionResult.HttpMethod   = HttpMethod.DELETE;
                    tmpTransactionResult.ResourceKind = _resourceKind;
                    tmpTransactionResult.HttpStatus   = System.Net.HttpStatusCode.BadRequest;
                    tmpTransactionResult.HttpMessage  = e.Message;
                    return(tmpTransactionResult);
                }
            }
        }
Beispiel #6
0
        /*
         * Function orderConfirmation_Click
         * Upon clicking the Confirmation button the order will be placed the the appropriate database tables will be updated.
         */
        private void orderConfirmation_Click(object sender, EventArgs e)
        {
            // Database updates for customer orders. Updates the Orders and Orderline tables.
            if (forInv == false)
            {
                DataSet1.OrdersRow or = ds.Orders.NewOrdersRow();

                or.OrderDate  = DateTime.Now;
                or.EmployeeID = this.employeeID;

                ds.Orders.AddOrdersRow(or);
                ot.Update(ds.Orders);

                // Assigns the global variable orderID to the maximum value of the OrderID column in the Orders table.
                this.orderID = ds.Tables["Orders"].AsEnumerable().Max(x => x.Field <int>("OrderID"));

                DataSet1.OrderlineRow olr = null;

                for (int i = 0; i < (itemID.Length / itemID.Rank); i++)
                {
                    olr          = ds.Orderline.NewOrderlineRow();
                    olr.OrderID  = this.orderID;
                    olr.MenuID   = itemID[i, 0];
                    olr.Quantity = itemID[i, 1];

                    ds.Orderline.AddOrderlineRow(olr);
                    olt.Update(ds.Orderline);
                }
                string filename = @".\Order" + this.orderID + ".txt";
                File.WriteAllText(filename, writetofile);
                MessageBox.Show("Order " + this.orderID + " sucessfully placed.");
                menuForm.Visible = true;
                this.Close();
            }
            // Database updates for inventory orders. Updates the PurchaseOrders, PurchaseOrderline and Inventory tables.
            else if (forInv == true)
            {
                DataSet1.PurchaseOrdersRow por = ds.PurchaseOrders.NewPurchaseOrdersRow();

                por.PurchaseOrderDate = DateTime.Now;
                por.EmployeeID        = this.employeeID;

                ds.PurchaseOrders.AddPurchaseOrdersRow(por);
                pot.Update(ds.PurchaseOrders);

                // Assigns the global variable purchaseorderID to the maximum value of the PurchaseOrderID in the PurchaseOrders table.
                this.purchaseorderID = ds.Tables["PurchaseOrders"].AsEnumerable().Max(x => x.Field <int>("PurchaseOrderID"));

                DataSet1.PurchaseOrderlineRow polr = null;
                int inventoryID       = 0;
                int inventoryQuantity = 0;

                for (int i = 0; i < (itemID.Length / itemID.Rank); i++)
                {
                    polr = ds.PurchaseOrderline.NewPurchaseOrderlineRow();
                    polr.PurchaseOrderID = this.purchaseorderID;
                    polr.ProductID       = itemID[i, 0];
                    polr.Quantity        = itemID[i, 1];

                    ds.PurchaseOrderline.AddPurchaseOrderlineRow(polr);
                    polt.Update(ds.PurchaseOrderline);

                    inventoryID       = itemID[i, 0];
                    inventoryQuantity = itemID[i, 1];

                    foreach (DataRow dr in ds.Tables["Inventory"].Select("ProductID = " + inventoryID))
                    {
                        dr[3] = inventoryQuantity;
                    }
                    ds.Tables["Inventory"].AcceptChanges();
                    it.Update(ds.Inventory);
                }
                string filename = @".\PurchaseOrder" + this.purchaseorderID + ".txt";
                File.WriteAllText(filename, writetofile);
                MessageBox.Show("Purchase Order " + this.purchaseorderID + " sucessfully placed.");
                invinForm.Show();
                this.Close();
            }
        }