示例#1
0
        public void idoInsert()
        {
            LogMessage("idoInsert");
            UpdateCollectionRequestData insert = new UpdateCollectionRequestData(ido);
            IDOUpdateItem itm = new IDOUpdateItem(UpdateAction.Insert);

            //ONE PROPERTY
            if (!properties.Contains(","))
            {
                itm.Properties.Add(properties, values);
                insert.Items.Add(itm);
            }
            else
            {
                string[] propertyArray = properties.Split(',');
                string[] valueArray    = values.Split(',');
                for (int i = 0; i < propertyArray.Length; i++)
                {
                    itm.Properties.Add(propertyArray[i], valueArray[i]);
                    insert.Items.Add(itm);
                }
            }
            stopwatch.Start();
            IDOClient.UpdateCollection(insert);
            stopwatch.Stop();
            stopwatch.Reset();
        }
示例#2
0
        /// <summary>
        /// Enable / Disable the Quick Add Product Menu
        /// -- Enable: if BOE is disabled --
        /// -- Disable: if BOE is enabled --
        /// </summary>
        public void EnableDisableProductMenu()
        {
            var integrationCollection = IDOClient.LoadCollection("CRMIntegration", "Enabled", "Name = 'Back Office Extension'", string.Empty, 1);
            int enabled = integrationCollection[0, "Enabled"].GetValue <int>() == 1 ? 0 : 1;

            string filter = string.Format("Action = '{0}'", "CRMQuickAddProduct");
            LoadCollectionResponseData loadResponse = IDOClient.LoadCollection("CRMMenus", "Enabled", filter, string.Empty, 1);

            var updateReq = new UpdateCollectionRequestData()
            {
                IDOName            = "CRMMenus",
                RefreshAfterUpdate = true
            };

            foreach (var current in loadResponse.Items)
            {
                var updateItem = new IDOUpdateItem()
                {
                    ItemID = current.ItemID,
                    Action = UpdateAction.Update
                };

                updateItem.Properties.Add("Enabled", enabled);
                updateReq.Items.Add(updateItem);
            }

            IDOClient.UpdateCollection(updateReq);
        }
示例#3
0
        public void AddAccountPlanningCycle()
        {
            UpdateCollectionRequestData req = new UpdateCollectionRequestData();

            req.IDOName            = "CRMPlanningCycleAssociations";
            req.RefreshAfterUpdate = true;
            var accountID            = ThisForm.PrimaryIDOCollection.GetCurrentObjectProperty("ID");
            var count                = ThisForm.ModalChildForm.PrimaryIDOCollection.GetNumEntries();
            var accountPlanningCycle = string.Empty;

            for (var curIndex = 0; curIndex < count; curIndex++)
            {
                if (ThisForm.ModalChildForm.PrimaryIDOCollection.GetObjectProperty("CRMRecordSelected", curIndex) == "1")
                {
                    IDOUpdateItem newItem;
                    string        planningCycleID = ThisForm.ModalChildForm.PrimaryIDOCollection.GetObjectProperty("ID", curIndex);
                    if (planningCycleID == null)
                    {
                        return;
                    }

                    if (!IsDuplicateAccountPlanningCycleRecord(accountID, planningCycleID))
                    {
                        newItem = MapAccountPlanningCycle(accountID, planningCycleID);
                        req.Items.Add(newItem);
                    }
                }
            }

            IDOClient.UpdateCollection(req);
            ThisForm.PrimaryIDOCollection.RefreshKeepCurIndex();
            return;
        }
示例#4
0
        private void AddAccountCampaign()
        {
            UpdateCollectionRequestData req = new UpdateCollectionRequestData();

            req.IDOName            = "CRMCampaignAccount";
            req.RefreshAfterUpdate = true;

            string primaryID = ThisForm.PrimaryIDOCollection.GetCurrentObjectProperty("ID");
            int    count     = ThisForm.ModalChildForm.PrimaryIDOCollection.GetNumEntries();

            for (var curIndex = 0; curIndex < count; curIndex++)
            {
                if (ThisForm.ModalChildForm.PrimaryIDOCollection.GetObjectProperty("CRMRecordSelected", curIndex) == "1")
                {
                    IDOUpdateItem newItem;
                    var           childID = ThisForm.ModalChildForm.PrimaryIDOCollection.GetObjectProperty("ID", curIndex);

                    if (childID == null)
                    {
                        return;
                    }

                    if (!IsDuplicateCampaignAccountRecord(primaryID, childID))
                    {
                        newItem = MapCampaignAccount(primaryID, childID);
                        req.Items.Add(newItem);
                    }
                }
            }

            IDOClient.UpdateCollection(req);
            return;
        }
