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; }
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; }
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"); }
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; }