public static Line ToIppPurchaseOrderLineItem(this QBInternalPurchaseOrdeLineItem qbInternalPurchaseOrdeLineItem) { var ippPurchaseOrderLineItem = new Line { Amount = qbInternalPurchaseOrdeLineItem.Amount, AmountSpecified = true, Id = qbInternalPurchaseOrdeLineItem.Id, LineNum = qbInternalPurchaseOrdeLineItem.LineNum, }; var basedExpenseLineDetail = new ItemBasedExpenseLineDetail { Qty = qbInternalPurchaseOrdeLineItem.Qty, QtySpecified = true, }; basedExpenseLineDetail.ItemRef = new ReferenceType { name = qbInternalPurchaseOrdeLineItem.ItemName, Value = qbInternalPurchaseOrdeLineItem.ItemValue, }; ippPurchaseOrderLineItem.AnyIntuitObject = basedExpenseLineDetail; //ippPurchaseOrderLineItem.DetailType = LineDetailTypeEnum.PurchaseOrderItemLineDetail; ippPurchaseOrderLineItem.DetailType = LineDetailTypeEnum.ItemBasedExpenseLineDetail; ippPurchaseOrderLineItem.DetailTypeSpecified = true; return(ippPurchaseOrderLineItem); }
public static Line ToIppPurchaseOrderLineItem(this PurchaseOrdeLineItem qbInternalPurchaseOrdeLineItem) { var basedExpenseLineDetail = new ItemBasedExpenseLineDetail { Qty = qbInternalPurchaseOrdeLineItem.Qty, QtySpecified = true, ItemRef = new ReferenceType { name = qbInternalPurchaseOrdeLineItem.ItemName, Value = qbInternalPurchaseOrdeLineItem.ItemValue, }, ItemElementName = ItemChoiceType.UnitPrice, AnyIntuitObject = qbInternalPurchaseOrdeLineItem.UnitPrice, }; var ippPurchaseOrderLineItem = new Line { //Amount = qbInternalPurchaseOrdeLineItem.Amount, Amount = qbInternalPurchaseOrdeLineItem.Qty * qbInternalPurchaseOrdeLineItem.UnitPrice, AmountSpecified = true, //Id = qbInternalPurchaseOrdeLineItem.Id, //LineNum = qbInternalPurchaseOrdeLineItem.LineNum, }; ippPurchaseOrderLineItem.AnyIntuitObject = basedExpenseLineDetail; ippPurchaseOrderLineItem.DetailType = LineDetailTypeEnum.ItemBasedExpenseLineDetail; ippPurchaseOrderLineItem.DetailTypeSpecified = true; return(ippPurchaseOrderLineItem); }
/// <summary> /// Create Billable expense /// </summary> /// <param name="context"></param> /// <param name="customer"></param> /// <returns>purchase</returns> public static Purchase BillableExpenseCreate(ServiceContext context, Customer customer) { Account account = QBOHelper.QBO.QueryOrAddAccount(context, "select * from account where AccountSubType='Checking'", AccountTypeEnum.Bank, AccountClassificationEnum.Asset, AccountSubTypeEnum.Checking); Account expenseAccount = QBOHelper.QBO.QueryOrAddAccount(context, "select * from account where AccountType='Expense'", AccountTypeEnum.Expense, AccountClassificationEnum.Expense, AccountSubTypeEnum.AdvertisingPromotional); Vendor vendor = QBOHelper.QBO.QueryOrAddVendor(context); Item item = QBOHelper.QBO.ItemCreate(context); Purchase purchase = new Purchase { PaymentType = PaymentTypeEnum.Cash, PaymentTypeSpecified = true, AccountRef = new ReferenceType { name = account.Name, Value = account.Id }, EntityRef = new ReferenceType { type = EntityTypeEnum.Vendor.ToString(), name = vendor.DisplayName, Value = vendor.Id } }; Line itemLine = new Line { Description = "Item based expense line detail.", DetailType = LineDetailTypeEnum.ItemBasedExpenseLineDetail, DetailTypeSpecified = true }; MarkupInfo markupInfo = new MarkupInfo { PercentBased = true, PercentBasedSpecified = true, PercentSpecified = true, Percent = new Decimal(50) }; ItemBasedExpenseLineDetail itemLineDetail = new ItemBasedExpenseLineDetail { CustomerRef = new ReferenceType { name = customer.DisplayName, Value = customer.Id }, BillableStatus = BillableStatusEnum.Billable, BillableStatusSpecified = true, ItemRef = new ReferenceType { name = item.Name, Value = item.Id }, MarkupInfo = markupInfo, }; itemLine.AnyIntuitObject = itemLineDetail; if (item.UnitPrice > 0) { itemLine.Amount = item.UnitPrice; } else { itemLine.Amount = new Decimal(100); } itemLine.AmountSpecified = true; Line accountLine = new Line { Description = "Account based expense line detail.", DetailType = LineDetailTypeEnum.AccountBasedExpenseLineDetail, DetailTypeSpecified = true }; AccountBasedExpenseLineDetail accountLineDetail = new AccountBasedExpenseLineDetail { CustomerRef = new ReferenceType { name = customer.DisplayName, Value = customer.Id }, AccountRef = new ReferenceType { name = expenseAccount.Name, Value = expenseAccount.Id }, BillableStatus = BillableStatusEnum.Billable, BillableStatusSpecified = true, MarkupInfo = markupInfo, }; accountLine.AnyIntuitObject = accountLineDetail; accountLine.Amount = new Decimal(100); accountLine.AmountSpecified = true; Line[] lines = { itemLine, accountLine }; purchase.Line = lines; // Add created purchase in QBO Purchase apiResponse = QBOHelper.Helper.AddToQBO(context, purchase); return(apiResponse); }