示例#5
0
        public void AddAccountOpportunity()
        {
            UpdateCollectionRequestData req = new UpdateCollectionRequestData();

            req.IDOName            = "CRMOPPORTUNITYRESELLER";
            req.RefreshAfterUpdate = true;
            string accountID     = ThisForm.PrimaryIDOCollection.GetCurrentObjectProperty("ID");
            string opportunityID = ThisForm.ModalChildForm.PrimaryIDOCollection.GetCurrentObjectProperty("ID");

            IDOUpdateItem newItem;

            if (string.IsNullOrWhiteSpace(opportunityID))
            {
                return;
            }

            string description = ThisForm.ModalChildForm.PrimaryIDOCollection.GetCurrentObjectProperty("Description");

            if (IsDuplicate(opportunityID))
            {
                Application.ShowMessage(Application.GetStringValue("mIsAlreadyAssociatedToThisAccount").Replace("%1", description));
                return;
            }

            newItem = MapContactOpportunitItem(accountID, opportunityID);
            req.Items.Add(newItem);

            IDOClient.UpdateCollection(req);
            ThisForm.PrimaryIDOCollection.RefreshKeepCurIndex();
            return;
        }
示例#6
0
        private void AssociateAccountContact()
        {
            var req = new UpdateCollectionRequestData
            {
                IDOName            = "CRMContactAccount",
                RefreshAfterUpdate = true
            };
            string accountId = ThisForm.PrimaryIDOCollection.GetCurrentObjectProperty("ID");
            int    count     = ThisForm.ModalChildForm.PrimaryIDOCollection.GetNumEntries();

            for (int curIndex = 0; curIndex < count; curIndex++)
            {
                if (ThisForm.ModalChildForm.PrimaryIDOCollection.GetObjectProperty("CRMRecordSelected", curIndex) == "1")
                {
                    string contactId           = ThisForm.ModalChildForm.PrimaryIDOCollection.GetObjectProperty("ID", curIndex);
                    var    existingAssociation = IDOClient.LoadCollection("CRMContactAccount", "AccountID, ContactID", string.Format("AccountID = '{0}' AND ContactID = '{1}'", accountId, contactId), string.Empty, 1);
                    if (existingAssociation.Items.Count == 0)
                    {
                        req.Items.Add(MapNewItem(contactId, accountId));
                    }
                    //Application.ShowMessage(Application.GetStringValue("sRecordExisted"));
                }
            }
            try
            {
                IDOClient.UpdateCollection(req);
            }
            catch (Exception ex)
            {
                Application.ShowMessage(ex.Message);
                Application.DiagnosticsLog(ex.Message);
            }
            ThisForm.PrimaryIDOCollection.RefreshKeepCurIndex();
        }
 public UpdateCollectionRequestData GetInsertCollectionRequest(IIdoCommandBuilder builder)
 { 
     var request = new UpdateCollectionRequestData()
                       {
                           IDOName = builder.IdoName, 
                           RefreshAfterUpdate = true, 
                       }; 
     foreach (IIdoCommandBuilder child in builder.GetChildren())
         child.Action(UpdateAction.Insert);
     request.Items.Add(getInsertItem(builder));
     return request;
 }
