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.
312 lines
15 KiB
312 lines
15 KiB
using Swift.DAL.OnlineAgent;
|
|
using Swift.web.Library;
|
|
using System;
|
|
using System.Drawing;
|
|
using System.Drawing.Imaging;
|
|
using System.IO;
|
|
using System.Net;
|
|
using System.Text.RegularExpressions;
|
|
using System.Web;
|
|
|
|
namespace Swift.web.AgentNew.Customer
|
|
{
|
|
public partial class AddCustomer : System.Web.UI.Page
|
|
{
|
|
private readonly RemittanceLibrary _sl = new RemittanceLibrary();
|
|
private readonly OnlineCustomerDao _cd = new OnlineCustomerDao();
|
|
private const string ViewFunctionId = "20202000";
|
|
private const string AddFunctionId = "20202010";
|
|
private const string SignatureFunctionId = "20202020";
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
signatureDiv.Visible = _sl.HasRight(SignatureFunctionId);
|
|
isDisplaySignature.Value = _sl.HasRight(SignatureFunctionId) ? "true" : "false";
|
|
_sl.CheckSession();
|
|
GetStatic.PrintMessage(this);
|
|
var MethodName = Request.Form["MethodName"];
|
|
if (!IsPostBack)
|
|
{
|
|
Authenticate();
|
|
PopulateDdl();
|
|
if (MethodName == "GetAddressDetailsByZipCode")
|
|
{
|
|
GetAddressDetailsByZipCode();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void Authenticate()
|
|
{
|
|
_sl.CheckAuthentication(ViewFunctionId);
|
|
|
|
string eId = GetStatic.ReadQueryString("customerId", "");
|
|
|
|
var hasRight = false;
|
|
hasRight = _sl.HasRight(AddFunctionId);
|
|
|
|
register.Enabled = hasRight;
|
|
register.Visible = hasRight;
|
|
}
|
|
|
|
public string GetFunctionIdByUserType(string functionIdAgent, string functionIdAdmin)
|
|
{
|
|
return (GetStatic.GetUserType() == "HO") ? functionIdAdmin : functionIdAgent;
|
|
}
|
|
|
|
private void PopulateDdl()
|
|
{
|
|
_sl.SetDDL(ref genderList, "EXEC proc_online_dropDownList @flag='GenderList',@user='" + GetStatic.GetUser() + "'", "valueId", "detailTitle", "", "Select..");
|
|
_sl.SetDDL(ref countryList, "EXEC proc_online_dropDownList @flag='onlineCountrylist',@user='" + GetStatic.GetUser() + "'", "countryId", "countryName", "", "");
|
|
_sl.SetDDL(ref nativeCountry, "EXEC proc_online_dropDownList @flag='allCountrylist',@user='" + GetStatic.GetUser() + "'", "countryId", "countryName", "", "Select..");
|
|
_sl.SetDDL(ref occupation, "EXEC proc_online_dropDownList @flag='occupationList',@user='" + GetStatic.GetUser() + "'", "valueId", "detailTitle", "", "Select..");
|
|
_sl.SetDDL(ref idType, "EXEC proc_online_dropDownList @flag='IdTypeWithDetails',@user='" + GetStatic.GetUser() + "',@countryId='" + countryList.SelectedValue + "'", "valueId", "detailTitle", "", "Select..");
|
|
_sl.SetDDL(ref ddlCustomerType, "EXEC proc_online_dropDownList @flag='dropdownList',@user='" + GetStatic.GetUser() + "',@parentId=4700", "valueId", "detailTitle", ddlCustomerType.SelectedValue, "");
|
|
_sl.SetDDL(ref ddlOrganizationType, "EXEC proc_online_dropDownList @flag='dropdownList',@user='" + GetStatic.GetUser() + "',@parentId=7002", "valueId", "detailTitle", "", "Select..");
|
|
_sl.SetDDL(ref ddlnatureOfCompany, "EXEC proc_online_dropDownList @flag='dropdownList',@user='" + GetStatic.GetUser() + "',@parentId=7003", "valueId", "detailTitle", "", "Select..");
|
|
_sl.SetDDL(ref ddSourceOfFound, "EXEC proc_online_dropDownList @flag='dropdownList',@user='" + GetStatic.GetUser() + "',@parentId=3900", "valueId", "detailTitle", "", "Select..");
|
|
_sl.SetDDL(ref ddlEmployeeBusType, "EXEC proc_online_dropDownList @flag='dropdownList',@user='" + GetStatic.GetUser() + "',@parentId=7004", "valueId", "detailTitle", "", "");
|
|
_sl.SetDDL(ref ddlVisaStatus, "EXEC proc_online_dropDownList @flag='dropdownList',@user='" + GetStatic.GetUser() + "',@parentId=7005", "valueId", "detailTitle", "", "Select..");
|
|
_sl.SetDDL(ref ddlPosition, "EXEC proc_online_dropDownList @flag='dropdownList',@user='" + GetStatic.GetUser() + "',@parentId=7006", "valueId", "detailTitle", "", "Select..");
|
|
_sl.SetDDL(ref ddlState, "EXEC proc_online_dropDownList @flag='state',@countryId='" + countryList.SelectedValue + "'", "stateId", "stateName", "", "Select..");
|
|
}
|
|
|
|
private void GetAddressDetailsByZipCode()
|
|
{
|
|
string zipCode = Request.Form["zipCode"];
|
|
if (!Regex.Match(zipCode, @"^\d{7}?$").Success)
|
|
{
|
|
GetStatic.JsonResponse(false, Page);
|
|
};
|
|
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://yubin.senmon.net/en/" + zipCode + ".html");
|
|
myRequest.Method = WebRequestMethods.Http.Get;
|
|
WebResponse response = myRequest.GetResponse();
|
|
string json = null;
|
|
using (Stream stream = response.GetResponseStream())
|
|
{
|
|
json = (new StreamReader(stream)).ReadToEnd();
|
|
}
|
|
int length = (json.Length) / 4;
|
|
int indexOfTable = json.IndexOf("<table class=\"info\">");
|
|
int indexOfTableEnd = json.IndexOf("<iframe");
|
|
if (indexOfTable != -1)
|
|
{
|
|
length = indexOfTableEnd - indexOfTable;
|
|
}
|
|
json = json.Substring(indexOfTable, length);
|
|
json = json.Replace("class=\"info\"", "Id=\"info\"");
|
|
GetStatic.JsonResponse(json, Page);
|
|
}
|
|
|
|
protected void register_Click(object sender, EventArgs e)
|
|
{
|
|
string eId = GetStatic.ReadQueryString("customerId", "");
|
|
|
|
if (!_sl.HasRight(AddFunctionId))
|
|
{
|
|
GetStatic.AlertMessage(this, "You are not authorized to Add Customer!");
|
|
return;
|
|
}
|
|
if (_sl.HasRight(SignatureFunctionId) && (string.IsNullOrEmpty(customerPassword.Text) || string.IsNullOrWhiteSpace(customerPassword.Text)) && (string.IsNullOrEmpty(hddImgURL.Value) || string.IsNullOrWhiteSpace(hddImgURL.Value)))
|
|
{
|
|
GetStatic.AlertMessage(this, "Customer signature or customer password is required!");
|
|
return;
|
|
}
|
|
OnlineCustomerModel customerModel = new OnlineCustomerModel()
|
|
{
|
|
flag = "customer-register-core",
|
|
firstName = firstName.Text,
|
|
middleName = middleName.Text,
|
|
lastName1 = lastName.Text,
|
|
gender = genderList.SelectedValue,
|
|
customerType = hdnCustomerType.Value,
|
|
country = countryList.Text,
|
|
zipCode = zipCode.Text,
|
|
street = txtStreet.Text,
|
|
city = city.Text,
|
|
state = ddlState.Text,
|
|
senderCityjapan = txtsenderCityjapan.Text,
|
|
email = email.Text,
|
|
streetJapanese = txtstreetJapanese.Text,
|
|
homePhone = phoneNumber.Text,
|
|
mobile = mobile.Text,
|
|
visaStatus = ddlVisaStatus.SelectedValue,
|
|
employeeBusinessType = ddlEmployeeBusType.SelectedValue,
|
|
nativeCountry = nativeCountry.SelectedValue,
|
|
dob = dob.Text,
|
|
ssnNo = txtSSnNo.Text,
|
|
sourceOfFound = ddSourceOfFound.SelectedValue,
|
|
occupation = occupation.Text,
|
|
telNo = phoneNumber.Text,
|
|
ipAddress = GetStatic.GetIp(),
|
|
createdBy = GetStatic.GetUser(),
|
|
idNumber = verificationTypeNo.Text,
|
|
idIssueDate = IssueDate.Text,
|
|
idExpiryDate = ExpireDate.Text,
|
|
idType = idType.Text.Split('|')[0].ToString(),
|
|
remitanceAllowed = (rbRemitanceAllowed.SelectedValue == "Enabled" ? true : false),
|
|
onlineUser = (rbOnlineLogin.SelectedValue == "Enabled" ? true : false),
|
|
mobileUser = (rbMobileLogin.SelectedValue == "Enabled" ? true : false),
|
|
remarks = txtRemarks.Text,
|
|
registrationNo = txtRegistrationNo.Text,
|
|
natureOfCompany = ddlnatureOfCompany.Text,
|
|
organizationType = ddlOrganizationType.SelectedValue,
|
|
dateOfIncorporation = txtDateOfIncorporation.Text,
|
|
position = ddlPosition.SelectedValue,
|
|
nameofAuthoPerson = txtNameofAuthoPerson.Text,
|
|
nameofEmployeer = txtNameofEmployeer.Text,
|
|
companyName = txtCompanyName.Text,
|
|
MonthlyIncome = ddlSalary.SelectedValue,
|
|
customerPassword = customerPassword.Text
|
|
};
|
|
|
|
if (hdnCustomerId.Value != "")
|
|
{
|
|
customerModel.customerId = hdnCustomerId.Value;
|
|
customerModel.flag = "customer-update-new";
|
|
}
|
|
|
|
var dbResult = _cd.RegisterCustomerNew(customerModel);
|
|
GetStatic.SetMessage(dbResult.ErrorCode, dbResult.Msg);
|
|
if (dbResult.ErrorCode == "0")
|
|
{
|
|
var customerDetails = _cd.GetRequiredCustomerDetails(dbResult.Id, GetStatic.GetUser());
|
|
string membershipId = Convert.ToString(customerDetails["membershipId"]);
|
|
string registrationDate = Convert.ToString(customerDetails["createdDate"]);
|
|
var verificationCode = dbResult.Id;
|
|
var customerId = dbResult.Id;
|
|
var fileCollection = Request.Files;
|
|
string customerSignature = hddImgURL.Value;
|
|
int ErrorCode = 0;
|
|
if (!string.IsNullOrEmpty(customerSignature) && (dbResult.ErrorCode == "0" || dbResult.ErrorCode == "100" || dbResult.ErrorCode == "101"))
|
|
{
|
|
UploadSignatureImage(customerSignature, registrationDate, membershipId, customerId, out ErrorCode);
|
|
if (ErrorCode == 0)
|
|
{
|
|
_cd.AddCustomerSignature(customerId, GetStatic.GetUser(), customerId + "_signature.png");
|
|
}
|
|
}
|
|
for (int i = 0; i < fileCollection.AllKeys.Length; i++)
|
|
{
|
|
HttpPostedFile file = fileCollection[i];
|
|
if (file != null)
|
|
{
|
|
string documentTypeName = "";
|
|
string documentTypeValue = "";
|
|
string fileType = "";
|
|
if (i == 0)
|
|
{
|
|
documentTypeName = "Alien Registration Card(Front)";
|
|
documentTypeValue = "11054";
|
|
}
|
|
else
|
|
{
|
|
documentTypeName = "Alien Registration Card(Back)";
|
|
documentTypeValue = "11055";
|
|
}
|
|
var filename = SaveDocument(file, customerId, membershipId, documentTypeName, registrationDate, out fileType, out ErrorCode);
|
|
if (ErrorCode == 0)
|
|
{
|
|
dbResult = _cd.UpdateCustomerDocument("", customerId, filename, "", fileType, documentTypeValue, GetStatic.GetUser());
|
|
}
|
|
else
|
|
{
|
|
dbResult = new DAL.SwiftDAL.DbResult
|
|
{
|
|
Msg = filename,
|
|
ErrorCode = "1",
|
|
};
|
|
}
|
|
}
|
|
}
|
|
Response.Redirect("AddCustomer.aspx");
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (hdnCustomerType.Value == "4701")
|
|
{
|
|
ddlCustomerType.SelectedValue = hdnCustomerType.Value;
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
|
|
private string SaveDocument(HttpPostedFile doc, string customerId, string membershipId, string documentName, string registerDate, out string fileType, out int ErrorCode)
|
|
{
|
|
var maxFileSize = GetStatic.ReadWebConfig("csvFileSize", "2097152");
|
|
fileType = "";
|
|
ErrorCode = 0;
|
|
string fName = "";
|
|
try
|
|
{
|
|
fileType = doc.ContentType;
|
|
if (false)
|
|
//if (doc.ContentLength > Convert.ToDouble(maxFileSize))
|
|
{
|
|
fName = "File size is too large";
|
|
ErrorCode = 1;
|
|
}
|
|
else
|
|
{
|
|
//generate filename
|
|
string fileExtension = new FileInfo(doc.FileName).Extension;
|
|
string fileName = customerId + "_" + documentName + "_" + DateTime.Now.Hour.ToString() + DateTime.Now.Millisecond.ToString() + "_" + registerDate.Replace("-", "_") + fileExtension;
|
|
fName = fileName;
|
|
|
|
string tempFilePath = GetStatic.GetCustomerFilePath() + "CustomerDocument\\TempFiles\\";
|
|
|
|
//save file
|
|
string path = GetStatic.GetCustomerFilePath() + "CustomerDocument\\" + registerDate.Replace("-", "\\") + "\\" + membershipId;
|
|
if (!Directory.Exists(tempFilePath))
|
|
Directory.CreateDirectory(tempFilePath);
|
|
doc.SaveAs(tempFilePath + fileName);
|
|
if (!Directory.Exists(path))
|
|
Directory.CreateDirectory(path);
|
|
//reduce file size
|
|
using (Bitmap bitmapObj = new Bitmap(tempFilePath + fileName))
|
|
{
|
|
var fileProp = System.Drawing.Image.FromFile(tempFilePath + fileName);
|
|
Bitmap reduceBitmapImg = new Bitmap(bitmapObj, fileProp.Width / 3, fileProp.Height / 3);
|
|
reduceBitmapImg.Save(path + "/" + fileName, ImageFormat.Jpeg);
|
|
fileProp.Dispose();
|
|
}
|
|
//delete file
|
|
File.Delete(tempFilePath + fileName);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
fName = ex.Message;
|
|
ErrorCode = 1;
|
|
}
|
|
return fName;
|
|
}
|
|
|
|
public void UploadSignatureImage(string imageData, string registerDate, string membershipId, string customerId, out int errorCode)
|
|
{
|
|
try
|
|
{
|
|
errorCode = 0;
|
|
string path = GetStatic.ReadWebConfig("customerDocPath", "") + "CustomerDocument\\" + registerDate.Replace("-", "\\") + "\\" + membershipId;
|
|
if (!Directory.Exists(path))
|
|
Directory.CreateDirectory(path);
|
|
|
|
string fileName = path + "\\" + customerId + "_signature" + ".png";
|
|
using (FileStream fs = new FileStream(fileName, FileMode.Create))
|
|
{
|
|
using (BinaryWriter bw = new BinaryWriter(fs))
|
|
{
|
|
byte[] data = Convert.FromBase64String(imageData);
|
|
bw.Write(data);
|
|
bw.Close();
|
|
}
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
errorCode = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|