Exemple #1
0
        private void ValidateCreatePaymentRequest(IDMServiceClient client, CreatePaymentRequest req)
        {
            if (req == null)
            {
                throw new ApplicationException("MISSING_REQUIRED_PARAMETER(S)");
            }

            if (string.IsNullOrEmpty(req.CreateBy))
            {
                throw new ApplicationException("EMPTY_OR_NULL_CREATED_BY");
            }

            if (string.IsNullOrEmpty(req.CustomerName))
            {
                throw new ApplicationException("EMPTY_OR_NULL_CUSTOMERNAME");
            }

            if (string.IsNullOrEmpty(req.CustomerAddress))
            {
                throw new ApplicationException("EMPTY_OR_NULL_CUSTOMERADDRESS");
            }

            if (req.PaymentItems == null || req.PaymentItems.Length < 1)
            {
                throw new ApplicationException("AT_LEAST_ONE_PAYMENT_ITEM_IS_REQUIRED");
            }
        }
        public static byte[] CreateTaxInvoiceReceipt(long paymentId)
        {
            byte[] pdf = new byte[0];

            using (var idmContainer = new IDMServiceClient())
                using (var container = new TransactionModelContainer())
                {
                    try
                    {
                        var payment = container.Payments.Where(x => x.Id == paymentId).FirstOrDefault();
                        if (payment != null)
                        {
                            var response = idmContainer.GetPersonByPartyId(new
                                                                           GetPersonByPartyIdRequest {
                                PartyId = payment.CustomerIdmPartyId
                            });

                            if (!response.IsSuccessful && response.Result == null)
                            {
                                throw new Exception("Customer party not found.");
                            }
                            if (string.IsNullOrEmpty(response.Result.CustomerCode))
                            {
                                throw new Exception("Not Customer");
                            }

                            var header = CreateViewPayment(payment, container);
                            header.CustomerCode = response.Result.CustomerCode;

                            TaxInvoice report = new TaxInvoice();
                            report.DataSource = header;
                            report.PaymentDataSource.DataSource = CreateViewPaymentItems(payment.PaymentItems, container);
                            var reportprocess = new ReportProcessor();
                            var result        = reportprocess.RenderReport("PDF", report, null);
                            pdf = result.DocumentBytes;

                            payment.AddTaxInvoiceReceipt(DateTime.Now, payment.CustomerName, pdf,
                                                         Convert.ToInt32(payment.Id), payment.PaymentCode);

                            container.SaveChanges();
                        }
                        else
                        {
                            throw new ArgumentException("PAYMENT_NOT_FOUND");
                        }
                    }
                    catch (Exception ex)
                    {
                        ErrorLog.Log("System", ex, SystemError.TransactionService);
                    }
                }

            return(pdf);
        }
        public static byte[] CreateTaxInvoiceReceipt(long paymentId)
        {
            byte[] pdf = new byte[0];

            using (var idmContainer = new IDMServiceClient())
            using (var container = new TransactionModelContainer())
            {
                try
                {
                    var payment = container.Payments.Where(x => x.Id == paymentId).FirstOrDefault();
                    if (payment != null)
                    {
                        var response = idmContainer.GetPersonByPartyId(new
                                GetPersonByPartyIdRequest { PartyId = payment.CustomerIdmPartyId });

                        if (!response.IsSuccessful && response.Result == null)
                            throw new Exception("Customer party not found.");
                        if (string.IsNullOrEmpty(response.Result.CustomerCode))
                            throw new Exception("Not Customer");

                        var header = CreateViewPayment(payment, container);
                        header.CustomerCode = response.Result.CustomerCode;

                        TaxInvoice report = new TaxInvoice();
                        report.DataSource = header;
                        report.PaymentDataSource.DataSource = CreateViewPaymentItems(payment.PaymentItems, container);
                        var reportprocess = new ReportProcessor();
                        var result = reportprocess.RenderReport("PDF", report, null);
                        pdf = result.DocumentBytes;

                        payment.AddTaxInvoiceReceipt(DateTime.Now, payment.CustomerName, pdf,
                            Convert.ToInt32(payment.Id), payment.PaymentCode);

                        container.SaveChanges();
                    }
                    else
                    {
                        throw new ArgumentException("PAYMENT_NOT_FOUND");
                    }
                }
                catch (Exception ex)
                {
                    ErrorLog.Log("System", ex, SystemError.TransactionService);
                }
            }

            return pdf;
        }
