Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
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;
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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;
        }