File name
Commit message
Commit date
File name
Commit message
Commit date
using ClientLib;
using ClientLib.CommonService2;
using Newtonsoft.Json.Linq;
using PublicLib;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace HANMI_SALE
{
public static class SaleForECount
{
// public static void ECountInterface(OrderManager caller, object obj)
// {
// try
// {
// ConstClass._MAIN.Cursor = Cursors.WaitCursor;
// if (caller.gridControl_Main.DataSource == null || obj == null || !(obj is DataTable))
// {
// throw new Exception("업로드할 정보를 조회 후 다시 시도하십시오.");
// }
// DataTable selData = caller.gridControl_Main.DataSource as DataTable;
// DataRow[] rows = selData.Select("SEL_FIELD = 'Y'");
// if (rows == null || rows.Length < 1)
// {
// throw new Exception("업로드할 정보를 조회 후 선택을 하십시오.");
// }
// caller.progressBarControl_Main.Properties.Minimum = 0;
// caller.progressBarControl_Main.Properties.Maximum = 6;
// caller.progressBarControl_Det.Properties.Minimum = 0;
// caller.progressBarControl_Det.Properties.Maximum = 0;
// caller.progressBarControl_Det.Visible = false;
// caller.panelControl_Progress.Visible = true;
// caller.panelControl_Progress.BringToFront();
// caller.labelControl_Msg.Text = "데이터 획득중...";
// caller.progressBarControl_Main.Position = 1;
// Application.DoEvents();
// DataRow[] rs;
// DataTable aData = obj as DataTable;
// int ii = 0;
// while (ii < aData.Rows.Count)
// {
// rs = selData.Select("SEL_FIELD = 'Y' and ORDER_NO = '" + UtilClass.toStr(aData.Rows[ii]["ORDER_NO"]) + "'");
// if (rs == null || rs.Length < 1)
// {
// aData.Rows.RemoveAt(ii);
// }
// else
// {
// ii++;
// }
// }
// //string nos = "";
// //for (int i = 0; i < aData.Rows.Count; i++)
// //{
// // if (aData.Rows[i].RowState == DataRowState.Deleted)
// // {
// // continue;
// // }
// // if (UtilClass.isNull(nos))
// // {
// // nos = "'" + UtilClass.toStr(aData.Rows[i]["ORDER_NO"]) + "'";
// // }
// // else
// // {
// // nos += ",'" + UtilClass.toStr(aData.Rows[i]["ORDER_NO"]) + "'";
// // }
// //}
// //SerializedSqlParam[] aParam = new SerializedSqlParam[]
// //{
// // ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD),
// // ClientClass.CreateSqlParameter("NOS", SqlDbType.NVarChar, nos)
// //};
// //ResultData resultData = ClientClass.GetData("GetSaleDataForEcount", aParam);
// //if (resultData.isError)
// //{
// // throw new Exception(resultData.ResultValue);
// //}
// //DataTable bData = resultData.TableData;
// string comp_code, api_key, user_id, user_pwd, session_id;
// DataView view = new DataView(ConstClass._DATA);
// view.RowFilter = "CATE_CD = 'S' and GRP_CD = 'S02' and NO_CD = '01'";
// if (view.Count < 1)
// {
// throw new Exception("ECOUNT 연동을 위한 회사코드가 없습니다. 개발사로 문의바랍니다.");
// }
// comp_code = UtilClass.toStr(view[0]["NO_CD_NM"]);
// view.RowFilter = "CATE_CD = 'S' and GRP_CD = 'S02' and NO_CD = '02'";
// if (view.Count < 1)
// {
// throw new Exception("ECOUNT 연동을 위한 API KEY가 없습니다. 개발사로 문의바랍니다.");
// }
// api_key = UtilClass.toStr(view[0]["NO_CD_NM"]);
// view.RowFilter = "CATE_CD = 'S' and GRP_CD = 'S02' and NO_CD = '03'";
// if (view.Count < 1)
// {
// throw new Exception("ECOUNT 연동을 위한 사용자 ID가 없습니다. 개발사로 문의바랍니다.");
// }
// user_id = UtilClass.toStr(view[0]["NO_CD_NM"]);
// view.RowFilter = "CATE_CD = 'S' and GRP_CD = 'S02' and NO_CD = '04'";
// if (view.Count < 1)
// {
// throw new Exception("ECOUNT 연동을 위한 사용자 비밀번호가 없습니다. 개발사로 문의바랍니다.");
// }
// user_pwd = UtilClass.toStr(view[0]["NO_CD_NM"]);
// HttpWebRequest request;
// HttpWebResponse response;
// JObject jObject, subObject;
// string urlStr, readStr, status, zone;
// ///////////////// 존코드 획득
// caller.labelControl_Msg.Text = "로그인 정보 획득중...";
// caller.progressBarControl_Main.Position = 2;
// Application.DoEvents();
// urlStr = "https://oapi.ecounterp.com/OAPI/V1/Zone";
// request = (HttpWebRequest)WebRequest.Create(urlStr);
// request.ContentType = "application/json";
// request.Method = "POST";
// using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
// {
// writer.Write("{ \"COM_CODE\" : \"" + comp_code + "\" }");
// writer.Flush();
// writer.Close();
// }
// readStr = "";
// response = (HttpWebResponse)request.GetResponse();
// using (StreamReader reader = new StreamReader(response.GetResponseStream()))
// {
// readStr = reader.ReadToEnd();
// }
// jObject = JObject.Parse(readStr);
// status = UtilClass.toStr(jObject["Status"]);
// if (UtilClass.isEqual(status, "500"))
// {
// throw new Exception("존 정보가 없습니다. ECOUNT에 문의하십시오.");
// }
// else if (!UtilClass.isEqual(status, "200"))
// {
// throw new Exception("존 정보 획득에 실패하였습니다. ECOUNT에 문의하십시오.");
// }
// subObject = jObject["Data"] as JObject;
// zone = UtilClass.toStr(subObject["ZONE"]);
// ///////////////// 로그인
// caller.labelControl_Msg.Text = "로그인 중...";
// caller.progressBarControl_Main.Position = 3;
// Application.DoEvents();
// urlStr = "https://oapi" + zone + ".ecounterp.com/OAPI/V1/OAPILogin";
// request = (HttpWebRequest)WebRequest.Create(urlStr);
// request.ContentType = "application/json";
// request.Method = "POST";
// using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
// {
// writer.Write("{ \"COM_CODE\" : \"" + comp_code + "\" , \"USER_ID\" : \"" + user_id + "\" , " +
// "\"API_CERT_KEY\" : \"" + api_key + "\" , \"LAN_TYPE\" : \"ko-KR\" , " +
// "\"ZONE\" : \"" + zone + "\" }");
// writer.Flush();
// writer.Close();
// }
// readStr = "";
// response = (HttpWebResponse)request.GetResponse();
// using (StreamReader reader = new StreamReader(response.GetResponseStream()))
// {
// readStr = reader.ReadToEnd();
// }
// jObject = JObject.Parse(readStr);
// status = UtilClass.toStr(jObject["Status"]);
// if (UtilClass.isEqual(status, "500"))
// {
// JObject eObject = jObject["Error"] as JObject;
// throw new Exception(UtilClass.toStr(eObject["Message"]));
// }
// else if (!UtilClass.isEqual(status, "200"))
// {
// throw new Exception("로그인 경로가 잘못되어 실패하였습니다. ECOUNT에 문의하십시오.");
// }
// subObject = (jObject["Data"] as JObject)["Datas"] as JObject;
// session_id = UtilClass.toStr(subObject["SESSION_ID"]);
// ///////////////// 판매 업로드
// ///////////////// 출하창고는 향후 다시 결정하기 전까지 임의로 100 : 한미칼라 본사 1층 을 고정입력
// caller.labelControl_Msg.Text = "업로드 자료 생성중...";
// caller.progressBarControl_Main.Position = 4;
// caller.progressBarControl_Det.Properties.Minimum = 0;
// caller.progressBarControl_Det.Properties.Maximum = rows.Length;
// caller.progressBarControl_Det.Position = 0;
// caller.progressBarControl_Det.Visible = true;
// Application.DoEvents();
// int no = 0, vat;
// JArray saleList = new JArray(), saleDetails;
// JObject uploadObject, dataObject, saleMaster, detail;
// uploadObject = new JObject();
// DataTable srcData = new DataTable();
// srcData.Columns.Add("ORDER_NO", typeof(string));
// srcData.Columns.Add("ECOUNT_NO", typeof(string));
// srcData.TableName = "ADATA";
// DataRow srcRow;
// //DataView bView = new DataView(bData);
// for (int i = 0; i < aData.Rows.Count; i++)
// {
// if (aData.Rows[i].RowState == DataRowState.Deleted)
// {
// continue;
// }
// if (UtilClass.isNull(aData.Rows[i]["ORDER_DT"]))
// {
// continue;
// }
// dataObject = new JObject();
// no++;
// saleMaster = new JObject();
// saleMaster.Add("NO", no.ToString()); // 일련번호
// saleMaster.Add("IO_DATE", UtilClass.toStr(aData.Rows[i]["ORDER_DT"]).Replace(".", "")); // 판매일자
// saleMaster.Add("CUST", UtilClass.toStr(aData.Rows[i]["CUST_CD"])); // 거래처코드
// saleMaster.Add("CUST_DES", UtilClass.toStr(aData.Rows[i]["CUST_NM"])); // 거래처명
// saleMaster.Add("WH_CD", "100"); // 출하창고
// vat = UtilClass.toInt(aData.Rows[i]["VAT_MY"]); // 부가세
// saleMaster.Add("IO_TYPE", vat > 0 ? "11" : "12");
// saleMaster.Add("P_DES1", ""); // 추가항목1(필수입력)
// //bView.RowFilter = "ORDER_NO = '" + UtilClass.toStr(aData.Rows[i]["ORDER_NO"]) + "'";
// srcRow = srcData.NewRow();
// srcRow["ORDER_NO"] = aData.Rows[i]["ORDER_NO"];
// srcRow["ECOUNT_NO"] = UtilClass.toStr(aData.Rows[i]["ORDER_DT"]).Replace(".", "") + "-" + no;
// srcData.Rows.Add(srcRow);
// saleDetails = new JArray();
// for (int j = 0; j < rows.Length; j++)
// {
// caller.progressBarControl_Det.Position++;
// Application.DoEvents();
// detail = new JObject();
// detail.Add("PROD_CD", UtilClass.toStr(rows[j]["ITEM_CD"]));
// detail.Add("PROD_DES", UtilClass.toStr(rows[j]["ITEM_NM"]));
// detail.Add("SIZE_DES", UtilClass.toStr(rows[j]["ORDER_NORM"]));
// detail.Add("N_QTY", UtilClass.toInt(rows[j]["FIN_QTY"]));
// detail.Add("N_PRICE", UtilClass.toInt(rows[j]["CURR_UNIT_MY"]));
// detail.Add("N_SUPPLY_AMT", UtilClass.toInt(rows[j]["CURR_MY"]));
// detail.Add("N_VAT_AMT", UtilClass.toInt(rows[j]["VAT_MY"]));
// detail.Add("REMARKS", UtilClass.toStr(rows[j]["LN_RMK"]));
// detail.Add("REQ_DATE", UtilClass.toStr(aData.Rows[i]["ORDER_DT"]).Replace(".", ""));
// detail.Add("N_REQ_NO", UtilClass.toInt(aData.Rows[i]["ORDER_SEQ"]));
// saleDetails.Add(detail);
// }
// dataObject.Add("SaleMaster", saleMaster);
// dataObject.Add("SaleDetails", saleDetails);
// saleList.Add(dataObject);
// }
// if (no < 1)
// {
// throw new Exception("ECOUNT에 업로드가 가능한 정보가 없습니다.");
// }
// uploadObject.Add("SaleList", saleList);
// caller.labelControl_Msg.Text = "자료 업로드 중...";
// caller.progressBarControl_Main.Position = 5;
// Application.DoEvents();
// urlStr = "https://oapi" + zone + ".ecounterp.com/OAPI/V1/Inventory/SaveSale?SESSION_ID=" + session_id;
// request = (HttpWebRequest)WebRequest.Create(urlStr);
// request.ContentType = "application/json";
// request.Method = "POST";
// using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
// {
// writer.Write(uploadObject.ToString());
// writer.Flush();
// writer.Close();
// }
// readStr = "";
// response = (HttpWebResponse)request.GetResponse();
// using (StreamReader reader = new StreamReader(response.GetResponseStream()))
// {
// readStr = reader.ReadToEnd();
// }
// jObject = JObject.Parse(readStr);
// status = UtilClass.toStr(jObject["Status"]);
// if (UtilClass.isEqual(status, "500"))
// {
// JObject eObject = jObject["Error"] as JObject;
// string errStr = UtilClass.toStr(eObject["Message"]);
// throw new Exception("다음과 같은 이유로 ECOUNT에 업로드를 하지 못했습니다.\n\n" + errStr);
// }
// else if (!UtilClass.isEqual(status, "200"))
// {
// throw new Exception("업로드에 실패하였습니다. 개발사에 문의하십시오.");
// }
// caller.labelControl_Msg.Text = "시스템에 결과 반영중...";
// caller.progressBarControl_Main.Position = 6;
// Application.DoEvents();
// ResultData data1 = new ResultData();
// data1.TableData = srcData;
// ResultData[] dataList = new ResultData[] { data1 };
// SerializedSqlParam[] bParam = new SerializedSqlParam[]
// {
// ClientClass.CreateSqlParameter("COMP_CD", SqlDbType.NVarChar, ConstClass._COMP_CD)
// };
// ResultData ecountResult = ClientClass.SetTableData("SaveECountResult", dataList, bParam);
// if (ecountResult.isError)
// {
// MessageBox.Show("ECOUNT에 자료업로드에 성공하였지만, 다음과 같은 이유로 시스템에 반영을 하지 못했습니다.\n\n" + ecountResult.ResultValue);
// }
// caller.labelControl_Msg.Text = "";
// Application.DoEvents();
// ConstClass._MAIN.Cursor = Cursors.Arrow;
// MessageBox.Show("자료 업로드 완료");
// caller.panelControl_Progress.Visible = false;
// caller.searchProc();
// }
// catch (Exception ex)
// {
// ConstClass._MAIN.Cursor = Cursors.Arrow;
// MessageBox.Show(ex.Message);
// caller.panelControl_Progress.Visible = false;
// }
// }
}
}