protected void butGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                int cantidad = 0;

                if (busqAgencia.AgenciaID == "" && busqAgencia.RazonSocial == "")
                // Consultar con Diego!!!
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Debe seleccionar una agencia.");
                    return;
                }
                if (busqCliente.ClienteID != "" && busqCliente.RazonSocial != "")
                {
                    cantidad = ++cantidad;
                }
                if (busqProveedor1.ProveedorID != "" && busqProveedor1.RazonSocial != "")
                {
                    cantidad = ++cantidad;
                }
                else if (chkAgregarProveedor.Checked && txtDocumento.Text.Trim() != string.Empty && txtRazonSocial.Text.Trim() != string.Empty)
                {
                    cantidad = ++cantidad;
                }

                if (cantidad > 1)
                {
                    ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("Debe seleccionar  un cliente o un Proveedor");
                    // Consultar con Diego!!!
                    return;
                }
                else
                {
                    IUnidadesLogisticasAsignacion unidad = UnidadesLogisticasAsignacionFactory.GetUnidadesLogisticasAsignacion();
                    unidad.Fecha = DateTime.Now;
                    if (busqAgencia.AgenciaID != "" && busqAgencia.RazonSocial != "")
                    {
                        unidad.AgenciaID = int.Parse(busqAgencia.AgenciaID);
                    }
                    else
                    {
                        unidad.AgenciaID = 0;
                    }

                    if (busqCliente.ClienteID != "" && busqCliente.RazonSocial != "")
                    {
                        unidad.ClienteID = int.Parse(busqCliente.ClienteID);
                    }
                    else
                    {
                        unidad.ClienteID = 0;
                    }

                    if (busqProveedor1.ProveedorID != "" && busqProveedor1.RazonSocial != "")
                    {
                        unidad.ProveedorID = int.Parse(busqProveedor1.ProveedorID);
                    }
                    else
                    {
                        unidad.ProveedorID = 0;
                    }

                    if (busqProveedor1.ProveedorID == "" && chkAgregarProveedor.Checked)
                    {
                        unidad.Documento        = txtDocumento.Text;
                        unidad.RazonSocial      = txtRazonSocial.Text;
                        unidad.AgregarProveedor = true;
                    }

                    if (busqObservacion.ObservacionID != "" && busqObservacion.ObsDescrip != "")
                    {
                        unidad.ObservacionID = Utiles.Validaciones.obtieneEntero(busqObservacion.ObservacionID);
                    }
                    else
                    {
                        unidad.ObservacionID = 0;
                    }
                    IList <IGuiaUnidadLogisticaDetalle> lista;

                    unidad.UnidadesLogisticasID = int.Parse(ddlUnidades.SelectedItem.Value);
                    unidad.UsuarioID            = ((IUsuarios)Session["Usuario"]).UsuarioID;
                    unidad.Cantidad             = ddlTipoAccion.SelectedItem.Value == "1" ? int.Parse(txtCantidad.Text) : (-1 * int.Parse(txtCantidad.Text));


                    if (Session["UnidadesAsigAut"] != null)
                    {
                        lista = (List <IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigAut"];
                    }
                    else
                    {
                        lista = new List <IGuiaUnidadLogisticaDetalle>();
                    }
                    lista.Add(new NegociosSisPack.GuiaUnidadLogisticaDetalle()
                    {
                        Cantidad          = int.Parse(txtCantidad.Text),
                        UnidadLogisticaId = int.Parse(ddlUnidades.SelectedItem.Value),
                        Descripcion       = ddlUnidades.SelectedItem.Text,
                        ClienteId         = unidad.ClienteID,
                        RazonCliente      = unidad.RazonSocial,
                        ProveedorId       = unidad.ProveedorID,
                        RazonProv         = unidad.RazonSocial,
                        UsuarioID         = this.usuario.UsuarioID,
                        AgenciaID         = AgenciaConectadaID
                    });
                    Session["UnidadesAsigAut"] = lista;

                    #region ArmarGuiaUnidadLogistica
                    cantidad = 0;
                    /*Cargo datos para la emision de la guia de Unidad de Logistica*/
                    IGuiaUnidadLogistica guiaUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();
                    this.ObtenerNroGuia();
                    ((IGuia)guiaUnidad).NumeroCAI       = this.numeroCAI;
                    ((IGuia)guiaUnidad).TipoGuia        = this.tipoGuiaUnidadLogistica;
                    ((IGuia)guiaUnidad).NroSucursalGuia = this.nroSucursalGuiaUnidadLogistica;
                    ((IGuia)guiaUnidad).NroGuia         = this.nroGuiaUnidadLogistica;
                    /**/
                    ((IGuia)guiaUnidad).AgenciaOrigenID     = this.AgenciaConectadaID;
                    ((IGuia)guiaUnidad).UnidadNegocioID     = this.UnidadNegocioID;
                    ((IGuia)guiaUnidad).ClasificacionGuiaID = NegociosSisPackInterface.SisPack.ClasificacionGuia.UnidadLogistica;
                    ((IGuia)guiaUnidad).AgenciaDestinoID    = Utiles.Validaciones.obtieneEntero(busqAgencia.AgenciaID);



                    foreach (var guiaUL in (List <IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigAut"])
                    {
                        cantidad = cantidad + guiaUL.Cantidad;
                        guiaUnidad.GuiasUnidadesLogisticas.AddGuiaUnidadLogisticaDetalle(guiaUL);
                    }
                    ((IGuiaFactura)guiaUnidad).EmpresaFacturacionID = 1;

                    ((IGuiaFactura)guiaUnidad).CantidadBultosTotal = Utiles.Validaciones.obtieneEntero(txtCantidad.Text);
                    guiaUnidad.TipoOperacionUnidadLogistica        = (ddlTipoAccion.SelectedItem.Value == "1" ? NegociosSisPackInterface.SisPack.TipoOperacionUnidadLogistica.Ingreso : NegociosSisPackInterface.SisPack.TipoOperacionUnidadLogistica.Egreso);
                    ((IGuia)guiaUnidad).ObservacionID = Utiles.Validaciones.obtieneEntero(busqObservacion.ObservacionID);
                    #endregion

                    /*Guardo la asignacion y la guia de unidad de logistica*/
                    if (unidad.Guardar(guiaUnidad, null))
                    {
                        BindGrid();
                        #region ImpresionGuiaUnidadLogistica
                        Session["UnidadesAsigAut"] = null;
                        IAdministrarGuias admGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                        admGuia.GuiaID = ((NegociosSisPack.Guia)guiaUnidad).GuiaID;
                        DsGuiaFacturaImpresion dataSrc = admGuia.GetDataSetImpresionByGuiaID();
                        Session["DatosGuia"] = dataSrc;
                        IAgencia agOrigen = AgenciaFactory.GetAgencia();
                        agOrigen.AgenciaID = AgenciaConectadaID;
                        agOrigen.ConsultarBasico();
                        if (agOrigen.TipoImpresionGuiaId == 0)
                        {
                            ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se puede imprimir la guía de unidad de logistica generada. El tipo de impresión no está definido.");
                            return;
                        }
                        // Voy a imprimir siempre como Autoimpresor_EnBlanco porque es un comprobante interno.
                        agOrigen.TipoImpresionGuiaId = (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_EnBlanco;
                        txtPaginaImpresion.Value     = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion);
                        txtGuiaUnidadID.Value        = ((NegociosSisPack.Guia)guiaUnidad).GuiaID.ToString();
                        string pagina = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion);
                        string script = "<script language='javascript'>\n";
                        script += "			window.showModalDialog('"+ pagina +
                                  "','Imprimiendo Guía de unidad logistica...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                        script += "		</script>\n";
                        Page.RegisterStartupScript("scriptImprimirGuiaUnidad", script);

                        #endregion
                        txtCantidad.Text              = string.Empty;
                        ddlUnidades.SelectedIndex     = 0;
                        ddlTipoAccion.SelectedIndex   = 0;
                        txtDocumento.Text             = string.Empty;
                        txtRazonSocial.Text           = string.Empty;
                        busqObservacion.ObservacionID = string.Empty;
                        busqObservacion.ObsDescrip    = string.Empty;
                        busqObservacion.ObservacionID = string.Empty;
                        busqObservacion.Codigo        = string.Empty;

                        Session["UnidadesAsigAut"] = null;
                        string mensaje = "Los datos se guardaron correctamente.";

                        string script1 = "<script language='javascript'>\n";
                        script1 += "alert('" + mensaje + "');";
                        script1 += "</script>";

                        Page.RegisterStartupScript("scriptOk", script1);
                    }
                }
            }
            catch (Exception ex)
            {
                Session["UnidadesAsigAut"] = null;
                ((ErrorWeb)this.phErrores.Controls[0]).setMensaje("No se pudo realizar la operación: " + ex.Message);
            }
        }
