Exemplo n.º 1
0
        public void AddPayment(long accountNumber,
                               DateTime paymentDate,
                               string ownRef,
                               TextCode textCode,
                               TransferCode transferCode,
                               int amount,
                               string payeeAccNum,
                               string payeeName,
                               string swiftBankAddr,
                               string bankAddress,
                               string bankCode,
                               string bankName,
                               string receivingCountryCode,
                               string payeeAddress,
                               string payeeInvoiceRef,
                               ISOCurrencySymbols currencyInfo,
                               Charges chargesAbroad   = Charges.BEN,
                               Charges chargesInNorway = Charges.OUR)
        {
            InternationalPaymentOrder order = new InternationalPaymentOrder();

            this.PaymentOrders.Add(order);

            AddTransferRecord(order, accountNumber, paymentDate, ownRef, currencyInfo, chargesAbroad, chargesInNorway);

            AddPaymentRecord(order, accountNumber, amount, payeeAccNum, payeeName, swiftBankAddr, bankAddress, bankCode,
                             bankName, receivingCountryCode, payeeAddress, payeeInvoiceRef);
        }
Exemplo n.º 2
0
        private void AddTransferRecord(InternationalPaymentOrder order,
                                       long accountNumber,
                                       DateTime paymentDate,
                                       string ownRef,
                                       ISOCurrencySymbols currencyInfo,
                                       Charges chargesAbroad,
                                       Charges chargesInNorway)
        {
            var transferRecord = new BETFOR01
            {
                Header            = CreateDefaultHeader(),
                EnterpriseNum     = EnterpriseNumber,
                AccountNumber     = accountNumber,
                PaymentDate       = paymentDate.ToString("yyMMdd"),
                PaymentCurrency   = currencyInfo.ToString(),
                InvoiceCurrency   = currencyInfo.ToString(),
                ChargesAbroad     = chargesAbroad,
                ChargesInNorway   = chargesInNorway,
                OwnReferenceOrder = ownRef
            };

            order.TransferRecord = transferRecord;
        }
Exemplo n.º 3
0
        private void AddPaymentRecord(InternationalPaymentOrder order,
                                      long accountNumber,
                                      int amount,
                                      string payeeAccNum,
                                      string payeeName,
                                      string swiftBankAddr,
                                      string bankAddress,
                                      string bankCode,
                                      string bankName,
                                      string receivingCountryCode,
                                      string payeeAddress,
                                      string payeeInvoiceRef)
        {
            order.BankDetails = new BETFOR02
            {
                Header            = CreateDefaultHeader(),
                EnterpriseNum     = this.EnterpriseNumber,
                AccountNum        = accountNumber,
                SwiftAddress      = swiftBankAddr,
                SwiftAddrCorpBank = swiftBankAddr
            };

            if (bankAddress.Length > 35)
            {
                order.BankDetails.BankAddress1 = bankAddress.Substring(0, 35);

                if (bankAddress.Length > 70)
                {
                    order.BankDetails.BankAddress2 = bankAddress.Substring(35, 35);

                    order.BankDetails.BankAddress3 = bankAddress.Length > 105 ? bankAddress.Substring(70, 35) : bankAddress.Substring(71, bankAddress.Length - 70);
                }
                else
                {
                    order.BankDetails.BankAddress2 = bankAddress.Substring(35, bankAddress.Length - 35);
                }
            }
            else
            {
                order.BankDetails.BankAddress1 = bankAddress;
            }

            order.BankDetails.BankCode = bankCode;
            order.BankDetails.BankName = bankName;
            order.BankDetails.CountryCodeReceivBank = receivingCountryCode;

            order.Invoice = new BETFOR04
            {
                Header                = CreateDefaultHeader(),
                EnterpriseNum         = this.EnterpriseNumber,
                AccountNumber         = accountNumber,
                InvoiceAmount         = amount,
                DebitCreditCancelCode = "D",
                PayeeRefInvoice       = payeeInvoiceRef
            };


            order.Payee = new BETFOR03
            {
                Header        = CreateDefaultHeader(),
                EnterpriseNum = this.EnterpriseNumber,
                PayeeAccount  = payeeAccNum,
                PayeeName     = payeeName,
                AccountNum    = accountNumber,
                PayeeCountry  = receivingCountryCode
            };


            if (payeeAddress.Length > 35)
            {
                order.Payee.PayeeAddress1 = payeeAddress.Substring(0, 35);

                if (bankAddress.Length > 70)
                {
                    order.Payee.PayeeAddress2 = payeeAddress.Substring(35, 35);
                    order.Payee.PayeeAddress3 = bankAddress.Length > 105 ? payeeAddress.Substring(70, 35) : payeeAddress.Substring(70, payeeAddress.Length - 70);
                }
                else
                {
                    order.Payee.PayeeAddress2 = payeeAddress.Substring(35, payeeAddress.Length - 35);
                }
            }
            else
            {
                order.Payee.PayeeAddress1 = payeeAddress;
            }
        }
