Exemple #1
0
        protected override void Update()
        {
            MaestroCustomer customer = (MaestroCustomer)request.TransactionEntityList[0];

            cm.Update(customer);
            Context.TransactionObject = customer;
        }
        public MaestroCustomer GetUnknownItem()
        {
            MaestroCustomer unknowCustomer = CustomerCache.Instance.GetByName(MaestroApplication.Instance.UNKNOWN_ITEM_NAME);

            if (unknowCustomer == null)
            {
                unknowCustomer = new MaestroCustomer()
                {
                    Name               = MaestroApplication.Instance.UNKNOWN_ITEM_NAME,
                    Address            = string.Empty,
                    DefaultPaymentType = string.Empty,
                    Email              = string.Empty,
                    Phone              = string.Empty,
                    QuickBooksId       = string.Empty,
                    QuickBoosCompany   = string.Empty,
                    Region             = new RegionManager(context).GetUnknownItem(),
                    Title              = string.Empty,
                    CreateDate         = DateTime.Now,
                    UpdateDate         = DateTime.Now,
                    CreatedUser        = "******",
                    UpdatedUser        = "******",
                    RecordStatus       = "A",
                    CustomerGroup      = string.Empty,
                    ReportGroup        = string.Empty,
                    InvoiceGroup       = string.Empty
                };
                InsertNewItem(unknowCustomer);
                CustomerCache.Instance.Reload(true);
            }

            return(unknowCustomer);
        }
Exemple #3
0
        protected override void New()
        {
            MaestroCustomer customer = (MaestroCustomer)request.TransactionEntityList[0];

            cm.InsertNewItem(customer);
            response.TransactionResult = customer;
            //Context.TransactionObject = customer;
        }
Exemple #4
0
        protected override void ImportQb()
        {
            /*
             * ImportRequestType importRequestType = EnumUtils.GetEnum<ImportRequestType>(extendedData[MessageDataExtensionKeys.IMPORT_TYPE]);
             * string qbId = string.Empty;
             * if (importRequestType == ImportRequestType.Single)
             *  qbId = extendedData[MessageDataExtensionKeys.ID];
             */
            List <MaestroCustomer> qbCustomers = null;

            BackUp();

            using (qbAgent = new QuickBooksCustomerAgent(Context))
            {
                qbCustomers = qbAgent.Import().Cast <MaestroCustomer>().ToList();
            }

            if (qbCustomers.Count > 0)
            {
                List <MaestroCustomer> updatedCustomers = new List <MaestroCustomer>();
                foreach (MaestroCustomer customer in qbCustomers)
                {
                    MaestroCustomer existing = CustomerCache.Instance.GetByQbId(customer.QuickBooksId);
                    if (existing != null)
                    {
                        customer.Id = existing.Id;
                        customer.DefaultPaymentType = existing.DefaultPaymentType;
                        cm.Update(customer);
                        updatedCustomers.Add(existing);
                    }
                }
                List <ITransactionEntity> clist = qbCustomers.Where(q => !updatedCustomers.Select(u => u.QuickBooksId).Contains(q.QuickBooksId)).Cast <ITransactionEntity>().ToList();
                if (clist.Count > 0)
                {
                    cm.BulkInsert(clist);
                }
                responseMessage            = string.Format("{0} customers have been imported/updated", qbCustomers.Count);
                response.TransactionResult = qbCustomers;
            }
            else
            {
                responseMessage = "No customers have been imported";
            }
        }
Exemple #5
0
        ResponseMessage Add(long regionId, string name, string title)
        {
            MaestroCustomer item = new MaestroCustomer()
            {
                Address            = "An address",
                DefaultPaymentType = "COD",
                Email  = "*****@*****.**",
                Name   = "A customer",
                Region = new MaestroRegion()
                {
                    Id = regionId
                },
                Title = "A Title",
                Phone = "123456789",
            };
            RequestMessage request = MessagePrepareAgent.GetRequest(action, tranCode, "", new List <ITransactionEntity>(new ITransactionEntity[] { item }));

            return(new MessageBroker().Execute(request));
        }
