示例#1
0
        private DataTable consultaSQL_DT(string sql, string id)
        {
            DataTable dt = new DataTable();

            using (Microsoft_SQL_Server oSQL = new Microsoft_SQL_Server(dc.Server, dc.Database, dc.Usuario_cliente, dc.Password))
            {
                try
                {
                    oSQL.CrearConexion();
                    oSQL.AbrirConexion();
                    dt = oSQL.EjecutarConsulta(sql, "TB");
                    oSQL.CerrarConexion();
                }
                catch (Exception ex)
                {
                    archivoErrores = new LogErrores();
                    archivoErrores.escribir("Retenciones", id, ex.Message);
                }
                finally
                {
                    oSQL.CerrarConexion();
                }
            }
            return(dt);
        }
示例#2
0
        /// <summary>
        /// Permite obtener información de la cuenta de interface [GL_INTERFACE_ACCT]
        /// </summary>
        /// <param name="pInterface">Nombre de la interface [INTERFACE_ID]</param>
        /// <param name="pEntidad">Nombre de la entidad [ENTITY_ID]</param>
        /// <returns>Un DataTabe con los datos de la cuenta.</returns>
        public DataTable obtenerDatosCuenta(string pInterface, string pEntidad)
        {
            Microsoft_SQL_Server oSql = new Microsoft_SQL_Server(_oDatosConexion.Server, _oDatosConexion.Database, _oDatosConexion.Usuario_cliente, _oDatosConexion.Password);
            string query = MapeoQuerySql.ObtenerPorId("CuentaContable.obtenerDatosCuenta");

            return(oSql.EjecutarConsulta(query, "CURRENCY"));
        }
