ListAction

using System;
using System.Collections;
using System.Data;
using System.Data.SqlClient;
using SysUtility;
using SysUtility.Utils;
using SysUtility.BaseEntity;
using SysUtility.WebControls;
using Entities;
using Microsoft.ApplicationBlocks.Data;
using Microsoft.ApplicationBlocks.ExceptionManagement;
using System.EnterpriseServices;
using Business.Manager;

namespace Business
{
 /// <summary>
 /// LmeTradingManager 的摘要说明。
 /// </summary>
 [Transaction(TransactionOption.Required)]
 public class LmeTradingManager : ServicedComponent
 {
  IController adminHelper = new RMController();

  #region LmeSave
  [AutoComplete]
  public bool LmeSave(TaskEntity taskEntity, LmeTradingEntity lmeEntity, ArrayList listMemo, int commSettingId)
  {
   return LmeSave(taskEntity, lmeEntity, listMemo, commSettingId, false);
  }
  [AutoComplete]
  public bool LmeSave(TaskEntity taskEntity, LmeTradingEntity lmeEntity, ArrayList listMemo, int commSettingId, bool istrade)
  {
   bool bresult = true;
   int taskId = -1;
   try
   {
    int oldTaskId = taskEntity.Id;
    // 设置备注列表
    string strMemoListId = SSNGenerator.GetSSNValue(KeyConsts.SSNCONSTS_MEMOS);
    MemosEntity memosEntity;
    for ( int i = 0; i < listMemo.Count; i++ )
    {
     memosEntity = (MemosEntity)listMemo[i];
     memosEntity.MemoList = int.Parse(strMemoListId);
     bresult &= (adminHelper.Insert(memosEntity) > 0);
    }
    taskId =  int.Parse(SSNGenerator.GetSSNValue(KeyConsts.SSNCONSTS_TASK));
    taskEntity.Id = taskId;
    lmeEntity.TaskId = taskId;
    lmeEntity.MemoList = int.Parse(strMemoListId);
    lmeEntity.FinalPrice = 0; // 最终价格
    // 插入信息
    bresult &= (adminHelper.Insert(taskEntity) > 0) & (adminHelper.Insert(lmeEntity) > 0);

    CommSettingEntity commSetting = new CommSettingEntity();
    commSetting.Id = commSettingId;
    ConvertUtil.FillEntity(commSetting);
    // 对佣金进行扣取
    if ( commSetting.SettlementType.Equals("1") )
    {
     // 插入财务任务纪录
     FinancialTaskEntity financial = new FinancialTaskEntity();
     financial.Id =  int.Parse(SSNGenerator.GetSSNValue(KeyConsts.SSNCONSTS_FINANCIALTASK));
     financial.Type = "1";
     bresult &= (adminHelper.Insert(financial) > 0);
     // 插入佣金设置纪录
     CommBakEntity commbak = new CommBakEntity();
     commbak.Id = int.Parse(SSNGenerator.GetSSNValue(KeyConsts.SSNCONSTS_COMMBAK));
     commbak.CommId = commSetting.Id;
     commbak.CommType = commSetting.CommType;
     commbak.CommRate = commSetting.CommRate;
     commbak.CommMoney = commSetting.CommMoney;
     commbak.CommMT = commSetting.CommMT;
     commbak.CommWT = commSetting.CommWT;
     commbak.SettlementType = commSetting.SettlementType;
     commbak.Memo = commSetting.Memo;
     bresult &= (adminHelper.Insert(commbak) > 0);
     // 插入客户佣金结算纪录
     CusCommSettleEntity cusCommSettle = new CusCommSettleEntity();
     cusCommSettle.FinTaskId = financial.Id;
     cusCommSettle.TaskId = taskEntity.Id;
     cusCommSettle.Commission = lmeEntity.CommMoney;
     cusCommSettle.MoneyType = lmeEntity.CommMT;
     bresult &= (adminHelper.Insert(cusCommSettle) > 0);
     // 获得与佣金币种一致的客户账户Account(当然是该下单得客户),修改Cash=Cash-佣金
     bresult &= LmeAdmin.SetAccountCash(taskEntity.DenoterId, lmeEntity.CommMoney, lmeEntity.CommMT);
     // 纪录财务帐号历史(HisAccount)
     bresult &= LmeAdmin.SaveHisAccount(taskEntity.StafferId, "1", financial.Id, taskEntity.DenoterId, lmeEntity.CommMT);
    }
    // 是接单后的下单则插入关系
    if ( istrade )
    {
     TradeRelationEntity tradeRelation = new TradeRelationEntity();
     tradeRelation.CusTaskId = oldTaskId;
     tradeRelation.BrokerTaskId = taskId;
     bresult &= (adminHelper.Insert(tradeRelation) > 0);
    }
   }
   catch ( Exception ex )
   {
    bresult = false;
    ExceptionManager.Publish(ex);
   }
   if ( !bresult )
   {
    ContextUtil.SetAbort();
   }
   else
   {
    taskEntity.Id = taskId;
   }
   return bresult;
  }
  [AutoComplete]
  public bool LmeSave(TelConfirmationEntity telConfirmationEntity, string comId)
  {
   bool bresult = true;
   try
   {
    float tradePrice;
    float tradeQuantity;
    float telStepPrice;
    float telStepQuantity;
    float allTelStepQuantity;
    int iresult = LmeAdmin.LmeTelStepValidate(telConfirmationEntity, comId,
     out tradePrice, out tradeQuantity, out telStepPrice, out telStepQuantity, out allTelStepQuantity);
    if ( tradeQuantity<(allTelStepQuantity+telStepQuantity) )
    {
     bresult = false;
    }
    if ( bresult )
    {
     bresult &= (adminHelper.Insert(telConfirmationEntity) > 0);
     LmeAdmin.LmeTelStepValidate(telConfirmationEntity, comId,
      out tradePrice, out tradeQuantity, out telStepPrice, out telStepQuantity, out allTelStepQuantity);
     if ( tradeQuantity < allTelStepQuantity )
     {
      bresult = false;
     }
     if ( bresult )
     {
      if ( tradeQuantity==allTelStepQuantity )
      {
       // 设置相应的下单的状态
       TaskEntity taskSearch = new TaskEntity();
       taskSearch.Id = telConfirmationEntity.TaskId;
       TaskEntity taskResult = new TaskEntity();
       taskResult.Status = "1";
       bresult &= (adminHelper.Update(taskResult, taskSearch)> 0);
       // 设置相应的接单的状态
       //bresult &= (LmeAdmin.SetAcceptLmeStatus(telConfirmationEntity.TaskId)==1);
      }
      if ( tradeQuantity>=allTelStepQuantity )
      {
       // 设置最终价格
       bresult &= (LmeAdmin.SetLmeFinalPrice(telConfirmationEntity.TaskId)==1);
      }
     }
    }
   }
   catch ( Exception ex )
   {
    bresult = false;
    ExceptionManager.Publish(ex);
   }
   if ( !bresult )
   {
    ContextUtil.SetAbort();
   }
   return bresult;
  }
  
