Esempio n. 1
0
        /*                                      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;
            }
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        /// <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;
            }
        }
Esempio n. 4
0
        /// <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;
            }
        }
Esempio n. 5
0
        /// <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;
            }
        }
Esempio n. 6
0
        /// <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;
            }
        }
Esempio n. 7
0
        /// <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;
            }
        }
Esempio n. 8
0
        /*
         *                  -----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;
            }
        }
Esempio n. 9
0
        /*
         *                  -----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;
            }
        }