示例#8
0
        public void delete()
        {
            UpdateCollectionRequestData updateRequest = new UpdateCollectionRequestData(ido);
            IDOUpdateItem itm = new IDOUpdateItem(UpdateAction.Delete);

            itm.Properties.Add("table_name", "", true);
            itm.Properties.Add("table_schema", "dbo", true);
            itm.Properties.Add("object_id", null, true);
            itm.Properties.Add("DerSource", "mdlw", true);
            itm.Properties.Add("DerIsSiteSplit", "0", true);
            updateRequest.Items.Add(itm);
            //Context.Commands.UpdateCollection(updateRequest);
        }
        public UpdateCollectionRequestData GetUpdateCollectionRequest( 
            IIdoCommandBuilder builder, LoadCollectionResponseWrapper loadData)
        { 
            var request = new UpdateCollectionRequestData()
                              {
                                  IDOName = builder.GetIDOName(), 
                                  RefreshAfterUpdate = true, 
                                  LinkBy = builder.GetLinkBy()
                              };
            var action = GetUpdateActionFromBuilder(builder);

            request.Items.AddRange(get_update_items(builder, loadData.Records, action));
            return request;
        }
        private UpdateCollectionDataBase getNestedInsert(IIdoCommandBuilder builder)
        {
            PropertyPair linkBy = null;
            if (builder.GetLinkBy().Length > 0)
                linkBy = builder.GetLinkBy()[0];
            var data = new UpdateCollectionRequestData(builder.GetIDOName());

            var idoUpdateItem = getInsertItem(builder);

            data.Items.Add(idoUpdateItem);

            if (linkBy != null)
                data.SetLinkBy(linkBy.ParentProperty, linkBy.ChildProperty);

            return data;
        }
示例#11
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="parameters">
        /// [0]  -  RefSequence
        /// [1]  -  DocumentObjectRowPointer
        /// [2]  -  TableName1
        /// [3]  -  TableRowPointer1
        /// [4]  -  TableName2
        /// [5]  -  TableRowPointer2
        /// [6]  -  TableName3
        /// [7]  -  TableRowPointer3
        /// </param>
        public void AttachAdditionalAttachments(params string[] parameters)
        {
            //ShowParameters(parameters);
            // Need to check input parameters here
            int pairs = parameters.Length - 2;

            string refSequence = parameters[0];
            string documentObjectRowPointer = parameters[1];

            UpdateCollectionRequestData  request = new UpdateCollectionRequestData();
            UpdateCollectionResponseData response;
            IDOUpdateItem customerItem = new IDOUpdateItem();

            request.IDOName            = "CRMDocumentObjectReferences";
            request.RefreshAfterUpdate = true;

            for (int i = 0; i < pairs; i += 2)
            {
                var idoName         = parameters[2 + i];
                var tableRowPointer = parameters[3 + i];
                //Application.ShowMessage("1-idoName=" + idoName + " tableRowPointer=" + tableRowPointer);

                customerItem.Action = UpdateAction.Insert;
                customerItem.Properties.Add("TableName", idoName);               // Set TableName
                customerItem.Properties.Add("TableRowPointer", tableRowPointer); // Set TableRowPointer
                customerItem.Properties.Add("DocumentObjectRowPointer",
                                            documentObjectRowPointer);           // Set DocumentObjectRowPointer
                customerItem.Properties.Add("RefSequence", refSequence);
            }
            request.Items.Add(customerItem);
            try
            {
                //Application.ShowMessage(request.IDOName);
                response = this.IDOClient.UpdateCollection(request);
            }
            catch (Exception ex)
            {
                Application.DiagnosticsLog(ex.Message);
            }
        }
