cambios 17/02/2026
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
<tsWPF:tsUserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
<tsWPFCore:tsUserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
@@ -7,10 +7,10 @@
|
||||
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
|
||||
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
|
||||
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
|
||||
xmlns:tsWPF="clr-namespace:tsWPFCore;assembly=tsWPFCore" xmlns:Serialization="clr-namespace:DevExpress.Xpf.LayoutControl.Serialization;assembly=DevExpress.Xpf.LayoutControl.v23.2" x:Class="ucProducto"
|
||||
xmlns:tsWPFCore="clr-namespace:tsWPFCore;assembly=tsWPFCore" xmlns:Serialization="clr-namespace:DevExpress.Xpf.LayoutControl.Serialization;assembly=DevExpress.Xpf.LayoutControl.v23.2" x:Class="ucProducto"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="1366">
|
||||
<tsWPF:tsUserControl.Resources>
|
||||
<tsWPFCore:tsUserControl.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="pack://application:,,,/tsWPFCore;component/Plantillas.xaml" />
|
||||
@@ -25,53 +25,77 @@
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
</tsWPF:tsUserControl.Resources>
|
||||
</tsWPFCore:tsUserControl.Resources>
|
||||
<Grid x:Name="contenido" HorizontalAlignment="Stretch" Width="Auto">
|
||||
<dxlc:LayoutControl x:Name="LayoutControl1" Orientation="Vertical">
|
||||
<dxlc:LayoutGroup Header="Datos Producto" x:Name="lgDetalle" View="GroupBox" IsLocked="True" Width="Auto" HorizontalAlignment="Stretch">
|
||||
<dxlc:LayoutGroup Orientation="Vertical" Width="1250" HorizontalAlignment="Left">
|
||||
<dxlc:LayoutGroup Orientation="Vertical">
|
||||
<dxlc:LayoutGroup Orientation="Horizontal">
|
||||
<tsWPF:tsLayoutItem Label="Código:" Width="240">
|
||||
<tsWPF:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPF:PropiedadesTS />
|
||||
</tsWPF:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit TabIndex="2" EditValue="{Binding Codigo, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPF:tsLayoutItem>
|
||||
<tsWPF:tsLayoutItem Label="Descripción:">
|
||||
<tsWPF:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPF:PropiedadesTS Obligatorio="True" Unico="True" />
|
||||
</tsWPF:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit EditValue="{Binding Descripcion, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" TabIndex="3" x:Name="teNIF" />
|
||||
</tsWPF:tsLayoutItem>
|
||||
<tsWPF:tsLayoutItem Label="Tipo:">
|
||||
<tsWPF:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPF:PropiedadesTS UsualCorreccion="False" />
|
||||
</tsWPF:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:ComboBoxEdit x:Name="cbTipo" ValueMember="Valor" DisplayMember="Descripcion" EditValue="{Binding Tipo, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" TabIndex="14" AutoComplete="True" />
|
||||
</tsWPF:tsLayoutItem>
|
||||
<tsWPF:tsLayoutItem Label="Fecha Baja:" Width="200">
|
||||
<tsWPF:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPF:PropiedadesTS UsualCorreccion="False" />
|
||||
</tsWPF:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:DateEdit EditValue="{Binding FechaBaja, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" TabIndex="4" />
|
||||
</tsWPF:tsLayoutItem>
|
||||
<dxlc:LayoutGroup Header="Datos Producto" x:Name="lgDetalle" View="GroupBox" IsLocked="True" Width="Auto" HorizontalAlignment="Stretch" ItemLabelsAlignment="Local" IsCollapsible="True">
|
||||
<dxlc:LayoutGroup Orientation="Vertical">
|
||||
<dxlc:LayoutGroup HorizontalAlignment="Left" Width="1280">
|
||||
<dxlc:LayoutGroup Orientation="Vertical">
|
||||
<dxlc:LayoutGroup >
|
||||
<dxlc:LayoutGroup Orientation="Vertical" Width="240" ItemLabelsAlignment="Local">
|
||||
<tsWPFCore:tsLayoutItem Label="Nº Producto:">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit TabIndex="99" EditValue="{Binding NumeroProductoTMP, Mode=OneWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
<tsWPFCore:tsLayoutItem Label="Fecha Baja:">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS UsualCorreccion="False" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:DateEdit EditValue="{Binding FechaBaja, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" TabIndex="4" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
</dxlc:LayoutGroup>
|
||||
<dxlc:LayoutGroup Orientation="Vertical" Width="380">
|
||||
<tsWPFCore:tsLayoutItem Label="Código:" >
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Unico="True" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit TabIndex="2" EditValue="{Binding Codigo, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
<tsWPFCore:tsLayoutItem Label="Facturar como venta/servicio por defecto.:">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:CheckEdit EditValue="{Binding FacturarComoVentaPorDefecto, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" TabIndex="9" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
</dxlc:LayoutGroup>
|
||||
<dxlc:LayoutGroup Orientation="Vertical">
|
||||
<tsWPFCore:tsLayoutItem Label="Descripción:">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Obligatorio="True" Unico="True" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit EditValue="{Binding Descripcion, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" TabIndex="3" x:Name="teNIF" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
<tsWPFCore:tsLayoutItem Label="Tipo:">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Obligatorio="True" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:ComboBoxEdit x:Name="cbTipo" ValueMember="Valor" DisplayMember="Descripcion" EditValue="{Binding Tipo, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" TabIndex="14" AutoComplete="True" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
</dxlc:LayoutGroup>
|
||||
</dxlc:LayoutGroup>
|
||||
<tsWPFCore:tsLayoutItem Label="Observaciones:" >
|
||||
<dxe:TextEdit EditValue="{Binding Observaciones, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" TabIndex="10" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
</dxlc:LayoutGroup>
|
||||
</dxlc:LayoutGroup>
|
||||
<tsWPF:tsLayoutItem Label="Observaciones:">
|
||||
<dxe:TextEdit EditValue="{Binding Observaciones, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" TabIndex="10" />
|
||||
</tsWPF:tsLayoutItem>
|
||||
|
||||
</dxlc:LayoutGroup>
|
||||
</dxlc:LayoutGroup>
|
||||
|
||||
<dxlc:LayoutGroup Header="Tarifas" View="GroupBox" IsLocked="True" Width="Auto" HorizontalAlignment="Stretch" ItemLabelsAlignment="Local">
|
||||
<dxlc:LayoutGroup Width="400">
|
||||
<tsWPF:tsLayoutItem Label="Precio:">
|
||||
<dxlc:LayoutGroup Header="Precios" View="GroupBox" IsLocked="True" Width="Auto" HorizontalAlignment="Stretch" ItemLabelsAlignment="Local">
|
||||
<dxlc:LayoutGroup Width="900">
|
||||
<tsWPFCore:tsLayoutItem Label="Precio Venta:">
|
||||
<dxe:TextEdit TabIndex="11" Mask="c4" MaskType="Numeric" MaskUseAsDisplayFormat="True" EditValue="{Binding PrecioVenta, Converter={StaticResource DoubleToDecimalConverter}, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPF:tsLayoutItem>
|
||||
<tsWPF:tsLayoutItem Label="Precio Costo:">
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
<tsWPFCore:tsLayoutItem Label="Precio Alquiler Mensual:">
|
||||
<dxe:TextEdit TabIndex="12" Mask="c4" MaskType="Numeric" MaskUseAsDisplayFormat="True" EditValue="{Binding PrecioAlquilerMensual, Converter={StaticResource DoubleToDecimalConverter}, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
<tsWPFCore:tsLayoutItem Label="Ultimo Precio Compra:">
|
||||
<dxe:TextEdit TabIndex="13" Mask="c4" MaskType="Numeric" MaskUseAsDisplayFormat="True" EditValue="{Binding UltimoPrecioCompra, Converter={StaticResource DoubleToDecimalConverter}, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPF:tsLayoutItem>
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
</dxlc:LayoutGroup>
|
||||
</dxlc:LayoutGroup>
|
||||
|
||||
@@ -82,39 +106,285 @@
|
||||
</dx:DXTabControl.View>
|
||||
<dx:DXTabItem Header="Stocks">
|
||||
<dxlc:LayoutGroup Orientation="Vertical">
|
||||
<dxlc:LayoutGroup Header="Descglose por almacenes" View="GroupBox">
|
||||
<tsWPF:tsGridControl x:Name="gcStocksAlmacenes" NombreTablaBase="desgloseproductos" TabIndex="41">
|
||||
<tsWPF:tsGridControl.PropiedadesTS>
|
||||
<tsWPF:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPF:tsGridControl.PropiedadesTS>
|
||||
<tsWPF:tsGridControl.View>
|
||||
<tsWPF:tsTableView ShowGroupPanel="false" x:Name="tvStocksAlmacenes" IsDetailButtonVisibleBinding="{Binding Row.ContieneHijos}">
|
||||
</tsWPF:tsTableView>
|
||||
</tsWPF:tsGridControl.View>
|
||||
<dxlc:LayoutGroup Header="Desglose por almacenes" View="GroupBox">
|
||||
<tsWPFCore:tsGridControl x:Name="gcStocksAlmacenes" NombreTablaBase="desgloseproductos" TabIndex="41">
|
||||
<tsWPFCore:tsGridControl.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsGridControl.PropiedadesTS>
|
||||
<tsWPFCore:tsGridControl.View>
|
||||
<tsWPFCore:tsTableView ShowGroupPanel="false" x:Name="tvStocksAlmacenes" IsDetailButtonVisibleBinding="{Binding Row.ContieneHijos}">
|
||||
</tsWPFCore:tsTableView>
|
||||
</tsWPFCore:tsGridControl.View>
|
||||
<dxg:GridControl.Columns>
|
||||
<tsWPF:tsGridColumn FieldName="Almacen" Header="Almacén" IsSmart="True" Width="450" SoloLectura="True" CellTemplate="{DynamicResource VerDetalleTemplate}" />
|
||||
<tsWPF:tsGridColumn FieldName="TipoAlmacen" Header="Tipo Almacén" IsSmart="True" Width="200" SoloLectura="True" />
|
||||
<tsWPF:tsGridColumn FieldName="Unidades" IsSmart="True" Width="100">
|
||||
<tsWPFCore:tsGridColumn FieldName="Almacen" Header="Almacén" IsSmart="True" Width="450" SoloLectura="True" CellTemplate="{DynamicResource VerDetalleTemplate}" />
|
||||
<tsWPFCore:tsGridColumn FieldName="TipoAlmacen" Header="Tipo Almacén" IsSmart="True" Width="200" SoloLectura="True" />
|
||||
<tsWPFCore:tsGridColumn FieldName="Unidades" IsSmart="True" Width="100">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPF:tsGridColumn>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
|
||||
</dxg:GridControl.Columns>
|
||||
</tsWPF:tsGridControl>
|
||||
</tsWPFCore:tsGridControl>
|
||||
</dxlc:LayoutGroup>
|
||||
<dxlc:LayoutGroup Header="Unidades" View="GroupBox" IsLocked="True" Width="Auto" HorizontalAlignment="Stretch" ItemLabelsAlignment="Local" IsCollapsible="True" >
|
||||
<dxlc:LayoutGroup Orientation="Vertical">
|
||||
<dxlc:LayoutGroup Orientation="Vertical" ItemLabelsAlignment="Local">
|
||||
<dxlc:LayoutGroup Orientation="Horizontal" Width="1000" Height="120">
|
||||
<dxlc:LayoutGroup Orientation="Vertical" Width="250" HorizontalAlignment="Left">
|
||||
<tsWPFCore:tsLayoutItem Label="Uds. Iniciales/Fabricadas:">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit TabIndex="14" Mask="N0" MaskType="Numeric" MaskUseAsDisplayFormat="True" EditValue="{Binding UnidadesInicialesOFabricadas, Converter={StaticResource DoubleToDecimalConverter}, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
<tsWPFCore:tsLayoutItem Label="Unidades Desechadas:">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit TabIndex="29" Mask="N0" MaskType="Numeric" MaskUseAsDisplayFormat="True" EditValue="{Binding UnidadesDesechadas, Converter={StaticResource DoubleToDecimalConverter}, Mode=OneWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
<tsWPFCore:tsLayoutItem Label="Total Unidades:" FontWeight="Bold">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit TabIndex="39" Mask="N0" MaskType="Numeric" MaskUseAsDisplayFormat="True" EditValue="{Binding TotalUnidades, Converter={StaticResource DoubleToDecimalConverter}, Mode=TwoWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
<tsWPFCore:tsLayoutItem Label="Unidades Disponibles:" FontWeight="Bold">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit TabIndex="39" Mask="N0" MaskType="Numeric" MaskUseAsDisplayFormat="True" EditValue="{Binding UnidadesDisponibles, Converter={StaticResource DoubleToDecimalConverter}, Mode=OneWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
</dxlc:LayoutGroup>
|
||||
<dxlc:LayoutGroup Orientation="Vertical" Width="700">
|
||||
<dxlc:LayoutGroup>
|
||||
<dxlc:LayoutGroup Orientation="Vertical" Width="200">
|
||||
<tsWPFCore:tsLayoutItem Label="Unidades Compradas:">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit TabIndex="19" Mask="N0" MaskType="Numeric" MaskUseAsDisplayFormat="True" EditValue="{Binding UnidadesCompradas, Converter={StaticResource DoubleToDecimalConverter}, Mode=OneWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
<tsWPFCore:tsLayoutItem Label="Unidades Vendidas:">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit TabIndex="24" Mask="N0" MaskType="Numeric" MaskUseAsDisplayFormat="True" EditValue="{Binding UnidadesVendidas, Converter={StaticResource DoubleToDecimalConverter}, Mode=OneWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
|
||||
</dxlc:LayoutGroup>
|
||||
<dxlc:LayoutGroup Orientation="Vertical" Width="250">
|
||||
<tsWPFCore:tsLayoutItem Label="Unidades Subarrendadas:">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit TabIndex="24" Mask="N0" MaskType="Numeric" MaskUseAsDisplayFormat="True" EditValue="{Binding UnidadesSubAlquiladas, Converter={StaticResource DoubleToDecimalConverter}, Mode=OneWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
<tsWPFCore:tsLayoutItem Label="Unidades Alquiladas:">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit TabIndex="29" Mask="N0" MaskType="Numeric" MaskUseAsDisplayFormat="True" EditValue="{Binding UnidadesAlquiladas, Converter={StaticResource DoubleToDecimalConverter}, Mode=OneWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
</dxlc:LayoutGroup>
|
||||
<dxlc:LayoutGroup Orientation="Vertical" VerticalAlignment="Bottom" >
|
||||
|
||||
<tsWPFCore:tsLayoutItem Label="Unidades En Reparación:">
|
||||
<tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsLayoutItem.PropiedadesTS>
|
||||
<dxe:TextEdit TabIndex="29" Mask="N0" MaskType="Numeric" MaskUseAsDisplayFormat="True" EditValue="{Binding UnidadesAveriadas, Converter={StaticResource DoubleToDecimalConverter}, Mode=OneWay, NotifyOnSourceUpdated=True, NotifyOnValidationError=true, ValidatesOnExceptions=true}" />
|
||||
</tsWPFCore:tsLayoutItem>
|
||||
</dxlc:LayoutGroup>
|
||||
</dxlc:LayoutGroup>
|
||||
<dxlc:LayoutGroup Header="LayoutGroup" Orientation="Vertical">
|
||||
<TextBlock Margin="5,2,0,0" Text="(Stock Inicial + Unidades Compradas + Unidades Subarrendadas - Unidades Desechadas - Unidades Vendidas)" FontWeight="Bold" Height="22"></TextBlock>
|
||||
<TextBlock Margin="5,0,0,0" Text="(Total Unidades - Unidades Alquiladas - Unidades En Reparacion)" FontWeight="Bold"></TextBlock>
|
||||
</dxlc:LayoutGroup>
|
||||
|
||||
</dxlc:LayoutGroup>
|
||||
</dxlc:LayoutGroup>
|
||||
</dxlc:LayoutGroup>
|
||||
|
||||
</dxlc:LayoutGroup>
|
||||
</dxlc:LayoutGroup>
|
||||
</dxlc:LayoutGroup>
|
||||
</dx:DXTabItem>
|
||||
<dx:DXTabItem Header="Stocks Por Empresas">
|
||||
<tsWPFCore:tsGridControl x:Name="gcStocksEmpresas" TabIndex="41">
|
||||
<tsWPFCore:tsGridControl.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsGridControl.PropiedadesTS>
|
||||
<tsWPFCore:tsGridControl.View>
|
||||
<tsWPFCore:tsTableView ShowGroupPanel="false" x:Name="tvStocksEmpresas" >
|
||||
</tsWPFCore:tsTableView>
|
||||
</tsWPFCore:tsGridControl.View>
|
||||
<dxg:GridControl.Columns>
|
||||
<tsWPFCore:tsGridColumn FieldName="NombreEmpresa" Header="Empresa" IsSmart="True" Width="300" SoloLectura="True" />
|
||||
<tsWPFCore:tsGridColumn FieldName="TotalUnidades" IsSmart="True" Width="95">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesCompradas" IsSmart="True" Width="130">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesAlquiladas" IsSmart="True" Width="130">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesAveriadas" IsSmart="True" Width="130">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesVendidas" IsSmart="True" Width="130">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesSubAlquiladas" IsSmart="True" Width="150">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesDesechadas" IsSmart="True" Width="130">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesDisponibles" IsSmart="True" Width="130">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
</dxg:GridControl.Columns>
|
||||
</tsWPFCore:tsGridControl>
|
||||
</dx:DXTabItem>
|
||||
<dx:DXTabItem Header="Desglose de Material">
|
||||
<tsWPFCore:tsGridControl x:Name="gcDesglose" NombreTablaBase="desgloseproductos" TabIndex="41">
|
||||
<tsWPFCore:tsGridControl.PropiedadesTSGC>
|
||||
<tsWPFCore:PropiedadesTSGC CamposUnicos="idProducto" />
|
||||
</tsWPFCore:tsGridControl.PropiedadesTSGC>
|
||||
<tsWPFCore:tsGridControl.View>
|
||||
<tsWPFCore:tsTableView ShowGroupPanel="false" x:Name="tvdesglose" IsDetailButtonVisibleBinding="{Binding Row.ContieneHijos}">
|
||||
<dxg:TableView.FormatConditions>
|
||||
<dxg:FormatCondition Expression="[ContieneHijos]" FieldName="{x:Null}">
|
||||
<dx:Format Foreground="Blue" FontWeight="Bold" />
|
||||
</dxg:FormatCondition>
|
||||
</dxg:TableView.FormatConditions>
|
||||
</tsWPFCore:tsTableView>
|
||||
</tsWPFCore:tsGridControl.View>
|
||||
<dxg:GridControl.Columns>
|
||||
<tsWPFCore:tsGridColumn FieldName="productos1.idProducto" Header="Código" IsSmart="True" Width="90" SoloLectura="True" CellTemplate="{DynamicResource VerDetalleTemplate}" />
|
||||
<tsWPFCore:tsGridColumn FieldName="productos1.Descripcion" Header="Descripcion" IsSmart="True" Width="250" SoloLectura="True" />
|
||||
<tsWPFCore:tsGridColumn FieldName="Unidades" Header="Unidades" IsSmart="True" Width="70">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesMinimas" Header="Unidades Mínimas" IsSmart="True" Width="140">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesMaximas" Header="Unidades Máximas" IsSmart="True" Width="140">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
</dxg:GridControl.Columns>
|
||||
<dxg:GridControl.DetailDescriptor>
|
||||
<dxg:TabViewDetailDescriptor>
|
||||
<dxg:TabViewDetailDescriptor.DetailDescriptors>
|
||||
<dxg:DataControlDetailDescriptor ItemsSourcePath="productos1.desgloseproductos">
|
||||
<dxg:DataControlDetailDescriptor.DataControl>
|
||||
<tsWPFCore:tsGridControl x:Name="gcDesgloseHijos">
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView x:Name="tvDesgloseHijos" DetailHeaderContent="Desglose Producto" ShowGroupPanel="False" RowStyle="{StaticResource RejillaAnidadaStyle}" IsDetailButtonVisibleBinding="{Binding Row.ContieneHijos}" />
|
||||
</dxg:GridControl.View>
|
||||
<dxg:GridControl.Columns>
|
||||
<tsWPFCore:tsGridColumn FieldName="productos1.idProducto" Header="Código" IsSmart="True" Width="90" SoloLectura="True" CellTemplate="{DynamicResource VerDetalleTemplate}" />
|
||||
<tsWPFCore:tsGridColumn FieldName="productos1.Descripcion" Header="Descripcion" IsSmart="True" Width="250" SoloLectura="True" />
|
||||
<tsWPFCore:tsGridColumn FieldName="Unidades" Header="Unidades" IsSmart="True" Width="70">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesMinimas" Header="Unidades Mínimas" IsSmart="True" Width="140">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesMaximas" Header="Unidades Máximas" IsSmart="True" Width="140">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
</dxg:GridControl.Columns>
|
||||
|
||||
<!--<dx:DXTabItem Header="Albaranes en los que aparece">
|
||||
<tsWPF:tsGridControl x:Name="gcAlbaranes" TabIndex="43">
|
||||
<tsWPF:tsGridControl.PropiedadesTS>
|
||||
<tsWPF:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPF:tsGridControl.PropiedadesTS>
|
||||
<tsWPF:tsGridControl.View>
|
||||
<tsWPF:tsTableView ShowSearchPanelMode="Always" ShowTotalSummary="True" x:Name="tvProductosAoV" ShowGroupFooters="True" />
|
||||
</tsWPF:tsGridControl.View>
|
||||
|
||||
<dxg:GridControl.DetailDescriptor>
|
||||
<dxg:TabViewDetailDescriptor>
|
||||
<dxg:TabViewDetailDescriptor.DetailDescriptors>
|
||||
<dxg:DataControlDetailDescriptor ItemsSourcePath="productos1.desgloseproductos">
|
||||
<dxg:DataControlDetailDescriptor.DataControl>
|
||||
<tsWPFCore:tsGridControl x:Name="gcDesgloseNietos">
|
||||
<dxg:GridControl.View>
|
||||
<dxg:TableView x:Name="tvDesgloseNietos" DetailHeaderContent="Desglose Producto" ShowGroupPanel="False" RowStyle="{StaticResource RejillaAnidadaNietaStyle}" IsDetailButtonVisibleBinding="{Binding Row.ContieneHijos}" />
|
||||
</dxg:GridControl.View>
|
||||
<dxg:GridControl.Columns>
|
||||
<tsWPFCore:tsGridColumn FieldName="productos1.idProducto" Header="Código" IsSmart="True" Width="90" SoloLectura="True" CellTemplate="{DynamicResource VerDetalleTemplate}" />
|
||||
<tsWPFCore:tsGridColumn FieldName="productos1.Descripcion" Header="Descripcion" IsSmart="True" Width="250" SoloLectura="True" />
|
||||
<tsWPFCore:tsGridColumn FieldName="Unidades" Header="Unidades" IsSmart="True" Width="70">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesMinimas" Header="Unidades Mínimas" IsSmart="True" Width="140">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
<tsWPFCore:tsGridColumn FieldName="UnidadesMaximas" Header="Unidades Máximas" IsSmart="True" Width="140">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</tsWPFCore:tsGridColumn>
|
||||
</dxg:GridControl.Columns>
|
||||
</tsWPFCore:tsGridControl>
|
||||
</dxg:DataControlDetailDescriptor.DataControl>
|
||||
</dxg:DataControlDetailDescriptor>
|
||||
</dxg:TabViewDetailDescriptor.DetailDescriptors>
|
||||
</dxg:TabViewDetailDescriptor>
|
||||
</dxg:GridControl.DetailDescriptor>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</tsWPFCore:tsGridControl>
|
||||
</dxg:DataControlDetailDescriptor.DataControl>
|
||||
</dxg:DataControlDetailDescriptor>
|
||||
</dxg:TabViewDetailDescriptor.DetailDescriptors>
|
||||
</dxg:TabViewDetailDescriptor>
|
||||
</dxg:GridControl.DetailDescriptor>
|
||||
</tsWPFCore:tsGridControl>
|
||||
</dx:DXTabItem>
|
||||
|
||||
|
||||
<dx:DXTabItem Header="Albaranes en los que aparece">
|
||||
<tsWPFCore:tsGridControl x:Name="gcAlbaranes" TabIndex="43">
|
||||
<tsWPFCore:tsGridControl.PropiedadesTS>
|
||||
<tsWPFCore:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPFCore:tsGridControl.PropiedadesTS>
|
||||
<tsWPFCore:tsGridControl.View>
|
||||
<tsWPFCore:tsTableView ShowSearchPanelMode="Always" ShowTotalSummary="True" x:Name="tvProductosAoV" ShowGroupFooters="True" />
|
||||
</tsWPFCore:tsGridControl.View>
|
||||
<dxg:GridColumn FieldName="NumeroAlbaran" Header="Nº Albarán" IsSmart="True" Width="120" CellTemplate="{DynamicResource VerDetalleTemplate}" />
|
||||
<dxg:GridColumn FieldName="albaranes.Fecha" Header="Fecha" IsSmart="True" Width="150">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
@@ -129,71 +399,18 @@
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Entidad" Header="Cliente/Proveedor" Width="300" IsSmart="True" CellTemplate="{DynamicResource VerDetalleTemplate}" />
|
||||
<dxg:GridColumn FieldName="albaranes.DescripcionEvento" Header="Evento" Width="300" />
|
||||
<dxg:GridColumn FieldName="albaranes.DescripcionObra" Header="Obra" Width="300" />
|
||||
<dxg:GridColumn FieldName="EsVenta" IsSmart="True" Width="60">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:CheckEditSettings IsThreeState="False">
|
||||
</dxe:CheckEditSettings>
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
</tsWPF:tsGridControl>
|
||||
</tsWPFCore:tsGridControl>
|
||||
</dx:DXTabItem>
|
||||
<dx:DXTabItem Header="Facturas en las que aparece">
|
||||
<tsWPF:tsGridControl x:Name="gcFacturas" TabIndex="43">
|
||||
<tsWPF:tsGridControl.PropiedadesTS>
|
||||
<tsWPF:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPF:tsGridControl.PropiedadesTS>
|
||||
<tsWPF:tsGridControl.View>
|
||||
<tsWPF:tsTableView ShowSearchPanelMode="Always" ShowTotalSummary="True" x:Name="tvFacturas" ShowGroupFooters="True" />
|
||||
</tsWPF:tsGridControl.View>
|
||||
<dxg:GridColumn FieldName="NumeroFactura" Header="Nº Factura" IsSmart="True" Width="120" CellTemplate="{DynamicResource VerDetalleTemplate}" />
|
||||
<dxg:GridColumn FieldName="idFacturaNavigation.Fecha" Header="Fecha" IsSmart="True" Width="150">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:DateEditSettings DisplayFormat="dd/MM/yyyy" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="AlmacenOrigen" Header="Almacén Origen" IsSmart="True" Width="300" />
|
||||
<dxg:GridColumn FieldName="AlmacenDestino" Header="Almacén Destino" IsSmart="True" Width="300" />
|
||||
<dxg:GridColumn FieldName="Cantidad" Header="Cantidad" IsSmart="True" Width="70">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="Numeric" Mask="n0" MaskUseAsDisplayFormat="True" HorizontalContentAlignment="Right" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Entidad" Header="Cliente/Proveedor" Width="300" IsSmart="True" CellTemplate="{DynamicResource VerDetalleTemplate}" />
|
||||
<dxg:GridColumn FieldName="albaranes.DescripcionEvento" Header="Evento" Width="300" />
|
||||
<dxg:GridColumn FieldName="EsVenta" IsSmart="True" Width="60">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:CheckEditSettings IsThreeState="False">
|
||||
</dxe:CheckEditSettings>
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
</tsWPF:tsGridControl>
|
||||
</dx:DXTabItem>
|
||||
<dx:DXTabItem Header="Registro de cambios">
|
||||
<dxlc:LayoutGroup Orientation="Vertical">
|
||||
<tsWPF:tsGridControl x:Name="gcLogs" TabIndex="45">
|
||||
<tsWPF:tsGridControl.PropiedadesTS>
|
||||
<tsWPF:PropiedadesTS Modificable="NoModificable" />
|
||||
</tsWPF:tsGridControl.PropiedadesTS>
|
||||
<dxg:GridControl.View>
|
||||
<tsWPF:tsTableView x:Name="tvLogs" ShowSearchPanelMode="Default" ShowGroupPanel="False" />
|
||||
</dxg:GridControl.View>
|
||||
<dxg:GridControl.Columns>
|
||||
<dxg:GridColumn FieldName="idLog" Header="Nº Cambio" IsSmart="True" CellTemplate="{DynamicResource VerDetalleTemplate}" />
|
||||
<dxg:GridColumn FieldName="FechaHora" Header="Fecha Hora Cambio">
|
||||
<dxg:GridColumn.EditSettings>
|
||||
<dxe:TextEditSettings MaskType="DateTime" MaskUseAsDisplayFormat="True" Mask="dd/MM/yyyy HH:mm" />
|
||||
</dxg:GridColumn.EditSettings>
|
||||
</dxg:GridColumn>
|
||||
<dxg:GridColumn FieldName="Usuario" Header="Usuario" Width="250" IsSmart="True" />
|
||||
<dxg:GridColumn FieldName="ip" Header="Dirección IP" IsSmart="True" Width="150" />
|
||||
</dxg:GridControl.Columns>
|
||||
|
||||
</tsWPF:tsGridControl>
|
||||
</dxlc:LayoutGroup>
|
||||
</dx:DXTabItem>-->
|
||||
</dx:DXTabControl>
|
||||
|
||||
</dxlc:LayoutControl>
|
||||
</Grid>
|
||||
</tsWPF:tsUserControl>
|
||||
</tsWPFCore:tsUserControl>
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
Imports bdGrupoSanchoToro.db
|
||||
Imports DevExpress.Xpf.Bars
|
||||
Imports bdGrupoSanchoToro.db.tscGrupoSanchoToro
|
||||
Imports bdGrupoSanchoToro.db.Utilidades
|
||||
Imports DevExpress.Xpf.Grid
|
||||
Imports System.Collections
|
||||
Imports tsWPFCore
|
||||
Imports DevExpress.Xpf.Core
|
||||
Imports DevExpress.XtraSplashScreen
|
||||
Imports System.Collections
|
||||
Imports bdGrupoSanchoToro.db
|
||||
Imports bdGrupoSanchoToro.db.productos
|
||||
Imports bdGrupoSanchoToro.db.Utilidades
|
||||
Imports DevExpress.Xpf.Bars
|
||||
Imports DevExpress.Xpf.Core
|
||||
Imports DevExpress.Xpf.Grid
|
||||
Imports DevExpress.XtraSplashScreen
|
||||
Imports Microsoft.EntityFrameworkCore
|
||||
Imports tsWPFCore
|
||||
|
||||
Public Class ucProducto
|
||||
|
||||
@@ -20,31 +19,31 @@ Public Class ucProducto
|
||||
Public Overrides Function EstablecedcPrincipal(Optional Background As Boolean = False, Optional FuerzaNuevo As Boolean = False, Optional Refrescar As Boolean = False) As tsUtilidades.EstadosAplicacion
|
||||
Dim NuevoEstado As tsUtilidades.EstadosAplicacion
|
||||
If idLog.HasValue Then
|
||||
Try
|
||||
Dim log = bd.logs.First(Function(x) x.idLog = idLog)
|
||||
ra = tsUtilidades.Utilidades.DeserializarSinErrores(log.Log, GetType(productos))
|
||||
If ra.idUsuarioCreador.HasValue Then ra.idUsuarioCreadorNavigation = bd.usuarios.FirstOrDefault(Function(x) x.idUsuario = ra.idUsuarioCreador.Value)
|
||||
If ra.idUsuarioModificador.HasValue Then ra.idUsuarioModificadorNavigation = bd.usuarios.FirstOrDefault(Function(x) x.idUsuario = ra.idUsuarioModificador.Value)
|
||||
If bd.logs.Any(Function(x) x.idRelacionado = log.idLog AndAlso x.Aplicacion = "ARTICULOS") Then
|
||||
Dim entspol = bd.logs.First(Function(x) x.idRelacionado = log.idLog AndAlso x.Aplicacion = "ARTICULOS")
|
||||
Dim ld = tsUtilidades.Utilidades.DeserializarSinErrores(entspol.Log, GetType(List(Of articulos)))
|
||||
For Each d In ld
|
||||
ra.articulos.Add(d)
|
||||
Next
|
||||
End If
|
||||
NuevoEstado = tsUtilidades.EstadosAplicacion.ModificandoRegistro
|
||||
Catch EX As Exception
|
||||
Throw New Exception("No ha sido posible mostrar el registro del cambio (id " & idLog.Value.ToString & ").", EX)
|
||||
End Try
|
||||
'Try
|
||||
' Dim log = bd.logs.First(Function(x) x.idLog = idLog)
|
||||
' ra = tsUtilidades.Utilidades.DeserializarSinErrores(log.LogXML, GetType(productos))
|
||||
' If ra.idUsuarioCreador.HasValue Then ra.idUsuarioCreadorNavigation = bd.usuarios.FirstOrDefault(Function(x) x.idUsuario = ra.idUsuarioCreador.Value)
|
||||
' If ra.idUsuarioModificador.HasValue Then ra.idUsuarioModificadorNavigation = bd.usuarios.FirstOrDefault(Function(x) x.idUsuario = ra.idUsuarioModificador.Value)
|
||||
' If bd.logs.Any(Function(x) x.idRelacionado = log.idLog AndAlso x.Aplicacion = "ARTICULOS") Then
|
||||
' Dim entspol = bd.logs.First(Function(x) x.idRelacionado = log.idLog AndAlso x.Aplicacion = "ARTICULOS")
|
||||
' Dim ld = tsUtilidades.Utilidades.DeserializarSinErrores(entspol.LogXML, GetType(List(Of articulos)))
|
||||
' For Each d In ld
|
||||
' ra.articulos.Add(d)
|
||||
' Next
|
||||
' End If
|
||||
' NuevoEstado = tsUtilidades.EstadosAplicacion.ModificandoRegistro
|
||||
'Catch EX As Exception
|
||||
' Throw New Exception("No ha sido posible mostrar el registro del cambio (id " & idLog.Value.ToString & ").", EX)
|
||||
'End Try
|
||||
Else
|
||||
If Estado = tsUtilidades.EstadosAplicacion.Nuevo OrElse _idproducto Is Nothing OrElse FuerzaNuevo Then
|
||||
ra = New productos
|
||||
'ra.TotalUnidades = 0
|
||||
'ra.UnidadesVendidas = 0
|
||||
'ra.UnidadesAlquiladas = 0
|
||||
'ra.UnidadesAveriadas = 0
|
||||
'ra.UnidadesDesechadas = 0
|
||||
'ra.FacturarComoVentaPorDefecto = False
|
||||
ra.TotalUnidades = 0
|
||||
ra.UnidadesVendidas = 0
|
||||
ra.UnidadesAlquiladas = 0
|
||||
ra.UnidadesAveriadas = 0
|
||||
ra.UnidadesDesechadas = 0
|
||||
ra.FacturarComoVentaPorDefecto = False
|
||||
Me.DataContext = ra
|
||||
_idproducto = Nothing
|
||||
NuevoEstado = tsUtilidades.EstadosAplicacion.Nuevo
|
||||
@@ -53,14 +52,17 @@ Public Class ucProducto
|
||||
NuevoEstado = tsUtilidades.EstadosAplicacion.ModificandoRegistro
|
||||
End If
|
||||
End If
|
||||
' Me.gcLogs.ItemsSource = bd.logs.Where(Function(x) x.id = ra.idProducto AndAlso x.Aplicacion = "PRODUCTOS").ToList
|
||||
|
||||
' Me.gcLogs.ItemsSource = bd.logs.Where(Function(x) x.id = ra.idProducto AndAlso x.Aplicacion = "PRODUCTOS").ToList
|
||||
Me.gcDesglose.ItemsSource = ra.DesgloseMaterial
|
||||
'Me.gcServicios.ItemsSource = ra.DesgloseServicios
|
||||
If ra.Servicio Then
|
||||
If ra.Tipo <> TipoProductoEnum.SERVICIO Then
|
||||
Me.gcStocksAlmacenes.ItemsSource = ObtieneISAlmacenes()
|
||||
Me.gcStocksEmpresas.ItemsSource = ra.DesgloseUnidades
|
||||
Else
|
||||
Me.gcStocksAlmacenes.ItemsSource = Nothing
|
||||
Me.gcStocksEmpresas.ItemsSource = Nothing
|
||||
End If
|
||||
Me.gcAlbaranes.ItemsSource = bd.detallesalbaranes.Include(Function(x) x.idAlbaranNavigation.idEntidadNavigation).Where(Function(x) x.idProducto = ra.idProducto).OrderByDescending(Function(x) x.idAlbaranNavigation.Fecha).ToList
|
||||
Me.DataContext = ra
|
||||
|
||||
' gcArticulos.ItemsSource = ra.articulos
|
||||
@@ -165,7 +167,8 @@ Public Class ucProducto
|
||||
Try
|
||||
|
||||
Dim idprs = ra.articulos.Where(Function(x) x.idProveedor.HasValue).Select(Function(x) x.idProveedor.Value).ToArray
|
||||
Me.cbTipo.ItemsSource = tsUtilidades.DescripcionValor.EnumADescripcionValor(GetType(bdGrupoSanchoToro.db.productos.TipoProductoEnum)).ToList
|
||||
Me.cbTipo.ItemsSource = tsUtilidades.DescripcionValor.EnumADescripcionValor(GetType(bdGrupoSanchoToro.db.productos.TipoProductoEnum)) _
|
||||
.OrderBy(Function(x) x.Valor).ToList
|
||||
Catch ex As Exception
|
||||
Throw New Exception(ex.Message, ex)
|
||||
End Try
|
||||
@@ -201,11 +204,34 @@ Public Class ucProducto
|
||||
|
||||
|
||||
|
||||
|
||||
Private Sub ucProducto_DespuesGuardar(sender As Object, e As ItemClickEventArgs, OpcionGuardado As Integer) Handles Me.DespuesGuardar
|
||||
Try
|
||||
_idproducto = ra.idProducto
|
||||
ra.RefrescaCamposTemporales()
|
||||
If RecalcularStocks Then
|
||||
RecalcularStocks = False
|
||||
DXSplashScreen.Show(Of tsWPFCore.SplashScreenTecnosis)()
|
||||
DXSplashScreen.SetState("Recalculando Stocks ...")
|
||||
Dim lp As New List(Of productos)
|
||||
lp.Add(ra)
|
||||
bdGrupoSanchoToro.db.productos.RecalculaStocks(bd, lp)
|
||||
DXSplashScreen.Close()
|
||||
End If
|
||||
RefrescaUC()
|
||||
Catch ex As Exception
|
||||
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
|
||||
Throw New Exception(ex.Message, ex)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub ucProducto_Enlazar(Celda As EditGridCellData, Defecto As Boolean) Handles Me.Enlazar
|
||||
|
||||
Select Case Celda.Column.FieldName.ToLower
|
||||
Case "productos1.idproducto"
|
||||
Dim dp As desgloseproductos = Celda.Row
|
||||
Dim id As Integer = dp.idProducto
|
||||
Dim uc As New ucProducto(id)
|
||||
FuncionesDinamicas.AbrirAP(uc, OtrosParametros)
|
||||
'Case "idlog"
|
||||
' Dim log As logs = gcLogs.CurrentItem
|
||||
' Dim id As Integer = log.idLog
|
||||
@@ -215,9 +241,9 @@ Public Class ucProducto
|
||||
Case "almacen"
|
||||
Dim st As stocks = Celda.Row
|
||||
FuncionesDinamicas.AbrirAP(New ucAlmacen(st.idAlmacen), OtrosParametros)
|
||||
'Case "numeroalbaran"
|
||||
' Dim al As detallesalbaranes = Celda.Row
|
||||
' FuncionesDinamicas.AbrirAP(New ucAlbaran(al.idAlbaran), OtrosParametros)
|
||||
Case "numeroalbaran"
|
||||
Dim al As detallesalbaranes = Celda.Row
|
||||
FuncionesDinamicas.AbrirAP(New ucAlbaran(al.idAlbaran), OtrosParametros)
|
||||
Case "entidad"
|
||||
Dim da As detallesalbaranes = Celda.Row
|
||||
If da.idAlbaranNavigation.idEntidad.HasValue Then FuncionesDinamicas.AbrirAP(New ucEntidad(da.idAlbaranNavigation.idEntidad.Value), OtrosParametros)
|
||||
@@ -237,46 +263,42 @@ Public Class ucProducto
|
||||
|
||||
|
||||
Private RecalcularStocks As Boolean
|
||||
'Private Sub ucProducto_AntesGuardar(sender As Object, e As ItemClickEventArgs, ByRef Cancelar As Boolean, ByRef MensajesError As Hashtable, EliminacionManual As Integer) Handles Me.AntesGuardar
|
||||
' '
|
||||
' ' Esto se hace para evitar error duplicate entry en el intercambio de numero de series
|
||||
' '
|
||||
' Try
|
||||
' Dim bdtmp = tscGrupoSanchoToro.NuevoContexto()
|
||||
' Dim arts = bdtmp.articulos.Where(Function(x) x.idProducto = ra.idProducto).ToList
|
||||
' For Each art In arts
|
||||
' If ra.articulos.Any(Function(x) x.idArticulo <> art.idArticulo AndAlso art.CodigoArticulo = x.CodigoArticulo) Then
|
||||
' art.CodigoArticulo = Nothing
|
||||
' End If
|
||||
' Next
|
||||
' 'If Estado = tsUtilidades.EstadosAplicacion.ModificandoRegistro Then
|
||||
' ' Dim raant = bdtmp.productos.First(Function(x) x.idProducto = ra.idProducto)
|
||||
' ' If (ra.Tipo = TipoProductoEnum.ELEMENTO_FINAL_TRIBUNA OrElse ra.Tipo = TipoProductoEnum.ELEMENTO_FINAL_CARPA OrElse ra.Tipo <= TipoProductoEnum.OTROS) AndAlso
|
||||
' ' Not (raant.Tipo = TipoProductoEnum.ELEMENTO_FINAL_TRIBUNA OrElse raant.Tipo = TipoProductoEnum.ELEMENTO_FINAL_CARPA OrElse raant.Tipo <= TipoProductoEnum.OTROS) Then
|
||||
' ' RecalcularStocks = True
|
||||
' ' Else
|
||||
' ' If Not (ra.Tipo = TipoProductoEnum.ELEMENTO_FINAL_TRIBUNA OrElse ra.Tipo = TipoProductoEnum.ELEMENTO_FINAL_CARPA OrElse ra.Tipo <= TipoProductoEnum.OTROS) AndAlso
|
||||
' ' (raant.Tipo = TipoProductoEnum.ELEMENTO_FINAL_TRIBUNA OrElse raant.Tipo = TipoProductoEnum.ELEMENTO_FINAL_CARPA OrElse raant.Tipo <= TipoProductoEnum.OTROS) Then
|
||||
' ' For i = ra.stocks.Count - 1 To 0
|
||||
' ' bd.stocks.Remove(ra.stocks(i))
|
||||
' ' Next
|
||||
' ' ra.TotalUnidades = 0
|
||||
' ' ra.UnidadesInicialesOFabricadas = 0
|
||||
' ' ra.UnidadesCompradas = 0
|
||||
' ' ra.UnidadesVendidas = 0
|
||||
' ' ra.UnidadesAlquiladas = 0
|
||||
' ' ra.UnidadesAveriadas = 0
|
||||
' ' ra.UnidadesDesechadas = 0
|
||||
' ' ra.UnidadesSubAlquiladas = 0
|
||||
' ' End If
|
||||
' ' End If
|
||||
' 'End If
|
||||
Private Sub ucProducto_AntesGuardar(sender As Object, e As ItemClickEventArgs, ByRef Cancelar As Boolean, ByRef MensajesError As Hashtable, EliminacionManual As Integer) Handles Me.AntesGuardar
|
||||
'
|
||||
' Esto se hace para evitar error duplicate entry en el intercambio de numero de series
|
||||
'
|
||||
Try
|
||||
Dim bdtmp = tscGrupoSanchoToro.NuevoContexto()
|
||||
Dim arts = bdtmp.articulos.Where(Function(x) x.idProducto = ra.idProducto).ToList
|
||||
For Each art In arts
|
||||
If ra.articulos.Any(Function(x) x.idArticulo <> art.idArticulo AndAlso art.CodigoArticulo = x.CodigoArticulo) Then
|
||||
art.CodigoArticulo = Nothing
|
||||
End If
|
||||
Next
|
||||
If Estado = tsUtilidades.EstadosAplicacion.ModificandoRegistro Then
|
||||
Dim raant = bdtmp.productos.First(Function(x) x.idProducto = ra.idProducto)
|
||||
If ra.Tipo <> TipoProductoEnum.SERVICIO Then
|
||||
RecalcularStocks = True
|
||||
Else
|
||||
For i = ra.stocks.Count - 1 To 0
|
||||
bd.stocks.Remove(ra.stocks(i))
|
||||
Next
|
||||
ra.TotalUnidades = 0
|
||||
ra.UnidadesInicialesOFabricadas = 0
|
||||
ra.UnidadesCompradas = 0
|
||||
ra.UnidadesVendidas = 0
|
||||
ra.UnidadesAlquiladas = 0
|
||||
ra.UnidadesAveriadas = 0
|
||||
ra.UnidadesDesechadas = 0
|
||||
ra.UnidadesSubAlquiladas = 0
|
||||
End If
|
||||
End If
|
||||
|
||||
' bdtmp.GuardarCambios()
|
||||
' Catch ex As Exception
|
||||
' Throw New Exception(ex.Message, ex)
|
||||
' End Try
|
||||
'End Sub
|
||||
bdtmp.GuardarCambios()
|
||||
Catch ex As Exception
|
||||
Throw New Exception(ex.Message, ex)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub ucProducto_EstadoCambiado(EstadoAnterior As tsUtilidades.EstadosAplicacion, EstadoNuevo As tsUtilidades.EstadosAplicacion) Handles Me.EstadoCambiado
|
||||
If idLog.HasValue Then
|
||||
@@ -288,22 +310,22 @@ Public Class ucProducto
|
||||
Private Sub ucProducto_EjecutarAccion(sender As Object, e As ItemClickEventArgs, idAccion As Integer) Handles Me.EjecutarAccion
|
||||
'Select Case idAccion
|
||||
' Case 1 ' AÑADIR PRODUCTOS AL DESGLOSE
|
||||
|
||||
|
||||
' Dim prsact = ra.DesgloseMaterial.Select(Function(x) x.idProducto).ToList
|
||||
' Dim maxasc = ra.NivelMaximoAscendientes
|
||||
' Dim lproductos = bd.productos.ToList.Where(Function(x) (maxasc + x.NivelMaximoDescendientes) < 3 AndAlso ra.ContieneAscendiente(x.idProducto) = False AndAlso prsact.Contains(x.idProducto) = False).ToList
|
||||
' Dim dxw As New dxwProductos(lproductos)
|
||||
' If dxw.ShowDialog Then
|
||||
' Dim prod = lproductos.First(Function(x) x.idProducto = dxw.idProducto)
|
||||
' Dim nd As New desgloseproductos
|
||||
' With nd
|
||||
' .idProductoNavigation = prod
|
||||
' .Unidades = 1
|
||||
' .UnidadesMaximas = 1
|
||||
' .UnidadesMinimas = 1
|
||||
' End With
|
||||
' ra.desgloseproductosidProductoNavigation.Add(nd)
|
||||
' ra.RefrescaCamposTemporales()
|
||||
' End If
|
||||
'End Select
|
||||
End Sub
|
||||
|
||||
Private Sub ucProducto_AntesGuardar(sender As Object, e As ItemClickEventArgs, ByRef Cancelar As Boolean, ByRef MensajesError As Hashtable, EliminacionManual As Integer) Handles Me.AntesGuardar
|
||||
ra.idEmpresa = EmpresaActual.idEmpresa
|
||||
Dim hte As New Hashtable
|
||||
ra.idEmpresa = EmpresaActual.idEmpresa
|
||||
Dim almexi = bd.productos.FirstOrDefault(Function(x) x.idProducto <> ra.idProducto AndAlso x.Descripcion = ra.Descripcion AndAlso x.idEmpresa = EmpresaActual.idEmpresa)
|
||||
If almexi IsNot Nothing Then
|
||||
hte.Add("ALMACENAR-PRODUCTO_DUPLIADO", "Producto Duplicado")
|
||||
End If
|
||||
If hte.Count > 0 Then
|
||||
MensajesError = hte
|
||||
Cancelar = True
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
@@ -60,14 +60,14 @@ Public Class ucProductos
|
||||
|
||||
Public Overrides Function EstableceDCPrincipal(Optional Background As Boolean = False, Optional FuerzaNuevo As Boolean = False, Optional Refrescar As Boolean = False) As tsUtilidades.EstadosAplicacion
|
||||
If Refrescar OrElse Background Then ObtieneproductosAsync(bd, Background)
|
||||
'If Me.ContenedorAplicacion.cbAcciones.ItemsSource Is Nothing Then
|
||||
' Dim Acciones As New List(Of tsWPFCore.Accion)
|
||||
' Acciones.Add(New Accion With {
|
||||
' .idAccion = 1,
|
||||
' .Descripcion = "CORREGIR STOCK"})
|
||||
' Me.ContenedorAplicacion.cbAcciones.ItemsSource = Acciones
|
||||
' Me.ContenedorAplicacion.beAcciones.EditValue = Acciones.First.idAccion
|
||||
'End If
|
||||
If Me.ContenedorAplicacion.cbAcciones.ItemsSource Is Nothing Then
|
||||
Dim Acciones As New List(Of tsWPFCore.Accion)
|
||||
Acciones.Add(New Accion With {
|
||||
.idAccion = 1,
|
||||
.Descripcion = "CORREGIR STOCK"})
|
||||
Me.ContenedorAplicacion.cbAcciones.ItemsSource = Acciones
|
||||
Me.ContenedorAplicacion.beAcciones.EditValue = Acciones.First.idAccion
|
||||
End If
|
||||
|
||||
Return tsUtilidades.EstadosAplicacion.AplicacionSinIndice
|
||||
|
||||
@@ -128,7 +128,7 @@ Public Class ucProductos
|
||||
End Sub
|
||||
Public Function Obtieneproductos(TextoBusqueda As String, IncluirBajas As Boolean) As List(Of productos)
|
||||
|
||||
Dim iqPr = bd.productos.Where(Function(x) x.idEmpresa = EmpresaActual.idEmpresa)
|
||||
Dim iqPr = bd.productos.AsQueryable
|
||||
If IncluirBajas Then iqPr = iqPr.Where(Function(x) x.FechaBaja Is Nothing).OrderBy(Function(x) x.Descripcion)
|
||||
Dim rs As List(Of productos)
|
||||
Do
|
||||
@@ -187,6 +187,19 @@ Public Class ucProductos
|
||||
teBusqueda.SelectAll()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Private Sub ucProductos_EjecutarAccion(sender As Object, e As ItemClickEventArgs, idAccion As Integer) Handles Me.EjecutarAccion
|
||||
Try
|
||||
Select Case idAccion
|
||||
Case 1 ' RECALCULA STOCKS DE TODOS LOS PRODUCTOS
|
||||
If DXSplashScreen.IsActive = False Then DXSplashScreen.Show(Of tsWPFCore.SplashScreenTecnosis)()
|
||||
DXSplashScreen.SetState("Recalculando stocks ...")
|
||||
Dim lp = bd.detallesalbaranes.Where(Function(x) x.idAlbaranRecogida.HasValue = False).Select(Function(x) x.idProductoNavigation).Distinct().ToList()
|
||||
bdGrupoSanchoToro.db.productos.RecalculaStocks(bd, lp)
|
||||
DXSplashScreen.Close()
|
||||
End Select
|
||||
Catch ex As Exception
|
||||
If DXSplashScreen.IsActive Then DXSplashScreen.Close()
|
||||
FuncionesDinamicas.ErrorNoControladoAp(Me, ex)
|
||||
End Try
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user