示例#3
0
        public static double obtenerTipoCambio(string pBanco, string pNoControl, string pMoneda)
        {
            DataTable            odtTipoCambio;
            Microsoft_SQL_Server oSQL = null;
            double dTC = 0.0;

            try
            {
                oSQL = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password);
                oSQL.CrearConexion();
                oSQL.AbrirConexion();

                string query = MapeoQuerySql.ObtenerPorId("TipoCambio.obtenerTipoCambio2");
                query         = string.Format(query, pBanco, pNoControl, pMoneda);
                odtTipoCambio = oSQL.EjecutarConsulta(query, "TIPOCAMBIO");

                dTC = Convert.ToDouble(odtTipoCambio.Rows[0]["SELL_RATE"].ToString());

                return(dTC);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocurrio un error al obtener el Tipo de Cambio. Detalle: " + ex.Message);
            }
            finally
            {
                oSQL.CerrarConexion();
                oSQL.DestruirConexion();
            }
        }
        private void cargarCuentas()
        {
            string sql = MapeoQuerySql.ObtenerPorId("Retenciones.listarCuentas");

            DataTable dt = new DataTable();

            using (Microsoft_SQL_Server oSQL = new Microsoft_SQL_Server(dc.Server, dc.Database, dc.Usuario_cliente, dc.Password))
            {
                try
                {
                    oSQL.CrearConexion();
                    oSQL.AbrirConexion();
                    dt = oSQL.EjecutarConsulta(sql, "TB");
                    oSQL.CerrarConexion();
                }
                catch (Exception ex)
                {
                    archivoErrores = new LogErrores();
                    archivoErrores.escribir("Retenciones", "frmCatCuentasRet private void cargarCuentas()", ex.Message);
                }
                finally
                {
                    oSQL.CerrarConexion();
                }
            }

            if (dt != null && dt.Rows.Count > 0)
            {
                c1gCuentas.SetDataBinding(dt, "", true);
            }
            else
            {
                MessageBox.Show("No se pudo obtener el listado de cuentas a agregar", "Catálogo de cuentas de retención", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }
        public DataTable obtenerDatos()
        {
            DataTable            odtApp;
            Microsoft_SQL_Server oSQL = null;
            string sTipoCambio        = string.Empty;

            try
            {
                oSQL = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password);
                oSQL.CrearConexion();
                oSQL.AbrirConexion();

                string query = MapeoQuerySql.ObtenerPorId("APPLICATION_GLOBAL.obtenerDatos");
                odtApp = oSQL.EjecutarConsulta(query, "APPLICATION_GLOBAL");

                return(odtApp);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocurrio un error al obtener información de APPLICATION_GLOBAL. Detalle: " + ex.Message);
            }
            finally
            {
                oSQL.CerrarConexion();
                oSQL.DestruirConexion();
            }
        }
示例#6
0
        /// <summary>
        /// Permite obtener el tipo de cambio que maneja la empresa,
        /// las opciones son Tipo de Cambio de la Factura y del Pago.
        /// </summary>
        /// <returns>Una cadena con el tipo de cambio "FACTURA" o "PAGO".</returns>
        public static string obtenerTipoCambio(string id_entidad, Microsoft_SQL_Server conn)
        {
            DataTable odtTipoCambio;
            string    sTipoCambio = string.Empty;

            try
            {
                string query = MapeoQuerySql.ObtenerPorId("TipoCambio.obtenerTipoCambio");
                odtTipoCambio = conn.EjecutarConsulta(string.Format("SELECT TIPO FROM VMX_DIOT_TIPOCAMBIO WHERE ENTITY_ID = '{0}'", id_entidad), "TIPOCAMBIO");

                if (odtTipoCambio.Rows.Count >= 1)
                {
                    sTipoCambio = odtTipoCambio.Rows[0]["TIPO"].ToString();
                }
                else
                {
                    MessageBox.Show("No existe un tipo de cambio 'FACTURA' o 'PAGO' en la Entidad", "Error del sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }


                return(sTipoCambio);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocurrio un error al obtener el Tipo de Cambio. Detalle: " + ex.Message);
            }
        }
示例#7
0
        public DataTable obtenerMovimientosDetalle(int pAnio, int pMes, string pFecha, int pConsiliado, string id_site, string currency, int pSoloPosteado)
        {
            DataSet DS = new DataSet();

            using (Microsoft_SQL_Server oSql = new Microsoft_SQL_Server(_SqlCnn.Server, _SqlCnn.Database, _SqlCnn.Usuario_cliente, _SqlCnn.Password))
            {
                oSql.CrearConexion();
                oSql.AbrirConexion();

                string query = MapeoQuerySql.ObtenerPorId("CuentasPorCobrar.obtenerMovimientosDetalle");

                oSql.sNombreProcedimiento = query;

                oSql.NumParametros(7);
                oSql.AgregarParametro("@ANIO", pAnio.ToString(), 18, eTipoDato.Entero, eDireccion.Entrada);
                oSql.AgregarParametro("@MES", pMes.ToString(), 18, eTipoDato.Entero, eDireccion.Entrada);
                oSql.AgregarParametro("@FECHA", pFecha.ToString(), 15, eTipoDato.Caracter, eDireccion.Entrada);
                oSql.AgregarParametro("@CONSILIADO", pConsiliado.ToString(), 18, eTipoDato.Entero, eDireccion.Entrada);
                oSql.AgregarParametro("@SITE_ID", id_site, 18, eTipoDato.Caracter, eDireccion.Entrada);
                oSql.AgregarParametro("@CURRENCY_ID", currency, 18, eTipoDato.Caracter, eDireccion.Entrada);

                oSql.AgregarParametro("@SoloPosteados", pSoloPosteado.ToString(), 18, eTipoDato.Entero, eDireccion.Entrada);

                oSql.EjecutarSP(ref DS, "Polizas");
            }

            if (DS.Tables.Contains("Polizas") && DS.Tables["Polizas"] != null)
            {
                return(DS.Tables["Polizas"]);
            }
            else
            {
                return(null);
            }
        }
示例#8
0
        private int ejecutaSQL(string sql, string id)
        {
            int i = 0;
            Microsoft_SQL_Server mc  = new Microsoft_SQL_Server(dc.Server, dc.Database, dc.Usuario_cliente, dc.Password);
            SqlConnection        cnn = new SqlConnection(mc.stringConexion);

            try
            {
                SqlCommand c = new SqlCommand(sql, cnn);
                c.CommandType = CommandType.Text;
                cnn.Open();
                i = c.ExecuteNonQuery();
                cnn.Close();
            }
            catch (Exception ex)
            {
                archivoErrores = new LogErrores();
                archivoErrores.escribir("Retenciones", id, ex.Message);
                if (cnn.State != ConnectionState.Closed)
                {
                    cnn.Close();
                }
            }
            return(i);
        }
示例#9
0
        /// <summary>
        /// Obtiene las polizas por traspazar por tipo de consulta
        /// </summary>
        /// <param name="pAnio"></param>
        /// <param name="pMes"></param>
        /// <param name="pFecha"></param>
        /// <param name="pConsiliado"></param>
        /// <param name="id_site"></param>
        /// <param name="TipoMovimiento">P:Polizas,PD:PolizasDetalle,R:Retenciones,RD:RetencionesDetalle </param>
        /// <returns>DataTable movimientos pendientes por traspazar</returns>
        public DataTable obtenerMovimientosTipo(int pAnio, int pMes, string pFecha, int pConsiliado, string id_site, string TipoMovimiento, string currency, int PG_Intercambiada, int pSoloPosteado)
        {
            string sp = "";

            switch (TipoMovimiento)
            {
            case "P": sp = "CuentasPorPagar.obtenerMovimientos";
                break;

            case "PD": sp = "CuentasPorPagar.obtenerMovimientosDetalle";
                break;

            case "R": sp = "CuentasPorPagar.obtenerMovimientosRetencion";
                break;

            case "RD": sp = "CuentasPorPagar.obtenerMovimientosRetencionDetalle";
                break;

            default: sp = "";
                break;
            }

            DataSet DS = new DataSet();

            using (Microsoft_SQL_Server oSql = new Microsoft_SQL_Server(_SqlCnn.Server, _SqlCnn.Database, _SqlCnn.Usuario_cliente, _SqlCnn.Password))
            {
                oSql.CrearConexion();
                oSql.AbrirConexion();

                string query = MapeoQuerySql.ObtenerPorId(sp);

                oSql.sNombreProcedimiento = query;
                oSql.NumParametros(8);
                oSql.AgregarParametro("@ANIO", pAnio.ToString(), 18, eTipoDato.Entero, eDireccion.Entrada);
                oSql.AgregarParametro("@MES", pMes.ToString(), 18, eTipoDato.Entero, eDireccion.Entrada);
                oSql.AgregarParametro("@FECHA", pFecha.ToString(), 15, eTipoDato.Caracter, eDireccion.Entrada);
                oSql.AgregarParametro("@CONSILIADO", pConsiliado.ToString(), 18, eTipoDato.Entero, eDireccion.Entrada);
                oSql.AgregarParametro("@SITE_ID", id_site, 18, eTipoDato.Caracter, eDireccion.Entrada);
                oSql.AgregarParametro("@CURRENCY_ID", currency, 18, eTipoDato.Caracter, eDireccion.Entrada);
                oSql.AgregarParametro("@PG_Intercarmbiada", PG_Intercambiada.ToString(), 18, eTipoDato.Entero, eDireccion.Entrada);

                oSql.AgregarParametro("@SoloPosteados", pSoloPosteado.ToString(), 18, eTipoDato.Entero, eDireccion.Entrada);

                _ArchivoErrores = new LogErrores();
                string sParametros = string.Format("AÑO: {0} MES: {1} FECHA: {2} CONSILIADO: {3}", pAnio, pMes, pFecha, pConsiliado);
                _ArchivoErrores.escribir("CuentasPorPagar", "obtenerMovimientos", sParametros);
                oSql.EjecutarSP(ref DS, "Polizas");
            }

            if (DS.Tables.Contains("Polizas") && DS.Tables["Polizas"] != null)
            {
                return(DS.Tables["Polizas"]);
            }
            else
            {
                return(null);
            }
        }
示例#10
0
        /// <summary>
        /// Obtener el Sell_Rate y Buy_Rate de la moneda de rastreo.
        /// Ordenar por fecha descendente y tomar el primero.
        /// </summary>
        /// <param name="pMoneda">Moneda de rastreo de la que se ontendra el Sell_Rate y BuyRate.</param>
        /// <param name="pFecha">Fecha del periodo contable en el que se genera la poliza.</param>
        /// <returns>DataTable con los datos monetarios.</returns>
        public DataTable obtenerDatosMonetarios(string pMoneda, string pFecha, string siteid)
        {
            Microsoft_SQL_Server oSql = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password);

            string query = MapeoQuerySql.ObtenerPorId("Moneda.obtenerDatosMonetarios");

            query = string.Format(query, pMoneda, pFecha, siteid);

            return(oSql.EjecutarConsulta(query, "CURRENCY"));
        }
示例#11
0
        /// <summary>
        /// Obtener el listado de monedas de la empresa
        /// </summary>
        /// <param name="pEntity"></param>
        /// <returns></returns>
        public DataTable obtenerMonedasEntidad(string pEntidad)
        {
            Microsoft_SQL_Server oSql = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password);

            string query = MapeoQuerySql.ObtenerPorId("Moneda.obtenerMonedasEntidad");

            query = string.Format(query, pEntidad);

            return(oSql.EjecutarConsulta(query, "CURRENCY"));
        }
示例#12
0
        public DataTable obtenerMonedaNativaTipoCambio(String currency, string fecha, string site_id)
        {
            Microsoft_SQL_Server oSql = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password);

            string query = MapeoQuerySql.ObtenerPorId("Moneda.obtenerDatosMonetarios");

            query = string.Format(query, currency, fecha, site_id);
            DataTable dt = oSql.EjecutarConsulta(query, "CURRENCY");

            return(dt);
        }
