private void FillFromDefaultAddress(InvoiceItemWrapper invoiceItem, QIQOAddressType addressType) { if (addressType == QIQOAddressType.Billing) { if (DefaultBillingAddress != null) { invoiceItem.OrderItemBillToAddress.AddressKey = DefaultBillingAddress.AddressKey; invoiceItem.OrderItemBillToAddress.AddressType = QIQOAddressType.Billing; invoiceItem.OrderItemBillToAddress.AddressLine1 = DefaultBillingAddress.AddressLine1; invoiceItem.OrderItemBillToAddress.AddressLine2 = DefaultBillingAddress.AddressLine2; invoiceItem.OrderItemBillToAddress.AddressCity = DefaultBillingAddress.AddressCity; invoiceItem.OrderItemBillToAddress.AddressState = DefaultBillingAddress.AddressState; invoiceItem.OrderItemBillToAddress.AddressPostalCode = DefaultBillingAddress.AddressPostalCode; } } else { if (DefaultShippingAddress != null) { invoiceItem.OrderItemShipToAddress.AddressKey = DefaultShippingAddress.AddressKey; invoiceItem.OrderItemShipToAddress.AddressType = QIQOAddressType.Shipping; invoiceItem.OrderItemShipToAddress.AddressLine1 = DefaultShippingAddress.AddressLine1; invoiceItem.OrderItemShipToAddress.AddressLine2 = DefaultShippingAddress.AddressLine2; invoiceItem.OrderItemShipToAddress.AddressCity = DefaultShippingAddress.AddressCity; invoiceItem.OrderItemShipToAddress.AddressState = DefaultShippingAddress.AddressState; invoiceItem.OrderItemShipToAddress.AddressPostalCode = DefaultShippingAddress.AddressPostalCode; } } }
/// <summary> /// Edits an invoice item. /// </summary> /// <param name="value">The invoice item.</param> /// <param name="token">The token.</param> /// <returns> /// A task that represents the asynchronous operation. /// The task result contains the new invoice item. /// </returns> /// <exception cref="ArgumentException">Thrown when the parameter check fails.</exception> /// <exception cref="NotAuthorizedException">Thrown when not authorized to access this resource.</exception> /// <exception cref="NotFoundException">Thrown when the resource url could not be found.</exception> public async Task <InvoiceItem> EditItemAsync(InvoiceItem value, CancellationToken token = default) { if (value == null || value.InvoiceId <= 0) { throw new ArgumentException("invoice item or a value of the invoice item is null", nameof(value)); } if (value.Id <= 0) { throw new ArgumentException("invalid invoice item id", nameof(value)); } var wrappedModel = new InvoiceItemWrapper { InvoiceItem = value.ToApi() }; try { var jsonModel = await PutAsync($"/api/invoice-items/{value.Id}", wrappedModel, token).ConfigureAwait(false); return(jsonModel.ToDomain()); } catch (WebException wex) when(wex.Status == WebExceptionStatus.ProtocolError && (wex.Response as HttpWebResponse)?.StatusCode == HttpStatusCode.BadRequest) { throw new ArgumentException("wrong input parameter", nameof(value), wex); } }
private InvoiceItemWrapper ToInvoiceItemWrapper(InvoiceItem invoiceItem) { var result = new InvoiceItemWrapper(invoiceItem); if (invoiceItem.InvoiceTax1ID > 0) { result.InvoiceTax1 = ToInvoiceTaxWrapper(DaoFactory.GetInvoiceTaxDao().GetByID(invoiceItem.InvoiceTax1ID)); } if (invoiceItem.InvoiceTax2ID > 0) { result.InvoiceTax2 = ToInvoiceTaxWrapper(DaoFactory.GetInvoiceTaxDao().GetByID(invoiceItem.InvoiceTax2ID)); } return(result); }
internal static InvoiceItem ToDomain(this InvoiceItemWrapper value) { return(s_invoiceItemMapper.ApiToDomain(value)); }
private void PopulateProductInfo(object param) { var invoiceItem = Invoice.InvoiceItems[SelectedInvoiceItemIndex]; //InvoiceItem order_item = InvoiceItems[SelectedInvoiceItemIndex]; if (invoiceItem != null && invoiceItem.ProductKey > 0) { var sp = ProductList.Where(item => item.ProductKey == invoiceItem.ProductKey).FirstOrDefault(); //MessageToDisplay = order_item.ProductKey.ToString() + ": " + sp[0].ProductName; if (invoiceItem.ProductName == "" || invoiceItem.ProductName == null || invoiceItem.ProductName != sp.ProductName) { if (sp.ProductName != "") { var rp = sp.ProductAttributes.Where(item => item.AttributeType == QIQOAttributeType.Product_PRODBASE).FirstOrDefault(); var dq = sp.ProductAttributes.Where(item => item.AttributeType == QIQOAttributeType.Product_PRODDFQTY).FirstOrDefault(); //var.ProductKey = sp[0].ProductKey; // order_item.ProductKey = sp.ProductKey; //order_item.ProductCode = sp.ProductCode; invoiceItem.ProductName = sp.ProductName; invoiceItem.ProductDesc = sp.ProductDesc; invoiceItem.InvoiceItemQuantity = int.Parse(dq.AttributeValue); // Check for Fee Schedule here! decimal fsp = ApplyFeeSchedule(sp.ProductKey, decimal.Parse(rp.AttributeValue)); invoiceItem.ItemPricePer = (fsp != 0M) ? fsp : decimal.Parse(rp.AttributeValue); invoiceItem.InvoiceItemLineSum = invoiceItem.InvoiceItemQuantity * invoiceItem.ItemPricePer; //order_item.InvoiceItemProduct = new ProductWrapper(sp); invoiceItem.InvoiceItemProduct.ProductKey = sp.ProductKey; invoiceItem.InvoiceItemProduct.ProductCode = sp.ProductCode; invoiceItem.InvoiceItemProduct.ProductDesc = sp.ProductDesc; invoiceItem.InvoiceItemProduct.ProductName = sp.ProductName; invoiceItem.InvoiceItemProduct.ProductType = sp.ProductType; //order_item.InvoiceItemBillToAddress = DefaultBillingAddress; FillFromDefaultAddress(invoiceItem, QIQOAddressType.Billing); //order_item.InvoiceItemShipToAddress = DefaultShippingAddress; FillFromDefaultAddress(invoiceItem, QIQOAddressType.Shipping); invoiceItem.AccountRep.EntityPersonKey = _accountReps[0].EntityPersonKey; invoiceItem.SalesRep.EntityPersonKey = _salesReps[0].EntityPersonKey; invoiceItem.InvoiceItemSeq = SelectedInvoiceItemIndex + 1; } } } Invoice.InvoiceItemCount = Invoice.InvoiceItems.Sum(item => item.InvoiceItemQuantity); Invoice.InvoiceValueSum = Invoice.InvoiceItems.Sum(item => item.InvoiceItemLineSum); int seq = Invoice.InvoiceItems.Count; // Need to think about whether this is the best way to do this. What if they change an existing item? var new_order_line = Invoice.InvoiceItems.Where(item => item.ProductKey == 0).FirstOrDefault(); if (new_order_line == null) { var new_item = new InvoiceItemWrapper(InitNewInvoiceItem(seq + 1)); FillFromDefaultAddress(new_item, QIQOAddressType.Billing); FillFromDefaultAddress(new_item, QIQOAddressType.Shipping); Invoice.InvoiceItems.Add(new_item); } }
internal static InvoiceItem ToDomain(this InvoiceItemWrapper value) { return(value?.InvoiceItem.ToDomain()); }
public InvoiceItem ApiToDomain(InvoiceItemWrapper value) { return(ApiToDomain(value?.InvoiceItem)); }