Exemple #6
0
        public override void Deserialize(JToken token)
        {
            MaestroCustomer resultObj = new MaestroCustomer();

            JObject entityObj = JObject.Parse(token.ToString());

            resultObj.Id                 = entityObj["Id"].ToObject <long>();
            resultObj.Address            = entityObj["Address"].ToString();
            resultObj.DefaultPaymentType = entityObj["DefaultPaymentType"].ToString();
            resultObj.Email              = entityObj["Email"].ToString();
            resultObj.Name               = entityObj["Name"].ToString();
            resultObj.Phone              = entityObj["Phone"].ToString();
            resultObj.Title              = entityObj["Title"].ToString();
            resultObj.QuickBooksId       = entityObj["QuickBooksId"].ToString();
            resultObj.QuickBoosCompany   = entityObj["QuickBoosCompany"].ToString();
            resultObj.CustomerGroup      = entityObj["CustomerGroup"].ToString();
            resultObj.ReportGroup        = entityObj["ReportGroup"].ToString();
            resultObj.InvoiceGroup       = entityObj["InvoiceGroup"].ToString();
            MaestroRegion region = null;

            if (entityObj.ContainsKey("MaestroRegion"))
            {
                JObject regionObj = JObject.Parse(entityObj["MaestroRegion"].ToString());
                if (regionObj.ContainsKey("Id"))
                {
                    long regionId = 0;
                    long.TryParse(regionObj["Id"].ToString(), out regionId);
                    if (regionId > 0)
                    {
                        region = RegionCache.Instance[regionId];
                    }
                    if (region == null)
                    {
                        region = RegionCache.Instance.GetByName(MaestroApplication.Instance.UNKNOWN_ITEM_NAME);
                    }
                }
            }
            resultObj.Region = region;

            Context.TransactionObject = resultObj;
        }
        public void InsertNewItem(MaestroCustomer customer)
        {
            SpCall call = new SpCall("DAT.CUSTOMER_INSERT");

            call.SetVarchar("@CUSTOMER_NAME", customer.Name);
            call.SetVarchar("@CUSTOMER_TITLE", customer.Title);
            call.SetVarchar("@CUSTOMER_ADDRESS", customer.Address);
            call.SetVarchar("@CUSTOMER_PHONE", customer.Phone);
            call.SetVarchar("@CUSTOMER_EMAIL", customer.Email);
            call.SetVarchar("@QB_CUSTOMER_ID", customer.QuickBooksId);
            call.SetVarchar("@QB_COMPANY", customer.QuickBoosCompany);
            call.SetBigInt("@REGION_ID", customer.Region.Id);
            call.SetVarchar("@DEFAULT_PAYMENT_TYPE", customer.DefaultPaymentType);
            call.SetVarchar("@CUSTOMER_GROUP", customer.CustomerGroup);
            call.SetVarchar("@REPORT_GROUP", customer.ReportGroup);
            call.SetDateTime("@CREATE_DATE", DateTime.Now);
            call.SetVarchar("@CREATE_USER", context.UserName);
            call.SetVarchar("@REPORT_GROUP", customer.ReportGroup);
            call.SetVarchar("@RECORD_STATUS", string.IsNullOrWhiteSpace(customer.RecordStatus) ? "A" : customer.RecordStatus);
            call.SetVarchar("@INVOICE_GROUP", customer.InvoiceGroup);
            customer.Id = db.ExecuteScalar <long>(call);
        }
Exemple #8
0
        MaestroCustomer GetMaestroCustomer(ICustomerRet qbc)
        {
            MaestroCustomer result = new MaestroCustomer();

            result.Address          = ReadAddress(qbc.BillAddress);
            result.Email            = ReadString(qbc.Email);
            result.Name             = ReadString(qbc.Name);
            result.Phone            = ReadString(qbc.Phone);
            result.Region           = GetRegion(qbc.BillAddress);
            result.Title            = ReadString(qbc.JobTitle);
            result.QuickBooksId     = ReadQbId(qbc.ListID);
            result.QuickBoosCompany = ReadString(qbc.CompanyName);
            result.CreateDate       = DateTime.Now;
            result.UpdateDate       = DateTime.Now;
            result.UpdatedUser      = context.UserName;
            result.CreatedUser      = context.UserName;
            result.CustomerGroup    = qbc.CustomerTypeRef == null ? string.Empty : ReadString(qbc.CustomerTypeRef.FullName);
            result.RecordStatus     = qbc.IsActive.GetValue() ? "A" : "P";
            if (qbc.ShipToAddressList != null)
            {
                for (int i = 0; i < qbc.ShipToAddressList.Count; i++)
                {
                    StringBuilder  bld         = new StringBuilder();
                    IShipToAddress shipAddress = qbc.ShipToAddressList.GetAt(i);
                    bld.AppendLine(shipAddress.Name.GetValue());
                    bld.AppendLine(shipAddress.Addr1.GetValue());
                    bld.AppendLine(shipAddress.Addr2.GetValue());
                    bld.AppendLine(shipAddress.Addr3.GetValue());
                    bld.AppendLine(shipAddress.Addr4.GetValue());
                    bld.AppendLine(shipAddress.Addr5.GetValue());
                    bld.AppendLine(shipAddress.City.GetValue());
                    bld.AppendLine(shipAddress.PostalCode.GetValue());
                    bld.AppendLine(shipAddress.State.GetValue());
                    Console.WriteLine(bld.ToString());
                }
            }

            return(result);
        }
        protected override DataTable PrepareTable(List <ITransactionEntity> customers)
        {
            SpCall    spCall = new SpCall("DAT.GET_CUSTOMER_SCHEMA");
            DataTable dt     = db.ExecuteDataTable(spCall);

            customers.Cast <MaestroCustomer>().ToList().ForEach(cus =>
            {
                MaestroCustomer existing = CustomerCache.Instance.GetByQbId(cus.QuickBooksId);
                if (existing != null)
                {
                    Delete(existing.Id);
                }

                DataRow dr                 = dt.NewRow();
                dr["CUSTOMER_NAME"]        = cus.Name;
                dr["CUSTOMER_TITLE"]       = cus.Title;
                dr["CUSTOMER_ADDRESS"]     = cus.Address;
                dr["CUSTOMER_PHONE"]       = cus.Phone;
                dr["CUSTOMER_EMAIL"]       = cus.Email;
                dr["QB_CUSTOMER_ID"]       = cus.QuickBooksId;
                dr["QB_COMPANY"]           = cus.QuickBoosCompany;
                dr["REGION_ID"]            = cus.Region.Id;
                dr["DEFAULT_PAYMENT_TYPE"] = cus.DefaultPaymentType;
                dr["CREATE_DATE"]          = cus.CreateDate;
                dr["CREATE_USER"]          = cus.CreatedUser;
                dr["UPDATE_DATE"]          = cus.UpdateDate;
                dr["UPDATE_USER"]          = cus.UpdatedUser;
                dr["RECORD_STATUS"]        = string.IsNullOrWhiteSpace(cus.RecordStatus) ? "A" : cus.RecordStatus;
                dr["CUSTOMER_GROUP"]       = cus.CustomerGroup;
                dr["REPORT_GROUP"]         = cus.ReportGroup;
                dr["INVOICE_GROUP"]        = cus.InvoiceGroup;

                dt.Rows.Add(dr);
            });
            dt.TableName = "DAT.CUSTOMER";
            return(dt);
        }