Option Explicit On Option Strict On Imports System.Data Imports Extensiones Partial Class Inventarios_Consignaciones Inherits ClsPaginas #Region "PROPIEDADES" Public Property DtMovimientos() As DataTable Get Return CType(ViewState("DtMovimientos"), DataTable) End Get Set(value As DataTable) ViewState("DtMovimientos") = value End Set End Property Public Property DtRemisiones() As DataTable Get Return CType(ViewState("DtRemisiones"), DataTable) End Get Set(value As DataTable) ViewState("DtRemisiones") = value End Set End Property Public Property DtRecepcion() As DataTable Get If ViewState("DtRecepcion") Is Nothing Then ViewState("DtRecepcion") = New DataTable End If Return CType(ViewState("DtRecepcion"), DataTable) End Get Set(value As DataTable) ViewState("DtRecepcion") = value End Set End Property Public Property CveConsignacion() As Integer Get Return ViewState("CveConsignacion").ToString.ToEntero End Get Set(value As Integer) ViewState("CveConsignacion") = value End Set End Property Public Property SoloLectura() As Boolean Get Return CBool(ViewState("SoloLectura").ToString) End Get Set(value As Boolean) ViewState("SoloLectura") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not Page.IsPostBack Then InicializaValores() If Request("CveConsignacion") IsNot Nothing AndAlso Request("CveConsignacion").ToString.ToEntero > 0 Then CargaMovimiento(Request("CveConsignacion").ToString.ToEntero) End If End If End Sub Private Property ValidaLoteCaducidad As Boolean Get If ViewState("ValidaLoteCaducidad") Is Nothing Then ViewState("ValidaLoteCaducidad") = False End If Return CType(ViewState("ValidaLoteCaducidad"), Boolean) End Get Set(value As Boolean) ViewState("ValidaLoteCaducidad") = value End Set End Property #Region "Inicializa Valores" Private Sub InicializaValores() CveConsignacion = -1 CargaCombos() CargaDatosTraspaso() CargaDatosRecepcionTraspaso() CreaDT() TxtFecha.Text = Now.ToShortDateString TxtFechaTraspaso.Text = Now.ToShortDateString TxtFechaDevolucion.Text = Now.ToShortDateString SoloLectura = False 'Carga Productos DdlProducto.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then DdlProducto.ddlWS.Attributes.Add("data-cveclasificacion", "-1") DdlProducto.SelectedText = "" DdlProducto.SelectedValue = "-1" DdlProducto.ddl.Visible = False Else DdlProducto.ddl.Items.Clear() DdlProducto.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=-1) DdlProducto.ddl.DataBind() DdlProducto.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) DdlProducto.ddlWS.Visible = False End If End Sub Protected Sub CreaDT() Dim dt As New DataTable Dim column As DataColumn = New DataColumn("No") column.DataType = Type.GetType("System.Int32") With column .AutoIncrement = True .AutoIncrementSeed = 1 .AutoIncrementStep = 1 End With dt.Columns.Add(column) dt.Columns.Add("Cantidad", Type.GetType("System.Double")) dt.Columns.Add("CveUM", Type.GetType("System.Int32")) dt.Columns.Add("UnidadMedida") dt.Columns.Add("CvePS", Type.GetType("System.Int32")) dt.Columns.Add("CveAF", Type.GetType("System.Int32")) dt.Columns.Add("PS") dt.Columns.Add("PSCodigo") dt.Columns.Add("PU", Type.GetType("System.Double")) dt.Columns.Add("PUExtranjero", Type.GetType("System.Double")) dt.Columns.Add("Total", Type.GetType("System.Double")) dt.Columns.Add("CveClasificacion", Type.GetType("System.Int32")) dt.Columns.Add("EstatusExistencia") dt.Columns.Add("CveMovimientoDetalle") dt.Columns.Add("CveSeccionAlmacen", Type.GetType("System.Int32")) dt.Columns.Add("SeccionAlmacen") dt.Columns.Add("Serie", Type.GetType("System.String")) dt.Columns.Add("Lote", Type.GetType("System.String")) dt.Columns.Add("FechaCaducidad", Type.GetType("System.DateTime")) dt.Columns.Add("CveAlmacen") dt.Columns.Add("Almacen") GvDatos.DataSource = dt GvDatos.DataBind() DtMovimientos = dt End Sub Private Sub CargaCombos() 'Llenar Clasificaciones 'If UsuarioActual.CveEmpresa = 66 Then ' DdlClasificacion.DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion") 'Else ' DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") 'End If 'DdlClasificacion.DataBind() 'Llena unidades de medida DdlUnidad.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa) DdlUnidad.DataBind() 'Llena Almacenes DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 4) DdlAlmacen.DataBind() DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) 'Llena AlmacenesFiltro DdlAlmacenFiltro.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 4) DdlAlmacenFiltro.DataBind() DdlAlmacenFiltro.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlProveedor.setEsWebService(True) DdlProveedor.Attributes.Add("data-metodo", "getproveedores") DdlProveedor.SelectedValue = "-1" DdlProveedor.SelectedText = "Seleccione el Proveedor" DdlProveedorFiltro.setEsWebService(True) DdlProveedorFiltro.Attributes.Add("data-metodo", "getproveedores") DdlProveedorFiltro.SelectedValue = "-1" DdlProveedorFiltro.SelectedText = "Seleccione el Proveedor" ''Llenar el dropdownlist de Productos y servicios 'If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then ' DdlProducto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) ' DdlProducto.DataBind() ' DdlProducto.Items.Insert(0, New ListItem("----", "-1")) ' DdlProductows.Visible = False 'Else ' DdlProducto.Visible = False 'End If DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1) DdlSeccionAlmacen.DataBind() End Sub #End Region #Region " Carga Registrada " Private Sub CargaMovimiento(CveConsignacion As Integer) 'MODO READ ONLY SoloLectura = True Bloquea(True) PrendeDevolucion(False) PrendeTraspaso(False) Limpia() BtnConsultar.Visible = False LiProveedor.Visible = True LiAlmacen.Visible = True LiRemision.Visible = True CargaDatos(CveConsignacion) GvDatos.Columns(1).Visible = False TdCantidad.Visible = False ThCantidad.Visible = False LtCantidad.Text = "Cantidad" DdlProveedorFiltro.SelectedValue = DdlProveedor.SelectedValue DdlProveedorFiltro.SelectedText = DdlProveedor.SelectedText DdlProveedorFiltro_selectedindexchange(DdlProveedorFiltro, EventArgs.Empty) DdlRemisiones.SelectedValueExist(CveConsignacion) DdlProveedorFiltro.Enabled = False DdlRemisiones.Enabled = False DdlAlmacenFiltro.Enabled = False DdlConcepto.Enabled = False BtnNuevo.Visible = True UpEncabezado.Update() UpDatos.Update() End Sub Protected Sub BtnNuevo_Click(sender As Object, e As EventArgs) DdlProveedorFiltro.Enabled = True DdlRemisiones.Enabled = True DdlAlmacenFiltro.Enabled = True DdlConcepto.Enabled = True BtnNuevo.Visible = False DdlConcepto_SelectedIndexChanged(DdlConcepto, EventArgs.Empty) End Sub #End Region #Region " CARGA CONSIGNACION " Protected Sub DdlConcepto_SelectedIndexChanged(sender As Object, e As EventArgs) SoloLectura = False If DdlConcepto.SelectedValue.ToEntero = 10 Then TrProveedor.Visible = True TrSerieFolio.Visible = True ''PU Y Total ThPU.Visible = True ThTotal.Visible = True TdPU.Visible = True TdTotal.Visible = True GvDatos.Columns(5).Visible = True GvDatos.Columns(6).Visible = True 'Devolución BtnConsultar.Visible = False LiProveedor.Visible = False LiAlmacen.Visible = False LiRemision.Visible = False CveConsignacion = -1 Bloquea(False) PrendeDevolucion(False) PrendeTraspaso(False) Limpia() CreaDT() GvDatos.Columns(1).Visible = False ElseIf DdlConcepto.SelectedValue.ToEntero = 11 Then TrProveedor.Visible = False TrSerieFolio.Visible = False ''PU Y Total ThPU.Visible = False ThTotal.Visible = False TdPU.Visible = False TdTotal.Visible = False GvDatos.Columns(5).Visible = False GvDatos.Columns(6).Visible = False 'Devolución BtnConsultar.Visible = False LiProveedor.Visible = False LiAlmacen.Visible = False LiRemision.Visible = False GvDatos.Columns(1).Visible = True ElseIf DdlConcepto.SelectedValue.ToEntero = 12 Or DdlConcepto.SelectedValue.ToEntero = 8 Then Bloquea(True) PrendeDevolucion(False) PrendeTraspaso(False) Limpia() BtnConsultar.Visible = True LiProveedor.Visible = True LiAlmacen.Visible = True LiRemision.Visible = True GvDatos.Columns(1).Visible = True End If UpGenerales.Update() UpDatos.Update() UpTipoCambio.Update() End Sub Protected Sub DdlProveedorFiltro_selectedindexchange(sender As Object, e As EventArgs) CargaDdlRemisiones() End Sub Private Sub CargaDdlRemisiones() Dim ObjInventarios As New ClsInventarios If ObjInventarios.GetConsignacionesPendientes(DdlProveedorFiltro.SelectedValue.ToEntero, 2, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then DtRemisiones = ObjInventarios.DtResultados End If ObjInventarios.Dispose() CargaRemisiones() End Sub 'Protected Sub DdlAlmacenFiltro_SelectedIndexChanged(sender As Object, e As EventArgs) ' CargaRemisiones() 'End Sub Private Sub CargaRemisiones() 'Dim DtTemp As New DataTable 'If DdlAlmacenFiltro.SelectedValue.ToEntero > 0 Then ' DtTemp = DtRemisiones.FiltraParametros(String.Format("CveAlmacen = {0}", DdlAlmacenFiltro.SelectedValue.ToEntero)) 'Else ' DtTemp = DtRemisiones.FiltraParametros("", "", {"CveConsignacion", "Consignacion"}) 'End If DdlRemisiones.DataSource = DtRemisiones.FiltraParametros("", "", {"CveConsignacion", "Consignacion"}) DdlRemisiones.DataBind() DdlRemisiones.Items.Insert(0, New ListItem("Seleccione", "-1")) UpEncabezado.Update() End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) CargaDatos(DdlRemisiones.SelectedValue.ToEntero) End Sub Private Sub CargaDatos(CveConsignacionTemp As Integer) If DdlConcepto.SelectedValue.ToEntero.Contiene(12, 8) Then Dim CveSubProyectoValidaCaducidad As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=DdlAlmacenFiltro.SelectedValue.ToEntero).FiltroPrimeroValor("CveSubProyecto").ToEntero 'RMF condición temporal If UsuarioActual.CveEmpresa = 119 AndAlso CveSubProyectoValidaCaducidad.ToString.Contiene(UsuarioActual.Empresa.Funcionalidad(347).Split(","c)) Then ValidaLoteCaducidad = True 'activa lote ThLote.Visible = True ThCaducidad.Visible = True Else ValidaLoteCaducidad = False 'activa lote ThLote.Visible = False ThCaducidad.Visible = False End If End If Dim ObjInventario As New ClsInventarios If ObjInventario.ConsignacionesDetalle(CveConsignacionTemp, DdlAlmacenFiltro.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then DtMovimientos = ObjInventario.DtResultados Else DtMovimientos = Nothing Alert("Ocurrió un error al consultar la consignación. Por favor vuelva a intentar.", TipoMensaje.MsgError) End If ObjInventario.Dispose() If DtMovimientos IsNot Nothing AndAlso DtMovimientos.Rows.Count > 0 Then DtMovimientos.Columns.Add("EstatusExistencia") CveConsignacion = DdlRemisiones.SelectedValue.ToEntero DdlProveedor.SelectedValue = DtMovimientos.Rows(0)("CveProveedor").ToString TxtFolio.Text = DtMovimientos.Rows(0)("SerieFolio").ToString TxtFecha.Text = DtMovimientos.Rows(0)("Fecha").ToString.ToDate.ToShortDateString DdlAlmacen.SelectedValueExist(DtMovimientos.Rows(0)("CveAlmacenConsignacion").ToString) TxtObservaciones.Text = DtMovimientos.Rows(0)("Observaciones").ToString DdlMoneda.SelectedValue = DtMovimientos.Rows(0)("CveMoneda").ToString TxtTipoCambio.Text = DtMovimientos.Rows(0)("TipoCambio").ToString.FormatoNumero DdlMoneda_SelectedIndexChanged(DdlMoneda, EventArgs.Empty) Bloquea(True) If DdlConcepto.SelectedValue = "12" Then PrendeDevolucion(True) ElseIf DdlConcepto.SelectedValue = "8" Then PrendeTraspaso(True) End If GvDatos.DataSource = DtMovimientos.FiltraParametros("", "CveAlmacen") GvDatos.DataBind() Else If DtMovimientos IsNot Nothing AndAlso DtMovimientos.Rows.Count = 0 Then Alert("No hay productos disponibles para devolución o traspaso.", TipoMensaje.MsgAdvertencia) Else Alert("Ocurrió un Error al consultar la consignación. Por favor vuelva a intentar.", TipoMensaje.MsgError) End If GvDatos.DataSource = Nothing GvDatos.DataBind() End If UpDatos.Update() UpGenerales.Update() UpTipoCambio.Update() End Sub Private Sub Bloquea(Accion As Boolean) 'TRUE: Prende, bloquea todo 'FALSE: Apaga, habilita todo DdlProveedor.Enabled = Not Accion TxtFolio.Enabled = Not Accion TxtFecha.Enabled = Not Accion DdlAlmacen.Enabled = Not Accion TxtObservaciones.Enabled = Not Accion DdlMoneda.Enabled = Not Accion TxtTipoCambio.Enabled = Not Accion BtnAplicarTC.Enabled = Not Accion TxtFecha.Enabled = Not Accion ImgFecha.Enabled = Not Accion TxtCantidad.Enabled = Not Accion 'DdlClasificacion.Enabled = Not Accion DdlProducto.Enabled = Not Accion ' DdlProductows.Disabled = Accion DdlUnidad.Enabled = Not Accion TxtPU.Enabled = Not Accion LbAgregar.Visible = Not Accion BtnGuardar.Visible = Not Accion If Not Accion Then DdlMoneda.SelectedValueExist(1) End If If Accion Then GvDatos.Columns(2).Visible = True TdCantidad.Visible = True ThCantidad.Visible = True LtCantidad.Text = "Disponible" Else GvDatos.Columns(2).Visible = False TdCantidad.Visible = False ThCantidad.Visible = False LtCantidad.Text = "Cantidad" End If End Sub #End Region #Region "GV DATOS" Protected Sub GvDatos_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting Dim DbRow As DataRow = Nothing DbRow = DtMovimientos.Rows(e.RowIndex) DtMovimientos.Rows.Remove(DbRow) GvDatos.DataSource = DtMovimientos GvDatos.DataBind() UpDatos.Update() End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If CveConsignacion > 0 Then e.Row.FCLinkButton("imgE").Visible = False e.Row.FCLinkButton("lnkRemove").Visible = False e.Row.FCTextBox("TxtCantidadDevolucion").Visible = True e.Row.FCTextBox("TxtCantidadDevolucion").Attributes.Add("onkeyup", String.Format("FormatoMoneda(this);LimitaCantidadDevolucion({0},{1})", e.Row.DBCampo("Cantidad").ToString.ToDouble, e.Row.FCTextBox("TxtCantidadDevolucion").ClientID)) Dim TipoAlmacen = If(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveAlmacen = {0}", e.Row.DBCampo("CveAlmacen"))).Rows(0) IsNot Nothing, GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveAlmacen = {0}", e.Row.DBCampo("CveAlmacen"))).Rows(0)("CveTipoAlmacen").ToString.ToEntero, 0) If TipoAlmacen = 3 Then e.Row.FCTextBox("TxtCantidadDevolucion").Enabled = False End If End If If e.Row.DBCampo("EstatusExistencia").ToEntero < 0 Then e.Row.Cells(0).BackColor = Drawing.Color.Red End If If SoloLectura Then e.Row.FCLinkButton("imgE").Visible = False e.Row.FCLinkButton("lnkRemove").Visible = False End If If e.Row.RowState = DataControlRowState.Edit Then 'Llena UM e.Row.FCDropDownList("DdlUnidad").DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa) e.Row.FCDropDownList("DdlUnidad").DataBind() e.Row.FCDropDownList("DdlUnidad").SelectedValue = e.Row.DBCampo("CveUM") 'Llenar clasificaciones If UsuarioActual.Empresa.UsaAC Then e.Row.FCDropDownList("DdlClasificacion").DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") Else e.Row.FCDropDownList("DdlClasificacion").DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion") End If 'DdlClasificacion.DataBind() e.Row.FCDropDownList("DdlClasificacion").DataBind() e.Row.FCDropDownList("DdlClasificacion").SelectedValue = e.Row.DBCampo("CveClasificacion") 'Llena PS If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then e.Row.FCHiddenField("HFProducto").Value = e.Row.DBCampo("CvePS") e.Row.FCHiddenField("HFTProducto").Value = e.Row.DBCampo("PS") Dim sDdlProductows = String.Format("{0}{1}", "#", e.Row.FindControl("DdlProductows").ClientID) Dim sDdlProducto = String.Format("{0}{1}", "#", e.Row.FCDropDownList("DdlProducto").ClientID) Dim sHFProducto = String.Format("{0}{1}", "#", e.Row.FCHiddenField("HFProducto").ClientID) Dim sHFTProducto = String.Format("{0}{1}", "#", e.Row.FCHiddenField("HFTProducto").ClientID) Dim sMyhidenbutton = String.Format("{0}{1}", "#", e.Row.FCButton("myhidenbutton").ClientID) e.Row.FindControl("DdlProductows").Visible = True e.Row.FCDropDownList("DdlProducto").Visible = False RegistraScript(String.Format("Asigna1052('{0}','{1}','{2}','{3}','{4}')", sDdlProductows, sDdlProducto, sHFProducto, sHFTProducto, sMyhidenbutton)) Else e.Row.FindControl("DdlProductows").Visible = False e.Row.FCDropDownList("DdlProducto").Visible = True e.Row.FCDropDownList("DdlProducto").DataSource = GlobalDTPS(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="CveClasificacion") e.Row.FCDropDownList("DdlProducto").DataBind() e.Row.FCDropDownList("DdlProducto").SelectedValue = e.Row.DBCampo("CvePS") End If e.Row.FCLabel("LbTotal").Text = (e.Row.DBCampo("Cantidad").ToDecimal * e.Row.DBCampo("PU").ToDecimal).ToString e.Row.FCTextBox("TxtCantidad").Attributes.Add("onkeyup", String.Format("RecalculaEdit(this,{0},{1});", e.Row.FCTextBox("TxtPU").ClientID, e.Row.FCLabel("LbTotal").ClientID)) e.Row.FCTextBox("TxtPU").Attributes.Add("onkeyup", String.Format("RecalculaEdit({0},this,{1});", e.Row.FCTextBox("TxtCantidad").ClientID, e.Row.FCLabel("LbTotal").ClientID)) End If If (ValidaLoteCaducidad) OrElse (UsuarioActual.CveEmpresa <> 119) Then If CBool(e.Row.DBCampo("AplicaCaducidad")) Then e.Row.FCTextBox("TxtCaducidad").Visible = True e.Row.FCLinkButton("LnkCaducidad").Visible = True Else e.Row.FCTextBox("TxtCaducidad").Visible = False e.Row.FCLinkButton("LnkCaducidad").Visible = False End If If CBool(e.Row.DBCampo("AplicaLote")) Then e.Row.FCTextBox("TxtLote").Visible = True Else e.Row.FCTextBox("TxtLote").Visible = False End If End If End If End Sub Protected Sub GvM_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvDatos.RowEditing GvDatos.EditIndex = e.NewEditIndex GvDatos.DataSource = DtMovimientos GvDatos.DataBind() End Sub Protected Sub GvM_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles GvDatos.RowUpdating Dim dr = GvDatos.Rows(e.RowIndex) Dim Cantidad = dr.FCTextBox("TxtCantidad").Text.ToDouble Dim CveUM = dr.FCDropDownList("DdlUnidad").SelectedValue.ToEntero Dim CveClasificacion = dr.FCDropDownList("DdlClasificacion").SelectedValue.ToEntero Dim PU = dr.FCTextBox("TxtPU").Text.ToDouble Dim No = dr.DataKey("No").ToEntero Dim CvePS As Integer Dim PS As String If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then PS = dr.FCHiddenField("HFTProducto").Value CvePS = dr.FCHiddenField("HFProducto").Value.ToEntero Else PS = dr.FCDropDownList("DdlProducto").SelectedItem.Text CvePS = dr.FCDropDownList("DdlProducto").SelectedValue.ToEntero End If Dim Drs As DataRow() = DtMovimientos.Select(String.Format("No = {0}", No)) If Drs.Count = 1 Then Drs(0)("Cantidad") = Cantidad Drs(0)("CveUM") = CveUM Drs(0)("CveClasificacion") = CveClasificacion Drs(0)("CvePS") = CvePS Drs(0)("PS") = PS Drs(0)("EstatusExistencia") = "1" Drs(0)("PU") = PU Drs(0)("PUExtranjero") = PU Drs(0)("Total") = Cantidad * PU End If DtMovimientos.AcceptChanges() GvDatos.EditIndex = -1 GvDatos.DataSource = DtMovimientos GvDatos.DataBind() LtTotal.Text = DtMovimientos.SUM("Total", "").ToString.FormatoNumero UpDatos.Update() End Sub Protected Sub GvM_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles GvDatos.RowCancelingEdit GvDatos.EditIndex = -1 GvDatos.DataSource = DtMovimientos GvDatos.DataBind() End Sub #End Region 'ACCIONES PRINCIPALES #Region "AGREGAR Y GUARDAR,, ENTRADA CONSIGNACION" Protected Sub btnAgregar_Click(sender As Object, e As EventArgs) Handles LbAgregar.Click AddNew() End Sub Protected Sub AddNew() Dim PSSelected As Integer = DdlProducto.SelectedValue.ToEntero If PSSelected > 0 Then Dim Valido As Boolean = True 'VALIDA EXISTENCIA If DdlConcepto.SelectedValue = "11" Then Dim Inv As New ClsInventarios Dim Existencia As Double = Inv.GetExistenciasPS(PSSelected, DdlUnidad.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm")) Inv.Dispose() If Existencia - TxtCantidad.Text.ToDouble < 0 Then If Existencia <= 0 Then Alert("No hay existencia del producto", TipoMensaje.MsgError) Else Alert(String.Format("Solo hay en existencia {0}", Existencia), TipoMensaje.MsgError) End If Valido = False End If End If If Valido Then Dim CveClasificacion As Integer Dim PSCodigo = "" Dim CveSeccionAlmacen As Integer = DdlSeccionAlmacen.SelectedValue.ToEntero Dim SeccionAlmacen As String = DdlSeccionAlmacen.SelectedItem.Text Dim Serie As String = If(TxtSerie.Text = "", "", TxtSerie.Text) Dim Lote As String = If(TxtLote.Text = "", "", TxtLote.Text) Dim Caducidad As String = If(TxtCaducidad.Text = "", MinFecha.ToShortDateString, TxtCaducidad.Text) Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=PSSelected).FiltroPrimero("") If dr IsNot Nothing Then CveClasificacion = dr("CveClasificacion").ToString.ToEntero PSCodigo = dr("PSCodigo").ToString Else Valido = False End If If Valido Then Dim registro As DataRow = DtMovimientos.NewRow registro.Item("Cantidad") = TxtCantidad.Text.ToDouble registro.Item("CveUM") = DdlUnidad.SelectedValue.ToEntero registro.Item("UnidadMedida") = DdlUnidad.SelectedItem.Text registro.Item("CvePS") = PSSelected registro.Item("PS") = DdlProducto.txtText.Value registro.Item("PSCodigo") = PSCodigo registro.Item("CveClasificacion") = CveClasificacion registro.Item("EstatusExistencia") = "1" registro.Item("PU") = TxtPU.Text.ToDouble registro.Item("PUExtranjero") = TxtPU.Text.ToDouble registro.Item("CveSeccionAlmacen") = CveSeccionAlmacen registro.Item("SeccionAlmacen") = SeccionAlmacen registro.Item("Serie") = Serie registro.Item("Lote") = Lote registro.Item("FechaCaducidad") = Caducidad registro.Item("Total") = TxtCantidad.Text.ToDouble * TxtPU.Text.ToDouble DtMovimientos.Rows.Add(registro) GvDatos.DataSource = DtMovimientos GvDatos.DataBind() If DtMovimientos IsNot Nothing AndAlso DtMovimientos.Rows.Count > 0 Then GvDatos.Columns(7).Visible = DtMovimientos.MAX("CveSeccionAlmacen").ToEntero > 0 GvDatos.Columns(8).Visible = DtMovimientos.MAX("Serie") <> "" GvDatos.Columns(9).Visible = DtMovimientos.MAX("Lote") <> "" GvDatos.Columns(10).Visible = DtMovimientos.MAX("FechaCaducidad").ToDate > MinFecha End If TxtCantidad.Text = "" TxtPU.Text = "" LbTotal.Text = "" LtTotal.Text = DtMovimientos.SUM("Total", "").ToString.FormatoNumero UpDatos.Update() Else Alert("Ocurrió una incongruencia con los Productos/Servicios. Favor de comunicarse con Sistemas.", TipoMensaje.MsgError) End If End If Else Alert("Debe seleccionar un Producto/Servicio.", TipoMensaje.MsgAdvertencia) End If End Sub Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) If DdlConcepto.SelectedValue = "10" And (DdlProveedor.SelectedValue = "-1" Or TxtFolio.Text = "") Then Alert("Los campos 'Proveedor' y 'Serie-Folio' son obligatorios.", TipoMensaje.MsgAdvertencia) Exit Sub End If If GvDatos.Rows.Count > 0 Then 'VALIDA ESTATUS EXISTENCIA If DdlConcepto.SelectedValue = "11" Then For Each dr As DataRow In DtMovimientos.Rows If dr("EstatusExistencia").ToString = "-1" Then Alert("Tiene que rectificar los movimientos con error.", TipoMensaje.MsgError) Exit Sub End If Next End If Dim ObjInventario As New ClsInventarios Dim CveMovimiento = 0 Dim Folio = 0 Dim ErrorMovInv As Boolean = False Dim TextoError = "" Dim Fecha As Date = TxtFecha.Text.ToDate Dim ErrorExistencia = False Dim TextoExistencia As StringBuilder = New StringBuilder 'VALIDA LA EXISTENCIA DEL ALMACEN DE ORIGEN If DdlConcepto.SelectedValue = "11" Then Dim Existencia As Double TextoExistencia.Append("Los siguiente productos se ajustaron por falta de exitencia:
") For Each dr As DataRow In DtMovimientos.Rows Existencia = ObjInventario.GetExistenciasPS(dr("CvePS").ToString.ToEntero, dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm")) If Existencia - dr("Cantidad").ToString.ToDouble < 0 Then ErrorExistencia = True dr("EstatusExistencia") = "-1" dr("Cantidad") = Existencia TextoExistencia.AppendFormat("- #{0} {1}
", dr("No").ToString, dr("PS").ToString) End If Next End If 'AGREGAMOS CONSIGNACION If Not ErrorExistencia Then ObjInventario.IniciaTransacSQL() 'Inicia la transacción Dim CveConsignacion = -1 If DdlConcepto.SelectedValue = "10" Then CveConsignacion = ObjInventario.AddConsignaciones(DdlProveedor.SelectedValue.ToEntero, -1, TxtFolio.Text, TxtFecha.Text.ToDate, UsuarioActual.CveUsuario) End If If (DdlConcepto.SelectedValue = "10" And CveConsignacion > 0) Or DdlConcepto.SelectedValue = "11" Then 'AGREGAMOS MOVIMIENTO Folio = ObjInventario.GetFolioSiguiente(DdlConcepto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) CveMovimiento = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, DdlConcepto.SelectedValue.ToEntero, DdlMoneda.SelectedValue.ToEntero, Fecha, Folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveConsignacion:=CveConsignacion, Observaciones:=TxtObservaciones.Text, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero <> 1, TxtTipoCambio.Text.ToDouble, -1)) 'AGREGAMOS MOVTOS DETALLE If CveMovimiento > 0 Then For Each Dr As DataRow In DtMovimientos.Rows If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=TxtSerie.Text, Lote:=TxtLote.Text, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, PUTC:=If(DdlMoneda.SelectedValue.ToEntero <> 1, Dr("PUExtranjero").ToString.ToDecimal, -1)) Then ErrorMovInv = True TextoError = "Ocurrió un error al guardar los movimientos" Exit For End If Next Else TextoError = "No se pudo generar el movimiento correctamente" ErrorMovInv = True End If Else TextoError = "No se pudo generar la consignación. Por favor vuelva a intentar." ErrorMovInv = True End If If Not ErrorMovInv Then Dim ImportePrePoliza As Decimal = DtMovimientos.SUMD("Total") Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL) Dim Concepto As String = "Consig" Dim CvePrePoliza = ObjConta.AddPrePolizas("Entrada/Consignacion", 53, ImportePrePoliza, ImportePrePoliza, 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImportePrePoliza, "Entrada por Consignacion", 68, "Entrada por Consignacion", Fecha, -1, -1, CveVenta:=-1, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=ImportePrePoliza, CveSubProyecto:=-1, Contabilizable:=False) Then ErrorMovInv = True End If If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImportePrePoliza, "Entrada por Consignacion", 337, "Entrada por Consignacion", Fecha, -1, -1, CveVenta:=-1, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=ImportePrePoliza, Contabilizable:=False) Then ErrorMovInv = True End If If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 6) Then If ObjConta.ValorPolizaDescuadre > 0 Then GuardaLogAD($"Consig | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") ErrorMovInv = True End If End If End If If Not ErrorMovInv Then ObjInventario.Commit() Limpia() Dim Msg As New StringBuilder Msg.AppendFormat(If(DdlConcepto.SelectedValue = "10", "Se realizo con exito la consignación.
", "Se realizo con exito la salida de consignación")) Msg.AppendFormat("
Folio: {1} ", CveMovimiento, Folio) Alert(Msg.ToString, TipoMensaje.MsgInformacion) Else ObjInventario.RollBack() Alert(TextoError, TipoMensaje.MsgError) End If Else Alert(TextoExistencia.ToString, TipoMensaje.MsgError) End If 'SI OCURRIO UN ERROR EN LA EXISTENCIA RECARGAMOS EL GRID PARA COLOREAR LOS DETALLES CON ERROR If ErrorExistencia Then GvDatos.DataSource = DtMovimientos GvDatos.DataBind() UpDatos.Update() End If ObjInventario.Dispose() Else Alert("No hay movimientos.", TipoMensaje.MsgAdvertencia) End If End Sub Private Sub Limpia() 'Limpia DtMovimientos.Clear() GvDatos.DataSource = DtMovimientos GvDatos.DataBind() DdlProveedor.SelectedValue = "-1" TxtFolio.Text = "" TxtFecha.Text = Now.ToShortDateString TxtObservaciones.Text = "" DdlMoneda.SelectedValueExist(1) DdlMoneda_SelectedIndexChanged(DdlMoneda, EventArgs.Empty) TxtCantidad.Text = "" 'DdlClasificacion.SelectedValueExist(-1) DdlProducto.txtText.Value = "" DdlProducto.txtValue.Value = "" 'DdlProductows.Items.Clear() 'DdlProductows.DataBind() TxtPU.Text = "" 'DEVOLUCION TxtFechaDevolucion.Text = Now.ToShortDateString TxtObservacionesDevolucion.Text = "" 'Traspaso TxtResponsable.Text = "" TxtFecha.Text = "" TxtObservaciones.Text = "" TxtCantidad.Text = "" ChkTransitorio.Checked = False TxtFechaTraspaso.Text = Now.ToShortDateString DdlAlmacenDestino.SelectedValueExist("-1") TxtObservacionesTraspaso.Text = "" ChkTransitorio.Checked = False TrTraspaso1.Visible = False TrTraspaso2.Visible = False UpDatos.Update() UpTipoCambio.Update() UpGenerales.Update() UpTraspaso.Update() End Sub #End Region #Region " DEVOLUCIONES " Protected Sub BtnDevolucion_Click(sender As Object, e As EventArgs) Dim ObjInventario As New ClsInventarios ObjInventario.IniciaTransacSQL() 'Inicia la transacción Dim ErrorMovInv As Boolean = False Dim TextoError = "" Dim Fecha As Date = TxtFechaDevolucion.Text.ToDate Dim ErrorExistencia = False Dim TextoExistencia As New StringBuilder Dim CveMovtos As New List(Of Integer) Dim Folios As New List(Of Integer) Dim MovimientosRealizados = 0 Dim ConceptoDevolucion = 12 Dim CveAlmacen = -1 Dim MovtoNew = False For Each Gvr As GridViewRow In GvDatos.Rows Dim CveMovimiento = 0 Dim Folio = 0 If Gvr.FCTextBox("TxtCantidadDevolucion").Text.ToString.ToDouble > 0 Then If CveAlmacen = -1 Or CveAlmacen <> Gvr.DataKey("CveAlmacen").ToString.ToEntero Then CveAlmacen = Gvr.DataKey("CveAlmacen").ToString.ToEntero MovtoNew = True End If 'AGREGAMOS MOVIMIENTO If MovtoNew Then Folio = ObjInventario.GetFolioSiguiente(ConceptoDevolucion, UsuarioActual.CveEmpresa) CveMovimiento = ObjInventario.AddMovimiento(CveAlmacen, ConceptoDevolucion, DdlMoneda.SelectedValue.ToEntero, Fecha, Folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveConsignacion:=CveConsignacion, Observaciones:=TxtObservacionesDevolucion.Text.Trim, Modulo:="Consig") End If If CveMovimiento > 0 Then If MovtoNew Then CveMovtos.Add(CveMovimiento) Folios.Add(Folio) MovtoNew = False End If Else TextoError = "No se pudo generar el movimiento correctamente" ErrorMovInv = True Exit For End If Dim Lote As String = "-1" Dim FechaCaducidad As Date = MinFecha If Gvr.FCTextBox("TxtLote").Text.Trim <> "" Then Lote = Gvr.FCTextBox("TxtLote").Text.Trim If Gvr.FCTextBox("TxtCaducidad").Text.ToDate > MinFecha Then FechaCaducidad = Gvr.FCTextBox("TxtCaducidad").Text.ToDate 'AGREGAMOS MOVTOS DETALLE If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Gvr.FCTextBox("TxtCantidadDevolucion").Text.ToString.ToDouble, Gvr.DataKey("CveUM").ToString.ToEntero, Gvr.DataKey("CvePS").ToString.ToEntero, Gvr.DataKey("PU").ToString.ToDecimal, -1, -1, Gvr.DataKey("Serie").ToString, Lote, FechaCaducidad:=FechaCaducidad) Then ErrorMovInv = True TextoError = "Ocurrió un Error al guardar los movimientos" Exit For Else Dim ImportePrePoliza As Decimal = Gvr.DataKey("PU").ToString.ToDecimal * Gvr.FCTextBox("TxtCantidadDevolucion").Text.ToString.ToDecimal Dim MovAlmacen As Boolean = True Dim OrigenMov As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", "CveConcepto = " & ConceptoDevolucion).ToEntero If OrigenMov = 1 Then MovAlmacen = True Else MovAlmacen = False End If Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL) Dim Concepto As String = "Consig" Dim CvePrePoliza = ObjConta.AddPrePolizas("Consig", 74, ImportePrePoliza, ImportePrePoliza, 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not MovAlmacen, ImportePrePoliza, "Consig", 68, "Consig", Fecha, -1, -1, CveVenta:=-1, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=ImportePrePoliza, CveSubProyecto:=-1, Contabilizable:=False) Then ErrorMovInv = True End If If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, MovAlmacen, ImportePrePoliza, "Consig", 337, "Consig", Fecha, -1, -1, CveVenta:=-1, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=ImportePrePoliza, Contabilizable:=False) Then ErrorMovInv = True End If If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 6) Then If ObjConta.ValorPolizaDescuadre > 0 Then GuardaLogAD($"Consig | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") ErrorMovInv = True End If End If If Not ErrorMovInv Then MovimientosRealizados += 1 End If End If End If Next If Not MovimientosRealizados > 0 Then TextoError = "No hay ningun movimiento ha realizar. Por favor verifique los datos y vuelva a intentar." ErrorMovInv = True End If If Not ErrorMovInv Then 'falta generar la prepoliza ObjInventario.Commit() Dim Msg As New StringBuilder Msg.AppendFormat("Se realizo con exito la devolución de consignación") For i = 0 To CveMovtos.Count - 1 Msg.AppendFormat("
Folio: {1} ", CveMovtos(i), Folios(i)) Msg.AppendFormat("Imprimir Reporte", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovtos(i)))) 'onclick='ImprimirTraslado()' Next Alert(Msg.ToString, TipoMensaje.MsgInformacion) 'Dim ObjSisMail As New ClsSisMail 'ObjSisMail.SendMail(UsuarioActual.Empresa, "ing.israelpina@hotmail.com", "DEVOLUCION ALMACEN", Msg.ToString, "rene.molina@adsistemas.mx") Limpia() PrendeDevolucion(False) PrendeTraspaso(False) Bloquea(False) Else ObjInventario.RollBack() Alert(TextoError, TipoMensaje.MsgError) End If End Sub Private Sub PrendeDevolucion(Accion As Boolean) 'TRUE: Prende, bloquea todo 'FALSE: Apaga, habilita todo RowObservacionesDevolucion.Visible = Accion BtnDevolucion.Visible = Accion End Sub #End Region #Region " TRASPASO ALMACEN CONSIGNACION " Private Sub PrendeTraspaso(Accion As Boolean) 'TRUE: Prende, bloquea todo 'FALSE: Apaga, habilita todo DivTraspaso.Visible = Accion BtnTraspaso.Visible = Accion UpTraspaso.Update() End Sub Private Sub CargaDatosTraspaso() DdlAlmacenDestino.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen IN (1,4) AND Estatus = 'Activo'") 'DdlAlmacenDestino.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 4) DdlAlmacenDestino.DataBind() DdlAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlAlmacenTransitorio.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 3) DdlAlmacenTransitorio.DataBind() DdlAlmacenTransitorio.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Protected Sub ChkTransitorio_CheckedChanged(sender As Object, e As EventArgs) If ChkTransitorio.Checked Then TrTraspaso1.Visible = True TrTraspaso2.Visible = True Else TrTraspaso1.Visible = False TrTraspaso2.Visible = False End If UpTraspaso.Update() End Sub Protected Sub BtnTraspaso_Click(sender As Object, e As EventArgs) If ChkTransitorio.Checked Then If TxtResponsable.Text.Trim = "" Then Alert("Debe seleccionar un responsable para el traspaso transitorio.", TipoMensaje.MsgAdvertencia) If ChkTransitorio.Checked Then RegistraScript("$('#DivTransitorio').show(200);") Exit Sub End If If DdlAlmacenTransitorio.SelectedValue.ToEntero <= 0 Then Alert("Debe seleccionar un almacen transitorio.", TipoMensaje.MsgAdvertencia) If ChkTransitorio.Checked Then RegistraScript("$('#DivTransitorio').show(200);") Exit Sub End If End If Dim ObjInventario As New ClsInventarios Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL) Dim ErrorMovInv As Boolean = False Dim TextoError = "" Dim Fecha As Date = TxtFechaTraspaso.Text.ToDate Dim MovimientosRealizados = 0 'AGREGAMOS LA SALIDA DEL ALMACEN ORIGEN Dim MovtoNew = False Dim CveAlmacen = -1 Dim CveMovimientoSalida = 0 Dim FolioSalida = 0 Dim CveMovtosSalida As New List(Of Integer) Dim FoliosSalida As New List(Of Integer) For Each Gvr As GridViewRow In GvDatos.Rows If Gvr.FCTextBox("TxtCantidadDevolucion").Text.ToString.ToDouble > 0 Then If CveAlmacen = -1 Or CveAlmacen <> Gvr.DataKey("CveAlmacen").ToString.ToEntero Then CveAlmacen = Gvr.DataKey("CveAlmacen").ToString.ToEntero MovtoNew = True End If 'Dim FechaCompra = "31/12/2015".ToDate 'Dim FechaActual = "1/01/2016".ToDate 'Dim DiaCierre = 7 'UsuarioActual.Empresa.Funcionalidad(115).ToEntero 'Dim Mes = DateDiff(DateInterval.Month, "31/12/2015".ToDate, "1/01/2016".ToDate).ToEntero 'If Month(FechaCompra) < Month(FechaActual) And Day(FechaActual) >= DiaCierre Then ' Alert("Error", TipoMensaje.MsgError) 'End If 'AGREGAMOS MOVIMIENTO If MovtoNew Then CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacen, 26, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesTraspaso.Text.Trim, Recibio:=If(ChkTransitorio.Checked, TxtResponsable.Text.Trim, ""), CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero, CveConsignacion:=CveConsignacion) FolioSalida = ObjInventario.Folio End If If CveMovimientoSalida > 0 Then If MovtoNew Then CveMovtosSalida.Add(CveMovimientoSalida) FoliosSalida.Add(FolioSalida) MovtoNew = False End If Else TextoError = "No se pudo generar el movimiento de salida correctamente" ErrorMovInv = True Exit For End If Dim Lote As String = "-1" Dim FechaCaducidad As Date = MinFecha If Gvr.FCTextBox("TxtLote").Text.Trim <> "" Then Lote = Gvr.FCTextBox("TxtLote").Text.Trim If Gvr.FCTextBox("TxtCaducidad").Text.ToDate > MinFecha Then FechaCaducidad = Gvr.FCTextBox("TxtCaducidad").Text.ToDate 'AGREGAMOS MOVTOS DETALLE If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Gvr.FCTextBox("TxtCantidadDevolucion").Text.ToString.ToDouble, Gvr.DataKey("CveUM").ToString.ToEntero, Gvr.DataKey("CvePS").ToString.ToEntero, Gvr.DataKey("PU").ToString.ToDecimal, -1, -1, "", Lote, FechaCaducidad:=FechaCaducidad) Then ErrorMovInv = True TextoError = "Ocurrió un Error al guardar los movimientos detalle de la salida" Exit For Else MovimientosRealizados += 1 End If End If Next ''VIEJO ''AGREGAMOS LA SALIDA DEL ALMACEN ORIGEN 'CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 8, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, 'FolioSalida = ObjInventario.Folio 'If CveMovimientoSalida <= 0 Then ' TextoError = "No se pudo generar el movimiento de salida correctamente" ' ErrorMovInv = True 'Else ' For Each Gvr As GridViewRow In GvDatos.Rows ' If Gvr.FCTextBox("TxtCantidadDevolucion").Text.ToString.ToDouble > 0 Then ' If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Gvr.FCTextBox("TxtCantidadDevolucion").Text.ToString.ToDouble, Gvr.DataKey("CveUM").ToString.ToEntero, Gvr.DataKey("CvePS").ToString.ToEntero, Gvr.DataKey("PU").ToString.ToDouble, -1, -1, "", "", Gvr.DataKey("CveMovimientoDetalle").ToString.ToEntero) Then ' ErrorMovInv = True ' TextoError = "Ocurrió un error al guardar los movimientos" ' Exit For ' End If ' MovimientosRealizados += 1 ' End If ' Next 'End If 'AGREGAMOS LA ENTRADA Dim CveMovimientoEntrada = 0 Dim FolioEntrada = 0 Dim CveMovtosEntrada As New List(Of Integer) Dim FoliosEntrada As New List(Of Integer) Dim TipoAlmacenEntrada = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = { DdlAlmacenDestino.SelectedValue.ToEntero}").ToEntero Dim TipoMovimiento = If(ChkTransitorio.Checked And TipoAlmacenEntrada <> 1, 2, 9) Dim AlmacenEntrada = -1 If Not ErrorMovInv Then For i = 0 To CveMovtosSalida.Count - 1 AlmacenEntrada = If(ChkTransitorio.Checked And TipoAlmacenEntrada <> 1, DdlAlmacenTransitorio.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero) CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, TipoMovimiento, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, -1, Observaciones:=TxtObservacionesTraspaso.Text.Trim, Recibio:=If(ChkTransitorio.Checked And TipoAlmacenEntrada <> 1, TxtResponsable.Text.Trim, "-1"), CveAlmacenDestino:=If(ChkTransitorio.Checked And TipoAlmacenEntrada <> 1, DdlAlmacenDestino.SelectedValue.ToEntero, -1), CveMovimientoRelacionado:=CveMovimientoSalida, CveConsignacion:=CveConsignacion) FolioEntrada = ObjInventario.Folio If CveMovimientoEntrada <= 0 Then TextoError = "No se pudo generar el movimiento de entrada correctamente" ErrorMovInv = True Exit For Else CveMovtosEntrada.Add(CveMovimientoEntrada) FoliosEntrada.Add(FolioEntrada) If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then For Each Dr As DataRow In ObjInventario.DtResultados.Rows If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero) Then ErrorMovInv = True TextoError = "Ocurrió un error al guardar los movimientos de entrada" Exit For End If Next 'SI TUBO ERROR EN EL FOR DE LOS DETALLES If ErrorMovInv Then Exit For End If End If End If Next End If ''VIEJO ''AGREGAMOS LA ENTRADA 'If Not ErrorMovInv Then ' AlmacenEntrada = If(ChkTransitorio.Checked, DdlAlmacenTransitorio.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero) ' CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, TipoMovimiento, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, -1, ' Observaciones:=TxtObservacionesTraspaso.Text.Trim, Recibio:=If(ChkTransitorio.Checked, TxtResponsable.Text.Trim, "-1"), ' CveAlmacenDestino:=If(ChkTransitorio.Checked, DdlAlmacenDestino.SelectedValue.ToEntero, -1), CveMovimientoRelacionado:=CveMovimientoSalida, CveConsignacion:=CveConsignacion) ' FolioEntrada = ObjInventario.Folio ' If CveMovimientoEntrada <= 0 Then ' TextoError = "No se pudo generar el movimiento de entrada correctamente" ' ErrorMovInv = True ' Else ' If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then ' For Each Dr As DataRow In ObjInventario.DtResultados.Rows ' If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero) Then ' ErrorMovInv = True ' TextoError = "Ocurrió un error al guardar los movimientos de entrada" ' Exit For ' End If ' Next ' End If ' End If 'End If If Not ErrorMovInv And AlmacenEntrada > 0 Then Dim TipoAlmacenOrigen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {AlmacenEntrada}").ToEntero If TipoAlmacenOrigen = 1 Then Dim TipoMovto = 1 Dim CveMovimientoCI = CveMovimientoEntrada Dim CveAlmacenCI = AlmacenEntrada Dim DtCostos As DataTable = Nothing Dim ValorInventario As Decimal = 0 If ObjInventario.GetMovimientosDetalle(CveMovimientoEntrada, UsuarioActual.CveEmpresa) Then DtCostos = ObjInventario.DtResultados Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"}) Dim IdCtaContable As Integer = 0 Dim CveCuenta As Integer = 0 If tmpCostos.Rows.Count > 0 Then Dim Concepto As String = $"Traspaso: {ObjInventario.Folio} - {TxtObservaciones.Text}" Dim CvePrePoliza = ObjConta.AddPrePolizas("Inv/Traspáso", 53, DtCostos.SUM("Total") * TipoMovto, DtCostos.SUM("Total") * TipoMovto, 1, TxtFecha.Text.ToDate, $"Traspaso: {TxtObservaciones.Text}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If CvePrePoliza > 0 Then For Each RowInv As DataRow In tmpCostos.Rows ValorInventario = DtCostos.SUM("Total", $"CveClasificacion = {RowInv("CveClasificacion")}").ToString.ToDecimal IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGastoSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ValorInventario * TipoMovto, Concepto, 69, Concepto, TxtFecha.Text.ToDate, IdCtaContable, -1, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoCI, ImporteMX:=ValorInventario * TipoMovto, CveCuenta:=CveCuenta) Then ErrorMovInv = True Exit For End If Next IdCtaContable = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen={CveAlmacenCI}").ToEntero 'CveCuenta = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen={CveAlmacenCI}").ToEntero If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DtCostos.SUM("Total").ToDecimal * TipoMovto, Concepto, 68, Concepto, TxtFecha.Text.ToDate, IdCtaContable, -1, CveMovimientoAlmacen:=CveMovimientoCI, ImporteMX:=DtCostos.SUM("Total").ToDecimal * TipoMovto) Then ErrorMovInv = True End If Else ErrorMovInv = True End If Else ErrorMovInv = True End If End If End If End If If Not ErrorMovInv Then ObjInventario.Commit() Dim Mensaje As StringBuilder = New StringBuilder Mensaje.Append("Se realizó con éxito el traspaso.") Mensaje.Append("

