Beispiel #1
0
 public bool VerificarLote(string par)
 {
     using (Farmacia_FarmalivioEntities contex = new Farmacia_FarmalivioEntities())
     {
         var varCat = new lote();
         varCat = contex.lote.Where(x => x.nlote == par).SingleOrDefault();
         if (varCat != null)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
        public int guardarLote(int pro, int sec)
        {
            int contador = db.lote.Where(p => p.PRODUCTO_id == pro).Count();

            contador = contador + 1;
            lote L = new lote();

            L.nombre            = contador.ToString();
            L.PRODUCTO_id       = pro;
            L.SECCION_BODEGA_id = sec;

            db.lote.Add(L);
            db.SaveChanges();

            int id = Convert.ToInt16(db.lote.Max(p => p.id));

            return(id);
        }
Beispiel #3
0
        public JsonResult GuardarLote(lote lote)
        {
            var respuesta = new ResponseModel
            {
                Respuesta = true,
                Redirect  = "",
                Error     = ""
            };

            if (ModelState.IsValid)
            {
                try
                {
                    lote.estado = true;
                    db.lote.Add(lote);
                    db.SaveChanges();
                }
                catch (Exception)
                {
                    VerificacionDuplicado verif = new VerificacionDuplicado();
                    bool rpta = verif.VerificarLote(lote.nlote);
                    respuesta.Respuesta = false;
                    if (rpta)
                    {
                        respuesta.Error = "Ya existe un mismo Numero lote";
                    }
                    else
                    {
                        respuesta.Error = "Hubo un problema al guardar";
                    }
                }
            }
            else
            {
                respuesta.Respuesta = false;
                ModelState.AddModelError("fecha_vencimiento", "La fecha de vencimiento es obligatorio");
                respuesta.Error = "La fecha de vencimiento es obligatorio";
            }

            return(Json(respuesta));
        }
        public String adicionarEntregasTemp(int idempleado, DateTime fecha, int idBodega, DataTable tablaConfigurados, String[] datos)
        {
            int     NumerosEntregas = 0;
            Decimal idDocumento     = 0;
            Decimal idOrdenEntrega  = 0;

            Brainsbits.LLB.almacen.documento_temp _documento = new almacen.documento_temp(Empresa, Usuario);
            Inventario_temp _inventario = new Inventario_temp(Empresa, Usuario);
            Conexion        _dato       = new LDA.Conexion(Empresa);

            _dato.IniciarTransaccion();

            #region validaciones
            idDocumento = _documento.AdicionarAlmDocumentosTemp(idempleado, "ENTREGA", "", fecha, Convert.ToDateTime("01/01/1900"), 0, "CONFIGURADO", "", _dato);

            if (idDocumento == 0)
            {
                _dato.DeshacerTransaccion();
                MensajeError += "ADVERTENCIA: No fue posible crear el documento, por la siguiente razón \n" + _documento.MensajeError + "  \ncomuniquese con el administrador";
            }
            else
            {
                foreach (DataRow filaConf in tablaConfigurados.Rows)
                {
                    int       idproducto   = Convert.ToInt32(filaConf["ID_PRODUCTO"]);
                    int       cantidad     = Convert.ToInt32(filaConf["CANTIDAD"]);
                    int       idlote       = Convert.ToInt32(filaConf["ID_LOTE"]);
                    lote      _lote        = new lote(Empresa, Usuario);
                    DataTable tablalo      = _lote.ObtenerAlmLotePorId(idlote);
                    DataRow   filalo       = tablalo.Rows[0];
                    Decimal   costo        = Convert.ToInt32(filalo["COSTO"]);
                    String    talla        = filaConf["TALLA"].ToString();
                    Decimal   idinventario = 0;

                    idinventario = _inventario.AdicionarAlmInventarioTemp(Convert.ToInt32(idDocumento), idproducto, idBodega, idlote, 0, talla, cantidad, costo, fecha, "SALIDA", _dato);

                    if (idinventario == 0)
                    {
                        _dato.DeshacerTransaccion();
                        MensajeError += "El registro de inventario no fue posible crearlo por: " + _inventario.MensajeError + " Valide con el Administrador";
                    }
                    else
                    {
                        NumerosEntregas++;
                    }
                }
            }
            if (NumerosEntregas == tablaConfigurados.Rows.Count)
            {
                _dato.AceptarTransaccion();
            }
            else
            {
                _dato.DeshacerTransaccion();
                NumerosEntregas = 0;
            }
            #endregion

            if (NumerosEntregas <= 0)
            {
                return("");
            }
            return(idDocumento.ToString());
        }
        public String adicionarEntregas(int idempleado, DateTime fecha, int idBodega, DataTable tablaConfigurados, DataTable tablalotes, String[] datos, String faltantes)
        {
            int     NumerosEntregas = 0;
            Decimal idDocumento     = 0;
            Decimal idOrdenEntrega  = 0;
            AsignacionServiciosComplementarios _OrdenEntrega = new AsignacionServiciosComplementarios(Empresa, Usuario);

            Brainsbits.LLB.almacen.documento _documento = new almacen.documento(Empresa, Usuario);
            Inventario _inventario = new Inventario(Empresa, Usuario);

            Conexion _dato = new LDA.Conexion(Empresa);

            _dato.IniciarTransaccion();

            #region validaciones
            foreach (DataRow filaConf in tablaConfigurados.Rows)
            {
                foreach (DataRow filaLote in tablalotes.Rows)
                {
                    if (filaConf["ID_PRODUCTO"].Equals(filaLote["ID_PRODUCTO"]) & filaConf["TALLA"].Equals(filaLote["TALLA"]) &
                        Convert.ToInt32(filaConf["CANTIDAD_A_ENTREGAR"]) > Convert.ToInt32(filaLote["CANTIDAD_CONFIGURADA"]))
                    {
                        MensajeError += "La cantidad que se desea entregar es superior a la cantidad que se debe entregar. Valide por favor";
                    }
                    else
                    {
                        idDocumento = _documento.AdicionarAlmDocumentos(idempleado, 0, "ENTREGA", "", "", fecha, new DateTime(), 0, 0, 0, "", "", _dato, 0, null);

                        if (idDocumento == 0)
                        {
                            _dato.DeshacerTransaccion();
                            MensajeError += "ADVERTENCIA: No fue posible crear el documento, por la siguiente razón \n" + _documento.MensajeError + "  \ncomuniquese con el administrador";
                        }
                        else
                        {
                            idOrdenEntrega = _OrdenEntrega.AdicionarAsignacionServiciosComplementarios(Convert.ToInt32(idDocumento), idempleado, fecha, "", _dato);
                            if (idOrdenEntrega == 0)
                            {
                                _dato.DeshacerTransaccion();
                                MensajeError += "ADVERTENCIA: No fue posible crear el documento de Orden de Entrega, por la siguiente razón \n" + _OrdenEntrega.MensajeError + "  \ncomuniquese con el administrador";
                            }
                            else
                            {
                                if (filaConf["ID_PRODUCTO"].Equals(filaLote["ID_PRODUCTO"]) & filaConf["TALLA"].Equals(filaLote["TALLA"]) &
                                    Convert.ToInt32(filaConf["CANTIDAD_A_ENTREGAR"]) <= Convert.ToInt32(filaLote["CONTENIDO_LOTE"]))
                                {
                                    int       idproducto   = Convert.ToInt32(filaConf["ID_PRODUCTO"]);
                                    int       cantidad     = Convert.ToInt32(filaConf["CANTIDAD_A_ENTREGAR"]);
                                    int       idlote       = Convert.ToInt32(filaLote["ID_LOTE"]);
                                    lote      _lote        = new lote(Empresa, Usuario);
                                    DataTable tablalo      = _lote.ObtenerAlmLotePorId(idlote, _dato);
                                    DataRow   filalo       = tablalo.Rows[0];
                                    Decimal   costo        = Convert.ToInt32(filalo["COSTO"]);
                                    String    talla        = filaConf["TALLA"].ToString();
                                    Decimal   idinventario = 0;
                                    Decimal   idEntrega    = 0;

                                    idinventario = _inventario.AdicionarAlmInventario(Convert.ToInt32(idDocumento), idproducto, idBodega, cantidad, costo, fecha, "SALIDA", _dato, idlote, talla, 0, 0, null, filalo["REEMBOLSO"].ToString());

                                    if (idinventario == 0)
                                    {
                                        _dato.DeshacerTransaccion();
                                        MensajeError += "El registro de inventario no fue posible crearlo por: " + _inventario.MensajeError + " Valide con el Administrador";
                                    }
                                    else
                                    {
                                        idEntrega = AdicionarConRegEntregasServiciosComplementarios(Convert.ToInt32(idOrdenEntrega), idproducto, fecha, talla, cantidad, cantidad, "COMPLETA", costo, 0, 0, 0, "N", "", _dato);
                                        if (idEntrega == 0)
                                        {
                                            _dato.DeshacerTransaccion();
                                            MensajeError += "El registro de inventario no fue posible crearlo por: " + MensajeError + " Valide con el Administrador";
                                        }
                                        else
                                        {
                                            NumerosEntregas++;
                                            break;
                                        }
                                    }
                                }
                                else
                                {
                                }
                            }
                        }
                    }
                }
            }
            if (NumerosEntregas == tablaConfigurados.Rows.Count)
            {
                if (faltantes.Equals(""))
                {
                    if (_OrdenEntrega.ActualizarAsignacionServiciosComplementarios(Convert.ToInt32(idOrdenEntrega), Convert.ToInt32(idDocumento), idempleado, fecha, "COMPLETO", _dato))
                    {
                        if (_documento.ActualizarAlmDocumento(Convert.ToInt32(idDocumento), idempleado, 0, "ENTREGA", "", "" + idOrdenEntrega.ToString(), fecha, Convert.ToDateTime("01/01/1900"), 0, 0, 0, "COMPLETO", "", 0, _dato))
                        {
                            _dato.AceptarTransaccion();
                        }
                        else
                        {
                            _dato.DeshacerTransaccion();
                            MensajeError += "No fue posible actualizar el documento por: " + _documento.MensajeError;
                        }
                    }
                    else
                    {
                        _dato.DeshacerTransaccion();
                        MensajeError += "No fue posible actualizar la orden de entrega por: " + _OrdenEntrega.MensajeError;
                    }
                }
                else
                {
                    if (_OrdenEntrega.ActualizarAsignacionServiciosComplementarios(Convert.ToInt32(idOrdenEntrega), Convert.ToInt32(idDocumento), idempleado, fecha, "INCOMPLETO", _dato))
                    {
                        if (_documento.ActualizarAlmDocumento(Convert.ToInt32(idDocumento), idempleado, 0, "ENTREGA", "", "" + idOrdenEntrega.ToString(), fecha, Convert.ToDateTime("01/01/1900"), 0, 0, 0, "INCOMPLETO", faltantes, 0, _dato))
                        {
                            _dato.AceptarTransaccion();
                        }
                        else
                        {
                            _dato.DeshacerTransaccion();
                            MensajeError += "No fue posible actualizar el documento por: " + _documento.MensajeError;
                        }
                    }
                    else
                    {
                        _dato.DeshacerTransaccion();
                        MensajeError += "No fue posible actualizar la orden de entrega por: " + _OrdenEntrega.MensajeError;
                    }
                }
            }
            else
            {
                NumerosEntregas = 0;
            }
            #endregion

            if (NumerosEntregas <= 0)
            {
                return("");
            }
            return(idOrdenEntrega.ToString());
        }
    protected DataTable ConsultarInventario(String centroCostos, String subcentroCosto, String ciudad, String[] datos, DataRow fila)
    {
        String    id_Ciudad;
        DataTable tablaentregas = new DataTable();

        tablaentregas.Columns.Add("ID_PRODUCTO");
        tablaentregas.Columns.Add("ID_LOTE");
        tablaentregas.Columns.Add("CANTIDAD");
        tablaentregas.Columns.Add("TALLA");

        DataRow entrega = tablaentregas.NewRow();


        if (!(centroCostos.Equals("0")))
        {
            centroCosto _centroC    = new centroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable   tablaCentro = _centroC.ObtenerCentrosDeCostoPorIdCentroCosto(Convert.ToDecimal(centroCostos));
            DataRow     filaCentros = tablaCentro.Rows[0];

            id_Ciudad = filaCentros["ID_CIUDAD"].ToString();
        }
        else if (!(subcentroCosto.Equals("0")))
        {
            subCentroCosto _SubCentroC   = new subCentroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable      tablaSub      = _SubCentroC.ObtenerSubCentrosDeCostoPorIdSubCosto(Convert.ToDecimal(subcentroCosto));
            DataRow        filaSubCentro = tablaSub.Rows[0];

            centroCosto _centroC    = new centroCosto(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            DataTable   tablaCentro = _centroC.ObtenerCentrosDeCostoPorIdCentroCosto(Convert.ToDecimal(filaSubCentro["ID_CENTRO_C"].ToString()));
            DataRow     filaCentros = tablaCentro.Rows[0];

            id_Ciudad = filaCentros["ID_CIUDAD"].ToString();
        }
        else
        {
            id_Ciudad = ciudad;
        }


        int       id_empresa  = Convert.ToInt32(datos[3].ToString());
        ciudad    _ciudad     = new ciudad(Session["idEmpresa"].ToString());
        DataTable tablaCiudad = _ciudad.ObtenerCiudadPorIdCiudad(id_Ciudad);
        DataRow   filaCiudad  = tablaCiudad.Rows[0];

        String    id_regional = filaCiudad["ID_REGIONAL"].ToString();
        bodega    _bodega     = new bodega(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
        DataTable tablabodega = _bodega.ObtenerAlmRegBodegaPorIds(id_regional, id_Ciudad, id_empresa);

        if (tablabodega.Rows.Count <= 0)
        {
            Label_MENSAJE.Text = "ADVERTENCIA: No se encontraron bodegas para la empresa en la ubicación seleccionada. Valide por favor.";
            configurarMensajes(true, System.Drawing.Color.Red, Label_MENSAJE, Panel_MENSAJES);
        }
        else
        {
            DataRow filaBodega = tablabodega.Rows[0];

            lote _lote = new lote(Session["idEmpresa"].ToString(), Session["USU_LOG"].ToString());
            HiddenField_idBodega.Value = filaBodega["ID_BODEGA"].ToString();

            DataTable tablaLote = _lote.ObtenerAlmLotePorIdProductoBodega(Convert.ToInt32(fila["ID_PRODUCTO"]), Convert.ToInt32(filaBodega["ID_BODEGA"].ToString()));
            if (tablaLote.Rows.Count <= 0)
            {
                Label_MENSAJE.Text = "ADVERTENCIA: No hay existencias del producto " + fila["NOMBRE"].ToString() + " para la empresa seleccionada. Valide por favor.";
                configurarMensajes(true, System.Drawing.Color.Red, Label_MENSAJE, Panel_MENSAJES);
            }
            else
            {
                int contLote;
                foreach (DataRow filalotes in tablaLote.Rows)
                {
                    entrega = tablaentregas.NewRow();

                    contLote = Convert.ToInt32(filalotes["ENTRADAS"]) - Convert.ToInt32(filalotes["SALIDAS"]);

                    entrega[0] = filalotes["ID_PRODUCTO"];
                    entrega[1] = filalotes["ID_LOTE"];
                    entrega[2] = contLote;
                    entrega[3] = filalotes["TALLA"];

                    tablaentregas.Rows.Add(entrega);
                }
            }
        }
        return(tablaentregas);
    }
 public detalhe(lote lote)
 {
     this.objetoPai = lote;
 }