Ejemplo n.º 1
0
        private Tercero TerceroFromOracle(DataRow fila)
        {
            var tercero = new Tercero();

            try
            {
                tercero.Accountid            = Guid.Empty;
                tercero.Aen_claveintegracion = ((string)fila[NombreCamposTercero.Aen_claveintegracionORACLE]).Trim();
                tercero.Aen_Acronimo         = fila[NombreCamposTercero.Aen_AcronimoORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_AcronimoORACLE]).Trim();
                tercero.Aen_An8                         = fila[NombreCamposTercero.Aen_An8ORACLE] == DBNull.Value ? string.Empty : fila[NombreCamposTercero.Aen_An8ORACLE].ToString().Trim();
                tercero.Aen_Alumno                      = fila[NombreCamposTercero.Aen_AlumnoORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_AlumnoORACLE] == 1;
                tercero.Aen_Profesor                    = fila[NombreCamposTercero.Aen_ProfesorORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_ProfesorORACLE] == 1;
                tercero.Aen_Responsable                 = fila[NombreCamposTercero.Aen_ResponsableORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_ResponsableORACLE] == 1;
                tercero.Aen_Apellidos                   = fila[NombreCamposTercero.Aen_ApellidosORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_ApellidosORACLE]).Trim();
                tercero.Emailaddress1                   = fila[NombreCamposTercero.Emailaddress1ORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Emailaddress1ORACLE]).Trim();
                tercero.ParentaccountidSTR              = fila[NombreCamposTercero.ParentaccountidORACLE] == DBNull.Value ? string.Empty : fila[NombreCamposTercero.ParentaccountidORACLE].ToString().Trim();
                tercero.Parentaccountid                 = fila[NombreCamposTercero.ParentaccountidORACLE] == DBNull.Value ? Guid.Empty : Crm.FindTerceroDiccByClave(tercero.ParentaccountidSTR);
                tercero.Aen_Delegacionid                = fila[NombreCamposTercero.Aen_DelegacionidORACLE] == DBNull.Value ? Guid.Empty : Crm.FindDelegacion(((string)fila[NombreCamposTercero.Aen_DelegacionidORACLE]).Trim());
                tercero.Aen_Departamentoid              = fila[NombreCamposTercero.Aen_DepartamentoidORACLE] == DBNull.Value ? Guid.Empty : Crm.FindDepartamentoCrm(((string)fila[NombreCamposTercero.Aen_DepartamentoidORACLE]).Trim());
                tercero.Aen_Paisdocumentoid             = fila[NombreCamposTercero.Aen_PaisdocumentoidORACLE] == DBNull.Value ? Guid.Empty : Crm.FindPaisCrm(((string)fila[NombreCamposTercero.Aen_PaisdocumentoidORACLE]).Trim());
                tercero.Aen_Escliente                   = fila[NombreCamposTercero.Aen_EsclienteORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_EsclienteORACLE] == 1;
                tercero.Aen_Esclientecertool            = fila[NombreCamposTercero.Aen_EsclientecertoolORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_EsclientecertoolORACLE] == 1;
                tercero.Aen_Esclientelaboratorio        = fila[NombreCamposTercero.Aen_EsclientelaboratorioORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_EsclientelaboratorioORACLE] == 1;
                tercero.Aen_Esclienteweberratum         = fila[NombreCamposTercero.Aen_EsclienteweberratumORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_EsclienteweberratumORACLE] == 1;
                tercero.Aen_Escompradordenormas         = fila[NombreCamposTercero.Aen_EscompradordenormasORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_EscompradordenormasORACLE] == 1;
                tercero.Aen_Esempleado                  = fila[NombreCamposTercero.Aen_EsempleadoORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_EsempleadoORACLE] == 1;
                tercero.Aen_Eslibreria                  = fila[NombreCamposTercero.Aen_EslibreriaORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_EslibreriaORACLE] == 1;
                tercero.Aen_Esmiembroctc                = fila[NombreCamposTercero.Aen_EsmiembroctcORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_EsmiembroctcORACLE] == 1;
                tercero.Aen_Esmiembroune                = fila[NombreCamposTercero.Aen_EsmiembrouneORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_EsmiembrouneORACLE] == 1;
                tercero.Aen_Esorganismo                 = fila[NombreCamposTercero.Aen_EsorganismoORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_EsorganismoORACLE] == 1;
                tercero.Aen_Esproveedor                 = fila[NombreCamposTercero.Aen_EsproveedorORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_EsproveedorORACLE] == 1;
                tercero.Aen_Essuscriptor                = fila[NombreCamposTercero.Aen_EssuscriptorORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_EssuscriptorORACLE] == 1;
                tercero.Aen_Revistaaenor                = fila[NombreCamposTercero.Aen_RevistaaenorORACLE] == DBNull.Value ? false : (decimal)fila[NombreCamposTercero.Aen_RevistaaenorORACLE] == 1;
                tercero.Statecode                       = fila[NombreCamposTercero.StatecodeORACLE] == DBNull.Value ? string.Empty : (string)fila[NombreCamposTercero.StatecodeORACLE];
                tercero.Aen_Bloqueadocliente            = fila[NombreCamposTercero.Aen_BloqueadoclienteORACLE] == DBNull.Value ? string.Empty : (fila[NombreCamposTercero.Aen_BloqueadoclienteORACLE]).ToString().Replace(".", "").Trim();
                tercero.Aen_Bloqueadoproveedor          = fila[NombreCamposTercero.Aen_BloqueadoproveedorORACLE] == DBNull.Value ? string.Empty : (fila[NombreCamposTercero.Aen_BloqueadoproveedorORACLE]).ToString().Replace(".", "").Trim();
                tercero.Aen_Estadosolicitudclienteerp   = fila[NombreCamposTercero.Aen_EstadosolicitudclienteerpORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_EstadosolicitudclienteerpORACLE]).Replace(".", "").Trim();
                tercero.Aen_Estadosolicitudempleadoerp  = fila[NombreCamposTercero.Aen_EstadosolicitudempleadoerpORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_EstadosolicitudempleadoerpORACLE]).Replace(".", "").Trim();
                tercero.Aen_Estadosolicitudproveedorerp = fila[NombreCamposTercero.Aen_EstadosolicitudproveedorerpORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_EstadosolicitudproveedorerpORACLE]).Replace(".", "").Trim();
                tercero.Fax                      = fila[NombreCamposTercero.FaxORACLE] == DBNull.Value ? string.Empty : fila[NombreCamposTercero.FaxORACLE].ToString().Trim();
                tercero.Aen_Fechadealta          = fila[NombreCamposTercero.Aen_FechadealtaORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_FechadealtaORACLE]).Trim();
                tercero.Aen_Fechadebaja          = fila[NombreCamposTercero.Aen_FechadebajaORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_FechadebajaORACLE]).Trim();
                tercero.Aen_Identificadortercero = fila[NombreCamposTercero.Aen_IdentificadorterceroORACLE] == DBNull.Value ? string.Empty : Convert.ToString(fila[NombreCamposTercero.Aen_IdentificadorterceroORACLE]).Trim();
                tercero.Aen_Clienteerpid         = fila[NombreCamposTercero.Aen_ClienteerpidORACLE] == DBNull.Value ? string.Empty : Convert.ToString(fila[NombreCamposTercero.Aen_ClienteerpidORACLE]).Trim();
                tercero.Aen_Empleadoerpid        = fila[NombreCamposTercero.Aen_EmpleadoerpidORACLE] == DBNull.Value ? string.Empty : Convert.ToString(fila[NombreCamposTercero.Aen_EmpleadoerpidORACLE]).Trim();
                tercero.Aen_Proveedorerpid       = fila[NombreCamposTercero.Aen_ProveedorerpidORACLE] == DBNull.Value ? string.Empty : Convert.ToString(fila[NombreCamposTercero.Aen_ProveedorerpidORACLE]).Trim();
                tercero.Aen_Industriaaenor       = fila[NombreCamposTercero.Aen_IndustriaaenorORACLE] == DBNull.Value ? Guid.Empty : Crm.FindIndustriaAenorCrm((fila[NombreCamposTercero.Aen_IndustriaaenorORACLE]).ToString().Trim());
                tercero.Revenue                  = fila[NombreCamposTercero.RevenueORACLE] == DBNull.Value ? decimal.MinValue : Convert.ToDecimal(fila[NombreCamposTercero.RevenueORACLE]);
                tercero.Aen_loginempleado        = fila[NombreCamposTercero.Aen_loginempleadoORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_loginempleadoORACLE]).Trim();
                tercero.Aen_Nombredelcliente     = fila[NombreCamposTercero.Aen_NombredelclienteORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_NombredelclienteORACLE]).Trim();
                tercero.Name                     = fila[NombreCamposTercero.NameORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.NameORACLE]).Trim();
                tercero.Aen_Numerodocumento      = fila[NombreCamposTercero.Aen_NumerodocumentoORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_NumerodocumentoORACLE]).Trim();
                tercero.Aen_Observaciones        = fila[NombreCamposTercero.Aen_ObservacionesORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_ObservacionesORACLE]).Trim();
                tercero.Aen_Origen               = fila[NombreCamposTercero.Aen_OrigenORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_OrigenORACLE]).Replace(".", "").Trim();
                tercero.Aen_Riesgopagoaxesor     = fila[NombreCamposTercero.Aen_RiesgopagoaxesorORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_RiesgopagoaxesorORACLE]).Replace(".", "").Trim();
                tercero.Aen_Sectoraenor          = fila[NombreCamposTercero.Aen_SectoraenorORACLE] == DBNull.Value ? Guid.Empty : Crm.FindSectorAenorCrm((fila[NombreCamposTercero.Aen_SectoraenorORACLE]).ToString().Trim());
                tercero.Aen_Genero               = fila[NombreCamposTercero.Aen_GeneroORACLE] == DBNull.Value ? string.Empty : Convert.ToString(fila[NombreCamposTercero.Aen_GeneroORACLE]).Trim();
                tercero.Aen_Siglas               = fila[NombreCamposTercero.Aen_SiglasORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_SiglasORACLE]).Trim();
                tercero.Websiteurl               = fila[NombreCamposTercero.WebsiteurlORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.WebsiteurlORACLE]).Trim();
                tercero.Aen_Subtipodetercero     = fila[NombreCamposTercero.Aen_SubtipodeterceroORACLE] == DBNull.Value ? Guid.Empty : Crm.FindSubtipoTerceroCrm(((string)fila[NombreCamposTercero.Aen_SubtipodeterceroORACLE]).Trim());
                tercero.Telephone1               = fila[NombreCamposTercero.Telephone1ORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Telephone1ORACLE]).Trim();
                tercero.Aen_Tipodocumento        = fila[NombreCamposTercero.Aen_TipodocumentoORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_TipodocumentoORACLE]).Replace(".", "").Trim();
                tercero.Aen_Tipopersona          = fila[NombreCamposTercero.Aen_TipopersonaORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_TipopersonaORACLE]).Replace(".", "").Trim();
                //tercero.Aen_Tipoproveedor = fila[NombreCamposTercero.Aen_TipoproveedorORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_TipoproveedorORACLE]).Replace(".", "").Trim();
                tercero.Aen_Observacionesmigracion       = fila[NombreCamposTercero.Aen_ObservacionesmigracionORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_ObservacionesmigracionORACLE]).Trim();
                tercero.Numberofemployees                = fila[NombreCamposTercero.NumberofemployeesORACLE] == DBNull.Value ? string.Empty : (fila[NombreCamposTercero.NumberofemployeesORACLE]).ToString().Trim();
                tercero.Transactioncurrencyid            = fila[NombreCamposTercero.TransactioncurrencyidORACLE] == DBNull.Value ? Guid.Empty : Crm.FindTransactioncurrencyCrm(((string)fila[NombreCamposTercero.TransactioncurrencyidORACLE]).Trim());
                tercero.TransactioncurrencyidString      = fila[NombreCamposTercero.TransactioncurrencyidORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.TransactioncurrencyidORACLE]).Trim();
                tercero.Aen_Webcorporativa               = fila[NombreCamposTercero.Aen_WebcorporativaORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_WebcorporativaORACLE]).Trim();
                tercero.Aen_Telefonocorporativo          = fila[NombreCamposTercero.Aen_TelefonocorporativoORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_TelefonocorporativoORACLE]).Trim();
                tercero.Aen_Correoelectronicocorporativo = fila[NombreCamposTercero.Aen_CorreoelectronicocorporativoORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_CorreoelectronicocorporativoORACLE]).Trim();
                tercero.Aen_Condicionesdepagoid          = fila[NombreCamposTercero.Aen_CondicionesdepagoidORACLE] == DBNull.Value ? Guid.Empty : Crm.FindCondiciondepago(((string)fila[NombreCamposTercero.Aen_CondicionesdepagoidORACLE]).Trim());
                tercero.Aen_Formasdepagoid               = fila[NombreCamposTercero.Aen_FormasdepagoidORACLE] == DBNull.Value ? Guid.Empty : Crm.FindFormadepago(((string)fila[NombreCamposTercero.Aen_FormasdepagoidORACLE]).Trim());
                tercero.Aen_Entradadelcliente            = fila[NombreCamposTercero.Aen_EntradadelclienteORACLE] == DBNull.Value ? string.Empty : Convert.ToString(fila[NombreCamposTercero.Aen_EntradadelclienteORACLE]).Replace(".", "").Trim();
                tercero.Aen_Evaluaciondelaconformidad    = fila[NombreCamposTercero.Aen_EvaluaciondelaconformidadORACLE] == DBNull.Value ? false : (short)fila[NombreCamposTercero.Aen_EvaluaciondelaconformidadORACLE] == 1;
                tercero.Aen_Escompradordelibros          = fila[NombreCamposTercero.Aen_EscompradordelibrosORACLE] == DBNull.Value ? false : (short)fila[NombreCamposTercero.Aen_EscompradordelibrosORACLE] == 1;
                tercero.Aen_Tipodocumentoempleado        = fila[NombreCamposTercero.Aen_TipodocumentoempleadoORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_TipodocumentoempleadoORACLE]).Replace(".", "").Trim();
                tercero.Aen_Numerodocumentoempleado      = fila[NombreCamposTercero.Aen_NumerodocumentoempleadoORACLE] == DBNull.Value ? string.Empty : ((string)fila[NombreCamposTercero.Aen_NumerodocumentoempleadoORACLE]).Trim();
            }
            catch (Exception e)
            {
                Comun.LogText("Error al crear el tercero: " + tercero.Aen_claveintegracion + " ::: " + e.ToString());
            }
            return(tercero);
        }
