public BEOrdenDevolucion InsertOrden(BEOrdenDevolucion orden)
        {
            SqlCommand cmd = new SqlCommand("dbo.uspCrearOrdenDevolucion");

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@Codigo", SqlDbType.VarChar, 50).Value              = "";
            cmd.Parameters.Add("@Fecha", SqlDbType.DateTime).Value                  = orden.fecha;
            cmd.Parameters.Add("@Estado", SqlDbType.VarChar, 150).Value             = orden.estado;
            cmd.Parameters.Add("@Motivo", SqlDbType.VarChar, 500).Value             = orden.motivo;
            cmd.Parameters.Add("@Id_empleado", SqlDbType.Int, 14).Value             = orden.id_empleado;
            cmd.Parameters.Add("@Id_aprobador", SqlDbType.Int, 14).Value            = orden.id_aprobador;
            cmd.Parameters.Add("@Tipo_devolucion", SqlDbType.Int, 14).Value         = orden.tipo_devolucion;
            cmd.Parameters.Add("@Id_orden_venta", SqlDbType.Int, 14).Value          = orden.id_orden_venta;
            cmd.Parameters.Add("@Id_orden_abastecimiento", SqlDbType.Int, 14).Value = orden.id_orden_abastecimiento;
            if (orden.cliente != null)
            {
                cmd.Parameters.Add("@Id_cliente", SqlDbType.Int, 14).Value = orden.cliente.id;
            }

            InsertCommand(cmd, true, 1);
            int lastId = getLastID;

            cmd             = new SqlCommand("dbo.uspUpdateOrdenDevolucion");
            cmd.CommandType = CommandType.StoredProcedure;
            string codigo = "OD-" + lastId.ToString().PadLeft(5, '0');

            cmd.Parameters.Add("@Codigo", SqlDbType.VarChar, 50).Value = codigo;
            cmd.Parameters.Add("@Id", SqlDbType.Int, 14).Value         = lastId;

            UpdateCommand(cmd, 1);

            orden.id     = lastId;
            orden.codigo = codigo;
            return(orden);
        }
Beispiel #2
0
        private BEOrdenDevolucion GetOrdenxCodTipo(string codigo, int tipo)
        {
            BEOrdenDevolucion orden = ordenCon.GetOrdenxCod(codigo, tipo);

            GridView1.DataSource = orden.detalle_orden;
            GridView1.DataBind();

            return(orden);
        }
Beispiel #3
0
        public BEOrdenDevolucion CrearOrdenDevolucion(BEOrdenDevolucion orden, bool actualizarOrigen = false)
        {
            BEOrdenDevolucion result = devolucionDAO.InsertOrden(orden);

            detalleDevolucionDAO.InserDetalletOrden(orden.detalle_orden, orden.id);

            if (actualizarOrigen)
            {
                detalleDevolucionDAO.ActualizarDetalleOrdenOriginal(orden.detalle_orden, orden.tipo_devolucion);
            }

            return(result);
        }