Folio(s) de Salida:
") For i = 0 To CveMovtosSalida.Count - 1 Mensaje.AppendFormat("", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovtosSalida(i)))) Next If Not ChkTransitorio.Checked Then Mensaje.Append("

Folio(s) de Entrada:
") For i = 0 To CveMovtosEntrada.Count - 1 Mensaje.AppendFormat("", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovtosEntrada(i)))) Next End If 'Dim ObjSisMail As New ClsSisMail 'ObjSisMail.SendMail(UsuarioActual.Empresa, "ing.israelpina@hotmail.com", "TRASPASO ALMACEN", Mensaje.ToString, "rene.molina@adsistemas.mx") Alert(Mensaje.ToString, TipoMensaje.MsgInformacion) Limpia() PrendeDevolucion(False) PrendeTraspaso(False) Bloquea(False) Else ObjInventario.RollBack() Alert(TextoError, TipoMensaje.MsgError) End If ObjInventario.Dispose() ObjConta.Dispose() End Sub #End Region #Region " RECEPCION TRASPASO CONSIGNACION " Private Sub CargaDatosRecepcionTraspaso() DdlAlmacenRecepcion.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 4) DdlAlmacenRecepcion.DataBind() DdlAlmacenRecepcion.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlAlmacenTransitorioRecepcion.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 3) DdlAlmacenTransitorioRecepcion.DataBind() DdlAlmacenTransitorioRecepcion.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Protected Sub BtnCargaTransitorios_Click(sender As Object, e As EventArgs) CargaRecepcion() End Sub Private Sub CargaRecepcion() Dim ObjInventarios As New ClsInventarios DtRecepcion = New DataTable If ObjInventarios.GetMovimientosTransitorios(DdlAlmacenRecepcion.SelectedValue.ToEntero, 4, DdlAlmacenTransitorioRecepcion.SelectedValue.ToEntero, -1, If(TxtFolioRecepcion.Text = "", -1, TxtFolioRecepcion.Text.ToEntero), UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then DtRecepcion = ObjInventarios.DtResultados Else Alert("Ocurrió un error al consultar los movimientos transitorios. Por favor vuelva a intentar.", TipoMensaje.MsgError) End If ObjInventarios.Dispose() If DtRecepcion IsNot Nothing Then GvDatosRecepcion.DataSource = DtRecepcion GvDatosRecepcion.DataBind() End If If TxtFolioRecepcion.Text = "" Then BtnRecibir.Visible = False Else BtnRecibir.Visible = True End If UpDatosRecepcion.Update() End Sub Protected Sub GvDatosRecepcion_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatosRecepcion.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If TxtFolioRecepcion.Text = "" Then e.Row.FCCheckBox("Chk").Visible = False e.Row.FCTextBox("TxtCantidad").Enabled = False End If 'Cuando es titulo If e.Row.DBCampo("PS").ToString.Trim = "" Then e.Row.CssClass = "Totales" e.Row.FCCheckBox("Chk").Visible = False e.Row.FCTextBox("TxtCantidad").Visible = False e.Row.Cells(1).Text = String.Format("Folio: {0} ", e.Row.DBCampo("FolioSalida"), e.Row.DBCampo("CveMovimientoSalida")) e.Row.Cells(2).Text = String.Format("{0}", e.Row.DBCampo("FechaMovto").ToString.ToDate.ToShortDateString) e.Row.Cells(5).Text = String.Format("Almacen: {0}       Responsable: {1}", e.Row.DBCampo("AlmacenDestino"), e.Row.DBCampo("Recibio")) Else e.Row.FCTextBox("TxtCantidad").Attributes.Add("onkeyup", String.Format("LimitaCantidad(this,{0});", e.Row.DBCampo("Cantidad"))) End If End If End Sub Protected Sub BtnRecibir_Click(sender As Object, e As EventArgs) If GvDatosRecepcion.Rows.Count > 0 Then 'Valida Movimientos Dim ValidaMovtos = 0.0 For Each gvr As GridViewRow In GvDatosRecepcion.Rows If gvr.FCCheckBox("Chk").Checked AndAlso gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal > 0 Then ValidaMovtos += gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal End If Next If Not ValidaMovtos > 0 Then Alert("No hay movimientos que realizar. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) Exit Sub End If Dim ObjInventario As New ClsInventarios Dim CveMovimientoSalida As Integer = 0 Dim CveMovimientoEntrada As Integer = 0 Dim Folio = 0 Dim ErrorMovInv As Boolean = False Dim TextoError = "" 'REGISTRA LA SALIDA Y ENTRADA (TRASPASO) ObjInventario.IniciaTransacSQL() 'Inicia la transacción Dim Fecha As Date = TxtFechaRecepcion.Text.ToDate 'AGREGAMOS LA SALIDA CveMovimientoSalida = ObjInventario.AddMovimiento(GvDatosRecepcion.Rows(0).DataKey("CveAlmacen").ToEntero, 3, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenDestino").ToEntero, CveConsignacion:=GvDatosRecepcion.Rows(0).DataKey("CveConsignacion").ToEntero) If CveMovimientoSalida <= 0 Then TextoError = "No se pudo generar el movimiento de salida correctamente" ErrorMovInv = True Else Dim CveMovimientoDetalleEntrada As Integer = 0 For Each gvr As GridViewRow In GvDatosRecepcion.Rows If gvr.FCCheckBox("Chk").Checked AndAlso gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal > 0 Then 'Try ' CveMovimientodetalleEntrada = gvr.DataKey("CveMovimiento").ToString.ToEntero 'Catch ex As Exception 'End Try CveMovimientoDetalleEntrada = gvr.DataKey("CveMovimientoDetalle").ToString.ToEntero If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal, gvr.DataKey("CveUM").ToString.ToEntero, gvr.DataKey("CvePS").ToString.ToEntero, gvr.DataKey("PU").ToString.ToDecimal, gvr.DataKey("CveAF").ToString.ToEntero, CveMovimientoDetalleEntrada:=CveMovimientoDetalleEntrada) Then ErrorMovInv = True TextoError = "Ocurrió un error al guardar los movimientos de salida" Exit For End If End If Next End If 'AGREGAMOS LA ENTRADA If Not ErrorMovInv Then CveMovimientoEntrada = ObjInventario.AddMovimiento(GvDatosRecepcion.Rows(0).DataKey("CveAlmacenDestino").ToEntero, 9, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservacionesRecepcion.Text.Trim, Recibio:=TxtRecibio.Text, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida, CveConsignacion:=GvDatosRecepcion.Rows(0).DataKey("CveConsignacion").ToEntero) Folio = ObjInventario.Folio If CveMovimientoEntrada <= 0 Then TextoError = "No se pudo generar el movimiento de entrada correctamente" ErrorMovInv = True Else If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then For Each Dr As DataRow In ObjInventario.DtResultados.Rows If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero) Then ErrorMovInv = True TextoError = "Ocurrió un error al guardar los movimientos de entrada" Exit For End If Next End If End If End If 'AGREGAMOS LA ENTRADA VIEJO 'If Not ErrorMovInv Then ' 'Folio = ObjInventario.GetFolioSiguiente(9, UsuarioActual.CveEmpresa) ' CveMovimientoEntrada = ObjInventario.AddMovimiento(GvDatosRecepcion.Rows(0).DataKey("CveAlmacenDestino").ToEntero, 9, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1) ' If CveMovimientoEntrada <= 0 Then ' TextoError = "No se pudo generar el movimiento de entrada correctamente" ' ErrorMovInv = True ' Else ' If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then ' For Each Dr As DataRow In ObjInventario.DtResultados.Rows ' If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero) Then ' ErrorMovInv = True ' TextoError = "Ocurrió un error al guardar los movimientos de salida" ' Exit For ' End If ' Next ' End If ' End If 'End If If Not ErrorMovInv Then Dim ImportePrePoliza As Decimal = DtRecepcion.SUMD("Importe", "CveMovimientoDetalle > 0") Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL) Dim Concepto As String = "Recepcion Traspaso" Dim CvePrePoliza = ObjConta.AddPrePolizas("Recepcion/Consignacion", 53, ImportePrePoliza, ImportePrePoliza, 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImportePrePoliza, "Recepcion Traspaso", 68, "Recepcion Traspaso", Fecha, -1, -1, CveVenta:=-1, CveMovimientoAlmacen:=CveMovimientoEntrada, ImporteMX:=ImportePrePoliza, CveSubProyecto:=-1, Contabilizable:=False) Then ErrorMovInv = True End If If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImportePrePoliza, "Recepcion Traspason", 68, "Recepcion Traspaso", Fecha, -1, -1, CveVenta:=-1, CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=ImportePrePoliza, Contabilizable:=False) Then ErrorMovInv = True End If If ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 6) Then If ObjConta.ValorPolizaDescuadre > 0 Then GuardaLogAD($"Consig | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") ErrorMovInv = True End If End If End If If Not ErrorMovInv Then ObjInventario.Commit() TxtRecibio.Text = "" TxtFechaRecepcion.Text = Now.ToShortDateString TxtObservacionesRecepcion.Text = "" Dim Mensaje As StringBuilder = New StringBuilder Mensaje.AppendFormat("Se realizo con exito la recepción.
Folio de Entrada: {0}", Folio) Mensaje.AppendFormat("
Imprimir Reporte", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada))) 'onclick='ImprimirTraslado()' Alert(Mensaje.ToString, TipoMensaje.MsgInformacion) GvDatosRecepcion.DataBind() UpDatosRecepcion.Update() Else ObjInventario.RollBack() Alert(TextoError, TipoMensaje.MsgError) End If ObjInventario.Dispose() CargaRecepcion() Else Alert("No hay movimientos para el traspaso", TipoMensaje.MsgAdvertencia) If ChkTransitorio.Checked Then RegistraScript("$('#DivTransitorio').show(200);") End If End Sub 'Protected Sub BtnImprimirTraspaso_Click(sender As Object, e As EventArgs) Handles BtnImprimirTraspaso.Click ' Dim params As New List(Of ReportParameter) ' params.Add(New ReportParameter("SubProyecto", DdlAlmacenDestino.SelectedItem.ToString)) ' params.Add(New ReportParameter("Folio", FolioTraspaso.ToString)) ' params.Add(New ReportParameter("Fecha", TxtFecha.Text)) ' params.Add(New ReportParameter("Observaciones", TxtObservaciones.Text)) ' params.Add(New ReportParameter("NombreEntrego", UsuarioActual.Nombre)) ' params.Add(New ReportParameter("NombreTraslado", TxtResponsable.Text)) ' params.Add(New ReportParameter("NombreRecibio", "")) ' ImprimirPDF(String.Format("{0}Formatos\Traslado.rdlc", UsuarioActual.Empresa.Ruta), DtTraslado, params, "Reporte Traslado", RDSName:="DsInventarios") 'End Sub #End Region #Region "DDL CLASIFICACION" 'Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged ' ChangeDdlProducto() 'End Sub 'Private Sub ChangeDdlProducto() ' If UsuarioActual.Empresa.Funcionalidad(105) = "" Then ' DdlProducto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero) ' DdlProducto.DataBind() ' DdlProducto.Items.Insert(0, New ListItem("----", "-1")) ' End If ' HFProducto.Value = "" ' HFTProducto.Value = "" 'End Sub 'Protected Sub DdlProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlProducto.SelectedIndexChanged ' ElProductoChange() 'End Sub 'Protected Sub HFProducto_ValueChanged(sender As Object, e As EventArgs) Handles HFProducto.ValueChanged ' ElProductoChange() 'End Sub Private Sub ElProductoChange() DdlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProducto.txtValue.Value.ToEntero, -1, UsuarioActual.CveEmpresa) DdlUnidad.DataBind() UpDatos.Update() End Sub Protected Sub DdlClasificacion_GV(sender As Object, e As System.EventArgs) Dim pDdlClasificacion As DropDownList = CType(sender, DropDownList) Dim pDdlProducto As DropDownList = CType(pDdlClasificacion.NamingContainer.FindControl("DdlProducto"), DropDownList) If pDdlClasificacion.SelectedValue = "-1" Then pDdlProducto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) pDdlProducto.DataBind() Else pDdlProducto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=pDdlClasificacion.SelectedValue.ToEntero) pDdlProducto.DataBind() End If End Sub Private Function isWhitFamily() As Boolean Return (UsuarioActual.CveEmpresa = 66) End Function 'Protected Sub DdlProducto_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlProducto.SelectedIndexChanged ' If Not DdlProducto.SelectedValue = "" Then ' 'If DtPS.FiltraParametros( string.Format("CvePS = {0} AND Inv_CveMetodoInventario = 3 ",DdlProducto.SelectedValue)).Rows.Count > 0 Then ' ' LblSerieLote.Visible = True ' ' TxtnSerieLote.Visible = True ' 'Else ' ' LblSerieLote.Visible = False ' ' TxtnSerieLote.Visible = False ' 'End If ' End If ' Dim dtpse As DataTable ' dtpse = GlobalDTProductosServiciosEquivalencias(DdlProducto.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) ' 'dtpse.Columns("UM").ColumnName = "UnidadMedida" ' 'dtpse.Columns("CveUM").ColumnName = "CveUnidadMedida" ' DdlUnidad.DataSource = dtpse ' DdlUnidad.DataBind() 'End Sub #End Region #Region " TIPO DE CAMBIO " Protected Sub DdlMoneda_SelectedIndexChanged(sender As Object, e As EventArgs) Select Case DdlMoneda.SelectedValue.ToEntero Case 1 TrTC1.Visible = False TrTC2.Visible = False For Each Dr As DataRow In DtMovimientos.Rows 'CUANDO VIENE DE DB SIN PUEXTRANJERO If Not Dr("PUExtranjero").ToString.ToDecimal > 0 Then Exit For End If Dr("PU") = Dr("PUExtranjero") Dr("Total") = Dr("PU").ToString.ToDouble * Dr("Cantidad").ToString.ToDouble Next GvDatos.DataSource = DtMovimientos GvDatos.DataBind() LtTotal.Text = DtMovimientos.SUM("Total", "").ToString.FormatoNumero UpDatos.Update() VerPuExtranjero(False) Case 2 TrTC1.Visible = True TrTC2.Visible = True VerPuExtranjero(True) LtTotal.Text = DtMovimientos.SUM("Total", "").ToString.FormatoNumero End Select End Sub Protected Sub BtnAplicarTC_Click(sender As Object, e As EventArgs) For Each Dr As DataRow In DtMovimientos.Rows Dr("PU") = Dr("PUExtranjero").ToString.ToDouble * TxtTipoCambio.Text.ToDouble Dr("Total") = Dr("PU").ToString.ToDouble * Dr("Cantidad").ToString.ToDouble Next GvDatos.DataSource = DtMovimientos GvDatos.DataBind() LtTotal.Text = DtMovimientos.SUM("Total", "").ToString.FormatoNumero UpDatos.Update() End Sub Private Sub VerPuExtranjero(Accion As Boolean) ThPUExtranjero.Visible = Accion TdPUExtranjero.Visible = Accion GvDatos.Columns(6).Visible = Accion End Sub #End Region #Region "Columnas Opcionales en PS" Protected Sub DdlProducto_selectedindexchange(sender As Object, e As EventArgs) If DdlProducto.SelectedValue.ToEntero > 0 Then Dim drp As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlProducto.SelectedValue.ToEntero).FiltroPrimero("") If drp IsNot Nothing Then Dim AplicaSerie As Boolean = CBool(drp("AplicaSerie")) Dim AplicaSeccion As Boolean = CBool(drp("AplicaSeccion")) Dim AplicaLote As Boolean = CBool(drp("AplicaLote")) Dim AplicaCaducidad As Boolean = CBool(drp("AplicaCaducidad")) 'activa Serie ThSerie.Visible = AplicaSerie TrSerie.Visible = AplicaSerie 'activa seccion ThSeccion.Visible = AplicaSeccion TrSeccion.Visible = AplicaSeccion 'activa lote ThLote.Visible = AplicaLote TrLote.Visible = AplicaLote 'activa caducidad ThCaducidad.Visible = AplicaCaducidad TrCaducidad.Visible = AplicaCaducidad Else TxtSerie.Visible = False End If UpDatos.Update() End If ElProductoChange() End Sub #End Region End Class