Exemple #4
0
        public CreatePaymentResponse CreatePayment(CreatePaymentRequest req)
        {
            var res = new CreatePaymentResponse();

            try
            {
                using (var idmClient = new IDMServiceClient())
                    using (var container = new TransactionModelContainer())
                    {
                        ValidateCreatePaymentRequest(idmClient, req);
                        var payment = new Payment(
                            req.CreateBy,
                            req.CustomerIDMPartyID,
                            req.CustomerName,
                            req.CustomerAddress,
                            req.PaymentItems.CreatePaymentItems()
                            );

                        var grandTotal = payment.GrandTotal();
                        var credits    = container.CustomerCredits.Where(x =>
                                                                         x.CustomerIdmPartyId == req.CustomerIDMPartyID &&
                                                                         x.IsUsedOrRefund == false).ToList();

                        var credit = credits.GetCustomerCredit(grandTotal);

                        foreach (var c in credit)
                        {
                            payment.AddPaymentItem(PaymentItem.CreateCustomerCredit(c.Id, c.Amount));
                        }

                        CustomerCredit.UpdateCustomerCredit(credit);

                        container.Payments.AddObject(payment);
                        container.SaveChanges();

                        res.SetPaymentResponse(payment);
                        res.Succeed();
                    }
            }
            catch (Exception x)
            {
                res.Fail(x);
                CreateLog(req, x);
            }

            return(res);
        }
        public CreatePaymentResponse CreatePayment(CreatePaymentRequest req)
        {
            var res = new CreatePaymentResponse();
            try
            {
                using (var idmClient = new IDMServiceClient())
                using (var container = new TransactionModelContainer())
                {
                    ValidateCreatePaymentRequest(idmClient, req);
                    var payment = new Payment(
                        req.CreateBy,
                        req.CustomerIDMPartyID,
                        req.CustomerName,
                        req.CustomerAddress,
                        req.PaymentItems.CreatePaymentItems()
                        );

                    var grandTotal = payment.GrandTotal();
                    var credits = container.CustomerCredits.Where(x =>
                            x.CustomerIdmPartyId == req.CustomerIDMPartyID &&
                            x.IsUsedOrRefund == false).ToList();

                    var credit = credits.GetCustomerCredit(grandTotal);

                    foreach (var c in credit)
                        payment.AddPaymentItem(PaymentItem.CreateCustomerCredit(c.Id, c.Amount));

                    CustomerCredit.UpdateCustomerCredit(credit);

                    container.Payments.AddObject(payment);
                    container.SaveChanges();

                    res.SetPaymentResponse(payment);
                    res.Succeed();
                }
            }
            catch (Exception x)
            {
                res.Fail(x);
                CreateLog(req, x);
            }

            return res;
        }
Exemple #6
0
        public virtual void SetUpUser(long ottTicket)
        {
            IDMOtt         ott    = null;
            IDMUserAccount user   = null;
            IDMPerson      person = null;

            using (IDMServiceClient iClient = new IDMServiceClient())
            {
                GetOttByTicketResponse getOttByTicketResponse = iClient.GetOttByTicket(new GetOttByTicketRequest {
                    Ticket = ottTicket
                });
                if (!getOttByTicketResponse.IsSuccessful)
                {
                    throw new ApplicationException(getOttByTicketResponse.Message);
                }
                ott = getOttByTicketResponse.Result;
                GetUserByUserIdResponse getUserByUserIdResponse = iClient.GetUserByUserId(new GetUserByUserIdRequest {
                    UserId = ott.UserId
                });
                if (!getOttByTicketResponse.IsSuccessful)
                {
                    throw new ApplicationException(getUserByUserIdResponse.Message);
                }
                user = getUserByUserIdResponse.Result;
                GetPersonByPartyIdResponse getPersonByPartyIdResponse = iClient.GetPersonByPartyId(new GetPersonByPartyIdRequest {
                    PartyId = user.PartyId
                });
                if (!getPersonByPartyIdResponse.IsSuccessful)
                {
                    throw new ApplicationException(getPersonByPartyIdResponse.Message);
                }
                person = getPersonByPartyIdResponse.Result;
            }

            OttTicket      = ottTicket;
            CurrentCulture = ott.Culture;
            UserAccountId  = ott.UserId;
            PartyId        = user.PartyId;
            LastLoginDate  = ott.LastLoggedInTimestamp.ToString(ConfigurationManager.Format.DateTime_Format);
            FirstName      = person.FirstName;
            LastName       = person.LastName;
            UserName       = user.Username;
        }
        private void ValidateCreatePaymentRequest(IDMServiceClient client, CreatePaymentRequest req)
        {
            if (req == null) throw new ApplicationException("MISSING_REQUIRED_PARAMETER(S)");

            if (string.IsNullOrEmpty(req.CreateBy)) throw new ApplicationException("EMPTY_OR_NULL_CREATED_BY");

            if (string.IsNullOrEmpty(req.CustomerName)) throw new ApplicationException("EMPTY_OR_NULL_CUSTOMERNAME");

            if (string.IsNullOrEmpty(req.CustomerAddress)) throw new ApplicationException("EMPTY_OR_NULL_CUSTOMERADDRESS");

            if (req.PaymentItems == null || req.PaymentItems.Length < 1)
                throw new ApplicationException("AT_LEAST_ONE_PAYMENT_ITEM_IS_REQUIRED");
        }
Exemple #8
0
        public virtual void SetUpUser(long ottTicket)
        {
            IDMOtt ott = null;
            IDMUserAccount user = null;
            IDMPerson person = null;

            using (IDMServiceClient iClient = new IDMServiceClient())
            {
                GetOttByTicketResponse getOttByTicketResponse = iClient.GetOttByTicket(new GetOttByTicketRequest { Ticket = ottTicket });
                if (!getOttByTicketResponse.IsSuccessful)
                    throw new ApplicationException(getOttByTicketResponse.Message);
                ott = getOttByTicketResponse.Result;
                GetUserByUserIdResponse getUserByUserIdResponse = iClient.GetUserByUserId(new GetUserByUserIdRequest { UserId = ott.UserId });
                if (!getOttByTicketResponse.IsSuccessful)
                    throw new ApplicationException(getUserByUserIdResponse.Message);
                user = getUserByUserIdResponse.Result;
                GetPersonByPartyIdResponse getPersonByPartyIdResponse = iClient.GetPersonByPartyId(new GetPersonByPartyIdRequest { PartyId = user.PartyId });
                if (!getPersonByPartyIdResponse.IsSuccessful)
                    throw new ApplicationException(getPersonByPartyIdResponse.Message);
                person = getPersonByPartyIdResponse.Result;
            }

            OttTicket = ottTicket;
            CurrentCulture = ott.Culture;
            UserAccountId = ott.UserId;
            PartyId = user.PartyId;
            LastLoginDate = ott.LastLoggedInTimestamp.ToString(ConfigurationManager.Format.DateTime_Format);
            FirstName = person.FirstName;
            LastName = person.LastName;
            UserName = user.Username;
        }