public static void SetValue(this StringCustomFieldRef field, object value)
 {
     if (field != null && value == null)
     {
         field.value = null;
     }
     else if (field != null)
     {
         field.value = value.ToString();
     }
 }
コード例 #2
0
        public void AddCustomer()
        {
            Customer customer = new Customer();
            List <CustomFieldRef> customFields = new List <CustomFieldRef>();

            StringCustomFieldRef customField = new StringCustomFieldRef();

            customField.scriptId = "teste";
            customField.value    = "teste";

            customFields.Add(customField);
        }
コード例 #3
0
        private NetSuiteConnector.com.netsuite.webservices.Address CreateShippinhAddress(MG2Connector.Address mShippingAddress)
        {
            StringCustomFieldRef receiving_phone = new StringCustomFieldRef()
            {
                scriptId   = "custrecord14",
                internalId = "1691",
                value      = (mShippingAddress.telephone == null) ? "" : mShippingAddress.telephone
            };
            StringCustomFieldRef receiving_name = new StringCustomFieldRef()
            {
                scriptId = "custrecord13",
                value    = mShippingAddress.firstname + " " + mShippingAddress.lastname
            };

            var shippingAddress = new NetSuiteConnector.com.netsuite.webservices.Address()
            {
                country         = Country._unitedStates,
                addressee       = mShippingAddress.firstname + " " + mShippingAddress.middlename + " " + mShippingAddress.lastname,
                city            = mShippingAddress.city,
                state           = mShippingAddress.region_code,
                zip             = mShippingAddress.postcode,
                customFieldList = new CustomFieldRef[] { receiving_phone, receiving_name },
            };

            if (mShippingAddress.street.Count > 0)
            {
                shippingAddress.addr1 = mShippingAddress.street[0];
            }
            if (mShippingAddress.street.Count > 1)
            {
                shippingAddress.addr2 = mShippingAddress.street[1];
            }
            if (mShippingAddress.street.Count > 2)
            {
                //shippingAddress.addr3 = mShippingAddress.street[2];
                shippingAddress.addr2 = mShippingAddress.street[1] + " " + mShippingAddress.street[2];
            }

            return(shippingAddress);
        }
コード例 #4
0
        private CustomFieldRef[] CreateCustomFieldList(M2Order magentoOrder)
        {
            StringCustomFieldRef customer_email = new StringCustomFieldRef()
            {
                scriptId = "custbody111",
                value    = magentoOrder.customer_email
            };

            StringCustomFieldRef receiving_phone = new StringCustomFieldRef()
            {
                scriptId = "custbody46",
                value    = (magentoOrder.extension_attributes.shipping_assignments[0].shipping.address.telephone == null) ? "" : magentoOrder.extension_attributes.shipping_assignments[0].shipping.address.telephone
            };

            StringCustomFieldRef totalWeight = new StringCustomFieldRef()
            {
                scriptId = "custbody63",
                value    = magentoOrder.weight.ToString()
            };

            CustomFieldRef[] customFieldList;

            if (magentoOrder.customer_group_id == 3)
            {
                StringCustomFieldRef amazon_id = new StringCustomFieldRef()
                {
                    scriptId = "custbody_celigo_amz_orderid",
                    value    = magentoOrder.increment_id
                };

                customFieldList = new CustomFieldRef[] { receiving_phone, amazon_id, customer_email, totalWeight };
            }
            else
            {
                customFieldList = new CustomFieldRef[] { receiving_phone, customer_email, totalWeight };
            }

            return(customFieldList);
        }
コード例 #5
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);
        }
