123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- using System;
- using System.Collections.Generic;
- using System.Data.SqlClient;
- using System.Linq;
- using System.Text;
- using JLHHJSvr.BLL;
- using JLHHJSvr.Com;
- using JLHHJSvr.Com.Model;
- using JLHHJSvr.LJException;
- using JLHHJSvr.Tools;
- using LJLib.DAL.SQL;
- using LJLib.Net.SPI.Server;
- namespace JLHHJSvr.Excutor
- {
- internal sealed class SaveMattressExcutor : ExcutorBase<SaveMattressRequest, SaveMattressResponse>
- {
- protected override void ExcuteInternal(SaveMattressRequest request, object state, SaveMattressResponse rslt)
- {
- var tokendata = BllHelper.GetToken(request.token);
- if (tokendata == null)
- {
- rslt.ErrMsg = "会话已经中断,请重新登录";
- return;
- }
- if (request.mattress == null)
- {
- rslt.ErrMsg = "缺少主表信息";
- return;
- }
- using (var con = new SqlConnection(GlobalVar.ConnectionString))
- using (var cmd = con.CreateCommand())
- {
- con.Open();
- // 初始化属性
- //AutoInit.AutoInitS(cmd, request.mattress);
- using (cmd.Transaction = con.BeginTransaction())
- {
- try
- {
- var dtNow = DateTime.Now;
- var fields = "mattressname, deptid, mattresscode, mattresstypeid, mattress_width, mattress_length, mattress_height, packtype, packqty, woodpallettype, total_hr_cost, total_material_cost, fees_dscrp, total_fees_cost, total_cost, taxrate, taxes, commissionrate, commission, fob, profitrate, dept_profitrate, moneyrate, nottax_factory_cost, nottax_dept_cost, foreign_cost, diameter, area, cabinet_type, hrcost, biandaicost, createtime, createby, mattressrelcode, other_rate, flag, dept_profitrate_rangli, profitrate_point, if_moneyrate, discount, if_m_chai, if_z_chai, if_d_chai, if_n_butao, if_w_butao, if_m_wbutao_way, s_cover_qty, z_cover_qty, x_cover_qty, biandai_qty, s_m_cover_qty, z_m_cover_qty, x_m_cover_qty, chaizhuang_point, haimian_point, if_zhedie_type, qr_auditingrep, qr_auditingdate, if_bcp_type, zhizao_amt, foreign_cost_bz, cubage";
- var fieldsMx = "mattressmxid,mattressid,formulaid,formula,replace_formula,if_success,priceunit,shrinkage,mtrlid,price,gram_weight,cloth_width,if_inputqty,qty ,costamt,if_areaprice,thickness,chastr,xu,useqty,useformula,replace_useformula,gydscrp";
- int currentMattressID = request.mattress.mattressid;
- var isNew = false;
- if (request.mattress.mattressid == null || request.mattress.mattressid <= 0)
- {
- isNew = true;
- //新建
- request.mattress.createtime = dtNow;
- request.mattress.mattressid = BllHelper.GetID(cmd, "u_mattress");
- currentMattressID = request.mattress.mattressid;
- fields = "mattressid," + fields;
- DbSqlHelper.Insert(cmd, "u_mattress", null, request.mattress, fields);
- }
- else
- {
- //修改
- request.mattress.createtime = dtNow;
- DbSqlHelper.Update(cmd, "u_mattress", null, request.mattress, "mattressid", fields);
- // 删除所有明细
- cmd.CommandText = @"DELETE u_mattress_mx_mtrl WHERE mattressid = @mattressid";
- cmd.Parameters.Clear();
- cmd.Parameters.AddWithValue("@mattressid", request.mattress.mattressid);
- cmd.ExecuteNonQuery();
- }
- rslt.mattressid = currentMattressID;
- if (request.mattressMx != null && request.mattressMx.Count > 0)
- {
- foreach (var item in request.mattressMx)
- {
- item.mattressid = currentMattressID;
- if (item.mattressmxid == null || item.mattressmxid <= 0)
- {
- item.mattressmxid = BllHelper.GetID(cmd, "u_mattress_mx_mtrl");
- }
- DbSqlHelper.Insert(cmd, "u_mattress_mx_mtrl", null, item, fieldsMx);
- }
- }
- // 更新计价历史
- if (isNew)
- {
- var hisprice = new u_his_price
- {
- bednetid_mattressid = request.mattress.mattressid,
- typeid = 1,
- cmpdate = dtNow,
- cmpemp = tokendata.username,
- nottax_dept_cost = request.mattress.nottax_dept_cost,
- dept_cost = request.mattress.dept_cost,
- foreign_cost = request.mattress.foreign_cost
- };
- var fieldsHs = "bednetid_mattressid, typeid, cmpdate, cmpemp, nottax_dept_cost, dept_cost, foreign_cost";
- DbSqlHelper.Insert(cmd, "u_his_price", null, hisprice, fieldsHs);
- }
- else
- {
- cmd.CommandText = @"UPDATE u_his_price SET
- cmpdate = @cmpdate,
- cmpemp = @cmpemp,
- nottax_dept_cost = @nottax_dept_cost,
- dept_cost = @dept_cost,
- foreign_cost = @foreign_cost
- WHERE bednetid_mattressid = @bednetid_mattressid AND typeid = 1";
- cmd.Parameters.Clear();
- cmd.Parameters.AddWithValue("@bednetid_mattressid", request.mattress.mattressid);
- cmd.Parameters.AddWithValue("@cmpdate", dtNow);
- cmd.Parameters.AddWithValue("@cmpemp", tokendata.username);
- cmd.Parameters.AddWithValue("@nottax_dept_cost", request.mattress.nottax_dept_cost);
- cmd.Parameters.AddWithValue("@dept_cost", request.mattress.dept_cost);
- cmd.Parameters.AddWithValue("@foreign_cost", request.mattress.foreign_cost);
- cmd.ExecuteNonQuery();
- }
- // 复制配置清单和物料清单
- cmd.Transaction.Commit();
- }
- catch (Exception e)
- {
- cmd.Transaction.Rollback();
- rslt.ErrMsg = e.ToString();
- }
- }
- }
- }
- }
- }
|