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.
460 lines
24 KiB
460 lines
24 KiB
4 years ago
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Data.Entity.Migrations;
|
||
|
using System.Linq;
|
||
|
using CK.SCP.Models;
|
||
|
using CK.SCP.Models.Enums;
|
||
|
using CK.SCP.Models.ScpEntity;
|
||
|
using CK.SCP.Models.UniApiEntity;
|
||
|
using CK.SCP.Utils;
|
||
|
using CK.SCP.Controller;
|
||
|
|
||
|
namespace CK.SCP.UniApi.Controller
|
||
|
{
|
||
|
public static class OdbcApiQadController
|
||
|
{
|
||
|
|
||
|
public static void GetNewCtrlList()
|
||
|
{
|
||
|
UniApiEntities idb = EntitiesFactory.CreateUniApiInstance();
|
||
|
idb.Database.CommandTimeout = 60 * 20;
|
||
|
var tableNameList = EnumHelper.EnumToList<QadTableName>();
|
||
|
// var qadCtrlList = idb.xxqad_ctrl.Where(p => p.xxqad_domain == ScpCache.Config.QAD�� && p.xxqad_scm == "0").ToList();
|
||
|
var qadCtrlList = idb.xxqad_ctrl.Where(p => p.xxqad_scm == "0").ToList();
|
||
|
ScpEntities scpdb = EntitiesFactory.CreateScpInstance();
|
||
|
//foreach (V_TB_PO_DETAIL _detail in p_list)
|
||
|
//{
|
||
|
// var _ask = db.TB_ASK_DETAIL.Where(p => p.PoBillNum == _detail.PoBillNum && p.IsDeleted == false).GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }).Select(p => new { AskSum = p.Sum(itm => itm.AskQty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode });
|
||
|
|
||
|
// var rec = db.TB_RECEIVE_DETAIL.Where(p => p.PoBillNum == _detail.PoBillNum && p.IsDeleted == false && p.State == (int)ReceiveState.Check && p.BillType == 0)
|
||
|
// .GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }).Select(p => new { ReceiveSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode });
|
||
|
|
||
|
// var reject = db.TB_RECEIVE_DETAIL.Where(p => p.PoBillNum == _detail.PoBillNum && p.IsDeleted == false && p.State == (int)RejectState.Check && p.BillType == 1).GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }).Select(p => new { RejectSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode });
|
||
|
|
||
|
// var asn = db.TB_ASN_DETAIL.Where(p => p.PoBillNum == _detail.PoBillNum && p.IsDeleted == false && p.State == (int)AsnState.Ship)
|
||
|
// .GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode })
|
||
|
// .Select(p => new { AsSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode });
|
||
|
|
||
|
// var arrive = db.TB_ARRIVE_DETAIL.Where(p => p.PoBillNum == _detail.PoBillNum && p.IsDeleted == false && p.State == (int)ArriveState.OK && p.BillType == (int)ArriveBillType.Receive).GroupBy(p => new { p.PoBillNum, p.PoLine, p.PartCode }).Select(p => new { ArriveSum = p.Sum(itm => itm.Qty), PoLine = p.Key.PoLine, PoBillNum = p.Key.PoBillNum, PartCode = p.Key.PartCode });
|
||
|
|
||
|
|
||
|
// _detail.PartDesc1 = _detail.PartDesc1 + _detail.PartDesc2;
|
||
|
// rec.ToList().ForEach(itm =>
|
||
|
// {
|
||
|
// if (_detail.PoBillNum == itm.PoBillNum && _detail.PoLine == itm.PoLine && _detail.PartCode == itm.PartCode)
|
||
|
// {
|
||
|
// _detail.ReceivedQty = itm.ReceiveSum;
|
||
|
// }
|
||
|
|
||
|
// });
|
||
|
// reject.ToList().ForEach(itm =>
|
||
|
// {
|
||
|
// if (_detail.PoBillNum == itm.PoBillNum && _detail.PoLine == itm.PoLine && _detail.PartCode == itm.PartCode)
|
||
|
// {
|
||
|
// _detail.RejectQty = itm.RejectSum.ToString();
|
||
|
// }
|
||
|
|
||
|
// });
|
||
|
// asn.ToList().ForEach(itm =>
|
||
|
// {
|
||
|
// if (_detail.PoBillNum == itm.PoBillNum && _detail.PoLine == itm.PoLine && _detail.PartCode == itm.PartCode)
|
||
|
// {
|
||
|
// _detail.ShippedQty = itm.AsSum;
|
||
|
// }
|
||
|
|
||
|
// });
|
||
|
// _ask.ToList().ForEach(itm =>
|
||
|
// {
|
||
|
// if (_detail.PoBillNum == itm.PoBillNum && _detail.PoLine == itm.PoLine && _detail.PartCode == itm.PartCode)
|
||
|
// {
|
||
|
// _detail.TempQty = itm.AskSum;
|
||
|
// }
|
||
|
// });
|
||
|
// arrive.ToList().ForEach(itm =>
|
||
|
// {
|
||
|
// if (_detail.PoBillNum == itm.PoBillNum && _detail.PoLine == itm.PoLine && _detail.PartCode == itm.PartCode)
|
||
|
// {
|
||
|
// _detail.ArriveQty = itm.ArriveSum.ToString();
|
||
|
// }
|
||
|
|
||
|
// });
|
||
|
//}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
foreach (var qadCtrl in qadCtrlList)
|
||
|
{
|
||
|
if (tableNameList.All(p => p.Name != qadCtrl.xxqad_table)) continue;
|
||
|
try
|
||
|
{
|
||
|
ScpEntities wdb = EntitiesFactory.CreateScpInstance();
|
||
|
|
||
|
QadTableName qadTableName;
|
||
|
Enum.TryParse(qadCtrl.xxqad_table, false, out qadTableName);
|
||
|
|
||
|
switch (qadTableName)
|
||
|
{
|
||
|
case QadTableName.xxqad_pt_mstr: //����
|
||
|
if (GlobalVar.ApiConfig.Qad����)
|
||
|
{
|
||
|
Console.WriteLine($"���� QAD �ӿ����ݣ�{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}");
|
||
|
UpdateParts(idb, wdb, qadCtrl.xxqad_seq);
|
||
|
}
|
||
|
else
|
||
|
continue;
|
||
|
break;
|
||
|
case QadTableName.xxqad_vd_mstr: //��Ӧ��
|
||
|
if (GlobalVar.ApiConfig.Qad��Ӧ��)
|
||
|
{
|
||
|
Console.WriteLine($"���� QAD �ӿ����ݣ�{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}");
|
||
|
UpdateVender(idb, wdb, qadCtrl.xxqad_seq);
|
||
|
}
|
||
|
else
|
||
|
continue;
|
||
|
break;
|
||
|
|
||
|
case QadTableName.xxqad_vp_mstr: //��Ӧ������
|
||
|
if (GlobalVar.ApiConfig.Qad��Ӧ������)
|
||
|
{
|
||
|
Console.WriteLine($"���� QAD �ӿ����ݣ�{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}");
|
||
|
UpdateVendParts(idb, wdb, qadCtrl.xxqad_seq);
|
||
|
}
|
||
|
else
|
||
|
continue;
|
||
|
break;
|
||
|
|
||
|
case QadTableName.xxqad_pod_det: //�ɹ�����
|
||
|
if (GlobalVar.ApiConfig.Qad�ɹ�����)
|
||
|
{
|
||
|
Console.WriteLine($"���� QAD �ӿ����ݣ�{qadCtrl.xxqad_table}:{qadCtrl.xxqad_table_qty}");
|
||
|
UpdatePurchaseOrders(idb, wdb, qadCtrl.xxqad_seq);
|
||
|
}
|
||
|
else
|
||
|
continue;
|
||
|
break;
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
qadCtrl.xxqad_scm = ((int)UniApiState.�ɹ�).ToString();
|
||
|
EntitiesFactory.SaveDb(wdb);
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
qadCtrl.xxqad_scm = ((int)UniApiState.ʧ��).ToString();
|
||
|
qadCtrl.xxqad_rmks += " SCM:" + ex.Message;
|
||
|
|
||
|
}
|
||
|
finally
|
||
|
{
|
||
|
EntitiesFactory.SaveDb(idb);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
/// <summary>
|
||
|
/// ���²ɹ�����
|
||
|
/// </summary>
|
||
|
/// <param name="idb"></param>
|
||
|
/// <param name="wdb"></param>
|
||
|
/// <param name="seq"></param>
|
||
|
private static void UpdatePurchaseOrders(UniApiEntities idb, ScpEntities wdb, string seq)
|
||
|
{
|
||
|
// var qadPoDetailList = idb.xxqad_pod_det.Where(p => p.xxqad_pod_seq == seq).ToList(); ԭ���� xxqad_pod_modtype 1Ϊ��
|
||
|
var qadPoDetailList = idb.xxqad_pod_det.Where(p => p.xxqad_pod_seq == seq && p.xxqad_pod_scmread == "0").ToList();
|
||
|
|
||
|
var wmsPoList = new List<TB_PO>();
|
||
|
var wmsPoDetailList = new List<TB_PO_DETAIL>();
|
||
|
|
||
|
var qadPoNbrList = qadPoDetailList.Select(p => p.xxqad_pod_nbr.ToUpper()).DistinctBy(p => p);
|
||
|
|
||
|
foreach (var qadPoNbr in qadPoNbrList)
|
||
|
{
|
||
|
var qadDataList = qadPoDetailList.Where(p => p.xxqad_pod_nbr == qadPoNbr).ToList();
|
||
|
if (qadDataList.Count == 0)
|
||
|
{
|
||
|
continue;
|
||
|
}
|
||
|
var firstqadData = qadDataList[0];
|
||
|
//var wmsPo = wdb.TF_PO.SingleOrDefault(p => p.ErpBillNum == qadPoNbr);
|
||
|
var wmsPo = wdb.TB_PO.SingleOrDefault(p => p.ErpBillNum == qadPoNbr);
|
||
|
if (wmsPo == null)
|
||
|
{
|
||
|
|
||
|
//wmsPo = new TF_PO
|
||
|
//{
|
||
|
// BillNum = qadPoNbr,
|
||
|
// ErpBillNum = qadPoNbr,
|
||
|
// BillTime = DateTime.Now,
|
||
|
// ModType = firstqadData.xxqad_pod_modtype,
|
||
|
// OperName = firstqadData.xxqad_pod_createur,
|
||
|
// State = (int)FormState.����,
|
||
|
// Remark = "",
|
||
|
// VendId = firstqadData.xxqad_pod_vend.ToUpper(),
|
||
|
// ShipToSite = firstqadData.xxqad_pod_ship,
|
||
|
//};
|
||
|
int temp;
|
||
|
string strPoBillNum = SCP_BILLCODE_CONTROLLER.MakePOCode();
|
||
|
|
||
|
wmsPo = new TB_PO
|
||
|
{
|
||
|
PoBillNum = qadPoNbr,//������
|
||
|
ErpBillNum = qadPoNbr,//ERP������
|
||
|
VendId = firstqadData.xxqad_pod_vend,//��Ӧ�̱���
|
||
|
ModType = Int32.TryParse(firstqadData.xxqad_pod_modtype, out temp) ? temp : (int?)null, //��������(1:�ճ̵�,2:��ɢ����)
|
||
|
Contacter = firstqadData.xxqad_pod_attn,//��ϵ��
|
||
|
Site = firstqadData.xxqad_pod_ship,//�ص�
|
||
|
//Buyer = firstqadData.xxqad_pod_buyer,//�ɹ�Ա
|
||
|
//BuyerPhone = firstqadData.xxqad_pod_buyer_phone,//�ɹ�Ա�绰
|
||
|
State = (int)FormState.����,//״̬
|
||
|
Remark = "",//˵��
|
||
|
CreateTime = firstqadData.xxqad_pod_createdt == null ? DateTime.Now : (DateTime)firstqadData.xxqad_pod_createdt,//��������
|
||
|
CreateUser = firstqadData.xxqad_pod_createur,//�����û�
|
||
|
//UpdateTime = firstqadData.xxqad_pod_updatedt,//��������
|
||
|
//UpdateUser = firstqadData.xxqad_pod_updateur,//�����û�
|
||
|
IsDeleted = false,
|
||
|
GUID = System.Guid.NewGuid(),
|
||
|
BeginTime = firstqadData.xxqad_pod_createdt,//��������
|
||
|
EndTime = firstqadData.xxqad_pod_due_date//�ջ�����ʱ��
|
||
|
};
|
||
|
wmsPoList.Add(wmsPo);
|
||
|
}
|
||
|
// wmsPo.VendId = firstqadData.xxqad_pod_vend.ToUpper();
|
||
|
// wmsPo.ShipToSite = firstqadData.xxqad_pod_ship;
|
||
|
wmsPo.Contacter = firstqadData.xxqad_pod_attn;
|
||
|
wmsPo.Buyer = firstqadData.xxqad_pod_buyer;
|
||
|
wmsPo.BuyerPhone = firstqadData.xxqad_pod_buyer_phone;
|
||
|
|
||
|
wmsPo.UpdateTime = firstqadData.xxqad_pod_updatedt;//��������
|
||
|
wmsPo.UpdateUser = firstqadData.xxqad_pod_updateur;//�����û�
|
||
|
|
||
|
foreach (var qadData in qadDataList)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
var lineNum = Convert.ToInt32(qadData.xxqad_pod_line);
|
||
|
//var wmsPoDetail =
|
||
|
// wdb.TF_PO_DETAIL.SingleOrDefault(
|
||
|
// p => p.ErpBillNum == qadPoNbr && p.LineNum == lineNum);
|
||
|
var wmsPoDetail =
|
||
|
wdb.TB_PO_DETAIL.SingleOrDefault(
|
||
|
p => p.PoBillNum == qadPoNbr && p.PoLine == lineNum);
|
||
|
if (wmsPoDetail == null)
|
||
|
{
|
||
|
wmsPoDetail = new TB_PO_DETAIL
|
||
|
{
|
||
|
PoBillNum = qadPoNbr,//������
|
||
|
PoLine = lineNum,//������
|
||
|
IsDeleted = false,
|
||
|
GUID = System.Guid.NewGuid()
|
||
|
};
|
||
|
wmsPoDetailList.Add(wmsPoDetail);
|
||
|
}
|
||
|
wmsPoDetail.PartCode = qadData.xxqad_pod_part.ToUpper();//������-���Ϻ�
|
||
|
wmsPoDetail.PlanQty = qadData.xxqad_pod_qty_ord;//��������-�ɹ���
|
||
|
//wmsPoDetail.ShippedQty = qadData.xxqad_pod_qty_rct;//�ѷ�����-���ջ���
|
||
|
//wmsPoDetail.ReceivedQty = qadData.xxqad_pod_qty_rct;//��������-���ջ���
|
||
|
//wmsPoDetail.RejectQty = qadData.xxqad_pod_qty_rct;//��������-���ջ���
|
||
|
wmsPoDetail.BeginTime = firstqadData.xxqad_pod_createdt;//�ջ���ʼʱ��
|
||
|
wmsPoDetail.EndTime = qadData.xxqad_pod_due_date;//�ջ�����ʱ��
|
||
|
wmsPoDetail.PoUnit = qadData.xxqad_pod_um;//�ɹ���λ
|
||
|
wmsPoDetail.LocUnit = qadData.xxqad_pod_loc_um.ToUpper();//�洢��λ
|
||
|
wmsPoDetail.Price = ScpCache.Config.��Ŀ���� == ProjectName.���챱��ģ��.ToString()
|
||
|
? 0
|
||
|
: qadData.xxqad_pod_price;
|
||
|
wmsPoDetail.Currency = qadData.xxqad_pod_curr;//����
|
||
|
wmsPoDetail.PackQty = qadData.xxqad_pod_qty_std;//��������
|
||
|
wmsPoDetail.UnConv = qadData.xxqad_pod_um_conv;//ת����
|
||
|
//wmsPoDetail.DockCode = ?;//
|
||
|
wmsPoDetail.State = Convert.ToInt32(qadData.xxqad_pod_status);//״̬
|
||
|
wmsPoDetail.Remark = qadData.xxqad_pod_rmks;//��ע
|
||
|
wmsPoDetail.CreateTime = firstqadData.xxqad_pod_createdt == null ? DateTime.Now : (DateTime)firstqadData.xxqad_pod_createdt;//��������
|
||
|
wmsPoDetail.CreateUser = firstqadData.xxqad_pod_createur;//�����û�
|
||
|
wmsPoDetail.UpdateTime = firstqadData.xxqad_pod_updatedt;//��������
|
||
|
wmsPoDetail.UpdateUser = firstqadData.xxqad_pod_updateur;//�����û�
|
||
|
|
||
|
//if (wmsPoDetail.BillQty != 0 && wmsPoDetail.BillQty <= wmsPoDetail.ReceivedQty)
|
||
|
// wmsPoDetail.State = (int)FormState.�ر�;
|
||
|
|
||
|
if (wmsPoDetail.PlanQty != 0 && wmsPoDetail.PlanQty <= wmsPoDetail.ReceivedQty)
|
||
|
wmsPoDetail.State = (int)FormState.�ر�;
|
||
|
|
||
|
qadData.xxqad_pod_scmread = ((int)UniApiState.�ɹ�).ToString();
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
qadData.xxqad_pod_scmread = ((int)UniApiState.ʧ��).ToString();
|
||
|
qadData.xxqad_pod_rmks += " SCM:" + ex.Message;
|
||
|
}
|
||
|
qadData.xxqad_pod_updateur = ScpCache.Config.SCP�û���;
|
||
|
qadData.xxqad_pod_updatedt = DateTime.Now;
|
||
|
|
||
|
}
|
||
|
wmsPo.State = qadDataList.All(p => p.xxqad_pod_status == ((int)FormState.�ر�).ToString())
|
||
|
? (int)FormState.�ر�
|
||
|
: (int)FormState.����;
|
||
|
}
|
||
|
wdb.TB_PO.AddOrUpdate(wmsPoList.ToArray());
|
||
|
wdb.TB_PO_DETAIL.AddOrUpdate(wmsPoDetailList.ToArray());
|
||
|
Console.WriteLine($"���� �ɹ����� ���ݣ�{qadPoDetailList.Count}");
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// ���¹�Ӧ������
|
||
|
/// </summary>
|
||
|
/// <param name="idb"></param>
|
||
|
/// <param name="wdb"></param>
|
||
|
/// <param name="seq"></param>
|
||
|
private static void UpdateVendParts(UniApiEntities idb, ScpEntities wdb, string seq)
|
||
|
{
|
||
|
var qadDataList = idb.xxqad_vp_mstr.Where(p => p.xxqad_vp_seq == seq).ToList();
|
||
|
var wmsDataList = new List<TA_VEND_PART>();
|
||
|
foreach (var qadData in qadDataList)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
if (qadData.xxqad_vp_vend_part == null)
|
||
|
qadData.xxqad_vp_vend_part = qadData.xxqad_vp_part;
|
||
|
var wmsData =
|
||
|
wdb.TA_VEND_PART.SingleOrDefault(
|
||
|
p => p.VendId == qadData.xxqad_vp_addr.ToUpper()
|
||
|
&& p.PartCode == qadData.xxqad_vp_part.ToUpper()
|
||
|
&& p.VendPartCode == qadData.xxqad_vp_vend_part.ToUpper()
|
||
|
) ??
|
||
|
new TA_VEND_PART
|
||
|
{
|
||
|
VendId = qadData.xxqad_vp_addr.ToUpper(),//��Ӧ�̱���
|
||
|
PartCode = qadData.xxqad_vp_part.ToUpper(),//��Ӧ���Ϻ�
|
||
|
VendPartCode = qadData.xxqad_vp_vend_part.ToUpper(),//��Ӧ�����Ϻ�
|
||
|
VendPackQty = qadData.xxqad_vp_comment,//��Ӧ�����Ϻ�
|
||
|
//PoUnit = qadData.,//�ɹ���λ
|
||
|
State = 1,//״̬��0��ʧЧ 1:��Ч��
|
||
|
Remark = "",
|
||
|
CreateTime = qadData.xxqad_vp_createdt == null ? DateTime.Now : (DateTime)qadData.xxqad_vp_createdt,//��������
|
||
|
CreateUser = qadData.xxqad_vp_createur,//�����û�
|
||
|
UpdateTime = qadData.xxqad_vp_updatedt,//��������
|
||
|
UpdateUser = qadData.xxqad_vp_updateur,//�����û�
|
||
|
|
||
|
IsDeleted = false,
|
||
|
GUID = new Guid()
|
||
|
};
|
||
|
// wmsData.VendPartCode = qadData.xxqad_vp_vend_part?.ToUpper() ?? qadData.xxqad_vp_part.ToUpper();
|
||
|
wmsData.VendPackQty = qadData.xxqad_vp_comment;
|
||
|
wmsDataList.Add(wmsData);
|
||
|
qadData.xxqad_vp_scmread = ((int)UniApiState.�ɹ�).ToString();
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
qadData.xxqad_vp_scmread = ((int)UniApiState.ʧ��).ToString();
|
||
|
qadData.xxqad_vp_rmks += " SCM:" + ex.Message;
|
||
|
}
|
||
|
qadData.xxqad_vp_updateur = ScpCache.Config.SCP�û���;
|
||
|
qadData.xxqad_vp_updatedt = DateTime.Now;
|
||
|
|
||
|
}
|
||
|
wdb.TA_VEND_PART.AddOrUpdate(wmsDataList.ToArray());
|
||
|
Console.WriteLine($"���� ��Ӧ������ ���ݣ�{wmsDataList.Count}");
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// ���¹�Ӧ��
|
||
|
/// </summary>
|
||
|
/// <param name="idb"></param>
|
||
|
/// <param name="wdb"></param>
|
||
|
/// <param name="seq"></param>
|
||
|
private static void UpdateVender(UniApiEntities idb, ScpEntities wdb, string seq)
|
||
|
{
|
||
|
var qadDataList = idb.xxqad_vd_mstr.Where(p => p.xxqad_vd_seq == seq).ToList();
|
||
|
var wmsDataList = new List<TA_VENDER>();
|
||
|
foreach (var qadData in qadDataList)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
var wmsData = wdb.TA_VENDER.SingleOrDefault(p => p.VendId == qadData.xxqad_vd_addr.ToUpper()) ??
|
||
|
new TA_VENDER { VendId = qadData.xxqad_vd_addr.ToUpper(), VendAbbCode = "0", State = 1 };
|
||
|
wmsData.VendName = qadData.xxqad_vd_name;
|
||
|
wmsData.VendType = qadData.xxqad_vd_type.ToUpper().ToString();
|
||
|
wmsData.Country = qadData.xxqad_vd_country;
|
||
|
wmsData.City = qadData.xxqad_vd_city;
|
||
|
wmsData.Currency = qadData.xxqad_vd_curr.ToUpper();
|
||
|
// wmsData.Promo = qadData.xxqad_vd_promo; //���ڹ���
|
||
|
wmsData.Address = qadData.xxqad_vd_line1 + qadData.xxqad_vd_line2 + qadData.xxqad_vd_line3;
|
||
|
wmsData.ZipCode = qadData.xxqad_vd_pst_id;
|
||
|
wmsData.Contacter = qadData.xxqad_vd_attn;
|
||
|
wmsData.Phone = qadData.xxqad_vd_phone;
|
||
|
wmsData.Fax = qadData.xxqad_vd_fax;
|
||
|
wmsData.Site = ScpCache.Config.QAD�ص�;
|
||
|
// wmsData.Email = ""; //QAD����
|
||
|
wmsData.Tax = qadData.xxqad_vd_tax;//˰��
|
||
|
wmsDataList.Add(wmsData);
|
||
|
qadData.xxqad_vd_scmread = ((int)UniApiState.�ɹ�).ToString();
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
qadData.xxqad_vd_scmread = ((int)UniApiState.ʧ��).ToString();
|
||
|
qadData.xxqad_vd_rmks += " SCM:" + ex.Message;
|
||
|
}
|
||
|
qadData.xxqad_vd_updateur = ScpCache.Config.SCP�û���;
|
||
|
qadData.xxqad_vd_updatedt = DateTime.Now;
|
||
|
|
||
|
}
|
||
|
wdb.TA_VENDER.AddOrUpdate(p => p.VendId, wmsDataList.ToArray());
|
||
|
Console.WriteLine($"���� ��Ӧ�� ���ݣ�{qadDataList.Count}");
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// ��������
|
||
|
/// </summary>
|
||
|
/// <param name="idb"></param>
|
||
|
/// <param name="wdb"></param>
|
||
|
/// <param name="seq"></param>
|
||
|
private static void UpdateParts(UniApiEntities idb, ScpEntities wdb, string seq)
|
||
|
{
|
||
|
var qadDataList = idb.xxqad_pt_mstr.Where(p => p.xxqad_pt_seq == seq).ToList();
|
||
|
var wmsDataList = new List<TA_PART>();
|
||
|
foreach (var qadData in qadDataList)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
var wmsData = wdb.TA_PART.SingleOrDefault(p => p.ErpPartCode == qadData.xxqad_pt_part.ToUpper()) ??
|
||
|
new TA_PART
|
||
|
{
|
||
|
PartCode = qadData.xxqad_pt_part.ToUpper(),
|
||
|
ErpPartCode = qadData.xxqad_pt_part.ToUpper(),
|
||
|
};
|
||
|
wmsData.PartDesc1 = qadData.xxqad_pt_desc1;
|
||
|
wmsData.PartDesc2 = qadData.xxqad_pt_desc2;
|
||
|
wmsData.ProjectId = qadData.xxqad_pt_group.ToUpper();
|
||
|
wmsData.Unit = qadData.xxqad_pt_um.ToUpper();
|
||
|
wmsData.PartGroup = qadData.xxqad_pt_dsgn_grp.ToUpper();
|
||
|
wmsData.State = qadData.xxqad_pt_status.ToUpper();
|
||
|
wmsData.Site = ScpCache.Config.QAD��;
|
||
|
// wmsData.PartType = qadData.xxqad_pt_part_type.ToUpper() == PartType.M.ToString()
|
||
|
// ? PartType.M.ToString()
|
||
|
// : PartType.B.ToString();
|
||
|
// wmsData.PartKind = qadData.xxqad_pt_promo.ToUpper();
|
||
|
// wmsData.InspectType = (int)InspectType.ȫ��;
|
||
|
// wmsData.SamplePercent = 1;
|
||
|
wmsDataList.Add(wmsData);
|
||
|
qadData.xxqad_pt_scmread = ((int)UniApiState.�ɹ�).ToString();
|
||
|
}
|
||
|
catch (Exception ex)
|
||
|
{
|
||
|
qadData.xxqad_pt_scmread = ((int)UniApiState.ʧ��).ToString();
|
||
|
qadData.xxqad_pt_rmks += " SCM:" + ex.Message;
|
||
|
}
|
||
|
qadData.xxqad_pt_updateur = ScpCache.Config.SCP�û���;
|
||
|
qadData.xxqad_pt_updatedt = DateTime.Now;
|
||
|
}
|
||
|
wdb.TA_PART.AddOrUpdate(p => p.PartCode, wmsDataList.ToArray());
|
||
|
Console.WriteLine($"���� ������Ϣ ���ݣ�{qadDataList.Count}");
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|