示例#13
0
        public string obtenerMonedaNativa(String pSite)
        {
            Microsoft_SQL_Server oSql = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password);

            string query = MapeoQuerySql.ObtenerPorId("Moneda.obtenerMonedaNativa");

            query = string.Format(query, pSite);
            DataTable dt = oSql.EjecutarConsulta(query, "CURRENCY");

            return(dt.Rows.Count > 0 ? dt.Rows[0][0].ToString(): string.Empty);
        }
示例#14
0
        /// <summary>
        /// Permite obtener los datos de la consulta sql.
        /// </summary>
        /// <returns>Un data table con </returns>
        private DataTable obtenerDatos()
        {
            using (Microsoft_SQL_Server oSQL = new Microsoft_SQL_Server(ConexionSQL._Servidor, ConexionSQL._BaseDatos, ConexionSQL._Usuario, ConexionSQL._Password))
            {
                oSQL.CrearConexion();
                oSQL.AbrirConexion();

                _dtConsulta = oSQL.EjecutarConsulta(_consultaSQL, "DATOS");
            }

            return(_dtConsulta);
        }
        public frmPerdidaGanancia(Microsoft_SQL_Server sql)
        {
            InitializeComponent();

            //estos labels son meramente informativos para el desarrollador
            lbl11.Visible = false; //en el documento de especificación, se indica como la fórmula del Criterio Actual
            lbl12.Visible = false; //en el documento de especificación, se indica como la fórmula del Criterio Correcto

            string cbpg = ConfigurationManager.AppSettings["PG_Intercarmbiada"].ToString();

            cbPerdidaGanancia.Checked = cbpg.ToUpper() == "TRUE"? true : false;
            cbGdPh.Checked            = cbPerdidaGanancia.Checked ? false : true;
            _SQL            = sql;
            _ArchivoErrores = new LogErrores();
        }
