public int DeleteUnidadNegocio(UnidadNegocio unidadNegocio)
        {
            DateTime fechaHoy = DateTime.Now;
            string   consulta = "";

            consulta += " update unidad_negocio set ";
            consulta += "   usuario = @usuario, ";
            consulta += "   fec_modif = @fec_modif, ";
            consulta += "   activo = false ";
            consulta += " where id = @id ";

            try
            {
                con.Open();
                NpgsqlCommand cmd = new NpgsqlCommand(consulta.Trim(), con);
                cmd.Parameters.AddWithValue("@usuario", unidadNegocio.idusuario);
                cmd.Parameters.AddWithValue("@fec_modif", fechaHoy);
                cmd.Parameters.AddWithValue("@id", unidadNegocio.id);

                int regActual = cmd.ExecuteNonQuery();

                return(regActual);
            }
            catch
            {
                throw;
            }
            finally
            {
                con.Close();
            }
        }
        public int AddUnidadNegocio(UnidadNegocio unidadNegocio)
        {
            DateTime fechaHoy = DateTime.Now;
            string   consulta = "";

            consulta += " insert into unidad_negocio ( ";
            consulta += "	 id, clave, descripcion, usuario, fec_modif, activo ";
            consulta += " ) values ( ";
            consulta += "	 nextval('seq_unidad_negocio'), @clave, @descripcion, @usuario, @fec_modif, true ";
            consulta += " ) ";

            try
            {
                con.Open();
                NpgsqlCommand cmd = new NpgsqlCommand(consulta.Trim(), con);
                cmd.Parameters.AddWithValue("@clave", unidadNegocio.clave);
                cmd.Parameters.AddWithValue("@descripcion", unidadNegocio.descripcion);
                cmd.Parameters.AddWithValue("@usuario", unidadNegocio.idusuario);
                cmd.Parameters.AddWithValue("@fec_modif", fechaHoy);

                int regInsert = cmd.ExecuteNonQuery();

                return(regInsert);
            }
            catch
            {
                throw;
            }
            finally
            {
                con.Close();
            }
        }
示例#3
0
 public void InsertarUnidadNegocio(UnidadNegocio sucursal)
 {
     using (var dbc = new SPC_BD())
     {
         dbc.UnidadNegocio.Add(sucursal);
         dbc.SaveChanges();
     }
 }
示例#4
0
        public void ActualizarUnidadNegocio(UnidadNegocio sucursalP)
        {
            using (var dbc = new SPC_BD())
            {
                dbc.Entry(sucursalP).State = EntityState.Modified;

                dbc.SaveChanges();
            }
        }
示例#5
0
 public long UpdateUnidaddNeg(UnidadNegocio item, string ip)//(long id_puestoExterno, string nombrePuesto)
 {
     try
     {
         _context.UnidadNegocios.Update(item);
         procLog.AddLog(ip, procLog.GetPropertyValues(item, System.Reflection.MethodBase.GetCurrentMethod().Name), "OK", 200);
         return(_context.SaveChanges());
     }
     catch (Exception ex)
     {
         procLog.AddLog(ip, procLog.GetPropertyValues(item, System.Reflection.MethodBase.GetCurrentMethod().Name), ex.InnerException.Message, 400);
         return(0);
     }
 }
示例#6
0
        public long AddUnidadNeg(UnidadNegocio item, string ip)
        {
            try
            {
                var respUnidad = _context.UnidadNegocios.Add(item);
                _context.SaveChanges();

                procLog.AddLog(ip, procLog.GetPropertyValues(item, System.Reflection.MethodBase.GetCurrentMethod().Name), "OK", 200);
                return(Int32.Parse(respUnidad.Entity.IdUnidadNegocio.ToString()));
            }
            catch (Exception ex)
            {
                procLog.AddLog(ip, procLog.GetPropertyValues(item, System.Reflection.MethodBase.GetCurrentMethod().Name), ex.InnerException.Message, 400);
                return(0);
            }
        }
示例#7
0
        void cmbUnidadNegocio2()
        {
            List <UnidadNegocio> objList = new List <UnidadNegocio>();
            UnidadNegocio        obj     = new UnidadNegocio();

            obj.Codigo  = "01";
            obj.Negocio = "Metales";
            objList.Add(obj);
            obj         = new UnidadNegocio();
            obj.Codigo  = "02";
            obj.Negocio = "Galvanizado";
            objList.Add(obj);
            cbx_un2.DataSource    = objList;
            cbx_un2.ValueMember   = "Codigo";
            cbx_un2.DisplayMember = "Negocio";
            cbx_un2.Refresh();
        }
        public void cargarcmb()
        {
            cmb_UnidadNegocio.DataSource = null;
            objListUnidadNegocio         = null;
            objListUnidadNegocio         = new List <UnidadNegocio>();
            objUnidadNegocio             = new UnidadNegocio();
            objUnidadNegocio.Codigo      = "01";
            objUnidadNegocio.Negocio     = "METALES";
            objListUnidadNegocio.Add(objUnidadNegocio);
            objUnidadNegocio         = null;
            objUnidadNegocio         = new UnidadNegocio();
            objUnidadNegocio.Codigo  = "02";
            objUnidadNegocio.Negocio = "GALVANIZADO";
            objListUnidadNegocio.Add(objUnidadNegocio);

            cmb_UnidadNegocio.DisplayMember = "Negocio";
            cmb_UnidadNegocio.ValueMember   = "Codigo";
            cmb_UnidadNegocio.DataSource    = objListUnidadNegocio;
        }
        public List <UnidadNegocio> GetAllUnidadNegocioWithModelo()
        {
            List <UnidadNegocio> lstUnidadNegocio = new List <UnidadNegocio>();
            DataTable            dataTable        = queryExecuter.ExecuteQuery("select distinct un.* " +
                                                                               " from unidad_negocio un " +
                                                                               "    join modelo_unidad mu on un.id = mu.id_unidad and mu.activo = true " +
                                                                               " join modelo_negocio mn on mu.id_modelo = mn.id and mn.activo = true " +
                                                                               " join centro_costo cc on mn.id = cc.modelo_negocio_id and cc.activo=true " +
                                                                               " where un.activo = true");

            foreach (DataRow rdr in dataTable.Rows)
            {
                UnidadNegocio unidadNegocio = new UnidadNegocio();
                unidadNegocio.id          = Convert.ToInt64(rdr["id"]);
                unidadNegocio.descripcion = (rdr["descripcion"]).ToString();
                lstUnidadNegocio.Add(unidadNegocio);
            }

            return(lstUnidadNegocio);
        }
        public List <UnidadNegocio> GetAllUnidadNegocio()
        {
            string consulta = "";

            consulta += " select ";
            consulta += "   id, clave, descripcion, usuario, fec_modif, activo ";
            consulta += "   from unidad_negocio ";
            consulta += "   where activo = 'true' ";

            try
            {
                List <UnidadNegocio> lstUnidadNegocio = new List <UnidadNegocio>();

                con.Open();

                NpgsqlCommand    cmd = new NpgsqlCommand(consulta.Trim(), con);
                NpgsqlDataReader rdr = cmd.ExecuteReader();

                while (rdr.Read())
                {
                    UnidadNegocio unidadNegocio = new UnidadNegocio();
                    unidadNegocio.id          = Convert.ToInt64(rdr["id"]);
                    unidadNegocio.clave       = Convert.ToInt32(rdr["id"]);
                    unidadNegocio.descripcion = (rdr["descripcion"]).ToString();
                    unidadNegocio.idusuario   = Convert.ToInt64(rdr["usuario"]);
                    unidadNegocio.fec_modif   = Convert.ToDateTime(rdr["fec_modif"]);
                    unidadNegocio.activo      = Convert.ToBoolean(rdr["activo"]);
                    lstUnidadNegocio.Add(unidadNegocio);
                }
                return(lstUnidadNegocio);
            }
            catch
            {
                throw;
            }
            finally
            {
                con.Close();
            }
        }
