public static AG_IAS_PAYMENT_DETAIL_HIS ConvertToAG_IAS_PAYMENT_DETAIL_HIS(this AG_IAS_TEMP_PAYMENT_DETAIL_HIS item)
        {
            AG_IAS_PAYMENT_DETAIL_HIS entity = new AG_IAS_PAYMENT_DETAIL_HIS();

            entity.HIS_ID              = item.HIS_ID;
            entity.ID                  = item.ID;
            entity.RECORD_TYPE         = item.RECORD_TYPE;
            entity.BANK_CODE           = item.BANK_CODE;
            entity.COMPANY_ACCOUNT     = item.COMPANY_ACCOUNT;
            entity.PAYMENT_DATE        = ParseDateFromString.ParseDateHeaderBank(item.PAYMENT_DATE);
            entity.PAYMENT_TIME        = item.PAYMENT_TIME;
            entity.CUSTOMER_NAME       = item.CUSTOMER_NAME;
            entity.CUSTOMER_NO_REF1    = item.CUSTOMER_NO_REF1;
            entity.REF2                = item.REF2;
            entity.REF3                = item.REF3;
            entity.BRANCH_NO           = item.BRANCH_NO;
            entity.TELLER_NO           = item.TELLER_NO;
            entity.KIND_OF_TRANSACTION = item.KIND_OF_TRANSACTION;
            entity.TRANSACTION_CODE    = item.TRANSACTION_CODE;
            entity.CHEQUE_NO           = item.CHEQUE_NO;
            entity.AMOUNT              = item.AMOUNT;
            entity.CHEQUE_BANK_CODE    = item.CHEQUE_BANK_CODE;
            entity.HEADER_ID           = item.HEADER_ID;
            return(entity);
        }
        public static AG_IAS_PAYMENT_DETAIL ConvertToAG_IAS_PAYMENT_DETAIL(this AG_IAS_TEMP_PAYMENT_DETAIL bankPaymentDetail)
        {
            AG_IAS_PAYMENT_DETAIL transferDetail = new AG_IAS_PAYMENT_DETAIL();

            transferDetail.ID              = bankPaymentDetail.ID;
            transferDetail.RECORD_TYPE     = bankPaymentDetail.RECORD_TYPE;
            transferDetail.BANK_CODE       = bankPaymentDetail.BANK_CODE;
            transferDetail.COMPANY_ACCOUNT = bankPaymentDetail.COMPANY_ACCOUNT;

            transferDetail.PAYMENT_DATE        = ParseDateFromString.ParseDateHeaderBank(bankPaymentDetail.PAYMENT_DATE);
            transferDetail.PAYMENT_TIME        = bankPaymentDetail.PAYMENT_TIME;
            transferDetail.CUSTOMER_NAME       = bankPaymentDetail.CUSTOMER_NAME;
            transferDetail.CUSTOMER_NO_REF1    = bankPaymentDetail.CUSTOMER_NO_REF1;
            transferDetail.REF2                = bankPaymentDetail.REF2;
            transferDetail.REF3                = bankPaymentDetail.REF3;
            transferDetail.BRANCH_NO           = bankPaymentDetail.BRANCH_NO;
            transferDetail.TELLER_NO           = bankPaymentDetail.TELLER_NO;
            transferDetail.KIND_OF_TRANSACTION = bankPaymentDetail.KIND_OF_TRANSACTION;
            transferDetail.TRANSACTION_CODE    = bankPaymentDetail.TRANSACTION_CODE;
            transferDetail.CHEQUE_NO           = bankPaymentDetail.CHEQUE_NO;
            transferDetail.AMOUNT              = bankPaymentDetail.AMOUNT;
            transferDetail.CHEQUE_BANK_CODE    = bankPaymentDetail.CHEQUE_BANK_CODE;
            transferDetail.HEADER_ID           = bankPaymentDetail.HEADER_ID;
            transferDetail.STATUS              = bankPaymentDetail.STATUS;
            return(transferDetail);
        }
