You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

360 lines
15 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. using Business.Configuration;
  2. using Business.Customer;
  3. using Common.Helper;
  4. using Common.Model.BankModel;
  5. using JMEAgentSystem.Library;
  6. using Newtonsoft.Json;
  7. using Repository.DAO;
  8. using Repository.DAO.SendTxnIRHDao;
  9. using Repository.Model;
  10. using Repository.ThirdPartyApiServices;
  11. using Swift.API.Common;
  12. using Swift.API.Common.ExRate;
  13. using System;
  14. using System.Collections.Generic;
  15. using System.Data;
  16. using System.Linq;
  17. using System.Web;
  18. using System.Web.Script.Serialization;
  19. using System.Web.UI;
  20. using System.Web.UI.WebControls;
  21. namespace JMEAgentSystem.WebPages.SendTxn
  22. {
  23. public partial class SendTxnRequest : System.Web.UI.Page
  24. {
  25. private readonly ICustomerServices _customerServices = AutoFacContainer.Resolve<ICustomerServices>();
  26. private readonly StaticDataDdl _sdd = new StaticDataDdl();
  27. private readonly SendTxnIRHDao st = new SendTxnIRHDao();
  28. RemittanceDao _rdao = new RemittanceDao();
  29. protected void Page_Load(object sender, EventArgs e)
  30. {
  31. if (!IsPostBack)
  32. {
  33. try
  34. {
  35. GetStatic.PrintMessage(this.Page);
  36. populateDdl();
  37. var methodName = GetStatic.ReadFormData("MethodName", "");
  38. switch (methodName)
  39. {
  40. case "PaymentModePcountry":
  41. LoadDataFromDdl("pMode");
  42. break;
  43. case "loadAgentBank":
  44. LoadDataFromDdl("agentByPmode");
  45. break;
  46. case "getPayoutPartner":
  47. GetPayoutPartner();
  48. break;
  49. case "PopulateBranch":
  50. GetBankBranch();
  51. break;
  52. case "CalculateTxn":
  53. Calculate();
  54. break;
  55. case "ValidateDetails":
  56. ValidateDetails();
  57. break;
  58. }
  59. }
  60. catch (Exception ex)
  61. {
  62. }
  63. }
  64. }
  65. public void populateDdl()
  66. {
  67. LoadReceiverCountry(ref pCountry, "", "SELECT");
  68. _sdd.SetDDL(ref relationship, "EXEC proc_online_dropDownList @flag='dropdownList',@user='" + GetStatic.GetUser() + "',@parentId=2100", "valueId", "detailTitle", "", "Select..");
  69. _sdd.SetDDL(ref purpose, "EXEC proc_online_dropDownList @flag='dropdownList',@user='" + GetStatic.GetUser() + "',@parentId=3800", "valueId", "detailTitle", "8060", "Select..");
  70. }
  71. private void LoadDataFromDdl(string type)
  72. {
  73. var pAgentFv = Request.Form["pAgent"];
  74. var pModeFv = Request.Form["pmode"];
  75. var pCountryFv = Request.Form["pCountry"];
  76. DataTable dt = null;
  77. switch (type)
  78. {
  79. case "pMode":
  80. dt = st.LoadDataFromDdl(GetStatic.GetCountryId(), pCountryFv, pModeFv, GetStatic.GetAgent(), "recModeByCountry", GetStatic.GetUser());
  81. break;
  82. case "agentByPmode":
  83. if (string.IsNullOrWhiteSpace(pModeFv) || string.IsNullOrWhiteSpace(pCountryFv))
  84. {
  85. Response.Write(null);
  86. Response.End();
  87. return;
  88. }
  89. dt = st.LoadDataFromDdl(GetStatic.GetCountryId(), pCountryFv, pModeFv, GetStatic.GetAgent(), "recAgentByRecModeAjaxagent", GetStatic.GetUser());
  90. break;
  91. case "LoadScheme":
  92. dt = st.LoadDataFromDdl(GetStatic.GetCountryId(), pCountryFv, pModeFv, pAgentFv, "schemeBysCountryrAgent", GetStatic.GetUser());
  93. break;
  94. }
  95. Response.ContentType = "text/plain";
  96. var json = _rdao.DataTableToJson(dt);
  97. Response.Write(json);
  98. Response.End();
  99. }
  100. private void LoadReceiverCountry(ref DropDownList ddl, string defaultValue, string label)
  101. {
  102. var sql = "EXEC proc_sendPageLoadData @flag='pCountry',@countryId='" + GetStatic.GetCountryId() + "',@agentid='" + GetStatic.GetAgentId() + "'";
  103. _sdd.SetDDL(ref ddl, sql, "countryId", "countryName", defaultValue, label);
  104. }
  105. private void GetPayoutPartner()
  106. {
  107. string pCountry = Request.Form["pCountry"];
  108. string pMode = Request.Form["pMode"];
  109. //var dt = st.LoadCustomerData(searchType, searchValue, "s", GetStatic.GetCountryId(), GetStatic.GetSettlingAgent());
  110. var dt = st.GetPayoutPartner(GetStatic.GetUser(), pCountry, pMode);
  111. if (dt == null)
  112. {
  113. Response.Write("");
  114. Response.End();
  115. return;
  116. }
  117. Response.ContentType = "text/plain";
  118. string json = DataTableToJson(dt);
  119. Response.Write(json);
  120. Response.End();
  121. }
  122. public static string DataTableToJson(DataTable table)
  123. {
  124. if (table == null)
  125. return "";
  126. var list = new List<Dictionary<string, object>>();
  127. foreach (DataRow row in table.Rows)
  128. {
  129. var dict = new Dictionary<string, object>();
  130. foreach (DataColumn col in table.Columns)
  131. {
  132. dict[col.ColumnName] = string.IsNullOrEmpty(row[col].ToString()) ? "" : row[col];
  133. }
  134. list.Add(dict);
  135. }
  136. var serializer = new JavaScriptSerializer();
  137. string json = serializer.Serialize(list);
  138. return json;
  139. }
  140. public string GetAPIPartnerId()
  141. {
  142. string partnerIds = GetStatic.ReadWebConfig("transfast", "") + "," + GetStatic.ReadWebConfig("jmeNepal", "") + "," + GetStatic.ReadWebConfig("donga", "");
  143. return partnerIds;
  144. }
  145. protected void GetBankBranch()
  146. {
  147. string bank = Request.Form["Bank"];
  148. string Country = Request.Form["Country"];
  149. string searchText = Request.Form["searchText"];
  150. string page = Request.Form["page"];
  151. if (string.IsNullOrWhiteSpace(bank))
  152. {
  153. GetStatic.JsonResponse("", this);
  154. }
  155. BankSearchModel bankSearchModel = new BankSearchModel()
  156. {
  157. SearchType = "",
  158. SearchValue = searchText,
  159. PAgent = bank,
  160. PAgentType = "I",
  161. PCountryName = Country,
  162. PayoutPartner = Request.Form["payoutPartner"],
  163. PaymentMode = Request.Form["PayMode"]
  164. };
  165. IList<BranchModel> bankModelList = st.LoadBranchByAgent(bankSearchModel);
  166. GetStatic.JsonResponse(bankModelList, this);
  167. //JsonSerialize(bankModelList);
  168. }
  169. protected void Calculate()
  170. {
  171. DataTable dt = new DataTable();
  172. ExRateRequest exRate = new ExRateRequest();
  173. ExchangeRateAPIService ExService = new ExchangeRateAPIService();
  174. exRate.RequestedBy = "core";
  175. string a = Request.Form["IsExrateFromPartner"];
  176. exRate.isExRateCalcByPartner = (Request.Form["IsExrateFromPartner"] == "true") ? true : false;
  177. exRate.PCountry = Request.Form["pCountry"];
  178. exRate.pCountryName = Request.Form["pCountrytxt"];
  179. exRate.ServiceType = Request.Form["pMode"];
  180. exRate.PaymentType = Request.Form["pModetxt"];
  181. exRate.PAgent = Request.Form["pAgent"];
  182. var pAgentBranch = Request.Form["pAgentBranch"];
  183. exRate.CAmount = Request.Form["collAmt"];
  184. exRate.PAmount = Request.Form["payAmt"];
  185. exRate.SCurrency = Request.Form["collCurr"];
  186. exRate.PCurrency = Request.Form["payCurr"];
  187. exRate.CustomerId = Request.Form["senderId"];
  188. exRate.SchemeId = Request.Form["schemeCode"];
  189. exRate.ForexSessionId = Request.Form["couponId"];
  190. exRate.IsManualSc = (Request.Form["isManualSc"] == "N" ? false : true);
  191. exRate.ManualSc = Request.Form["sc"];
  192. if (exRate.isExRateCalcByPartner)
  193. {
  194. exRate.SCountry = GetStatic.GetCountryId();
  195. exRate.SSuperAgent = GetStatic.GetSuperAgent();
  196. exRate.SAgent = GetStatic.GetAgent();
  197. exRate.SBranch = GetStatic.GetBranch();
  198. exRate.CollCurrency = Request.Form["collCurr"];
  199. exRate.pCountryCode = Request.Form["PCountryCode"];
  200. exRate.ProviderId = Request.Form["payoutPartner"];
  201. string ProcessId = Guid.NewGuid().ToString().Replace("-", "") + ":transfast:exRate";
  202. exRate.ProcessId = ProcessId.Substring(ProcessId.Length - 40, 40);
  203. JsonResponse res = ExService.GetExchangeRate(exRate);
  204. ExRateResponse _exrate = (ExRateResponse)res.Data;
  205. //dt = st.GetExRateTP(GetStatic.GetUser()
  206. // , GetStatic.GetCountryId()
  207. // , GetStatic.GetSuperAgent()
  208. // , GetStatic.GetAgent()
  209. // , GetStatic.GetBranch()
  210. // , exRate.SCurrency
  211. // , exRate.PCountry
  212. // , exRate.PAgent
  213. // , exRate.PCurrency
  214. // , exRate.ServiceType
  215. // , exRate.CAmount
  216. // , exRate.PAmount
  217. // , exRate.SchemeId
  218. // , exRate.CustomerId
  219. // //, GetStatic.GetSessionId()
  220. // , exRate.ForexSessionId
  221. // , Request.Form["isManualSc"]
  222. // , exRate.ManualSc
  223. // , _exrate.exRate
  224. // , exRate.PCurrency
  225. // );
  226. }
  227. else
  228. {
  229. dt = st.GetExRate(GetStatic.GetUser()
  230. , GetStatic.GetCountryId()
  231. , "393877"
  232. , "394390"
  233. , "394390"
  234. , exRate.SCurrency
  235. , exRate.PCountry
  236. , exRate.PAgent
  237. , exRate.PCurrency
  238. , exRate.ServiceType
  239. , exRate.CAmount
  240. , exRate.PAmount
  241. , exRate.SchemeId
  242. , exRate.CustomerId
  243. //, GetStatic.GetSessionId()
  244. , exRate.ForexSessionId
  245. , "N"
  246. , "N"
  247. );
  248. }
  249. Response.ContentType = "text/plain";
  250. var json = DataTableToJson(dt);
  251. Response.Write(json);
  252. Response.End();
  253. }
  254. protected void Save_Click(object sender, EventArgs e)
  255. {
  256. var idNumber = senderIdNumber.Text;
  257. var receiverFullNameValue = receiverFullName.Text;
  258. var receiveraddressValue = receiveraddress.Text;
  259. var receiverMobileNumberValue = receiverMobileNumber.Text;
  260. var pCountryId = pCountry.SelectedValue;
  261. var pmodeId = hddPmode.Value;
  262. var pagentId = hddPagent.Value;
  263. var branchId = hddpBranch.Value;
  264. var accountnoValue = accountNo.Text;
  265. var cAmt = txtCollAmt.Text;
  266. var tamt = hddTamt.Value;
  267. var serviceCharge = hddServiceCharge.Value;
  268. var purposeOfRemittanceId = purpose.SelectedValue;
  269. var otherPurpose = purposeOther.Text;
  270. var relationShipId = relationship.SelectedValue;
  271. var otherRelation = otherRelationshipTextBox.Text;
  272. var referralNameValue = referralName.Text;
  273. SendTransactionModel sendTxn = new SendTransactionModel()
  274. {
  275. IdNumber = idNumber,
  276. ReceiverFullName = receiverFullNameValue,
  277. Receiveraddress = receiveraddressValue,
  278. ReceiverMobileNumber = receiverMobileNumberValue,
  279. PCountryId = pCountryId,
  280. PmodeId = pmodeId,
  281. PagentId = pagentId,
  282. BranchId = branchId,
  283. AccountNumber = accountnoValue,
  284. CAmt = cAmt,
  285. Tamt = tamt,
  286. ServiceCharge = serviceCharge,
  287. PurposeOfRemittance = purposeOfRemittanceId,
  288. OtherPurposeOfRemittance = otherPurpose,
  289. RelationShip = relationShipId,
  290. OtherRelationShip = otherRelation,
  291. ReferralName = referralNameValue
  292. };
  293. var result = st.SaveSendRequest(GetStatic.GetUser(), sendTxn);
  294. if(result.ErrorCode == "0")
  295. {
  296. if (result.ErrorCode == "0" && !string.IsNullOrEmpty(hddImgURL.Value) && !string.IsNullOrWhiteSpace(hddImgURL.Value))
  297. {
  298. var res = _customerServices.GetCustomerDetailsForFileUpload(result.Extra.Split('|')[0]).Split('|');
  299. var customerId = res[0];
  300. var membershipId = res[1];
  301. var registerDate = res[2];
  302. string signatureName = GetStatic.UploadSignatureImage(hddImgURL.Value, registerDate, membershipId, customerId);
  303. if (signatureName != "1")
  304. {
  305. _customerServices.AddCustomerSignature(customerId, GetStatic.GetUser(), signatureName, "agent-upload-txn", result.Id);
  306. }
  307. }
  308. var url = ("PrintSendMoneyRequestDetails.aspx?customerId=" + result.Extra.Split('|')[1] + "&rowId=" + result.Id);
  309. Response.Redirect(url);
  310. }
  311. else
  312. {
  313. pCountry.SelectedValue = "";
  314. GetStatic.AlertMessage(this.Page, result.Msg);
  315. }
  316. }
  317. private void ValidateDetails()
  318. {
  319. var membershiId = Request.Form["membershipId"].ToString();
  320. var receiverFullName = Request.Form["receiverName"].ToString();
  321. var res = st.ValidateData(GetStatic.GetUser(), membershiId, receiverFullName);
  322. var json = DataTableToJson(res);
  323. Response.ContentType = "text/plain";
  324. Response.Write(json);
  325. Response.End();
  326. }
  327. }
  328. }