Exemple #2
0
        private void dtgDevolucion_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
        {
            if (e.CommandName == "Autorizar")
            {
                try
                {
                    int UnidadLogisticaPedidoDevolucionID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[0].Text);
                    int EstadoID          = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text);
                    int UsuarioID         = Utiles.Validaciones.obtieneEntero(e.Item.Cells[4].Text);
                    int ClienteID         = Utiles.Validaciones.obtieneEntero(e.Item.Cells[6].Text);
                    int ProveedorID       = Utiles.Validaciones.obtieneEntero(e.Item.Cells[8].Text);
                    int UnidadLogisticaID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[15].Text);
                    int Cantidad          = Utiles.Validaciones.obtieneEntero(e.Item.Cells[17].Text);
                    int AgenciaID         = Utiles.Validaciones.obtieneEntero(e.Item.Cells[18].Text);
                    int GuiaID            = Utiles.Validaciones.obtieneEntero(e.Item.Cells[21].Text);

                    //Controlar que no haya  sido ya rechazada o autorizada


                    if (EstadoID == (int)NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.PendienteProcesar)
                    {
                        /*Tratar de realizar el egreso de stock del proveedor o del cliente.*/
                        IUnidadesLogisticasAsignacion unidad = UnidadesLogisticasAsignacionFactory.GetUnidadesLogisticasAsignacion();
                        unidad.Cantidad             = Cantidad * -1;// Es un egreso
                        unidad.ClienteID            = ClienteID;
                        unidad.ProveedorID          = ProveedorID;
                        unidad.UsuarioID            = UsuarioID;
                        unidad.UnidadesLogisticasID = UnidadLogisticaID;
                        unidad.Fecha               = DateTime.Now;
                        unidad.AgenciaID           = AgenciaID;
                        unidad.GuiaTemp            = GuiaID;
                        Session["UnidadLogistica"] = unidad;
                        /*Actualizar la autorizacion como impresa.*/
                        IGuiaUnidadLogistica unidadLogistica = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();

                        unidadLogistica.ActualizarEstadoPedidoDevolucion(UnidadLogisticaPedidoDevolucionID, usuario, NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.Autorizado, unidad, txtObservacion.Text);

                        //IList<IGuiaUnidadLogisticaDetalle> lista;

                        //if (Session["UnidadesAsigAutDev"] != null)
                        //    lista = (List<IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigAutDev"];
                        //else
                        //    lista = new List<IGuiaUnidadLogisticaDetalle>();
                        //lista.Add(new NegociosSisPack.GuiaUnidadLogisticaDetalle()
                        //{
                        //    Cantidad = unidad.Cantidad,
                        //    UnidadLogisticaId = unidad.UnidadesLogisticasID,
                        //    Descripcion = string.Empty,
                        //    ClienteId = unidad.ClienteID,
                        //    RazonCliente = unidad.RazonSocial,
                        //    ProveedorId = unidad.ProveedorID,
                        //    RazonProv = unidad.RazonSocial,
                        //    UsuarioID = unidad.UsuarioID,
                        //    AgenciaID = unidad.AgenciaID
                        //});
                        //Session["UnidadesAsigAutDev"] = lista;

                        BindGrid(0);
                        //EmitirUnidadLogistica();
                        txtObservacion.Text = string.Empty;
                    }
                    else
                    {
                        throw new Exception("La devolucion ya ha sido autorizada o rechazada.");
                    }
                }
                catch (Exception ex)
                {
                    txtObservacion.Text = string.Empty;
                    ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
                }
            }
            else if (e.CommandName == "Rechazar")
            {
                try
                {
                    int UnidadLogisticaPedidoDevolucionID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[0].Text);
                    int EstadoID = Utiles.Validaciones.obtieneEntero(e.Item.Cells[1].Text);

                    //Controlar que no haya  sido ya rechazada o autorizada
                    if (EstadoID == (int)NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.PendienteProcesar)
                    {
                        /*Actualizar la autorizacion como Rechazada.*/
                        IGuiaUnidadLogistica unidadLogistica = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();
                        unidadLogistica.ActualizarEstadoPedidoDevolucion(UnidadLogisticaPedidoDevolucionID, usuario, NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.Rechazado, null, txtObservacion.Text);
                        BindGrid(0);
                        txtObservacion.Text = string.Empty;
                    }
                    else
                    {
                        throw new Exception("La devolucion ya ha sido autorizada o rechazada.");
                    }
                }
                catch (Exception ex)
                {
                    txtObservacion.Text = string.Empty;
                    ((SisPacK.ErrorWeb)phErrores.Controls[0]).setMensaje(ex.Message);
                }
            }
        }