Beispiel #4
0
        protected void btnGenerar_Click(object sender, EventArgs e)
        {
            BEOrdenDevolucion orden_devolucion         = new BEOrdenDevolucion();
            BEOrdenDevolucion orden_venta              = (BEOrdenDevolucion)Session["ordenVenta"];
            List <BEDetalleOrdenDevolucion> devolucion = (List <BEDetalleOrdenDevolucion>)Session["listProdDev"];
            BEEmpleados user = (BEEmpleados)Session["user"];

            orden_devolucion.tipo_devolucion = int.Parse(Session["searchType"].ToString());
            orden_devolucion.tipo            = 3;
            orden_devolucion.fecha           = DateTime.Now;
            bool needApproval = (bool)Session["needApproval"];

            orden_devolucion.estado = needApproval ? "Pendiente" : "Generado";

            if (orden_devolucion.tipo_devolucion == 1)
            {
                orden_devolucion.id_orden_venta = orden_venta.id;
            }
            else
            {
                orden_devolucion.id_orden_abastecimiento = orden_venta.id;
            }
            orden_devolucion.motivo        = txtMotivo.Text;
            orden_devolucion.detalle_orden = (List <BEDetalleOrdenDevolucion>)Session["listProdDev"];
            orden_devolucion.id_empleado   = user.id;


            if (needApproval)
            {
                var jefe = (ListItem)Session["approver"];
                orden_devolucion.id_aprobador = int.Parse(jefe.Value);

                orden_devolucion = ordenCon.CrearOrdenDevolucion(orden_devolucion);

                BEEmpleados jefeFarmacia = ordenCon.GetEmpleado(orden_devolucion.id_aprobador);
                enviarEmail(jefeFarmacia, orden_devolucion.codigo, user);
            }
            else
            {
                orden_devolucion = ordenCon.CrearOrdenDevolucion(orden_devolucion, true);
            }

            lblOrdenDevId.Text = "Orden de devolución creada con el código: " + orden_devolucion.codigo + ". <br/>Orden creada en estado: " + orden_devolucion.estado;

            limpiar();
        }
        public BEOrdenDevolucion GetOrdenxCod(string codigo, int tipo)
        {
            BEOrdenDevolucion result = new BEOrdenDevolucion();

            string     uspNombre = tipo == 1 ? "dbo.uspGetOrdenVentaxCod" : "dbo.uspGetOrdenAbastxCod";
            SqlCommand cmd       = new SqlCommand(uspNombre);

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@Codigo", SqlDbType.VarChar, 50).Value = codigo;

            SqlDataReader reader = ExecuteReader(cmd, 1);

            while (reader.Read())
            {
                if (tipo == 1)
                {
                    result.id          = (!reader[0].Equals(DBNull.Value)) ? reader.GetInt32(0) : -1;
                    result.tipo        = 1;
                    result.codigo      = ((!reader[1].Equals(DBNull.Value)) ? reader.GetString(1) : "-");
                    result.fecha       = reader.GetDateTime(2);
                    result.estado      = ((!reader[3].Equals(DBNull.Value)) ? reader.GetString(3) : "-");
                    result.id_empleado = ((!reader[4].Equals(DBNull.Value)) ? reader.GetInt32(4) : -1);
                    result.id_receta   = ((!reader[5].Equals(DBNull.Value)) ? reader.GetInt32(5) : -1);
                    result.cliente     = clienteDAO.GetClientexId((!reader[6].Equals(DBNull.Value)) ? reader.GetInt32(6) : -1);
                }
                else
                {
                    result.id          = (!reader[0].Equals(DBNull.Value)) ? reader.GetInt32(0) : -1;
                    result.tipo        = 1;
                    result.codigo      = ((!reader[1].Equals(DBNull.Value)) ? reader.GetString(1) : "-");
                    result.fecha       = reader.GetDateTime(2);
                    result.estado      = ((!reader[3].Equals(DBNull.Value)) ? reader.GetString(3) : "-");
                    result.encargado   = empleadoDAO.GetEmpleadoxId((!reader[4].Equals(DBNull.Value)) ? reader.GetInt32(4) : -1);
                    result.id_empleado = ((!reader[5].Equals(DBNull.Value)) ? reader.GetInt32(5) : -1);
                    result.area        = areaDAO.GetAreaxId((!reader[6].Equals(DBNull.Value)) ? reader.GetInt32(6) : -1);
                }


                result.detalle_orden = detalleOrdenDAO.GetDetalleOrdenxOrdenId(result.id, tipo);
            }

            return(result);
        }
