private void HandleQuoteItem(int jobID, int estRevID, int quoteRevID, string sfQuoteID, enterprise.QueryResult result) { try { //create service client to call API endpoint using (enterprise.SoapClient queryClient = new enterprise.SoapClient("Soap", apiAddr)) { if (result == null || (result != null && result.size == 0)) { return; } //cast query results IEnumerable <enterprise.Item__c> itemList = result.records.Cast <enterprise.Item__c>(); List <string> items = new List <string>(); //show results foreach (var il in itemList) { items.Add(il.Id); int itemIDTemp = CommonMethods.GetMISID(TableName.Quote_Item, il.Id, sfQuoteID, salesForceProjectID); if (itemIDTemp == 0) { var qt = new QuoteTitleGenerate(jobID, estRevID); qt.MyID = quoteRevID; int itemID = CommonMethods.GetEstimationItemID(estRevID, il.Item_Name__c); if (itemID != 0) { int quoteItemID = qt.GenerateNewItems(itemID); if (quoteItemID > 0) { CommonMethods.InsertToMISSalesForceMapping(TableName.Quote_Item, il.Id, quoteItemID.ToString(), sfQuoteID, salesForceProjectID); itemIDTemp = quoteItemID; } } else { QuoteItemBlank qib = new QuoteItemBlank(quoteRevID); qib.CreateNew(); int quoteItemID = qib.NewID; if (quoteItemID > 0) { CommonMethods.InsertToMISSalesForceMapping(TableName.Quote_Item, il.Id, quoteItemID.ToString(), sfQuoteID, salesForceProjectID); itemIDTemp = quoteItemID; } } } if (itemIDTemp != 0) { UpdateQuoteItem(itemIDTemp, il.Item_Name__c, il.Requirement__c, il.Item_Description__c, il.Item_Cost__c, il.Quantity__c, il.Item_Order__c, il.Item_Option__c); } } DeleteAllDeletedQuoteItems(items.ToArray(), sfQuoteID); LogMethods.Log.Debug("HandleQuoteItem:Debug:" + "Done"); } } catch (Exception e) { LogMethods.Log.Error("HandleQuoteItem:Error:" + e.Message); } }
public void GetAllQuotes(string sfProjectID, int jobID, int estRevID, int userEmployeeID) { try { //create service client to call API endpoint using (enterprise.SoapClient queryClient = new enterprise.SoapClient("Soap", apiAddr)) { //create SQL query statement string query = "SELECT Id, Name, Status__c, Sub_Total__c, SubTotal_Discount__c, " + " Contract_Number__c, Contract_Amount__c, Contract_Issue_Date__c, Contract_Due_Date__c, Deposit__c, Terms__c, Version__c, Project_Name__r.Project_Coordinator__r.CommunityNickname, " + " Tax_Option__c, Tax_Rate__c, Project_Name__r.Currency__c, " + " (SELECT Id, Title__c, Content__c FROM Notes__r), " + " (SELECT Id, Item_Name__c, Item_Order__c, Requirement__c, Item_Description__c, Item_Cost__c, Quantity__c, Item_Option__c FROM Items__r), " + " (SELECT Id, Service_Name__r.Name, Service_Detail__c, Service_Cost__c,Note__c, Service_Name__r.MIS_Service_Number__c FROM Service_Costs__r) " + " FROM Quotation__c " + " WHERE Project_Name__c = '" + sfProjectID + "'"; enterprise.QueryResult result; queryClient.query( header, //sessionheader null, //queryoptions null, //mruheader null, //packageversion query, out result); /* if no any record, return */ if (result.size == 0) { return; } //cast query results IEnumerable <enterprise.Quotation__c> quoteList = result.records.Cast <enterprise.Quotation__c>(); foreach (var ql in quoteList) { /* check if the quote exists */ int quoteID = CommonMethods.GetMISID(TableName.Sales_JobMasterList_quoteRev, ql.Id, salesForceProjectID); if (quoteID == 0) { // not exist // generate quote title var qt = new QuoteTitleGenerate(jobID, estRevID); qt.GenerateTitle(); int quoteRevID = qt.GetNewID(); if (quoteRevID > 0) { CommonMethods.InsertToMISSalesForceMapping(TableName.Sales_JobMasterList_quoteRev, ql.Id, quoteRevID.ToString(), salesForceProjectID); } quoteID = quoteRevID; } if (quoteID != 0) { UpdateQuote(quoteID, ql.Sub_Total__c, ql.SubTotal_Discount__c, ql.Version__c, ql.Tax_Option__c, ql.Tax_Rate__c, ql.Terms__c, ql.Project_Name__r.Currency__c, ql.Project_Name__r.Project_Coordinator__r); // handle quote items HandleQuoteItem(jobID, estRevID, quoteID, ql.Id, ql.Items__r); // handle services HandleQuoteService(jobID, estRevID, quoteID, ql.Id, ql.Service_Costs__r); // handle notes HandleNotes(jobID, estRevID, quoteID, ql.Notes__r, ql.Id); if (ql.Status__c == "Accepted") { // update contract information UpdateWINContract(quoteID, ql.Contract_Number__c, ql.Contract_Issue_Date__c, ql.Contract_Due_Date__c, ql.Contract_Amount__c, ql.Deposit__c, ql.Terms__c); } else if (ql.Status__c == "Denied") { UpdateLOSSNContract(quoteID); } } } LogMethods.Log.Debug("GetAllQuote:Debug:" + "Done"); } } catch (Exception e) { LogMethods.Log.Error("GetAllQuote:Error:" + e.Message); } }