Exemple #3
0
        private void EmitirUnidadLogistica()
        {
            int cantidad = 0;
            IUnidadesLogisticasAsignacion unidad = (IUnidadesLogisticasAsignacion)Session["UnidadLogistica"];

            IGuiaUnidadLogistica guiaUnidad = GuiaUnidadLogisticaFactory.GetIGuiaUnidadLogistica();

            this.ObtenerNroGuia();
            ((IGuia)guiaUnidad).NumeroCAI       = this.numeroCAI;
            ((IGuia)guiaUnidad).TipoGuia        = this.tipoGuiaUnidadLogistica;
            ((IGuia)guiaUnidad).NroSucursalGuia = this.nroSucursalGuiaUnidadLogistica;
            ((IGuia)guiaUnidad).NroGuia         = this.nroGuiaUnidadLogistica;
            /**/
            ((IGuia)guiaUnidad).AgenciaOrigenID     = this.AgenciaConectadaID;
            ((IGuia)guiaUnidad).UnidadNegocioID     = this.UnidadNegocioID;
            ((IGuia)guiaUnidad).ClasificacionGuiaID = NegociosSisPackInterface.SisPack.ClasificacionGuia.UnidadLogistica;

            NegociosSisPack.ParametroUNegocio parametro = new NegociosSisPack.ParametroUNegocio();
            parametro.UnidadNegocioID = 1;
            parametro.Parametro       = NegociosSisPackInterface.SisPack.Parametro.AgenciaDeAdministracion;
            parametro.Consultar();

            ((IGuia)guiaUnidad).AgenciaDestinoID = Utiles.Validaciones.obtieneEntero(parametro.ValorString);

            foreach (var guiaUL in (List <IGuiaUnidadLogisticaDetalle>)Session["UnidadesAsigAutDev"])
            {
                cantidad = cantidad + guiaUL.Cantidad;
                guiaUnidad.GuiasUnidadesLogisticas.AddGuiaUnidadLogisticaDetalle(guiaUL);
            }

            ((IGuiaFactura)guiaUnidad).CantidadBultosTotal = unidad.Cantidad;

            guiaUnidad.TipoOperacionUnidadLogistica = NegociosSisPackInterface.SisPack.TipoOperacionUnidadLogistica.Egreso;

            /**/
            if (guiaUnidad.EmitirGuiaUnidadLogistica(null, this.usuario, false))  // no debe validar stock cuando emite la guia asociada
            {
                //limpiarCarga();
                //dtgUnidades.DataSource = null;
                //dtgUnidades.DataBind();
                Session["UnidadesAsigAutDev"] = null;
                IAdministrarGuias admGuia = AdministrarGuiasFactory.GetAdministrarGuias();
                admGuia.GuiaID = ((NegociosSisPack.Guia)guiaUnidad).GuiaID;
                DsGuiaFacturaImpresion dataSrc = admGuia.GetDataSetImpresionByGuiaID();
                Session["DatosGuia"] = dataSrc;

                IAgencia agOrigen = AgenciaFactory.GetAgencia();
                agOrigen.AgenciaID = AgenciaConectadaID;
                agOrigen.ConsultarBasico();
                if (agOrigen.TipoImpresionGuiaId == 0)
                {
                    ((SisPacK.ErrorWeb) this.phErrores.Controls[0]).setMensaje("No se puede imprimir la guía de unidad de logistica generada. El tipo de impresión no está definido.");
                    return;
                }
                // Voy a imprimir siempre como Autoimpresor_EnBlanco porque es un comprobante interno.
                agOrigen.TipoImpresionGuiaId = (int)NegociosSisPackInterface.SisPack.TipoImpresionGuia.Autoimpresor_EnBlanco;
                txtPaginaImpresion.Value     = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion);

                txtGuiaUnidadID.Value = ((NegociosSisPack.Guia)guiaUnidad).GuiaID.ToString();


                string pagina = agOrigen.GetPaginaImpresion(agOrigen.TipoImpresionGuiaId, this.Implementacion);

                string script = "<script language='javascript'>\n";
                script += "			window.showModalDialog('"+ pagina +
                          "','Imprimiendo Guía de unidad logistica...','dialogHeight: 934px;dialogWidth: 762px;edge: Raised; center: No; Status:No; help: No; resizable: No;');";
                script += "		</script>\n";

                Page.RegisterStartupScript("scriptImprimirGuiaUnidad", script);

                return;
            }
        }
        public bool ActualizarEstadoPedidoDevolucion(int UnidadLogisticaPedidoDevolucionID, IUsuarios usuario, NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica Estado, IUnidadesLogisticasAsignacion unidad, string observacion)
        {
            using (SqlConnection conexion = new SqlConnection())
            {
                SqlTransaction transaccion = null;
                conexion.ConnectionString = Config.ConnectionString;
                try
                {
                    conexion.Open();
                    transaccion = conexion.BeginTransaction();
                    if (unidad != null)
                    {
                        unidad.Guardar(null, transaccion);
                    }

                    Config.Conexion.EjecutarSinResultados(transaccion, "UnidadLogisticaPedidoDevolucionUPD", UnidadLogisticaPedidoDevolucionID, (int)Estado, usuario.UsuarioID, observacion);

                    // Si se rechaza el pedido, debo anular la guia asociada.
                    if (Estado == NegociosSisPackInterface.SisPack.EstadoPedidoDevolucionUnidadLogistica.Rechazado)
                    {
                        System.Data.DataSet ds = new System.Data.DataSet();
                        SqlParameter        pUnidadLogisticaPedidoDevolucionID = new SqlParameter("@UnidadLogisticaPedidoDevolucionID", Utiles.BaseDatos.IntToSql(UnidadLogisticaPedidoDevolucionID));

                        ds = Config.Conexion.EjecutarDataSet(System.Data.CommandType.StoredProcedure, "UnidadLogisticaPedidoDevolucionSEL", pUnidadLogisticaPedidoDevolucionID);
                        if (ds.Tables[0].Rows.Count > 0)
                        {
                            IGuia guia = new Guia();
                            guia.GuiaID = Utiles.Validaciones.obtieneEntero(ds.Tables[0].Rows[0]["GuiaID"].ToString());
                            guia.Anular("Anulada por rechazo de Devolucion de Unidad de Logistica.", Utiles.Validaciones.obtieneEntero(ds.Tables[0].Rows[0]["AgenciaID"].ToString()), transaccion, usuario);
                        }
                    }

                    transaccion.Commit();
                    return(true);
                }
                catch (Exception ex)
                {
                    transaccion.Rollback();
                    throw ex;
                }
            }
        }