using System; using System.Collections.Generic; using System.Data.SqlClient; using JLHHJSvr.BLL; using JLHHJSvr.Com; using JLHHJSvr.Com.Model; using JLHHJSvr.Helper; using LJLib.DAL.SQL; using LJLib.Net.SPI.Server; using Newtonsoft.Json.Linq; namespace JLHHJSvr.Excutor { internal sealed class UpdateMtrlPriceExcutor : ExcutorBase { Dictionary replacements = new Dictionary(); protected override void ExcuteInternal(UpdateMtrlPriceRequest request, object state, UpdateMtrlPriceResponse rslt) { var tokendata = BllHelper.GetToken(request.token); if (tokendata == null) { rslt.ErrMsg = "会话已经中断,请重新登录"; return; } if (request.mattressid <= 0) { rslt.ErrMsg = "床垫id参数为空!"; return; } using (var con = new SqlConnection(GlobalVar.ConnectionString)) using (var cmd = con.CreateCommand()) { con.Open(); var mattress = new u_mattress(); if (DbSqlHelper.SelectOne(cmd, "u_mattress", "mattressid = @mattressid", new Dictionary() { { "mattressid", request.mattressid } }, mattress, "erp_mtrlid,erp_mtrlcode, erp_mtrlname, erp_mtrlmode, erp_mtrltypeid, erp_mtrltype, erp_mtrlunit, erp_mtrlengname,nottax_factory_cost,dept_profitrate,dept_profitrate_rangli,commission,taxes,fob,extras_cost") != 1) { rslt.ErrMsg = "床垫报价单匹配失败"; return; } var l1Helper = HelperBase.GetHelper(cmd); l1Helper.context = new HelperBase.Context() { tokendata = tokendata }; l1Helper.CheckLogin(); var lde_dijia_cost = mattress.nottax_factory_cost / (mattress.dept_profitrate + mattress.dept_profitrate_rangli / 100); var lde_commission = lde_dijia_cost / (1 - (mattress.commission - 1)) - lde_dijia_cost; var ls_bj_mxdscrp = "底价:" + lde_dijia_cost.Value.ToString("###0.00") + ", 佣金:" + lde_commission.Value.ToString("###0.00") + ", 税金:" + mattress.taxes.Value.ToString("###0.00") + ", fob:" + mattress.fob.Value.ToString("###0.00") + ", 最后更新日期:" + DateTime.Today.ToString("yyyy-MM-dd") + "," + mattress.nottax_factory_cost.Value.ToString("###0.00"); mattress.bj_mxdscrp = ls_bj_mxdscrp; var errMsg = l1Helper.SaveMtrldef(mattress, "bj_mxdscrp"); if (!string.IsNullOrEmpty(errMsg)) { rslt.ErrMsg = errMsg; return; } errMsg = l1Helper.UpdateL1Planprice(mattress.erp_mtrlid.Value, mattress.nottax_dept_cost.Value); if (!string.IsNullOrEmpty(errMsg)) { rslt.ErrMsg = errMsg; return; } //更新床网半成品 var mattressMx = new u_mattress_mx_mtrl(); if (DbSqlHelper.SelectOne(cmd, "u_mattress_mx_mtrl", "erp_mtrlid <> 0 AND mattressid = @mattressid", new Dictionary() { { "mattressid", request.mattressid } }, mattress, "mtrlid , erp_mtrlid") == 1) { decimal lde_cost = 0; var ll_erp_mtrlid = 0; cmd.CommandText = @"select isnull(total_cost,0) - isnull(sponge_mtrl_cost,0) - isnull(felt_mtrl_cost,0) - isnull(felt_mtrl_x_cost,0) - isnull(packet_mtrl_cost,0) - isnull(packet_hr_cost,0) AS cw_cost FROM u_bednet WHERE mattressid = @deptid"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@mattressid", mattressMx.mtrlid); using (var reader = cmd.ExecuteReader()) { if (reader.Read()) { lde_cost = Convert.ToDecimal(reader["nottax_factory_cost"]); } } errMsg = l1Helper.UpdateL1Planprice(mattressMx.erp_mtrlid.Value, lde_cost); if (!string.IsNullOrEmpty(errMsg)) { rslt.ErrMsg = errMsg; return; } } } } } }