Пример #1
0
        /*
         *                  -----Calculos-----
         * 
         *                     Tara = Peso de los sacos
         *               Peso bruto = Peso total de café
         * 
         *                % Defecto = (Peso de  muestra) / (Peso de gramos malos)
         *    Descuento por Defecto = ((Peso Bruto) - Tara) * (% Defecto)
         * 
         *                % Humedad = Valor devuelto por maquina?
         *    Descuento por Humedad = ((Peso Bruto) - Tara) * (% Humedad)
         * 
         * % Transporte Cooperativa = (Indicado por variable de entorno) * (1-0)
         * Descuento por Transporte = ((Peso Bruto) - Tara) * (% Transporte Cooperativa)
         * 
         *                Descuento = (Descuento por Defecto) + (Descuento por Humedad) + (Descuento por Transporte)
         *                    Total = (Peso Bruto) - Tara - Descuento
         * 
         */

        /// <summary>
        /// Actualiza la nota de peso I. Esta fase recalcula los montos y totales para guardar la nota de peso.
        /// </summary>
        /// <param name="NOTAS_ID"></param>
        /// <param name="ESTADOS_NOTA_ID"></param>
        /// <param name="SOCIOS_ID"></param>
        /// <param name="CLASIFICACIONES_CAFE_ID"></param>
        /// <param name="NOTAS_FECHA"></param>
        /// <param name="NOTAS_TRANSPORTE_COOPERATIVA"></param>
        /// <param name="NOTAS_PORCENTAJE_DEFECTO"></param>
        /// <param name="NOTAS_PORCENTAJE_HUMEDAD"></param>
        /// <param name="NOTAS_PESO_SUMA"></param>
        /// <param name="NOTAS_PESO_TARA"></param>
        /// <param name="NOTAS_SACOS_RETENIDOS"></param>
        /// <param name="MODIFICADO_POR"></param>
        /// <param name="Detalles"></param>
        /// <param name="NOTA_PORCENTAJEHUMEDADMIN"></param>
        /// <param name="NOTA_TRANSPORTECOOP"></param>
        public void ActualizarNotaDePeso
            (int NOTAS_ID,
            int ESTADOS_NOTA_ID,
            string SOCIOS_ID,
            int CLASIFICACIONES_CAFE_ID,
            DateTime NOTAS_FECHA,
            Boolean NOTAS_TRANSPORTE_COOPERATIVA,
            decimal NOTAS_PORCENTAJE_DEFECTO,
            decimal NOTAS_PORCENTAJE_HUMEDAD,
            decimal NOTAS_PESO_SUMA,
            decimal NOTAS_PESO_TARA,
            int NOTAS_SACOS_RETENIDOS,
            string MODIFICADO_POR,
            Dictionary<string, string>[] Detalles,
            decimal NOTA_PORCENTAJEHUMEDADMIN,
            decimal NOTA_TRANSPORTECOOP)
        {
            try
            {
                decimal peso_suma = 0;
                foreach (Dictionary<string, string> detalle in Detalles)
                {
                    decimal det_peso = Convert.ToDecimal(detalle["DETALLES_PESO"]);
                    peso_suma += det_peso;
                }

                NOTAS_PESO_SUMA = peso_suma;

                // Descuento por Defecto = ((Peso Bruto) - Tara) * (% Defecto)
                NOTAS_PORCENTAJE_DEFECTO = NOTAS_PORCENTAJE_DEFECTO / 100;
                decimal DESCUENTO_POR_DEFECTO = System.Math.Round((NOTAS_PESO_SUMA - NOTAS_PESO_TARA) * NOTAS_PORCENTAJE_DEFECTO);

                // Descuento por Humedad = ((Peso Bruto) - Tara) * (% Humedad)
                if (NOTAS_PORCENTAJE_HUMEDAD < NOTA_PORCENTAJEHUMEDADMIN)
                    NOTAS_PORCENTAJE_HUMEDAD = 0;

                NOTAS_PORCENTAJE_HUMEDAD = NOTAS_PORCENTAJE_HUMEDAD / 100;

                decimal DESCUENTO_POR_HUMEDAD = System.Math.Round((NOTAS_PESO_SUMA - NOTAS_PESO_TARA) * NOTAS_PORCENTAJE_HUMEDAD);

                // Descuento por Transporte = ((Peso Bruto) - Tara) * (% Transporte Cooperativa)
                decimal NOTAS_PORCENTAJE_TRANSPORTE_COOPERATIVA = 0;
                decimal NOTAS_PORCENTAJE_TRANSPORTE = 0;
                if (NOTAS_TRANSPORTE_COOPERATIVA == true)
                {
                    NOTAS_PORCENTAJE_TRANSPORTE_COOPERATIVA = NOTA_TRANSPORTECOOP;
                    NOTAS_PORCENTAJE_TRANSPORTE = NOTA_TRANSPORTECOOP / 100;
                }

                decimal DESCUENTO_POR_TRANSPORTE = System.Math.Round((NOTAS_PESO_SUMA - NOTAS_PESO_TARA) * NOTAS_PORCENTAJE_TRANSPORTE);

                // Descuento = (Descuento por Defecto) + (Descuento por Humedad) + (Descuento por Transporte)
                decimal DESCUENTO = System.Math.Round(DESCUENTO_POR_DEFECTO + DESCUENTO_POR_HUMEDAD + DESCUENTO_POR_TRANSPORTE);

                // Total = (Peso Bruto) - Tara - Descuento
                decimal TOTAL = System.Math.Round(NOTAS_PESO_SUMA - NOTAS_PESO_TARA - DESCUENTO);

                string localization = System.Configuration.ConfigurationManager.AppSettings.Get("numerosALetrasLocalizacion");

                COCASJOL.LOGIC.Utiles.Numalet cq = new COCASJOL.LOGIC.Utiles.Numalet();
                cq.SeparadorDecimalSalida = System.Configuration.ConfigurationManager.AppSettings.Get("numerosALetrasSeparadorDecimalSalida");
                cq.MascaraSalidaDecimal = System.Configuration.ConfigurationManager.AppSettings.Get("numerosALetrasMascaraSalidaDecimal");
                cq.ConvertirDecimales = Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings.Get("numerosALetrasConvertirDecimales"));
                cq.LetraCapital = true;

                string TOTAL_TEXTO = cq.ToCustomCardinal((TOTAL / 100).ToString());

                // Convertir Porcentaje a entero de nuevo para guardar.
                NOTAS_PORCENTAJE_DEFECTO = NOTAS_PORCENTAJE_DEFECTO * 100;
                NOTAS_PORCENTAJE_HUMEDAD = NOTAS_PORCENTAJE_HUMEDAD * 100;

                ActualizarNotaDePeso
                    (NOTAS_ID,
                    ESTADOS_NOTA_ID,
                    SOCIOS_ID,
                    CLASIFICACIONES_CAFE_ID,
                    NOTAS_FECHA,
                    NOTAS_TRANSPORTE_COOPERATIVA,
                    NOTAS_PORCENTAJE_TRANSPORTE_COOPERATIVA,
                    NOTAS_PORCENTAJE_DEFECTO,
                    NOTAS_PORCENTAJE_HUMEDAD,
                    DESCUENTO_POR_TRANSPORTE,
                    DESCUENTO_POR_DEFECTO,
                    DESCUENTO_POR_HUMEDAD,
                    DESCUENTO,
                    NOTAS_PESO_SUMA,
                    NOTAS_PESO_TARA,
                    TOTAL,
                    TOTAL_TEXTO,
                    NOTAS_SACOS_RETENIDOS,
                    MODIFICADO_POR,
                    DateTime.Today,
                    Detalles);
            }
            catch (Exception ex)
            {
                log.Fatal("Error fatal al actualizar nota de peso. Calculos.", ex);
                throw;
            }
        }