示例#11
0
        public IHttpActionResult Send(UnidadNegocio unidadNegocio)
        {
            IEnumerable <Cotizacion_DM> cotizaciones_DM = null;
            var exceptionMsg = string.Empty;

            try
            {
                ClearQuickLog("body_request.json", "Cotizacion");
                var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio());
                cotizaciones_DM = (IEnumerable <Cotizacion_DM>)_cotizacionRepository_DM.GetCotizaciones()[OutParameter.CursorCotizacionDM];
                if (cotizaciones_DM == null || cotizaciones_DM.ToList().Count.Equals(0))
                {
                    return(Ok(cotizaciones_DM));
                }

                var cotizaciones_SF = new List <object>();
                foreach (var cotizacion in cotizaciones_DM)
                {
                    cotizaciones_SF.Add(cotizacion.ToSalesforceEntity());
                }

                /// Obtiene Token para envío a Salesforce
                var authSf    = RestBase.GetToken();
                var token     = authSf[OutParameter.SF_Token].ToString();
                var crmServer = authSf[OutParameter.SF_UrlAuth].ToString();

                /// II. Enviar Oportunidad a Salesforce
                try
                {
                    var objEnvio = new { datos = cotizaciones_SF };
                    QuickLog(objEnvio, "body_request.json", "Cotizacion"); /// ♫ Trace
                    var responseOportunidad = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.CotizacionListMethod, Method.POST, objEnvio, true, token);
                    if (responseOportunidad.StatusCode.Equals(HttpStatusCode.OK))
                    {
                        dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(responseOportunidad.Content);
                        try
                        {
                            var responseList = jsonResponse["Cotizaciones"];            // Obtiene todo el json
                            QuickLog(responseList, "body_response.json", "Cotizacion"); /// ♫ Trace
                            foreach (var item in responseList)
                            {
                                try
                                {
                                    #region Deserialize
                                    var codigoRetorno   = (item["CODIGO_RETORNO"] ?? string.Empty).ToString();
                                    var mensajeRetorno  = (item["MENSAJE_RETORNO"] ?? string.Empty).ToString();
                                    var idCotizacionSf  = (item["ID_COTIZACION_SF"] ?? string.Empty).ToString();
                                    var idOportunidadSf = (item["ID_OPORTUNIDAD_SF"] ?? string.Empty).ToString();
                                    var idCotizacion    = (item["COTIZACION"] ?? string.Empty).ToString();

                                    var cotizacion = cotizaciones_DM.FirstOrDefault(c => c.IdOportunidadSf.Equals(idOportunidadSf));

                                    cotizacion.CodigoError    = codigoRetorno;
                                    cotizacion.MensajeError   = mensajeRetorno;
                                    cotizacion.IdCotizacionSf = idCotizacionSf;

                                    #region ReturnToDB
                                    _cotizacionRepository_DM.UpdateCotizacion(cotizacion);
                                    #endregion
                                }
                                catch (Exception)
                                {
                                    throw;
                                }

                                #endregion
                            }
                        }
                        catch
                        {
                        }
                    }
                    return(Ok(cotizaciones_DM));
                }
                catch (Exception ex)
                {
                    exceptionMsg = ex.Message;
                    return(InternalServerError(ex));
                }
                finally
                {
                    (new
                    {
                        UnidadNegocio = unidadNegocio.Descripcion,
                        Exception = exceptionMsg,
                        LegacySystems = cotizaciones_DM
                    }).TryWriteLogObject(_logFileManager, _clientFeatures);
                }
            }
            catch (Exception ex)
            {
                exceptionMsg = ex.Message;
                return(InternalServerError(ex));
            }
            finally
            {
                (new
                {
                    Body = cotizaciones_DM,
                    Error = exceptionMsg
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }
示例#12
0
        public IHttpActionResult Send(UnidadNegocio unidadNegocio)
        {
            /// ♫ Listas de Respuesta
            IEnumerable <AgenciaPnr> agenciasPnrs = null;
            IEnumerable <File>       files; IEnumerable <Boleto> boletos;
            string exceptionMsg = string.Empty;

            try
            {
                var _unidadNegocio = GetUnidadNegocio(unidadNegocio.Descripcion);
                RepositoryByBusiness(_unidadNegocio);
                _instants[InstantKey.Salesforce] = DateTime.Now;

                /// I. Consulta de PNRs a PTA
                agenciasPnrs = (IEnumerable <AgenciaPnr>)_fileRepository.GetNewAgenciaPnr()[OutParameter.CursorAgenciaPnr];
                if (agenciasPnrs == null || agenciasPnrs.ToList().Count.Equals(0))
                {
                    return(Ok(agenciasPnrs));
                }

                /// Obtiene Token para envío a Salesforce
                var authSf    = RestBase.GetToken();
                var token     = authSf[OutParameter.SF_Token].ToString();
                var crmServer = authSf[OutParameter.SF_UrlAuth].ToString();

                /// Procesamos los Files y Boletos de cada Agencia PNR
                foreach (var agenciaPnr in agenciasPnrs)
                {
                    /// II. Completar PNR en Salesforce
                    agenciaPnr.UnidadNegocio = unidadNegocio.Descripcion;

                    agenciaPnr.CodigoError = agenciaPnr.MensajeError = string.Empty;
                    if (string.IsNullOrEmpty(agenciaPnr.IdOportunidad))
                    {
                        SendToSalesforce(agenciaPnr, token, crmServer);
                    }

                    /// III. Envío de Files, Boletos a Salesforce
                    if (!string.IsNullOrEmpty(agenciaPnr.IdOportunidad))
                    {
                        /// 1. Consulta Lista de Files, Lista de Boletos
                        var _operFileAndBoleto = _fileRepository.GetFileAndBoleto(agenciaPnr);

                        /// 2. Envío de Files
                        agenciaPnr.Files = files = (IEnumerable <File>)_operFileAndBoleto[OutParameter.CursorFile];
                        foreach (var file in files)
                        {
                            try
                            {
                                /// a. Envío a Salesforce
                                SendToSalesforce(file, token, crmServer);
                                if (EvaluateRetry(file))
                                {
                                    SendToSalesforce(file, token, crmServer);
                                }

                                /// b. Resultado a BD
                                var operFileUpdate = _fileRepository.UpdateFile(file);
                                file.Actualizados = int.Parse(operFileUpdate[OutParameter.IdActualizados].ToString());
                            }
                            catch
                            {
                            }
                        }

                        /// 3. Envío de Boletos
                        agenciaPnr.Boletos = boletos = (IEnumerable <Boleto>)_operFileAndBoleto[OutParameter.CursorBoleto];
                        foreach (var boleto in boletos)
                        {
                            try
                            {
                                /// a. Envío a Salesforce
                                SendToSalesforce(boleto, token, crmServer);
                                if (EvaluateRetry(boleto))
                                {
                                    SendToSalesforce(boleto, token, crmServer);
                                }

                                /// b. Resultado a BD
                                var operBoletoUpdate = _fileRepository.UpdateBoleto(boleto);
                                boleto.Actualizados = int.Parse(operBoletoUpdate[OutParameter.IdActualizados].ToString());
                            }
                            catch
                            {
                            }
                        }
                    }
                }
                return(Ok(new { AgenciasPnr = agenciasPnrs }));
            }
            catch (Exception ex)
            {
                exceptionMsg = ex.Message;
                agenciasPnrs = null;
                return(InternalServerError(ex));
            }
            finally
            {
                (new
                {
                    UnidadNegocio = unidadNegocio.Descripcion,
                    Exception = exceptionMsg,
                    LegacySystems = agenciasPnrs
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }
示例#13
0
        public IHttpActionResult Send(UnidadNegocio unidadNegocio)
        {
            IEnumerable <CuentaNM> cuentasNMs            = null;
            List <RptaCuentaSF>    ListRptaCuentaSF_Fail = new List <RptaCuentaSF>();
            RptaCuentaSF           _rptaCuentaSF         = null;

            object SFResponse   = null;
            string exceptionMsg = string.Empty;
            object objEnvio     = null;

            try
            {
                var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio());

                /// I. Consulta de Cuentas NM
                cuentasNMs = (IEnumerable <CuentaNM>)_cuentaNMRepository.GetCuentas()[OutParameter.CursorCuentaNM];
                if (cuentasNMs == null || cuentasNMs.ToList().Count.Equals(0))
                {
                    return(Ok(false));
                }

                /// Obtiene Token para envío a Salesforce
                var authSf    = RestBase.GetToken();
                var token     = authSf[OutParameter.SF_Token].ToString();
                var crmServer = authSf[OutParameter.SF_UrlAuth].ToString();

                /// preparación de cuenta para envio a Salesforce
                var cuentaNMSF = new List <object>();
                foreach (var cuenta in cuentasNMs)
                {
                    cuentaNMSF.Add(cuenta.ToSalesforceEntity());
                }

                try
                {
                    /// Envío de CuentaNM a Salesforce
                    objEnvio = new { listadatosCuenta = cuentaNMSF };
                    QuickLog(objEnvio, "body_request.json", "CuentaNM", previousClear: true); /// ♫ Trace

                    var responseCuentaNM = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.CuentaNMMethod, Method.POST, objEnvio, true, token);
                    if (responseCuentaNM.StatusCode.Equals(HttpStatusCode.OK))
                    {
                        dynamic jsonResponse = (new JavaScriptSerializer()).DeserializeObject(responseCuentaNM.Content);
                        QuickLog(jsonResponse, "body_response.json", "CuentaNM", previousClear: true); /// ♫ Trace

                        SFResponse = jsonResponse["respuestas"];
                        foreach (var jsResponse in jsonResponse["respuestas"])
                        {
                            try
                            {
                                _rptaCuentaSF = new RptaCuentaSF();

                                _rptaCuentaSF.CodigoError      = "OK";
                                _rptaCuentaSF.MensajeError     = "TST";
                                _rptaCuentaSF.idCuenta_SF      = "001P002201bpIOWIC4";
                                _rptaCuentaSF.Identificador_NM = "2";

                                _rptaCuentaSF.CodigoError      = jsResponse[OutParameter.SF_Codigo];
                                _rptaCuentaSF.MensajeError     = jsResponse[OutParameter.SF_Mensaje];
                                _rptaCuentaSF.idCuenta_SF      = jsResponse[OutParameter.SF_IdCuenta2];
                                _rptaCuentaSF.Identificador_NM = jsResponse[OutParameter.SF_IdentificadorNM];

                                /// Actualización de estado de la Cuenta
                                var updateResponse = _cuentaNMRepository.Update(_rptaCuentaSF);

                                if (Convert.IsDBNull(updateResponse[OutParameter.IdActualizados]) == true || updateResponse[OutParameter.IdActualizados].ToString().ToLower().Contains("null") || Convert.ToInt32(updateResponse[OutParameter.IdActualizados].ToString()) <= 0)
                                {
                                    exceptionMsg = exceptionMsg + "Error en el Proceso de Actualizacion - No Actualizo Ningun Registro. Identificador NM : " + _rptaCuentaSF.Identificador_NM.ToString() + "||||";
                                    ListRptaCuentaSF_Fail.Add(_rptaCuentaSF);
                                    /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/
                                }
                            }
                            catch (Exception ex)
                            {
                                exceptionMsg = exceptionMsg + "Error en el Proceso de Actualizacion - Response SalesForce : " + ex.Message + "||||";
                                ListRptaCuentaSF_Fail.Add(_rptaCuentaSF);
                                /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/
                            }
                        }
                    }
                    else
                    {
                        exceptionMsg = responseCuentaNM.StatusCode.ToString();
                        if (responseCuentaNM != null && responseCuentaNM.Content != null)
                        {
                            QuickLog(responseCuentaNM.Content, "body_response.json", "CuentaNM", previousClear: true); /// ♫ Trace
                        }
                    }
                }
                catch (Exception ex)
                {
                    exceptionMsg = ex.Message;
                }

                return(Ok(true));
            }
            catch (Exception ex)
            {
                cuentasNMs   = null;
                exceptionMsg = exceptionMsg + " / " + ex.Message;
                return(InternalServerError(ex));
            }
            finally
            {
                if (objEnvio != null || SFResponse != null || ListRptaCuentaSF_Fail != null || string.IsNullOrEmpty(exceptionMsg) == false)
                {
                    (new
                    {
                        Request = objEnvio,
                        Response = SFResponse,
                        Rpta_NoUpdate_Fail = ListRptaCuentaSF_Fail,
                        Exception = exceptionMsg
                                    //LegacySystems = cuentasNMs
                    }).TryWriteLogObject(_logFileManager, _clientFeatures);
                }
            }
        }
示例#14
0
        public IHttpActionResult Send(UnidadNegocio unidadNegocio)
        {
            IEnumerable <CuentaPta> cuentasPtas = null;
            string error = string.Empty;

            try
            {
                var _unidadNegocio = GetUnidadNegocio(unidadNegocio.Descripcion);
                RepositoryByBusiness(_unidadNegocio);
                _instants[InstantKey.Salesforce] = DateTime.Now;

                /// I. Consulta de Cuentas PTA
                cuentasPtas = (IEnumerable <CuentaPta>)(_cuentaPtaRepository.Read(_unidadNegocio))[OutParameter.CursorCuentaPta];
                if (cuentasPtas == null || cuentasPtas.ToList().Count.Equals(0))
                {
                    return(Ok(cuentasPtas));
                }

                /// Obtiene Token para envío a Salesforce
                var authSf    = RestBase.GetToken();
                var token     = authSf[OutParameter.SF_Token].ToString();
                var crmServer = authSf[OutParameter.SF_UrlAuth].ToString();

                foreach (var cuentaPta in cuentasPtas)
                {
                    try
                    {
                        /// Envío de CuentaPTA a Salesforce
                        cuentaPta.UnidadNegocio = unidadNegocio.Descripcion;
                        cuentaPta.CodigoError   = cuentaPta.MensajeError = string.Empty;
                        var cuentaSf = cuentaPta.ToSalesforceEntity();
                        QuickLog(cuentaSf, "body_request.json", "CuentaPta");
                        var responseCuentaPta = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.CuentaPtaMethod, Method.POST, cuentaSf, true, token);
                        if (responseCuentaPta.StatusCode.Equals(HttpStatusCode.OK))
                        {
                            dynamic jsonReponse = (new JavaScriptSerializer()).DeserializeObject(responseCuentaPta.Content);
                            cuentaPta.CodigoError  = jsonReponse[OutParameter.SF_CodigoError];
                            cuentaPta.MensajeError = jsonReponse[OutParameter.SF_MensajeError];
                            cuentaPta.IdCuentaCrm  = jsonReponse[OutParameter.SF_IdCuenta];

                            /// Actualización de estado de Cuenta PTA hacia PTA
                            var updateResponse = _cuentaPtaRepository.Update(cuentaPta);
                            cuentaPta.Actualizados = int.Parse(updateResponse[OutParameter.IdActualizados].ToString());
                        }
                        else
                        {
                            cuentaPta.CodigoError = responseCuentaPta.StatusCode.ToString();
                        }
                    }
                    catch (Exception ex)
                    {
                        cuentaPta.CodigoError  = ApiResponseCode.ErrorCode;
                        cuentaPta.MensajeError = ex.Message;
                    }
                }
                return(Ok(new { CuentasPta = cuentasPtas }));
            }
            catch (Exception ex)
            {
                //cuentasPtas = null;
                error = ex.Message;
                return(InternalServerError(ex));
            }
            finally
            {
                (new
                {
                    UnidadNegocio = unidadNegocio.Descripcion,
                    Error = error,
                    LegacySystems = cuentasPtas
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }
        public IHttpActionResult Send(UnidadNegocio unidadNegocio)
        {
            IEnumerable <InformacionPagoNM> informacionPagoNMs        = null;
            List <RptaInformacionPagoSF>    ListRptaInformacionPagoSF = null;
            List <InfoPagoNM>     lInfoPagoNM            = null;
            RptaInformacionPagoSF _rptaInformacionPagoSF = null;
            string  error        = string.Empty;
            object  objEnvio     = null;
            dynamic jsonResponse = null;

            try
            {
                var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio());
                RepositoryByBusiness(_unidadNegocio);
                _instants[InstantKey.Salesforce] = DateTime.Now;

                /// I. Consulta de Informacion Pago NM
                informacionPagoNMs = (IEnumerable <InformacionPagoNM>)(_informacionPagoNMRepository.GetInformacionPago(_unidadNegocio))[OutParameter.CursorInformacionPagoNM];
                if (informacionPagoNMs == null || informacionPagoNMs.ToList().Count.Equals(0))
                {
                    return(Ok(informacionPagoNMs));
                }

                /// Obtiene Token para envío a Salesforce
                var authSf    = RestBase.GetToken();
                var token     = authSf[OutParameter.SF_Token].ToString();
                var crmServer = authSf[OutParameter.SF_UrlAuth].ToString();

                //Armando estructura de objetos.
                InfoPagoNM oInfoPagoNM;



                var results = (from p in informacionPagoNMs
                               group p.idOportunidad_SF by p.idOportunidad_SF into g
                               select new { idOportunidad_SF = g.Key }).ToList();


                string idOportunidad_SF = string.Empty;
                int    index            = -1;
                if (results != null)
                {
                    int id_sucursal = 0;
                    int codigoweb   = 0;
                    int PaqueteId   = 0;
                    lInfoPagoNM = new List <InfoPagoNM>();
                    foreach (var item in results)
                    {
                        oInfoPagoNM = new InfoPagoNM();

                        index = informacionPagoNMs.ToList().FindIndex(x => x.idOportunidad_SF == item.idOportunidad_SF);
                        oInfoPagoNM.idOportunidad_SF = item.idOportunidad_SF;

                        oInfoPagoNM.Identificador_NM     = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).Identificador_NM;
                        oInfoPagoNM.IdInformacionPago_SF = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).IdInformacionPago_SF;

                        //Aqui Lista ListPago_Boleto_Servicios

                        oInfoPagoNM.ListPago_Boleto_Servicios = informacionPagoNMs.Where(x => x.idOportunidad_SF == item.idOportunidad_SF && !string.IsNullOrWhiteSpace(x.reservaID))
                                                                .Select(x => new PagoBoletoServicios
                        {
                            reservaID    = x.reservaID,
                            tipoServicio = x.tipoServicio,
                            tipoPasajero = x.tipoPasajero,
                            totalBoleto  = x.totalBoleto,
                            tarifaNeto   = x.tarifaNeto,
                            impuestos    = x.impuestos,
                            cargos       = x.cargos,
                            descripcion  = x.descripcion
                        }).ToList();


                        oInfoPagoNM.totalPagar               = oInfoPagoNM.ListPago_Boleto_Servicios.Sum(x => x.totalBoleto);
                        oInfoPagoNM.montoDescuento           = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).montodescuento;
                        oInfoPagoNM.textoDescuento           = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).textodescuento;
                        oInfoPagoNM.promoWebCode             = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).promowebcode;
                        oInfoPagoNM.totalFacturar            = oInfoPagoNM.totalPagar - oInfoPagoNM.montoDescuento;
                        oInfoPagoNM.feeAsumidoGeneralBoletos = informacionPagoNMs.Where(x => x.idOportunidad_SF == item.idOportunidad_SF).Sum(x => x.feeAsumidoGeneralBoletos);
                        ////Aqui Lista ListPagosDesglose_Paquete


                        if (!string.IsNullOrWhiteSpace(informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).PaqueteId))
                        {
                            oInfoPagoNM.ListPagosDesglose_Paquete = new List <PagosDesglosePaquete>();
                            oInfoPagoNM.ListPagosDesglose_Paquete.Add(new PagosDesglosePaquete
                            {
                                precioTotalPorHabitacionPaq = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF && !string.IsNullOrWhiteSpace(x.PaqueteId)).precioTotalPorHabitacionPaq,
                                ListPorHabitacionPaq        = informacionPagoNMs.Where(y => y.idOportunidad_SF == item.idOportunidad_SF && !string.IsNullOrWhiteSpace(y.PaqueteId))
                                                              .Select(y => new PorHabitacion_Paq
                                {
                                    numHabitacionPaquete = y.numHabitacionPaquete,
                                    tipoPasajeroPaq      = y.tipoPasajeroPaq,
                                    cantidadPasajeroPaq  = y.cantidadPasajeroPaq,
                                    monedaPaq            = y.monedaPaq,
                                    precioUnitarioPaq    = y.precioUnitarioPaq,
                                    totalUnitarioPaq     = y.totalUnitarioPaq
                                }).ToList()
                            });
                        }


                        oInfoPagoNM.precioTotalHabitacionesPaq = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).precioTotalHabitacionesPaq;
                        oInfoPagoNM.gastosAdministrativosPaq   = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).gastosAdministrativosPaq;
                        oInfoPagoNM.tarjetaDeTurismo           = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).tarjetaDeTurismo;
                        oInfoPagoNM.tarjetaDeAsistencia        = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).tarjetaDeAsistencia;

                        ////Aqui Lista ListPagosServicio_Paquete =>GetListPagosServicio

                        if (!string.IsNullOrWhiteSpace(informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).PaqueteId))
                        {
                            int.TryParse(informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).PaqueteId, out PaqueteId);
                            int.TryParse(informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).Id_Sucursal, out id_sucursal);
                            int.TryParse(informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).Codigoweb, out codigoweb);
                            string paq_reserva_tipo = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).paq_reserva_tipo;
                            oInfoPagoNM.ListPagosServicio_Paquete = ((IEnumerable <PagosServicioPaquete>)(_informacionPagoNMRepository.GetListPagosServicio(codigoweb, PaqueteId, id_sucursal, paq_reserva_tipo))[OutParameter.CursorInformacionPagoNM]).ToList();
                        }

                        if (oInfoPagoNM.ListPagosServicio_Paquete != null && oInfoPagoNM.ListPagosServicio_Paquete.Count > 0)
                        {
                            oInfoPagoNM.precioTotalActividadesPaq = oInfoPagoNM.ListPagosServicio_Paquete.Sum(x => x.precioServ);
                        }
                        oInfoPagoNM.precioTotalPagarPaq = oInfoPagoNM.precioTotalHabitacionesPaq + oInfoPagoNM.gastosAdministrativosPaq + oInfoPagoNM.precioTotalActividadesPaq;
                        oInfoPagoNM.montoDescuentoPaq   = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).montoDescuentoPaq;
                        oInfoPagoNM.totalFacturarPaq    = oInfoPagoNM.precioTotalPagarPaq + oInfoPagoNM.montoDescuentoPaq;
                        oInfoPagoNM.textoDescuentoPaq   = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).textoDescuentoPaq;


                        oInfoPagoNM.cantDiasSeg       = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).cantDiasSeg;
                        oInfoPagoNM.precioUnitarioSeg = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).precioUnitarioSeg;
                        oInfoPagoNM.MontoSeg          = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).MontoSeg;
                        oInfoPagoNM.DescuentoSeg      = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).DescuentoSeg;
                        oInfoPagoNM.MontoReservaSeg   = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).MontoReservaSeg;
                        oInfoPagoNM.accion_SF         = informacionPagoNMs.First(x => x.idOportunidad_SF == item.idOportunidad_SF).accion_SF;
                        lInfoPagoNM.Add(oInfoPagoNM);
                    }
                }

                var informacionPagoNMSF = new List <object>();
                foreach (var itemlInfoPagoNM in lInfoPagoNM)
                {
                    informacionPagoNMSF.Add(itemlInfoPagoNM.ToSalesforceEntity());
                }

                try
                {
                    /// Envío de Informacion de Pago a Salesforce
                    ClearQuickLog("body_request.json", "InformacionPagoNM");      /// ♫ Trace
                    objEnvio = new { datos = informacionPagoNMSF };
                    QuickLog(objEnvio, "body_request.json", "InformacionPagoNM"); /// ♫ Trace


                    var responseInformacionPagoNM = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.InformacionPagoNMMethod, Method.POST, objEnvio, true, token);
                    if (responseInformacionPagoNM.StatusCode.Equals(HttpStatusCode.OK))
                    {
                        jsonResponse = (new JavaScriptSerializer()).DeserializeObject(responseInformacionPagoNM.Content);
                        QuickLog(jsonResponse, "body_response.json", "InformacionPagoNM"); /// ♫ Trace
                        string[] codigoServicio = null;
                        string   oportunidad    = string.Empty;
                        ListRptaInformacionPagoSF = new List <RptaInformacionPagoSF>();

                        foreach (var jsResponse in jsonResponse["respuestas"])
                        {
                            oportunidad = jsResponse[OutParameter.SF_IdOportunidad3];

                            codigoServicio         = jsResponse[OutParameter.SF_IdentificadorNM].Split('-');
                            _rptaInformacionPagoSF = new RptaInformacionPagoSF();

                            _rptaInformacionPagoSF.CodigoError      = jsResponse[OutParameter.SF_Codigo];
                            _rptaInformacionPagoSF.MensajeError     = jsResponse[OutParameter.SF_Mensaje];
                            _rptaInformacionPagoSF.idOportunidad_SF = jsResponse[OutParameter.SF_IdOportunidad3];
                            _rptaInformacionPagoSF.IdInfoPago_SF    = jsResponse[OutParameter.SF_IdInformacionPago2];
                            if (_rptaInformacionPagoSF.CodigoError != "ER" && codigoServicio.Count() > 0)
                            {
                                _rptaInformacionPagoSF.CodigoServicio_NM = codigoServicio[0].ToString();
                                _rptaInformacionPagoSF.Identificador_NM  = codigoServicio[1].ToString();
                            }

                            var updOperation = _informacionPagoNMRepository.Update(_rptaInformacionPagoSF);

                            if (Convert.IsDBNull(updOperation[OutParameter.IdActualizados]) == true || updOperation[OutParameter.IdActualizados].ToString().ToLower().Contains("null") || Convert.ToInt32(updOperation[OutParameter.IdActualizados].ToString()) <= 0)
                            {
                                error = error + "Error en el Proceso de Actualizacion - No Actualizo Ningun Registro. Identificador NM : " + _rptaInformacionPagoSF.Identificador_NM.ToString() + "||||";
                                ListRptaInformacionPagoSF.Add(_rptaInformacionPagoSF);
                            }
                        }
                    }
                    else
                    {
                        jsonResponse = (new JavaScriptSerializer()).DeserializeObject(responseInformacionPagoNM.Content);
                        QuickLog(jsonResponse, "body_response.json", "InformacionPagoNM"); /// ♫ Trace
                        error = responseInformacionPagoNM.StatusCode.ToString();
                    }
                }
                catch (Exception ex)
                {
                    error = error + "Error en el Proceso de Actualizacion - Response SalesForce : " + ex.Message + "||||";
                    ListRptaInformacionPagoSF.Add(_rptaInformacionPagoSF);
                }
                return(Ok(true));
            }
            catch (Exception ex)
            {
                error = error + " / " + ex.Message;
                return(InternalServerError(ex));
            }
            finally
            {
                if (objEnvio != null || jsonResponse != null || ListRptaInformacionPagoSF != null || string.IsNullOrEmpty(error) == false)
                {
                    (new
                    {
                        Request = objEnvio,
                        Response = jsonResponse,
                        Rpta_NoUpdate_Fail = ListRptaInformacionPagoSF,
                        Exception = error
                                    //LegacySystems = lInfoPagoNM
                    }).TryWriteLogObject(_logFileManager, _clientFeatures);
                }
            }
        }
