private string Producto_Cantidad(Sesion sesion, string valor_retorno, string nat_, string gpo_, int id_prd, string ref_, int es_, int ter_, int can_, string mov_, string cte_, Producto producto)
        {
            try
            {
                if (nat_ == "1")
                {
                    int cantidadB = 0;
                    foreach (EntradaSalidaDetalle dr in list_Es)
                    {
                        if (dr.Id_Prd.ToString() == id_prd.ToString())
                        {
                            cantidadB = cantidadB + Convert.ToInt32(dr.Es_Cantidad);
                        }
                    }
                    if (Session["estatus" + Session.SessionID + HF_ClvPag].ToString() == "1")
                    {
                        cantidadB = cantidadB - Convert.ToInt32(Session["CantidadEdicion" + Session.SessionID + HF_ClvPag]);
                    }

                    CN_CapRemision rem         = new CN_CapRemision();
                    int            cantidadES2 = 0;
                    if (actualizacionDocumento)
                    {
                        rem.ConsultarRemisionesCantidadRemCantidad(sesion.Id_Emp, sesion.Id_Cd_Ver, es_, id_prd, nat_, ref cantidadES2, sesion.Emp_Cnx);
                    }


                    if (producto.Prd_InvFinal - producto.Prd_Asignado + cantidadES2 < can_ + cantidadB)
                    {
                        return("-1@@" + "No hay producto suficiente");
                    }
                }
                else if (gpo_ == "0")
                {
                    int edicion = Convert.ToInt32(Session["CantidadEdicion" + Session.SessionID + HF_ClvPag]);
                    if (producto.Prd_InvFinal - producto.Prd_Asignado - (edicion - can_) < 0)
                    {
                        return("-1@@" + "Producto " + producto.Id_Prd.ToString() + " inventario disponible insuficiente, inventario final: " + producto.Prd_InvFinal.ToString() + ", asignado: " + producto.Prd_Asignado.ToString() + ", disponible:" + (producto.Prd_InvFinal - producto.Prd_Asignado).ToString());
                    }
                }

                if (gpo_ == "4" || gpo_ == "2")
                {
                    CN_CapEntradaSalida CNentrada = new CN_CapEntradaSalida();
                    int verificador = 0;
                    CNentrada.ConsultarSaldo(sesion.Id_Emp, sesion.Id_Cd_Ver, id_prd.ToString(), ter_.ToString(), cte_, sesion.Emp_Cnx, ref verificador, mov_);
                    int Prd_AgrupadoSpo = producto.Prd_AgrupadoSpo;

                    int cantidadEnDt = 0;
                    foreach (EntradaSalidaDetalle dr in list_Es.Where(EntradaSalidaDetalle => EntradaSalidaDetalle.Prd_AgrupadoSpo == Prd_AgrupadoSpo && EntradaSalidaDetalle.Id_Ter == ter_ && EntradaSalidaDetalle.Id_Prd != id_prd).ToList())
                    {
                        cantidadEnDt += dr.Es_Cantidad;
                    }

                    CN_CapRemision rem         = new CN_CapRemision();
                    int            cantidadES2 = 0;
                    if (actualizacionDocumento)
                    {
                        rem.ConsultarRemisionesCantidadRemCantidad(sesion.Id_Emp, sesion.Id_Cd_Ver, es_, Prd_AgrupadoSpo, nat_, ref cantidadES2, sesion.Emp_Cnx);
                        verificador += cantidadES2;
                    }


                    if (cantidadEnDt + can_ > verificador)
                    {
                        return("-1@@" + "Los artículos sobrepasan lo disponible");
                    }
                }
                else if (gpo_ == "3")
                {
                    CN_CapRemision rem = new CN_CapRemision();


                    int cantidadES = 0;

                    int cantidadEnDttemp_original = 0;
                    if (Session["estatus" + Session.SessionID + HF_ClvPag].ToString() != "1")
                    {
                        cantidadEnDttemp_original = 0;
                    }
                    else
                    {
                        cantidadEnDttemp_original = Convert.ToInt32(Session["CantidadEdicion" + Session.SessionID + HF_ClvPag]);
                    }

                    int cantidadB = 0;
                    foreach (EntradaSalidaDetalle dr in list_Es)
                    {
                        if (dr.Id_Prd.ToString() == id_prd.ToString())
                        {
                            cantidadB += dr.Es_Cantidad;
                        }
                    }


                    //rem.ConsultarRemisionesCantidad(session.Id_Emp, session.Id_Cd_Ver, refe, id_prd, ref cantidadES, session.Emp_Cnx);
                    rem.ConsultarRemisionesCantidadRem(sesion.Id_Emp, sesion.Id_Cd_Ver, ref_, id_prd, ref cantidadES, sesion.Emp_Cnx);
                    int cantidadES2 = 0;
                    if (actualizacionDocumento)
                    {
                        rem.ConsultarRemisionesCantidadRemCantidad(sesion.Id_Emp, sesion.Id_Cd_Ver, es_, id_prd, nat_, ref cantidadES2, sesion.Emp_Cnx);
                        cantidadES += cantidadES2;
                    }



                    if (cantidadES < cantidadB - cantidadEnDttemp_original + can_)
                    //if (cantidadES < can_)
                    {
                        return("-1@@" + "Los artículos sobrepasan el disponible");
                    }

                    if (producto.Prd_InvFinal - producto.Prd_Asignado - (cantidadEnDttemp_original - can_) < 0)
                    {
                        return("-1@@" + "Producto " + producto.Id_Prd.ToString() + " inventario disponible insuficiente, inventario final: " + producto.Prd_InvFinal.ToString() + ", asignado: " + producto.Prd_Asignado.ToString() + ", disponible:" + (producto.Prd_InvFinal - producto.Prd_Asignado).ToString());
                    }
                }
                else if (gpo_ == "1")
                {
                    if (actualizacionDocumento)
                    {
                        CN_CapRemision rem         = new CN_CapRemision();
                        int            cantidadES2 = 0;
                        rem.ConsultarRemisionesCantidadRemCantidad(sesion.Id_Emp, sesion.Id_Cd_Ver, es_, id_prd, nat_, ref cantidadES2, sesion.Emp_Cnx);

                        Producto       cp             = new Producto();
                        CN_CatProducto cn_catproducto = new CN_CatProducto();
                        cn_catproducto.ConsultaProducto(ref cp, sesion.Emp_Cnx, sesion.Id_Emp, sesion.Id_Cd_Ver, id_prd);

                        int cantidadB = 0;
                        foreach (EntradaSalidaDetalle dr in list_Es)
                        {
                            if (dr.Id_Prd.ToString() == id_prd.ToString())
                            {
                                cantidadB += dr.Es_Cantidad;
                            }
                        }

                        cantidadB = cantidadB - Convert.ToInt32(Session["CantidadEdicion" + Session.SessionID + HF_ClvPag]) + (int)can_;
                        if (cantidadB < cantidadES2 && (cantidadES2 - cantidadB) > (cp.Prd_InvFinal - cp.Prd_Asignado))
                        {
                            return("-1@@" + "Producto " + id_prd.ToString() + " inventario disponible insuficiente, inventario final: " + cp.Prd_InvFinal.ToString() + ", asignado: " + cp.Prd_Asignado.ToString() + " , disponible: " + (cp.Prd_InvFinal - cp.Prd_Asignado).ToString() + "");
                        }
                    }
                }
                return("1");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private string Producto_Valido(Sesion sesion, string valor_retorno, string gpo_, string ref_, string ter_, string prd_, Producto producto)
        {
            try
            {
                if (Session["estatus" + Session.SessionID + HF_ClvPag].ToString() != "1" && list_Es.Where(EntradaSalidaDetalle => EntradaSalidaDetalle.Id_Prd.ToString() == prd_).ToList().Count > 0)
                {
                    valor_retorno = "-1@@" + "No es permitido ingresar el mismo producto";
                }

                if (gpo_ == "2")
                {
                    if (!(bool)producto.Prd_AparatoSisProp)
                    {
                        valor_retorno = "-1@@" + "El producto no es un sistema de propietarios";
                    }
                    else if (producto.Prd_Nuevo)
                    {
                        valor_retorno = "-1@@" + "El código de producto debe ser codigo usado";
                    }
                }
                else if (gpo_ == "3")
                {
                    CN_CapRemision cnremision = new CN_CapRemision();
                    Remision       remision   = new Remision();
                    remision.Id_Emp = sesion.Id_Emp;
                    remision.Id_Cd  = sesion.Id_Cd_Ver;
                    remision.Id_Rem = Convert.ToInt32(ref_);
                    List <RemisionDet> list = new List <RemisionDet>();
                    cnremision.ConsultarRemisionesDetalle(sesion, remision, ref list);

                    int encontrados = 0;
                    foreach (RemisionDet rd in list)
                    {
                        if (producto.Id_Prd == rd.Id_Prd && ter_ == rd.Id_Ter.ToString())
                        {
                            encontrados += 1;
                        }
                    }
                    if (encontrados == 0)
                    {
                        valor_retorno = "-1@@" + "El producto no pertenece al documento de referencia";
                    }
                }

                if (valor_retorno == "")
                {
                    float precio = obtenerPrecioAAA(prd_);

                    valor_retorno = "@@" + precio.ToString() + "@@" + producto.Prd_Presentacion + "@@" + producto.Prd_Descripcion + "@@" + producto.Prd_AgrupadoSpo;

                    if (precio == 0)
                    {
                        if (gpo_ == "1" && producto.Prd_Colo == true)
                        {
                            valor_retorno = "-2" + valor_retorno + "@@" + "Es importante tener actualizado los costos en productos de " +
                                            "compras locales; favor de entrar a Inventarios - Catálogo - Productos " +
                                            ", para capturar el precio vigente AAA";
                        }
                        else
                        {
                            valor_retorno = "-2" + valor_retorno + "@@" + "No se ha definido el precio para este producto";
                        }
                    }
                    else
                    {
                        valor_retorno = "1" + valor_retorno;
                    }
                }
                return(valor_retorno);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
示例#3
0
        protected void txtId_Rem_TextChanged(object sender, EventArgs e)
        {
            Sesion   sesion   = (Sesion)Session["Sesion" + Session.SessionID];
            Remision remision = new Remision();

            RadNumericTextBox txtId_Rem = (RadNumericTextBox)sender;

            remision.Id_Emp = sesion.Id_Emp;
            remision.Id_Cd  = sesion.Id_Cd_Ver;
            remision.Id_Rem = Convert.ToInt32(txtId_Rem.Text);
            CN_CapRemision cn_remision = new CN_CapRemision();


            Telerik.Web.UI.GridTableCell tabla = (Telerik.Web.UI.GridTableCell)txtId_Rem.Parent;
            //limpia los datos de la remision
            txtId_Rem.Text = string.Empty;
            ((Label)tabla.FindControl("lblRem_FechaEdit")).Text      = string.Empty;
            ((Label)tabla.FindControl("lblId_CteEdit")).Text         = string.Empty;
            ((Label)tabla.FindControl("lblNombreClienteEdit")).Text  = string.Empty;
            ((Label)tabla.FindControl("lblRem_EstatusEdit")).Text    = string.Empty;
            ((Label)tabla.FindControl("lblRem_EstatusStrEdit")).Text = string.Empty;

            //validar remision
            if (cn_remision.ConsultaRemisionFacturacion(ref remision, sesion.Emp_Cnx))//si encuentra la remision
            {
                if (remision.Rem_Estatus.ToUpper() == "B")
                {
                    this.DisplayMensajeAlerta("RemisionEstatusBaja");
                }
                else
                {
                    if (remision.Rem_Estatus.ToUpper() == "C")
                    {
                        this.DisplayMensajeAlerta("RemisionEstatusCapturado");
                    }
                    else
                    {
                        //calcular producto pendiente a facturar.
                        int cantidadPendienteFacturar = 0;

                        if (remision.ListRemisionDetalle.Count > 0)
                        {
                            foreach (RemisionDet remisionDet in remision.ListRemisionDetalle)
                            {
                                if (remisionDet.Rem_CantF == null)
                                {
                                    cantidadPendienteFacturar += remisionDet.Rem_Cant;// -Convert.ToInt32(remisionDet.Rem_CantF);
                                }
                                else
                                {
                                    if (remisionDet.Rem_Cant > Convert.ToInt32(remisionDet.Rem_CantF))
                                    {
                                        cantidadPendienteFacturar += remisionDet.Rem_Cant - Convert.ToInt32(remisionDet.Rem_CantF);
                                    }
                                }
                            }
                        }
                        if (cantidadPendienteFacturar > 0)
                        {
                            txtId_Rem.Text = remision.Id_Rem.ToString();
                            ((Label)tabla.FindControl("lblRem_FechaEdit")).Text      = remision.Rem_Fecha.ToShortDateString();
                            ((Label)tabla.FindControl("lblId_CteEdit")).Text         = remision.Id_Cte.ToString();
                            ((Label)tabla.FindControl("lblNombreClienteEdit")).Text  = remision.NombreCliente;
                            ((Label)tabla.FindControl("lblRem_EstatusEdit")).Text    = remision.Rem_Estatus;
                            ((Label)tabla.FindControl("lblRem_EstatusStrEdit")).Text = remision.Rem_EstatusStr;
                        }
                        else
                        {
                            this.DisplayMensajeAlerta("RemisionNoProdPendienteFacturar");
                        }
                    }
                }
            }
            else
            {
                this.DisplayMensajeAlerta("RemisionNoExiste");
            }
        }