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

230 lines
7.8 KiB
C#

using DevComponents.DotNetBar.SuperGrid;
using NLog;
using POSV.Component;
using POSV.Entity;
using POSV.HttpApi;
using POSV.HttpResponse;
using POSV.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using OpenApiUtils = POSV.Utils.OpenApiUtils;
namespace POSV.WaiMai
{
public partial class VisitorUpdateForm : BusinessForm
{
public VisitorUpdateForm()
{
InitializeComponent();
DefaultGridStyle.setDefaultGridStyle(this.deliveryGrid);
}
List<VisitorAddress> visitorAddressList = null;
private void VisitorUpdateForm_Load(object sender, EventArgs e)
{
visitorAddressList = new List<VisitorAddress>();
using (var db = Global.Instance.OpenDataBase)
{
visitorAddressList = db.Query<VisitorAddress>().OrderByDescending(x => x.CreateDate).ToList();
}
this.deliveryGrid.PrimaryGrid.DataSource = visitorAddressList;
}
private void buttonX1_Click(object sender, EventArgs e)
{
var panel = deliveryGrid.PrimaryGrid;
var row = panel.ActiveRow as GridRow;
Visitor visitor = null;
using (var db = Global.Instance.OpenDataBase)
{
visitor = db.FirstOrDefault<Visitor>("select * from pos_visitor where id = '" + row.Cells[0].Value + "'");
}
if (visitor != null)
{
VisitorEditForm editForm = new VisitorEditForm();
editForm._visitor = visitor;
editForm._visitorAddress = visitorAddressList.FirstOrDefault(f => f.VisitorId.Equals(row.Cells[0].Value));
editForm.ShowDialog();
if (editForm.Save)
{
try
{
using (var db = Global.Instance.OpenDataBase)
{
db.Update(editForm._visitorAddress);
db.Update(editForm._visitor);
}
}
catch (Exception ex)
{
this.ShowToastNotify(this, "保存失败," + ex.Message);
return;
}
visitorAddressList.Remove(visitorAddressList.FirstOrDefault(f => f.Id.Equals(editForm._visitorAddress.Id)));
visitorAddressList.Add(editForm._visitorAddress);
editForm._visitor.Address.Add(editForm._visitorAddress);
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
parameters.Add("method", "visitor.update");
parameters.Add("id", visitor.Id);
parameters.Add("storeId", Global.Instance.Authc.StoreId);
parameters.Add("jsonString", JsonUtils.Serialize(editForm._visitor));
var ignore = new List<string>();
ignore.Add("jsonString");
parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters, ignore));
string response = HttpClientUtils.PostAsync(api, api.Url, parameters);
if (Constant.IsSuccessful(response))
{
var status = JsonUtils.Deserialize<EntityResponse<UploadVisitorResult>>(response);
if (status.Status == 1)
{
LOGGER.Info(status.Message);
this.ShowToastNotify(this, "更新成功");
return;
}
else
{
string message = string.Format("{1}", status.ErrCode, status.Message);
this.ShowToastNotify(this, "更新失败" + message);
return;
}
}
else
{
var status = JsonUtils.Deserialize<EntityResponse<UploadVisitorResult>>(response);
LOGGER.Info(response);
this.ShowToastNotify(this, "更新失败" + status.ErrMessage);
return;
}
}
}
}
private void buttonX2_Click(object sender, EventArgs e)
{
var panel = deliveryGrid.PrimaryGrid;
var row = panel.ActiveRow as GridRow;
Visitor visitor = null;
using (var db = Global.Instance.OpenDataBase)
{
var _data = visitorAddressList.FirstOrDefault(f => f.VisitorId.Equals(row.Cells[0].Value));
if (_data == null)
{
this.ShowToastNotify(this, "删除失败" +"数据异常");
return;
}
visitor = db.FirstOrDefault<Visitor>("select * from pos_visitor where id = '" + _data.VisitorId + "'");
}
OpenApi api = OpenApiUtils.Instance.NextApi(ApiType.Business);
SortedList<string, string> parameters = OpenApiUtils.Instance.NewParameters(api);
parameters.Add("method", "visitor.delete");
parameters.Add("storeId", Global.Instance.Authc.StoreId);
parameters.Add("id", visitor.Id);
var ignore = new List<string>();
ignore.Add("jsonString");
parameters.Add("sign", OpenApiUtils.Instance.Sign(api, parameters, ignore));
string response = HttpClientUtils.PostAsync(api, api.Url, parameters);
if (Constant.IsSuccessful(response))
{
var status = JsonUtils.Deserialize<EntityResponse<UploadVisitorResult>>(response);
if (status.Status == 1)
{
try
{
using (var db = Global.Instance.OpenDataBase)
{
db.Execute("delete from pos_visitor where id = '" + row.Cells[0].Value + "'");
db.Execute("delete from pos_visitor_address where VisitorId = '" + row.Cells[0].Value + "'");
}
}
catch (Exception ex)
{
this.ShowToastNotify(this, "删除失败"+ex.Message);
return;
}
VisitorUpdateForm_Load(null,null);
LOGGER.Info(status.Message);
this.ShowToastNotify(this, "删除成功");
return;
}
else
{
string message = string.Format("{1}", status.ErrCode, status.Message);
this.ShowToastNotify(this, "删除失败" + message);
return;
}
}
else
{
var status = JsonUtils.Deserialize<EntityResponse<UploadVisitorResult>>(response);
LOGGER.Info(response);
this.ShowToastNotify(this, "更新失败" + status.ErrMessage);
return;
}
}
private void buttonX4_Click(object sender, EventArgs e)
{
if (this.Owner !=null)
{
this.Owner.Close();
}
this.Close();
}
private void controlBox_CloseClick(object sender, EventArgs e)
{
if (this.Owner != null)
{
this.Owner.Close();
}
this.Close();
}
}
}