Beispiel #1
0
        /// <summary>
        /// Check duplicate customer (customer name LOCAL)
        /// </summary>
        /// <param name="customer"></param>
        /// <returns></returns>
        public bool CheckDuplicateCustomer_CustNameLC(doCustomer customer)
        {
            try
            {
                doCustomer cust = CommonUtil.CloneObject <doCustomer, doCustomer>(customer);
                if (cust != null)
                {
                    //32  AND 46    =   space !"#$%&'()*+,-.
                    //58  AND 64    =   :;<=>?@
                    //91  AND 96    =   [\]^_`
                    //123 AND 125   =   {|}

                    if (CommonUtil.IsNullOrEmpty(cust.CustNameLC) == false)
                    {
                        cust.CustNameLC = Regex.Replace(cust.CustNameLC, "[ !\"#$%&'()*+,-.:;<=>?@[\\]^_`{|}]", "");
                    }

                    List <int?> lst = base.CheckDuplicateCustomer_CustNameLC(
                        CustomerStatus.C_CUST_STATUS_EXIST,
                        cust.CustCode, cust.CustNameLC);

                    if (lst.Count > 0 && (lst[0] == 1))
                    {
                        return(true);
                    }
                }

                return(false);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #2
0
        /// <summary>
        /// Check duplicate customer
        /// </summary>
        /// <param name="customer"></param>
        /// <returns></returns>
        public bool CheckDuplicateCustomer(doCustomer customer)
        {
            try
            {
                doCustomer cust = CommonUtil.CloneObject <doCustomer, doCustomer>(customer);
                if (cust != null)
                {
                    if (CommonUtil.IsNullOrEmpty(cust.CustCode) == false ||
                        CommonUtil.IsNullOrEmpty(cust.CustNameLC) == false)
                    {
                        for (int i = 32; i <= 125; i++)
                        {
                            string key = null;
                            if ((i >= 32 && i <= 46) ||
                                (i >= 58 && i <= 64) ||
                                (i >= 91 && i <= 96) ||
                                (i >= 123 && i <= 125))
                            {
                                key = Char.ConvertFromUtf32(i);
                            }
                            if (CommonUtil.IsNullOrEmpty(key) == false)
                            {
                                if (CommonUtil.IsNullOrEmpty(cust.CustCode) == false)
                                {
                                    cust.CustCode = cust.CustCode.Replace(key, "");
                                }
                                if (CommonUtil.IsNullOrEmpty(cust.CustNameLC) == false)
                                {
                                    cust.CustNameLC = cust.CustNameLC.Replace(key, "");
                                }
                            }
                        }
                    }

                    List <int?> lst = base.CheckDuplicateCustomer(CustomerStatus.C_CUST_STATUS_EXIST,
                                                                  cust.CustCode,
                                                                  cust.IDNo,
                                                                  cust.CustNameLC);
                    if (lst.Count > 0)
                    {
                        if (lst[0] == 1)
                        {
                            throw ApplicationErrorException.ThrowErrorException(MessageUtil.MODULE_MASTER, MessageUtil.MessageList.MSG1003);
                        }
                        else if (lst[0] == 2)
                        {
                            throw ApplicationErrorException.ThrowErrorException(MessageUtil.MODULE_MASTER, MessageUtil.MessageList.MSG1004);
                        }
                    }
                }

                return(false);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public void CreateAddressFull(doCustomer cust)
        {
            try
            {
                if (cust == null)
                {
                    return;
                }

                ICommonHandler chandler = ServiceContainer.GetService <ICommonHandler>() as ICommonHandler;

                doCustomerAddress   custAddress = new doCustomerAddress();
                MiscTypeMappingList miscLst     = new MiscTypeMappingList();
                miscLst.AddMiscType(custAddress);
                chandler.MiscTypeMappingList(miscLst);

                #region EN


                string[] addrEN = new string[]
                {
                    cust.AddressEN,
                    CommonUtil.TextWithPrefixSuffix(cust.AlleyEN, custAddress.AlleyPrefixEN, custAddress.AlleySuffixEN),
                    CommonUtil.TextWithPrefixSuffix(cust.RoadEN, custAddress.RoadPrefixEN, custAddress.RoadSuffixEN),
                    CommonUtil.TextWithPrefixSuffix(cust.SubDistrictEN, custAddress.SubDistrictPrefixEN, custAddress.SubDistrictSuffixEN),
                    CommonUtil.TextWithPrefixSuffix(cust.DistrictNameEN, custAddress.DistrictPrefixEN, custAddress.DistrictSuffixEN),
                    CommonUtil.TextWithPrefixSuffix(cust.ProvinceNameEN, custAddress.ProvincePrefixEN, custAddress.ProvinceSuffixEN),
                    cust.ZipCode
                };
                cust.AddressFullEN = CommonUtil.TextList(addrEN, " ");

                #endregion
                #region LC

                string[] addrLC = new string[]
                {
                    cust.AddressLC,
                    CommonUtil.TextWithPrefixSuffix(cust.AlleyLC, custAddress.AlleyPrefixLC, custAddress.AlleySuffixLC),
                    CommonUtil.TextWithPrefixSuffix(cust.RoadLC, custAddress.RoadPrefixLC, custAddress.RoadSuffixLC),
                    CommonUtil.TextWithPrefixSuffix(cust.SubDistrictLC, custAddress.SubDistrictPrefixLC, custAddress.SubDistrictSuffixLC),
                    CommonUtil.TextWithPrefixSuffix(cust.DistrictNameLC, custAddress.DistrictPrefixLC, custAddress.DistrictSuffixLC),
                    CommonUtil.TextWithPrefixSuffix(cust.ProvinceNameLC, custAddress.ProvincePrefixLC, custAddress.ProvinceSuffixLC),
                    cust.ZipCode
                };
                cust.AddressFullLC = CommonUtil.TextList(addrLC, " ");

                #endregion
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #4
0
        /// <summary>
        /// Check duplicate customer (ID No)
        /// </summary>
        /// <param name="customer"></param>
        /// <returns></returns>
        public bool CheckDuplicateCustomer_IDNo(doCustomer customer)
        {
            try
            {
                doCustomer cust = CommonUtil.CloneObject <doCustomer, doCustomer>(customer);

                List <int?> lst = base.CheckDuplicateCustomer_IDNo(
                    CustomerStatus.C_CUST_STATUS_EXIST,
                    cust.CustCode, cust.IDNo);

                if (lst.Count > 0 && (lst[0] == 1))
                {
                    return(true);
                }

                return(false);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #5
0
        /// <summary>
        /// Validate customer data
        /// </summary>
        /// <param name="cust"></param>
        /// <param name="isFullValidate"></param>
        public void ValidateCustomerData(doCustomer cust, bool isFullValidate = false)
        {
            IMasterHandler mhandler = ServiceContainer.GetService <IMasterHandler>() as IMasterHandler;
            ICommonHandler chandler = ServiceContainer.GetService <ICommonHandler>() as ICommonHandler;

            doCompanyType cType = null;

            cust.ValidateCustomerData = true;
            try
            {
                #region Set Misc Data

                MiscTypeMappingList miscList = new MiscTypeMappingList();
                miscList.AddMiscType(cust);
                chandler.MiscTypeMappingList(miscList);

                #endregion
                #region Company Type

                List <doCompanyType> clst = mhandler.GetCompanyType(cust.CompanyTypeCode);
                if (clst.Count > 0)
                {
                    cType = clst[0];
                    cust.CompanyTypeName = clst[0].CompanyTypeName;
                }

                #endregion
                #region Nationality Data

                if (CommonUtil.IsNullOrEmpty(cust.RegionCode) == false)
                {
                    List <tbm_Region> nlst = mhandler.GetTbm_Region();
                    if (nlst.Count > 0)
                    {
                        foreach (tbm_Region r in nlst)
                        {
                            if (cust.RegionCode == r.RegionCode)
                            {
                                cust.Nationality = r.Nationality;
                                break;
                            }
                        }
                    }
                }

                #endregion
                #region BusinessType Data

                if (CommonUtil.IsNullOrEmpty(cust.BusinessTypeCode) == false)
                {
                    List <tbm_BusinessType> blst = mhandler.GetTbm_BusinessType();
                    if (blst.Count > 0)
                    {
                        foreach (tbm_BusinessType b in blst)
                        {
                            if (cust.BusinessTypeCode == b.BusinessTypeCode)
                            {
                                cust.BusinessTypeName = b.BusinessTypeName;
                                break;
                            }
                        }
                    }
                }

                #endregion
                #region Province Data

                if (CommonUtil.IsNullOrEmpty(cust.ProvinceCode) == false)
                {
                    List <tbm_Province> plst = mhandler.GetTbm_Province();
                    if (plst.Count > 0)
                    {
                        foreach (tbm_Province pv in plst)
                        {
                            if (cust.ProvinceCode == pv.ProvinceCode)
                            {
                                cust.ProvinceNameEN = pv.ProvinceNameEN;
                                cust.ProvinceNameLC = pv.ProvinceNameLC;
                                break;
                            }
                        }
                    }
                }

                #endregion
                #region District

                if (CommonUtil.IsNullOrEmpty(cust.DistrictCode) == false)
                {
                    List <tbm_District> dlst = mhandler.GetTbm_District(cust.ProvinceCode);
                    if (dlst.Count > 0)
                    {
                        foreach (tbm_District d in dlst)
                        {
                            if (cust.ProvinceCode == d.ProvinceCode &&
                                cust.DistrictCode == d.DistrictCode)
                            {
                                cust.DistrictNameEN = d.DistrictNameEN;
                                cust.DistrictNameLC = d.DistrictNameLC;
                                break;
                            }
                        }
                    }
                }

                #endregion

                if (CommonUtil.IsNullOrEmpty(cust.CustTypeName) || cust.CustTypeCode != CustomerType.C_CUST_TYPE_JURISTIC)
                {
                    cust.CompanyTypeName = null;
                }
                if (CommonUtil.IsNullOrEmpty(cust.CompanyTypeName) || cust.CompanyTypeCode != CompanyType.C_COMPANY_TYPE_PUBLIC_CO_LTD)
                {
                    cust.FinancialMaketTypeName = null;
                }

                if (CommonUtil.IsNullOrEmpty(cust.CustCode))
                {
                    if (isFullValidate)
                    {
                        ApplicationErrorException.CheckMandatoryField <doCustomer, ValidateCustomer_Full>(cust);
                    }
                    else if (CommonUtil.IsNullOrEmpty(cust.CustCode) == true)
                    {
                        ApplicationErrorException.CheckMandatoryField <doCustomer, ValidateCustomer_CodeNull>(cust);
                    }
                    else
                    {
                        ApplicationErrorException.CheckMandatoryField <doCustomer, ValidateCustomer>(cust);
                    }
                }
            }
            catch
            {
                cust.ValidateCustomerData = false;
            }
            try
            {
                if (cType == null)
                {
                    cType = new doCompanyType();
                }

                cust.CustFullNameEN =
                    CommonUtil.TextList(new string[] { cType.CustNamePrefixEN,
                                                       cust.CustNameEN,
                                                       cType.CustNameSuffixEN }, " ");
                cust.CustFullNameLC =
                    CommonUtil.TextList(new string[] { cType.CustNamePrefixLC,
                                                       cust.CustNameLC,
                                                       cType.CustNameSuffixLC }, " ");

                mhandler.CreateAddressFull(cust);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #6
0
        /// <summary>
        /// Update customer
        /// </summary>
        /// <param name="customer"></param>
        /// <returns></returns>
        public List <tbm_Customer> UpdateCustomer(doCustomer customer)
        {
            try
            {
                //Check whether this record is the most updated data
                List <tbm_Customer> sList = this.GetTbm_Customer(customer.CustCode);

                if (sList == null || sList.Count == 0 || sList[0] == null || sList[0].UpdateDate == null ||
                    customer.UpdateDate == null || !customer.UpdateDate.HasValue)
                {
                    throw ApplicationErrorException.ThrowErrorException(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0007, new string[] { "UpdateDate" });
                }

                if (DateTime.Compare(sList[0].UpdateDate.Value, customer.UpdateDate.Value) != 0)
                {
                    throw ApplicationErrorException.ThrowErrorException(MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0019);
                }

                dsTransDataModel dsTrans = CommonUtil.dsTransData;
                //customer.UpdateDate = dsTrans.dtOperationData.ProcessDateTime;
                //customer.UpdateBy = dsTrans.dtUserData.EmpNo;

                List <tbm_Customer> lst = this.UpdateCustomer(customer.CustCode,
                                                              customer.CustStatus,
                                                              customer.ImportantFlag,
                                                              customer.CustNameEN,
                                                              customer.CustNameLC,
                                                              customer.CustFullNameEN,
                                                              customer.CustFullNameLC,
                                                              customer.RepPersonName,
                                                              customer.ContactPersonName,
                                                              customer.SECOMContactPerson,
                                                              customer.CustTypeCode,
                                                              customer.CompanyTypeCode,
                                                              customer.FinancialMarketTypeCode,
                                                              customer.BusinessTypeCode,
                                                              customer.PhoneNo,
                                                              customer.FaxNo,
                                                              customer.IDNo,
                                                              customer.DummyIDFlag,
                                                              customer.RegionCode,
                                                              customer.URL,
                                                              customer.Memo,
                                                              customer.AlleyEN,
                                                              customer.AddressEN,
                                                              customer.RoadEN,
                                                              customer.SubDistrictEN,
                                                              customer.AddressFullEN,
                                                              customer.AddressLC,
                                                              customer.AlleyLC,
                                                              customer.RoadLC,
                                                              customer.SubDistrictLC,
                                                              customer.AddressFullLC,
                                                              customer.DistrictCode,
                                                              customer.ProvinceCode,
                                                              customer.ZipCode,
                                                              customer.DeleteFlag,
                                                              dsTrans.dtOperationData.ProcessDateTime,
                                                              dsTrans.dtUserData.EmpNo);

                //Insert Log
                if (lst.Count > 0)
                {
                    doTransactionLog logData = new doTransactionLog();
                    logData.TransactionType = doTransactionLog.eTransactionType.Update;
                    logData.TableName       = TableName.C_TBL_NAME_CUSTOMER;
                    logData.TableData       = CommonUtil.ConvertToXml(lst);
                    ILogHandler hand = ServiceContainer.GetService <ILogHandler>() as ILogHandler;
                    hand.WriteTransactionLog(logData);
                }

                return(lst);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #7
0
        /// <summary>
        /// Insert customer
        /// </summary>
        /// <param name="customer"></param>
        /// <returns></returns>
        public List <tbm_Customer> InsertCustomer(doCustomer customer)
        {
            try
            {
                dsTransDataModel dsTrans = CommonUtil.dsTransData;
                customer.CustStatus    = CustomerStatus.C_CUST_STATUS_NEW;
                customer.ImportantFlag = false;
                customer.DummyIDFlag   = customer.DummyIDFlag == null ? false : customer.DummyIDFlag;
                customer.DeleteFlag    = false;
                customer.CreateDate    = dsTrans.dtOperationData.ProcessDateTime;
                customer.CreateBy      = dsTrans.dtUserData.EmpNo;
                customer.UpdateDate    = dsTrans.dtOperationData.ProcessDateTime;
                customer.UpdateBy      = dsTrans.dtUserData.EmpNo;

                List <tbm_Customer> lst = this.InsertCustomer(customer.CustCode,
                                                              customer.CustStatus,
                                                              customer.ImportantFlag,
                                                              customer.CustNameEN,
                                                              customer.CustNameLC,
                                                              customer.CustFullNameEN,
                                                              customer.CustFullNameLC,
                                                              customer.RepPersonName,
                                                              customer.ContactPersonName,
                                                              customer.SECOMContactPerson,
                                                              customer.CustTypeCode,
                                                              customer.CompanyTypeCode,
                                                              customer.FinancialMarketTypeCode,
                                                              customer.BusinessTypeCode,
                                                              customer.PhoneNo,
                                                              customer.FaxNo,
                                                              customer.IDNo,
                                                              customer.DummyIDFlag,
                                                              customer.RegionCode,
                                                              customer.URL,
                                                              customer.Memo,
                                                              customer.AlleyEN,
                                                              customer.AddressEN,
                                                              customer.RoadEN,
                                                              customer.SubDistrictEN,
                                                              customer.AddressFullEN,
                                                              customer.AddressLC,
                                                              customer.AlleyLC,
                                                              customer.RoadLC,
                                                              customer.SubDistrictLC,
                                                              customer.AddressFullLC,
                                                              customer.DistrictCode,
                                                              customer.ProvinceCode,
                                                              customer.ZipCode,
                                                              customer.DeleteFlag,
                                                              customer.CreateDate,
                                                              customer.CreateBy,
                                                              customer.UpdateDate,
                                                              customer.UpdateBy);
                //Insert Log
                if (lst.Count > 0)
                {
                    doTransactionLog logData = new doTransactionLog();
                    logData.TransactionType = doTransactionLog.eTransactionType.Insert;
                    logData.TableName       = TableName.C_TBL_NAME_CUSTOMER;
                    logData.TableData       = CommonUtil.ConvertToXml(lst);
                    ILogHandler hand = ServiceContainer.GetService <ILogHandler>() as ILogHandler;
                    hand.WriteTransactionLog(logData);
                }

                return(lst);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #8
0
        public void ValidateSiteData(doSite doSite)
        {
            if (doSite == null)
            {
                return;
            }

            doSite.ValidateSiteData = true;
            try
            {
                IMasterHandler mhandler = ServiceContainer.GetService <IMasterHandler>() as IMasterHandler;
                ICommonHandler chandler = ServiceContainer.GetService <ICommonHandler>() as ICommonHandler;

                #region Building Usage

                if (CommonUtil.IsNullOrEmpty(doSite.BuildingUsageCode) == false)
                {
                    List <tbm_BuildingUsage> blst = mhandler.GetTbm_BiuldingUsage();
                    if (blst.Count > 0)
                    {
                        foreach (tbm_BuildingUsage b in blst)
                        {
                            if (doSite.BuildingUsageCode == b.BuildingUsageCode)
                            {
                                doSite.BuildingUsageName   = b.BuildingUsageName;
                                doSite.BuildingUsageNameEN = b.BuildingUsageNameEN;
                                doSite.BuildingUsageNameLC = b.BuildingUsageNameLC;
                                doSite.BuildingUsageNameJP = b.BuildingUsageNameJP;
                                break;
                            }
                        }
                    }
                }

                #endregion
                #region Province Data

                if (CommonUtil.IsNullOrEmpty(doSite.ProvinceCode) == false)
                {
                    List <tbm_Province> plst = mhandler.GetTbm_Province();
                    if (plst.Count > 0)
                    {
                        foreach (tbm_Province pv in plst)
                        {
                            if (doSite.ProvinceCode == pv.ProvinceCode)
                            {
                                doSite.ProvinceNameEN = pv.ProvinceNameEN;
                                doSite.ProvinceNameLC = pv.ProvinceNameLC;
                                break;
                            }
                        }
                    }
                }

                #endregion
                #region District

                if (CommonUtil.IsNullOrEmpty(doSite.DistrictCode) == false)
                {
                    List <tbm_District> dlst = mhandler.GetTbm_District(doSite.ProvinceCode);
                    if (dlst.Count > 0)
                    {
                        foreach (tbm_District d in dlst)
                        {
                            if (doSite.ProvinceCode == d.ProvinceCode &&
                                doSite.DistrictCode == d.DistrictCode)
                            {
                                doSite.DistrictNameEN = d.DistrictNameEN;
                                doSite.DistrictNameLC = d.DistrictNameLC;
                                break;
                            }
                        }
                    }
                }

                #endregion

                ApplicationErrorException.CheckMandatoryField <doSite, ValidateSite>(doSite);
            }
            catch
            {
                doSite.ValidateSiteData = false;
            }
            try
            {
                doCustomer cust = CommonUtil.CloneObject <doSite, doCustomer>(doSite);

                IMasterHandler mhandler = ServiceContainer.GetService <IMasterHandler>() as IMasterHandler;
                mhandler.CreateAddressFull(cust);

                doSite.AddressFullEN = cust.AddressFullEN;
                doSite.AddressFullLC = cust.AddressFullLC;
            }
            catch (Exception)
            {
                throw;
            }
        }