示例#16
0
        public string getNext_GJ_ID(string id_site, int add_Id = 0)
        {
            Microsoft_SQL_Server objSQL         = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password);
            DataTable            dtTblID_Poliza = new DataTable("NEXT_NUMBER_GEN");
            string sNextNumber    = string.Empty;
            string ALPHA_PREFIX   = string.Empty;
            string ALPHA_SUFFIX   = string.Empty;
            string journalID      = string.Empty;
            int    sDecimalPlaces = 0;
            int    iNextNumber    = 0;

            objSQL.CrearConexion();
            objSQL.AbrirConexion();

            // Este numero consecutivo NEXT_NUMBER  es generado por Visual ERP
            string query = string.Format(MapeoQuerySql.ObtenerPorId("AdminGJ.getNext_GJ_ID"), id_site);

            dtTblID_Poliza = objSQL.EjecutarConsulta(string.Format(query), "NEXT_NUMBER_GEN");

            objSQL.CerrarConexion();
            objSQL.DestruirConexion();

            if (dtTblID_Poliza.Rows.Count > 0)
            {
                //sNextNumber = dtTblID_Poliza.Rows[0]["NEXT_NUMBER"].ToString();
                iNextNumber    = Convert.ToInt32(dtTblID_Poliza.Rows[0]["NEXT_NUMBER"]) + add_Id;
                sNextNumber    = iNextNumber.ToString();
                sDecimalPlaces = int.Parse(dtTblID_Poliza.Rows[0]["DECIMAL_PLACES"].ToString());

                // Concatenar ceros a la izquierda
                if (sNextNumber.Length < sDecimalPlaces)
                {
                    while (sNextNumber.Length < sDecimalPlaces)
                    {
                        sNextNumber = "0" + sNextNumber;
                    }
                }
            }

            ALPHA_PREFIX = dtTblID_Poliza.Rows[0]["ALPHA_PREFIX"].ToString();
            ALPHA_SUFFIX = dtTblID_Poliza.Rows[0]["ALPHA_SUFFIX"].ToString();

            journalID = ALPHA_PREFIX + sNextNumber + ALPHA_SUFFIX;

            // Siguiente ID_Poliza
            return(journalID);
        }
