/* Inventario de Socios */ /// <summary> /// Insertar transacción de la nota de peso en la tabla de inventario de café de socios como entrada (Deposito). /// </summary> /// <param name="NotaDePeso"></param> /// <param name="db"></param> /// <returns>El numero de transacción asignado a la nota de peso registrada.</returns> public int InsertarTransaccionInventarioDeCafeDeSocio(nota_de_peso NotaDePeso, colinasEntities db) { try { reporte_total_inventario_de_cafe_por_socio asocInventory = this.GetReporteTotalInventarioDeCafeDeSocio(NotaDePeso.SOCIOS_ID, NotaDePeso.CLASIFICACIONES_CAFE_ID); decimal cantidad_en_inventario_socio = asocInventory == null ? 0 : asocInventory.INVENTARIO_ENTRADAS_CANTIDAD; decimal salidas_de_inventario_socio = asocInventory == null ? 0 : asocInventory.INVENTARIO_SALIDAS_SALDO; inventario_cafe_de_socio inventarioDeCafeDeSocio = new inventario_cafe_de_socio(); inventarioDeCafeDeSocio.SOCIOS_ID = NotaDePeso.SOCIOS_ID; inventarioDeCafeDeSocio.CLASIFICACIONES_CAFE_ID = NotaDePeso.CLASIFICACIONES_CAFE_ID; inventarioDeCafeDeSocio.DOCUMENTO_ID = NotaDePeso.NOTAS_ID; inventarioDeCafeDeSocio.DOCUMENTO_TIPO = "ENTRADA"; inventarioDeCafeDeSocio.INVENTARIO_ENTRADAS_CANTIDAD = cantidad_en_inventario_socio + NotaDePeso.NOTAS_PESO_TOTAL_RECIBIDO; inventarioDeCafeDeSocio.INVENTARIO_SALIDAS_SALDO = salidas_de_inventario_socio; inventarioDeCafeDeSocio.CREADO_POR = NotaDePeso.CREADO_POR; inventarioDeCafeDeSocio.FECHA_CREACION = Convert.ToDateTime(NotaDePeso.FECHA_MODIFICACION); db.inventario_cafe_de_socio.AddObject(inventarioDeCafeDeSocio); db.SaveChanges(); return(inventarioDeCafeDeSocio.TRANSACCION_NUMERO); } catch (Exception ex) { log.Fatal("Error fatal al insertar transaccion de inventario de cafe de socio. Nota de Peso.", ex); throw; } }
public bool NotaDePesoRegistrada(int NOTAS_ID) { try { using (var db = new colinasEntities()) { EntityKey k = new EntityKey("colinasEntities.notas_de_peso", "NOTAS_ID", NOTAS_ID); var n = db.GetObjectByKey(k); nota_de_peso note = (nota_de_peso)n; if (note.TRANSACCION_NUMERO != null) { return(true); } else { return(false); } } } catch (Exception ex) { log.Fatal("Error fatal al eliminar nota de peso.", ex); throw; } }
/// <summary> /// Notifica usuarios sobre cambio de estado de nota de peso. /// </summary> /// <param name="PLANTILLAS_LLAVE"></param> /// <param name="PRIVS_LLAVE"></param> /// <param name="note"></param> /// <param name="db"></param> private void NotificarUsuarios(string PLANTILLAS_LLAVE, string PRIVS_LLAVE, nota_de_peso note, colinasEntities db) { try { string[] notaid = { note.NOTAS_ID.ToString() }; PlantillaLogic plantillalogic = new PlantillaLogic(); plantilla_notificacion pl = plantillalogic.GetPlantilla(PLANTILLAS_LLAVE); NotificacionLogic notificacionlogic = new NotificacionLogic(); notificacionlogic.NotifyUsers(PRIVS_LLAVE, EstadosNotificacion.Creado, pl.PLANTILLAS_ASUNTO, pl.PLANTILLAS_MENSAJE, notaid); db.SaveChanges(); } catch (Exception ex) { log.Fatal("Error fatal al notificar usuarios.", ex); throw; } }
/// <summary> /// Obtiene los detalles de notas de peso. /// </summary> /// <param name="NOTAS_ID"></param> /// <returns>Lista de detalles de notas de peso.</returns> public List <nota_detalle> GetNotasDetalle(int NOTAS_ID = 0) { try { using (var db = new colinasEntities()) { var query = from nd in db.notas_de_peso.Include("notas_detalles") where NOTAS_ID == 0 ? true : nd.NOTAS_ID.Equals(NOTAS_ID) select nd; nota_de_peso nota = query.FirstOrDefault <nota_de_peso>(); return(nota == null ? new List <nota_detalle>() : nota.notas_detalles.ToList <nota_detalle>()); } } catch (Exception ex) { log.Fatal("Error fatal al obtener detalles de notas de peso.", ex); throw; } }
/// <summary> /// Obtiene los detalles de nota de peso específica. /// </summary> /// <param name="NOTAS_ID"></param> /// <returns>Lista de detalles de nota de peso específica.</returns> public List <nota_detalle> GetDetalleNotaDePeso(int NOTAS_ID) { try { using (var db = new colinasEntities()) { EntityKey k = new EntityKey("colinasEntities.notas_de_peso", "NOTAS_ID", NOTAS_ID); var n = db.GetObjectByKey(k); nota_de_peso note = (nota_de_peso)n; return(note.notas_detalles.OrderByDescending(nd => nd.DETALLES_PESO).ToList <nota_detalle>()); } } catch (Exception ex) { log.Fatal("Error fatal al obtener detalles de notas de peso.", ex); throw; } }
/// <summary> /// Registra la nota de peso. /// </summary> /// <param name="NOTAS_ID"></param> /// <param name="ESTADO_ID"></param> /// <param name="MODIFICADO_POR"></param> public int RegistrarNotaDePeso(int NOTAS_ID, int ESTADO_ID, string MODIFICADO_POR) { try { int transactionNum = -1; using (var db = new colinasEntities()) { using (var scope1 = new TransactionScope()) { EntityKey k = new EntityKey("colinasEntities.notas_de_peso", "NOTAS_ID", NOTAS_ID); var n = db.GetObjectByKey(k); nota_de_peso note = (nota_de_peso)n; note.ESTADOS_NOTA_ID = ESTADO_ID; note.MODIFICADO_POR = MODIFICADO_POR; note.FECHA_MODIFICACION = DateTime.Today; db.SaveChanges(); if (note.estados_nota_de_peso.estados_detalles.ESTADOS_DETALLE_ENABLE_REGISTRAR_BTN == true) { InventarioDeCafeLogic inventariodecafelogic = new InventarioDeCafeLogic(); note.TRANSACCION_NUMERO = inventariodecafelogic.InsertarTransaccionInventarioDeCafeDeSocio(note, db); db.SaveChanges(); transactionNum = note.TRANSACCION_NUMERO == null ? transactionNum : Convert.ToInt32(note.TRANSACCION_NUMERO); } scope1.Complete(); } } return(transactionNum); } catch (Exception ex) { log.Fatal("Error fatal al registrar nota de peso.", ex); throw; } }
/// <summary> /// Elimina la nota de peso. /// </summary> /// <param name="NOTAS_ID"></param> public void EliminarNotaDePeso(int NOTAS_ID) { try { using (var db = new colinasEntities()) { EntityKey k = new EntityKey("colinasEntities.notas_de_peso", "NOTAS_ID", NOTAS_ID); var n = db.GetObjectByKey(k); nota_de_peso note = (nota_de_peso)n; db.DeleteObject(note); db.SaveChanges(); } } catch (Exception ex) { log.Fatal("Error fatal al eliminar nota de peso.", ex); throw; } }
/* * -----Flujo----- * cambiar clasificacion de café a la clasificación actual * verificar si hubo cambio de estado * cambiar estado a nuevo estado * notificar a usuarios * */ /// <summary> /// Actualiza la nota de peso II. Esta fase guarda la nota de peso y envía las respectivas notificaciones. /// </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_TRANSPORTE_COOPERATIVA"></param> /// <param name="NOTAS_PORCENTAJE_DEFECTO"></param> /// <param name="NOTAS_PORCENTAJE_HUMEDAD"></param> /// <param name="NOTAS_PESO_TRANSPORTE_COOPERATIVA"></param> /// <param name="NOTAS_PESO_DEFECTO"></param> /// <param name="NOTAS_PESO_HUMEDAD"></param> /// <param name="NOTAS_PESO_DESCUENTO"></param> /// <param name="NOTAS_PESO_SUMA"></param> /// <param name="NOTAS_PESO_TARA"></param> /// <param name="NOTAS_PESO_TOTAL_RECIBIDO"></param> /// <param name="NOTAS_PESO_TOTAL_RECIBIDO_TEXTO"></param> /// <param name="NOTAS_SACOS_RETENIDOS"></param> /// <param name="MODIFICADO_POR"></param> /// <param name="FECHA_MODIFICACION"></param> /// <param name="Detalles"></param> private 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_TRANSPORTE_COOPERATIVA, decimal NOTAS_PORCENTAJE_DEFECTO, decimal NOTAS_PORCENTAJE_HUMEDAD, decimal NOTAS_PESO_TRANSPORTE_COOPERATIVA, decimal NOTAS_PESO_DEFECTO, decimal NOTAS_PESO_HUMEDAD, decimal NOTAS_PESO_DESCUENTO, decimal NOTAS_PESO_SUMA, decimal NOTAS_PESO_TARA, decimal NOTAS_PESO_TOTAL_RECIBIDO, string NOTAS_PESO_TOTAL_RECIBIDO_TEXTO, int NOTAS_SACOS_RETENIDOS, string MODIFICADO_POR, DateTime FECHA_MODIFICACION, Dictionary <string, string>[] Detalles) { try { using (var db = new colinasEntities()) { using (var scope1 = new TransactionScope()) { EntityKey k = new EntityKey("colinasEntities.notas_de_peso", "NOTAS_ID", NOTAS_ID); var n = db.GetObjectByKey(k); nota_de_peso note = (nota_de_peso)n; note.SOCIOS_ID = SOCIOS_ID; note.NOTAS_FECHA = NOTAS_FECHA; note.NOTAS_TRANSPORTE_COOPERATIVA = NOTAS_TRANSPORTE_COOPERATIVA; note.NOTAS_PORCENTAJE_TRANSPORTE_COOPERATIVA = NOTAS_PORCENTAJE_TRANSPORTE_COOPERATIVA; note.NOTAS_PORCENTAJE_DEFECTO = NOTAS_PORCENTAJE_DEFECTO; note.NOTAS_PORCENTAJE_HUMEDAD = NOTAS_PORCENTAJE_HUMEDAD; note.NOTAS_PESO_TRANSPORTE_COOPERATIVA = NOTAS_PESO_TRANSPORTE_COOPERATIVA; note.NOTAS_PESO_DEFECTO = NOTAS_PESO_DEFECTO; note.NOTAS_PESO_HUMEDAD = NOTAS_PESO_HUMEDAD; note.NOTAS_PESO_DESCUENTO = NOTAS_PESO_DESCUENTO; note.NOTAS_PESO_TARA = NOTAS_PESO_TARA; note.NOTAS_PESO_SUMA = NOTAS_PESO_SUMA; note.NOTAS_PESO_TOTAL_RECIBIDO = NOTAS_PESO_TOTAL_RECIBIDO; note.NOTAS_PESO_TOTAL_RECIBIDO_TEXTO = NOTAS_PESO_TOTAL_RECIBIDO_TEXTO; note.NOTAS_SACOS_RETENIDOS = NOTAS_SACOS_RETENIDOS; note.MODIFICADO_POR = MODIFICADO_POR; note.FECHA_MODIFICACION = FECHA_MODIFICACION; // cambiar clasificacion de café a la clasificación actual note.CLASIFICACIONES_CAFE_ID = CLASIFICACIONES_CAFE_ID; note.notas_detalles.Clear(); foreach (Dictionary <string, string> detalle in Detalles) { note.notas_detalles.Add(new nota_detalle() { DETALLES_PESO = Convert.ToDecimal(detalle["DETALLES_PESO"]), DETALLES_CANTIDAD_SACOS = Convert.ToInt32(detalle["DETALLES_CANTIDAD_SACOS"]) }); } db.SaveChanges(); // verificar si hubo cambio de estado if (note.ESTADOS_NOTA_ID != ESTADOS_NOTA_ID) { // cambiar estado a nuevo estado note.ESTADOS_NOTA_ID = ESTADOS_NOTA_ID; // notificar a usuarios this.NotificarUsuarios(EstadoNotaDePesoLogic.PREFIJO_PLANTILLA + note.estados_nota_de_peso.ESTADOS_NOTA_LLAVE, EstadoNotaDePesoLogic.PREFIJO_PRIVILEGIO + note.estados_nota_de_peso.ESTADOS_NOTA_LLAVE, note, db); } scope1.Complete(); } } } catch (Exception ex) { log.Fatal("Error fatal al actualizar nota de peso.", ex); throw; } }
/* * -----Flujo----- * verificar si hubo cambio de estado * cambiar estado a nuevo estado * notificar a usuarios * */ /// <summary> /// Inserta la nota de peso II. Esta fase guarda la nota de peso y envía las respectivas notificaciones. /// </summary> /// <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_TRANSPORTE_COOPERATIVA"></param> /// <param name="NOTAS_PORCENTAJE_DEFECTO"></param> /// <param name="NOTAS_PORCENTAJE_HUMEDAD"></param> /// <param name="NOTAS_PESO_TRANSPORTE_COOPERATIVA"></param> /// <param name="NOTAS_PESO_DEFECTO"></param> /// <param name="NOTAS_PESO_HUMEDAD"></param> /// <param name="NOTAS_PESO_DESCUENTO"></param> /// <param name="NOTAS_PESO_SUMA"></param> /// <param name="NOTAS_PESO_TARA"></param> /// <param name="NOTAS_PESO_TOTAL_RECIBIDO"></param> /// <param name="NOTAS_PESO_TOTAL_RECIBIDO_TEXTO"></param> /// <param name="NOTAS_SACOS_RETENIDOS"></param> /// <param name="CREADO_POR"></param> /// <param name="FECHA_CREACION"></param> /// <param name="Detalles"></param> private void InsertarNotaDePeso (int ESTADOS_NOTA_ID, string SOCIOS_ID, int CLASIFICACIONES_CAFE_ID, DateTime NOTAS_FECHA, Boolean NOTAS_TRANSPORTE_COOPERATIVA, decimal NOTAS_PORCENTAJE_TRANSPORTE_COOPERATIVA, decimal NOTAS_PORCENTAJE_DEFECTO, decimal NOTAS_PORCENTAJE_HUMEDAD, decimal NOTAS_PESO_TRANSPORTE_COOPERATIVA, decimal NOTAS_PESO_DEFECTO, decimal NOTAS_PESO_HUMEDAD, decimal NOTAS_PESO_DESCUENTO, decimal NOTAS_PESO_SUMA, decimal NOTAS_PESO_TARA, decimal NOTAS_PESO_TOTAL_RECIBIDO, string NOTAS_PESO_TOTAL_RECIBIDO_TEXTO, int NOTAS_SACOS_RETENIDOS, string CREADO_POR, DateTime FECHA_CREACION, Dictionary <string, string>[] Detalles) { try { using (var db = new colinasEntities()) { using (var scope1 = new TransactionScope()) { nota_de_peso note = new nota_de_peso(); note.SOCIOS_ID = SOCIOS_ID; note.CLASIFICACIONES_CAFE_ID = CLASIFICACIONES_CAFE_ID; note.NOTAS_FECHA = NOTAS_FECHA; note.NOTAS_TRANSPORTE_COOPERATIVA = NOTAS_TRANSPORTE_COOPERATIVA; note.NOTAS_PORCENTAJE_TRANSPORTE_COOPERATIVA = NOTAS_PORCENTAJE_TRANSPORTE_COOPERATIVA; note.NOTAS_PORCENTAJE_DEFECTO = NOTAS_PORCENTAJE_DEFECTO; note.NOTAS_PORCENTAJE_HUMEDAD = NOTAS_PORCENTAJE_HUMEDAD; note.NOTAS_PESO_TRANSPORTE_COOPERATIVA = NOTAS_PESO_TRANSPORTE_COOPERATIVA; note.NOTAS_PESO_DEFECTO = NOTAS_PESO_DEFECTO; note.NOTAS_PESO_HUMEDAD = NOTAS_PESO_HUMEDAD; note.NOTAS_PESO_DESCUENTO = NOTAS_PESO_DESCUENTO; note.NOTAS_PESO_TARA = NOTAS_PESO_TARA; note.NOTAS_PESO_SUMA = NOTAS_PESO_SUMA; note.NOTAS_PESO_TOTAL_RECIBIDO = NOTAS_PESO_TOTAL_RECIBIDO; note.NOTAS_PESO_TOTAL_RECIBIDO_TEXTO = NOTAS_PESO_TOTAL_RECIBIDO_TEXTO; note.NOTAS_SACOS_RETENIDOS = NOTAS_SACOS_RETENIDOS; note.CREADO_POR = CREADO_POR; note.FECHA_CREACION = FECHA_CREACION; note.MODIFICADO_POR = CREADO_POR; note.FECHA_MODIFICACION = FECHA_CREACION; note.notas_detalles.Clear(); foreach (Dictionary <string, string> detalle in Detalles) { note.notas_detalles.Add(new nota_detalle() { DETALLES_PESO = Convert.ToDecimal(detalle["DETALLES_PESO"]), DETALLES_CANTIDAD_SACOS = Convert.ToInt32(detalle["DETALLES_CANTIDAD_SACOS"]) }); } db.notas_de_peso.AddObject(note); db.SaveChanges(); // verificar si hubo cambio de estado if (note.ESTADOS_NOTA_ID != ESTADOS_NOTA_ID) { note.ESTADOS_NOTA_ID = ESTADOS_NOTA_ID; // notificar a usuarios //this.NotificarUsuarios("NOTASCATACION", "MANT_NOTASPESOENCATACION", note, db); string ESTADO_NOTA_LLAVE = note.estados_nota_de_peso.ESTADOS_NOTA_LLAVE; this.NotificarUsuarios(EstadoNotaDePesoLogic.PREFIJO_PLANTILLA + ESTADO_NOTA_LLAVE, EstadoNotaDePesoLogic.PREFIJO_PRIVILEGIO + ESTADO_NOTA_LLAVE, note, db); } scope1.Complete(); } } } catch (Exception ex) { log.Fatal("Error fatal al insertar nota de peso.", ex); throw; } }