/* * -----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; } }
public static String ToCardinal(String Numero) { return(Numalet.ToCardinal(Numero, CultureInfo.CurrentCulture)); }
/* * -----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; } }