internal static ITransferInventoryRet ReturnInventory(QuickBooksReturnInventoryDocumentDto orderDoc) { bool boolSessionBegun = false; QBSessionManager sessionManager = new QBSessionManager(); try { IMsgSetRequest requestMsgSet; IMsgSetResponse responseMsgSet; sessionManager.OpenConnection("", _appName); sessionManager.BeginSession(qdbpath, ENOpenMode.omDontCare); boolSessionBegun = true; requestMsgSet = GetLatestMsgSetRequest(sessionManager); requestMsgSet.Attributes.OnError = ENRqOnError.roeStop; var salesmanCode = orderDoc.SalesmanCode; var fromSite = GetStockSiteBySalesperson(salesmanCode); var toSite =string.Empty; if (!string.IsNullOrEmpty(fromSite)) { toSite = GetIssuingWarehouse(fromSite); } if (string.IsNullOrEmpty(toSite)) { toSite = "Unspecified Site"; } ITransferInventoryAdd transferInventoryAddRq = requestMsgSet.AppendTransferInventoryAddRq(); transferInventoryAddRq.FromInventorySiteRef.FullName.SetValue(fromSite); transferInventoryAddRq.ToInventorySiteRef.FullName.SetValue(toSite); transferInventoryAddRq.TxnDate.SetValue(DateTime.Parse(DateTime.Now.ToString()));//orderDoc.DateOfIssue.ToString())); //Certain date form the incoming document foreach (var lineItem in orderDoc.LineItems) { ITransferInventoryLineAdd transferInventoryLineAddList = transferInventoryAddRq.TransferInventoryLineAddList.Append(); IItemInventoryRet product = GetProductByCode(lineItem.ProductCode); var prod = product.FullName.GetValue(); if (product != null) transferInventoryLineAddList.ItemRef.FullName.SetValue(product.FullName.GetValue()); transferInventoryLineAddList.QuantityToTransfer.SetValue(Convert.ToDouble(Math.Round(lineItem.Quantity, 2)));//Set the value of the qantity being transfered } responseMsgSet = sessionManager.DoRequests(requestMsgSet); IResponse response = responseMsgSet.ResponseList.GetAt(0); int statusCode = response.StatusCode; ITransferInventoryRet transferInventoryRet = response.Detail as ITransferInventoryRet; if (statusCode == 0) { Console.WriteLine("Success"); } else { MessageBox.Show(response.StatusMessage); } //sessionManager.ClearErrorRecovery(); sessionManager.EndSession(); boolSessionBegun = false; sessionManager.CloseConnection(); Log(QBCRUDEAction.Add, "TransferInventoryReturns", (transferInventoryRet == null ? "" : transferInventoryRet.RefNumber.GetValue()), response); return transferInventoryRet; } catch (Exception ex) { if (boolSessionBegun) { sessionManager.EndSession(); sessionManager.CloseConnection(); } string error = (ex.Message.ToString() + "\nStack Trace: \n" + ex.StackTrace + "\nExiting the application"); Log(error); MessageBox.Show(error); } return null; }
private List<QuickBooksReturnInventoryDocumentDto> MapReturnsToQuickBooks(Guid id) { var docs = new List<QuickBooksReturnInventoryDocumentDto>(); try { if(id!=Guid.Empty) { var returnnote = ObjectFactory.GetInstance<IReturnsNoteRepository>().GetById(id); var returnInventory = new QuickBooksReturnInventoryDocumentDto() { DocumentType = returnnote.DocumentType, GenericReference = returnnote.DocumentReference, SalesmanName = returnnote.DocumentIssuerUser.Username, SalesmanCode = returnnote.DocumentIssuerUser.Code, DateOfIssue = returnnote.DocumentDateIssued, }; foreach(var lineItem in returnnote._lineItems) { var returnInventoryLineItem=new QuickBooksReturnInventoryDocLineItemDto(){ LineItemId = lineItem.Id, ProductName = lineItem.Product.Description, ProductCode = lineItem.Product.ProductCode, Quantity = lineItem.Qty }; returnInventory.LineItems.Add(returnInventoryLineItem); } docs.Add(returnInventory); } return docs; } catch (Exception ex) { throw; } }
public static ITransferInventoryRet ReturnInventory(QuickBooksReturnInventoryDocumentDto documentDto) { return QBFC_Core.ReturnInventory(documentDto); }