示例#12
0
        /// <summary>
        /// Insert trxHeader record with approval of adjustments
        /// Insert all trxLine record with adjustments under trxHeader
        /// </summary>
        public void Submit()
        {
            string trxHeaderIdoName = "CRMWarehouseLocationTrxHeader";
            string trxType          = "StockAdjust";
            string todayDate        = DateTime.UtcNow.ToString("yyyy-MM-ddThh:mm:ss.fffZ");
            string stockBin         = ThisForm.Variables("VarStockBin").Value;

            //INSERT TRX HEADER RECORD
            UpdateCollectionRequestData insert = new UpdateCollectionRequestData(trxHeaderIdoName);
            IDOUpdateItem itm = new IDOUpdateItem(UpdateAction.Insert);

            itm.Properties.Add("TrxType", trxType);
            itm.Properties.Add("TrxDate", todayDate);
            itm.Properties.Add("VanStockLocation", stockBin);
            itm.Properties.Add("Status", "Posted");
            insert.Items.Add(itm);

            try {
                IDOClient.UpdateCollection(insert);
            } catch (Exception e) {
                Application.ShowMessage("Unable to insert record to " + trxHeaderIdoName + "\n" + e.Message);
            }

            Application.ShowMessage("Successfully submitted TrxHeader at " + todayDate);

            //GET TRX HEADER ID FOR TRX LINES
            LoadCollectionRequestData trxHeaderLoadRequest = new LoadCollectionRequestData();

            trxHeaderLoadRequest.IDOName = trxHeaderIdoName;
            trxHeaderLoadRequest.PropertyList.Add("ID");
            trxHeaderLoadRequest.Filter    = "TrxDate = '" + todayDate + "'";
            trxHeaderLoadRequest.OrderBy   = "";
            trxHeaderLoadRequest.RecordCap = 1;
            LoadCollectionResponseData trxHeaderLoadResponse = IDOClient.LoadCollection(trxHeaderLoadRequest);

            if (trxHeaderLoadResponse.Items.Count != 1)
            {
                Application.ShowMessage("Could not load " + trxHeaderIdoName + " record with TrxDate = " + todayDate);
                return;
            }

            //INSERT TRX LINE RECORD
            insert = new UpdateCollectionRequestData("CRMWarehouseStockLotLocationTrx");

            ThisForm.PrimaryIDOCollection.First();
            for (int i = 0; i < ThisForm.PrimaryIDOCollection.GetNumEntries() - 1; i++)
            {
                string trxHeader      = trxHeaderLoadResponse[0, "ID"].Value;
                string productID      = ThisForm.PrimaryIDOCollection.GetCurrentObjectProperty("ProductID");
                string locationID     = ThisForm.PrimaryIDOCollection.GetCurrentObjectProperty("LocationID");
                string lotCode        = ThisForm.PrimaryIDOCollection.GetCurrentObjectProperty("StockLotCode");
                string systemQuantity = ThisForm.PrimaryIDOCollection.GetCurrentObjectProperty("QuantityOnHand");
                string adjustment     = ThisForm.PrimaryIDOCollection.GetCurrentObjectProperty("Adjustment");
                string reason         = ThisForm.PrimaryIDOCollection.GetCurrentObjectProperty("Reason");

                Application.ShowMessage(productID + "\n" + locationID + "\n" + lotCode + "\n" + systemQuantity + "\n" + adjustment + "\n" + reason);

                //if adjustment is empty, skip
                if (adjustment.Equals(""))
                {
                    ThisForm.PrimaryIDOCollection.Next();
                    continue;
                }

                itm = new IDOUpdateItem(UpdateAction.Insert);
                itm.Properties.Add("TrxHeader", trxHeader);
                itm.Properties.Add("ProductID", productID);
                itm.Properties.Add("LocationID", locationID);
                itm.Properties.Add("StockLotCode", lotCode);
                itm.Properties.Add("QuantityOnHand", systemQuantity);
                itm.Properties.Add("CountAdjustment", adjustment);
                itm.Properties.Add("Reason", reason);
                insert.Items.Add(itm);

                ThisForm.PrimaryIDOCollection.Next();
            }

            try {
                IDOClient.UpdateCollection(insert);
            } catch (Exception e) {
                Application.ShowMessage("Unable to insert into CRMWarehouseStockLotLocationTrx\n" + e.Message);
            }
        }
        private UpdateCollectionRequestData getNestedUpdate(IIdoCommandBuilder builder, IdoItemWrapper idoItemWrapper)
        {
            PropertyPair linkBy = null;
            if (builder.GetLinkBy().Length > 0)
                linkBy = builder.GetLinkBy()[0];
            var data = new UpdateCollectionRequestData(builder.GetIDOName());

            var idoUpdateItem = getUpdateItem(builder, builder.GetUpdateAction(), idoItemWrapper);
            
            idoUpdateItem.ItemID = idoItemWrapper[IdoConstants.KEY].ToString(); //not needed!!!
            data.Items.Add(idoUpdateItem);
            if (linkBy != null)
                data.SetLinkBy(linkBy.ParentProperty, linkBy.ChildProperty);
            
            return data;
        }
 public UpdateCollectionResponseData UpdateCollection(UpdateCollectionRequestData request)
 {
     return _client.UpdateCollection(request);
 }