Пример #2
0
 public static String ToCardinal(String Numero)
 {
     return(Numalet.ToCardinal(Numero, CultureInfo.CurrentCulture));
 }
Пример #3
0
        /*
         *                  -----Calculos-----
         *
         *                     Tara = Peso de los sacos
         *               Peso bruto = Peso total de café
         *
         *                % Defecto = (Peso de  muestra) / (Peso de gramos malos)
         *    Descuento por Defecto = ((Peso Bruto) - Tara) * (% Defecto)
         *
         *                % Humedad = Valor devuelto por maquina?
         *    Descuento por Humedad = ((Peso Bruto) - Tara) * (% Humedad)
         *
         * % Transporte Cooperativa = (Indicado por variable de entorno) * (1-0)
         * Descuento por Transporte = ((Peso Bruto) - Tara) * (% Transporte Cooperativa)
         *
         *                Descuento = (Descuento por Defecto) + (Descuento por Humedad) + (Descuento por Transporte)
         *                    Total = (Peso Bruto) - Tara - Descuento
         *
         */

        /// <summary>
        /// Actualiza la nota de peso I. Esta fase recalcula los montos y totales para guardar la nota de peso.
        /// </summary>
        /// <param name="NOTAS_ID"></param>
        /// <param name="ESTADOS_NOTA_ID"></param>
        /// <param name="SOCIOS_ID"></param>
        /// <param name="CLASIFICACIONES_CAFE_ID"></param>
        /// <param name="NOTAS_FECHA"></param>
        /// <param name="NOTAS_TRANSPORTE_COOPERATIVA"></param>
        /// <param name="NOTAS_PORCENTAJE_DEFECTO"></param>
        /// <param name="NOTAS_PORCENTAJE_HUMEDAD"></param>
        /// <param name="NOTAS_PESO_SUMA"></param>
        /// <param name="NOTAS_PESO_TARA"></param>
        /// <param name="NOTAS_SACOS_RETENIDOS"></param>
        /// <param name="MODIFICADO_POR"></param>
        /// <param name="Detalles"></param>
        /// <param name="NOTA_PORCENTAJEHUMEDADMIN"></param>
        /// <param name="NOTA_TRANSPORTECOOP"></param>
        public void ActualizarNotaDePeso
            (int NOTAS_ID,
            int ESTADOS_NOTA_ID,
            string SOCIOS_ID,
            int CLASIFICACIONES_CAFE_ID,
            DateTime NOTAS_FECHA,
            Boolean NOTAS_TRANSPORTE_COOPERATIVA,
            decimal NOTAS_PORCENTAJE_DEFECTO,
            decimal NOTAS_PORCENTAJE_HUMEDAD,
            decimal NOTAS_PESO_SUMA,
            decimal NOTAS_PESO_TARA,
            int NOTAS_SACOS_RETENIDOS,
            string MODIFICADO_POR,
            Dictionary <string, string>[] Detalles,
            decimal NOTA_PORCENTAJEHUMEDADMIN,
            decimal NOTA_TRANSPORTECOOP)
        {
            try
            {
                decimal peso_suma = 0;
                foreach (Dictionary <string, string> detalle in Detalles)
                {
                    decimal det_peso = Convert.ToDecimal(detalle["DETALLES_PESO"]);
                    peso_suma += det_peso;
                }

                NOTAS_PESO_SUMA = peso_suma;

                // Descuento por Defecto = ((Peso Bruto) - Tara) * (% Defecto)
                NOTAS_PORCENTAJE_DEFECTO = NOTAS_PORCENTAJE_DEFECTO / 100;
                decimal DESCUENTO_POR_DEFECTO = System.Math.Round((NOTAS_PESO_SUMA - NOTAS_PESO_TARA) * NOTAS_PORCENTAJE_DEFECTO);

                // Descuento por Humedad = ((Peso Bruto) - Tara) * (% Humedad)
                if (NOTAS_PORCENTAJE_HUMEDAD < NOTA_PORCENTAJEHUMEDADMIN)
                {
                    NOTAS_PORCENTAJE_HUMEDAD = 0;
                }

                NOTAS_PORCENTAJE_HUMEDAD = NOTAS_PORCENTAJE_HUMEDAD / 100;

                decimal DESCUENTO_POR_HUMEDAD = System.Math.Round((NOTAS_PESO_SUMA - NOTAS_PESO_TARA) * NOTAS_PORCENTAJE_HUMEDAD);

                // Descuento por Transporte = ((Peso Bruto) - Tara) * (% Transporte Cooperativa)
                decimal NOTAS_PORCENTAJE_TRANSPORTE_COOPERATIVA = 0;
                decimal NOTAS_PORCENTAJE_TRANSPORTE             = 0;
                if (NOTAS_TRANSPORTE_COOPERATIVA == true)
                {
                    NOTAS_PORCENTAJE_TRANSPORTE_COOPERATIVA = NOTA_TRANSPORTECOOP;
                    NOTAS_PORCENTAJE_TRANSPORTE             = NOTA_TRANSPORTECOOP / 100;
                }

                decimal DESCUENTO_POR_TRANSPORTE = System.Math.Round((NOTAS_PESO_SUMA - NOTAS_PESO_TARA) * NOTAS_PORCENTAJE_TRANSPORTE);

                // Descuento = (Descuento por Defecto) + (Descuento por Humedad) + (Descuento por Transporte)
                decimal DESCUENTO = System.Math.Round(DESCUENTO_POR_DEFECTO + DESCUENTO_POR_HUMEDAD + DESCUENTO_POR_TRANSPORTE);

                // Total = (Peso Bruto) - Tara - Descuento
                decimal TOTAL = System.Math.Round(NOTAS_PESO_SUMA - NOTAS_PESO_TARA - DESCUENTO);

                string localization = System.Configuration.ConfigurationManager.AppSettings.Get("numerosALetrasLocalizacion");

                COCASJOL.LOGIC.Utiles.Numalet cq = new COCASJOL.LOGIC.Utiles.Numalet();
                cq.SeparadorDecimalSalida = System.Configuration.ConfigurationManager.AppSettings.Get("numerosALetrasSeparadorDecimalSalida");
                cq.MascaraSalidaDecimal   = System.Configuration.ConfigurationManager.AppSettings.Get("numerosALetrasMascaraSalidaDecimal");
                cq.ConvertirDecimales     = Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings.Get("numerosALetrasConvertirDecimales"));
                cq.LetraCapital           = true;

                string TOTAL_TEXTO = cq.ToCustomCardinal((TOTAL / 100).ToString());

                // Convertir Porcentaje a entero de nuevo para guardar.
                NOTAS_PORCENTAJE_DEFECTO = NOTAS_PORCENTAJE_DEFECTO * 100;
                NOTAS_PORCENTAJE_HUMEDAD = NOTAS_PORCENTAJE_HUMEDAD * 100;

                ActualizarNotaDePeso
                    (NOTAS_ID,
                    ESTADOS_NOTA_ID,
                    SOCIOS_ID,
                    CLASIFICACIONES_CAFE_ID,
                    NOTAS_FECHA,
                    NOTAS_TRANSPORTE_COOPERATIVA,
                    NOTAS_PORCENTAJE_TRANSPORTE_COOPERATIVA,
                    NOTAS_PORCENTAJE_DEFECTO,
                    NOTAS_PORCENTAJE_HUMEDAD,
                    DESCUENTO_POR_TRANSPORTE,
                    DESCUENTO_POR_DEFECTO,
                    DESCUENTO_POR_HUMEDAD,
                    DESCUENTO,
                    NOTAS_PESO_SUMA,
                    NOTAS_PESO_TARA,
                    TOTAL,
                    TOTAL_TEXTO,
                    NOTAS_SACOS_RETENIDOS,
                    MODIFICADO_POR,
                    DateTime.Today,
                    Detalles);
            }
            catch (Exception ex)
            {
                log.Fatal("Error fatal al actualizar nota de peso. Calculos.", ex);
                throw;
            }
        }