Exemple #1
0
        public purchaseOrdersPopup(client.purchaseOrders.Form1 inParentForm, String inPONbr)
        {
            InitializeComponent();
            parentForm = inParentForm;

            ctDynamicsSL.purchaseOrders.nameValuePairs[] outParams = new ctDynamicsSL.purchaseOrders.nameValuePairs[1];
            outParams[0]       = new ctDynamicsSL.purchaseOrders.nameValuePairs();
            outParams[0].name  = "PONBR";
            outParams[0].value = inPONbr;

            this.gvPurchaseOrders.DataSource          = parentForm.myPurchaseOrdersService.getPurchOrds(0, 0, outParams);
            this.gvPurchaseOrders.AutoGenerateColumns = true;
        }
        private void btnMoveLines_Click(object sender, EventArgs e)
        {
            tbAltPONbr.Text = tbAltPONbr.Text.Trim();
            if (tbAltPONbr.Text == "")
            {
                MessageBox.Show("You must select a destination PONbr!");
                return;
            }

            ctDynamicsSL.purchaseOrders.nameValuePairs[] outParams = new ctDynamicsSL.purchaseOrders.nameValuePairs[1];
            outParams[0]       = new ctDynamicsSL.purchaseOrders.nameValuePairs();
            outParams[0].name  = "PONBR";
            outParams[0].value = tbAltPONbr.Text;
            ctDynamicsSL.purchaseOrders.PurchOrd[] altPO = myPurchaseOrdersService.getPurchOrds(0, 0, outParams);
            if (altPO.Length > 1)
            {
                MessageBox.Show("Too many Destination PO results!");
                return;
            }
            if (altPO.Length == 0)
            {
                MessageBox.Show("Invalid destination PONbr!");
                return;
            }
            //if we get here, we know we have a valid destination PO.

            if (gvSOLine.SelectedRows.Count == 0)
            {
                MessageBox.Show("No Rows Selected!");
                return;
            }

            ctDynamicsSL.purchaseOrders.purchaseOrder     originalPO        = myPurchaseOrdersService.getPurchaseOrder(tbPONbr.Text);
            ctDynamicsSL.purchaseOrders.poLineItem[]      origOriginalItems = originalPO.LineItems;
            List <ctDynamicsSL.purchaseOrders.poLineItem> newOriginalItems  = new List <ctDynamicsSL.purchaseOrders.poLineItem>();

            ctDynamicsSL.purchaseOrders.purchaseOrder     destinationPO        = myPurchaseOrdersService.getPurchaseOrder(tbAltPONbr.Text);
            ctDynamicsSL.purchaseOrders.poLineItem[]      origDestinationItems = destinationPO.LineItems;
            List <ctDynamicsSL.purchaseOrders.poLineItem> newDestinationItems  = new List <ctDynamicsSL.purchaseOrders.poLineItem>();

            newDestinationItems.AddRange(origDestinationItems);


            foreach (System.Windows.Forms.DataGridViewRow tmpRow in gvSOLine.SelectedRows)
            {
                String tmpRowLineRef = tmpRow.Cells["LINEREF"].Value.ToString().Trim().ToUpper();

                foreach (ctDynamicsSL.purchaseOrders.poLineItem tmpOrigItem in originalPO.LineItems)
                {
                    if (tmpRowLineRef == tmpOrigItem.LineRef.ToString().Trim().ToUpper())
                    {
                        ctDynamicsSL.purchaseOrders.poLineItem tmpItem = tmpOrigItem;
                        tmpItem.LineRef = "";
                        newDestinationItems.Add(tmpItem);
                        break;
                    }
                }
            }

            destinationPO.LineItems = newDestinationItems.ToArray();
            destinationPO           = myPurchaseOrdersService.savePurchaseOrder(destinationPO);
            MessageBox.Show(ctStandardLib.ctHelper.serializeObject(destinationPO.returnVal));

            for (System.Int32 i = 0; i < origOriginalItems.Length; i++)
            {
                if (origOriginalItems[i].LineRef.Trim() != "")
                {
                    newOriginalItems.Add(origOriginalItems[i]);
                }
            }
            if (newOriginalItems.Count > 0)
            {
                originalPO.LineItems = newOriginalItems.ToArray();
                originalPO           = myPurchaseOrdersService.savePurchaseOrder(originalPO);
            }
            else
            {
                originalPO        = myPurchaseOrdersService.getPurchaseOrder(originalPO.PONbr);
                originalPO.Status = "X";
                originalPO        = myPurchaseOrdersService.savePurchaseOrder(originalPO);
            }
            MessageBox.Show(ctStandardLib.ctHelper.serializeObject(originalPO.returnVal));
        }