Exemplo n.º 4
0
        public static void SetValue(string data, PropertyInfo prop, TelepayFieldAttribute attr, object obj)
        {
            object value = null;

            switch (attr.Type)
            {
            case FieldType.Object:
            {
                var t = prop.PropertyType;
                if ((typeof(List <PaymentOrder>).IsAssignableFrom(t)))
                {
                    var orders = new List <PaymentOrder>();
                    // PaymentOrder val = new PaymentOrder();

                    PaymentOrder order = null;

                    for (int i = 0; i < data.Length; i = i + BatchBase.RecordLength)
                    {
                        BetforBase rec = new BetforBase();
                        ParseObject(data.Substring(i, BatchBase.RecordLength), rec);

                        switch (rec.TransactionCode)
                        {
                        case RecordType.BETFOR21:
                            var trRec = new BETFOR21();
                            order         = new PaymentOrder();
                            order.Records = new List <BetforBase>();
                            ParseObject(data.Substring(i, BatchBase.RecordLength), trRec);
                            order.TransferRecord = trRec;
                            break;

                        case RecordType.BETFOR01:
                            var trRecInt = new BETFOR01();
                            var ordTmp   = new InternationalPaymentOrder();
                            ordTmp.Invoice     = new BETFOR04();
                            ordTmp.BankDetails = new BETFOR02();
                            ordTmp.Payee       = new BETFOR03();
                            order = ordTmp;
                            ParseObject(data.Substring(i, BatchBase.RecordLength), trRecInt);
                            order.TransferRecord = trRecInt;
                            orders.Add(order);
                            break;

                        case RecordType.BETFOR02:
                            if (order != null)
                            {
                                var payment = new BETFOR02();
                                ParseObject(data.Substring(i, BatchBase.RecordLength), payment);
                                ((InternationalPaymentOrder)order).BankDetails = payment;
                            }
                            break;

                        case RecordType.BETFOR03:
                            if (order != null)
                            {
                                var payment = new BETFOR03();
                                ParseObject(data.Substring(i, BatchBase.RecordLength), payment);
                                ((InternationalPaymentOrder)order).Payee = payment;
                            }
                            break;

                        case RecordType.BETFOR04:
                            if (order != null)
                            {
                                var payment = new BETFOR04();
                                ParseObject(data.Substring(i, BatchBase.RecordLength), payment);
                                ((InternationalPaymentOrder)order).Invoice = payment;
                            }
                            break;

                        case RecordType.BETFOR22:
                            if (order != null)
                            {
                                if (!(typeof(MassPaymentOrder).Equals(order.GetType())))
                                {
                                    var ord = new MassPaymentOrder();
                                    ord.TransferRecord = order.TransferRecord ?? null;
                                    order         = ord;
                                    order.Records = new List <BETFOR22>();
                                    orders.Add(order);
                                }
                                var payment = new BETFOR22();
                                ParseObject(data.Substring(i, BatchBase.RecordLength), payment);
                                order.AddRecord(payment);
                            }
                            break;

                        case RecordType.BETFOR23:
                            if (order != null)
                            {
                                if (!(typeof(InvoicesPaymentOrder).Equals(order.GetType())))
                                {
                                    var ord = new InvoicesPaymentOrder();
                                    ord.TransferRecord = order.TransferRecord ?? null;
                                    order         = ord;
                                    order.Records = new List <BETFOR21>();
                                    orders.Add(order);
                                }
                                var payment = new BETFOR21();
                                ParseObject(data.Substring(i, BatchBase.RecordLength), payment);
                                order.AddRecord(payment);
                            }
                            break;
                        }
                    }
                    value = orders;
                }
                else if ((typeof(IEnumerable <BetforBase>)).IsAssignableFrom(prop.PropertyType))
                {
                    var records = new List <BetforBase>();
                    var record  = new BetforBase();
                    ParseObject(data, record);
                    switch (record.TransactionCode)
                    {
                    case RecordType.BETFOR21:
                        record = new BETFOR21();
                        break;

                    case RecordType.BETFOR22:
                        record = new BETFOR22();
                        break;
                    }
                    ParseObject(data, record);
                    records.Add(record);
                    value = records;
                }
                else if ((typeof(TelepayObject).IsAssignableFrom(prop.PropertyType)))
                {
                    value = Activator.CreateInstance(prop.PropertyType);
                    ParseObject(data, value);
                }
            }
            break;

            default:
                value = ParseData(data, attr);
                break;
            }

            if (prop.PropertyType.IsEnum)
            {
                value = Enum.Parse(prop.PropertyType, value.ToString());
            }

            prop.SetValue(obj, value, null);
        }