示例#17
0
        public string getMax_GJ_ID(string PrefijoID_GJ, string site_id)
        {
            string GJ_id          = "";
            int    decimal_places = 0;

            Microsoft_SQL_Server objSQL = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password);

            // Este numero consecutivo se obtiene de GJ sin importarle el site_id
            string sql = MapeoQuerySql.ObtenerPorId("AdminGJ.getMax_GJ_ID");

            sql = string.Format(sql, PrefijoID_GJ, PrefijoID_GJ.Length);

            objSQL.CrearConexion();
            string s = obtenerConsulta(objSQL._oConn, sql);

            sql = MapeoQuerySql.ObtenerPorId("AdminGJ.decimal_places");
            sql = string.Format(sql, site_id);

            string paso = obtenerConsulta(objSQL._oConn, sql);

            objSQL.CerrarConexion();
            objSQL.DestruirConexion();


            if (paso != "")
            {
                decimal_places = Convert.ToInt16(paso);
            }

            if (s != null)
            {
                GJ_id = (Convert.ToInt32(s) + 1).ToString();

                // Concatenar ceros a la izquierda
                if (GJ_id.Length < decimal_places)
                {
                    while (GJ_id.Length < decimal_places)
                    {
                        GJ_id = "0" + GJ_id;
                    }
                }
                // Concatenar prefijo
                GJ_id = PrefijoID_GJ + GJ_id;
            }
            return(GJ_id);
        }
示例#18
0
        /// <summary>
        /// Obtener las monedas de rastreo que no sean la moneda con la que trabaja la empresa.
        /// </summary>
        /// <returns>DataTable con las monedas de rastreo.</returns>
        public DataTable obtenerMonedasRasteables(string siteId)
        {
            Microsoft_SQL_Server oSql       = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password);
            DataTable            odtMonedas = null;

            string query = MapeoQuerySql.ObtenerPorId("Moneda.obtenerMonedasRasteables");

            query      = string.Format(query, siteId);
            odtMonedas = oSql.EjecutarConsulta(query, "CURRENCY");

            if (odtMonedas != null && odtMonedas.Rows.Count > 0)
            {
                return(odtMonedas);
            }

            return(null);
        }
示例#19
0
        /// <summary>
        /// Obtiene los periodos contables para el año seleccionado
        /// </summary>
        /// <param name="pAnio">Año contable del que se desean obtener los periodos</param>
        public DataTable obtenerPeriodosContables(int pAnio, string id_site)
        {
            DataTable oDtTbl    = new DataTable();
            string    sConsulta = MapeoQuerySql.ObtenerPorId("PeriodoContable.obtenerPeriodosContables");

            sConsulta = string.Format(sConsulta, pAnio, id_site);

            using (Microsoft_SQL_Server oSQL = new Microsoft_SQL_Server(_servidor, _baseDatos, _usuario, _password))
            {
                oSQL.CrearConexion();
                oSQL.AbrirConexion();

                oDtTbl = oSQL.EjecutarConsulta(sConsulta, "ACCOUNT_PERIOD");
            }

            return(oDtTbl);
        }
示例#20
0
        public void setNext_GJ_ID(string site_id)
        {
            int                  nextNumber     = 0;
            DataTable            dtTblID_Poliza = new DataTable("NEXT_NUMBER_GEN");
            Microsoft_SQL_Server objSQL         = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password);

            objSQL.CrearConexion();
            objSQL.AbrirConexion();

            // Este numero consecutivo NEXT_NUMBER  es generado por Visual ERP
            string query = string.Format(MapeoQuerySql.ObtenerPorId("AdminGJ.getNext_GJ_ID"), site_id);

            dtTblID_Poliza = objSQL.EjecutarConsulta(query, "NEXT_NUMBER_GEN");

            nextNumber = int.Parse(dtTblID_Poliza.Rows[0]["NEXT_NUMBER"].ToString());

            query = MapeoQuerySql.ObtenerPorId("AdminGJ.setNext_GJ_ID");

            // Actualizar el nuevo numero de poliza
            objSQL.EjecutarDML(string.Format(query, nextNumber + 1, site_id));

            objSQL.CerrarConexion();
            objSQL.DestruirConexion();
        }