コード例 #6
0
        /*
            Creates the new Lead/Customer record in NetSuite.  Must be called first because we'll need the resulting Customer ID
            to place in the new Contact record, and both ids to run the 'attach' operation.  These are NetSuite's rules, sadly.
        */
        public void createCustomer()
        {
            Customer customer = new Customer();

            // Populate information provided by the user
            customer.companyName = _companyName;
            customer.email = _email;
            customer.phone = _phone;

            // Set as Lead - New
            RecordRef status = new RecordRef();
            status.internalId = "6"; // LEAD - New
            customer.entityStatus = status;

            /*
                Custom Fields require creating a reference record based on the type of field, and then we
                add each reference object to an array that gets passed into the XML renderer that NetSuite
                provides for us.

                Industry, IP address and Source are custom fields we've created.  Industry is a drop down list, which
                means our reference object must contain a reference to which drop down entry the new lead selected.
                This seems a bit overboard but lists can be multi-selects as well.  IP Address and source are just simple
                text fields, so nothing fancy is required, they're just a simple name/value pair.
            */

            System.Collections.ArrayList customFields = new System.Collections.ArrayList();

            if (_industry != "") {
                SelectCustomFieldRef custIndustry = new SelectCustomFieldRef();
                custIndustry.internalId = "custentity_customerindustry";
                ListOrRecordRef custIndustryList = new ListOrRecordRef();
                custIndustryList.internalId = _industry;
                custIndustry.value = custIndustryList;
                customFields.Add(custIndustry);
            }

            if (_ip != "") {
                StringCustomFieldRef ip = new StringCustomFieldRef();
                ip.internalId = "custentity_fnaipaddress";
                ip.value = _ip;
                customFields.Add(ip);
            }

            if (_source != "") {
                StringCustomFieldRef source = new StringCustomFieldRef();
                source.internalId = "custentity_custfnasource";
                source.value = _source;
                customFields.Add(source);
            }

            CustomFieldRef[] customFieldRefs = new CustomFieldRef[customFields.Count];
            IEnumerator ienum = customFields.GetEnumerator();
            for (int i = 0; ienum.MoveNext(); i++) {
                customFieldRefs[i] = (CustomFieldRef)ienum.Current;
            }
            customer.customFieldList = customFieldRefs;

            /*
                Now with our customer record created, we're going to add it to our XML renderer and pass it on NetSuite.
                NetSuite will be returning a response in XML so we're going to grab that so we can get the id of the newly
                created record in NetSuite.
            */
            WriteResponse response = _service.add(customer);
            _customerStatus = response.status;
            if (this.getCustomerStatus() == "") {
                _customerID = ((RecordRef)response.baseRef).internalId;
                _entityName = ((RecordRef)response.baseRef).name;
            }
        }
        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);
        }