  [AutoComplete]
  public bool LmeSave(FaxConfirmationEntity faxEntity, ArrayList listMemo)
  {
   bool bresult = true;
   try
   {
    // 设置备注列表
    string strMemoListId = SSNGenerator.GetSSNValue(KeyConsts.SSNCONSTS_MEMOS);
    MemosEntity memosEntity;
    for ( int i = 0; i < listMemo.Count; i++ )
    {
     memosEntity = (MemosEntity)listMemo[i];
     memosEntity.MemoList = int.Parse(strMemoListId);
     bresult &= (adminHelper.Insert(memosEntity) > 0);
    }
    faxEntity.MemoList = int.Parse(strMemoListId);
    bresult &= (adminHelper.Insert(faxEntity) > 0);
   }
   catch ( Exception ex )
   {
    bresult = false;
    ExceptionManager.Publish(ex);
   }
   if ( !bresult )
   {
    ContextUtil.SetAbort();
   }
   return bresult;
  }
  #endregion
  
  [AutoComplete]
  public bool LmeUpdate(int taskId, TaskEntity taskEntity, LmeTradingEntity lmeEntity, ArrayList listMemo)
  {
   bool bresult = true;
   try
   {
    // 设置备注列表
    MemosEntity memosEntity = new MemosEntity();
    int iMemoListId = lmeEntity.MemoList;
    memosEntity.MemoList = iMemoListId;
    adminHelper.Delete(memosEntity);
    for ( int i = 0; i < listMemo.Count; i++ )
    {
     memosEntity = (MemosEntity)listMemo[i];
     memosEntity.MemoList = iMemoListId;
     bresult &= (adminHelper.Insert(memosEntity) > 0);
    }
    taskEntity.Id = taskId;
    lmeEntity.TaskId = taskId;
    lmeEntity.MemoList = iMemoListId;

    LmeTradingEntity lmeEntitySearch = new LmeTradingEntity();
    lmeEntitySearch.TaskId = taskId;
    TaskEntity taskEntitySearch = new TaskEntity();
    taskEntitySearch.Id = taskId;
    // 修改信息
    bresult &= (adminHelper.Update(taskEntity,taskEntitySearch) > 0) & (adminHelper.Update(lmeEntity, lmeEntitySearch) > 0);
   }
   catch ( Exception ex )
   {
    bresult = false;
    ExceptionManager.Publish(ex);
   }
   if ( !bresult )
   {
    ContextUtil.SetAbort();
   }
   return bresult;
  }
  [AutoComplete]
  public bool LmeUpdate(int taskId, FaxConfirmationEntity faxEntity, ArrayList listMemo)
  {
   bool bresult = true;
   try
   {
    // 设置备注列表
    MemosEntity memosEntity = new MemosEntity();
    int iMemoListId = faxEntity.MemoList;
    memosEntity.MemoList = iMemoListId;
    adminHelper.Delete(memosEntity);
    for ( int i = 0; i < listMemo.Count; i++ )
    {
     memosEntity = (MemosEntity)listMemo[i];
     memosEntity.MemoList = iMemoListId;
     bresult &= (adminHelper.Insert(memosEntity) > 0);
    }
    faxEntity.TaskId = taskId;
    faxEntity.MemoList = iMemoListId;

    FaxConfirmationEntity faxEntitySearch = new FaxConfirmationEntity();
    faxEntitySearch.TaskId = taskId;
    // 修改信息
    bresult &= (adminHelper.Update(faxEntity,faxEntitySearch) > 0);
   }
   catch ( Exception ex )
   {
    bresult = false;
    ExceptionManager.Publish(ex);
   }
   if ( !bresult )
   {
    ContextUtil.SetAbort();
   }
   return bresult;
  }

  [AutoComplete]
  public bool LmeRowDelete(int taskId)
  {
   string sqlText = "LmeRowDelete";
   SqlParameter[] sqlParas = new SqlParameter[4];
   sqlParas[0] = new SqlParameter("@TaskId", taskId);
   sqlParas[1] = new SqlParameter("@ReturnValue", SqlDbType.Int);
   sqlParas[1].Direction = ParameterDirection.ReturnValue;
   
   SqlHelper.ExecuteNonQuery(SystemConsts.SiteSqlServer, CommandType.StoredProcedure, sqlText, sqlParas);
   return int.Parse(sqlParas[1].Value.ToString())==1;
  }
 }
}

posted on 2005-09-19 00:10  刘余学  阅读(191)  评论(0)    收藏  举报

导航