示例#16
0
        public IHttpActionResult Send(UnidadNegocio unidadNegocio)
        {
            string            exceptionMsg      = string.Empty;
            UnidadNegocioKeys?_unidadNegocioKey = null;
            object            objEnvio          = null;
            List <Respuesta>  ListRpta          = new List <Respuesta>();
            Respuesta         Rpta = new Respuesta();

            try
            {
                _unidadNegocioKey = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocioByCountry());

                var operation = _cotizacionRepository.Lista_CotizacionB2C();

                Rpta.CodigoError  = operation[OutParameter.CodigoError].ToString();
                Rpta.MensajeError = operation[OutParameter.MensajeError].ToString();
                var cotizacionJYUpdResponse = ((List <CotizacionJYUpdResponse>)operation[OutParameter.CursorCotizacionB2C]);
                if (cotizacionJYUpdResponse == null || cotizacionJYUpdResponse.ToList().Count.Equals(0))
                {
                    return(Ok(Rpta));
                }


                /// Obtiene Token para envío a Salesforce
                var authSf    = RestBase.GetToken();
                var token     = authSf[OutParameter.SF_Token].ToString();
                var crmServer = authSf[OutParameter.SF_UrlAuth].ToString();

                /// Envío de cotizacion a Salesforce
                var cotizacionSF = new List <object>();
                foreach (var cotizacion in cotizacionJYUpdResponse)
                {
                    cotizacionSF.Add(ToSalesforceEntity(cotizacion));
                }

                try
                {
                    ClearQuickLog("body_request.json", "CotizacionJY");      /// ♫ Trace
                    objEnvio = new { cotizaciones = cotizacionSF };
                    QuickLog(objEnvio, "body_request.json", "CotizacionJY"); /// ♫ Trace
                    var response = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.CotizacionJYUpdMethod, Method.POST, objEnvio, true, token);
                    if (response.StatusCode.Equals(HttpStatusCode.OK))
                    {
                        dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(response.Content);

                        foreach (var Cotizacion in cotizacionJYUpdResponse)
                        {
                            foreach (var jsResponse in jsonResponse["Cotizaciones"])
                            {
                                if (Cotizacion.ID_OPORTUNIDAD_SF == jsResponse["ID_OPORTUNIDAD_SF"] && Cotizacion.ID_COTIZACION_SF == jsResponse["ID_COTIZACION_SF"])
                                {
                                    var cotizacionJYUpd = new CotizacionJYUpd()
                                    {
                                        Cotizacion  = jsResponse[OutParameter.SF_Cotizacion],
                                        File        = jsResponse[OutParameter.SF_File_SubFile],
                                        Es_Atencion = jsResponse[OutParameter.SF_CodigoRetorno],
                                        Descripcion = jsResponse[OutParameter.SF_MensajeRetorno]
                                    };

                                    /// Actualización de estado de subcodigo a PTA
                                    Rpta                  = new Respuesta();
                                    operation             = _cotizacionRepository.Actualizar_EnvioCotizacionB2C(cotizacionJYUpd);
                                    Rpta.CodigoError      = operation[OutParameter.CodigoError].ToString();
                                    Rpta.MensajeError     = operation[OutParameter.MensajeError].ToString();
                                    Rpta.Numero_Afectados = operation[OutParameter.NumeroActualizados].ToString();
                                    ListRpta.Add(Rpta);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Rpta.CodigoError  = ApiResponseCode.ErrorCode;
                    Rpta.MensajeError = ex.Message;
                    exceptionMsg      = ex.Message;
                }
                return(Ok(Rpta));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
            finally
            {
                (new
                {
                    UnidadNegocio = _unidadNegocioKey.ToString(),
                    Body = objEnvio,
                    Response = ListRpta,
                    Exception = exceptionMsg
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }
示例#17
0
        public IHttpActionResult Send(UnidadNegocio unidadNegocio)
        {
            IEnumerable <ContactoPta> contactoPtaList = null;
            string exceptionMsg = string.Empty;

            try
            {
                var _unidadNegocio = GetUnidadNegocio(unidadNegocio.Descripcion);
                RepositoryByBusiness(_unidadNegocio);

                /// I. Consulta de Contactos a BD
                contactoPtaList = (IEnumerable <ContactoPta>)_contactoPtaRepository.GetContactos()[OutParameter.CursorContactoPta];
                if (contactoPtaList == null || contactoPtaList.ToList().Count.Equals(0))
                {
                    return(Ok(contactoPtaList));
                }

                /// Obtiene Token de envío a Salesforce
                var authSf    = RestBase.GetToken();
                var token     = authSf[OutParameter.SF_Token].ToString();
                var crmServer = authSf[OutParameter.SF_UrlAuth].ToString();

                /// Por cada Contacto...
                foreach (var contactoPta in contactoPtaList)
                {
                    {
                        try
                        {
                            /// Envío de Contacto a Salesforce
                            contactoPta.UnidadNegocio = unidadNegocio.Descripcion;
                            contactoPta.CodigoError   = contactoPta.MensajeError = string.Empty;

                            //var contactoPtaSf = ToSalesforceEntity(contactoPta);
                            var responseContactoPta = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.ContactoPtaMethod, Method.POST, contactoPta.ToSalesforceEntity(), true, token);
                            if (responseContactoPta.StatusCode.Equals(HttpStatusCode.OK))
                            {
                                dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(responseContactoPta.Content);
                                contactoPta.CodigoError   = jsonResponse[OutParameter.SF_CodigoError];
                                contactoPta.MensajeError  = jsonResponse[OutParameter.SF_MensajeError];
                                contactoPta.IdCuentaCrm   = jsonResponse[OutParameter.SF_IdCuenta];
                                contactoPta.IdContactoCrm = jsonResponse[OutParameter.SF_IdContacto];

                                /// Actualización de resultado de Salesforce de Contacto en BD
                                var updateResponse = _contactoPtaRepository.Update(contactoPta);
                                contactoPta.Actualizados = int.Parse(updateResponse[OutParameter.IdActualizados].ToString());
                            }
                        }
                        catch (Exception ex)
                        {
                            contactoPta.CodigoError  = ApiResponseCode.ErrorCode;
                            contactoPta.MensajeError = ex.Message;
                        }
                    }
                }
                return(Ok(new { Contactos = contactoPtaList }));
            }
            catch (Exception ex)
            {
                exceptionMsg = ex.Message;
                return(InternalServerError(ex));
            }
            finally
            {
                (new
                {
                    UnidadNegocio = unidadNegocio.Descripcion,
                    Exception = exceptionMsg,
                    LegacySystems = contactoPtaList
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }
示例#18
0
 public int Put([FromBody] UnidadNegocio unidadNegocio)
 {
     return(objUnidadNeg.AddUnidadNegocio(unidadNegocio));
 }
示例#19
0
 public int Post([FromBody] UnidadNegocio unidadNegocio)
 {
     return(objUnidadNeg.UpdateUnidadNegocio(unidadNegocio));
 }
        public IHttpActionResult Send(UnidadNegocio unidadNegocio)
        {
            IEnumerable <DetalleItinerarioNM> detItinerarioList         = null;
            List <RptaItinerarioSF>           ListRptaItinerarioSF_Fail = new List <RptaItinerarioSF>();
            RptaItinerarioSF _rptaItinerarioSF = null;

            object SFResponse = null;
            string error      = string.Empty;
            object objEnvio   = null;

            try
            {
                var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio());

                /// I. Consulta de Detalle Itinerario NM
                detItinerarioList = (IEnumerable <DetalleItinerarioNM>)(_detalleItinerarioNMRepository.GetItinerarios())[OutParameter.CursorDetalleItinerarioNM];
                if (detItinerarioList == null || detItinerarioList.ToList().Count.Equals(0))
                {
                    return(Ok(false));
                }

                /// II. Obtiene Token y URL para envío a Salesforce
                var authSf    = RestBase.GetToken();
                var token     = authSf[OutParameter.SF_Token].ToString();
                var crmServer = authSf[OutParameter.SF_UrlAuth].ToString();

                /// III. Construímos lista para enviar a SF
                var detItinerarioNM_SF = new List <object>();
                foreach (var detItinerario in detItinerarioList)
                {
                    detItinerarioNM_SF.Add(detItinerario.ToSalesforceEntity());
                }

                try
                {
                    /// Envío de CuentaNM a Salesforce
                    objEnvio = new { listadatos = detItinerarioNM_SF };
                    QuickLog(objEnvio, "body_request.json", "DetalleItinerarioNM", previousClear: true); /// ♫ Trace

                    var responseDetItinerarioNM = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.DetItinerarioNMMethod, Method.POST, objEnvio, true, token);
                    if (responseDetItinerarioNM.StatusCode.Equals(HttpStatusCode.OK))
                    {
                        dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(responseDetItinerarioNM.Content);
                        QuickLog(jsonResponse, "body_response.json", "DetalleItinerarioNM", previousClear: true); /// ♫ Trace

                        SFResponse = jsonResponse["respuestas"];
                        foreach (var item in jsonResponse["respuestas"])
                        {
                            try
                            {
                                #region Deserialize
                                _rptaItinerarioSF = new RptaItinerarioSF();

                                _rptaItinerarioSF.CodigoError      = "OK";
                                _rptaItinerarioSF.MensajeError     = "TST";
                                _rptaItinerarioSF.idOportunidad_SF = "006R000000WAUr4IAH";
                                _rptaItinerarioSF.idItinerario_SF  = "006R000000WAUr4IAC";
                                _rptaItinerarioSF.Identificador_NM = "2";

                                _rptaItinerarioSF.CodigoError      = item[OutParameter.SF_Codigo];
                                _rptaItinerarioSF.MensajeError     = item[OutParameter.SF_Mensaje];
                                _rptaItinerarioSF.idOportunidad_SF = item[OutParameter.SF_IdOportunidad2];
                                _rptaItinerarioSF.idItinerario_SF  = item[OutParameter.SF_IdItinerario];
                                _rptaItinerarioSF.Identificador_NM = item[OutParameter.SF_IdentificadorNM];
                                #endregion

                                #region ReturnToDB
                                var updOperation = _detalleItinerarioNMRepository.Update(_rptaItinerarioSF);

                                if (Convert.IsDBNull(updOperation[OutParameter.IdActualizados]) == true || updOperation[OutParameter.IdActualizados].ToString().ToLower().Contains("null") || Convert.ToInt32(updOperation[OutParameter.IdActualizados].ToString()) <= 0)
                                {
                                    error = error + "Error en el Proceso de Actualizacion - No Actualizo Ningun Registro. Identificador NM : " + _rptaItinerarioSF.Identificador_NM.ToString() + "||||";
                                    ListRptaItinerarioSF_Fail.Add(_rptaItinerarioSF);
                                    /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/
                                }
                                #endregion
                            }
                            catch (Exception ex)
                            {
                                error = error + "Error en el Proceso de Actualizacion - Response SalesForce : " + ex.Message + "||||";
                                ListRptaItinerarioSF_Fail.Add(_rptaItinerarioSF);
                                /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/
                            }
                        }
                    }
                    else
                    {
                        error = responseDetItinerarioNM.StatusCode.ToString();
                        if (responseDetItinerarioNM != null && responseDetItinerarioNM.Content != null)
                        {
                            QuickLog(responseDetItinerarioNM.Content, "body_response.json", "DetalleItinerarioNM", previousClear: true); /// ♫ Trace
                        }
                    }
                }
                catch (Exception ex)
                {
                    error = ex.Message;
                }

                return(Ok(true));
            }
            catch (Exception ex)
            {
                error = error + " / " + ex.Message;
                return(InternalServerError(ex));
            }
            finally
            {
                if (objEnvio != null || SFResponse != null || ListRptaItinerarioSF_Fail != null || string.IsNullOrEmpty(error) == false)
                {
                    (new
                    {
                        Request = objEnvio,
                        Response = SFResponse,
                        Rpta_NoUpdate_Fail = ListRptaItinerarioSF_Fail,
                        Exception = error
                                    //LegacySystems = detItinerarioList
                    }).TryWriteLogObject(_logFileManager, _clientFeatures);
                }
            }
        }
        public static IUnidadNegocio GetUnidadNegocio()
        {
            UnidadNegocio unidadNegocio = new UnidadNegocio();

            return((IUnidadNegocio)unidadNegocio);
        }
示例#22
0
 public SimpleNegocioDesc(string descripcion = null, UnidadNegocio unidadNegocio = null)
 {
     Descripcion   = descripcion;
     UnidadNegocio = unidadNegocio;
 }
示例#23
0
        public IHttpActionResult Send(UnidadNegocio unidadNegocio)
        {
            IEnumerable <PedidosProcesados> ListPedidosProcesados = null;
            string errorEnvio = string.Empty;
            object mResponse  = null;
            object objEnvio   = null;

            try {
                RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio());

                /*Consulta de pedidos procesados a BD*/
                ListPedidosProcesados = (IEnumerable <PedidosProcesados>)_pedidoRepository.GetPedidosProcesados()[OutParameter.CursorPedidosProcesados];
                if (ListPedidosProcesados == null || ListPedidosProcesados.ToList().Count.Equals(0))
                {
                    return(Ok(false));
                }

                /*Obtiene Token de envío a Salesforce*/
                var authSf    = RestBase.GetToken();
                var token     = authSf[OutParameter.SF_Token].ToString();
                var crmServer = authSf[OutParameter.SF_UrlAuth].ToString();

                /*Por cada Pedido...*/
                var PedidosProcesadosSF = new List <object>();
                foreach (var pedidosProcesados in ListPedidosProcesados)
                {
                    PedidosProcesadosSF.Add(pedidosProcesados.ToSalesforceEntity());
                }

                try
                {
                    objEnvio = new { info = PedidosProcesadosSF };
                    /*Envío de pedidos procesados a Salesforce*/
                    var responsePedidosProcess = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.PedidosProcesadosMethod, Method.POST, objEnvio, true, token);
                    if (responsePedidosProcess.StatusCode.Equals(HttpStatusCode.OK))
                    {
                        dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(responsePedidosProcess.Content);
                        mResponse = jsonResponse["Solicitudes"];
                        foreach (var pedidosProcesados in ListPedidosProcesados)
                        {
                            foreach (var jsResponse in jsonResponse["Solicitudes"])
                            {
                                if (pedidosProcesados.idSolicitudPago_SF == jsResponse[OutParameter.SF_IdSolicitudPago])
                                {
                                    /*Validamos Y Actualizamos en BD*/
                                    if (jsResponse[OutParameter.SF_Codigo] == "OK")
                                    {
                                        pedidosProcesados.estadoProcess = "1";
                                    }
                                    else
                                    {
                                        pedidosProcesados.estadoProcess = (string.IsNullOrEmpty(pedidosProcesados.estadoProcess) == false && pedidosProcesados.estadoProcess == "0" ? "2" : "0");
                                    }
                                    _pedidoRepository.Update_Pedido_Process(pedidosProcesados);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    errorEnvio = errorEnvio + ApiResponseCode.ErrorCode + " - " + ex.Message + " ||.";
                }
                return(Ok(true));
            }
            catch (Exception ex)
            {
                errorEnvio = errorEnvio + " / " + ex.Message;
                return(InternalServerError(ex));
            }
            finally
            {
                (new
                {
                    Request = ListPedidosProcesados,
                    Response = mResponse,
                    EnvioSF = objEnvio,
                    Exception = errorEnvio
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }
示例#24
0
        public UnidadNegocio FindUnidadNegocio(string unidadNegocio)
        {
            UnidadNegocio ResultadoUnidad = _context.UnidadNegocios.AsNoTracking().SingleOrDefault(uN => uN.DescUnidadNegocio == unidadNegocio);

            return(ResultadoUnidad);
        }
        public IHttpActionResult Send(UnidadNegocio unidadNegocio)
        {
            IEnumerable <SolicitudPagoNM> solicitudPagoNMs             = null;
            List <RptaSolicitudPagoSF>    ListRptaSolicitudPagoSF_Fail = null;
            RptaSolicitudPagoSF           _rptaSolicitudPagoSF         = null;

            object SFResponse = null;
            string error      = string.Empty;
            object objEnvio   = null;

            try
            {
                var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio());

                /// I. Consulta de Solicitud Pago NM
                solicitudPagoNMs = (IEnumerable <SolicitudPagoNM>)(_solicitudPagoNMRepository.GetSolicitudesPago())[OutParameter.CursorSolicitudPagoNM];
                if (solicitudPagoNMs == null || solicitudPagoNMs.ToList().Count.Equals(0))
                {
                    return(Ok(false));
                }

                /// Obtiene Token para envío a Salesforce
                var authSf    = RestBase.GetToken();
                var token     = authSf[OutParameter.SF_Token].ToString();
                var crmServer = authSf[OutParameter.SF_UrlAuth].ToString();

                /// preparación de hotel para envio a Salesforce
                var solicitudPagoNMSF = new List <object>();
                foreach (var solicitudPago in solicitudPagoNMs)
                {
                    solicitudPagoNMSF.Add(solicitudPago.ToSalesforceEntity());
                }

                try
                {
                    /// Envío de CuentaNM a Salesforce
                    objEnvio = new { ListdatosSolicitudPago = solicitudPagoNMSF };
                    QuickLog(objEnvio, "body_request.json", "SolicitudPagoNM", previousClear: true); /// ♫ Trace

                    var responseSolicitudPagoNM = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.SolicitudPagoNMMethod, Method.POST, objEnvio, true, token);
                    if (responseSolicitudPagoNM.StatusCode.Equals(HttpStatusCode.OK))
                    {
                        dynamic jsonResponse = (new JavaScriptSerializer()).DeserializeObject(responseSolicitudPagoNM.Content);
                        SFResponse = jsonResponse["respuestas"];
                        QuickLog(SFResponse, "body_response.json", "SolicitudPagoNM", previousClear: true); /// ♫ Trace
                        ListRptaSolicitudPagoSF_Fail = new List <RptaSolicitudPagoSF>();

                        foreach (var solicitudPagoNM in jsonResponse["respuestas"])
                        {
                            try
                            {
                                #region Deserialize
                                _rptaSolicitudPagoSF = new RptaSolicitudPagoSF();

                                _rptaSolicitudPagoSF.CodigoError           = solicitudPagoNM[OutParameter.SF_Codigo];
                                _rptaSolicitudPagoSF.MensajeError          = solicitudPagoNM[OutParameter.SF_Mensaje];
                                _rptaSolicitudPagoSF.idOportunidad_SF      = solicitudPagoNM[OutParameter.SF_IdOportunidad2];
                                _rptaSolicitudPagoSF.IdRegSolicitudPago_SF = solicitudPagoNM[OutParameter.SF_IdRegSolicitudPago];
                                _rptaSolicitudPagoSF.Identificador_NM      = solicitudPagoNM[OutParameter.SF_IdentificadorNM];
                                #endregion

                                #region ReturnToDB
                                var updOperation = _solicitudPagoNMRepository.Update(_rptaSolicitudPagoSF);

                                if (Convert.IsDBNull(updOperation[OutParameter.IdActualizados]) == true || updOperation[OutParameter.IdActualizados].ToString().ToLower().Contains("null") || Convert.ToInt32(updOperation[OutParameter.IdActualizados].ToString()) <= 0)
                                {
                                    error = error + "Error en el Proceso de Actualizacion - No Actualizo Ningun Registro. Identificador NM : " + _rptaSolicitudPagoSF.Identificador_NM.ToString() + "||||";
                                    ListRptaSolicitudPagoSF_Fail.Add(_rptaSolicitudPagoSF);
                                    /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/
                                }

                                #endregion
                            }
                            catch (Exception ex)
                            {
                                error = error + "Error en el Proceso de Actualizacion - Response SalesForce : " + ex.Message + "||||";
                                ListRptaSolicitudPagoSF_Fail.Add(_rptaSolicitudPagoSF);
                                /*Analizar si se deberia grabar en una tabla de bd para posteriormente darle seguimiento*/
                            }
                        }
                    }
                    else
                    {
                        QuickLog(SFResponse, "body_response.json", "SolicitudPagoNM", previousClear: true); /// ♫ Trace
                        error = responseSolicitudPagoNM.StatusCode.ToString();
                    }
                }
                catch (Exception ex)
                {
                    error = ex.Message;
                }

                return(Ok(true));
            }
            catch (Exception ex)
            {
                error = error + " / " + ex.Message;
                return(InternalServerError(ex));
            }
            finally
            {
                if (objEnvio != null || SFResponse != null || ListRptaSolicitudPagoSF_Fail != null || string.IsNullOrEmpty(error) == false)
                {
                    (new
                    {
                        Request = objEnvio,
                        Response = SFResponse,
                        Rpta_NoUpdate_Fail = ListRptaSolicitudPagoSF_Fail,
                        Exception = error
                                    //LegacySystems = solicitudPagoNMs
                    }).TryWriteLogObject(_logFileManager, _clientFeatures);
                }
            }
        }
示例#26
0
        public IHttpActionResult Send(UnidadNegocio unidadNegocio)
        {
            IEnumerable <Oportunidad> oportunidades = null;
            string exceptionMsg = string.Empty;

            try
            {
                ClearQuickLog("body_request.json", "Oportunidad");  /// ♫ Trace
                ClearQuickLog("body_response.json", "Oportunidad"); /// ♫ Trace
                var _unidadNegocio = RepositoryByBusiness(unidadNegocio.Descripcion.ToUnidadNegocio());

                /// I. Consulta de Oportunidades
                oportunidades = (IEnumerable <Oportunidad>)_oportunidadRepository.GetOportunidades()[OutParameter.CursorOportunidad];
                if (oportunidades == null || oportunidades.ToList().Count.Equals(0))
                {
                    return(Ok(oportunidades));
                }

                /// Obtiene Token para envío a Salesforce
                var authSf    = RestBase.GetToken();
                var token     = authSf[OutParameter.SF_Token].ToString();
                var crmServer = authSf[OutParameter.SF_UrlAuth].ToString();

                foreach (var oportunidad in oportunidades)
                {
                    /// II. Enviar Oportunidad a Salesforce
                    try
                    {
                        oportunidad.CodigoError = oportunidad.MensajeError = string.Empty;

                        var oportunidad_SF = oportunidad.ToSalesforceEntity();
                        QuickLog(oportunidad_SF, "body_request.json", "Oportunidad", true); /// ♫ Trace
                        var responseOportunidad = RestBase.ExecuteByKeyWithServer(crmServer, SalesforceKeys.OportunidadMethod, Method.POST, oportunidad_SF, true, token);
                        if (responseOportunidad.StatusCode.Equals(HttpStatusCode.OK))
                        {
                            dynamic jsonResponse = new JavaScriptSerializer().DeserializeObject(responseOportunidad.Content);
                            QuickLog(jsonResponse, "body_response.json", "Oportunidad", true); /// ♫ Trace
                            try
                            {
                                oportunidad.CodigoError  = jsonResponse[OutParameter.SF_CodigoError];
                                oportunidad.MensajeError = jsonResponse[OutParameter.SF_MensajeError];
                                if (string.IsNullOrEmpty(oportunidad.IdOportunidad))
                                {
                                    oportunidad.IdOportunidad = jsonResponse[OutParameter.SF_IdOportunidad];
                                }
                            }
                            catch
                            {
                            }

                            try
                            {
                                /// Actualización de estado de Oportunidad a PTA
                                var updateResponse = _oportunidadRepository.Update(oportunidad);
                                oportunidad.Actualizados = int.Parse(updateResponse[OutParameter.IdActualizados].ToString());
                            }
                            catch
                            {
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        exceptionMsg             = ex.Message;
                        oportunidad.CodigoError  = ApiResponseCode.ErrorCode;
                        oportunidad.MensajeError = ex.Message;
                    }
                }

                return(Ok(oportunidades));
            }
            catch (Exception ex)
            {
                oportunidades = null;
                return(InternalServerError(ex));
            }
            finally
            {
                (new
                {
                    UnidadNegocio = unidadNegocio.Descripcion,
                    Exception = exceptionMsg,
                    LegacySystems = oportunidades
                }).TryWriteLogObject(_logFileManager, _clientFeatures);
            }
        }