コード例 #8
0
        private InvoiceItem CreateInvoiceItem(Setting objSetting, Foodics.NetSuite.Shared.Model.InvoiceItem itemDetails)
        {
            RecordRef   taxCode, item, unit, price;
            InvoiceItem invoiceItemObject = new InvoiceItem();

            taxCode = new RecordRef();
            float taxRate = 1 + (objSetting.TaxRate / 100);

            if (objSetting.TaxAlwaysAppliedInItems)
            {
                taxCode.internalId     = objSetting.TaxCode_Netsuite_Id.ToString();
                invoiceItemObject.rate = Convert.ToString(itemDetails.Amount / taxRate);
            }
            else
            {
                //if (itemDetails.FoodicsTax > 0 && itemDetails.Item_Type != nameof(Item_Type.OtherChargeSaleItem))
                //if (itemDetails.FoodicsTax > 0 || itemDetails.Item_Type == nameof(Item_Type.OtherChargeSaleItem))
                //{
                taxCode.internalId = objSetting.TaxCode_Netsuite_Id.ToString();
                if (objSetting.ItemTaxInclusive)//= tax inclusive in item price
                {
                    invoiceItemObject.rate = Convert.ToString(itemDetails.Amount / taxRate);
                }
                else
                {
                    invoiceItemObject.rate = Convert.ToString(itemDetails.Amount);
                }
                //}
                //else
                //{
                //    taxCode.internalId = objSetting.TaxCode_Free_Netsuite_Id.ToString();
                //    invoiceItemObject.rate = Convert.ToString(itemDetails.Amount);
                //}
            }
            taxCode.type = RecordType.taxAcct;
            if (int.Parse(taxCode.internalId) > 0)
            {
                invoiceItemObject.taxCode = taxCode;
            }
            // item
            item                   = new RecordRef();
            item.internalId        = itemDetails.Item_Id.ToString();
            item.type              = (RecordType)Enum.Parse(typeof(RecordType), itemDetails.Item_Type, 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;
            price.internalId        = "-1";
            invoiceItemObject.price = price;
            #endregion
            invoiceItemObject.quantitySpecified = true;
            invoiceItemObject.quantity          = itemDetails.Quantity;
            if (!string.IsNullOrEmpty(itemDetails.Combo_Name))
            {
                StringCustomFieldRef ComboRef = new StringCustomFieldRef();
                ComboRef.scriptId = "custcol_da_foodics_combos";
                ComboRef.value    = itemDetails.Combo_Name.ToString() + " - " + itemDetails.ComboSize_Name.ToString();

                CustomFieldRef[] customFieldRefArray = new CustomFieldRef[1];
                customFieldRefArray[0]            = ComboRef;
                invoiceItemObject.customFieldList = customFieldRefArray;
            }
            return(invoiceItemObject);
        }
コード例 #9
0
        public override Int64 Set(string parametersArr)
        {
            try
            {
                bool result = true;
                new CustomDAO().InvoiceRelatedUpdate();
                new CustomDAO().SetItemClass();
                #region Check Correct Invoices

                /*
                 * SELECT      *
                 * FROM            Invoice
                 * WHERE
                 * --(Location_Id = 201) and
                 * Order_Status=4
                 * and Net_Payable + Total_Discount != (select sum( Quantity  * amount) - sum(Line_Discount_Amount) from InvoiceItem where InvoiceItem.Invoice_Id =Invoice.Id and ISNULL(Item_Id,0)>0 and ProductStatus=3 )
                 *
                 * SELECT      *
                 * FROM            Invoice
                 * WHERE
                 *
                 * Order_Status=5
                 * and Net_Payable + Total_Discount != (select sum( Quantity  * amount) - sum(Line_Discount_Amount) from InvoiceItem where InvoiceItem.Invoice_Id =Invoice.Id and ISNULL(Item_Id,0)>0 and ProductStatus=6 )
                 * select * from InvoiceItem where isnull([Item_Id], 0)=0
                 *
                 * Declare @id nvarchar(50)
                 * set @id='007f91e2-a8ad-4dab-a20a-70c90e8db6ce'
                 *              select * from Invoice
                 *              where Foodics_Id =@id
                 *              select Net_Payable,Net_Payable-((Net_Payable*15)/100) from Invoice
                 *              where Foodics_Id =@id
                 *              select * from InvoiceItem
                 *              where Foodics_Id =@id
                 */
                #endregion
                List <Foodics.NetSuite.Shared.Model.Invoice> lstitemsAll = new CustomDAO().SelectInvoice(4);
                int Exe_length = 200;
                int lstend     = Exe_length;
                if (lstitemsAll.Count > 0)
                {
                    for (int Index = 0; Index < lstitemsAll.Count; Index += Exe_length)
                    {
                        if (Index + Exe_length >= lstitemsAll.Count)
                        {
                            lstend = lstitemsAll.Count - Index;
                        }
                        List <Foodics.NetSuite.Shared.Model.Invoice> invoiceLst = lstitemsAll.GetRange(Index, lstend);

                        if (invoiceLst.Count > 0)
                        {
                            #region variables
                            Invoice[] InvoiceArr = new Invoice[invoiceLst.Count];



                            Foodics.NetSuite.Shared.Model.Invoice     invoice_info;
                            Foodics.NetSuite.Shared.Model.InvoiceItem itemDetails;


                            DateTime        invoice_date;
                            Invoice         invoiceObject;
                            InvoiceItem     invoiceItemObject;
                            InvoiceItemList items;

                            RecordRef            subsid, currency, entity, location;
                            StringCustomFieldRef FoodicsRef, FoodicsNumb, CreatedBy, Source, orderDiscount;
                            CustomFieldRef[]     customFieldRefArray;
                            #endregion
                            for (int i = 0; i < invoiceLst.Count; i++)
                            {
                                try
                                {
                                    List <Foodics.NetSuite.Shared.Model.InvoiceItem> itemLst = new List <Foodics.NetSuite.Shared.Model.InvoiceItem>();
                                    List <InvoiceItem> invoiceItems = new List <InvoiceItem>();
                                    invoice_info = invoiceLst[i];
                                    Setting objSetting = new GenericeDAO <Setting>().GetWhere("Subsidiary_Netsuite_Id=" + invoice_info.Subsidiary_Id).FirstOrDefault();
                                    invoiceObject = new Invoice();
                                    #region invoice items
                                    itemLst = new GenericeDAO <Foodics.NetSuite.Shared.Model.InvoiceItem>().GetWhere(" ProductStatus =3 and Invoice_Id =" + invoice_info.Id + " and isnull(Item_Id,0) >0 ");
                                    try
                                    {
                                        for (int k = 0; k < itemLst.Count; k++)
                                        {
                                            itemDetails       = itemLst[k];
                                            invoiceItemObject = CreateInvoiceItem(objSetting, itemDetails);
                                            invoiceItems.Add(invoiceItemObject);
                                            if (itemDetails.Line_Discount_Amount > 0)
                                            {
                                                float Discount = itemDetails.Line_Discount_Amount;
                                                Foodics.NetSuite.Shared.Model.InvoiceItem OtherCharge = new Foodics.NetSuite.Shared.Model.InvoiceItem();
                                                OtherCharge.Item_Id   = objSetting.OtherChargeItem_Netsuite_Id;
                                                OtherCharge.Amount    = Discount * -1;
                                                OtherCharge.Quantity  = 1;
                                                OtherCharge.Item_Type = nameof(Item_Type.OtherChargeSaleItem);
                                                invoiceItemObject     = CreateInvoiceItem(objSetting, OtherCharge);
                                                invoiceItems.Add(invoiceItemObject);
                                            }
                                        }
                                        //if (invoice_info.Total_Discount > 0)
                                        //{
                                        //    float Discount = invoice_info.Total_Discount;
                                        //    Foodics.NetSuite.Shared.Model.InvoiceItem discountItem = new Foodics.NetSuite.Shared.Model.InvoiceItem();
                                        //    if (invoice_info.Discount_Id > 0)
                                        //        discountItem.Item_Id = invoice_info.Discount_Id;
                                        //    else
                                        //        discountItem.Item_Id = objSetting.DiscountItem_Netsuite_Id;

                                        //    discountItem.Amount = Discount * -1;
                                        //    //discountItem.Quantity = 1;
                                        //    discountItem.Item_Type = nameof(Item_Type.DiscountItem);
                                        //    invoiceItemObject = CreateInvoiceItem(objSetting, discountItem);
                                        //    invoiceItems.Add(invoiceItemObject);
                                        //}
                                    }
                                    catch (Exception ex)
                                    {
                                        LogDAO.Integration_Exception(LogIntegrationType.Error, this.GetType().FullName + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Error " + ex.Message);
                                    }
                                    //Assign invoive items
                                    items                  = new InvoiceItemList();
                                    items.item             = invoiceItems.ToArray();
                                    invoiceObject.itemList = items;

                                    //GiftCertRedemption
                                    #endregion


                                    #region Standard Attributes
                                    invoice_date = TimeZoneInfo.ConvertTimeToUtc(invoice_info.Date, TimeZoneInfo.Local);

                                    //invoiceObject.externalId = invoice_info.BarCode;
                                    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;
                                    }
                                    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;

                                    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 Discount
                                    if (invoice_info.Total_Discount > 0)
                                    {
                                        RecordRef discountitem = new RecordRef();
                                        discountitem.type          = RecordType.discountItem;
                                        invoiceObject.discountItem = discountitem;
                                        float taxRate = 1 + (objSetting.TaxRate / 100);
                                        if (objSetting.TaxAlwaysAppliedInItems)
                                        {
                                            invoiceObject.discountRate = (Math.Round((invoice_info.Total_Discount / taxRate), 3) * -1).ToString();
                                        }
                                        else
                                        {
                                            //if (objSetting.ItemTaxInclusive)
                                            //    invoiceObject.discountRate = (Math.Round((invoice_info.Total_Discount / taxRate), 3) * -1).ToString();
                                            //else
                                            invoiceObject.discountRate = (Math.Round(invoice_info.Total_Discount, 3) * -1).ToString();
                                        }

                                        if (invoice_info.Discount_Id > 0)
                                        {
                                            discountitem.internalId = invoice_info.Discount_Id.ToString();
                                        }
                                        else
                                        {
                                            discountitem.internalId = objSetting.DiscountItem_Netsuite_Id.ToString();
                                        }
                                    }
                                    else
                                    {
                                        invoiceObject.discountRate = "0";
                                    }
                                    orderDiscount          = new StringCustomFieldRef();
                                    orderDiscount.scriptId = "custbody_da_invoice_discount";
                                    orderDiscount.value    = invoice_info.Total_Discount.ToString();

                                    //if (invoice_info.Accounting_Discount_Item != 0)
                                    //{
                                    //    RecordRef discItem = new RecordRef();
                                    //    discItem.internalId = invoice_info.Accounting_Discount_Item.ToString();
                                    //    discItem.type = RecordType.discountItem;
                                    //    invoiceObject.discountItem = discItem;
                                    //}
                                    #endregion

                                    //RecordRef Approval = new RecordRef();
                                    //Approval.internalId = "2";
                                    ////Approval.type = RecordType.;
                                    //invoiceObject.approvalStatus = Approval;

                                    #region Invoice Custom Attributes
                                    FoodicsRef          = new StringCustomFieldRef();
                                    FoodicsRef.scriptId = "custbody_da_foodics_reference";
                                    FoodicsRef.value    = invoice_info.BarCode.ToString();

                                    FoodicsNumb          = new StringCustomFieldRef();
                                    FoodicsNumb.scriptId = "custbody_da_foodics_number";
                                    FoodicsNumb.value    = invoice_info.Number.ToString();

                                    CreatedBy          = new StringCustomFieldRef();
                                    CreatedBy.scriptId = "custbody_da_foodics_createdby";
                                    CreatedBy.value    = invoice_info.CreatedBy != null?invoice_info.CreatedBy.ToString() : "";

                                    Source          = new StringCustomFieldRef();
                                    Source.scriptId = "custbody_da_foodics_source";
                                    Source.value    = invoice_info.Source.ToString();

                                    customFieldRefArray    = new CustomFieldRef[5];
                                    customFieldRefArray[0] = orderDiscount;
                                    customFieldRefArray[1] = FoodicsRef;
                                    customFieldRefArray[2] = FoodicsNumb;
                                    customFieldRefArray[3] = CreatedBy;
                                    customFieldRefArray[4] = Source;

                                    invoiceObject.customFieldList = customFieldRefArray;
                                    #endregion
                                    InvoiceArr[i] = invoiceObject;
                                }
                                catch (Exception ex)
                                {
                                    //invoiceLst.RemoveAt(i);
                                    LogDAO.Integration_Exception(LogIntegrationType.Error, this.GetType().FullName + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Error " + ex.Message);
                                }
                            }
                            // Send invoice list to netsuite
                            WriteResponseList wr = Service(true).addList(InvoiceArr);
                            result = wr.status.isSuccess;
                            if (result)
                            {
                                //Update database with returned Netsuite ids
                                UpdatedInvoice(invoiceLst, wr);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogDAO.Integration_Exception(LogIntegrationType.Error, this.GetType().FullName + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Error " + ex.Message);
            }



            return(0);
        }
コード例 #10
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;
        }
コード例 #11
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;
        }
コード例 #12
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;
        }
コード例 #13
0
        private WriteResponseList CreateCreditMemo(List <Foodics.NetSuite.Shared.Model.Invoice> returnList)
        {
            //Define Array of credit Memo Then Loop
            CreditMemo[]     memoList = new CreditMemo[returnList.Count];
            CreditMemoItem[] memoitemarr;
            CreditMemoItem   invoiceItemObject;

            //add return id + return netsuite id to credit memo table, credit memo netsuite id
            #region Add Credit Memoes to CreditMemo Array

            for (int i = 0; i < returnList.Count; i++)
            {
                Foodics.NetSuite.Shared.Model.Invoice invoiceReturn   = returnList[i];
                Foodics.NetSuite.Shared.Model.Invoice invoiceoriginal = new GenericeDAO <Foodics.NetSuite.Shared.Model.Invoice>().GetWhere(" Foodics_Id = '" + invoiceReturn.Original_Foodics_Id + "'").FirstOrDefault();
                if (invoiceoriginal != null && invoiceoriginal.Netsuite_Id > 0)
                {
                    Setting objSetting = new GenericeDAO <Setting>().GetWhere("Subsidiary_Netsuite_Id=" + invoiceReturn.Subsidiary_Id).FirstOrDefault();
                    StringCustomFieldRef FoodicsRef, FoodicsNumb, orderDiscount;
                    CustomFieldRef[]     customFieldRefArray;
                    CreditMemo           memo = new CreditMemo();
                    // Return
                    RecordRef returnRef = new RecordRef();
                    returnRef.internalId = invoiceoriginal.Netsuite_Id.ToString();
                    returnRef.type       = RecordType.invoice;
                    memo.createdFrom     = returnRef;


                    //Customer

                    RecordRef entity = new RecordRef();
                    entity.internalId = invoiceReturn.Customer_Netsuite_Id > 0 ? invoiceReturn.Customer_Netsuite_Id.ToString() : objSetting.Customer_Netsuite_Id.ToString();
                    entity.type       = RecordType.customer;
                    memo.entity       = entity;

                    //currency
                    RecordRef currency = new RecordRef();
                    currency.internalId = objSetting.Currency_Netsuite_Id.ToString();
                    currency.type       = RecordType.currency;
                    memo.currency       = currency;

                    //date
                    memo.tranDateSpecified = true;
                    memo.tranDate          = TimeZoneInfo.ConvertTimeToUtc(invoiceReturn.Date, TimeZoneInfo.Local);

                    //exchange rate
                    memo.exchangeRate = invoiceReturn.Exchange_Rate;

                    //subsidary
                    RecordRef subsid = new RecordRef();
                    subsid.internalId = invoiceReturn.Subsidiary_Id.ToString();
                    subsid.type       = RecordType.subsidiary;
                    memo.subsidiary   = subsid;


                    #region Item List
                    List <Foodics.NetSuite.Shared.Model.InvoiceItem> itemLst = new GenericeDAO <Foodics.NetSuite.Shared.Model.InvoiceItem>().GetWhere(" ProductStatus =6 and Invoice_Id =" + invoiceReturn.Id + " and isnull(Item_Id,0) >0 ");
                    int DiscountItems = itemLst.Where(x => x.Line_Discount_Amount > 0).Count();
                    //Define Invoice Items List
                    int totalItems = itemLst.Count + DiscountItems;
                    memoitemarr = new CreditMemoItem[totalItems];
                    if (itemLst.Count > 0)
                    {
                        CreditMemoItemList crdtmemoitmlst = new CreditMemoItemList();

                        try
                        {
                            int arr = 0;
                            for (int k = 0; k < totalItems; k++)
                            {
                                Foodics.NetSuite.Shared.Model.InvoiceItem itemDetails = itemLst[arr];
                                invoiceItemObject = CreateCreditItem(objSetting, itemDetails);
                                memoitemarr[k]    = invoiceItemObject;
                                if (itemDetails.Line_Discount_Amount > 0)
                                {
                                    float Discount = itemDetails.Line_Discount_Amount;
                                    k++;
                                    Foodics.NetSuite.Shared.Model.InvoiceItem OtherCharge = new Foodics.NetSuite.Shared.Model.InvoiceItem();
                                    OtherCharge.Item_Id   = objSetting.OtherChargeItem_Netsuite_Id;
                                    OtherCharge.Amount    = Discount * -1;
                                    OtherCharge.Quantity  = 1;
                                    OtherCharge.Item_Type = "OtherChargeResaleItem";
                                    invoiceItemObject     = CreateCreditItem(objSetting, OtherCharge);
                                    memoitemarr[k]        = invoiceItemObject;
                                }
                                arr++;
                            }
                        }
                        catch (Exception ex)
                        {
                            LogDAO.Integration_Exception(LogIntegrationType.Error, this.GetType().FullName + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Error " + ex.Message);
                        }


                        crdtmemoitmlst.item = memoitemarr;
                        memo.itemList       = crdtmemoitmlst;
                    }

                    #endregion

                    #region Discount
                    if (invoiceReturn.Total_Discount > 0)
                    {
                        RecordRef discountitem = new RecordRef();
                        discountitem.type = RecordType.discountItem;
                        memo.discountItem = discountitem;

                        memo.discountRate = (Math.Round((invoiceReturn.Total_Discount / 1.15), 3) * -1).ToString();
                        if (invoiceReturn.Discount_Id > 0)
                        {
                            discountitem.internalId = invoiceReturn.Discount_Id.ToString();
                        }
                        else
                        {
                            discountitem.internalId = objSetting.DiscountItem_Netsuite_Id.ToString();
                        }
                    }
                    else
                    {
                        memo.discountRate = "0";
                    }
                    if (invoiceReturn.Accounting_Discount_Item != 0)
                    {
                        RecordRef discItem = new RecordRef();
                        discItem.internalId = invoiceReturn.Accounting_Discount_Item.ToString();
                        discItem.type       = RecordType.discountItem;
                        memo.discountItem   = discItem;
                    }
                    #region Custom Attributes
                    orderDiscount          = new StringCustomFieldRef();
                    orderDiscount.scriptId = "custbody_da_invoice_discount";
                    orderDiscount.value    = invoiceReturn.Total_Discount.ToString();


                    FoodicsRef          = new StringCustomFieldRef();
                    FoodicsRef.scriptId = "custbody_da_foodics_reference";
                    FoodicsRef.value    = invoiceReturn.BarCode.ToString();

                    FoodicsNumb          = new StringCustomFieldRef();
                    FoodicsNumb.scriptId = "custbody_da_foodics_number";
                    FoodicsNumb.value    = invoiceReturn.Number.ToString();

                    customFieldRefArray    = new CustomFieldRef[3];
                    customFieldRefArray[0] = orderDiscount;
                    customFieldRefArray[1] = FoodicsRef;
                    customFieldRefArray[2] = FoodicsNumb;

                    memo.customFieldList = customFieldRefArray;
                    #endregion

                    #endregion


                    memoList[i] = memo;
                }
            }

            //Post Memos to Netsuite
            WriteResponseList memoWR = Service(true).addList(memoList);
            bool receiptresult       = memoWR.status.isSuccess;

            if (receiptresult)
            {
                UpdatedInvoice(returnList, memoWR);
            }
            #endregion
            return(memoWR);
        }
コード例 #14
0
        public override Int64 Set(string parametersArr)
        {
            List <Foodics.NetSuite.Shared.Model.PaymentMethodEntity> lstitemsAll = new CustomDAO().SelectCustomerPayment(4);
            int Exe_length = 200;
            int lstend     = Exe_length;

            if (lstitemsAll.Count > 0)
            {
                for (int Index = 0; Index < lstitemsAll.Count; Index += Exe_length)
                {
                    if (Index + Exe_length >= lstitemsAll.Count)
                    {
                        lstend = lstitemsAll.Count - Index;
                    }
                    List <Foodics.NetSuite.Shared.Model.PaymentMethodEntity> invoiceMethodLst = lstitemsAll.GetRange(Index, lstend);
                    try
                    {
                        if (invoiceMethodLst.Count > 0)
                        {
                            List <Record> cps      = new List <Record>();
                            bool          is_valid = false;
                            try
                            {
                                for (int f = 0; f < invoiceMethodLst.Count; f++)
                                {
                                    PaymentMethodEntity payobj = invoiceMethodLst[f];
                                    Foodics.NetSuite.Shared.Model.Invoice invoiceobj = new GenericeDAO <Foodics.NetSuite.Shared.Model.Invoice>().GetWhere(" Foodics_Id = '" + payobj.Foodics_Id + "'").FirstOrDefault();
                                    Setting objSetting = new GenericeDAO <Setting>().GetWhere("Subsidiary_Netsuite_Id=" + invoiceobj.Subsidiary_Id).FirstOrDefault();
                                    #region Accept Payment
                                    CustomerPaymentApplyList    AplyList    = new CustomerPaymentApplyList();
                                    CustomerPaymentCreditList   CreditList  = new CustomerPaymentCreditList();
                                    CustomerPaymentDepositList  DepositList = new CustomerPaymentDepositList();
                                    List <CustomerPaymentApply> payApplylst = new List <CustomerPaymentApply>();
                                    CustomerPaymentApply        payApply;
                                    CustomerPayment             cp = new CustomerPayment();
                                    cp.autoApply = false;
                                    is_valid     = false;
                                    #region Payment Properties
                                    //customer
                                    RecordRef customer = new RecordRef();
                                    customer.internalId = invoiceobj.Customer_Netsuite_Id > 0 ? invoiceobj.Customer_Netsuite_Id.ToString() : objSetting.Customer_Netsuite_Id.ToString();
                                    customer.type       = RecordType.customer;
                                    cp.customer         = customer;

                                    //currency
                                    RecordRef currency = new RecordRef();
                                    currency.internalId = objSetting.Currency_Netsuite_Id.ToString();//payobj.Currency_Id.ToString();
                                    currency.type       = RecordType.currency;
                                    cp.currency         = currency;
                                    StringCustomFieldRef FoodicsRef, FoodicsNumb;

                                    // memo
                                    cp.memo = payobj.Notes;

                                    //tranDate
                                    cp.tranDate          = TimeZoneInfo.ConvertTimeToUtc(payobj.Business_Date, TimeZoneInfo.Local);
                                    cp.tranDateSpecified = true;

                                    //cp.subsidiary
                                    RecordRef subsidiary = new RecordRef();
                                    subsidiary.internalId = objSetting.Subsidiary_Netsuite_Id.ToString(); //payobj.Subsidiary_Id.ToString();
                                    subsidiary.type       = RecordType.subsidiary;
                                    cp.subsidiary         = subsidiary;

                                    //cp.location
                                    RecordRef location = new RecordRef();
                                    location.internalId = invoiceobj.Location_Id.ToString();//objSetting.Location_Netsuite_Id.ToString();//payobj.Location_Id.ToString();
                                    location.type       = RecordType.location;
                                    cp.location         = location;

                                    // payment amount
                                    cp.payment          = payobj.Amount;
                                    cp.paymentSpecified = true;



                                    #region Payment Custom Attributes

                                    DoubleCustomFieldRef payPercent = new DoubleCustomFieldRef();
                                    payPercent.scriptId = "custbody_da_payment_method_percentage";
                                    payPercent.value    = payobj.Payment_Method_Percentage;

                                    DoubleCustomFieldRef PayPercentAmount = new DoubleCustomFieldRef();
                                    PayPercentAmount.scriptId = "custbody_da_payment_method_amount";
                                    PayPercentAmount.value    = (payobj.Payment_Method_Percentage * payobj.Amount) / 100;

                                    LongCustomFieldRef trans_id = new LongCustomFieldRef();
                                    trans_id.scriptId = "custbody_da_transaction_id";
                                    trans_id.value    = invoiceobj.Netsuite_Id;

                                    FoodicsRef          = new StringCustomFieldRef();
                                    FoodicsRef.scriptId = "custbody_da_foodics_reference";
                                    FoodicsRef.value    = invoiceobj.BarCode.ToString();

                                    FoodicsNumb          = new StringCustomFieldRef();
                                    FoodicsNumb.scriptId = "custbody_da_foodics_number";
                                    FoodicsNumb.value    = invoiceobj.Number.ToString();

                                    CustomFieldRef[] customFieldRefArray = new CustomFieldRef[5];
                                    customFieldRefArray[0] = trans_id;
                                    customFieldRefArray[1] = payPercent;
                                    customFieldRefArray[2] = PayPercentAmount;
                                    customFieldRefArray[3] = FoodicsRef;
                                    customFieldRefArray[4] = FoodicsNumb;

                                    cp.customFieldList = customFieldRefArray;
                                    #endregion

                                    #region Apply Invoice
                                    // Invoice
                                    payApply                 = new CustomerPaymentApply();
                                    payApply.apply           = true;
                                    payApply.docSpecified    = true;
                                    payApply.amountSpecified = true;
                                    payApply.currency        = currency.internalId;
                                    payApply.type            = "Invoice";
                                    payApply.doc             = invoiceobj.Netsuite_Id;
                                    payApply.total           = payobj.Amount;
                                    payApply.amount          = payobj.Amount;
                                    payApply.applyDate       = payobj.Business_Date;

                                    payApplylst.Add(payApply);
                                    #endregion

                                    #region Invoice Custom Attributes



                                    #endregion

                                    // payment method
                                    if (payobj.Payment_Method_Id > 0)
                                    {
                                        is_valid = true;

                                        //payment method
                                        RecordRef payment_method = new RecordRef();
                                        payment_method.internalId = payobj.Payment_Method_Id.ToString();
                                        payment_method.type       = RecordType.customerPayment;
                                        cp.paymentMethod          = payment_method;
                                        cp.authCode = payobj.Ref.Length > 30 ? payobj.Ref.Substring(0, 30) : payobj.Ref;


                                        // amount
                                        cp.payment          = payobj.Amount;
                                        cp.paymentSpecified = true;
                                    }

                                    AplyList.apply = payApplylst.ToArray();
                                    cp.applyList   = AplyList;

                                    #endregion

                                    if (is_valid)
                                    {
                                        cps.Add(cp);
                                    }
                                    #endregion
                                }
                            }
                            catch (Exception ex)
                            {
                                LogDAO.Integration_Exception(LogIntegrationType.Error, this.GetType().FullName + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Error " + ex.Message);
                            }
                            if (cps.Count > 0)
                            {
                                WriteResponseList wr = Service(true).addList(cps.ToArray());
                                bool result          = wr.status.isSuccess;

                                UpdatedLst(invoiceMethodLst, wr);

                                // return result;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        LogDAO.Integration_Exception(LogIntegrationType.Error, this.GetType().FullName + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Error " + ex.Message);
                    }
                }
            }
            return(0);
        }