using RM.Eai.TotvsMessage.Adapter;
using RM.Eai.TotvsMessage.IService;
using RM.Eai.TotvsMessage.Lib;
using RM.Lib;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace RM.Prj.TotvsMessage.Adapter.Projeto
{
/// <summary>
/// Adapter Envio de Projeto
/// </summary>
[AdapterAttr("PROJECT", "2.000", TransactionDescription = "Project")]
public class Project_Send_2000 : AdapterWebServiceBase
{
/// <summary>
///
/// </summary>
protected override void DoInitializeAdapter()
{
this.AdapterName = "PROJECT";
this.TableName = "MPRJ";
base.DoInitializeAdapter();
}
/// <summary>
///
/// </summary>
/// <param name="parms"></param>
/// <returns></returns>
protected override EAITransformMessageResult DoTransformMessage(EAITransformMessageParam parms)
{
EAITransformMessageResult result = new EAITransformMessageResult(null, null);
Project_Model_V2_BusinessContent businessContentObj = new Project_Model_V2_BusinessContent();
DataSet dsMPrj = ((DataSet)parms.ObjOriginal);
DataTable dtProject = dsMPrj.Tables["MPRJ"];
DataTable dtMPeriodo = dsMPrj.Tables["MPERIODO"];
if (dtProject.Rows.Count != 1)
throw new ExceptionRMSValidateException(Properties.Resources.sPrjValidacaoSendProject);
DataRow rowProject = dtProject.Rows[0];
businessContentObj.CompanyId = RMSConvert.ToString(rowProject["CODCOLIGADA"]);
businessContentObj.BranchId = RMSConvert.ToString(rowProject["CODFILIAL"]);
businessContentObj.CompanyInternalId = RMSConvert.ToString(rowProject["COMPANYINTERNALID"]);
businessContentObj.InternalId = RMSConvert.ToString(rowProject["INTERNALID"]);
businessContentObj.Code = RMSConvert.ToString(rowProject["CODPRJ"]);
businessContentObj.Description = RMSConvert.ToString(rowProject["DESCRICAO"]);
if (rowProject["CODCCUSTO"] != DBNull.Value)
businessContentObj.CostCenterCode = RMSConvert.ToString(rowProject["CODCCUSTO"]);
DataTable dtMprjStatusLog = dsMPrj.Tables["MPRJSTATUSLOG"];
if (dtMprjStatusLog.Rows.Count > 0)
{
DataRow rowDtStatusLog = dtMprjStatusLog.Rows[0];
businessContentObj.RegisterDate = RMSConvert.ToDateTime(rowDtStatusLog["DATAMUDANCA"]);
businessContentObj.StatusProject = RMSConvert.ToInt32(rowProject["POSICAO"]);
}
if (dtMPeriodo.Rows.Count > 0)
{
DataRow rowMPeriodo = dtMPeriodo.Rows[0];
if (rowMPeriodo["DTINICIO"] != DBNull.Value)
businessContentObj.BeginDate = RMSConvert.ToDateTime(rowMPeriodo["DTINICIO"]);
if (rowMPeriodo["DTFIM"] != DBNull.Value)
businessContentObj.FinalDate = RMSConvert.ToDateTime(rowMPeriodo["DTFIM"]);
}
if (rowProject["CNOPRJ"] != DBNull.Value)
businessContentObj.WorkCode = RMSConvert.ToString(rowProject["CNOPRJ"]).Replace(".", string.Empty).Replace("-", string.Empty).Replace("/", string.Empty);
if (rowProject["INDPRESTSRV"] != DBNull.Value && (RMSConvert.ToInt32(rowProject["INDPRESTSRV"]) != 0))
{
switch (RMSConvert.ToInt32(rowProject["INDPRESTSRV"]))
{
case 1:
businessContentObj.WorkId = 0;
break;
case 2:
businessContentObj.WorkId = 1;
break;
case 3:
businessContentObj.WorkId = 2;
break;
default:
break;
}
}
if (rowProject["CGCCFO"] != DBNull.Value)
businessContentObj.WorkGovernmentalId = RMSConvert.ToString(rowProject["CGCCFO"]).Replace(".", string.Empty).Replace("-", string.Empty).Replace("/", string.Empty);
if (rowProject["TPPRJ"] != DBNull.Value)
businessContentObj.WorkType = RMSConvert.ToString(rowProject["TPPRJ"]);
return base.DoTransformMessage(parms);
}
/// <summary>
///
/// </summary>
/// <returns></returns>
protected override List<InfoTableDePara> DoGetInfoTableDePara()
{
List<InfoTableDePara> tablesDePara = new List<InfoTableDePara>();
InfoTableDePara table = new InfoTableDePara("MPRJ", "PROJECT");
table.DescriptionName = "Projeto";
InfoColumnDePara column = new InfoColumnDePara(EAIConsts.ctINTERNALID, "CODCOLIGADA|IDPRJ", "MPRJ");
column.ForeignKeyDePara = false;
column.ColumnCaptionCode = "CODPRJ";
column.ColumnCaption = Properties.Resources.sPrjCodPrj;
table.ColumnsName.Add(column);
column = new InfoColumnDePara("CompanyInternalId", "CODCOLIGADA|CODFILIAL", "GFILIAL");
column.ForeignKeyDePara = true;
column.ColumnCaptionCode = "CODCOLIGADA";
column.ColumnCaption = Properties.Resources.SPrjEmpProjeto;
table.ColumnsName.Add(column);
column = new InfoColumnDePara("CostCenterInternalId", "CODCOLIGADA|CODCCUSTO", "GCCUSTO");
column.ForeignKeyDePara = true;
column.ColumnCaptionCode = "CODCCUSTO";
column.ColumnCaption = Properties.Resources.SPrjCCustoProjeto;
table.ColumnsName.Add(column);
tablesDePara.Add(table);
return tablesDePara;
}
}
}
|