Ejemplo n.º 2
0
        internal void Iniciar()
        {
            Stopwatch sW_TODO = new Stopwatch(), sW_cacheoDatos = new Stopwatch(), sW_createUpdate = new Stopwatch(), sW_leeOra = new Stopwatch(),
                      sW_cnae = new Stopwatch(), sW_emparentar = new Stopwatch(), sW_desactivar = new Stopwatch();

            sW_TODO.Start();

            var comun = new Comun();

            //TODO 0. Obtener de CRM los campos parametrizados que van a intervenir en el proceso (entidad de configuracion)


            //1. Bajar los terceros de CRM a un dictionary<string, Tercero>: solo el id_oracle si no comparamos, o bien todos los campos a sincronizar si comparamos
            //diccionarios.getAllTercerosFromCRM();
            Crm crm = new Crm();

            sW_cacheoDatos.Start();
            crm.CachearInfoCRM();
            sW_cacheoDatos.Stop();
            comun.LogText(" ----->TIEMPO CACHEO DATOS: " + sW_cacheoDatos.Elapsed.ToString() + " <-----");

            //BorrarPrueba(crm);


            //2. Leer la tabla del Oracle
            Oracle oracle = new Oracle(crm);

            oracle.CadenaConOracle = comun.ConnStringOracle;
            sW_leeOra.Start();
            oracle.LeerTerceros();
            sW_leeOra.Stop();
            comun.LogText(" ----->TIEMPO LECTURA ORACLE: " + sW_leeOra.Elapsed.ToString() + " <-----");


            //3. Por cada elemento del diccionario de oracle, comprobar contra el diccionario crm. Sino se encuentra, se crea. Si se
            // encuentra, se comprueba campo a campo para validar si se machaca o no
            // 4.Hacer las creates/ updates con executemultiplerequest
            bool    ok;
            Tercero auxTerCRM = new Tercero();
            Entity  tercUpdate;

            sW_createUpdate.Start();

            foreach (var terceroORACLE in oracle.Terceros)
            {
                ok = crm.TercerosCRM.TryGetValue(terceroORACLE.Key, out auxTerCRM);

                //Guardamos los Terceros que a posteriori desactivaremos
                if (terceroORACLE.Value.Statecode.Equals("Inactivo"))
                {
                    crm.TercerosADesactivar.Add(terceroORACLE.Value.Aen_claveintegracion);
                }

                if (ok) // Existe. Comprobar campo a campo
                {
                    try
                    {
                        tercUpdate = new Entity("account");
                        bool ret = comun.ActualizarTercero(terceroORACLE.Value, auxTerCRM, ref tercUpdate);

                        if (ret)
                        {
                            crm.AnadirElementoEmr(new UpdateRequest {
                                Target = tercUpdate
                            });
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("ERROR al ACTUALIZAR el Entity equivalente del Tercero " + terceroORACLE.Value.Aen_claveintegracion + " ::: " + e.ToString());
                    }
                }
                else // No existe, se crea.
                {
                    try
                    {
                        Entity newTercero = terceroORACLE.Value.GetEntityFromTercero();
                        crm.AnadirElementoEmr(new CreateRequest {
                            Target = newTercero
                        });
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("ERROR al CREAR el Entity equivalente del Tercero " + terceroORACLE.Value.Aen_claveintegracion + " ::: " + e.ToString());
                    }
                }
            }
            crm.ProcesarUltimosEmr();
            sW_createUpdate.Stop();
            comun.LogText(" ----->TIEMPO CREATE/UPDATE TERCEROS: " + sW_createUpdate.Elapsed.ToString() + " <-----");


            //5. Carga de CNAES (TABLA CARGADA ANTERIORMENTE? A QUE ENTIDAD VA? SE PUEDE HACER EN ANTERIOR UPDATE/CREATE?)
            sW_cnae.Start();
            oracle.LeerCNAES();
            crm.CargaCNAEs(oracle.ListaCNAEs);
            sW_cnae.Stop();
            comun.LogText(" -----> END; TIEMPO CARGA CNAES: " + sW_cnae.Elapsed.ToString() + " <-----");


            //6. Emparentar terceros pendientes
            sW_emparentar.Start();
            crm.EmparentaTerceros();
            sW_emparentar.Stop();
            comun.LogText(" -----> END; TIEMPO EMPARENTACION TERCEROS: " + sW_emparentar.Elapsed.ToString() + " <-----");


            //7. Desactivar terceros que vienen como Inactivos
            sW_desactivar.Start();
            crm.DesactivarTerceros();
            sW_desactivar.Stop();
            comun.LogText(" -----> END; TIEMPO DESACTIVAR TERCEROS INACTIVOS: " + sW_desactivar.Elapsed.ToString() + " <-----");


            sW_TODO.Stop();
            comun.LogText(" -----> END; TIEMPO TOTAL: " + sW_TODO.Elapsed.ToString() + " <-----");
        }