示例#21
0
 public Conexion(string server, string database, string usuario, string password)
 {
     this.conn = new Microsoft_SQL_Server(server, database, usuario, password);
 }
示例#22
0
        public void agregarPoliza(DataTable pdtTbl_Traspasos, string psTipoTraspaso, DataTable pdtTbl_VMX_IVATRASTEMP)
        {
            Microsoft_SQL_Server objSql                  = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password);
            string                sInsertGJ              = string.Empty;
            string                sInsertGJ_CURR         = string.Empty;
            StringBuilder         sGJ_DIST               = new StringBuilder();
            StringBuilder         sGJ_LINE               = new StringBuilder();
            StringBuilder         sVMX_CONTOLPOLIZA_LINE = new StringBuilder();
            AdminCurrencyTracking oCurrencyTracking      = new AdminCurrencyTracking();

            _dtVMX_IVATRASTEMP = pdtTbl_Traspasos;
            _dtDetalla_IVA     = pdtTbl_VMX_IVATRASTEMP;
            string query = string.Empty;

            try
            {
                _lstCurrencyTracking = oCurrencyTracking.getCurrencyTracking(_GJ_Date);

                objSql.CrearConexion();
                objSql.AbrirConexion();
                objSql.CrearTransaccion();

                // General Journal
                sInsertGJ = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.GeneralJournal");
                sInsertGJ = string.Format(sInsertGJ,
                                          _ID, _GJ_Date, _Description, _PostingDate, _Total_DR_Amount, _Total_CR_Amount, _Sell_Rate, _Buy_Rate, _EntityID,
                                          _Create_Date, _UserID, _CurrencyID, _Post_All_Tracking, _Post_As_Native, _User_Exch_Rate, _Posting_Candidate);

                // Insertar encabezado de Poliza
                objSql.EjecutarDML(sInsertGJ);

                // Almacenar el tipo de moneda y el monto de la poliza.
                sInsertGJ_CURR = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.Currency");
                sInsertGJ_CURR = string.Format(sInsertGJ_CURR, _ID, _CurrencyID, _Total_CR_Amount, _Sell_Rate, _Buy_Rate);

                if (_lstCurrencyTracking.Count > 0)
                {
                    string currencyTracking = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.Currency");
                    foreach (MonedaRastreo item in _lstCurrencyTracking)
                    {
                        sInsertGJ_CURR += string.Format(currencyTracking, _ID, item.ID, Math.Round((_Total_CR_Amount / item.SELL_RATE), 2), item.SELL_RATE, item.BUY_RATE);
                    }
                }

                objSql.EjecutarDML(sInsertGJ_CURR);

                int    iDistNo      = 0;
                int    iLineNo      = 1;
                double dperdida     = 0;
                double dganancia    = 0;
                string sCtaGanancia = string.Empty;
                string sCtaPerdida  = string.Empty;

                foreach (DataRow drRow_Traspasos in pdtTbl_Traspasos.Rows)
                {
                    string DIST_NO          = "1";
                    string NATIVE_AMOUNT    = "0";
                    string POSTING_STATUS   = "U";
                    string NATIVE           = "Y";
                    string sCta_Origen      = drRow_Traspasos["CUENTA_ORIGEN"].ToString();
                    string sCta_Destino     = drRow_Traspasos["CUENTA_DESTINO"].ToString();
                    string sMontoTraspaso   = drRow_Traspasos["MONTO"].ToString();
                    double dIVA_Factura     = double.Parse(drRow_Traspasos["MONTO"].ToString());
                    double dIVA_Deposito    = double.Parse(drRow_Traspasos["MONTO_IVA_DEPOSITO"].ToString());
                    double dGananciaPerdida = 0;
                    string str_sql          = string.Empty;


                    // ganancia perdida
                    DataRow[] result = pdtTbl_VMX_IVATRASTEMP.Select("VAT_GL_ACCT_ID = '" + sCta_Origen + "' AND TRASLADO = '" + sCta_Destino + "'");
                    foreach (DataRow item in pdtTbl_VMX_IVATRASTEMP.Rows)
                    {
                        dGananciaPerdida = double.Parse(item["PERDIDA_GANANCIA"].ToString());

                        if (item["VAT_GL_ACCT_ID"].ToString().Equals(sCta_Origen) && item["TRASLADO"].ToString().Equals(sCta_Destino) && dGananciaPerdida < 0)
                        {
                            dperdida   += Math.Abs(dGananciaPerdida);
                            sCtaPerdida = item["CUENTA_PER_GANANCIA"].ToString();
                        }
                        else
                        {
                            dganancia   += dGananciaPerdida;
                            sCtaGanancia = item["CUENTA_PER_GANANCIA"].ToString();
                        }
                    }


                    // Encacbezado de poliza para control de CTECH
                    query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.ControlCTech");
                    query = string.Format(query, _ID, sCta_Destino, sMontoTraspaso, _PostingDate, _Create_Date, _Create_Date, _UserID, psTipoTraspaso);
                    objSql.EjecutarDML(query);

                    // En caso de que el monto sea cero no se genera
                    // ningun movimiento contable.
                    if (dIVA_Factura > 0)
                    {
                        // Detalle de los movimientos de la poliza.
                        //      Nota:En caso de tener moneda de rastreo generar un registro automaticamente para esta moneda
                        // CXC.- Cuentas por Cobrar
                        // Verificar el caso en que la cuenta origen sea diferente a la cuenta destino
                        if (psTipoTraspaso == "CXC")
                        {
                            // DR.- Debito
                            query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC");
                            query = string.Format(query, _ID, DIST_NO, iDistNo, dIVA_Factura, "DR", sCta_Origen, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, _CurrencyID, NATIVE);
                            sGJ_DIST.AppendLine(query);

                            iDistNo++;

                            // CR.- Credito
                            query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC");
                            query = string.Format(query, _ID, DIST_NO, iDistNo.ToString(), dIVA_Deposito, "CR", sCta_Destino, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, _CurrencyID, NATIVE);
                            sGJ_DIST.AppendLine(query);

                            // Moneda rastreable
                            foreach (MonedaRastreo moneda in _lstCurrencyTracking)
                            {
                                iDistNo++;

                                // DR.- Debito
                                query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC");
                                query = string.Format(query, _ID, DIST_NO, iDistNo, Math.Round((double.Parse(sMontoTraspaso) / moneda.SELL_RATE), 2), "DR", sCta_Destino, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, moneda.ID, "N");
                                sGJ_DIST.AppendLine(query);

                                iDistNo++;

                                // CR.- Credito
                                query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC");
                                query = string.Format(query, _ID, DIST_NO, iDistNo, Math.Round((double.Parse(sMontoTraspaso) / moneda.SELL_RATE), 2), "CR", sCta_Destino, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, moneda.ID, "N");
                                sGJ_DIST.AppendLine(query);
                            }
                        }
                        else
                        {
                            // CR.- Credito
                            query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC");
                            query = string.Format(query, _ID, DIST_NO, iDistNo, sMontoTraspaso, "CR", sCta_Origen, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, _CurrencyID, NATIVE);
                            sGJ_DIST.AppendLine(query);

                            iDistNo++;

                            // DR.- Debito
                            query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC");
                            query = string.Format(query, _ID, DIST_NO, iDistNo, sMontoTraspaso, "DR", sCta_Destino, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, _CurrencyID, NATIVE);
                            sGJ_DIST.AppendLine(query);

                            // Moneda rastreable
                            foreach (MonedaRastreo moneda in _lstCurrencyTracking)
                            {
                                iDistNo++;

                                // CR.- Credito
                                query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC");
                                query = string.Format(query, _ID, DIST_NO, iDistNo, Math.Round((double.Parse(sMontoTraspaso) / moneda.SELL_RATE), 2), "CR", sCta_Origen, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, moneda.ID, "N");
                                sGJ_DIST.AppendLine(query);

                                iDistNo++;

                                // DR.- Debito
                                query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxC");
                                query = string.Format(query, _ID, DIST_NO, iDistNo, Math.Round((double.Parse(sMontoTraspaso) / moneda.SELL_RATE), 2), "DR", sCta_Destino, NATIVE_AMOUNT, _PostingDate, POSTING_STATUS, _Create_Date, _EntityID, moneda.ID, "N");
                                sGJ_DIST.AppendLine(query);
                            }
                        }

                        iDistNo++;

                        // Detalle de movimientos de la poliza
                        // CXP.- Cuentas por Pagar
                        if (psTipoTraspaso == "CXP")
                        {
                            query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxP");
                            query = string.Format(query, _ID, iLineNo, sCta_Destino, sMontoTraspaso, 0);
                            sGJ_LINE.AppendLine(query);

                            iLineNo++;

                            query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxP");
                            query = string.Format(query, _ID, iLineNo, sCta_Origen, 0, sMontoTraspaso);
                            sGJ_LINE.AppendLine(query);
                        }
                        else
                        {
                            query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxP");
                            query = string.Format(query, _ID, iLineNo, sCta_Origen, sMontoTraspaso, 0);
                            sGJ_LINE.AppendLine(query);

                            iLineNo++;

                            query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CxP");
                            query = string.Format(query, _ID, iLineNo, sCta_Destino, 0, sMontoTraspaso);
                            sGJ_LINE.AppendLine(query);
                        }

                        iLineNo++;
                    }

                    foreach (DataRow dr_i in pdtTbl_VMX_IVATRASTEMP.Rows)
                    {
                        string BANK_ACCOUNT_ID = dr_i["BANK_ACCOUNT_ID"].ToString();
                        string CONTROL_NO      = dr_i["CONTROL_NO"].ToString();
                        string VAT_AMOUNT      = "0";
                        string SELL_RATE       = dr_i["TC_FACTURA"].ToString();
                        string MONTO           = dr_i["IVA_MXN_TRASLADAR_FACT"].ToString();
                        string CUENTA_ORIGEN   = dr_i["VAT_GL_ACCT_ID"].ToString();
                        string DESCRIPCION     = dr_i["DESCRIPCION"].ToString();
                        string CUENTA_DESTINO  = dr_i["TRASLADO"].ToString();
                        string COD_CLIENTE     = string.Empty;

                        if (sCta_Destino == CUENTA_DESTINO && sCta_Origen == CUENTA_ORIGEN)
                        {
                            // CXC - CASH_RECEIPT
                            if (psTipoTraspaso == "CXC")
                            {
                                COD_CLIENTE = dr_i["Cliente"].ToString();
                                query       = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CashReceiptCxC");
                                query       = string.Format(query, _ID, BANK_ACCOUNT_ID, CONTROL_NO, VAT_AMOUNT, SELL_RATE, MONTO, CUENTA_ORIGEN, DESCRIPCION, CUENTA_DESTINO, CUENTA_DESTINO, psTipoTraspaso, COD_CLIENTE);
                                sVMX_CONTOLPOLIZA_LINE.AppendLine(query);
                            }
                            else
                            {
                                // CXP - CASH_DISBURSEMENT
                                query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.CashDisbursementCxP");
                                query = string.Format(query, _ID, BANK_ACCOUNT_ID, CONTROL_NO, VAT_AMOUNT, SELL_RATE, MONTO, CUENTA_ORIGEN, DESCRIPCION, CUENTA_DESTINO, CUENTA_DESTINO, psTipoTraspaso);
                                sVMX_CONTOLPOLIZA_LINE.AppendLine(query);
                            }
                        }
                    }
                }

                // Guardar todos los traspasos en GJ_DIST
                objSql.EjecutarDML(sGJ_DIST.ToString());

                // Guarddar todo los traspasos en GJ_LINE
                objSql.EjecutarDML(sGJ_LINE.ToString());

                // Guardar los traspasos en tabla de CTECH
                objSql.EjecutarDML(sVMX_CONTOLPOLIZA_LINE.ToString());

                // Actualizar el nuevo numero de poliza
                query = MapeoQuerySql.ObtenerPorId("PolizaContable.agregarPoliza.ActualizaNumeroPoliza");
                query = string.Format(query, ((int.Parse(_ID) + 1)).ToString());
                objSql.EjecutarDML(query);

                objSql.TransCommit();
            }
            catch (Exception ex)
            {
                objSql.TransRollback();

                throw new Exception(string.Format("Ocurrió un error al generar la póliza.\nDetalle: {0}.", ex.Message));
            }
            finally
            {
                objSql.DestruirTransaccion();

                objSql.CerrarConexion();
                objSql.DestruirConexion();
            }
        }
示例#23
0
 public historicoCambios(Microsoft_SQL_Server sql)
 {
     _SQL            = sql;
     _ArchivoErrores = new LogErrores();
 }
示例#24
0
 public Company(Microsoft_SQL_Server _sql)
 {
     this._sql = _sql;
 }
示例#25
0
 /// <summary>
 /// Constructor que estable las cadenas de conexion
 /// a las bases de datos de Visual ERP.
 /// </summary>
 public AdminGeneralJournal()
 {
     _oSQL  = new Microsoft_SQL_Server(Global.Servidor, Global.BaseDatos, Global.Usuario, Global.Password);
     _trace = new StringBuilder();
 }