Beispiel #6
0
        private void limpiar(bool softClean = false)
        {
            Session["ordenVenta"]   = new BEOrdenDevolucion();
            Session["devolucion"]   = new List <BEDetalleOrdenDevolucion>();
            Session["needApproval"] = false;
            Session["approver"]     = new BEEmpleados();
            Session["editing"]      = false;
            Session["listProdDev"]  = new List <BEDetalleOrdenDevolucion>();
            Session["prodCount"]    = 0;
            // Empleado por defecto con Id = 2
            Session["user"]                 = ordenCon.GetEmpleado(2);
            infoPanel.Visible               = false;
            lblAprobarMsg.Visible           = false;
            lblNroOrdenMsg.Text             = "";
            ventaPanel.Visible              = false;
            abastecimientoPanel.Visible     = false;
            ventaConfPanel.Visible          = false;
            abastecimientoConfPanel.Visible = false;
            btnPreGenerar.Enabled           = false;
            txtNumDoc.Text                    = "";
            txtNomCli.Text                    = "";
            txtFecha.Text                     = "";
            txtMotivo.Text                    = "";
            txtArea.Text                      = "";
            txtEncargado.Text                 = "";
            txtFecha2.Text                    = "";
            bxJefeFarmacia.Visible            = false;
            bxAprobar.Visible                 = false;
            buscarVentaPanel.Visible          = false;
            buscarAbastecimientoPanel.Visible = false;

            if (!softClean)
            {
                txtNroOrden.Text      = "";
                Session["searchType"] = "Venta";
            }
        }
        public BEOrdenDevolucion DevolverProducto(BEOrdenDevolucion ordenVenta, List <BEDetalleOrdenDevolucion> detalleDevolucion)
        {
            BEOrdenDevolucion result = new BEOrdenDevolucion();

            return(result);
        }
Beispiel #8
0
        private void cargarDatosOrden(string codigo, int searchType)
        {
            BEOrdenDevolucion orden = GetOrdenxCodTipo(codigo, searchType);

            if (orden != null && orden.id > 0)
            {
                if (orden.estado == "Entregado")
                {
                    infoPanel.Visible     = true;
                    btnPreGenerar.Enabled = true;
                    var    today     = (DateTime.Now).Ticks;
                    long   diffTicks = today - orden.fecha.Ticks;
                    string fechaHora = orden.fecha.ToShortDateString() + " - " + orden.fecha.ToShortTimeString();
                    lblFechaConf.Text = lblFechaOrden.Text = fechaHora;
                    lblNroOrden.Text  = orden.codigo;
                    if (searchType == 1)
                    {
                        ventaPanel.Visible     = true;
                        ventaConfPanel.Visible = true;
                        lblClientConf.Text     = lblNombreCliente.Text = orden.cliente.nombres + " " + orden.cliente.apellidos;
                        lblDNIConf.Text        = lblNumDocCliente.Text = orden.cliente.num_documento;
                    }
                    else
                    {
                        abastecimientoPanel.Visible     = true;
                        abastecimientoConfPanel.Visible = true;
                        lblArea.Text      = lblAreaConf.Text = orden.area.descripcion;
                        lblEncargado.Text = lblEncargadoConf.Text = orden.encargado.nombre + " " + orden.encargado.apellidos;
                    }

                    Session["ordenVenta"] = orden;
                    Session["devolucion"] = orden.detalle_orden;

                    // Convertir diferencia a dias
                    if (diffTicks / 864000000000 >= 2)
                    {
                        lblAprobarMsg.Visible = true;
                        lblHourMsg.Text       = "La orden tiene más de 48 horas desde su emisión. Se requerirá autorización.";
                        BindDDL();
                        bxJefeFarmacia.Visible  = true;
                        bxAprobar.Visible       = true;
                        Session["needApproval"] = true;
                    }
                    else
                    {
                        lblHourMsg.Text         = "";
                        Session["needApproval"] = false;
                    }
                }
                else
                {
                    lblNroOrdenMsg.Text   = "La orden ingresada no ha sido entregada aún.";
                    infoPanel.Visible     = false;
                    btnPreGenerar.Enabled = false;
                }
            }
            else
            {
                lblNroOrdenMsg.Text   = "No se encontró la orden.";
                infoPanel.Visible     = false;
                btnPreGenerar.Enabled = false;
            }
        }