public static CustomFieldRef Create(string typeName) { CustomFieldRef fieldRef; switch (typeName) { case "StringCustomFieldRef": fieldRef = new StringCustomFieldRef(); break; case "DoubleCustomFieldRef": fieldRef = new DoubleCustomFieldRef(); break; case "MultiSelectCustomFieldRef": fieldRef = new MultiSelectCustomFieldRef(); break; case "SelectCustomFieldRef": fieldRef = new SelectCustomFieldRef(); break; case "DateCustomFieldRef": fieldRef = new DateCustomFieldRef(); break; case "BooleanCustomFieldRef": fieldRef = new BooleanCustomFieldRef(); break; case "LongCustomFieldRef": fieldRef = new LongCustomFieldRef(); break; default: throw new ArgumentException(typeName + " is not a valid Custom Field type."); } return(fieldRef); }
public override Int64 Set(string parametersArr) { try { //Set Values of Netsuite Customer ID // LogDAO.Integration_Exception(LogIntegrationType.Info, TaskRunType.POST, "InvoiceTask", "Start"); //new GenericeDAO<Foodics.NetSuite.Shared.Model.Invoice.Integrate>().GetAndUpdateCustomerIDandCreditMemo(); //get recentrly added invoices after creating the return List <Foodics.NetSuite.Shared.Model.Invoice> invoiceLst = new GenericeDAO <Foodics.NetSuite.Shared.Model.Invoice>().GetWhere(" Netsuite_Id IS NULL or Netsuite_Id =0"); Setting objSetting = new GenericeDAO <Setting>().GetAll().FirstOrDefault(); // = new NetsuiteDAO().SelectInvoicesForIntegration(); // LogDAO.Integration_Exception(LogIntegrationType.Info, TaskRunType.POST, "InvoiceTask", "Count: " + invoiceLst.Count.ToString()); bool result = true; if (invoiceLst.Count > 0) { #region variables Invoice[] InvoiceArr = new Invoice[invoiceLst.Count]; List <Foodics.NetSuite.Shared.Model.InvoiceItem> itemLst; List <Foodics.NetSuite.Shared.Model.GiftCertificate.Integrate> giftCertificateLst; //List<Foodics.NetSuite.Shared.Model.ItemLotSerial.Sales> lotSerialLst; Foodics.NetSuite.Shared.Model.Invoice invoice_info; Foodics.NetSuite.Shared.Model.InvoiceItem itemDetails; GiftCertRedemption[] giftRedeem; InvoiceItem[] invoiceItems; DateTime invoice_date; Invoice invoiceObject; InvoiceItem invoiceItemObject; InvoiceItemList items; InventoryAssignmentList InventoryAssignmentlst; InventoryAssignment[] assignList; InventoryAssignment assign; InventoryDetail invDetails; GiftCertRedemptionList redemptionLst; DateCustomFieldRef trans_time; ListOrRecordRef emirate_region, custSelectValue, custSelectCashier; SelectCustomFieldRef emirate_ref = null, terminal, cashier; RecordRef authCodeRef, taxCode, item, unit, price, itmSerial, discItem, subsid, currency, entity, location, classification, department; DoubleCustomFieldRef line_total, line_discount_amount, balance, paid, lineDiscount; StringCustomFieldRef trans_no, pos_id, orderDiscount; CustomFieldRef[] customFieldRefArr, customFieldRefArray; int item_custom_cols = 2; #endregion for (int i = 0; i < invoiceLst.Count; i++) { try { invoice_info = invoiceLst[i]; //Netsuite invoice type invoiceObject = new Invoice(); //get invoice items itemLst = new GenericeDAO <Foodics.NetSuite.Shared.Model.InvoiceItem>().GetWhere("Invoice_Id =" + invoice_info.Id);//new NetsuiteDAO().SelectInvoicItems(invoice_info.Id); //get invoice gift certificates #region gift certificate redemption //try //{ // giftCertificateLst = new NetsuiteDAO().SelectEntityGiftCertificates(invoice_info.Id, 1); // if (giftCertificateLst.Count > 0) // { // redemptionLst = new GiftCertRedemptionList(); // giftRedeem = new GiftCertRedemption[giftCertificateLst.Count]; // for (int r = 0; r < giftCertificateLst.Count; r++) // { // GiftCertRedemption gift = new GiftCertRedemption(); // authCodeRef = new RecordRef(); // authCodeRef.internalId = giftCertificateLst[r].Netsuite_Id.ToString(); // authCodeRef.type = RecordType.giftCertificate; // gift.authCode = authCodeRef; // gift.authCodeAppliedSpecified = true; // gift.authCodeApplied = Convert.ToDouble(giftCertificateLst[r].Amount); // giftRedeem[r] = gift; // } // redemptionLst.giftCertRedemption = giftRedeem; // invoiceObject.giftCertRedemptionList = redemptionLst; // } //} //catch (Exception ex) //{ // //LogDAO.Integration_Exception(LogIntegrationType.Error, TaskRunType.POST, "InvoiceTask", "Error adding GiftCertificates: " + ex.Message + " Invoice id = " + invoiceLst[i].Id.ToString()); //} #endregion #region invoice items //Define Invoice Items List invoiceItems = new InvoiceItem[itemLst.Count]; try { item_custom_cols = 2; for (int k = 0; k < itemLst.Count; k++) { itemDetails = itemLst[k]; invoiceItemObject = new InvoiceItem(); // TAX //invoiceItemObject.taxRate1Specified = true; //invoiceItemObject.taxRate1 = itemDetails.Tax_Rate; //invoiceItemObject.taxAmount = itemDetails.Tax_Amt; // tax code taxCode = new RecordRef(); taxCode.internalId = objSetting.TaxCode_Netsuite_Id.ToString(); //"15";//itemDetails.Tax_Code.ToString(); taxCode.type = RecordType.taxAcct; invoiceItemObject.taxCode = taxCode; // item item = new RecordRef(); item.internalId = itemDetails.Item_Id.ToString(); item.type = (RecordType)Enum.Parse(typeof(RecordType), itemDetails.Item_Type, true); //item.type = (RecordType)Enum.Parse(typeof(RecordType), "InventoryItem", true); invoiceItemObject.item = item; if (Utility.ConvertToInt(itemDetails.Units) > 0) { unit = new RecordRef(); unit.internalId = itemDetails.Units.ToString(); unit.type = RecordType.unitsType; invoiceItemObject.units = unit; } // price level #region price level price = new RecordRef(); price.type = RecordType.priceLevel; if (itemDetails.Amount > 0) { //if (itemDetails.Customer_Price_Level > 0) //{ // // customer price level // price.internalId = itemDetails.Customer_Price_Level.ToString(); // invoiceItemObject.price = price; //} //else if (itemDetails.Price_Level_Id > 0) //{ // // default price level // price.internalId = itemDetails.Price_Level_Id.ToString(); // invoiceItemObject.price = price; //} //else //{ // amount invoiceItemObject.amountSpecified = true; invoiceItemObject.amount = itemDetails.Amount; //} } #endregion // invoiceItemObject.costEstimateType = (ItemCostEstimateType)itemDetails.Cost_Estimate_Type; //if (itemDetails.Item_Type == "GiftCertificateItem") //{ // #region sell gift certificate // try // { // invoiceItemObject.giftCertNumber = itemDetails.Gift_Code; // invoiceItemObject.giftCertFrom = itemDetails.Sender; // invoiceItemObject.giftCertMessage = itemDetails.Gift_Message; // invoiceItemObject.giftCertRecipientName = itemDetails.Recipient_Name; // invoiceItemObject.giftCertRecipientEmail = itemDetails.Recipient_Email; // } // catch { } // #endregion //} //else //{ // quantity invoiceItemObject.quantitySpecified = true; invoiceItemObject.quantity = itemDetails.Quantity; #region serials/Lot //if (Utility.ItemTypeSerialized.Contains(itemDetails.Item_Type)) //{ // lotSerialLst = new NetsuiteDAO().SelectInvoiceLotSerials(itemDetails.Id); // InventoryAssignmentlst = new InventoryAssignmentList(); // assignList = new InventoryAssignment[lotSerialLst.Count]; // for (int z = 0; z < lotSerialLst.Count; z++) // { // assign = new InventoryAssignment(); // itmSerial = new RecordRef(); // itmSerial.internalId = lotSerialLst[z].Netsuite_Id.ToString(); // itmSerial.type = RecordType.lotNumberedInventoryItem; // itmSerial.typeSpecified = true; // if (Utility.ItemTypeLot.Contains(itemDetails.Item_Type)) // { // assign.quantitySpecified = true; // assign.quantity = lotSerialLst[z].Quantity; // } // assign.issueInventoryNumber = itmSerial; // assignList[z] = assign; // } // InventoryAssignmentlst.inventoryAssignment = assignList; // invDetails = new InventoryDetail(); // invDetails.inventoryAssignmentList = InventoryAssignmentlst; // invoiceItemObject.inventoryDetail = invDetails; //} #endregion // } #region custom fields try { #region line-item discount //line_total = new DoubleCustomFieldRef(); //line_total.scriptId = "custcol_da_pos_line_item_total"; //line_total.value = Math.Round(itemDetails.Total_Line_Amount, 3); //line_discount_amount = new DoubleCustomFieldRef(); //line_discount_amount.scriptId = "custcol_da_pos_line_item_discount"; //line_discount_amount.value = Math.Round(itemDetails.Line_Discount_Amount, 3); // line-item amount invoiceItemObject.amount = (itemDetails.Quantity * itemDetails.Amount); #endregion #region Transaction Region (Emirate) //item_custom_cols = 2; //if (invoice_info.Transaction_Region > 0) //{ // item_custom_cols = 3; // emirate_region = new ListOrRecordRef(); // emirate_region.internalId = invoice_info.Transaction_Region.ToString(); // emirate_ref = new SelectCustomFieldRef(); // emirate_ref.scriptId = "custcol_emirate"; // emirate_ref.value = emirate_region; //} #endregion //customFieldRefArr = new CustomFieldRef[item_custom_cols]; //customFieldRefArr[0] = line_total; //customFieldRefArr[1] = line_discount_amount; //if (item_custom_cols == 3) // customFieldRefArr[2] = emirate_ref; //invoiceItemObject.customFieldList = customFieldRefArr; } catch (Exception ex) { // LogDAO.Integration_Exception(LogIntegrationType.Error, TaskRunType.POST, "InvoiceTask", "Error adding customField: " + ex.Message + " Invoice id = " + invoiceLst[i].Id.ToString()); } #endregion invoiceItems[k] = invoiceItemObject; } } catch (Exception ex) { // LogDAO.Integration_Exception(LogIntegrationType.Error, TaskRunType.POST, "InvoiceTask", "Error adding invoice: " + ex.Message + " Invoice id = " + invoiceLst[i].Id.ToString()); } //Assign invoive items items = new InvoiceItemList(); items.item = invoiceItems; invoiceObject.itemList = items; //GiftCertRedemption #endregion #region Invoice Values #region Standard Attributes invoice_date = TimeZoneInfo.ConvertTimeToUtc(invoice_info.Date, TimeZoneInfo.Local); invoiceObject.tranDateSpecified = true; invoiceObject.dueDateSpecified = true; invoiceObject.tranDate = invoice_date; invoiceObject.dueDate = invoice_date; invoiceObject.exchangeRate = invoice_info.Exchange_Rate; invoiceObject.memo = invoice_info.Notes; if (invoice_info.Subsidiary_Id > 0) { subsid = new RecordRef(); subsid.internalId = objSetting.Subsidiary_Netsuite_Id.ToString(); subsid.type = RecordType.subsidiary; invoiceObject.subsidiary = subsid; } //RecordRef customForm = new RecordRef(); //customForm.internalId = "92"; //invoiceObject.customForm = customForm; currency = new RecordRef(); currency.internalId = objSetting.Currency_Netsuite_Id.ToString(); currency.type = RecordType.currency; invoiceObject.currency = currency; entity = new RecordRef(); entity.internalId = invoice_info.Customer_Netsuite_Id > 0? invoice_info.Customer_Netsuite_Id.ToString(): objSetting.Customer_Netsuite_Id.ToString(); entity.type = RecordType.customer; invoiceObject.entity = entity; location = new RecordRef(); location.internalId = invoice_info.Location_Id.ToString(); //objSetting.Location_Netsuite_Id.ToString(); location.type = RecordType.location; invoiceObject.location = location; // department //if (invoice_info.Department_Id > 0) //{ // department = new RecordRef(); // department.internalId = invoice_info.Department_Id.ToString(); // department.type = RecordType.department; // invoiceObject.department = department; //} //// class //if (invoice_info.Class_Id > 0) //{ // classification = new RecordRef(); // classification.internalId = invoice_info.Class_Id.ToString(); // classification.type = RecordType.classification; // invoiceObject.@class = classification; //} // sales rep if (invoice_info.Sales_Rep_Id > 0) { RecordRef sales_rep = new RecordRef(); sales_rep.internalId = invoice_info.Sales_Rep_Id.ToString(); sales_rep.type = RecordType.employee; invoiceObject.salesRep = sales_rep; } #endregion #region Invoice Custom Attributes trans_no = new StringCustomFieldRef(); trans_no.scriptId = "custbody_da_pos_trans_no"; trans_no.value = invoice_info.BarCode.ToString(); pos_id = new StringCustomFieldRef(); pos_id.scriptId = "custbody_da_pos_id"; pos_id.value = invoice_info.Id.ToString(); custSelectValue = new ListOrRecordRef(); terminal = new SelectCustomFieldRef(); custSelectValue.internalId = invoice_info.Terminal_Id.ToString(); terminal.scriptId = "custbody_da_terminal"; terminal.value = custSelectValue; custSelectCashier = new ListOrRecordRef(); cashier = new SelectCustomFieldRef(); custSelectCashier.internalId = invoice_info.Cashier.ToString(); cashier.scriptId = "custbody_da_cashier"; cashier.value = custSelectCashier; balance = new DoubleCustomFieldRef(); balance.scriptId = "custbody_da_balance"; balance.value = Math.Round(invoice_info.Balance, 3); paid = new DoubleCustomFieldRef(); paid.scriptId = "custbody_da_paid"; paid.value = Math.Round(invoice_info.Paid, 3); trans_time = new DateCustomFieldRef(); trans_time.scriptId = "custbody_da_pos_trans_time"; trans_time.value = invoice_date; #region Discount invoiceObject.discountRate = (Math.Round(invoice_info.Total_Discount, 3) * -1).ToString(); lineDiscount = new DoubleCustomFieldRef(); lineDiscount.scriptId = "custbody_da_pos_line_item_discount"; lineDiscount.value = Math.Round(invoice_info.Line_Discount_Amount, 3) * -1; orderDiscount = new StringCustomFieldRef(); orderDiscount.scriptId = "custbody_da_pos_order_discount"; orderDiscount.value = (Math.Round(invoice_info.Invoice_Discount_Rate, 3) * -1).ToString(); if (invoice_info.Invoice_Discount_Type == 1) { orderDiscount.value = (Math.Round(invoice_info.Invoice_Discount_Rate, 3) * -1).ToString() + "%"; } if (invoice_info.Accounting_Discount_Item != 0) { discItem = new RecordRef(); discItem.internalId = invoice_info.Accounting_Discount_Item.ToString(); discItem.type = RecordType.discountItem; invoiceObject.discountItem = discItem; } #endregion int length = 7; if (invoice_info.Terminal_Id > 0) { length = 8; } customFieldRefArray = new CustomFieldRef[length]; customFieldRefArray[0] = cashier; customFieldRefArray[1] = balance; customFieldRefArray[2] = paid; customFieldRefArray[3] = trans_time; customFieldRefArray[4] = trans_no; customFieldRefArray[5] = lineDiscount; customFieldRefArray[6] = orderDiscount; if (invoice_info.Terminal_Id > 0) { customFieldRefArray[7] = terminal; } invoiceObject.customFieldList = customFieldRefArray; #endregion InvoiceArr[i] = invoiceObject; #endregion } catch (Exception ex) { invoiceLst.RemoveAt(i); // LogDAO.Integration_Exception(LogIntegrationType.Error, TaskRunType.POST, "InvoiceTask", "Error adding invoice: " + ex.Message + " Invoice id = " + invoiceLst[i].Id.ToString()); } } // Send invoice list to netsuite WriteResponseList wr = Service(true).addList(InvoiceArr); result = wr.status.isSuccess; // LogDAO.Integration_Exception(LogIntegrationType.Info, TaskRunType.POST, "InvoiceTask", "Status: " + result); if (result) { //Update database with returned Netsuite ids UpdatedInvoice(invoiceLst, wr); } } // post customerPayment to netsuite // bool postPayments = PostCustomerPayment(); } catch (Exception ex) { // LogDAO.Integration_Exception(LogIntegrationType.Error, TaskRunType.POST, "InvoiceTask Error", "Error " + ex.Message); } // release the the object //new ScheduleTaskDAO().Processing(taskType, TaskRunType.POST, false); return(0); }
public static string AddSalesOrderMassive(RecordRef objCustomer, string strCategory, string strPoNumber, string strOrderNumber, DateTime datOrderDate, DateTime datInsertDate, DateTime datEventDate, bool booConfirmed, bool booCases, string strBride, string strGroom, ArrayList arrItems, string strUserId) { string strId = ""; SalesOrder objSalesOrder = new SalesOrder(); objSalesOrder.entity = objCustomer; objSalesOrder.tranDate = new System.DateTime(); objSalesOrder.orderStatus = SalesOrderOrderStatus._pendingFulfillment; //objSalesOrder.salesRep = new RecordRef(); //objSalesOrder.salesRep.internalId = strUserId; //objSalesOrder.salesRep.type = RecordType.employee; //objSalesOrder.salesRep.typeSpecified = true; SelectCustomFieldRef objReseller = new SelectCustomFieldRef(); objReseller.internalId = "custbodytbfcustomerid"; objReseller.value = new ListOrRecordRef(); objReseller.value.internalId = "1"; BooleanCustomFieldRef objCategory = new BooleanCustomFieldRef(); objCategory.internalId = "custbodycst_ordercategory"; objCategory.value = bool.Parse(strCategory); BooleanCustomFieldRef objConfirmed = new BooleanCustomFieldRef(); objConfirmed.internalId = "custbodycst_orderconfirmed"; objConfirmed.value = booConfirmed; BooleanCustomFieldRef objCases = new BooleanCustomFieldRef(); objCases.internalId = "custbodycst_cases"; objCases.value = booCases; StringCustomFieldRef objOrderNumber = new StringCustomFieldRef(); objOrderNumber.internalId = "custbodycst_ordernumber"; objOrderNumber.value = strOrderNumber; StringCustomFieldRef objPONumber = new StringCustomFieldRef(); objPONumber.internalId = "custbodycostcoponumber"; objPONumber.value = strPoNumber; StringCustomFieldRef objGroom = new StringCustomFieldRef(); objGroom.internalId = "custbody_groom"; objGroom.value = strGroom; StringCustomFieldRef objBride = new StringCustomFieldRef(); objBride.internalId = "custbody_bride"; objBride.value = strBride; DateCustomFieldRef objOrderDate = new DateCustomFieldRef(); objOrderDate.internalId = "custbodycst_orderdate"; objOrderDate.value = datOrderDate; DateCustomFieldRef objInsertDate = new DateCustomFieldRef(); objInsertDate.internalId = "custbodycst_insertdate"; objInsertDate.value = datInsertDate; DateCustomFieldRef objEventDate = new DateCustomFieldRef(); objEventDate.internalId = "custbody_wedding_date"; objEventDate.value = datEventDate; object[] arrFirstItem = (object[])arrItems[0]; DateCustomFieldRef objDeliveryDate = new DateCustomFieldRef(); objDeliveryDate.internalId = "custbody_delivery_date"; objDeliveryDate.value = (DateTime)arrFirstItem[2]; DateCustomFieldRef objShippingDate = new DateCustomFieldRef(); objShippingDate.internalId = "custbody_shipping_date"; objShippingDate.value = (DateTime)arrFirstItem[3]; if (datEventDate != DateTime.MaxValue) { objSalesOrder.customFieldList = new CustomFieldRef[] { objReseller, objConfirmed, objCases, objCategory, objGroom, objBride, objOrderNumber, objPONumber, objOrderDate, objInsertDate, objEventDate, objDeliveryDate, objShippingDate }; } else { objSalesOrder.customFieldList = new CustomFieldRef[] { objReseller, objConfirmed, objCases, objCategory, objGroom, objBride, objOrderNumber, objPONumber, objOrderDate, objInsertDate, objDeliveryDate, objShippingDate }; } objSalesOrder.otherRefNum = strPoNumber; SalesOrderItem[] salesOrderItemArray = new SalesOrderItem[arrItems.Count]; for (int i = 0; i < salesOrderItemArray.Length; i++) { object[] arrColumns = (object[])arrItems[i]; RecordRef item = new RecordRef(); item.type = RecordType.nonInventoryResaleItem; item.typeSpecified = true; item.internalId = arrColumns[0].ToString(); salesOrderItemArray[i] = new SalesOrderItem(); salesOrderItemArray[i].item = item; StringCustomFieldRef objCustomInfo = new StringCustomFieldRef(); objCustomInfo.internalId = "custcol_additional_info"; objCustomInfo.value = arrColumns[8].ToString(); StringCustomFieldRef objOriginal = new StringCustomFieldRef(); objOriginal.internalId = "custcolcst_originalid"; objOriginal.value = arrColumns[9].ToString(); LongCustomFieldRef objOrderLine = new LongCustomFieldRef(); objOrderLine.internalId = "custcolcst_orderline"; objOrderLine.value = (int)arrColumns[6]; SelectCustomFieldRef objShippingType = new SelectCustomFieldRef(); objShippingType.internalId = "custcolcst_shippingtype"; objShippingType.value = new ListOrRecordRef(); switch (arrColumns[7].ToString()) { case "IPD": objShippingType.value.internalId = "1"; break; case "IP": objShippingType.value.internalId = "2"; break; case "Domestic": objShippingType.value.internalId = "3"; break; case "Fedex Next Day": objShippingType.value.internalId = "4"; break; } if ((DateTime)arrColumns[4] == DateTime.MaxValue) { DateCustomFieldRef objDelivDate = new DateCustomFieldRef(); objDelivDate.internalId = "custcolcst_deliverydate"; objDelivDate.value = (DateTime)arrColumns[2]; DateCustomFieldRef objShipDate = new DateCustomFieldRef(); objShipDate.internalId = "custcolcst_shippingdate"; objShipDate.value = (DateTime)arrColumns[3]; salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objDelivDate, objShipDate, objOrderLine, objShippingType, objCustomInfo, objOriginal }; } else { DateCustomFieldRef objDelivDate = new DateCustomFieldRef(); objDelivDate.internalId = "custcolcst_deliverydate"; objDelivDate.value = (DateTime)arrColumns[2]; DateCustomFieldRef objShipDate = new DateCustomFieldRef(); objShipDate.internalId = "custcolcst_shippingdate"; objShipDate.value = (DateTime)arrColumns[3]; DateCustomFieldRef objPrefDate = new DateCustomFieldRef(); objPrefDate.internalId = "custcolcst_preferredarrivaldate"; objPrefDate.value = (DateTime)arrColumns[4]; salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objDelivDate, objShipDate, objPrefDate, objOrderLine, objShippingType, objCustomInfo, objOriginal }; } System.Double quantity = System.Double.Parse(arrColumns[1].ToString()); salesOrderItemArray[i].quantity = quantity; salesOrderItemArray[i].quantitySpecified = true; } SalesOrderItemList salesOrderItemList = new SalesOrderItemList(); salesOrderItemList.item = salesOrderItemArray; objSalesOrder.itemList = salesOrderItemList; WriteResponse writeRes = _service.add(objSalesOrder); if (writeRes.status.isSuccess) { strId = ((RecordRef)writeRes.baseRef).internalId; //_out.writeLn("\nSales order created successfully\nSales Order Internal ID=" + ((RecordRef)writeRes.baseRef).internalId); } else { throw new Exception("Orden no ingresada: " + getStatusDetails(writeRes.status)); //_out.error(getStatusDetails(writeRes.status)); } return strId; }
public static string AddSalesOrder1800(int numReseller, Customer objCustomer, string strVendorCode, string strPoNumber, string strOrderNumber, DateTime datOrderDate, DateTime datInsertDate, DateTime datEventDate, ArrayList arrItems, string strUserId, out string strError) { strError = ""; string strId = ""; SalesOrder objSalesOrder = new SalesOrder(); objSalesOrder.entity = new RecordRef(); objSalesOrder.entity.type = RecordType.customer; objSalesOrder.entity.typeSpecified = true; objSalesOrder.entity.externalId = objCustomer.externalId; objSalesOrder.tranDate = new System.DateTime(); objSalesOrder.orderStatus = SalesOrderOrderStatus._pendingFulfillment; objSalesOrder.externalId = "so1800_"+strOrderNumber; objSalesOrder.customForm = new RecordRef(); objSalesOrder.customForm.internalId = GlobalSettings.Default.nsOrderForm; objSalesOrder.customForm.type = RecordType.account; objSalesOrder.customForm.typeSpecified = true; //objSalesOrder.salesRep = new RecordRef(); //objSalesOrder.salesRep.internalId = strUserId; //objSalesOrder.salesRep.type = RecordType.employee; //objSalesOrder.salesRep.typeSpecified = true; SelectCustomFieldRef objReseller = new SelectCustomFieldRef(); objReseller.internalId = "custbodytbfcustomerid"; objReseller.value = new ListOrRecordRef(); objReseller.value.internalId = numReseller.ToString(); StringCustomFieldRef objVendorCode = new StringCustomFieldRef(); objVendorCode.internalId = "custbody_vfvendorcode"; objVendorCode.value = strVendorCode; StringCustomFieldRef objOrderNumber = new StringCustomFieldRef(); objOrderNumber.internalId = "custbodycst_ordernumber"; objOrderNumber.value = strOrderNumber; StringCustomFieldRef objPONumber = new StringCustomFieldRef(); objPONumber.internalId = "custbodycostcoponumber"; objPONumber.value = strPoNumber; DateCustomFieldRef objOrderDate = new DateCustomFieldRef(); objOrderDate.internalId = "custbodycst_orderdate"; objOrderDate.value = datOrderDate; DateCustomFieldRef objInsertDate = new DateCustomFieldRef(); objInsertDate.internalId = "custbodycst_insertdate"; objInsertDate.value = datInsertDate; //DateCustomFieldRef objEventDate = new DateCustomFieldRef(); //objEventDate.internalId = "custbody_wedding_date"; //objEventDate.value = datEventDate; object[] arrFirstItem = (object[])arrItems[0]; DateCustomFieldRef objDeliveryDate = new DateCustomFieldRef(); objDeliveryDate.internalId = "custbody_delivery_date"; objDeliveryDate.value = (DateTime)arrFirstItem[3]; DateCustomFieldRef objShippingDate = new DateCustomFieldRef(); objShippingDate.internalId = "custbody_shipping_date"; objShippingDate.value = (DateTime)arrFirstItem[2]; StringCustomFieldRef objMessage = new StringCustomFieldRef(); objMessage.internalId = "custbodycst_giftmessage"; objMessage.value = ""; if (objDeliveryDate.value != DateTime.MaxValue) { objSalesOrder.customFieldList = new CustomFieldRef[] { objReseller, objOrderNumber, objPONumber, objOrderDate, objInsertDate, objMessage, objVendorCode }; } else { objSalesOrder.customFieldList = new CustomFieldRef[] { objReseller, objOrderNumber, objPONumber, objOrderDate, objInsertDate, objMessage, objVendorCode }; } objSalesOrder.otherRefNum = strPoNumber; //arrItems.Add(new object[] { strProductId, numQty, strShipDate, strDeliDate, arrItems.IndexOf(strShipType) }); SalesOrderItem[] salesOrderItemArray = new SalesOrderItem[arrItems.Count]; for (int i = 0; i < salesOrderItemArray.Length; i++) { object[] arrColumns = (object[])arrItems[i]; RecordRef item = new RecordRef(); item.type = RecordType.nonInventoryResaleItem; item.typeSpecified = true; item.internalId = arrColumns[0].ToString(); salesOrderItemArray[i] = new SalesOrderItem(); salesOrderItemArray[i].item = item; SelectCustomFieldRef objShippingType = new SelectCustomFieldRef(); objShippingType.internalId = "custcolcst_shippingtype"; objShippingType.value = new ListOrRecordRef(); objShippingType.value.internalId = arrColumns[4].ToString(); if (objShippingType.value.internalId.Equals("-1")) { objShippingType.value.internalId = "7"; } SelectCustomFieldRef objShippingCourier = new SelectCustomFieldRef(); objShippingCourier.internalId = "custcolcst_courier"; objShippingCourier.value = new ListOrRecordRef(); objShippingCourier.value.internalId = "1"; if (objShippingType.value.internalId.Equals("8") || objShippingType.value.internalId.Equals("9")) { objShippingCourier.value.internalId = "2"; } if (objShippingType.value.internalId.Equals("5") || objShippingType.value.internalId.Equals("6") || objShippingType.value.internalId.Equals("7")) { objShippingCourier.value.internalId = "3"; } DateCustomFieldRef objShipDate = new DateCustomFieldRef(); objShipDate.internalId = "custcolcst_shippingdate"; objShipDate.value = (DateTime)arrColumns[2]; DateCustomFieldRef objDelivDate = new DateCustomFieldRef(); objDelivDate.internalId = "custcolcst_deliverydate"; objDelivDate.value = (DateTime)arrColumns[3]; StringCustomFieldRef objPo = new StringCustomFieldRef(); objPo.internalId = "custcolos_ponumber"; objPo.value = arrColumns[5].ToString(); StringCustomFieldRef objColMessage = new StringCustomFieldRef(); objColMessage.internalId = "custcolcst_message"; objColMessage.value = ""; if (arrColumns.Length == 7) { objColMessage.value = arrColumns[6].ToString(); objMessage.value = arrColumns[6].ToString(); } if (objDelivDate.value != DateTime.MaxValue) { salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objDelivDate, objShipDate, objShippingType, objPo, objShippingCourier, objColMessage }; } else { salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objShipDate, objShippingType, objPo, objShippingCourier, objColMessage }; } System.Double quantity = System.Double.Parse(arrColumns[1].ToString()); salesOrderItemArray[i].quantity = quantity; salesOrderItemArray[i].quantitySpecified = true; } SalesOrderItemList salesOrderItemList = new SalesOrderItemList(); salesOrderItemList.item = salesOrderItemArray; objSalesOrder.itemList = salesOrderItemList; //WriteResponse writeRes = _service.add(objSalesOrder); WriteResponse[] writeRes = _service.addList(new Record[] { objCustomer, objSalesOrder }); if (writeRes[0].status.isSuccess) { strId = ((RecordRef)writeRes[0].baseRef).internalId; //_out.writeLn("\nSales order created successfully\nSales Order Internal ID=" + ((RecordRef)writeRes.baseRef).internalId); } else { strError = getStatusDetails(writeRes[0].status); } if (writeRes[1].status.isSuccess) { strId = ((RecordRef)writeRes[1].baseRef).internalId; //_out.writeLn("\nSales order created successfully\nSales Order Internal ID=" + ((RecordRef)writeRes.baseRef).internalId); } else { strError = getStatusDetails(writeRes[1].status); } return strId; }
public static string UpdateSalesOrder(SalesOrder objOrder, ArrayList arrItems, out string strError) { strError = ""; string strId = ""; SalesOrder objSalesOrder = new SalesOrder(); objSalesOrder.internalId = objOrder.internalId; objSalesOrder.customForm = new RecordRef(); objSalesOrder.customForm.internalId = GlobalSettings.Default.nsOrderForm; objSalesOrder.customForm.type = RecordType.account; objSalesOrder.customForm.typeSpecified = true; SalesOrderItem[] salesOrderItemArray = new SalesOrderItem[arrItems.Count + objOrder.itemList.item.Length]; for (int i = 0; i < salesOrderItemArray.Length; i++) { if (i < objOrder.itemList.item.Length) { salesOrderItemArray[i] = new SalesOrderItem(); salesOrderItemArray[i].item = objOrder.itemList.item[i].item; salesOrderItemArray[i].line = objOrder.itemList.item[i].line; salesOrderItemArray[i].lineSpecified = true; SelectCustomFieldRef objShippingType = new SelectCustomFieldRef(); objShippingType.internalId = "custcolcst_shippingtype"; objShippingType.value = new ListOrRecordRef(); objShippingType.value.internalId = "7"; //salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objShippingType }; } else { object[] arrColumns = (object[])arrItems[i - objOrder.itemList.item.Length]; RecordRef item = new RecordRef(); item.type = RecordType.nonInventoryResaleItem; item.typeSpecified = true; item.internalId = arrColumns[0].ToString(); salesOrderItemArray[i] = new SalesOrderItem(); salesOrderItemArray[i].item = item; SelectCustomFieldRef objShippingType = new SelectCustomFieldRef(); objShippingType.internalId = "custcolcst_shippingtype"; objShippingType.value = new ListOrRecordRef(); objShippingType.value.internalId = arrColumns[4].ToString(); if (objShippingType.value.internalId.Equals("-1")) { objShippingType.value.internalId = "7"; } DateCustomFieldRef objShipDate = new DateCustomFieldRef(); objShipDate.internalId = "custcolcst_shippingdate"; objShipDate.value = (DateTime)arrColumns[2]; DateCustomFieldRef objDelivDate = new DateCustomFieldRef(); objDelivDate.internalId = "custcolcst_deliverydate"; objDelivDate.value = (DateTime)arrColumns[3]; StringCustomFieldRef objPo = new StringCustomFieldRef(); objPo.internalId = "custcolos_ponumber"; objPo.value = arrColumns[5].ToString(); if (objDelivDate.value != DateTime.MaxValue) { salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objDelivDate, objShipDate, objShippingType, objPo }; } else { salesOrderItemArray[i].customFieldList = new CustomFieldRef[] { objShipDate, objShippingType, objPo }; } System.Double quantity = System.Double.Parse(arrColumns[1].ToString()); salesOrderItemArray[i].quantity = quantity; salesOrderItemArray[i].quantitySpecified = true; } } SalesOrderItemList salesOrderItemList = new SalesOrderItemList(); salesOrderItemList.item = salesOrderItemArray; objSalesOrder.itemList = salesOrderItemList; WriteResponse writeRes = _service.update(objSalesOrder); if (writeRes.status.isSuccess) { strId = ((RecordRef)writeRes.baseRef).internalId; //_out.writeLn("\nSales order created successfully\nSales Order Internal ID=" + ((RecordRef)writeRes.baseRef).internalId); } else { strError = getStatusDetails(writeRes.status); } return strId; }