Exemple #3
0
        public DTO.UploadResult <DTO.SummaryBankTransaction, DTO.BankTransaction> ValidateData()
        {
            DTO.UploadResult <DTO.SummaryBankTransaction, DTO.BankTransaction> result = new DTO.UploadResult <DTO.SummaryBankTransaction, DTO.BankTransaction>();
            result.Header  = new List <DTO.SummaryBankTransaction>();
            result.Detail  = new List <DTO.BankTransaction>();
            result.GroupId = this.ID;


            foreach (CityFileDetail item in this.CityFileDetails)
            {
                DTO.BankTransaction detail = new DTO.BankTransaction()
                {
                    Id           = item.ID,
                    SequenceNo   = item.SequenceNo,
                    PaymentDate  = ParseDateFromString.ParseDateHeaderBank(item.PAYMENT_DATE).ToString("dd/MM/yyyy"), //  .Format("{0}/{1}/{2}", item.PAYMENT_DATE.Substring(0, 2), item.PAYMENT_DATE.Substring(2, 2), item.PAYMENT_DATE.Substring(4, 4)),
                    CustomerName = item.CUSTOMER_NAME,
                    Ref1         = item.CUSTOMER_NO_REF1,
                    Ref2         = item.REF2,
                    ChequeNo     = item.CHEQUE_NO,
                    Amount       = PhaseAmountHelper.ConvertStringAmountCity(item.AMOUNT),
                    AccountNo    = item.COMPANY_ACCOUNT,
                };

                detail.ErrorMessage = (item.GetBrokenRules().Count() > 0) ? item.GetBrokenRules().First().Rule : "";
                detail.Status       = (int)item.Status;
                if (item.Status == DTO.ImportPaymentStatus.Paylate)
                {
                    detail.ErrorMessage += String.Format("- นำส่งล้าช้า <br />");
                }


                result.Detail.Add(detail);
            }


            Int32 countDetail    = CityFileDetails.Count();
            Int32 countOfInvalid = result.Detail.Where(a => !String.IsNullOrEmpty(a.ErrorMessage)).Count();



            Decimal sumAmount = PhaseAmountHelper.ConvertStringAmountCity(CityFileTotal.TOTAL_CREDIT_AMOUNT);


            DTO.SummaryBankTransaction sumary = new DTO.SummaryBankTransaction()
            {
                UploadDate      = DateTime.Today,
                FileName        = FileName,
                NumberOfItems   = countDetail,
                NumberOfValid   = countDetail - countOfInvalid,
                NumberOfInValid = countOfInvalid,
                Total           = this.TotalAmount,
            };

            //foreach (CityFileTotal item in this.CityFileTotals)
            //{
            //    if (item.GetBrokenRules().Count() > 0)
            //    {
            //        sumary.ErrMessage = this.CityFileTotal.GetBrokenRules().First().Rule;
            //        break;
            //    }
            //}
            Decimal sumDetail = this.CityFileDetails.Sum(a => PhaseAmountHelper.ConvertStringAmountCity(a.AMOUNT));

            if (sumary.Total != sumDetail)
            {
                sumary.ErrMessage = "จำนวนเงินรวม เอกสารไม่ถูกต้อง";
            }

            result.Header.Add(sumary);
            return(result);
        }
Exemple #4
0
        private void Validate()
        {
            _paymentStatus = DTO.ImportPaymentStatus.Valid;

            if (base.RECORD_TYPE != "6")
            {
                AddBrokenRule(BankFileDetailBusinessRules.RECORD_TYPE_Required);
            }

            if (Utils.DateUtil.ValidateDateFormatString("ddMMyyyy", base.PAYMENT_DATE, "th-TH"))
            {
                AddBrokenRule(BankFileDetailBusinessRules.PAYMENT_DATE_Required);
            }

            //if (Utils.DateUtil.ValidateDateFormatString("hhmmss", base.PAYMENT_TIME, "th-TH"))
            //    AddBrokenRule(BankFileDetailBusinessRules.PAYMENT_TIME_Required);

            if (String.IsNullOrEmpty(CUSTOMER_NO_REF1.Trim()))
            {
                AddBrokenRule(BankFileDetailBusinessRules.CUSTOMER_NO_REF1_Required);
            }

            if (base.CUSTOMER_NO_REF1.Length != 20)
            {
                AddBrokenRule(BankFileDetailBusinessRules.CUSTOMER_NO_REF1_Required);
            }

            Decimal tempInt;

            if (!Decimal.TryParse(base.AMOUNT, out tempInt))
            {
                AddBrokenRule(BankFileDetailBusinessRules.AMOUNT_Required);
            }

            if (_brokenRules.Count > 0)
            {
                _paymentStatus = DTO.ImportPaymentStatus.Invalid;
            }
            else
            {
                AG_IAS_PAYMENT_G_T payment = CityFileHeader.Context.AG_IAS_PAYMENT_G_T.FirstOrDefault(a => a.GROUP_REQUEST_NO == CUSTOMER_NO_REF1.Trim());

                if (payment == null)
                {
                    Int32 ref1 = 0;
                    if (Regex.IsMatch(CUSTOMER_NO_REF1.Trim(), @"^\d+$"))// Int32.TryParse(CUSTOMER_NO_REF1.Trim(), out ref1))
                    {
                        _paymentStatus = DTO.ImportPaymentStatus.MissingRefNo;
                    }
                    else
                    {
                        AddBrokenRule(BankFileDetailBusinessRules.CUSTOMER_NO_REF1_Required);
                        _paymentStatus = DTO.ImportPaymentStatus.Invalid;
                    }
                }
                else
                {
                    if (payment.STATUS == PaymentStatus.P.ToString())
                    {
                        AddBrokenRule(BankFileDetailBusinessRules.CUSTOMER_NO_REF1_Updated);
                        _paymentStatus = DTO.ImportPaymentStatus.Paid;
                    }
                    else
                    {
                        if (payment.EXPIRATION_DATE != null && (((DateTime)payment.EXPIRATION_DATE).Date < ParseDateFromString.ParseDateHeaderBank(PAYMENT_DATE).Date))
                        {
                            _paymentStatus = DTO.ImportPaymentStatus.Paylate;
                        }
                    }
                    //else if (PhaseAmountHelper.ConvertStringAmount(AMOUNT) != payment.GROUP_AMOUNT)
                    //{
                    //   AddBrokenRule(BankFileDetailBusinessRules.AMOUNT_Required);

                    //}
                }
            }
        }