using Common.Model; using Common.Wechat; using CoreEntity.BAL; using CoreEntity.Entity; using PublicLibrary.Common; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Text; using ZcPeng.PublicLibrary; using ZcPeng.weixin.PublicAccount; namespace CoreEntity.DAL { public class PurOrderDAL { //public const string ENTID = "E2IR7T9P4OI"; //public const string ORGID = "O2IR7T92J72"; //public const string DEPID = "K2J67PCXWG4"; //public const string payorgid = ORGID; public const string ruleid = "5x80rrxrb24q2ktt"; /// 添加采购计划记录到erp /// SuppliersId 是根据来往单位(BusinnesDoc)是否供货生成的供应商表(SupplierDoc)记录的id /// 如果传入BusinnesId BusinessCode: /// 查询 SuppliersId 来往单位(BusinnesDoc)Is_Supp 设置Y /// 如果传入SuppliersId:不需要 BusinessId BusinessCode public static IDictionary AddOrder( string PushAccountId ,string PlanBillNo , string EntId, int ReceiptMd, int CentPayMd , string OrgId, string DeptId , string Summaries, string Remark , string GoodsId, string SuppliersId , string BusinessId, string BusinessCode , string StaffDocId , string RequestDate , string ContactId , out int BillNo , out int OrderBillCodeNo , decimal PrepayAmt , string IsPrepay , string OppContId , List listcmd = null ) { IDictionary resultdic = new Dictionary(6); //查询供应商业务员ID if(string.IsNullOrEmpty(ContactId)) ContactId = AccountDAL.getContactor(PushAccountId, BusinessId); //查询或生成 SuppliersId #region SuppliersId string address = ""; SuppliersId = BusinessId; if(SuppliersId == "" || SuppliersId == null) { ContactDoc cd = ContactDAL.getContactor(ContactId); if(cd!=null) SuppliersId = cd.ContactId; } //if (BusinessCode != null && BusinessCode != "" // && BusinessId != null && BusinessId != "") //{ // SupplyDoc sups = null; // sups = SupplyDAL.getSupply(BusinessCode); // if (SuppliersId == null) { // SuppliersId = sups.SuppliersId; // address = sups.DftAddress; // } // if (sups != null) // { // address = sups.DftAddress; // } //} #endregion //新建推送记录 #region 添加订单 string commandTextRecord = "INSERT INTO " + "PurOrderMT (BillNo," + "EntId," + "BillCode," + "RuleId," + "Dates," + "OnTime," + "SysDates," + "IsVAT," + "ExpectDate," + "SuppliersId," + "Address," + "AccptId," + "CurrencyId," + "SaleManId," + "caozy," + "OrgId," + "DeptId," + "ContractCode," + "Delivery," + "PayType," + "OlderNo," + "IsEnd," + "IsDone," + "Summaries," + "Remark," + "PayOrgId," + "ReqDate," + "BillState," + "OppContId," + "IsPrepay," + "PrepayAmt," + "IsDefray," + "IsSuppOut," + "SuppOutDate," + "GoodsGList," //+ "k_isbh," //+ "k_kdcode," //+ "k_qrdates," //+ "k_xspay," //+ "k_pay," //+ "k_isdz," //+ "k_iskd," //+ "ECShopId," //+ "k_issj," + "K_IsBillClose," + "K_CloseStaffId," + "K_CloseTime," + "K_CloseRemark," //+ "K_yingfk," //+ "K_yufk," //+ "K_yfzffs," + "K_AutoTbbl," //+ "ReBillNo," + "K_IsLS," + "K_IsYXD," + "K_yfkye," + "K_yfye," + "K_ye," + "ReBillNo," + "K_ContactId," + "source" + ")" + " VALUES (@BillNo,@EntId,@BillCode,@RuleId,@Dates," + "@OnTime,@SysDates," + "@IsVAT,@ExpectDate,@SuppliersId," + "@Address,@AccptId,@CurrencyId,@SaleManId,@caozy," + "@OrgId,@DeptId,@ContractCode,@Delivery,@PayType," + "@OlderNo,@IsEnd,@IsDone,@Summaries,@Remark," + "@PayOrgId,@ReqDate,@BillState,@OppContId,@IsPrepay," + "@PrepayAmt,@IsDefray,@IsSuppOut,@SuppOutDate,@GoodsGList," + "@K_IsBillClose,@K_CloseStaffId,@K_CloseTime,@K_CloseRemark,@K_AutoTbbl," + "@K_IsLS,@K_IsYXD,@K_yfkye,@K_yfye,@K_ye,@ReBillNo,@K_ContactId,'coop.360lj.com'" + ")"; string resultRecord; //准备参数 Guid PushRecordId = Guid.NewGuid(); List> parametersRecord = new List>(); //订单汇总里面关键的几个字段 ///一个是billno在智友的syscode表中prefix = 'F'的即为最大编号, ///一个是billcode在智友的billcode表中,需要对应的是采购订单的RULEID(固定5x80rrxrb24q2ktt), ///从billcode表中取到recnum,billcode的生成规则:PDD+机构标识+8位长度的流水码(recnum,不足补零)例如PDD+Y30+00000058 ///订单明细中没有BILLCODE,但是有billsn,即明细的序号 Int32 OrderBillNo = Convert.ToInt32(IDHelper.GetRecNo()); OrderBillCodeNo = 0; BillNo = OrderBillNo; if (BillNo == 0) { return resultdic; } OrderBillCodeNo = Convert.ToInt32(IDHelper.GetBillCodeRecNo(EntId)); if (OrderBillCodeNo == 0) { return resultdic; } //取ordercode string orderNo = OrderBillCodeNo.ToString(); StringBuilder sb = new StringBuilder(""); if (orderNo.Length < 8) { for (int i=0;i< (8 - orderNo.Length); i++) { sb.Append('0'); } sb.Append(orderNo); } string orgno = OrgDAL.GetOrgNo(OrgId,EntId); String OrderCode = "PDD" + orgno//机构标识 + sb.ToString(); parametersRecord.Add(new List() { "BillNo", OrderBillNo }); parametersRecord.Add(new List() { "EntId", EntId }); parametersRecord.Add(new List() { "BillCode", OrderCode }); parametersRecord.Add(new List() { "RuleId", ruleid }); parametersRecord.Add(new List() { "Dates", DateTime.Now.ToString("yyyy-MM-dd") }); parametersRecord.Add(new List() { "OnTime", DateTime.Now.ToString("T") }); parametersRecord.Add(new List() { "SysDates", DateTime.Now.ToString("yyyy-MM-dd") }); parametersRecord.Add(new List() { "IsVAT", 'Y' }); parametersRecord.Add(new List() { "ExpectDate", "" }); parametersRecord.Add(new List() { "SuppliersId", SuppliersId }); parametersRecord.Add(new List() { "Address", address }); parametersRecord.Add(new List() { "AccptId", "" }); parametersRecord.Add(new List() { "CurrencyId", "CNY" }); parametersRecord.Add(new List() { "SaleManId", StaffDocId }); parametersRecord.Add(new List() { "caozy", StaffDocId }); parametersRecord.Add(new List() { "OrgId", OrgId }); parametersRecord.Add(new List() { "DeptId", DeptId }); parametersRecord.Add(new List() { "ContractCode", "" }); parametersRecord.Add(new List() { "Delivery", ReceiptMd }); Option PayType; PushRecordDAL.OptionCentPayMap.TryGetValue(CentPayMd, out PayType); parametersRecord.Add(new List() { "PayType", PayType.label}); parametersRecord.Add(new List() { "OlderNo", "" }); parametersRecord.Add(new List() { "IsEnd", 'Y' }); parametersRecord.Add(new List() { "IsDone", 'N' }); parametersRecord.Add(new List() { "Summaries", "采购订单" }); parametersRecord.Add(new List() { "Remark", Remark }); parametersRecord.Add(new List() { "PayOrgId", OrgId }); parametersRecord.Add(new List() { "ReqDate", RequestDate }); parametersRecord.Add(new List() { "BillState", 0}); parametersRecord.Add(new List() { "OppContId", OppContId }); parametersRecord.Add(new List() { "PrepayAmt", PrepayAmt }); parametersRecord.Add(new List() { "IsPrepay", IsPrepay }); parametersRecord.Add(new List() { "IsDefray", 'N' });//已支付 parametersRecord.Add(new List() { "IsSuppOut", 'N' });//已发货 parametersRecord.Add(new List() { "SuppOutDate", "" });//发货日期 parametersRecord.Add(new List() { "GoodsGList", "" });//互斥分组列表 //parametersRecord.Add(new List() { "k_isbh", "" }); //parametersRecord.Add(new List() { "k_kdcode", "" }); //parametersRecord.Add(new List() { "k_qrdates", "" }); //parametersRecord.Add(new List() { "k_xspay", "" }); //parametersRecord.Add(new List() { "k_pay", "" }); //parametersRecord.Add(new List() { "k_isdz", "" }); //parametersRecord.Add(new List() { "k_iskd", "" }); //parametersRecord.Add(new List() { "ECShopId", "" }); //parametersRecord.Add(new List() { "k_issj", "" }); parametersRecord.Add(new List() { "k_IsBillClose", 'N' });// parametersRecord.Add(new List() { "K_CloseStaffId", "" }); parametersRecord.Add(new List() { "K_CloseTime", "" }); parametersRecord.Add(new List() { "K_CloseRemark", "" }); //parametersRecord.Add(new List() { "K_yingfk", "" }); //parametersRecord.Add(new List() { "K_yufk", "" }); //parametersRecord.Add(new List() { "K_yfzffs", "" }); parametersRecord.Add(new List() { "K_AutoTbbl", 0 }); //parametersRecord.Add(new List() { "ReBillNo", "" }); parametersRecord.Add(new List() { "K_IsLS", 'Y' }); parametersRecord.Add(new List() { "K_IsYXD", 'N' }); parametersRecord.Add(new List() { "K_yfkye", null }); parametersRecord.Add(new List() { "K_yfye", null }); parametersRecord.Add(new List() { "K_ye", null }); parametersRecord.Add(new List() { "ReBillNo", PlanBillNo }); parametersRecord.Add(new List() { "K_ContactId", ContactId }); List parametersRecord1 = DataAccess.ToParameters(parametersRecord); #endregion //int successRecord1 = DataAccess.ExecuteCommand(commandTextRecord, parametersRecord1, out resultRecord); if (listcmd != null) { listcmd.Add(new DataAccessCommand(commandTextRecord, parametersRecord1)); } else { int successRecord = DataAccess.ExecuteCommand(commandTextRecord, parametersRecord1, out resultRecord); resultdic.Add("successRecord", successRecord); resultdic.Add("resultRecord", resultRecord); resultdic.Add("OrderBillNo", OrderBillNo); resultdic.Add("OrderCode", OrderCode); } return resultdic; } public static IDictionary AddOrderDT( Int32 OrderBillNo,Int32 BillSn, int PlanBillNo, Int32 PlanBillSn,string PlanBillCode, string GoodsId,string GoodsSpec, Decimal GoodsGapNum , Decimal LastPrice , Decimal K_Price, string Remark, string EntId,string OrgId, string BusinessId, string BusinessCode, string SuppliersId, Decimal PurchaseTotalNum, Int32 SafeDays , string LoginAccountId , List listcmd = null) { IDictionary resultdic = new Dictionary(6); //新建推送明细记录 #region 添加推送明细记录 string commandTextRecord = "INSERT INTO " + "PurOrderDT (BillNo,BillSn,EntId,BillSort,OwnerId," + "GoodsId,PackId,Meas,AngleId,BatchCode," + "ProduceDate,ValDate,BaseNum,Num,Price," + "Taxprice,DedRate,Amount,Rate,Tax," + "TaxAmount,RetailP,IsFree,RfBillNo,RfBillSn," + "ReBillNo,ReBillSn,Remark,WHOrgId,IsDone," + "BasePrice,BaseTaxprice,RfBillCode,ReBillCode,ExecNum," + "CancelNum,RfRuleId,ReRuleId,unit,ContractId," + "APID,SterilCode,K_LastInTaxP,K_Price,K_LastPrice," + "K_IsBillClose,K_CloseStaffId,K_CloseTime,K_CloseRemark,K_Ispfsale," + "K_PFYLSL,K_EntNuM,K_LsNum" + ")" + " VALUES (@BillNo,@BillSn,@EntId,@BillSort,@OwnerId,@" + "GoodsId,@PackId,@Meas,@AngleId,@BatchCode,@" + "ProduceDate,@ValDate,@BaseNum,@Num,@Price,@" + "Taxprice,@DedRate,@Amount,@Rate,@Tax,@" + "TaxAmount,@RetailP,@IsFree,@RfBillNo,@RfBillSn,@" + "ReBillNo,@ReBillSn,@Remark,@WHOrgId,@IsDone,@" + "BasePrice,@BaseTaxprice,@RfBillCode,@ReBillCode,@ExecNum,@" + "CancelNum,@RfRuleId,@ReRuleId,@unit,@ContractId,@" + "APID,@SterilCode,@K_LastInTaxP,@K_Price,@K_LastPrice,@" + "K_IsBillClose,@K_CloseStaffId,@K_CloseTime,@K_CloseRemark,@K_Ispfsale,@" + "K_PFYLSL,@K_EntNuM,@K_LsNum" + ")"; string resultRecord; PGPrice pg = IDHelper.GetPackId(GoodsId,EntId); string GetPackId = ""; if (pg!=null) GetPackId = pg.PackId; //准备参数 Guid PushRecordId = Guid.NewGuid(); List> parametersRecord = new List>(); parametersRecord.Add(new List() { "BillNo", OrderBillNo });//关联的采购计划BillNo RandHelper.GenerateRandomCode(20) parametersRecord.Add(new List() { "BillSn", BillSn }); parametersRecord.Add(new List() { "EntId", EntId }); parametersRecord.Add(new List() { "BillSort", BillSn }); parametersRecord.Add(new List() { "OwnerId", OrgId }); parametersRecord.Add(new List() { "GoodsId", GoodsId}); parametersRecord.Add(new List() { "PackId", GetPackId }); parametersRecord.Add(new List() { "Meas", pg.Meas}); parametersRecord.Add(new List() { "AngleId", ""}); parametersRecord.Add(new List() { "BatchCode", "" }); parametersRecord.Add(new List() { "ProduceDate", "" }); parametersRecord.Add(new List() { "ValDate", "" }); parametersRecord.Add(new List() { "BaseNum", GoodsGapNum }); parametersRecord.Add(new List() { "Num", GoodsGapNum }); parametersRecord.Add(new List() { "Price", LastPrice }); parametersRecord.Add(new List() { "Taxprice", LastPrice }); parametersRecord.Add(new List() { "DedRate", 100}); decimal amount = LastPrice* GoodsGapNum; parametersRecord.Add(new List() { "Amount", amount }); parametersRecord.Add(new List() { "Rate", 0}); parametersRecord.Add(new List() { "Tax", 0}); parametersRecord.Add(new List() { "TaxAmount", amount }); parametersRecord.Add(new List() { "RetailP", 0}); parametersRecord.Add(new List() { "IsFree", 'N' }); parametersRecord.Add(new List() { "RfBillNo", 0}); parametersRecord.Add(new List() { "RfBillSn", 0}); parametersRecord.Add(new List() { "ReBillNo", PlanBillNo }); parametersRecord.Add(new List() { "ReBillSn", PlanBillSn }); parametersRecord.Add(new List() { "Remark", Remark}); parametersRecord.Add(new List() { "WHOrgId", OrgId}); parametersRecord.Add(new List() { "IsDone", 'N'}); parametersRecord.Add(new List() { "BasePrice", LastPrice}); parametersRecord.Add(new List() { "BaseTaxprice", LastPrice }); parametersRecord.Add(new List() { "RfBillCode", ""}); parametersRecord.Add(new List() { "ReBillCode", PlanBillCode }); parametersRecord.Add(new List() { "ExecNum", 0}); parametersRecord.Add(new List() { "CancelNum", 0}); parametersRecord.Add(new List() { "RfRuleId", "" }); parametersRecord.Add(new List() { "ReRuleId", "" }); parametersRecord.Add(new List() { "unit", pg.unit}); parametersRecord.Add(new List() { "ContractId", "" }); parametersRecord.Add(new List() { "APID", "" }); parametersRecord.Add(new List() { "SterilCode", "" }); parametersRecord.Add(new List() { "K_LastInTaxP", 0}); parametersRecord.Add(new List() { "K_Price", K_Price}); parametersRecord.Add(new List() { "K_LastPrice",0 }); parametersRecord.Add(new List() { "K_IsBillClose", 'N'}); parametersRecord.Add(new List() { "K_CloseStaffId", ""}); parametersRecord.Add(new List() { "K_CloseTime", "" }); parametersRecord.Add(new List() { "K_CloseRemark", "" }); parametersRecord.Add(new List() { "K_Ispfsale", 'N'}); parametersRecord.Add(new List() { "K_PFYLSL", null}); parametersRecord.Add(new List() { "K_EntNuM", null }); parametersRecord.Add(new List() { "K_LsNum", null }); List parametersRecord1 = DataAccess.ToParameters(parametersRecord); #endregion if(listcmd ==null) { int successRecord = DataAccess.ExecuteCommand(commandTextRecord, parametersRecord1, out resultRecord); resultdic.Add("successRecord", successRecord); resultdic.Add("resultRecord", resultRecord); } else { listcmd.Add(new DataAccessCommand(commandTextRecord, parametersRecord1)); } return resultdic; } //IsComplete 1 public static int UpdateOrderState(string FeedbackId, string RecordId,int PushAccountId,List listcmd) { #region 更新明细 string commandTextRecord = "UPDATE " + Config.TablePrefix + "PushFeedback " + " SET HasOrder = @HasOrder ," + " State = 4, " + " ConfirmOrderTime = @ConfirmOrderTime," + " ConfirmOrderPerson = @ConfirmOrderPerson" + " WHERE Id= @FeedbackId " + " AND State = 3 " + " AND PushAccountId=" + PushAccountId; string resultRecord; //准备参数 List> parametersRecord = new List>(); parametersRecord.Add(new List() { "FeedbackId", Guid.Parse(FeedbackId) }); parametersRecord.Add(new List() { "HasOrder", 1 }); parametersRecord.Add(new List() { "ConfirmOrderTime", DateTime.Now }); parametersRecord.Add(new List() { "ConfirmOrderPerson", PushAccountId }); List parametersRecord1 = DataAccess.ToParameters(parametersRecord); #endregion if (listcmd == null) { int successRecord = DataAccess.ExecuteCommand(commandTextRecord, parametersRecord1, out resultRecord); if (successRecord > 0) return 1; else return 0; } else { listcmd.Add(new DataAccessCommand(commandTextRecord, parametersRecord1)); return 1; } } public static int UpdateRecordOrderState(string RecordId,string LoginAccountId) { #region 更新记录 string commandTextFeed = "UPDATE " + Config.TablePrefix + "PushRecord " + " SET HasOrder = @HasOrder " + //" ,OrderTime = @OrderTime," + " WHERE Id= @RecordId " // +" AND (IsComplete = 1 ) " ; string resultFeed; //准备参数 List> parametersFeed = new List>(); parametersFeed.Add(new List() { "RecordId", Guid.Parse(RecordId) }); parametersFeed.Add(new List() { "HasOrder", 1 }); //parametersFeed.Add(new List() { "OrderTime", DateTime.Now }); List parametersFeed1 = DataAccess.ToParameters(parametersFeed); int successFeed = DataAccess.ExecuteCommand(commandTextFeed, parametersFeed1, out resultFeed); #endregion return successFeed; } } }