Commit inicial Ventas Productivo

This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2019-08-14 16:40:54 -07:00
commit c35cf91883
13328 changed files with 3711549 additions and 0 deletions

543
Inventarios/Apartados.aspx Normal file
View File

@@ -0,0 +1,543 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Apartados.aspx.vb" Inherits="Inventarios_Apartados" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Apartados | Apartado - Desapartado
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<ajax:TabContainer ID="Tab" runat="server" ActiveTabIndex="0" Width="100%">
<ajax:TabPanel ID="TabApartado" runat="server" HeaderText="Apartado">
<ContentTemplate>
<%--DATOS GENERALES--%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row">
<div class="col-md-6" style="min-width: 650px;">
<div class="portlet light smmallpadding traspasorow bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">apartado de mercancía</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body rowpadding">
<div class="row">
<label class="col-md-2">Fecha:</label>
<div class="col-md-3" style="padding-left: 5px;">
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy">
<asp:TextBox ID="TxtFecha" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" ValidationGroup="GrpGuardar" Width="100px" ClientIDMode="Static"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton runat="server" ID="ImgFecha" class="btn default"> <i class="fa fa-calendar"></i> </asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFecha" runat="server" TargetControlID="TxtFecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFecha" TargetControlID="TxtFecha" PopupButtonID="ImgFecha" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFecha" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFecha2" runat="server" HighlightCssClass="vco" TargetControlID="CVFecha" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
<div class="row">
<div class="col-md-2">
Sucursal:
</div>
<div class="col-md-3">
<asp:DropDownList ID="DdlSubProyecto" OnSelectedIndexChanged="DdlSubProyecto_SelectedIndexChanged" AutoPostBack="true" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" CssClass="form-control input-sm select2me"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVSucursal" runat="server" ControlToValidate="DdlSubProyecto" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Sucursal''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCESucursal" runat="server" HighlightCssClass="vco" TargetControlID="RFVSucursal" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row">
<label class="col-md-2">Almacén Origen:</label>
<div class="col-md-3">
<asp:DropDownList ID="DdlAlmacenOrigen" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacenOrigen" runat="server" ControlToValidate="DdlAlmacenOrigen" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen Origen''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEAlmacenOrigen" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacenOrigen" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<label class="col-md-2">Almacén Destino:</label>
<div class="col-md-3">
<asp:DropDownList ID="DdlAlmacenDestino" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me" Enabled="false"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacenDestino" runat="server" ControlToValidate="DdlAlmacenDestino" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen Destino''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOAlmacenDestino" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacenDestino" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row">
<label class="col-md-2">Cliente:</label>
<div class="col-md-3">
<asp:DropDownList ID="DdlCliente" OnSelectedIndexChanged="DdlCliente_SelectedIndexChanged" AutoPostBack="true" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="Nombre" DataValueField="CveCliente" CssClass="form-control input-sm select2me"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVCliente" runat="server" ControlToValidate="DdlCliente" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cliente''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCECliente" runat="server" HighlightCssClass="vco" TargetControlID="RFVCliente" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<label class="col-md-2">Vendedor:</label>
<div class="col-md-3">
<asp:DropDownList ID="DdlVendedor" Width="150px" runat="server" DataTextField="Vendedor" DataValueField="CveVendedor" CssClass="form-control input-sm select2me"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVVendedor" runat="server" ControlToValidate="DdlVendedor" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Vendedor''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEVendedor" runat="server" HighlightCssClass="vco" TargetControlID="RFVVendedor" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row">
<label class="col-md-2">Observaciones:</label>
<div class="col-md-4">
<asp:TextBox ID="TxtObservaciones" TextMode="MultiLine" Rows="2" runat="server" Width="400px"></asp:TextBox>
</div>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row" runat="server" id="DivCodigoSeriePS">
<%--ADVERTENCIA DE ALMACEN DE APARTADOS--%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="col-md-8" style="vertical-align: middle;" align="center">
<div style="z-index: 5; position: relative;">
<div id="DivAdvertencia" visible="false" clientidmode="Static" runat="server" class="alert alert-warning" style="padding: 5px; margin-bottom: 5px; padding-right: 25px;">
<button type="button" class="close" data-dismiss="alert" style="margin-top: 5px;" aria-hidden="true"></button>
<strong style="font-size: 20px; margin-right: 25px;">Información: </strong>
<asp:Literal Text="No se encontró un almacen de apartado de la sucursal" runat="server" ID="LtAdvertencia"></asp:Literal>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%--AGREGAR CON CODIGO DE BARRAS--%>
<div class="col-md-4 pull-right">
<table style="float: right;">
<tr>
<td><i class="fa fa-barcode" style="font-size: 1.8em; margin-top: 8px;" aria-hidden="true" data-toggle="tooltip" title="Código Barras"></i></td>
<td>
<asp:Panel ID="PanelCodigo" runat="server" DefaultButton="BtnCodigoPS">
<asp:TextBox ID="TxtCodigoPS" CssClass="form-control input-sm" ClientIDMode="Static" Text="" runat="server" />
<asp:Button Text="" ID="BtnCodigoPS" OnClick="BtnCodigoPS_Click" Style="display: none" runat="server" />
</asp:Panel>
</td>
<td runat="server" visible="false" id="TdSeriePS">
<asp:Panel ID="PanelSerie" runat="server" DefaultButton="BtnSeriePS">
<asp:TextBox ID="TxtSeriePS" Text="" runat="server" />
<asp:Button Text="" ID="BtnSeriePS" OnClick="BtnSeriePS_Click" Style="display: none" runat="server" />
</asp:Panel>
</td>
</tr>
</table>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%--GV DATOS APARTADOS--%>
<asp:UpdatePanel runat="server" ID="UpDatos" UpdateMode="Conditional">
<ContentTemplate>
<table border="0" cellpadding="0" class="Widthall grides" cellspacing="0">
<thead>
<tr class="Titulos">
<th width="25px">#</th>
<th width="100px">Cantidad</th>
<th width="90px">Unidad</th>
<th width="500px">Clasificación
<br />
Producto
</th>
<th style="width: 90px" runat="server" id="ThSerieLote" visible="false">Serie - Lote
</th>
<th width="160px">Comandos</th>
</tr>
</thead>
<tr>
<td></td>
<td align="center">
<asp:TextBox ID="txtCantidad" Width="50px" MaxLength="5" runat="server"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="ftbeCant" runat="server" TargetControlID="txtCantidad" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator runat="server" ID="RFVCantidad" ControlToValidate="txtCantidad" ValidationGroup="GrpAgregar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario por favor introdúzcalo." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOCantidad" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
<asp:RangeValidator ID="RVCantidad" runat="server" ControlToValidate="txtCantidad" Display="None" Type="Double" MinimumValue="0.1" MaximumValue="2147483647" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor introdúzcalo." ValidationGroup="GrpAgregar"></asp:RangeValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidad" runat="server" HighlightCssClass="vco" TargetControlID="RVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td>
<asp:DropDownList ID="DdlUnidad" runat="server" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" CssClass="form-control input-sm select2me" Style="width: 85px !important;"></asp:DropDownList>
</td>
<td style="text-align: left;">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="psagregar">
<div class="comboxes" style="max-width: 500px !important; text-align: center; margin: auto;">
<asp:DropDownList ID="DdlClasificacion" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" CssClass="form-control input-sm select2me">
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList>
<br />
<ADS:Dropdownlost runat="server" ID="DdlProducto2" CssStyle="width: 100%;" CssClassDdl="select2me" DataTextField="PSCodigo" DataValueField="CvePS" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</td>
<td runat="server" id="TdSerieLote" visible="false">
<asp:Panel runat="server" DefaultButton="BtnSerieAddNew">
<asp:TextBox ID="TxtnSerieLote" Visible="false" runat="server" Width="80px"></asp:TextBox>
<asp:Button Text="" ID="BtnSerieAddNew" OnClick="BtnSerieAddNew_Click" Style="display: none" runat="server" />
</asp:Panel>
</td>
<td align="center">
<asp:LinkButton ID="LbAgregar" runat="server" CssClass="Texto" ValidationGroup="GrpAgregar" Text="Agregar" />
</td>
</tr>
</table>
<div style="max-height: 300px; overflow-y: auto;">
<asp:GridView ID="GvDatos" DataKeyNames="No,PS,CvePS,CveUM,SerieLote,Cantidad" runat="server" ShowHeader="false" AutoGenerateColumns="False" EmptyDataText="" ToolTip="Listado de Movimientos" CssClass="Widthall table table-striped table-hover" GridLines="None">
<Columns>
<asp:BoundField HeaderText="#" DataField="No" ItemStyle-Width="25px" />
<asp:TemplateField ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Literal runat="server" Text='<%# Eval("Cantidad") %>' ID="ltlCantidad"></asp:Literal>
<asp:TextBox runat="server" ID="TxtCantidad2" Text='<%# Eval("Cantidad", "{0:###,###,###,##0.##}") %>' Width="50px" Visible="false"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumerosCantidadF" runat="server" TargetControlID="TxtCantidad2" FilterType="Numbers,custom" ValidChars="." />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Unidad" DataField="UnidadMedida" ItemStyle-Width="90px" />
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-Width="500px" />
<asp:BoundField HeaderText="SerieLote" DataField="SerieLote" ItemStyle-Width="90px" />
<asp:TemplateField HeaderText="Sección Almacén" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" Visible="false">
<ItemTemplate>
<asp:LinkButton data-toggle="tooltip" title="Sección Almacen" ID="LnkSeccionAlmacen" OnClick="LnkSeccionAlmacen_Click" CssClass="btn btn-circle btn-xs green" runat="server" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkRemove" runat="server" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" CommandName="Delete" CommandArgument='<%# Eval("No")%>' data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el concepto?" data-btn-ok-label="si"></asp:LinkButton>
</ItemTemplate>
<ItemStyle Width="160px" HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<br />
<%--ACCIONES APARTADOS--%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row" style="text-align: center;">
<div class="col-md-12">
<asp:Button Text="Nuevo" CssClass="btn btn-success" ID="BtnNuevo" OnClick="BtnNuevo_Click" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea generar un nuevo apartado?, perdera toda la información no guardada" data-btn-ok-label="si" runat="server" />
<asp:Button Text="Apartar Mercancía" CssClass="btn btn-primary" ValidationGroup="GrpGuardar" ID="BtnGuardar" runat="server" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabDesarmado" runat="server" HeaderText="Desapartado">
<ContentTemplate>
<%--FILTROS--%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle magindate">
<div class="tools">
<asp:Button ID="BtnVerificarExistenciasDesarmado" OnClick="BtnVerificarExistenciasDesarmado_Click" runat="server" Text="Verificar Existencias" ValidationGroup="GrpCargarApartados" class="btn btn-primary" />
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1" style="max-width: 70px">Sucursal:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlSubProyectoDesapartado" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" CssClass="form-control input-sm select2me"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVSucursalDesapartado" runat="server" ControlToValidate="DdlSubProyectoDesapartado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Sucursal''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpCargarApartados"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCESucursalDesapartado" runat="server" HighlightCssClass="vco" TargetControlID="RFVSucursalDesapartado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1" style="max-width: 70px">Cliente</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlClienteDesapartado" OnSelectedIndexChanged="DdlClienteDesapartado_SelectedIndexChanged" AutoPostBack="true" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="Nombre" DataValueField="CveCliente" CssClass="form-control input-sm select2me"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVFClienteDesapartado" runat="server" ControlToValidate="DdlClienteDesapartado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cliente''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpCargarApartados"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEFClienteDesapartado" runat="server" HighlightCssClass="vco" TargetControlID="RFVFClienteDesapartado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1" style="max-width: 70px">Vendedor:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlVendedorDesapartado" Width="150px" runat="server" DataTextField="Vendedor" DataValueField="CveVendedor" CssClass="form-control input-sm select2me"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVVendedorDesapartado" runat="server" ControlToValidate="DdlVendedorDesapartado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Vendedor''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpCargarApartados"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEVendedorDesapartado" runat="server" HighlightCssClass="vco" TargetControlID="RFVVendedorDesapartado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%--DATOS GENERALES--%>
<asp:UpdatePanel ID="UpDatosGenerales" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-6">
<div class="portlet light smmallpadding traspasorow bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">desapartado de mercancía</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body rowpadding">
<div class="row">
<label class="col-md-2">Fecha:</label>
<div class="col-md-3" style="padding-left: 5px;">
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy">
<asp:TextBox ID="TxtFechaDesapartado" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" ValidationGroup="GrpGuardarDesapartado" Width="100px" ClientIDMode="Static" Enabled="false"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton runat="server" ID="LBFechaDesapartado" class="btn default" Enabled="false"> <i class="fa fa-calendar"></i> </asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaDesapartado" runat="server" TargetControlID="TxtFechaDesapartado" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaDesapartado" TargetControlID="TxtFechaDesapartado" PopupButtonID="ImgFecha" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaDesapartado" runat="server" ControlToValidate="TxtFechaDesapartado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarDesapartado"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCE1FechaDesapartado" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaDesapartado" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:CompareValidator ID="CVFechaDesapartado" runat="server" ControlToValidate="TxtFechaDesapartado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardarDesapartado"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCE2FechaDesapartado" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaDesapartado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
<div class="row">
<div class="col-md-2">
Sucursal:
</div>
<div class="col-md-3">
<asp:Label ID="LblSucursal" runat="server"></asp:Label>
</div>
</div>
<div class="row">
<label class="col-md-2">Almacén Destino:</label>
<div class="col-md-3">
<asp:DropDownList ID="DdlAlmacenDestinoDesapartado" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacenOrigenDesapartado" runat="server" ControlToValidate="DdlAlmacenDestinoDesapartado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen Destino''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardarDesapartado"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEAlmacenOrigenDesapartado" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacenOrigenDesapartado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row">
<label class="col-md-2">Observaciones:</label>
<div class="col-md-4">
<asp:TextBox ID="TxtObservacionesDesapartado" TextMode="MultiLine" Rows="2" runat="server" Width="400px"></asp:TextBox>
</div>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%--GV DATOS APARTADOS--%>
<div class="row">
<div class="col-md-10 col-md-offset-1">
<asp:UpdatePanel runat="server" ID="UpDatosDesapartado" UpdateMode="Conditional">
<ContentTemplate>
<div style="max-height: 300px; overflow-y: auto;">
<asp:GridView ID="GvDatosDesapartado" DataKeyNames="CvePS,CveUM,CveMovimientoDetalle,SerieLote,PU,Cantidad" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontró mercancía apartada" ToolTip="Listado de Movimientos" CssClass="Widthall table table-striped table-hover" GridLines="None">
<Columns>
<asp:BoundField HeaderText="#" DataField="No" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="5%" />
<asp:BoundField HeaderText="Disponible" DataField="Cantidad" DataFormatString="{0:#,###.##}" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" />
<asp:TemplateField HeaderText="Cantidad" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:TextBox runat="server" ID="TxtCantidad" Text="" Width="50px"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumerosCantidadF" runat="server" TargetControlID="TxtCantidad" FilterType="Numbers,custom" ValidChars="." />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Unidad" DataField="UnidadMedida" ItemStyle-Width="15%" />
<asp:BoundField HeaderText="Producto" DataField="CodigoPS" ItemStyle-Width="35%" />
<asp:BoundField HeaderText="SerieLote" DataField="SerieLote" ItemStyle-Width="20%" />
<asp:TemplateField HeaderText="Sección Almacén" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" Visible="false">
<ItemTemplate>
<asp:LinkButton data-toggle="tooltip" title="Sección Almacen" ID="LnkSeccionAlmacen" OnClick="LnkSeccionAlmacenDestino_Click" CssClass="btn btn-circle btn-xs green" runat="server" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<br />
<br />
<%--ACCIONES DESAPARTADOS--%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row" style="text-align: center;">
<div class="col-md-12">
<asp:Button Text="Desapartar Mercancía" CssClass="btn btn-primary" ValidationGroup="GrpGuardarDesapartado" ID="BtnGuardarDesapartado" runat="server" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
</ajax:TabContainer>
<%--SECCION DE ALMACEN--%>
<div id="DModalSeccionAlmacen" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpModalSeccionAlmacen" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<h4 class="modal-title">
<asp:Literal ID="LtlSeccionAlmacen" Text="Sección Almacen" runat="server"> </asp:Literal></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-2">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtCantidadSeccion" CssClass="form-control" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvCantidadSeccion" runat="server" ControlToValidate="TxtCantidadSeccion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="VgmSeccion"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoCantidadSeccion" runat="server" HighlightCssClass="vco" TargetControlID="RfvCantidadSeccion"></ajax:ValidatorCalloutExtender>
<asp:RangeValidator ID="RVTxtCantidad" runat="server" ControlToValidate="TxtCantidadSeccion" MinimumValue="0" MaximumValue="1" Type="Double" Text="<b><span style='text-decoration: underline'>ERROR:</span></b><br />No cuenta con la cantidad suficiente." ValidationGroup="VgmSeccion" />
<label for="<%= TxtCantidadSeccion.ClientID.ToString()%>">Cantidad:</label>
</div>
</div>
<div class="col-md-4" runat="server" id="DivSeccionAlmacenOrigen">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlSeccionAlmacenOrigen" CssClass="form-control select2me" AppendDataBoundItems="true" Style="width: 100%;" runat="server" DataTextField="Seccion" DataValueField="CveSeccion">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RfvSeccionAlmacenOrigen" runat="server" ControlToValidate="DdlSeccionAlmacenOrigen" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Sección Almacen Origen''</b> es necesario, por favor ingréselo." ValidationGroup="VgmSeccion"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoSeccionAlmacenOrigen" runat="server" HighlightCssClass="vco" TargetControlID="RfvSeccionAlmacenOrigen"></ajax:ValidatorCalloutExtender>
<label for="<%= DdlSeccionAlmacenOrigen.ClientID.ToString()%>">Sección Almacen O.:</label>
</div>
</div>
<div class="col-md-4" runat="server" id="DivSeccionAlmacenDestino" visible="false">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlSeccionAlmacenDestino" CssClass="form-control select2me" AppendDataBoundItems="true" Style="width: 100%;" runat="server" DataTextField="Seccion" DataValueField="CveSeccion">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RfvSeccionAlmacenDestino" runat="server" ControlToValidate="DdlSeccionAlmacenDestino" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Sección Almacen Destino''</b> es necesario, por favor ingréselo." ValidationGroup="VgmSeccion"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VceSeccionAlmacenDestino" runat="server" HighlightCssClass="vco" TargetControlID="RfvSeccionAlmacenDestino"></ajax:ValidatorCalloutExtender>
<label for="<%= DdlSeccionAlmacenDestino.ClientID.ToString()%>">Sección Almacen D.:</label>
</div>
</div>
<div class="col-md-2">
<asp:LinkButton ID="LnkAddSeccionAlmacen" data-toggle="tooltip" CssClass="btn btn-default btn-circle btn-xs " OnClick="LnkAddSeccionAlmacen_Click" data-placement="top" ToolTip="Agregar Sección Almacen" runat="server" ValidationGroup="VgmSeccion"><i class="fa fa-plus" style="color:black" aria-hidden="true"></i></asp:LinkButton>
</div>
</div>
<br />
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvSeccion" runat="server" GridLines="None" ShowHeaderWhenEmpty="true"
CssClass="table table-hover table-striped ScrollAD mysmallbtn" Width="100%" data-sort="true"
AutoGenerateColumns="False" EmptyDataText="No se han agregado datos"
DataKeyNames="Consec">
<Columns>
<asp:BoundField DataField="CantidadSeccionAlmacen" HeaderText="Cantidad" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.##}" />
<asp:BoundField DataField="SeccionAlmacenOrigen" HeaderText="Sección Almacen Origen" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="SeccionAlmacenDestino" HeaderText="Sección Almacen Destino" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="LnkEliminarSeccion" runat="server" OnClick="LnkEliminarSeccion_Click" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar la sección?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script src="/Metronic/assets/global/plugins/jquery.pulsate.min.js"></script>
<script type="text/javascript">
function pageLoad() {
$(document).ready(function () {
if ($('#DivAdvertencia')) {
$("#DivAdvertencia").pulsate("destroy");
jQuery('#DivAdvertencia').pulsate({
color: "#faebcc"
});
}
});
}
function ValidaCantidad(input, valorInicial) {
var ValorActual = input.value;
if (ValorActual > valorInicial) {
input.value = valorInicial;
}
}
function ImprimirTraslado(clave) {
$get('BtnImprimirTraspaso').click();
}
function Focus() {
$('#TxtCodigoPS').focus()
}
function Focus1() {
$('#TxtCodigoPSRecepcion').focus()
}
function Focus2() {
$('#TxtSeriePSRecepcion').focus()
}
function playsonidito(NomArchivo) {
var URL = /Sonidos/ + NomArchivo
var snd = new Audio(URL);
snd.play();
snd.currentTime = 0;
}
</script>
</asp:Content>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,337 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="CatAlmacenes.aspx.vb" Inherits="Inventarios_CatAlmacenes" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.Widthall {
width: 100% !important;
}
.dataTables_scrollHeadInner {
width: 100% !important;
background-color: #dddddd;
padding-left: 0px !important;
}
.dataTables_scrollFoot {
display: none;
position: static;
}
.table-scrollable {
margin: 0px !important;
}
.dataTables_scroll {
margin-bottom: 0px;
}
.table.dataTable {
margin-top: 0px !important;
}
.dataTables_scrollBody table th {
padding: 0px !important;
padding-right: 4px !important;
padding-left: 4px !important;
}
.sinlink td a {
pointer-events: none;
cursor: default;
color: black;
font-size: small;
}
.white a {
color: white !important;
}
.btn-verde {
color: #32c5d2;
background-color: #fff;
border-color: #32c5d2;
}
.btn-verde .fa-plus {
color: #32c5d2 !important;
}
.btn-verde:hover {
color: #fff;
background-color: #32c5d2;
border-color: #32c5d2;
}
.btn-verde:hover .fa-plus {
color: white !important;
}
.Excede {
overflow: hidden;
text-overflow: ellipsis;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Catálogo de Almacén
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel ID="UppAddAcciones" runat="server">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkAlmacen" runat="server"><i class="fa fa-plus"></i> Agregar Almacén</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT smalltitle " style="">
<div class="tools">
<asp:Button ID="BtnConsultar" runat="server" Text="Consultar" class="btn btn-primary" />
<%-- <a href="javascript:;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" Checked="false" />--%>
</div>
<div class="titlefiltros caption">
<div class="row">
<%--<div class="col-md-1 truncate">
Sucursal:
</div>
<div class="col-md-2 ">
<asp:DropDownList ID="DdlSucursalFiltro" runat="server" AppendDataBoundItems="true" DataTextField="Sucursal" DataValueField="CveSucursal" CssClass="form-control input-small input-sm select2me" Width="100%">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>--%>
<div class="col-md-1 truncate">
SubProyecto:
</div>
<div class="col-md-2 ">
<asp:DropDownList ID="DdlSubProyectoFiltro" runat="server" AppendDataBoundItems="true" DataTextField="SubProyecto" DataValueField="CveSubProyecto" CssClass="form-control input-small input-sm select2me" Width="100%">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1 truncate">
Tipo Almacén:
</div>
<div class="col-md-2 ">
<asp:DropDownList ID="DdlTipoAlmacenFiltro" runat="server" AppendDataBoundItems="true" DataTextField="TipoAlmacen" DataValueField="CveTipoAlmacen" CssClass="form-control input-small input-sm select2me" Width="100%">
<asp:ListItem Selected="True" Text="Todas" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1 truncate">
Modalidad:
</div>
<div class="col-md-2 truncate">
<asp:DropDownList ID="DdlModalidadFiltro" runat="server" CssClass="form-control input-small input-sm select2me" Width="100%">
<asp:ListItem Text="Todas" Value="-1" Selected="True"> </asp:ListItem>
<asp:ListItem Text="Contable" Value="1"></asp:ListItem>
<asp:ListItem Text="No Contable" Value="0"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div align="Right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" DataKeyNames="CveAlmacen,IdCtaContable,Inventariable,Modalidad,CveTipoAlmacen,Almacen,Estatus,CveSubProyecto,Orden" EmptyDataText="No se encontraron Almacenes" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" data-sort="true" data-heighterror="300px" data-freezerows="1" GridLines="None">
<Columns>
<asp:TemplateField ItemStyle-Width="15%" HeaderText="Almacen">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlAlmacen" runat="server" Text='<%# Eval("Almacen") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%-- <asp:TemplateField ItemStyle-Width="10%" HeaderText="Sucursal">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlSucursal" runat="server" Text='<%# Eval("Sucursal", "{0}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>--%>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="SubProyecto">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlSubProyecto" runat="server" Text='<%# Eval("SubProyecto", "{0}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Tipo Almacen">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlTipoAlmacen" runat="server" Text='<%# Eval("TipoAlmacen", "{0}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="15%" HeaderText="Cuenta Contable">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlCuentaContable" runat="server" Text='<%# Eval("IdCtaContable") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="15%" HeaderText="Modalidad">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlModalidad" runat="server" Text='<%# Eval("Modalidad") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Inventariable">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlInventariable" runat="server" Text='<%# Eval("Inventariable") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Estatus">
<ItemTemplate>
<asp:Literal ID="LtlEstatus" runat="server" Text='<%# Eval("Estatus") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Fecha Ingreso">
<ItemTemplate>
<asp:Literal ID="LtlFechaIng" runat="server" Text='<%# Eval("FechaIng", "{0:d}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Usuario">
<ItemTemplate>
<asp:Literal ID="LtlUsuario" runat="server" Text='<%# Eval("Usuario") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" CssClass="btn btn-circle btn-xs green" OnClick="Edit_Click" Text="<i class='fa fa-pencil'></i>" />
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" OnClick="Delete_Click" CausesValidation="False" CssClass="btn btn-circle btn-xs red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:HiddenField ID="HdnModalidad" runat="server" Value="A" ClientIDMode="Static" />
<asp:HiddenField ID="HdnID" runat="server" Value="-1" ClientIDMode="Static" />
</ContentTemplate>
</asp:UpdatePanel>
<%--POPUP AGREGAR--%>
<div id="divAddAlmacen" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpAddAlmacen" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="myModalLabel" runat="server">Agregar Almacen</h4>
</div>
<div class="modal-body">
<asp:UpdatePanel ID="UpBodyAlmacen" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtAlmacen" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="50"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVAlmacen" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtAlmacen" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen''</b> es necesario, por favor ingréselo." ValidationGroup="GrpObligatorio"></asp:RequiredFieldValidator>
<label for="<%= TxtAlmacen.ClientID.ToString()%>">Almacen:</label>
</div>
<div class="row">
<div class="col-md-6">
<%-- <div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlSucursal" runat="server" AppendDataBoundItems="true" DataValueField="CveSucursal" DataTextField="Sucursal" ValidationGroup="GrpObligatorio" Width="100%" CssClass="form-control input-sm select2me"></asp:DropDownList>
<label for="<%= DdlSucursal.ClientID.ToString()%>">Sucursal:</label>
</div>
</div>--%>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlSubProyecto" runat="server" AppendDataBoundItems="true" DataValueField="CveSubProyecto" DataTextField="SubProyecto" ValidationGroup="GrpObligatorio" Width="100%" CssClass="form-control input-sm select2me"></asp:DropDownList>
<label for="<%= DdlSubProyecto.ClientID.ToString()%>">SubProyecto:</label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoAlmacen" runat="server" AppendDataBoundItems="true" DataValueField="CveTipoAlmacen" DataTextField="TipoAlmacen" ValidationGroup="GrpObligatorio" Width="100%" CssClass="form-control input-sm select2me"></asp:DropDownList>
<label for="<%= DdlTipoAlmacen.ClientID.ToString()%>">Tipo de Almacen:</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlModalidad" runat="server" CssClass="form-control input-sm select2me" Width="100%" AutoPostBack="true">
<asp:ListItem Text="Contable" Value="1"></asp:ListItem>
<asp:ListItem Selected="True" Text="Solo Existencia" Value="0"></asp:ListItem>
</asp:DropDownList>
<label for="<%= DdlModalidad.ClientID.ToString()%>">Modalidad:</label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright" id="divddlcc" visible="false" runat="server">
<asp:DropDownList ID="DdlCuentasContables" runat="server" AppendDataBoundItems="true" DataTextField="CtaCodigo" DataValueField="Id" Width="100%" ValidationGroup="GrpObligatorio" CssClass="form-control input-sm select2me"></asp:DropDownList>
<label for="<%= DdlCuentasContables.ClientID.ToString()%>">Cuenta Contable:</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlInventariable" runat="server" AppendDataBoundItems="true" DataValueField="Inventariable" ValidationGroup="GrpObligatorio" Width="100%" CssClass="form-control input-sm select2me">
<asp:ListItem Selected="True" Text="Si" Value="1"></asp:ListItem>
<asp:ListItem Text="No" Value="0"></asp:ListItem>
</asp:DropDownList>
<label for="<%= DdlInventariable.ClientID.ToString()%>">Inventariable:</label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright" style="width: 250px!important">
<asp:TextBox ID="TxtOrden" CssClass="form-control " Width="250px" runat="server" MaxLength="10" CausesValidation="true" Style="text-align: right!important" OnKeyup="FormatoMoneda(this);"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvTxtOrden" runat="server" ControlToValidate="TxtOrden" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Orden''</b> es necesario, por favor ingréselo." ValidationGroup="GrpObligatorio"></asp:RequiredFieldValidator>
<label for="<%= TxtOrden.ClientID.ToString()%>">Orden:</label>
<i></i>
</div>
</div>
</div>
<br />
<div class="form-group form-md-line-input input-iconright" id="divEstatus" runat="server">
<asp:CheckBox ID="ChkEstatus" runat="server" CssClass="form-control" />
<label for="<%= ChkEstatus.ClientID.ToString()%>">Estatus:</label>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="modal-footer">
<asp:UpdatePanel ID="UpFooter" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="BtnAgregarAlmacen" runat="server" CssClass="btn btn-primary" ValidationGroup="GrpObligatorio"> <i class='material-icons'>done_all</i> Agregar</asp:LinkButton>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script src="/Metronic/assets/global/scripts/datatable.js"></script>
<script src="/Metronic/assets/global/plugins/datatables/all.min.js"></script>
<script type="text/javascript">
//function OrdenarGV() {
// var Tam = TamañoVentana();
// var Alto = Tam.height - 270;
// if (Alto < 100) {
// Alto = 100;
// }
// $('#C_GvDatos').DataTable({
// scrollY: Alto + 'px',
// scrollCollapse: true,
// paging: false,
// searching: false,
// info: false
// });
// $('#C_GvDatos').parent().parent().children().first().css("position", "static");
//}
</script>
</asp:Content>

View File

@@ -0,0 +1,322 @@
Option Explicit On
Imports System.Data
Imports Extensiones
Partial Class Inventarios_CatAlmacenes
Inherits ClsPaginas
#Region " PROPIEDADES"
Private Property DtCuentasContables As Data.DataTable
Get
Return CType(ViewState("DtCuentasContables"), DataTable)
End Get
Set(value As Data.DataTable)
ViewState("DtCuentasContables") = value
End Set
End Property
'Private Property DtSubProyectos As DataTable
' Get
' Return If(IsNothing(ViewState("DtSubProyectos")), Nothing, CType(ViewState("DtSubProyectos"), DataTable))
' End Get
' Set(value As DataTable)
' ViewState("DtSubProyectos") = value
' End Set
'End Property
'Private Property CveSucursal As Integer
' Get
' If ViewState("CveSucursal") Is Nothing Then
' Return -1
' Else
' Return ViewState("CveSucursal").ToString.ToEntero
' End If
' End Get
' Set(value As Integer)
' ViewState("CveSucursal") = value
' End Set
'End Property
#End Region
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
ViewState("Orden") = ""
CargaCuentasContables()
CargaSubProyectos()
CargaTipoAlmacen()
CargaDatos()
End If
End Sub
Public Sub CargaDatos()
Dim ObjAlmacen As New ClsInventarios
If ObjAlmacen.GetAlmacenes(-1, -1, UsuarioActual.CveEmpresa, -1) Then
GvDatos.DataSource = ObjAlmacen.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
Else
GvDatos.DataSource = Nothing
End If
GvDatos.DataBind()
ObjAlmacen.Dispose()
End Sub
#Region "C O M B O S"
Private Sub CargaSubProyectos()
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlSubProyectoFiltro.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlSubProyectoFiltro.DataBind()
DdlSubProyecto.DataBind()
End Sub
Private Sub CargaTipoAlmacen()
DdlTipoAlmacen.DataSource = GlobalDTTipoAlmacen(-1)
DdlTipoAlmacenFiltro.DataSource = GlobalDTTipoAlmacen(-1)
DdlTipoAlmacenFiltro.DataBind()
DdlTipoAlmacen.DataBind()
End Sub
Private Sub CargaCuentasContables()
Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa)
'UsuarioActual.Empresa.Funcionalidad(208).ToEntero
If ObjContabilidad.GetCuentasRecursiva(UsuarioActual.Empresa.Funcionalidad(208).ToEntero, 1) Then
DtCuentasContables = ObjContabilidad.DtResultados
Else
DtCuentasContables = Nothing
End If
ObjContabilidad.Dispose()
DdlCuentasContables.DataSource = DtCuentasContables
DdlCuentasContables.DataBind()
UpAddAlmacen.Update()
End Sub
#End Region
#Region "G V D A T O S"
Protected Sub GvDatos_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
'If e.Row.RowIndex <= 1 Then
' e.Row.Cells(0).Width = Unit.Pixel(230)
' e.Row.Cells(1).Width = Unit.Pixel(170)
' e.Row.Cells(2).Width = Unit.Pixel(170)
' e.Row.Cells(3).Width = Unit.Pixel(100)
' e.Row.Cells(4).Width = Unit.Pixel(100)
' e.Row.Cells(5).Width = Unit.Pixel(65)
' e.Row.Cells(6).Width = Unit.Pixel(65)
' e.Row.Cells(7).Width = Unit.Pixel(65)
'End If
If e.Row.RowState = DataControlRowState.Alternate OrElse e.Row.RowState = DataControlRowState.Normal Then
'e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
'e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center
'e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Center
'e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Center
'e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Center
'e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Center
'e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Center
'e.Row.Cells(7).HorizontalAlign = HorizontalAlign.Center
If e.Row.DBCampo("IdCtaContable").ToEntero > 0 Then
e.Row.FCLiteral("LtlCuentaContable").Text = DtCuentasContables.FiltroPrimeroValor("CtaCodigo", $"Id = {e.Row.DBCampo("IdCtaContable")}")
Else
e.Row.FCLiteral("LtlCuentaContable").Text = "Sin Cuenta"
End If
End If
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.FCLiteral("LtlInventariable").Text = "True" Then
e.Row.FCLiteral("LtlInventariable").Text = "Si"
Else
e.Row.FCLiteral("LtlInventariable").Text = "No"
End If
End If
'Cargar Combos al Editar
If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
'e.Row.FCDropDownList("DdlSucursal").DataSource = GlobalDTSucursales.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
'e.Row.FCDropDownList("DdlSucursal").DataBind()
'e.Row.FCDropDownList("DdlSucursal").SelectedValue = e.Row.DBCampo("CveSucursal")
e.Row.FCDropDownList("DdlTipoAlmacen").DataSource = GlobalDTTipoAlmacen(-1)
e.Row.FCDropDownList("DdlTipoAlmacen").DataBind()
e.Row.FCDropDownList("DdlTipoAlmacen").SelectedValue = e.Row.DBCampo("CveTipoAlmacen")
e.Row.FCDropDownList("DdlCuentasContables").DataSource = DtCuentasContables
e.Row.FCDropDownList("DdlCuentasContables").DataBind()
e.Row.FCDropDownList("DdlCuentasContables").Items.Add(New ListItem("Seleccione", "-1"))
e.Row.FCDropDownList("DdlCuentasContables").SelectedValue = e.Row.DBCampo("IdCtaContable")
'e.Row.FCDropDownList("DdlModalidad").DataSource =
'e.Row.FCDropDownList("DdlModalidad").DataBind()
e.Row.FCDropDownList("DdlModalidad").Items.Add(New ListItem("Solo Existencia", "0"))
e.Row.FCDropDownList("DdlModalidad").Items.Add(New ListItem("Contable", "1"))
e.Row.FCDropDownList("DdlModalidad").SelectedValue = If(e.Row.DBCampo("Modalidad").ToString = "Contable", "1", "0")
End If
End If
End Sub
#End Region
#Region "O R D E N A M I E N T O"
'Private Sub OrdenaDatos()
' If (GvDatos.Rows.Count > 0) Then
' GvDatos.UseAccessibleHeader = True
' GvDatos.HeaderRow.TableSection = TableRowSection.TableHeader
' RegistraScript("OrdenarGV();")
' End If
'End Sub
#End Region
Private Sub RecargaGlobalAlmacenes()
Dim ObjAlmacen As New ClsInventarios
If ObjAlmacen.GetAlmacenes(-1, -1, -1, -1) Then
GlobalDTAlmacen(-1) = ObjAlmacen.DtResultados
End If
ObjAlmacen.Dispose()
End Sub
Private Sub RecargaGlobalAlmacenesUsuarios()
Dim ObjUsuarios As New ClsSisUsuarios
If ObjUsuarios.GetAlmacen(-1) Then
Application("GlobalDTAlmacenUsuarios") = ObjUsuarios.DtResultados
End If
ObjUsuarios.Dispose()
End Sub
'Private Sub CargaSucursal()
' DtSubProyectos = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("CveSubProyecto =" & DdlSubProyecto.SelectedValue.ToEntero)
' Dim dr As DataRow
' dr = DtSubProyectos(0)
' CveSucursal = dr("CveSucursal").ToString.ToEntero
'End Sub
Private Sub BtnAgregarAlmacen_Click(sender As Object, e As EventArgs) Handles BtnAgregarAlmacen.Click
'CargaSucursal()
Dim ObjAlmacen As New ClsInventarios
Dim TieneError = False
Dim Estatus = 0
If ChkEstatus.Checked Then Estatus = 1
Dim CuentaContable = DdlCuentasContables.SelectedValue.ToEntero
If divddlcc.Visible = False Then
CuentaContable = 0
End If
If HdnModalidad.Value = "A" Then
If ObjAlmacen.AddAlmacen(TxtAlmacen.Text.Trim, DdlTipoAlmacen.SelectedValue.ToEntero, CuentaContable, DdlModalidad.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CByte(DdlInventariable.SelectedValue), DdlSubProyecto.SelectedValue.ToEntero, TxtOrden.Text.ToEntero) Then
Alert("El nuevo Almacen se guardó correctamente.", TipoMensaje.MsgInformacion)
UpDatos.Update()
ViewState("DTAlmacenes") = ObjAlmacen.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddAlmacen"))
CargaDatos()
'OrdenaDatos()
Else
TieneError = True
End If
ElseIf ObjAlmacen.UpdateAlmacen(TxtAlmacen.Text.Trim, DdlTipoAlmacen.SelectedValue.ToEntero, CuentaContable, DdlModalidad.SelectedValue.ToEntero, (CByte(Estatus)), HdnID.Value.ToEntero, CByte(DdlInventariable.SelectedValue), DdlSubProyecto.SelectedValue.ToEntero, TxtOrden.Text.ToEntero) Then
Alert("El Almacen se actualizo correctamente.", TipoMensaje.MsgInformacion)
UpDatos.Update()
ViewState("DTAlmacenes") = ObjAlmacen.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddAlmacen"))
CargaDatos()
'OrdenaDatos()
End If
ObjAlmacen.Dispose()
RecargaGlobalAlmacenes()
RecargaGlobalAlmacenesUsuarios()
End Sub
Public Sub Agregar()
HdnModalidad.Value = "A"
UpDatos.Update()
If DdlModalidad.SelectedValue = 1 Then
DdlCuentasContables.Visible = True
End If
BtnAgregarAlmacen.Text = "Agregar"
myModalLabel.InnerText = "Agregar Almacen"
TxtAlmacen.Text = ""
TxtOrden.Text = ""
ChkEstatus.Checked = True
divEstatus.Visible = False
UpAddAlmacen.Update()
RegistraScript(String.Format("$('#{0}').modal('show');", "divAddAlmacen"))
End Sub
Public Sub Delete_Click(sender As Object, e As EventArgs)
Dim ObjInv As New ClsInventarios()
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
HdnID.Value = GvRow.DataKey("CveAlmacen")
UpDatos.Update()
If ObjInv.RemoveAlmacen(HdnID.Value.ToEntero) Then
CargaDatos()
End If
Alert("Eliminado Correctamente.", TipoMensaje.MsgInformacion)
ObjInv.Dispose()
UpDatos.Update()
End Sub
Public Sub Edit_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
HdnModalidad.Value = "U"
HdnID.Value = GvRow.DataKey("CveAlmacen")
UpDatos.Update()
BtnAgregarAlmacen.Text = "Actualizar"
myModalLabel.InnerText = "Actualizar Almacen"
DdlInventariable.SelectedValue = If((GvRow.DataKey("Inventariable")) = "True", 1, 0)
DdlModalidad.SelectedValue = If((GvRow.DataKey("Modalidad")) = "Solo Existencia", 0, 1)
divddlcc.Visible = If((DdlModalidad.SelectedValue) = 1, True, False)
DdlCuentasContables.SelectedValueExist(GvRow.DataKey("IdCtaContable"))
DdlSubProyecto.SelectedValueExist(GvRow.DataKey("CveSubProyecto"))
DdlTipoAlmacen.SelectedValueExist(GvRow.DataKey("CveTipoAlmacen"))
TxtAlmacen.Text = GvRow.DataKey("Almacen")
TxtOrden.Text = GvRow.DataKey("Orden")
divEstatus.Visible = True
ChkEstatus.Checked = If((GvRow.DataKey("Estatus")) = "Activo", True, False)
UpAddAlmacen.Update()
RegistraScript(String.Format("$('#{0}').modal('show');", "divAddAlmacen"))
End Sub
Private Sub LnkAlmacen_Click(sender As Object, e As EventArgs) Handles LnkAlmacen.Click
Agregar()
End Sub
Private Sub DdlModalidad_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlModalidad.SelectedIndexChanged
If DdlModalidad.SelectedValue = 1 Then
divddlcc.Visible = True
Else
divddlcc.Visible = False
End If
UpAddAlmacen.Update()
End Sub
Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
Dim ObjAlmacen As New ClsInventarios
If ObjAlmacen.GetAlmacenes(DdlTipoAlmacenFiltro.SelectedValue, DdlModalidadFiltro.SelectedValue, UsuarioActual.CveEmpresa, DdlSubProyectoFiltro.SelectedValue.ToEntero) Then
GvDatos.DataSource = ObjAlmacen.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
GvDatos.DataBind()
Else
GvDatos.DataSource = Nothing
End If
ObjAlmacen.Dispose()
UpDatos.Update()
'OrdenaDatos()
End Sub
End Class

142
Inventarios/CatGrupoPS.aspx Normal file
View File

@@ -0,0 +1,142 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="CatGrupoPS.aspx.cs" Inherits="Inventarios_CatGrupoPSaspx" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Catalogo de Grupos de Productos
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkAddGrupoPS" OnClick="LnkAddGrupoPS_Click" runat="server"><i class="fa fa-plus"></i>Agregar Grupo</asp:LinkButton></li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvGrupoPS.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvGrupoPS.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:GridView ID="GvGrupoPS" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD mysmallbtn" data-sort="true" Width="100%" AutoGenerateColumns="False"
DataKeyNames="CveGrupoPS,Descripcion,FechaIng,Estatus,CveUsuario,Usuario,CveEmpresa" OnRowDataBound="GvGrupoPS_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Descripción" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="LblDescripcion" runat="server" Text='<%# Eval("Descripcion")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="FechaIng" ItemStyle-Width="15%" HeaderText="Fecha de Ingreso" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:TemplateField HeaderText="Estatus" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lblestatus" runat="server" Text='<%# Eval("Estatus")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Usuario" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblusuario" runat="server" Text='<%# Eval("Usuario")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton data-toggle="tooltip" title="Editar" ID="LnkEditar" OnClick="LnkEditar_Click" CssClass="btn btn-circle btn-sm green" runat="server" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>
<asp:LinkButton ID="LnkEliminar" runat="server" OnClick="LnkEliminar_Click" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar el grupo ps?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<div id="DModalGrupoPS" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpModal" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<h4 class="modal-title">
<asp:Literal ID="ltlMotititulo" Text="Grupo de Productos" runat="server"> </asp:Literal></h4>
</div>
<div class="modal-body">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtDescripcion" CssClass="form-control" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVDescripcion" runat="server" ControlToValidate="TxtDescripcion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripcion''</b> es necesario, por favor ingréselo." ValidationGroup="VGMObligatorio"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCODescripcion" runat="server" HighlightCssClass="vco" TargetControlID="RFVDescripcion"></ajax:ValidatorCalloutExtender>
<label for="<%= TxtDescripcion.ClientID.ToString()%>">Descripción:</label>
</div>
<div class="form-group form-md-line-input input-iconright" id="DivEstatus" runat="server">
<label for="<%= ChkEstatus.ClientID.ToString()%>">Estatus:</label>
<asp:CheckBox ID="ChkEstatus" runat="server" />
</div>
<br />
<br />
<div class="row">
<div class="col-md-12">
<div class="portlet light xspadding bordered whitoutcol" style="width:100%">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Productos</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body" align="center">
<table>
<tr>
<td colspan="3">
<label for="<%= DdlPS.ClientID.ToString()%>">Producto:</label>
<asp:DropDownList ID="DdlPS" CssClass="form-control select2me" runat="server" AppendDataBoundItems="true" DataTextField="PSCodigo" DataValueField="CvePS" Width="450px">
</asp:DropDownList>
</td>
<td>
<asp:Button ID="BtnAddPS" OnClick="BtnAddPS_Click" runat="server" CssClass="btn btn-primary btn-sm" Text="+" />
</td>
</tr>
</table>
<br />
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvPS" runat="server" OnRowDataBound="GvPS_RowDataBound" GridLines="None" CssClass="table table-hover table-striped ScrollAD mysmallbtn" data-sort="true" Width="100%" AutoGenerateColumns="False"
DataKeyNames="CvePS,PSCodigo,CveGrupoPS">
<Columns>
<asp:TemplateField HeaderText="Producto" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="LblDescripcion" runat="server" Text='<%# Eval("PSCodigo")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="LnkEliminarPS" runat="server" OnClick="LnkEliminarPS_Click" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar el ps?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br />
<br />
<div class="modal-footer">
<asp:Button ID="BtnGrupoPSAdd" OnClick="BtnGrupoPSAdd_Click" runat="server" Text="Agregar" CssClass="btn btn-primary" ValidationGroup="VGMObligatorio" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,271 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
//using static Extensiones.ModExtensiones;
public partial class Inventarios_CatGrupoPSaspx : ClsPaginas
{
#region PROPIEDADES
private int CveGrupoPS
{
get { return (ViewState["CveGrupoPS"] == null) ? 0 : Convert.ToInt32(ViewState["CveGrupoPS"]); }
set { ViewState["CveGrupoPS"] = value; }
}
private int Index
{
get { return (ViewState["Index"] == null) ? 0 : Convert.ToInt32(ViewState["Index"]); }
set { ViewState["Index"] = value; }
}
private DataTable DtGrupoPSDetalle
{
get { return DtGrupoPSDetalle = (DataTable)ViewState["DtGrupoPSDetalle"]; }
set { ViewState["DtGrupoPSDetalle"] = value; }
}
private String Modalidad
{
get { return (ViewState["Modalidad"] == null) ? "" : (String)ViewState["Modalidad"]; }
set { ViewState["Modalidad"] = value; }
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CargaGrupoPS();
CargaPS();
CreaDtGrupoPSDetalle();
}
}
protected void CargaPS()
{
DdlPS.DataSource = get_GlobalDTPSSimplificado(UsuarioActual.CveEmpresa);
DdlPS.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlPS.DataBind();
UpModal.Update();
}
protected void CargaGrupoPS()
{
ClsInventarios ObjInv = new ClsInventarios();
if (ObjInv.GetGrupoPS(UsuarioActual.CveEmpresa))
{
GvGrupoPS.DataSource = ObjInv.DtResultados;
}
ObjInv.Dispose();
GvGrupoPS.DataBind();
UpDatos.Update();
}
protected void CargaGrupoPSDetalle()
{
ClsInventarios ObjInv = new ClsInventarios();
if (ObjInv.GetGrupoPSDetalle(CveGrupoPS))
{
GvPS.DataSource = ObjInv.DtResultados;
DtGrupoPSDetalle = ObjInv.DtResultados;
}
ObjInv.Dispose();
GvPS.DataBind();
}
protected void CreaDtGrupoPSDetalle()
{
DtGrupoPSDetalle = new DataTable();
DtGrupoPSDetalle.Columns.Add("CveGrupoPSDetalle");
DtGrupoPSDetalle.Columns.Add("CveGrupoPS");
DtGrupoPSDetalle.Columns.Add("CvePS");
DtGrupoPSDetalle.Columns.Add("PSCodigo");
}
protected void LimpiaModal()
{
TxtDescripcion.Text = "";
DdlPS.SelectedIndex = 0;
GvPS.DataSource = null;
GvPS.DataBind();
DtGrupoPSDetalle.Rows.Clear();
UpModal.Update();
}
protected void LnkAddGrupoPS_Click(object sender, EventArgs e)
{
this.RegistraScript("$('#DModalGrupoPS').modal();");
Modalidad = "A";
LimpiaModal();
BtnGrupoPSAdd.Text = "Guardar";
DivEstatus.Visible = false;
UpModal.Update();
}
protected void LnkEliminar_Click(object sender, EventArgs e)
{
GridViewRow gvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
ClsInventarios ObjInv = new ClsInventarios();
var Error = false;
ObjInv.IniciaTransacSQL();
if (!ObjInv.RemoveGrupoPSDetalle(-1,gvRow.DataKey("CveGrupoPS").ToEntero()))
{
Error = true;
}
if (!ObjInv.RemoveGrupoPS(gvRow.DataKey("CveGrupoPS").ToEntero()))
{
Error = true;
}
if (!Error)
{
ObjInv.Commit();
Alert("El grupo ps se ha eliminado correctamente.");
}
else
{
ObjInv.RollBack();
}
ObjInv.Dispose();
CargaGrupoPS();
}
protected void LnkEditar_Click(object sender, EventArgs e)
{
LimpiaModal();
GridViewRow gvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
Modalidad = "U";
CveGrupoPS = gvRow.DataKey("CveGrupoPS").ToEntero();
TxtDescripcion.Text = gvRow.DataKey("Descripcion");
DivEstatus.Visible = true;
ChkEstatus.Checked = Convert.ToBoolean((gvRow.DataKey("Estatus")));
CargaGrupoPSDetalle();
BtnGrupoPSAdd.Text = "Actualizar";
this.RegistraScript("$('#DModalGrupoPS').modal();");
UpModal.Update();
}
protected void GvGrupoPS_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (Convert.ToBoolean(e.Row.DBCampo("Estatus")) == true)
{
e.Row.FCLabel("lblestatus").Text = "Activo";
e.Row.FCLabel("lblestatus").ForeColor = System.Drawing.Color.Green;
}
else
{
e.Row.FCLabel("lblestatus").Text = "Inactivo";
e.Row.FCLabel("lblestatus").ForeColor = System.Drawing.Color.Red;
}
}
}
protected void BtnGrupoPSAdd_Click(object sender, EventArgs e)
{
ClsInventarios ObjInv = new ClsInventarios();
ObjInv.IniciaTransacSQL();
var Error = false;
var _CveGrupoPS = -1;
if (GvPS.Rows.Count < 1)
{
Alert("Tiene que agregar al menos un producto.",ModExtensiones.TipoMensaje.MsgAdvertencia);
return;
}
if (Modalidad == "A")
{
if (!ObjInv.AddGrupoPS(TxtDescripcion.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
{
Error = true;
}
else
{
_CveGrupoPS = ObjInv.CveGrupoPS;
}
}
else
{
if (!ObjInv.UpdateGrupoPS(CveGrupoPS, TxtDescripcion.Text, ChkEstatus.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa))
{
Error = true;
}
else
{
_CveGrupoPS = CveGrupoPS;
}
}
foreach (DataRow Dr in DtGrupoPSDetalle.Rows)
{
if (Dr["CveGrupoPSDetalle"].ToEntero() == -1)
{
if (!ObjInv.AddGrupoPSDetalle(_CveGrupoPS, Dr["CvePS"].ToEntero()))
{
Error = true;
}
}
else if (Dr["CveGrupoPS"].ToEntero() == -1)
{
if (!ObjInv.RemoveGrupoPSDetalle(Dr["CveGrupoPSDetalle"].ToEntero()))
{
Error = true;
}
}
}
if (!Error)
{
ObjInv.Commit();
if (Modalidad == "A")
{
Alert("El grupo de productos se agrego correctamente.");
}else
{
Alert("El grupo de productos se actualizo correctamente.");
}
this.RegistraScript("$('#DModalGrupoPS').modal('hide');");
}
else
{
ObjInv.RollBack();
}
ObjInv.Dispose();
CargaGrupoPS();
}
protected void LnkEliminarPS_Click(object sender, EventArgs e)
{
GridViewRow gvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
DtGrupoPSDetalle.Rows[gvRow.RowIndex]["CveGrupoPS"] = -1;
if (DtGrupoPSDetalle.Rows[gvRow.RowIndex]["CveGrupoPSDetalle"].ToEntero() == -1)
{
DtGrupoPSDetalle.Rows[gvRow.RowIndex].Delete();
}
DtGrupoPSDetalle.AcceptChanges();
GvPS.DataSource = DtGrupoPSDetalle;
GvPS.DataBind();
UpModal.Update();
}
protected void BtnAddPS_Click(object sender, EventArgs e)
{
if (DdlPS.SelectedValue.ToEntero() > 0)
{
DataRow Row = null;
Row = DtGrupoPSDetalle.NewRow();
Row["CveGrupoPSDetalle"] = -1;
Row["CveGrupoPS"] = CveGrupoPS;
Row["CvePS"] = DdlPS.SelectedValue.ToEntero();
Row["PSCodigo"] = DdlPS.SelectedItem.Text;
DtGrupoPSDetalle.Rows.Add(Row);
DtGrupoPSDetalle.AcceptChanges();
GvPS.DataSource = DtGrupoPSDetalle;
GvPS.DataBind();
UpModal.Update();
}
else
{
Alert("Tiene que seleccionar un producto", ModExtensiones.TipoMensaje.MsgAdvertencia);
}

View File

@@ -0,0 +1,116 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="CatSeccionesAlmacenes.aspx.vb" Inherits="Inventarios_CatSeccionesAlmacenes" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Catálogo de Secciones de Almacenes
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel runat="server" ID="UpAgregar">
<ContentTemplate>
<li>
<asp:LinkButton runat="server" ID="BtnAgregarMotivoD" data-toggle="tooltip" data-placement="left" title="Agregar un Defecto" Text="<i class='fa fa-plus'></i>Agregar Sección de Almacen"></asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" DataKeyNames="CveSeccion,Seccion,CveAlmacen,Estatus" EmptyDataText="No se encontraron Secciones"
CssClass="table table-hover table-striped ScrollAD mysmallbtn" data-sort="true" Width="100%" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Sección" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Literal ID="LtlSeccion" runat="server" Text='<%# Eval("Seccion", "&nbsp;{0}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Almacen" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Literal ID="LtlAlmacen" runat="server" Text='<%# Eval("Almacen") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Estatus" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Literal ID="LtlEstatus" runat="server" Text='<%# Eval("Estatus") %>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="ChkEstatus" runat="server" Checked='<%# If (Eval("Estatus").ToString = "Activo", True, False) %>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Literal ID="LtlFechaIng" runat="server" Text='<%# Eval("FechaIng", "{0:d}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Usuario" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Literal ID="LtlUsuario" runat="server" Text='<%# Eval("Usuario") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Editar" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" OnClick="imgE_Click" AlternateText="Editar" CausesValidation="False" ToolTip="Editar" CommandName="Edit" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Eliminar" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" OnClick="imgD_Click" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle CssClass="Texto" />
<AlternatingRowStyle CssClass="TextoAlterno" />
</asp:GridView>
<div id="DivAgregarTiposD" class="modal ADS fade" role="dialog">
<div class="modal-dialog" style="width: 450px;">
<asp:UpdatePanel runat="server" class="modal-content" ID="UpModalTiposD" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">
<asp:Literal ID="LtlTituloModalTiposD" runat="server">Sección de Almacen</asp:Literal></h4>
</div>
<div class="modal-body">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="SeccionTxt" CssClass="form-control " runat="server" MaxLength="70" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvTxtTiposD" runat="server" ControlToValidate="SeccionTxt" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTiposD"></asp:RequiredFieldValidator>
<label for="SeccionTxt">Sección:</label>
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright" >
<asp:DropDownList ID="DdlAlmacen" CssClass="form-control select2me " runat="server" DataTextField="Almacen" AppendDataBoundItems="true" DataValueField="CveAlmacen" Style="width: 50%"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RfvAlmacen" runat="server" ControlToValidate="DdlAlmacen" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTiposD"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VceAlmacen" runat="server" HighlightCssClass="vco" TargetControlID="RfvAlmacen"></ajax:ValidatorCalloutExtender>
<label for="<%= DdlAlmacen.ClientID.ToString()%>">Almacen:</label>
</div>
<br ID="saltoDeLinea" runat="server" />
<div ID="CheckActiveSection" runat="server" class="form-group form-md-line-input input-iconright">
<label for="ChkEstatus">Activo:</label>&nbsp;
<asp:CheckBox ID="ChkEstatus" runat="server" CssClass="make-switchsd" data-size="small" Text=" " Checked="true" />
<i></i>
</div>
</div>
<br />
<div class="modal-footer">
<asp:Button ID="BtnAgregarTiposDModal" runat="server" class="btn btn-success" Text="Agregar" ValidationGroup="GrpTiposD" />
<asp:Button ID="BtnEditarTiposDModal" runat="server" class="btn btn-success" Text="Confirmar" ValidationGroup="GrpTiposD" />
<button id="Button3" runat="server" type="button" class="btn default" data-dismiss="modal">Cancelar</button>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,186 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Partial Class Inventarios_CatSeccionesAlmacenes
Inherits ClsPaginas
Private Property CveSeccionAEditar() As Integer 'Guardamos el ID de registro para saber cual registro Editar
Get
Return If(IsNothing(ViewState("CveSeccionAEditar")), -1, CInt(ViewState("CveSeccionAEditar")))
End Get
Set
ViewState("CveSeccionAEditar") = Value
End Set
End Property
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
ViewState("Orden") = ""
DdlAlmacen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlAlmacen.DataBind()
CargaDatos()
End If
End Sub
Public Sub CargaDatos()
Dim ObjSeccion As New ClsInventarios
If ObjSeccion.GetSeccionesAlmacenes(-1) Then
ViewState("DTSeccionesAlmacenes") = ObjSeccion.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
GlobalDTSeccionAlmacen(-1) = ObjSeccion.DtResultados
Else
GvDatos.DataSource = Nothing
End If
ObjSeccion.Dispose()
If ViewState("Orden").ToString() <> String.Empty Then
CargaGrid(ViewState("Orden").ToString())
Else
CargaGrid("")
End If
End Sub
Protected Sub BtnAgregarMotivo_Click(sender As Object, e As EventArgs) Handles BtnAgregarMotivoD.Click 'Hacemos aparecer la ventana modal con los campos limpios
BtnEditarTiposDModal.Visible = False
BtnAgregarTiposDModal.Visible = True
CheckActiveSection.Visible = False
saltoDeLinea.Visible = False
SeccionTxt.Text = ""
DdlAlmacen.SelectedIndex = 0
UpModalTiposD.Update()
RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarTiposD"))
End Sub
Protected Sub LbAgregar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles BtnAgregarTiposDModal.Click 'esta funcion es la que agrega un nuevo motivo de baja se activa con el boton "Agregar" de la ventana modal"
Dim ObjSeccion As New ClsInventarios
If ObjSeccion.AddSeccion(SeccionTxt.Text.Trim, DdlAlmacen.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
SeccionTxt.Text = ""
DdlAlmacen.SelectedIndex = 0
Alert("La Seccion se guardó correctamente.", TipoMensaje.MsgInformacion)
ViewState("DTSeccionesAlmacenes") = ObjSeccion.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
GlobalDTSeccionAlmacen(-1) = ObjSeccion.DtResultados
If ViewState("Orden").ToString() <> String.Empty Then
CargaGrid(ViewState("Orden").ToString())
Else
CargaGrid("")
End If
End If
ObjSeccion.Dispose()
End Sub
Public Sub imgE_Click(ByVal sender As Object, ByVal e As EventArgs) 'Este metodo muestra la pantalla modal con la información del renglon ya puesta en los campos del formulario
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) 'obtenemos el renglon que acabamos de seleccionar
BtnAgregarTiposDModal.Visible = False
BtnEditarTiposDModal.Visible = True
CheckActiveSection.Visible = True
saltoDeLinea.Visible = True
SeccionTxt.Text = GvRow.DataKey("Seccion")
ChkEstatus.Checked = ChkEstatus.Checked
CveSeccionAEditar = Convert.ToInt32(GvRow.DataKey("CveSeccion")) 'Guardamos en una propiedad el id del registro del cual haremos cambios, se guarda y se utiliza en el metodo "GvDatos_RowUpdating"
DdlAlmacen.SelectedValueExist(GvRow.DataKey("CveAlmacen"))
UpDatos.Update()
If ViewState("Orden").ToString() <> String.Empty Then
CargaGrid(ViewState("Orden").ToString())
Else
CargaGrid("")
End If
RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarTiposD"))
End Sub
Protected Sub BtnEditarTiposDModal_Click(ByVal sender As Object, ByVal e As EventArgs) Handles BtnEditarTiposDModal.Click
Dim ObjSeccion As New ClsInventarios
Dim Seccion As String = ""
Dim CveSeccion As Integer = 0
Dim Estatus As Boolean = False
Seccion = SeccionTxt.Text.Trim
Estatus = ChkEstatus.Checked
CveSeccion = CveSeccionAEditar
If ObjSeccion.UpdateSeccion(Seccion, DdlAlmacen.SelectedValue.ToEntero, Estatus, CveSeccion) Then
SeccionTxt.Text = ""
DdlAlmacen.SelectedIndex = 0
Alert("La Seccion se actualizo correctamente.", TipoMensaje.MsgInformacion)
ViewState("DTSeccionesAlmacenes") = ObjSeccion.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
GlobalDTSeccionAlmacen(-1) = ObjSeccion.DtResultados
End If
ObjSeccion.Dispose()
If ViewState("Orden").ToString() <> String.Empty Then
CargaGrid(ViewState("Orden").ToString())
Else
CargaGrid("")
End If
RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarTiposD"))
End Sub
#Region "G V D A T O S"
Protected Sub GvDatos_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
End If
End Sub
Public Sub imgD_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim ObjSeccion As New ClsInventarios
If ObjSeccion.RemoveSeccion(GvRow.DataKey("CveSeccion").ToString.ToEntero) Then
Alert("La Seccion se elimino correctamente.", TipoMensaje.MsgInformacion)
ViewState("DTSeccionesAlmacenes") = ObjSeccion.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
GlobalDTSeccionAlmacen(-1) = ObjSeccion.DtResultados
End If
ObjSeccion.Dispose()
If ViewState("Orden").ToString() <> String.Empty Then
CargaGrid(ViewState("Orden").ToString())
Else
CargaGrid("")
End If
End Sub
#End Region
#Region "O R D E N A M I E N T O"
Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim Orden As String = ""
Dim Campo As String = ""
Dim Literal As Literal = Nothing
Const OrdenInicial As String = ""
Dim Arg(2) As String
Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c)
Campo = Arg(0)
Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal)
If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then
ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo)
Literal.Text = String.Format("<i class='fa fa-sort-asc' style='color:#999' ></i>")
Else
ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo)
Literal.Text = String.Format("<i class='fa fa-sort-desc' style='color:#999' ></i>")
End If
Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString
ViewState("Orden") = Orden
CargaGrid(Orden)
End Sub
Private Sub CargaGrid(ByVal Orden As String)
If Orden <> String.Empty Then
Dim DV As New DataView(CType(ViewState("DTSeccionesAlmacenes"), DataTable), "", Orden, DataViewRowState.CurrentRows)
GvDatos.DataSource = DV.ToTable()
DV.Dispose()
Else
GvDatos.DataSource = CType(ViewState("DTSeccionesAlmacenes"), DataTable)
End If
GvDatos.DataBind()
UpDatos.Update()
End Sub
#End Region
End Class

View File

@@ -0,0 +1,116 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="CatTiposAlmacenes.aspx.vb" Inherits="Inventarios_CatTiposAlmacenes" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Catálogo de Tipo Almacén
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpTitulos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<table style="width:60%" class="table table-striped table-advance table-hover">
<thead>
<tr class="Titulos">
<th width="200px">
<asp:LinkButton ID="LbTipoAlmacen" runat="server" CausesValidation="false" Text="" CommandArgument="TipoAlmacen" OnClick="LbOrden_Click">
Tipo Almacén
<asp:Literal ID="ImgTipoAlmacen" runat="server" Text=" <i class='fa fa-sort' style='color:#999' ></i>"></asp:Literal>
</asp:LinkButton>
</th>
<th width="80px">
<asp:LinkButton ID="LbEstatus" runat="server" CausesValidation="false" Text="" CommandArgument="Estatus" OnClick="LbOrden_Click">
Estatus
<asp:Literal ID="ImgEstatus" runat="server" Text=" <i class='fa fa-sort' style='color:#999' ></i>"></asp:Literal>
</asp:LinkButton>
</th>
<th width="80px">
<asp:LinkButton ID="LbFechaIng" runat="server" CausesValidation="false" Text="" CommandArgument="FechaIng" OnClick="LbOrden_Click">
Fecha
<asp:Literal ID="ImgFechaIng" runat="server" Text=" <i class='fa fa-sort' style='color:#999' ></i>"></asp:Literal>
</asp:LinkButton>
</th>
<th width="100px">
<asp:LinkButton ID="LbUsuario" runat="server" CausesValidation="false" Text="" CommandArgument="Usuario" OnClick="LbOrden_Click">
Usuario
<asp:Literal ID="ImgUsuario" runat="server" Text=" <i class='fa fa-sort' style='color:#999' ></i>"></asp:Literal>
</asp:LinkButton>
</th>
<th width="165px">Comandos</th>
</tr>
</thead>
<tr>
<td>
<asp:TextBox ID="TxtTipoAlmacen" runat="server" CausesValidation="true" MaxLength="50" ValidationGroup="GrpGuardar" Width="184px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTipoAlmacen" runat="server" ControlToValidate="TxtTipoAlmacen" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''TipoAlmacen''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOTipoAlmacen" runat="server" HighlightCssClass="vco" TargetControlID="RFVTipoAlmacen" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td style="text-align: center">
<asp:LinkButton ID="LbAgregar" runat="server" CausesValidation="true" CssClass="Texto" Text="Agregar" ValidationGroup="GrpGuardar"></asp:LinkButton></td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" DataKeyNames="CveTipoAlmacen" width="60%" EmptyDataText="No se encontraron Tipo Almacén" CssClass="table table-striped table-advance table-hover" Style="margin-top: -10px;" GridLines="None">
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="200px">
<ItemTemplate>
<asp:Literal ID="LtlTipoAlmacen" runat="server" Text='<%# Eval("TipoAlmacen", "&nbsp;{0}") %>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtTipoAlmacen" runat="server" CausesValidation="true" MaxLength="50" Text='<%# Eval("TipoAlmacen")%>' ValidationGroup="GrpEditGuardar" Width="184px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTipoAlmacen" runat="server" ControlToValidate="TxtTipoAlmacen" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''TipoAlmacen''</b> es necesario, por favor ingréselo." ValidationGroup="GrpEditGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOTipoAlmacen" runat="server" HighlightCssClass="vco" TargetControlID="RFVTipoAlmacen" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="80px">
<ItemTemplate>
<asp:Literal ID="LtlEstatus" runat="server" Text='<%# Eval("Estatus") %>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="ChkEstatus" runat="server" Checked='<%# If (Eval("Estatus").ToString = "Activo", True, False) %>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="80px">
<ItemTemplate>
<asp:Literal ID="LtlFechaIng" runat="server" Text='<%# Eval("FechaIng", "{0:d}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="100px">
<ItemTemplate>
<asp:Literal ID="LtlUsuario" runat="server" Text='<%# Eval("Usuario") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="center" HeaderText="Editar" ItemStyle-Width="100px">
<EditItemTemplate>
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CommandName="Update" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" ValidationGroup="GrpEditGuardar" />
&nbsp;<asp:LinkButton ID="imgC" runat="server" AlternateText="Cancelar" CausesValidation="False" CommandName="Cancel" CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>" />
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" ToolTip="Editar" CommandName="Edit" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Eliminar" ItemStyle-HorizontalAlign="center" ItemStyle-Width="65px">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle CssClass="Texto" />
<AlternatingRowStyle CssClass="TextoAlterno" />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,159 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Partial Class Inventarios_CatTiposAlmacenes
Inherits ClsPaginas
#Region "INICIALIZA VALORES"
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
ViewState("Orden") = ""
CargaDatos()
End If
End Sub
Public Sub CargaDatos()
Dim ObjTipoAlmacen As New ClsInventarios
If ObjTipoAlmacen.GetTiposAlmacenes
ViewState("DTTiposAlmacenes") = ObjTipoAlmacen.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
GlobalDTTipoAlmacen(-1) = ObjTipoAlmacen.DtResultados
Else
GvDatos.DataSource = Nothing
End If
ObjTipoAlmacen.Dispose()
If ViewState("Orden").ToString() <> String.Empty Then
CargaGrid(ViewState("Orden").ToString())
Else
CargaGrid("")
End If
End Sub
Protected Sub LbAgregar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles LbAgregar.Click
Dim ObjTipoAlmacen As New ClsInventarios
If ObjTipoAlmacen.AddTipoAlmacen(TxtTipoAlmacen.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
TxtTipoAlmacen.Text = ""
Alert("El nuevo Tipo Almacén se guardó correctamente.", TipoMensaje.MsgInformacion)
UpTitulos.Update()
CargaDatos()
End If
ObjTipoAlmacen.Dispose()
CargaGlobal()
End Sub
#End Region
#Region "G V D A T O S"
Protected Sub GvDatos_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles GvDatos.RowEditing
GvDatos.EditIndex = e.NewEditIndex
If ViewState("Orden").ToString() <> String.Empty Then
CargaGrid(ViewState("Orden").ToString())
Else
CargaGrid("")
End If
End Sub
Protected Sub GvDatos_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) Handles GvDatos.RowUpdating
Dim ObjTipoAlmacen As New ClsInventarios
Dim TipoAlmacen As String
Dim CveTipoAlmacen As Integer
Dim Estatus As Boolean
TipoAlmacen = GvDatos.Rows(e.RowIndex).FCTextBox("TxtTipoAlmacen").Text.Trim
Estatus = GvDatos.Rows(e.RowIndex).FCCheckBox("ChkEstatus").Checked
CveTipoAlmacen = GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero
If ObjTipoAlmacen.UpdateTipoAlmacen(TipoAlmacen, Estatus, CveTipoAlmacen) Then
GvDatos.EditIndex = -1
ViewState("DTTiposAlmacenes") = ObjTipoAlmacen.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
GlobalDTTipoAlmacen(-1) = ObjTipoAlmacen.DtResultados
End If
ObjTipoAlmacen.Dispose()
If ViewState("Orden").ToString() <> String.Empty Then
CargaGrid(ViewState("Orden").ToString())
Else
CargaGrid("")
End If
Cargaglobal()
End Sub
Protected Sub GvDatos_RowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs) Handles GvDatos.RowDeleting
Dim ObjTipoAlmacen As New ClsInventarios
If ObjTipoAlmacen.RemoveTipoAlmacen(GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then
GvDatos.EditIndex = -1
ViewState("DTTiposAlmacenes") = ObjTipoAlmacen.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
GlobalDTTipoAlmacen(-1) = ObjTipoAlmacen.DtResultados
End If
ObjTipoAlmacen.Dispose()
If ViewState("Orden").ToString() <> String.Empty Then
CargaGrid(ViewState("Orden").ToString())
Else
CargaGrid("")
End If
CargaGlobal()
End Sub
Protected Sub GvDatos_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs) Handles GvDatos.RowCancelingEdit
GvDatos.EditIndex = -1
If ViewState("Orden").ToString() <> String.Empty Then
CargaGrid(ViewState("Orden").ToString())
Else
CargaGrid("")
End If
End Sub
Private Sub CargaGlobal()
Dim ObjTipoAlmacen As New ClsInventarios
If ObjTipoAlmacen.GetTiposAlmacenes() Then
GlobalDTTipoAlmacen(-1) = ObjTipoAlmacen.DtResultados
End If
ObjTipoAlmacen.Dispose()
End Sub
#End Region
#Region "O R D E N A M I E N T O"
Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim Orden As String = ""
Dim Campo As String = ""
Dim Literal As Literal = Nothing
Const OrdenInicial As String = ""
Dim Arg(2) As String
Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c)
Campo = Arg(0)
Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal)
If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then
ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo)
Literal.Text = String.Format("<i class='fa fa-sort-asc' style='color:#999' ></i>")
Else
ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo)
Literal.Text = String.Format("<i class='fa fa-sort-desc' style='color:#999' ></i>")
End If
Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString
ViewState("Orden") = Orden
CargaGrid(Orden)
End Sub
Private Sub CargaGrid(ByVal Orden As String)
If Orden <> String.Empty Then
Dim DV As New DataView(CType(ViewState("DTTiposAlmacenes"), DataTable), "", Orden, DataViewRowState.CurrentRows)
GvDatos.DataSource = DV.ToTable()
DV.Dispose()
Else
GvDatos.DataSource = CType(ViewState("DTTiposAlmacenes"), DataTable)
End If
GvDatos.DataBind()
UpDatos.Update()
End Sub
#End Region
End Class

View File

@@ -0,0 +1,903 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Consignaciones.aspx.vb" Inherits="Inventarios_Consignaciones" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.psagregar {
width: 450px;
}
.psagregar > div.comboxes {
display: inline-block;
width: 420px !important;
}
.psagregar > div.codigo input {
width: 79px;
}
.psagregar > div.codigo {
display: inline-block;
width: 80px;
}
.psagregar > div.codigo > input[type="submit"] {
display: none;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Consignaciones
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<ajax:TabContainer ID="Tab" runat="server" ActiveTabIndex="0" Width="100%">
<ajax:TabPanel ID="TabMovimientos" runat="server" HeaderText="Movimientos">
<ContentTemplate>
<asp:UpdatePanel runat="server" ID="UpEncabezado" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT" style="">
<div class="titlefiltros caption ">
<ul class="list-inline" style="font-size: 14px;">
<li>Concepto:
<asp:DropDownList ID="DdlConcepto" AutoPostBack="true" OnSelectedIndexChanged="DdlConcepto_SelectedIndexChanged" runat="server" CssClass="form-control input-sm select2me" Width="100px">
<asp:ListItem Text="Entrada" Value="10" />
<asp:ListItem Text="Devolución" Value="12" />
<asp:ListItem Text="Traspaso" Value="8" />
</asp:DropDownList>
</li>
<li runat="server" id="LiProveedor" visible="false">Proveedor:
<ADS:Dropdownlost ID="DdlProveedorFiltro" runat="server" CssStyle="width: 275px;" DataTextField="RazonSocial" DataValueField="CveProveedor" Onselectedindexchange="DdlProveedorFiltro_selectedindexchange"></ADS:Dropdownlost>
<%--<asp:DropDownList ID="DdlProveedorFiltro" CssClass="form-control input-sm select2me" runat="server" CausesValidation="true" DataTextField="RazonSocial" DataValueField="CveProveedor" Width="275px" AutoPostBack="true"></asp:DropDownList>--%>
<%-- <asp:RequiredFieldValidator ID="RFVProveedor" runat="server" ControlToValidate="DdlProveedorFiltro" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Proveedor''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpConsultar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOProveedor" runat="server" HighlightCssClass="vco" TargetControlID="RFVProveedor" Width="350px"></ajax:ValidatorCalloutExtender>--%>
</li>
<li runat="server" id="LiRemision" visible="false">Remisiones:
<asp:DropDownList ID="DdlRemisiones" DataValueField="CveConsignacion" DataTextField="Consignacion" runat="server" ValidationGroup="GrpConsultar" CssClass="form-control input-sm select2me" Width="150px"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVRemisiones" runat="server" ControlToValidate="DdlRemisiones" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Remision''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpConsultar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCERemisiones" runat="server" HighlightCssClass="vco" TargetControlID="RFVRemisiones" Width="350px"></ajax:ValidatorCalloutExtender>
</li>
<li runat="server" id="LiAlmacen" visible="false">Almacén:
<asp:DropDownList ID="DdlAlmacenFiltro" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me" Width="150px"></asp:DropDownList>
</li>
</ul>
</div>
<div class="tools">
<asp:Button Text="Nueva Entrada" ID="BtnNuevo" CssClass="btn btn-primary" Visible="false" runat="server" OnClick="BtnNuevo_Click" />
<asp:Button Text="Consultar" ID="BtnConsultar" CssClass="btn btn-primary" Visible="false" runat="server" OnClick="BtnConsultar_Click" ValidationGroup="GrpConsultar" />
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div class="row" style="margin-left: 0px; margin-right: 0px;">
<asp:UpdatePanel ID="UpGenerales" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="col-md-6">
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Datos Generales</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<div class="rowpadding">
<div class="row" id="TrProveedor" runat="server">
<label class="col-md-2">Proveedor:</label>
<div class="col-md-2">
<ADS:Dropdownlost ID="DdlProveedor" runat="server" CssStyle="width: 320px;" DataTextField="RazonSocial" DataValueField="CveProveedor"></ADS:Dropdownlost>
<%--<asp:DropDownList ID="DdlProveedor" CssClass="form-control input-sm select2me" runat="server" CausesValidation="true" DataTextField="RazonSocial" DataValueField="CveProveedor" Width="320px" ValidationGroup="GrpGuardar"></asp:DropDownList>--%>
<%--<asp:RequiredFieldValidator ID="RFVProveedor" runat="server" ControlToValidate="DdlProveedor" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Proveedor''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>--%>
<%--<ajax:ValidatorCalloutExtender ID="VCOProveedor" runat="server" HighlightCssClass="vco" TargetControlID="RFVProveedor" Width="350px"></ajax:ValidatorCalloutExtender>--%>
</div>
</div>
<div class="row" id="TrSerieFolio" runat="server">
<label class="col-md-2">Serie - Folio:</label>
<div class="col-md-2">
<asp:TextBox ID="TxtFolio" runat="server" Width="60px" CausesValidation="true" MaxLength="20" ValidationGroup="GrpGuardar"></asp:TextBox>
<%--<asp:RequiredFieldValidator ID="RFVFolio" runat="server" ControlToValidate="TxtFolio" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Folio''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>--%>
<%--<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" HighlightCssClass="vco" TargetControlID="RFVFolio" Width="350px"></ajax:ValidatorCalloutExtender>--%>
</div>
</div>
<div class="row">
<label class="col-md-2">Fecha:</label>
<div class="col-md-2">
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
<asp:TextBox ID="TxtFecha" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 118px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFecha" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFecha" runat="server" TargetControlID="TxtFecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFecha" TargetControlID="TxtFecha" PopupButtonID="ImgFecha" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFecha" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFecha2" runat="server" HighlightCssClass="vco" TargetControlID="CVFecha" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
<div class="row">
<label class="col-md-2">Almacén:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlAlmacen" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me" Width="320px"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacen" runat="server" ControlToValidate="DdlAlmacen" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacén''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOAlmacen" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacen" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row">
<label class="col-md-2">Observaciones:</label>
<div class="col-md-11">
<asp:TextBox ID="TxtObservaciones" TextMode="MultiLine" Rows="2" CssClass="form-control input-sm" runat="server" MaxLength="200"></asp:TextBox>
</div>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="col-md-5">
<asp:UpdatePanel ID="UpTipoCambio" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-12">
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Tipo de Cambio</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<table width="100%">
<tr>
<td>Moneda:</td>
<td>
<asp:DropDownList ID="DdlMoneda" AutoPostBack="true" OnSelectedIndexChanged="DdlMoneda_SelectedIndexChanged" CssClass="form-control input-sm select2me" runat="server" CausesValidation="true" ValidationGroup="GrpTipoCambio">
<asp:ListItem Selected="True" Text="Pesos" Value="1"></asp:ListItem>
<asp:ListItem Text="Dólares" Value="2"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVMoneda" runat="server" ControlToValidate="DdlMoneda" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Moneda''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpTipoCambio"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOMoneda" runat="server" HighlightCssClass="vco" TargetControlID="RFVMoneda" Width="350px"></ajax:ValidatorCalloutExtender>
</td>
</tr>
<tr id="TrTC1" visible="false" runat="server">
<td>Tipo de Cambio:</td>
<td>
<asp:TextBox ID="TxtTipoCambio" onkeyup="FormatoMoneda(this);" runat="server" Width="60px" CausesValidation="true" MaxLength="10" ValidationGroup="GrpTipoCambio"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTipoCambio" runat="server" ControlToValidate="TxtTipoCambio" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo Cambio''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTipoCambio"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCETipoCambio" runat="server" HighlightCssClass="vco" TargetControlID="RFVTipoCambio" Width="350px"></ajax:ValidatorCalloutExtender>
</td>
</tr>
<tr id="TrTC2" visible="false" runat="server">
<td colspan="2" align="center">
<asp:Button ID="BtnAplicarTC" OnClick="BtnAplicarTC_Click" Text="Aplicar Tipo Cambio" CssClass="btn btn-primary" ValidationGroup="GrpTipoCambio" runat="server" />
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpObservacionesDevolucion" runat="server">
<ContentTemplate>
<div class="row" id="RowObservacionesDevolucion" runat="server" visible="false">
<div class="col-md-12">
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Observaciones de Devolución</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<table width="100%">
<tr>
<td>Fecha:</td>
<td align="left">
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy">
<asp:TextBox ID="TxtFechaDevolucion" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" ValidationGroup="GrpDevolucion" Width="100px" ClientIDMode="Static"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton runat="server" ID="ImgFechaDevolucion" class="btn default"> <i class="fa fa-calendar"></i> </asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaDevolucion" runat="server" TargetControlID="TxtFechaDevolucion" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaDevolucion" TargetControlID="TxtFechaDevolucion" PopupButtonID="ImgFechaDevolucion" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaDevolucion" runat="server" ControlToValidate="TxtFechaDevolucion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaDevolucion''</b> es necesario, por favor ingréselo." ValidationGroup="GrpDevolucion"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaDevolucion" runat="server" ControlToValidate="TxtFechaDevolucion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaDevolucion''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpDevolucion"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFechaDevolucion1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaDevolucion" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFechaDevolucion2" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaDevolucion" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</td>
</tr>
<tr>
<td>Observaciones:</td>
<td>
<asp:TextBox ID="TxtObservacionesDevolucion" TextMode="MultiLine" Rows="2" CssClass="form-control input-sm" runat="server" MaxLength="200"></asp:TextBox>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpTraspaso" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row" id="DivTraspaso" runat="server" visible="false">
<div class="col-md-12">
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Datos de Traspaso</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<table width="100%">
<tr>
<td>Fecha:</td>
<td align="left">
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy">
<asp:TextBox ID="TxtFechaTraspaso" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" ValidationGroup="GrpTraspaso" Width="100px" ClientIDMode="Static"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton runat="server" ID="ImgFechaTraspaso" class="btn default"> <i class="fa fa-calendar"></i> </asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaTraspaso" runat="server" TargetControlID="TxtFechaTraspaso" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaTraspaso" TargetControlID="TxtFechaTraspaso" PopupButtonID="ImgFechaTraspaso" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaTraspaso" runat="server" ControlToValidate="TxtFechaTraspaso" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaTraspaso''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTraspaso"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaTraspaso" runat="server" ControlToValidate="TxtFechaTraspaso" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaTraspaso''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpTraspaso"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFechaTraspaso1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaTraspaso" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFechaTraspaso2" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaTraspaso" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</td>
</tr>
<tr>
<td>Almacen Destino:</td>
<td align="left">
<asp:DropDownList ID="DdlAlmacenDestino" Width="200px" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacenDestino" runat="server" ControlToValidate="DdlAlmacenDestino" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen Destino''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpTraspaso"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOAlmacenDestino" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacenDestino" Width="350px"></ajax:ValidatorCalloutExtender>
</td>
</tr>
<tr>
<td>Observaciones</td>
<td align="left">
<asp:TextBox ID="TxtObservacionesTraspaso" TextMode="MultiLine" Rows="2" CssClass="form-control input-sm" runat="server" MaxLength="200"></asp:TextBox>
</td>
</tr>
<tr>
<td>Transitorio:</td>
<td align="left">
<asp:CheckBox ID="ChkTransitorio" AutoPostBack="true" OnCheckedChanged="ChkTransitorio_CheckedChanged" CssClass="md-checksd" runat="server" />
</td>
</tr>
<tr runat="server" id="TrTraspaso1" visible="false">
<td>Responsable:</td>
<td align="left">
<asp:TextBox runat="server" Text="" ID="TxtResponsable" Width="150px" />
</td>
</tr>
<tr runat="server" id="TrTraspaso2" visible="false">
<td>Almacen Transitorio:</td>
<td align="left">
<asp:DropDownList ID="DdlAlmacenTransitorio" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me" Style="width: 150px !important;"></asp:DropDownList>
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<br />
<asp:UpdatePanel runat="server" ID="UpDatos" UpdateMode="Conditional">
<ContentTemplate>
<table class="table Widthall">
<thead>
<tr class="Titulos">
<th width="150px">Almacén</th>
<th width="100px" id="ThCantidad" runat="server" visible="false">Cantidad</th>
<th width="100px">
<asp:Literal ID="LtCantidad" Text="Cantidad" runat="server" />
</th>
<th width="300px">Clasificación
<br />
Producto
</th>
<th width="90px">Unidad</th>
<th runat="server" id="ThPU" width="80px">PU</th>
<th runat="server" id="ThPUExtranjero" width="80px" visible="false">PU Extran</th>
<th runat="server" id="ThTotal" width="80px">Total</th>
<th width="100px">Comandos</th>
</tr>
</thead>
<tr>
<td></td>
<td runat="server" id="TdCantidad" visible="false"></td>
<td align="center">
<asp:TextBox ID="TxtCantidad" onkeyup="Recalcula();" Width="50px" MaxLength="15" ClientIDMode="Static" ValidationGroup="GprAgregar" runat="server"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumerosCantidad" runat="server" TargetControlID="TxtCantidad" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator ID="RFVCantidad" runat="server" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidad" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
<asp:CustomValidator ID="CVCantidad" runat="server" ClientValidationFunction="ValidaDecimal6digits" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> no tiene el formato correcto (6 decimales). Por favor rectifique y vuelva a intentar." ValidateEmptyText="True" ValidationGroup="GrpAgregar"></asp:CustomValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidad1" runat="server" HighlightCssClass="vco" TargetControlID="CVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td style="text-align: left;" align="center">
<div class="psagregar">
<div class="comboxes">
<asp:DropDownList ID="DdlClasificacion" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Class="form-control input-sm select2me">
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList>
<br />
<asp:DropDownList ID="DdlProducto" runat="server" DataTextField="PSCodigo" AutoPostBack="true" DataValueField="CvePS" Class="form-control input-sm select2me"></asp:DropDownList>
<select id="DdlProductows" runat="server" class="form-control"></select><asp:Button ID="myhidenbutton" runat="server" Text="Button" Style="display: none;" />
<asp:HiddenField ID="HFProducto" runat="server" />
<asp:HiddenField ID="HFTProducto" runat="server" />
</div>
</div>
</td>
<td>
<asp:DropDownList ID="DdlUnidad" runat="server" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" Class="table-group-action-input form-control input-inline input-small input-sm select2me" Style="width: 85px !important;"></asp:DropDownList>
</td>
<td runat="server" id="TdPU" style="text-align: right;" align="center">
<asp:TextBox ID="TxtPU" onkeyup="Recalcula();" Width="70px" ClientIDMode="Static" ValidationGroup="GprAgregar" runat="server" />
</td>
<td runat="server" id="TdPUExtranjero" visible="false"></td>
<td runat="server" id="TdTotal" style="text-align: right;" align="center">
<asp:Label ID="LbTotal" ClientIDMode="Static" runat="server" />
</td>
<td align="center">
<asp:LinkButton ID="LbAgregar" runat="server" CssClass="Texto" ValidationGroup="GrpAgregar" Text="Agregar" />
</td>
</tr>
</table>
<asp:GridView ID="GvDatos" DataKeyNames="No,CveUM,CvePS,PU,CveMovimientoDetalle,CveAlmacen" runat="server" ShowHeader="false" AutoGenerateColumns="False" EmptyDataText="" ToolTip="Listado de Movimientos" CssClass="tabla_correcto grides Widthall ScrollAD" data-height="400" data-freezerows="-1" GridLines="None">
<Columns>
<asp:BoundField ItemStyle-Width="150px" DataField="Almacen" />
<asp:TemplateField HeaderText="Cantidad Devolucion" Visible="false">
<ItemTemplate>
<asp:TextBox ID="TxtCantidadDevolucion" Width="60px" runat="server" Text="0.00" Visible="false"> </asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumeros" runat="server" TargetControlID="TxtCantidadDevolucion" FilterType="Custom, Numbers" ValidChars="." />
</ItemTemplate>
<ItemStyle Width="100px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<EditItemTemplate>
<asp:TextBox ID="TxtCantidad" Width="60px" runat="server" Text='<%# Eval("Cantidad", "{0:N2}")%>'> </asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumerosCantidad" runat="server" TargetControlID="TxtCantidad" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="GrpEditGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender4" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
<asp:CustomValidator ID="CVCantidad" runat="server" ClientValidationFunction="ValidaDecimal6digits" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> no tiene el formato correcto (6 decimales). Por favor rectifique y vuelva a intentar." ValidateEmptyText="True" ValidationGroup="GrpEditGuardar"></asp:CustomValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidad1" runat="server" HighlightCssClass="vco" TargetControlID="CVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
<ItemTemplate>
<asp:Literal ID="Literal2" runat="server" Text='<%# Eval("Cantidad", "{0:N2}")%>'> </asp:Literal>
</ItemTemplate>
<ItemStyle Width="100px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Producto">
<EditItemTemplate>
<asp:DropDownList ID="DdlClasificacion" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" OnSelectedIndexChanged="DdlClasificacion_GV" CssClass="form-control input-sm select2me" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 300px !important;">
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DdlProducto" runat="server" DataTextField="PS" DataValueField="CvePS" CssClass="form-control input-sm select2me" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 300px !important;"></asp:DropDownList>
<select id="DdlProductows" runat="server" class="form-control"></select><asp:Button ID="myhidenbutton" runat="server" Text="Button" Style="display: none;" />
<asp:HiddenField ID="HFProducto" runat="server" />
<asp:HiddenField ID="HFTProducto" runat="server" />
<ajax:ListSearchExtender ID="LSEPS" runat="server" TargetControlID="ddlProducto" PromptCssClass="Titulos" PromptText="Escriba el Producto o Servicio." QueryPattern="Contains" PromptPosition="Top" IsSorted="TRUE" QueryTimeout="0"></ajax:ListSearchExtender>
<asp:CompareValidator ID="CVProducto" runat="server" ControlToValidate="ddlProducto" Type="Integer" Operator="GreaterThan" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Producto''</b> es necesario, por favor seleccione una." Display="None" ValueToCompare="0" ValidationGroup="GrpEditGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender3" runat="server" HighlightCssClass="vco" TargetControlID="CVProducto" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
<ItemTemplate>
<asp:Literal ID="Literal3" runat="server" Text='<%# Eval("PSCodigo")%>'></asp:Literal>
</ItemTemplate>
<ItemStyle Width="300px" HorizontalAlign="Left"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Unidad">
<EditItemTemplate>
<asp:DropDownList ID="DdlUnidad" runat="server" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" Class="table-group-action-input form-control input-inline input-small input-sm select2me" Style="width: 90px !important;"></asp:DropDownList>
</EditItemTemplate>
<ItemTemplate>
<asp:Literal ID="lbUnidad" runat="server" Text='<%# Eval("UnidadMedida")%>'></asp:Literal>
</ItemTemplate>
<ItemStyle Width="90px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField>
<EditItemTemplate>
<asp:TextBox ID="TxtPU" Width="70px" ValidationGroup="GprAgregar" runat="server" Text='<%# Eval("PU", "{0:N2}")%>' />
<ajax:FilteredTextBoxExtender ID="ftbepu" runat="server" TargetControlID="TxtPU" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator runat="server" ID="RFVPU" ControlToValidate="TxtPU" ValidationGroup="GrpAgregar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''PU''</b> es necesario por favor introdúzcalo." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOPU" runat="server" HighlightCssClass="vco" TargetControlID="RFVPU" Width="300px"></ajax:ValidatorCalloutExtender>
<asp:RangeValidator ID="RVPU" runat="server" ControlToValidate="TxtPU" Display="None" Type="Double" MinimumValue="0.1" MaximumValue="2147483647" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''PU''</b> es necesario, por favor introdúzcalo." ValidationGroup="GrpAgregar"></asp:RangeValidator>
<ajax:ValidatorCalloutExtender ID="VCEPU" runat="server" HighlightCssClass="vco" TargetControlID="RVPU" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
<ItemTemplate>
<asp:Literal ID="Literal4" runat="server" Text='<%# Eval("PU", "{0:N2}")%>'> </asp:Literal>
</ItemTemplate>
<ItemStyle Width="100px" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField Visible="false">
<ItemTemplate>
<asp:Literal ID="LtPUExtranjero" runat="server" Text='<%# Eval("PUExtranjero", "{0:N2}")%>'> </asp:Literal>
</ItemTemplate>
<ItemStyle Width="100px" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField>
<EditItemTemplate>
<asp:Label ID="LbTotal" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:Literal ID="Literal5" runat="server" Text='<%# Eval("Total", "{0:N2}")%>'> </asp:Literal>
</ItemTemplate>
<ItemStyle Width="100px" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField>
<EditItemTemplate>
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CommandName="Update" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" ValidationGroup="GrpEditGuardar" />&nbsp;
<asp:LinkButton ID="imgC" runat="server" AlternateText="Cancelar" CausesValidation="False" CommandName="Cancel" CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>" />
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" ToolTip="Editar" CommandName="Edit" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
<asp:LinkButton ID="lnkRemove" runat="server" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" CommandName="Delete" CommandArgument='<%# Eval("No")%>' OnClientClick="return confirm('¿Desea borrar el registro?')"></asp:LinkButton>
</ItemTemplate>
<ItemStyle Width="130px"></ItemStyle>
</asp:TemplateField>
</Columns>
<RowStyle CssClass="Texto" />
<AlternatingRowStyle CssClass="TextoAlterno" />
<HeaderStyle CssClass="Titulos" />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<table class="table Widthall">
<tr>
<td width="755px" align="right">Total:</td>
<td width="100px" align="right">
<asp:Literal Text="0.00" ID="LtTotal" runat="server" />
</td>
<td width="100px"></td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<table width="100%">
<tr>
<td align="center">
<asp:Button ID="BtnGuardar" runat="server" Text="Guardar" OnClick="BtnGuardar_Click" class="btn btn-primary" ValidationGroup="GrpGuardar" />
<asp:Button ID="BtnDevolucion" runat="server" Visible="false" Text="Realizar Devolución" OnClick="BtnDevolucion_Click" class="btn btn-primary" ValidationGroup="GrpDevolucion" />
<asp:Button ID="BtnTraspaso" runat="server" Visible="false" Text="Realizar Traspaso" OnClick="BtnTraspaso_Click" class="btn btn-primary" ValidationGroup="GrpTraspaso" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabR" runat="server" HeaderText="Recepción Traspaso">
<ContentTemplate>
<asp:UpdatePanel runat="server" ID="UpFiltraRecepcion" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle magindate">
<div class="titlefiltros caption ">
<ul class="list-inline" style="font-size: 12px;">
<li>Almacén Recibe:
<asp:DropDownList ID="DdlAlmacenRecepcion" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me" Width="250px" ValidationGroup="GrpCargaTransitorios"></asp:DropDownList>
<%--<asp:RequiredFieldValidator ID="RFVAlmacenRecepcion" runat="server" ControlToValidate="DdlAlmacenRecepcion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen Recibe''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpCargaTransitorios"></asp:RequiredFieldValidator>--%>
<%--<ajax:ValidatorCalloutExtender ID="VCEAlmacenRecepcion" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacenRecepcion" Width="350px"></ajax:ValidatorCalloutExtender>--%>
</li>
<li>Almacén Transitorio:
<asp:DropDownList ID="DdlAlmacenTransitorioRecepcion" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me" Width="250px" ValidationGroup="GrpCargaTransitorios"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacenTransitorioRecepcion" runat="server" ControlToValidate="DdlAlmacenTransitorioRecepcion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen Transitorio''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpCargaTransitorios"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEAlmacenTransitorioRecepcion" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacenTransitorioRecepcion" Width="350px"></ajax:ValidatorCalloutExtender>
</li>
<li>Folio:
<asp:TextBox ID="TxtFolioRecepcion" runat="server" Width="70px"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumeros2" runat="server" TargetControlID="TxtFolioRecepcion" FilterType="Numbers" />
</li>
<%--<li>Transportista/Responsable:
<asp:DropDownList ID="DdlResponsableRecepcion" runat="server" DataTextField="Nombre" DataValueField="CveUsuario" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 200px !important;"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVResponsableRecepcion" runat="server" ControlToValidate="DdlResponsableRecepcion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen Transitorio''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpCargaTransitorios"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEResponsableRecepcion" runat="server" HighlightCssClass="vco" TargetControlID="RFVResponsableRecepcion" Width="350px"></ajax:ValidatorCalloutExtender>
</li>--%>
</ul>
</div>
<div class="tools">
<asp:Button ID="BtnCargaTransitorios" runat="server" Text="Consultar" OnClick="BtnCargaTransitorios_Click" ValidationGroup="GrpCargaTransitorios" class="btn btn-default" />
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div class="row">
<div class="col-md-5">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">RECEPCIÓN DE TRASPASO</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body rowpadding">
<div class="row">
<label class="col-sm-3">Fecha:</label>
<div class="col-sm-9">
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy">
<asp:TextBox ID="TxtFechaRecepcion" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" ValidationGroup="GrpRecibir" Width="100px" ClientIDMode="Static"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton runat="server" ID="ImgFechaRecepcion" class="btn default"> <i class="fa fa-calendar"></i> </asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MaskedEditExtender1" runat="server" TargetControlID="TxtFechaRecepcion" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaRecepcion" PopupButtonID="ImgFechaRecepcion" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaRecepcion" runat="server" ControlToValidate="TxtFechaRecepcion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpRecibir"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaRecepcion" runat="server" ControlToValidate="TxtFechaRecepcion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpRecibir"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaRecepcion" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaRecepcion" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
<div class="row">
<label class="col-sm-3">Recibió:</label>
<div class="col-sm-9">
<asp:TextBox runat="server" ID="TxtRecibio" />
</div>
</div>
<div class="row">
<label class="col-sm-3">Observaciones:</label>
<div class="col-sm-9">
<asp:TextBox ID="TxtObservacionesRecepcion" TextMode="MultiLine" Rows="2" runat="server" Width="300px"></asp:TextBox>
</div>
</div>
<div class="row">
<div style="text-align: center;" class="col-sm-12">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnRecibir" runat="server" Text="Recibir Traspaso" OnClick="BtnRecibir_Click" class="btn btn-primary" ValidationGroup="GrpRecibir" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<br />
<asp:UpdatePanel runat="server" ID="UpDatosRecepcion" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDatosRecepcion" DataKeyNames="CveMovimiento,CveUM,CvePS,CveAF,CveAlmacen,CveAlmacenDestino,CveMovimientoDetalle,PU,CveAlmacenSalida,CveMovimientoSalida,CveConsignacion" runat="server" AutoGenerateColumns="False" EmptyDataText="No hay movimientos pendientes" ToolTip="Listado de Movimientos" CssClass="table table-advance table-hover" Style="margin-top: -10px; text-align: center;" GridLines="None">
<Columns>
<asp:TemplateField>
<%--<HeaderTemplate>
<input type="checkbox" id="ChkAll" onclick="CheckAll();" />
</HeaderTemplate>--%>
<ItemTemplate>
<asp:CheckBox ID="Chk" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<asp:TextBox ID="TxtCantidad" Width="60px" runat="server" Text='<%# Eval("Cantidad", "{0:N1}")%>'></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumeros2" runat="server" TargetControlID="TxtCantidad" FilterType="Custom, Numbers" ValidChars="." />
</ItemTemplate>
<ItemStyle Width="100px"></ItemStyle>
</asp:TemplateField>
<asp:BoundField HeaderText="Disponible" DataField="Cantidad" DataFormatString="{0:N1}" ItemStyle-Width="80px" />
<asp:BoundField HeaderText="Unidad" DataField="UnidadMedida" ItemStyle-Width="40px" />
<asp:BoundField HeaderText="Código" DataField="Codigo" ItemStyle-Width="50px" />
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="500px" />
</Columns>
<RowStyle CssClass="Texto" />
<AlternatingRowStyle CssClass="TextoAlterno" />
<HeaderStyle CssClass="Titulos" />
</asp:GridView>
<br />
<br />
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
</ajax:TabContainer>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script type="text/javascript">
function AddItem(Text, Value, idproductows) {
// Create an Option object <%= DdlProductows.ClientID%>
var opt = document.createElement("option");
if (document.getElementById(idproductows)) {
// Add an Option object to Drop Down/List Box
document.getElementById(idproductows).options.add(opt);
// Assign text and value to Option object
opt.text = Text;
opt.value = Value;
}
}
Sys.Application.add_load(function (s, e) {
var Tam = TamañoVentana();
var Alto = Tam.height - 300;
if (Alto < 100) {
Alto = 100;
}
idselectws = '<%= DdlProductows.ClientID%>';
if ($("#" + idselectws)) {
if (!($('#<%= HFProducto.ClientID %>').val() === '')) {
AddItem($('#<%= HFTProducto.ClientID%>').val(), $('#<%= HFProducto.ClientID %>').val(), idselectws);
}
}
if ($("#" + idselectws).data('creado') === '1') { } else {
$("#" + idselectws).data('creado', '1')
$("#" + idselectws).select2({
ajax: {
url: "/Ashx/SIGWeb.ashx",
dataType: 'json',
delay: 250,
data: function (params) {
return {
Name: params.term, // search term
Metodo: 'getps'
};
},
processResults: function (data, params) {
// parse the results into the format expected by Select2
// since we are using custom formatting functions we do not need to
// alter the remote JSON data, except to indicate that infinite
// scrolling can be used
params.page = params.page || 1;
return {
results: data,
pagination: {
more: (params.page * 30) < data.total_count
}
};
},
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: 3
});
}
if ($("#<%= DdlProductows.ClientID%>")) {
if (!($('#<%= HFProducto.ClientID %>').val() === '')) {
AddItem($('#<%= HFTProducto.ClientID%>').val(), $('#<%= HFProducto.ClientID %>').val(), idselectws);
}
$("#<%= DdlProductows.ClientID%>").on("select2:select", function (e) { console.log(e); $('#<%= HFProducto.ClientID %>').val(e.params.data.id); $('#<%= HFTProducto.ClientID%>').val(e.params.data.text); $('#<%= myhidenbutton.ClientID %>').click(); });
}
if ($("#<%= DdlProducto.ClientID%>")) {
$("#<%= DdlProducto.ClientID%>").on("select2:select", function (e) { console.log(e); $('#<%= HFProducto.ClientID %>').val(e.params.data.id); $('#<%= HFTProducto.ClientID%>').val(e.params.data.text); });
}
debugger;
if (DdlProductows != '-1') {
Asigna1052(DdlProductows, DdlProducto, HFProducto, HFTProducto, sMyhidenbutton);
}
});
var DdlProductows = '-1';
var DdlProducto = '-1';
var HFProducto = '-1';
var HFTProducto = '-1';
var Myhidenbutton = '-1';
function Asigna105(tDdlProductows, tDdlProducto, tHFProducto, tHFTProducto, tsMyhidenbutton) {
DdlProductoWS = tDdlProductows;
DdlProducto = tDdlProducto;
HFProducto = tHFProducto;
tHFTProducto = tHFTProducto;
Myhidenbutton = tsMyhidenbutton;
Asigna1052(DdlProductows, DdlProducto, HFProducto, HFTProducto, sMyhidenbutton);
}
function Asigna1052(DdlProductows, DdlProducto, HFProducto, HFTProducto, sMyhidenbutton) {
if ($(DdlProductows)) {
if (!($(HFProducto).val() === '')) {
AddItem($(HFTProducto).val(), $(HFProducto).val(), DdlProductows.replace('#', ''));
}
}
if ($(DdlProductows).data('creado') === '1') { } else {
$(DdlProductows).data('creado', '1')
$(DdlProductows).select2({
ajax: {
url: "/Ashx/SIGWeb.ashx",
dataType: 'json',
delay: 250,
data: function (params) {
return {
Name: params.term, // search term
Metodo: 'getps'
};
},
processResults: function (data, params) {
params.page = params.page || 1;
return {
results: data,
pagination: {
more: (params.page * 30) < data.total_count
}
};
},
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: 3
});
}
if ($(DdlProductows)) {
if (!($(HFProducto).val() === '')) {
AddItem($(HFTProducto).val(), $(HFProducto).val(), DdlProductows.replace('#', ''));
}
$(DdlProductows).on("select2:select", function (e) { console.log(e); $(HFProducto).val(e.params.data.id); $(HFTProducto).val(e.params.data.text); $(sMyhidenbutton).click(); });
}
if ($(DdlProducto)) {
$(DdlProducto).on("select2:select", function (e) { console.log(e); $(HFProducto).val(e.params.data.id); $(HFTProducto).val(e.params.data.text); });
}
}
function Recalcula() {
var Cant = $get("TxtCantidad").value;
var Precio = $get("TxtPU").value;
if (isNaN(Cant))
Cant = 0;
if (isNaN(Precio))
Precio = 0;
$get("LbTotal").innerText = (ToDouble(Cant) * ToDouble(Precio)).toLocaleString('en-IN');
}
function RecalculaEdit(txtcantidad, txtpu, lbtotal) {
var Cant = txtcantidad.value;
var Precio = txtpu.value;
if (isNaN(Cant))
Cant = 0;
if (isNaN(Precio))
Precio = 0;
lbtotal.innerText = (ToDouble(Cant) * ToDouble(Precio)).toLocaleString('en-IN');
}
function CambiaConcepto() { //orita no se esta usando - israel piña 12 enero
if (($("#DdlConcepto option:selected").val()) == 10) {
$("#TrSerieFolio").show(200);
$("#TrProveedor").show(200);
} else {
$("#TrSerieFolio").hide(200);
$("#TrProveedor").hide(200);
}
}
function LimitaCantidadDevolucion(cantidad, devolucion) {
if (ToDouble(cantidad) < ToDouble(devolucion.value))
devolucion.value = cantidad.toLocaleString('en-IN');
}
function LimitaCantidad(txt, cantidad) {
if (ToDouble(txt.value) > ToDouble(cantidad))
txt.value = FormatoNumero(cantidad);
}
</script>
</asp:Content>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,222 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="ConsignacionesMaterial.aspx.vb" Inherits="Inventarios_ConsignacionesMaterial" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Consignación de Material
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<div style="margin-bottom: 2%;" class="SubTotales">s
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT" style="">
<div class="titlefiltros caption ">
<ul class="list-inline">
<li>
<asp:Label ID="lbPersonal" runat="server" Text="Personal:"></asp:Label>
<%--<ajax:ListSearchExtender ID="ListSearchExtender1" runat="server" TargetControlID="DdlPersonal" PromptCssClass="Titulos" PromptText="Escriba Nombre del Personal." QueryPattern="Contains" PromptPosition="Top" IsSorted="TRUE" QueryTimeout="0"></ajax:ListSearchExtender>--%>
<asp:DropDownList ID="DdlPersonal" runat="server" DataTextField="Nombre" DataValueField="CvePersonal" AutoPostBack="true" Class="table-group-action-input form-control input-inline input-small input-sm select2me" Style="width: 400px !important;"></asp:DropDownList>
<asp:CompareValidator ID="CVPersonal" runat="server"
ControlToValidate="DdlPersonal"
Type="Integer" Operator="GreaterThan"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Personal''</b> es necesario, por favor selecione uno." Display="None"
ValueToCompare="0" ValidationGroup="GrpAgregar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="CVPersonal" Width="300px"></ajax:ValidatorCalloutExtender>
</li>
<li>
<asp:UpdatePanel ID="UPEncabezado" runat="server" UpdateMode="Conditional">
<ContentTemplate>
Sección:
<asp:DropDownList ID="DdlSeccion" runat="server" DataTextField="Seccion" DataValueField="CveSeccion" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 170px !important;">
<asp:ListItem Text="Seleccione Sección." Value="-1"></asp:ListItem>
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
</li>
</ul>
<br />
<ul class="list-inline">
<li style="width: 300px;">Almacén:
<asp:DropDownList ID="DdlAlmacen" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" AutoPostBack="true" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 170px !important;">
</asp:DropDownList>
<asp:CompareValidator ID="CVDdlALmacen" runat="server"
ControlToValidate="DdlAlmacen"
Type="Integer" Operator="GreaterThan"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen''</b> es necesario, por favor selecione uno." Display="None"
ValueToCompare="0" ValidationGroup="GrpAgregar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" HighlightCssClass="vco" TargetControlID="CVDdlALmacen" Width="300px"></ajax:ValidatorCalloutExtender>
</li>
<li>Fecha:
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
<asp:TextBox ID="TxtFecha" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 118px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFecha" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFecha" runat="server" TargetControlID="TxtFecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFecha" TargetControlID="TxtFecha" PopupButtonID="ImgFecha" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFecha" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFecha2" runat="server" HighlightCssClass="vco" TargetControlID="CVFecha" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</li>
</ul>
<ul class="list-inline">
<li>
<asp:RadioButton ID="cbSC" runat="server" Text="Salida por Consignación" AutoPostBack="true" GroupName="GrpN" Checked="true" />
</li>
<li>
<asp:RadioButton ID="cbEC" runat="server" Text="Entrada por Consignación" AutoPostBack="true" GroupName="GrpN" Checked="false" />
</li>
</ul>
</div>
</div>
</div>
</div>
<table class="table table-striped table-advance table-hover" width="80%">
<thead>
<tr class="Titulos">
<th id="ColR" runat="server" width="10%" visible="false">Retorno</th>
<th width="10%">Cantidad</th>
<th width="15%">Unidad Medida</th>
<th width="50%">Clasificación
<br />
Producto o Servicio</th>
<th width="10%"></th>
<th width="5%"></th>
</tr>
</thead>
<tbody>
<div id="AddControls" runat="server">
<tr align="center">
<td>
<asp:TextBox ID="tbCant" runat="server" Width="80%"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FTBECant" runat="server"
TargetControlID="tbCant"
FilterType="Custom, Numbers"
ValidChars=".," />
<asp:CompareValidator ID="CompareValidator1" runat="server"
ControlToValidate="tbCant"
Type="Integer" Operator="GreaterThan"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> debe que ser un número mayor a 0, por favor ingrese uno." Display="None"
ValueToCompare="0" ValidationGroup="GrpAgregar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender5" runat="server" HighlightCssClass="vco" TargetControlID="CompareValidator1" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td>
<asp:DropDownList ID="ddlUnidad" runat="server" DataTextField="UM" DataValueField="CveUM" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 90% !important;">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList></td>
<asp:CompareValidator ID="CVUnidad" runat="server"
ControlToValidate="ddlUnidad"
Type="Integer" Operator="GreaterThan"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Unidad Medida''</b> es necesario, por favor selecione una." Display="None"
ValueToCompare="0" ValidationGroup="GrpAgregar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender4" runat="server" HighlightCssClass="vco" TargetControlID="CVUnidad" Width="300px"></ajax:ValidatorCalloutExtender>
<td>
<asp:DropDownList ID="DdlClasificacion" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Class="table-group-action-input form-control input-inline input-small input-sm select2me" Style="width: 90% !important;">
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="ddlProducto" runat="server" AutoPostBack="true" DataTextField="PSCodigo" DataValueField="CvePS" Class="table-group-action-input form-control input-inline input-small input-sm select2me" Style="width: 90% !important;">
<asp:ListItem Selected="True" Text="Seleccione un Producto" Value="-1"></asp:ListItem>
</asp:DropDownList>
<%--<ajax:ListSearchExtender ID="LSEPS" runat="server" TargetControlID="ddlProducto" PromptCssClass="Titulos" PromptText="Escriba el Producto o Servicio." QueryPattern="Contains" PromptPosition="Top" IsSorted="TRUE" QueryTimeout="0"></ajax:ListSearchExtender>--%>
<asp:CompareValidator ID="CVProducto" runat="server"
ControlToValidate="ddlProducto"
Type="Integer" Operator="GreaterThan"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Producto''</b> es necesario, por favor seleccione una." Display="None"
ValueToCompare="0" ValidationGroup="GrpAgregar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender3" runat="server" HighlightCssClass="vco" TargetControlID="CVProducto" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td></td>
<td style="text-align: center; vertical-align: central;">
<asp:LinkButton ID="lbAdd" runat="Server" Text="Agregar" ValidationGroup="GrpAgregar"></asp:LinkButton>
</td>
</tr>
</div>
</tbody>
</table>
<asp:UpdatePanel ID="UPGV" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div align="left">
<asp:GridView ID="GvConsignacion" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowFooter="false" Width="80%" ShowHeader="false" CssClass="table table-striped table-advance table-hover" Style="margin-top: -10px; text-align: center;" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Retorno" Visible="false">
<ItemTemplate>
<asp:TextBox ID="tbCantR" runat="server" Width="75%"> </asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FTBCantidad" runat="server"
TargetControlID="tbCantR"
FilterType="Custom, Numbers"
ValidChars=".," />
</ItemTemplate>
<ItemStyle Width="10%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<asp:Label ID="lbCantidad" runat="server" Text='<%# Eval("Cantidad","{0:N2}")%>'> </asp:Label>
</ItemTemplate>
<ItemStyle Width="10%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="U.M.">
<ItemTemplate>
<asp:Label ID="lbUM" runat="server" Text='<%# Eval("UnidadMedida")%>'> </asp:Label>
</ItemTemplate>
<ItemStyle Width="15%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Productos/Servicios">
<ItemTemplate>
<asp:Label ID="lbPS" runat="server" Text='<%# Eval("PS")%>'> </asp:Label>
</ItemTemplate>
<ItemStyle Width="50%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Almacén">
<ItemTemplate>
<asp:Label ID="lbAlm" runat="server" Text='<%# Eval("Almacen")%>'> </asp:Label>
</ItemTemplate>
<ItemStyle Width="10%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Eliminar">
<ItemTemplate>
<asp:ImageButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" ImageUrl="/Imagenes/Btn_Delete.png" />
</ItemTemplate>
<ItemStyle Width="5%" />
<HeaderStyle CssClass="Titulos" />
</asp:TemplateField>
</Columns>
<HeaderStyle CssClass="Titulos" />
<RowStyle CssClass="TextoAlterno" />
<AlternatingRowStyle CssClass="TextoAlterno" />
</asp:GridView>
</div>
<div align="center" style="margin: 1%;">
<asp:Button ID="btnGuardar" runat="server" ValidationGroup="GrpGuardar" Text="Material Utilizado" Visible="false" class="btn btn-primary" />
<asp:Button ID="btnGuardarMa" runat="server" ValidationGroup="GrpGuardar2" Text="Ingresar Material" Visible="false" class="btn btn-primary" />
<asp:Button ID="btnGuardarC" runat="server" Text="Guardar" class="btn btn-primary" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script type="text/javascript">
function ValidarCantidad(t, c) {
if (t.value < 1) {
t.value = "";
alert("Ingrese un número mayor a 0.");
}
if (t.value > c) {
t.value = c;
alert("Cantidad excedida a la consignada.");
}
}
</script>
</asp:Content>

View File

@@ -0,0 +1,439 @@
Imports System.Data
Imports Extensiones
Partial Class Inventarios_ConsignacionesMaterial
Inherits ClsPaginas
#Region "P R O P I E D A D E S"
Public Property DTmp() As DataTable
Get
Return CType(ViewState("DTmp"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTmp") = value
End Set
End Property
Public Property CveConcepto() As Integer
Get
Return CType(ViewState("CveConcepto"), Integer)
End Get
Set(value As Integer)
ViewState("CveConcepto") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CreaDTCons()
InicializarListas()
TxtFecha.Text = Now
End If
End Sub
Private Sub CreaDTCons()
DTmp = New DataTable
DTmp.Columns.Add("No", GetType(Integer))
DTmp.Columns.Add("Cantidad", GetType(Double))
DTmp.Columns.Add("CveUnidadMedida", GetType(Integer))
DTmp.Columns.Add("UnidadMedida", GetType(String))
DTmp.Columns.Add("CveAlmacen", GetType(Integer))
DTmp.Columns.Add("Almacen", GetType(String))
DTmp.Columns.Add("CvePS", GetType(Integer))
DTmp.Columns.Add("PU", GetType(Double))
DTmp.Columns.Add("PS", GetType(String))
DTmp.Columns.Add("Nuevo", GetType(Integer))
DTmp.Columns.Add("CveSeccionAlmacen", GetType(Integer))
End Sub
Private Sub AddDTmp(Cantidad As Integer, CveUnidadMedida As Integer, UnidadMedida As String, CvePS As Integer, PS As String, Almacen As String, CveAlmacen As Integer, CveSeccion As Integer)
Dim Row As DataRow = Nothing
Row = DTmp.NewRow()
Row("Cantidad") = Cantidad
Row("CveUnidadMedida") = CveUnidadMedida
Row("CveAlmacen") = CveAlmacen
Row("CveSeccionAlmacen") = If(CveSeccion = 0, -1, CveSeccion)
Row("Almacen") = If(CveAlmacen <> -1, Almacen, "Sin Sección")
Row("UnidadMedida") = UnidadMedida
Row("CvePS") = CvePS
Row("PS") = PS
Row("Nuevo") = 1
DTmp.Rows.Add(Row)
UPGV.Update()
End Sub
Private Sub InicializarListas()
Dim ObjPersonal As New ClsRH
Dim productos As New ClsProductosServicios
DdlAlmacen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
DdlAlmacen.DataBind()
DdlAlmacen.Items.Insert(0, New ListItem("Seleccione Almacen.", "-1"))
CveConcepto = 7
'Llenar el dropdownlist de Secciones
DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa)
DdlClasificacion.DataBind()
ddlProducto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
ddlProducto.DataBind()
ddlProducto.Items.Insert(0, New ListItem("Seleccione Producto.", "-1"))
If ObjPersonal.GetPersonal(-1, UsuarioActual.CveEmpresa) Then
DdlPersonal.DataSource = ObjPersonal.DtResultados
DdlPersonal.DataBind()
DdlPersonal.Items.Insert(0, New ListItem("Seleccione Personal.", "-1"))
End If
ObjPersonal.Dispose()
productos.Dispose()
End Sub
Protected Sub btnGuardar_Click(sender As Object, e As EventArgs) Handles btnGuardar.Click
If Not DdlPersonal.SelectedValue.ToEntero = -1 Then
If GvConsignacion.Rows.Count > 0 Then
Dim CveMovimiento As Integer
Dim CveMovimientoC As Integer
Dim Mov As New ClsInventarios
Mov.IniciaTransacSQL() 'Inicia la transacción
Dim CvePersonal As Integer = -1
Dim Mensaje As String = ""
CvePersonal = DdlPersonal.SelectedValue.ToEntero
For Each dr As DataRow In DTmp.FiltraParametros("", DistinctColumns:={"CveAlmacen"}).Rows
CveMovimientoC = Mov.AddMovimiento(dr("CveAlmacen").ToString.ToEntero, 6, 1, TxtFecha.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, CvePersonal)
If CveMovimientoC <= 0 Then
Alert("No se pudo almacenar el movimiento correctamente", TipoMensaje.MsgError)
Mov.RollBack() 'deshace lo insertado
Else
For Each gr As GridViewRow In GvConsignacion.Rows
If Not gr.FCTextBox("tbCantR").Text.ToString = "" Then
If Not Mov.AddMovimientoDetalle(CveMovimientoC, gr.FCTextBox("tbCantR").Text.ToString.ToDouble, DTmp.Rows(gr.RowIndex)("CveUnidadMedida").ToString.ToEntero, DTmp.Rows(gr.RowIndex)("CvePS").ToString.ToEntero,
DTmp.Rows(gr.RowIndex)("PU").ToString.ToDouble, DTmp.Rows(gr.RowIndex)("CveSeccionAlmacen").ToString.ToEntero) Then
Mensaje = "Error al guardar los movimientos"
Exit For
End If
End If
Next
CveMovimiento = Mov.AddMovimiento(dr("CveAlmacen").ToString.ToEntero, 3, 1, TxtFecha.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, CvePersonal)
If CveMovimiento <= 0 Then
Alert("No se pudo almacenar el movimiento correctamente", TipoMensaje.MsgError)
Mov.RollBack() 'deshace lo insertado
Else
For Each gr As GridViewRow In GvConsignacion.Rows
If Not gr.FCTextBox("tbCantR").Text.ToString = "" Then
If Not Mov.AddMovimientoDetalle(CveMovimiento, gr.FCTextBox("tbCantR").Text.ToString.ToDouble, DTmp.Rows(gr.RowIndex)("CveUnidadMedida").ToString.ToEntero, DTmp.Rows(gr.RowIndex)("CvePS").ToString.ToEntero,
DTmp.Rows(gr.RowIndex)("PU").ToString.ToDouble, DTmp.Rows(gr.RowIndex)("CveSeccionAlmacen").ToString.ToEntero) Then
Mensaje = "Error al guardar los movimientos"
Exit For
End If
End If
Next
End If
End If
Next
If Mensaje = "" Then
Mov.Commit() ' aplica los movimientos insertados
Alert("Movimientos Registrado", TipoMensaje.MsgInformacion)
Else
Mov.RollBack() 'deshace lo insertado
Alert(Mensaje, TipoMensaje.MsgError)
End If
If Mov.GetConsignaciones(UsuarioActual.CveEmpresa, DdlPersonal.SelectedValue.ToEntero) Then
GvConsignacion.DataSource = Mov.DtResultados
GvConsignacion.DataBind()
DTmp = Mov.DtResultados
End If
Mov.Dispose() 'elimino la instancia
End If
End If
End Sub
Protected Sub lbAdd_Click(sender As Object, e As EventArgs) Handles lbAdd.Click
Dim ObjInventario As New ClsInventarios
Dim Existencia As Double = ObjInventario.GetExistenciasPS(ddlProducto.SelectedValue.ToEntero, ddlUnidad.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero)
ObjInventario.GetConsignaciones(UsuarioActual.CveEmpresa, -1)
Dim DTmpC As DataTable = ObjInventario.DtResultados
Dim Total As Double = Existencia - If(DTmpC.FiltraParametros("CvePS=" & ddlProducto.SelectedValue).Rows.Count > 0, DTmpC.FiltraParametros("CvePS=" & ddlProducto.SelectedValue).SUM("Cantidad"), 0) - If(DTmp.FiltraParametros("Nuevo=1").Rows.Count > 0, DTmp.FiltraParametros("Nuevo=1").SUM("Cantidad"), 0)
If CveConcepto = 7 Then
If tbCant.Text >= Total Then
Alert("No hay existencia suficiente en el Inventario.", TipoMensaje.MsgInformacion)
ObjInventario.Dispose()
Return
End If
'ElseIf CveConcepto = 6 Then
' If Not DdlPersonal.SelectedValue.ToEntero = -1 Then
' If DTmp.FiltraParametros("CvePS=" & ddlProducto.SelectedValue).SUM("Cantidad") < tbCant.Text.ToDouble Then
' Alert("No hay suficiente material consignado.")
' ObjInventario.Dispose()
' Return
' End If
' Else
' Alert("Seleccione Personal.")
' Return
' End If
End If
AddDTmp(tbCant.Text.ToDouble, ddlUnidad.SelectedValue.ToEntero, ddlUnidad.SelectedItem.ToString, ddlProducto.SelectedValue, ddlProducto.SelectedItem.ToString, DdlAlmacen.SelectedItem.ToString, DdlAlmacen.SelectedValue.ToEntero, DdlSeccion.SelectedValue.ToEntero)
tbCant.Text = ""
GvConsignacion.DataSource = DTmp
GvConsignacion.DataBind()
ObjInventario.Dispose()
End Sub
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClasificacion.SelectedIndexChanged
ddlProducto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero)
ddlProducto.DataBind()
ddlProducto.Items.Insert(0, New ListItem("----", "-1"))
End Sub
Protected Sub ddlProducto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlProducto.SelectedIndexChanged
Dim ObjProducto As New ClsProductosServicios
If ObjProducto.GetPSEquivalencias(ddlProducto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
ddlUnidad.DataSource = ObjProducto.DtResultados
ddlUnidad.DataBind()
End If
ObjProducto.Dispose()
UPGV.Update()
End Sub
Protected Sub DdlAlmacen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlAlmacen.SelectedIndexChanged
DdlSeccion.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa)
DdlSeccion.DataBind()
DdlSeccion.Items.Insert(0, New ListItem("Seleccione Sección.", "-1"))
UPEncabezado.Update()
End Sub
Protected Sub DdlPersonal_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlPersonal.SelectedIndexChanged
Dim ObjInventario As New ClsInventarios
If ObjInventario.GetConsignaciones(UsuarioActual.CveEmpresa, DdlPersonal.SelectedValue) Then
GvConsignacion.DataSource = ObjInventario.DtResultados
DTmp = ObjInventario.DtResultados
GvConsignacion.DataBind()
End If
ObjInventario.Dispose()
UPGV.Update()
End Sub
Protected Sub btnGuardarMa_Click(sender As Object, e As EventArgs) Handles btnGuardarMa.Click
Dim Mov As New ClsInventarios
If Not DdlAlmacen.SelectedValue.ToEntero = -1 Then
If Not DdlPersonal.SelectedValue.ToEntero = -1 Then
If GvConsignacion.Rows.Count > 0 Then
Dim CveMovimiento As Integer
Dim Mensaje As String = ""
Mov.IniciaTransacSQL() 'Inicia la transacción
Dim CvePersonal As Integer = -1
CvePersonal = DdlPersonal.SelectedValue.ToEntero
For Each dr As DataRow In DTmp.FiltraParametros("", DistinctColumns:={"CveAlmacen"}).Rows
CveMovimiento = Mov.AddMovimiento(dr("CveAlmacen").ToString.ToEntero, 6, 1, TxtFecha.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, CvePersonal)
If CveMovimiento <= 0 Then
Alert("No se pudo almacenar el movimiento correctamente", TipoMensaje.MsgError)
Mov.RollBack() 'deshace lo insertado
Else
For Each gr As GridViewRow In GvConsignacion.Rows
If Not gr.FCTextBox("tbCantR").Text.ToString = "" Then
If Not Mov.AddMovimientoDetalle(CveMovimiento, gr.FCTextBox("tbCantR").Text.ToString.ToDouble, DTmp.Rows(gr.RowIndex)("CveUnidadMedida").ToString.ToEntero, DTmp.Rows(gr.RowIndex)("CvePS").ToString.ToEntero,
DTmp.Rows(gr.RowIndex)("PU").ToString.ToDouble, DTmp.Rows(gr.RowIndex)("CveSeccionAlmacen").ToString.ToEntero) Then
Mensaje = "Error al guardar los movimientos"
Exit For
End If
End If
Next
End If
Next
If Mensaje = "" Then
Mov.Commit() ' aplica los movimientos insertados
Alert("Movimientos Registrado", TipoMensaje.MsgInformacion)
Else
Mov.RollBack() 'deshace lo insertado
Alert(Mensaje, TipoMensaje.MsgError)
End If
' inicializarTablas()
If Mov.GetConsignaciones(UsuarioActual.CveEmpresa, DdlPersonal.SelectedValue.ToEntero) Then
GvConsignacion.DataSource = Mov.DtResultados
GvConsignacion.DataBind()
DTmp = Mov.DtResultados
End If
End If
Else
Alert("No hay registros por guardar.", TipoMensaje.MsgInformacion)
End If
Else
Alert("Seleccione un Almacén.", TipoMensaje.MsgAdvertencia)
End If
Mov.Dispose() 'elimino la instancia
UPGV.Update()
End Sub
Protected Sub cbEC_CheckedChanged(sender As Object, e As EventArgs) Handles cbEC.CheckedChanged
If Not DdlPersonal.SelectedValue.ToEntero = -1 Then
Dim ObjInventario As New ClsInventarios
If ObjInventario.GetConsignaciones(UsuarioActual.CveEmpresa, DdlPersonal.SelectedValue) Then
GvConsignacion.DataSource = ObjInventario.DtResultados
DTmp = ObjInventario.DtResultados
GvConsignacion.DataBind()
End If
ObjInventario.Dispose()
UPGV.Update()
End If
CveConcepto = 6
GvConsignacion.Columns(0).Visible = True
btnGuardar.Visible = True
btnGuardarMa.Visible = True
btnGuardarC.Visible = False
AddControls.Visible = False
ColR.Visible = True
UPEncabezado.Update()
End Sub
Protected Sub cbSC_CheckedChanged(sender As Object, e As EventArgs) Handles cbSC.CheckedChanged
CveConcepto = 7
btnGuardar.Visible = False
btnGuardarMa.Visible = False
btnGuardarC.Visible = True
GvConsignacion.Columns(0).Visible = False
UPGV.Update()
AddControls.Visible = True
ColR.Visible = False
UPEncabezado.Update()
End Sub
Protected Sub btnGuardarC_Click(sender As Object, e As EventArgs) Handles btnGuardarC.Click
Dim Mov As New ClsInventarios
If Not DdlPersonal.SelectedValue.ToEntero = -1 AndAlso DTmp.FiltraParametros("Nuevo=1").Rows.Count > 0 Then
If GvConsignacion.Rows.Count > 0 Then
Dim CveMovimiento As Integer
Dim CvePersonal As Integer = -1
Mov.IniciaTransacSQL() 'Inicia la transacción
CvePersonal = DdlPersonal.SelectedValue.ToEntero
For Each dr As DataRow In DTmp.FiltraParametros("Nuevo=1", DistinctColumns:={"CveAlmacen"}).Rows
CveMovimiento = Mov.AddMovimiento(dr("CveAlmacen").ToString.ToEntero, 7, 1, TxtFecha.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, CvePersonal)
If CveMovimiento <= 0 Then
Alert("No se pudo almacenar el movimiento correctamente", TipoMensaje.MsgError)
Mov.RollBack() 'deshace lo insertado
Else
Dim Mensaje As String = ""
For Each row As DataRow In DTmp.FiltraParametros("Nuevo=1").Rows
If Not Mov.AddMovimientoDetalle(CveMovimiento, row("Cantidad").ToString.ToDouble, row("CveUnidadMedida").ToString.ToEntero, row("CvePS").ToString.ToEntero, row("PU").ToString.ToDouble,
row("CveSeccionAlmacen").ToString.ToEntero) Then
Mensaje = "Error al guardar los movimientos"
Exit For
End If
Next
If Mensaje = "" Then
Mov.Commit() ' aplica los movimientos insertados
Alert("Movimientos Registrado", TipoMensaje.MsgInformacion)
Else
Mov.RollBack() 'deshace lo insertado
Alert(Mensaje, TipoMensaje.MsgError)
End If
End If
Next
If Mov.GetConsignaciones(UsuarioActual.CveEmpresa, DdlPersonal.SelectedValue.ToEntero) Then
GvConsignacion.DataSource = Mov.DtResultados
GvConsignacion.DataBind()
DTmp = Mov.DtResultados
End If
End If
Else
Alert("No hay registros por guardar.", TipoMensaje.MsgInformacion)
End If
Mov.Dispose() 'elimino la instancia
End Sub
Protected Sub GvConsignacion_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvConsignacion.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("Nuevo") = 0 Then
e.Row.FCImageButton("imgD").Visible = False
e.Row.FCTextBox("tbCantR").Attributes.Add("onchange", String.Format("ValidarCantidad(this,{0})", e.Row.DBCampo("Cantidad")))
End If
End If
End Sub
Protected Sub GvConsignacion_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvConsignacion.RowDeleting
DTmp.Rows.RemoveAt(e.RowIndex)
GvConsignacion.DataSource = DTmp
GvConsignacion.DataBind()
End Sub
End Class

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,182 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Equivalencia.aspx.vb" Inherits="Inventarios_Equivalencia" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Equivalencias
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<div style="padding-left: 20px;">
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT" style="">
<div class="titlefiltros caption ">
<ul class="list-inline">
<li>Producto:
<asp:DropDownList ID="ddlProducto" runat="server" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 300px !important;" AutoPostBack="True"></asp:DropDownList>
</li>
</ul>
</div>
</div>
</div>
<asp:UpdatePanel ID="UPPEquiv" runat="server" RenderMode="Inline" UpdateMode="Conditional" ViewStateMode="Inherit">
<ContentTemplate>
<table style="width: 825px" class="table table-striped table-advance table-hover">
<thead>
<tr class="Titulos">
<th style="width: 56px">#</th>
<th style="width: 85px">Cantidad</th>
<th style="width: 178px">Unidad de medida</th>
<th style="width: 132px">Precio</th>
<th style="width: 100px">Unidad base</th>
<th style="width: 100px"></th>
</tr>
</thead>
<tr>
<td style="width: 56px"></td>
<td style="width: 85px" align="center">
<asp:TextBox ID="txtCantidad" Width="75px"
MaxLength="5" runat="server"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="ftbeCant" runat="server"
TargetControlID="txtCantidad"
FilterType="Custom, Numbers"
ValidChars="+-.," />
<asp:RequiredFieldValidator runat="server" ID="RFVCantidad" ControlToValidate="txtCantidad" ValidationGroup="GrpAgregar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingrése una." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOCantidad" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td style="width: 178px" align="center">
<asp:DropDownList ID="ddlUnidad" runat="server" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 170px !important;" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida"></asp:DropDownList></td>
<td style="width: 132px" align="center">
<asp:TextBox ID="txtPrecio" runat="server"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="ftbe" runat="server"
TargetControlID="txtPrecio"
FilterType="Custom, Numbers"
ValidChars="+-.," />
<asp:RequiredFieldValidator runat="server" ID="RFVPrecio" ControlToValidate="txtPrecio" ValidationGroup="GrpAgregar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Precio Unitario''</b> es necesario, por favor ingrése uno." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOPrecio" runat="server" HighlightCssClass="vco" TargetControlID="RFVPrecio" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td align="center">
<asp:CheckBox ID="cbUnidadBase" runat="server" />
</td>
<td align="center" style="width: 152px">
<asp:Button ID="btAgregar" runat="server" ValidationGroup="GrpAgregar" Width="80px" Text="Agregar" class="btn btn-primary" />
<asp:Button ID="btCancelar" runat="server" Text="Cancelar" Width="80px" Visible="False" class="btn btn-danger" />
</td>
</tr>
</table>
<div style="min-height: 300px; overflow-y: scroll;">
<asp:GridView ID="gvEquivalencias" Width="825px" runat="server" ShowHeader="False" DataKeyNames="CvePS,CveUM,UnidadBase" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowFooter="True" ShowHeaderWhenEmpty="True" OnRowCancelingEdit="CancelEdit" OnRowEditing="EditRow" CssClass="table table-striped table-advance table-hover" Style="margin-top: -10px; text-align: center;" GridLines="None">
<Columns>
<asp:TemplateField ItemStyle-Width="56px" HeaderText="">
<ItemTemplate>
<asp:Label ID="lbNo" runat="server"
Text='<%# Eval("No")%>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="63px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="85px" HeaderText="Cantidad">
<ItemTemplate>
<asp:Label ID="lbCantidad" runat="server"
Text='<%# Eval("Cantidad","{0:N4}")%>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtECantidad" runat="server"
Text='<%# Eval("Cantidad")%>' Width="75"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="ftbeCantidad" runat="server"
TargetControlID="txtECantidad"
FilterType="Custom, Numbers"
ValidChars="+-.," />
<asp:RequiredFieldValidator runat="server" ID="RFVECantidad" ControlToValidate="txtECantidad" ValidationGroup="GrpEditar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingrése una." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemStyle Width="97px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="178px" HeaderText="Unidad">
<ItemTemplate>
<asp:Label ID="lbUnidad" runat="server"
Text='<%# Eval("Unidad")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="ddlEUnidad" runat="server" Width="170px" Enabled="True" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida"></asp:DropDownList>
</EditItemTemplate>
<ItemStyle Width="205px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="132px" HeaderText="Precio">
<ItemTemplate>
<asp:Label ID="lbPrecio" runat="server"
Text='<%# Eval("Precio","{0:N2}")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEPrecio" runat="server"
Text='<%# Eval("Precio","{0:N2}")%>'></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="ftbePrecio" runat="server"
TargetControlID="txtEPrecio"
FilterType="Custom, Numbers"
ValidChars="+-.," />
<asp:RequiredFieldValidator runat="server" ID="RFVEPrecio" ControlToValidate="txtEPrecio" ValidationGroup="GrpEditar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Precio Unitario''</b> es necesario, por favor ingrése uno." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
</EditItemTemplate>
<ItemStyle Width="152px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="100px" HeaderText="Unidad base">
<ItemTemplate>
<asp:CheckBox ID="cbBase" Checked='<%# Eval("Base")%>' runat="server" Enabled="False" />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="cbEBase" runat="server"
Checked='<%# Eval("Base")%>'></asp:CheckBox>
</EditItemTemplate>
<ItemStyle Width="114px"></ItemStyle>
</asp:TemplateField>
<%-- <asp:TemplateField >
<ItemTemplate >
<asp:ImageButton ID="lnkRemove" runat="server"
ImageUrl="../Imagenes/Btn_Delete.png"
CommandArgument='<%# Eval("No")%>'
OnClientClick="return confirm('¿Desea borrar el registro?')"
Text="Quitar" OnClick="DeleteRow">
</asp:ImageButton>
</ItemTemplate>
<ItemStyle Width="50px"></ItemStyle>
</asp:TemplateField>--%>
<asp:TemplateField HeaderText="Editar">
<EditItemTemplate>
<center>
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CommandName="Update" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" ValidationGroup="GrpGV" OnClientClick="return confirm('¿Estas seguro de guardar los cambios realizados?');" />
<asp:LinkButton ID="imgC" runat="server" AlternateText="Cancelar" CausesValidation="False" CommandName="Cancel" CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>" />
</center>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" CommandName="Edit" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Eliminar">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" OnClientClick="return confirm('¿Estas seguro que desea eliminar la equivalencia?');" />
</ItemTemplate>
</asp:TemplateField>
<%-- <asp:CommandField ButtonType="Button" ShowDeleteButton="True" />--%>
</Columns>
<RowStyle CssClass="Texto" />
<AlternatingRowStyle CssClass="TextoAlterno" />
</asp:GridView>
<br />
<br />
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlProducto" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,289 @@
Imports System.Data
Imports Extensiones
Partial Class Inventarios_Equivalencia
Inherits ClsPaginas
#Region "Propiedades"
Public Property DtEquivalencias() As DataTable
Get
Return CType(ViewState("dtEquivalencias"), DataTable)
End Get
Set(value As DataTable)
ViewState("dtEquivalencias") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
inicializarTabla()
btAgregar.Enabled = False
InicializarListas()
End If
End Sub
Private Sub InicializarListas()
'Llenar el dropdownlist de unidad de medida
ddlUnidad.DataSource = GlobalDTUnidadesMedida()
ddlUnidad.DataBind()
'Llenar el dropdownlist de Productosy servicios
Dim productos As New ClsProductosServicios
Dim resProductos As New DataTable
If productos.GetAllPS(UsuarioActual.CveEmpresa) Then
resProductos = productos.DtResultados
ddlProducto.DataSource = resProductos
ddlProducto.DataTextField = "PS"
ddlProducto.DataValueField = "CvePS"
ddlProducto.DataBind()
End If
productos.Dispose()
ddlProducto.Items.Insert(0, New ListItem("----", "0"))
End Sub
Protected Sub btAgregar_Click(sender As Object, e As EventArgs) Handles btAgregar.Click
Dim Precio As Double = txtPrecio.Text.ToDouble
Dim CveUnidadMedida As Integer = ddlUnidad.SelectedValue.ToEntero
Dim Cantidad As Double = txtCantidad.Text.ToDouble
Dim UnidadBase As Boolean = cbUnidadBase.Checked
Dim psEquivalencias As New ClsProductosServicios
Dim Mensaje As String = ""
Dim dt As New DataTable
dt = CType(Me.ViewState("dtEquivalencias"), DataTable)
If dt.Rows.Count = 0 Then
UnidadBase = True
End If
If cbUnidadBase.Checked Then
reAsignarBase(dt, dt.Rows.Count - 1)
End If
If psEquivalencias.AddPSEquivalencias(ddlProducto.SelectedValue.ToEntero, CveUnidadMedida, Cantidad, UnidadBase, Precio, 1) Then
gvEquivalencias.DataSource = psEquivalencias.DtResultados
ViewState("dtEquivalencias") = psEquivalencias.DtResultados
txtCantidad.Text = ""
txtPrecio.Text = ""
ddlUnidad.SelectedIndex = -1
cbUnidadBase.Checked = False
End If
psEquivalencias.Dispose()
gvEquivalencias.DataBind()
End Sub
Private Function reordenarNum(dt As DataTable) As DataTable
If dt.Rows.Count > 0 Then
For i As Integer = 0 To (dt.Rows.Count - 1)
dt.Rows(i).Item(0) = (i + 1)
Next i
End If
Return dt
End Function
Private Function existeUM(um As Integer) As Boolean
Dim res As Boolean = False
Dim dt As DataTable = CType(Me.ViewState("dtEquivalencias"), DataTable)
For i As Integer = 0 To (dt.Rows.Count - 1)
If dt.Rows(i).Item("CveUnidadMedida").ToString = um.ToString Then
Return True
End If
Next i
Return res
End Function
Private Function existeUB(dt As DataTable) As Boolean
Dim res As Boolean = False
Dim count As Integer = 0
' Dim dt As DataTable = Me.ViewState("dtEquivalencias")
For i As Integer = 0 To (dt.Rows.Count - 1)
If CType(dt.Rows(i).Item("Base"), Boolean) Then
count = count + 1
End If
Next
If count = 1 Then
res = True
End If
Return res
End Function
Private Function reAsignarBase(dt As DataTable, num As Integer) As DataTable
For i As Integer = 0 To (dt.Rows.Count - 1)
If i = num Then
dt.Rows(i).Item("Base") = True
Else
If dt.Rows(i).Item("Base").ToString = "True" Then
Dim psEquivalencias As New ClsProductosServicios
If Not psEquivalencias.UpdatePSEquivalencias(ddlProducto.SelectedValue.ToEntero, dt.Rows(i).Item("CveUnidadMedida").ToString.ToEntero, dt.Rows(i).Item("Cantidad").ToString.ToDouble, False, dt.Rows(i).Item("Precio").ToString.ToDouble, 1) Then
Alert("Error al actualizar registro.", TipoMensaje.MsgError)
Return dt
End If
psEquivalencias.Dispose()
End If
dt.Rows(i).Item("Base") = False
End If
Next i
Return dt
End Function
Protected Sub inicializarTabla()
Dim dt As New DataTable
dt.Columns.Add("No")
dt.Columns.Add("Cantidad")
dt.Columns.Add("CveUnidadMedida", Type.GetType("System.Int32"))
dt.Columns.Add("Unidad")
dt.Columns.Add("Precio")
dt.Columns.Add("Base")
Me.gvEquivalencias.DataSource = dt
Me.gvEquivalencias.DataBind()
Me.ViewState("dtEquivalencias") = dt
End Sub
Protected Sub ddlProducto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlProducto.SelectedIndexChanged
gvEquivalencias.EditIndex = -1
Dim equivalencias As New ClsProductosServicios
If ddlProducto.SelectedValue = "0" Then
btAgregar.Enabled = False
Else
btAgregar.Enabled = True
End If
If btAgregar.Text = "Editar" Then
btAgregar.Text = "Agregar"
btCancelar.Visible = False
End If
If equivalencias.GetPSEquivalencias(ddlProducto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
Dim dt As New DataTable
dt.Columns.Add("No")
dt.Columns.Add("Cantidad")
dt.Columns.Add("CveUnidadMedida", Type.GetType("System.Int32"))
dt.Columns.Add("Unidad")
dt.Columns.Add("Precio")
dt.Columns.Add("Base", Type.GetType("System.String"))
dt = equivalencias.DtResultados
ViewState("dtEquivalencias") = reordenarNum(dt)
gvEquivalencias.DataSource = Me.ViewState("dtEquivalencias")
gvEquivalencias.DataBind()
End If
equivalencias.Dispose()
End Sub
Protected Sub gvEquivalencias_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles gvEquivalencias.RowDeleting
Dim CveUnidadMedida As Integer = gvEquivalencias.DataKeys(e.RowIndex)("CveUM").ToString().ToEntero ' dt.Rows(e.RowIndex).Item("CveUnidadMedida")
Dim UnidadBase As Boolean = CType(gvEquivalencias.DataKeys(e.RowIndex)("UnidadBase"), Boolean)
If UnidadBase Then
Alert("No puede eliminar una equivalencia que es Base.", TipoMensaje.MsgError)
Return
End If
Dim psEquivalencias As New ClsProductosServicios
If psEquivalencias.RemovePSEquivalencias(ddlProducto.SelectedValue.ToEntero, CveUnidadMedida) Then
gvEquivalencias.DataSource = psEquivalencias.DtResultados
ViewState("dtEquivalencias") = psEquivalencias.DtResultados
gvEquivalencias.DataBind()
End If
psEquivalencias.Dispose()
End Sub
Protected Sub EditRow(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles gvEquivalencias.RowEditing
Dim dt As DataTable = CType(Me.ViewState("dtEquivalencias"), DataTable)
gvEquivalencias.EditIndex = e.NewEditIndex
gvEquivalencias.DataSource = dt
gvEquivalencias.DataBind()
End Sub
Protected Sub CancelEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
gvEquivalencias.EditIndex = -1
gvEquivalencias.DataSource = Me.ViewState("dtEquivalencias")
gvEquivalencias.DataBind()
End Sub
Protected Sub gvEquivalencias_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvEquivalencias.RowDataBound
If e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5 Then
e.Row.FCDropDownList("ddlEUnidad").DataSource = GlobalDTUnidadesMedida()
e.Row.FCDropDownList("ddlEUnidad").SelectedValue = e.Row.DBCampo("CveUnidadMedida")
e.Row.FCDropDownList("ddlEUnidad").DataBind()
End If
End Sub
Protected Sub gvEquivalencias_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles gvEquivalencias.RowUpdating
Dim psEquivalencias As New ClsProductosServicios
Dim Mensaje As String = ""
Dim dt As DataTable
Dim cantidad As Double = DirectCast(gvEquivalencias.Rows(e.RowIndex).FindControl("txtECantidad"), TextBox).Text.ToDouble
Dim precio As Double = DirectCast(gvEquivalencias.Rows(e.RowIndex).FindControl("txtEPrecio"), TextBox).Text.ToDouble
Dim base As Boolean = DirectCast(gvEquivalencias.Rows(e.RowIndex).FindControl("cbEBase"), CheckBox).Checked
Dim CveUnidadMedida As Integer = DirectCast(gvEquivalencias.Rows(e.RowIndex).FindControl("ddlEUnidad"), DropDownList).SelectedValue.ToEntero
If psEquivalencias.UpdatePSEquivalencias(ddlProducto.SelectedValue.ToEntero, CveUnidadMedida, cantidad, base, precio, UsuarioActual.CveUsuario) Then
dt = psEquivalencias.DtResultados
If base Then
reAsignarBase(dt, e.RowIndex)
End If
ViewState("dtEquivalencias") = dt
gvEquivalencias.EditIndex = -1
gvEquivalencias.DataSource = dt
gvEquivalencias.DataBind()
End If
psEquivalencias.Dispose()
End Sub
End Class

View File

@@ -0,0 +1,154 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Equivalencias.aspx.vb" Inherits="Inventarios_Equivalencias" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Equivalencias
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpFiltros" runat="server">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px;">
<div class="tools">
<asp:Button ID="BtnConsultar" CssClass="btn btn-default" runat="server" Text="Consultar" />
</div>
<div class="titlefiltros caption ">
<div class="row">
<label class="col-md-1 truncate">Clasificación:</label>
<div class="col-md-3">
<asp:DropDownList ID="DdlClasificacion" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" CssClass="form-control input-sm select2me" Width="100%">
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 truncate">Producto</label>
<div class="col-md-3">
<asp:DropDownList ID="ddlProducto" runat="server" DataValueField="CvePS" DataTextField="PSCodigo" AutoPostBack="True" CssClass="form-control input-sm select2me" Width="100%"></asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="Agregar" runat="server">
<ContentTemplate>
<table class="table table-striped Widthall">
<thead>
<tr class="Titulos">
<th width="7%">#</th>
<th width="30%">Unidad de medida</th>
<th width="15%">Cantidad</th>
<th width="15%">Precio</th>
<th width="10%">Unidad Base</th>
<th width="13%"></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td align="center">
<asp:DropDownList ID="ddlUnidad" runat="server" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" CssClass="form-control input-sm select2me" Style="width: 120px !important;"></asp:DropDownList>
</td>
<td align="center">
<asp:TextBox ID="txtCantidad" Width="60px" MaxLength="5" runat="server"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="ftbeCant" runat="server" TargetControlID="txtCantidad" FilterType="Custom, Numbers" ValidChars="+-.," />
<asp:RequiredFieldValidator runat="server" ID="RFVCantidad" ControlToValidate="txtCantidad" ValidationGroup="GrpAgregar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingrése una." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOCantidad" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td align="center">
<asp:TextBox ID="txtPrecio" Width="60px" runat="server"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="ftbe" runat="server" TargetControlID="txtPrecio" FilterType="Custom, Numbers" ValidChars="+-.," />
<asp:RequiredFieldValidator runat="server" ID="RFVPrecio" ControlToValidate="txtPrecio" ValidationGroup="GrpAgregar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Precio Unitario''</b> es necesario, por favor ingrése uno." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOPrecio" runat="server" HighlightCssClass="vco" TargetControlID="RFVPrecio" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td></td>
<td align="center">
<asp:Button ID="btAgregar" runat="server" ValidationGroup="GrpAgregar" Width="80px" Text="Agregar" CssClass="btn btn-primary" />
<asp:Button ID="btCancelar" runat="server" Text="Cancelar" Width="80px" Visible="False" CssClass="btn btn-danger" />
</td>
</tr>
</tbody>
</table>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UPPEquiv" runat="server" RenderMode="Inline" UpdateMode="Conditional" ViewStateMode="Inherit">
<ContentTemplate>
<asp:GridView ID="gvEquivalencias" runat="server" ShowHeader="False" DataKeyNames="CvePS,CveUM,UnidadBase" EmptyDataText="Aún no hay registros." AutoGenerateColumns="False" ShowFooter="True" ShowHeaderWhenEmpty="True" OnRowCancelingEdit="CancelEdit" OnRowEditing="EditRow" CssClass="table table-striped table-hover Widthall" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="" ItemStyle-Width="7%" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lbNo" runat="server" Text='<%# Eval("Consec")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Unidad" ItemStyle-Width="30%" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="lbUnidad" runat="server" Text='<%# Eval("UM")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad" ItemStyle-Width="15%" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="lbCantidad" runat="server" Text='<%# Eval("Cantidad","{0:N4}")%>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtECantidad" runat="server" Text='<%# Eval("Cantidad")%>' Width="60px"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="ftbeCantidad" runat="server" TargetControlID="txtECantidad" FilterType="Custom, Numbers" ValidChars="+-.," />
<asp:RequiredFieldValidator runat="server" ID="RFVECantidad" ControlToValidate="txtECantidad" ValidationGroup="GrpEditar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingrése una." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Precio" ItemStyle-Width="15%" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="lbPrecio" runat="server" Width="60px"
Text='<%# Eval("Precio","{0:N2}")%>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEPrecio" runat="server" Text='<%# Eval("Precio","{0:N2}")%>'></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="ftbePrecio" runat="server" TargetControlID="txtEPrecio" FilterType="Custom, Numbers" ValidChars="+-.," />
<asp:RequiredFieldValidator runat="server" ID="RFVEPrecio" ControlToValidate="txtEPrecio" ValidationGroup="GrpEditar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Precio Unitario''</b> es necesario, por favor ingrése uno." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="U.B." ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="cbBase" Checked='<%# Eval("UnidadBase")%>' runat="server" Enabled="False" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Editar" ItemStyle-Width="8%" ItemStyle-HorizontalAlign="Center">
<EditItemTemplate>
<center>
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CommandName="Update" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" ValidationGroup="GrpGV" OnClientClick="return confirm('¿Estas seguro de guardar los cambios realizados?');" />
<asp:LinkButton ID="imgC" runat="server" AlternateText="Cancelar" CausesValidation="False" CommandName="Cancel" CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>" />
</center>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" CommandName="Edit" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Eliminar" ItemStyle-Width="5%" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" OnClientClick="return confirm('¿Estas seguro que desea eliminar la equivalencia?');" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<br />
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,205 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Partial Class Inventarios_Equivalencias
Inherits ClsPaginas
#Region "Propiedades"
Public Property DtEquivalencias() As DataTable
Get
Return CType(ViewState("dtEquivalencias"), DataTable)
End Get
Set(value As DataTable)
ViewState("dtEquivalencias") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
inicializarTabla()
InicializarListas()
btAgregar.Enabled = False
End If
End Sub
#Region " INICIALIZA VALORES "
Private Sub CargaClasificaciones()
DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa)
DdlClasificacion.DataBind()
End Sub
Private Sub InicializarListas()
'Llenar el dropdownlist de unidad de medida
ddlUnidad.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa)
ddlUnidad.DataBind()
'Llenar el dropdownlist de Productosy servicios
ddlProducto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
ddlProducto.Items.Insert(0, New ListItem("----", "0"))
CargaClasificaciones()
End Sub
Protected Sub inicializarTabla()
Dim dt As New DataTable
dt.Columns.Add("No")
dt.Columns.Add("Cantidad")
dt.Columns.Add("CveUnidadMedida", Type.GetType("System.Int32"))
dt.Columns.Add("Unidad")
dt.Columns.Add("Precio")
dt.Columns.Add("Base")
Me.gvEquivalencias.DataSource = dt
Me.gvEquivalencias.DataBind()
Me.ViewState("dtEquivalencias") = dt
End Sub
#End Region
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged
If DdlClasificacion.SelectedValue = "-1" Then
ddlProducto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
ddlProducto.DataBind()
ddlProducto.Items.Insert(0, New ListItem("----", "-1"))
Else
ddlProducto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero)
ddlProducto.DataBind()
ddlProducto.Items.Insert(0, New ListItem("----", "-1"))
End If
End Sub
Protected Sub ddlProducto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlProducto.SelectedIndexChanged
gvEquivalencias.EditIndex = -1
If ddlProducto.SelectedValue = "0" Then
btAgregar.Enabled = False
Else
btAgregar.Enabled = True
End If
If btAgregar.Text = "Editar" Then
btAgregar.Text = "Agregar"
btCancelar.Visible = False
End If
CargaGV()
UPPEquiv.Update()
End Sub
#Region " AGREGAR "
Protected Sub btAgregar_Click(sender As Object, e As EventArgs) Handles btAgregar.Click
Dim Precio As Double = txtPrecio.Text.ToDouble
Dim CveUnidadMedida As Integer = ddlUnidad.SelectedValue.ToEntero
Dim Cantidad As Decimal = txtCantidad.Text.ToDecimal
Dim psEquivalencias As New ClsProductosServicios
If psEquivalencias.AddPSEquivalencias(ddlProducto.SelectedValue.ToEntero, CveUnidadMedida, Cantidad, False, Precio, 1) Then
txtCantidad.Text = ""
txtPrecio.Text = ""
ddlUnidad.SelectedIndex = -1
Alert("Equivalencia agrega con éxito.", TipoMensaje.MsgInformacion)
End If
psEquivalencias.Dispose()
CargaGV()
UPPEquiv.Update()
RecargaGlobal()
End Sub
#End Region
#Region " GV EQUIVALENCIAS "
Private Sub CargaGV()
Dim equivalencias As New ClsProductosServicios
If equivalencias.GetPSEquivalencias(ddlProducto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
DtEquivalencias = equivalencias.DtResultados
gvEquivalencias.DataSource = DtEquivalencias
gvEquivalencias.DataBind()
End If
equivalencias.Dispose()
End Sub
Protected Sub gvEquivalencias_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvEquivalencias.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If CBool(e.Row.DBCampo("UnidadBase")) = True Then
e.Row.FCLinkButton("imgE").Visible = False
e.Row.FCLinkButton("imgD").Visible = False
End If
End If
End Sub
Protected Sub gvEquivalencias_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles gvEquivalencias.RowDeleting
Dim psEquivalencias As New ClsProductosServicios
Dim CveUnidadMedida As Integer = gvEquivalencias.DataKeys(e.RowIndex)("CveUM").ToString().ToEntero ' dt.Rows(e.RowIndex).Item("CveUnidadMedida")
If psEquivalencias.RemovePSEquivalencias(ddlProducto.SelectedValue.ToEntero, CveUnidadMedida) Then
gvEquivalencias.DataSource = psEquivalencias.DtResultados
DtEquivalencias = psEquivalencias.DtResultados
gvEquivalencias.DataBind()
End If
psEquivalencias.Dispose()
RecargaGlobal()
End Sub
Protected Sub EditRow(ByVal sender As Object, ByVal e As GridViewEditEventArgs) Handles gvEquivalencias.RowEditing
gvEquivalencias.EditIndex = e.NewEditIndex
gvEquivalencias.DataSource = DtEquivalencias
gvEquivalencias.DataBind()
End Sub
Protected Sub CancelEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
gvEquivalencias.EditIndex = -1
gvEquivalencias.DataSource = DtEquivalencias
gvEquivalencias.DataBind()
End Sub
Protected Sub gvEquivalencias_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles gvEquivalencias.RowUpdating
Dim psEquivalencias As New ClsProductosServicios
Dim Mensaje As String = ""
Dim dt As DataTable
Dim cantidad As Decimal = DirectCast(gvEquivalencias.Rows(e.RowIndex).FindControl("txtECantidad"), TextBox).Text.ToDecimal
Dim precio As Double = DirectCast(gvEquivalencias.Rows(e.RowIndex).FindControl("txtEPrecio"), TextBox).Text.ToDouble
Dim CveUnidadMedida As Integer = DtEquivalencias.Rows(e.RowIndex).Item("CveUM").ToString.ToEntero
Dim CvePSE As Integer = ddlProducto.SelectedValue.ToEntero
If psEquivalencias.UpdatePSEquivalencias(CvePSE, CveUnidadMedida, cantidad, False, precio, UsuarioActual.CveUsuario) Then
dt = psEquivalencias.DtResultados
ViewState("dtEquivalencias") = dt
gvEquivalencias.EditIndex = -1
gvEquivalencias.DataSource = dt
gvEquivalencias.DataBind()
End If
psEquivalencias.Dispose()
RecargaGlobal()
End Sub
#End Region
#Region " RECARGA GLOBAL "
Private Sub RecargaGlobal()
Dim equivalencias As New ClsProductosServicios
If equivalencias.GetPSEquivalencias(-1, -1) Then
GlobalDTProductosServiciosEquivalencias(-1, -1) = equivalencias.DtResultados
End If
equivalencias.Dispose()
End Sub
#End Region
End Class

197
Inventarios/Fletes.aspx Normal file
View File

@@ -0,0 +1,197 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Fletes.aspx.vb" Inherits="Compras_Fletes" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Costo Indirecto
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<div class="row">
<div class="col-md-6">
<asp:UpdatePanel ID="UpRegistro" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet light smmallpadding bordered " id="PorletRegistro">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Registro</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body rowpadding">
<div class="row">
<div class="col-md-2">Folio:</div>
<div class="col-md-10">
<asp:Label ID="LblFolio" runat="server"></asp:Label>
</div>
</div>
<div class="row">
<div class="col-md-2">Descripción:</div>
<div class="col-md-10">
<asp:TextBox ID="TxtDescripcion" CssClass="form-control" runat="server" MaxLength="50" Width="300px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVDescripcion" runat="server" ControlToValidate="TxtDescripcion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripcion''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEDescripcion" runat="server" HighlightCssClass="vco" TargetControlID="RFVDescripcion" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row">
<div class="col-md-2">Fecha:</div>
<div class="col-md-10">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
<asp:TextBox ID="TxtFecha" CssClass="form-control input-sm ADSMaskDate" Style="width: 118px" runat="server"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton runat="server" ID="imgCalendario" class="btn default"> <i class="fa fa-calendar"></i> </asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFecha" runat="server" TargetControlID="TxtFecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFecha" TargetControlID="TxtFecha" PopupButtonID="imgCalendario" PopupPosition="BottomRight" Enabled="True" Format="dd/MM/yyyy"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEFecha" runat="server" HighlightCssClass="vco" TargetControlID="RFVFecha"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<hr />
</div>
<div class="col-md-2">
Modalidad
</div>
<div class="col-md-5">
<asp:DropDownList ID="DdlModalidad" AutoPostBack="true" OnSelectedIndexChanged="DdlModalidad_SelectedIndexChanged" runat="server" CssClass="select2me Widthall">
<asp:ListItem Text="OC" Value="1" Selected="True" />
<asp:ListItem Text="Compra" Value="2" />
</asp:DropDownList>
</div>
<div class="col-md-5 text-center">
<div runat="server" id="DivVincularOC">
<a runat="server" class="btn btn-circle btn-default" href="javascript:AbrirVentana('/OC/PopUpBuscarReq.aspx?Op=FactFle',800,600,'N');"><i class='fa fa-plus'></i>Vincular Orden de Compra</a>
<asp:Button ID="BtnVincularOC" runat="server" ClientIDMode="Static" OnClick="BtnVincularOC_Click" Style="display: none;" class="btn btn-primary" />
<asp:HiddenField runat="server" ID="HdnCveOC" ClientIDMode="Static" Value="-1" />
</div>
<div runat="server" id="DivVincularCompra" visible="false">
<a runat="server" class="btn btn-circle btn-default" href="javascript:AbrirVentana('/Compras/PopUpBuscarFolioC.aspx?Opt=Fact',800,600,'N');"><i class='fa fa-plus'></i>Vincular Compra</a>
<asp:Button ID="BtnVincularCompra" runat="server" ClientIDMode="Static" OnClick="BtnVincularCompra_Click" Style="display: none;" class="btn btn-primary" />
<asp:HiddenField runat="server" ID="HdnCveCompra" ClientIDMode="Static" Value="-1" />
</div>
</div>
</div>
<div class="row">
<div class="col-md-2">Proveedor:</div>
<div class="col-md-10">
<asp:Label ID="LbOCProveedor" Text="" runat="server" />
</div>
</div>
<div class="row">
<div class="col-md-2">Folio:</div>
<div class="col-md-10">
<asp:HyperLink ID="HLOCFolio" CssClass="Texto" Target="_blank" Text="" runat="server" />
</div>
</div>
<div class="row">
<div class="col-md-2">Importe:</div>
<div class="col-md-10">
<asp:Label ID="LbOCImporte" Text="" runat="server" />
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:UpdatePanel ID="UpComprasGasto" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet light smmallpadding bordered " id="PorletComprasGasto">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Compras Gasto</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
<div class="actions">
<div class="btn-group">
<a runat="server" class="btn btn-circle btn-default" href="javascript:AbrirVentana('/Compras/PopUpBuscarFolioC.aspx?Opt=FactFlete',800,600,'N');" data-toggle="tooltip" data-placement="top" title="Agregar compra(factura) de gastos."><i class='fa fa-plus'></i>Agregar compra de gasto</a>
<asp:Button ID="BtnVincularCompraGasto" runat="server" ClientIDMode="Static" OnClick="BtnVincularCompraGasto_Click" Style="display: none;" class="btn btn-primary" />
<asp:HiddenField runat="server" ID="HdnCveCompraGasto" ClientIDMode="Static" Value="-1" />
</div>
</div>
</div>
<div class="portlet-body rowpadding">
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" CssClass="table table-striped table-advance table-hover mysmallbtn ScrollAD" Width="100%" GridLines="None" DataKeyNames="CveFleteDetalle" EmptyDataText="No hay compras agregar aún" ToolTip="Comrpas agregadas">
<Columns>
<asp:BoundField HeaderText="Proveedor" DataField="RazonSocial" ItemStyle-Width="30%" />
<asp:HyperLinkField HeaderText="Serie-Folio" DataNavigateUrlFields="CveCompra" DataNavigateUrlFormatString="/Compras/Compras.aspx?CveCompra={0}" DataTextField="SerieFolio" ItemStyle-Width="10%" Target="_blank" />
<asp:BoundField HeaderText="Fecha" DataField="Fecha" DataFormatString="{0:d}" ItemStyle-Width="10%" />
<asp:BoundField HeaderText="Descripción" DataField="Descripcion" ItemStyle-Width="20%" />
<asp:BoundField HeaderText="Importe" DataField="SubTotal" DataFormatString="{0:n2}" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Moneda" DataField="Abreviatura" ItemStyle-Width="10%" />
<asp:TemplateField HeaderText="Eliminar" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row">
<div class="col-md-12 text-center">
<asp:Button ID="BtnGuardar" runat="server" Text="Registrar" ValidationGroup="GrpGuardar" OnClick="BtnGuardar_Click" CssClass="btn btn-primary" />
<asp:Button ID="BtnEliminar" Text="Eliminar" runat="server" OnClick="BtnEliminar_Click" Visible="false" CssClass="btn btn-danger" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script type="text/javascript">
function CargaCompraGasto(v) {
$get("HdnCveCompraGasto").value = v;
$('#BtnVincularCompraGasto').click();
}
function CargaCompra(v) {
$get("HdnCveCompra").value = v;
$('#BtnVincularCompra').click();
}
function VincularOC(v) {
$get("HdnCveOC").value = v;
$('#BtnVincularOC').click();
}
</script>
</asp:Content>

408
Inventarios/Fletes.aspx.vb Normal file
View File

@@ -0,0 +1,408 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Partial Class Compras_Fletes
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property CveFlete As Integer
Get
Return ViewState("CveFlete").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveFlete") = value
End Set
End Property
Private Property DtCompras As DataTable
Get
Return CType(ViewState("DtCompras"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtCompras") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
InicializaValores()
CargaURLParametros()
End If
End Sub
#Region " INICIALIZA VALORES "
Private Sub InicializaValores()
DtCompras = New DataTable
TxtFecha.Text = Now.ToShortDateString
End Sub
Private Sub CargaFolio()
Dim ObjFolios As New ClsGralFolios
If ObjFolios.GetFolios("FLE", UsuarioActual.CveEmpresa) Then
If ObjFolios.DtResultados.Rows.Count > 0 Then
LblFolio.Text = ObjFolios.DtResultados(0)("FActual").ToString
Else
Alert("Necesita registrar un folio de fletes", TipoMensaje.MsgAdvertencia)
BtnGuardar.Enabled = False
End If
End If
ObjFolios.Dispose()
UpRegistro.Update()
End Sub
#End Region
#Region " CARGA DATOS "
Private Sub CargaURLParametros()
If Request("CveFlete") IsNot Nothing AndAlso IsNumeric(Request("CveFlete")) AndAlso Request("CveFlete").ToEntero > 0 Then
CveFlete = Request("CveFlete").ToEntero
BtnGuardar.Text = "Guardar"
CargaFlete()
BtnEliminar.Visible = True
Else
CveFlete = -1
CargaFolio()
End If
End Sub
Private Sub CargaFlete()
Dim ObjInv As New ClsInventarios
If ObjInv.GetFletes(UsuarioActual.CveEmpresa, CveFlete:=CveFlete) Then
If ObjInv.DtResultados.Rows.Count > 0 Then
LblFolio.Text = ObjInv.DtResultados.Rows(0)("Folio").ToString
TxtDescripcion.Text = ObjInv.DtResultados.Rows(0)("Descripcion").ToString
TxtFecha.Text = ObjInv.DtResultados.Rows(0)("Fecha").ToString
If ObjInv.DtResultados.Rows(0)("CveOC").ToString.ToEntero > 0 Then
DdlModalidad.SelectedValue = "1"
Else
DdlModalidad.SelectedValue = "2"
End If
CambiaModalidad()
HdnCveOC.Value = ObjInv.DtResultados.Rows(0)("CveOC").ToString
HdnCveCompra.Value = ObjInv.DtResultados.Rows(0)("CveCompra").ToString
LbOCProveedor.Text = ObjInv.DtResultados.Rows(0)("RazonSocial").ToString
HLOCFolio.Text = ObjInv.DtResultados.Rows(0)("FolioDocumento").ToString
HLOCFolio.NavigateUrl = If(HdnCveOC.Value.ToEntero > 0, $"/OC/OC.aspx?OC={HdnCveOC.Value}", $"/Compras/Compras.aspx?CveCompra={HdnCveCompra.Value}")
LbOCImporte.Text = $"{ObjInv.DtResultados.Rows(0)("TotalDocumento").ToString.FormatoNumero} {ObjInv.DtResultados.Rows(0)("Moneda").ToString}"
If ObjInv.GetFleteDetalle(CveFlete) Then
DtCompras = ObjInv.DtResultados
Else
Alert("Ocurrió un error al cargar el detalle del flete", TipoMensaje.MsgError)
End If
Else
Alert("No se encontró el flete", TipoMensaje.MsgInformacion)
End If
Else
Alert("Ocurrió un error al cargar el flete", TipoMensaje.MsgError)
End If
ObjInv.Dispose()
CargaGrid()
UpRegistro.Update()
End Sub
Private Sub CargaGrid()
GvDatos.DataSource = DtCompras
GvDatos.DataBind()
UpComprasGasto.Update()
End Sub
#End Region
#Region " VINCULA DOCUMENTO PRINCIPAL - OC | COMPRA "
Protected Sub DdlModalidad_SelectedIndexChanged(sender As Object, e As EventArgs)
CambiaModalidad()
UpRegistro.Update()
End Sub
Private Sub CambiaModalidad()
HdnCveOC.Value = "-1"
HdnCveCompra.Value = "-1"
LbOCProveedor.Text = ""
HLOCFolio.Text = ""
HLOCFolio.NavigateUrl = "#"
LbOCImporte.Text = ""
DivVincularOC.Visible = DdlModalidad.SelectedValue = "1"
DivVincularCompra.Visible = DdlModalidad.SelectedValue = "2"
End Sub
Protected Sub BtnVincularOC_Click(sender As Object, e As EventArgs)
VinculaOC()
End Sub
Private Sub VinculaOC()
If HdnCveOC.Value <> "-1" AndAlso IsNumeric(HdnCveOC.Value) AndAlso HdnCveOC.Value.ToEntero > 0 Then
Dim ObjInv As New ClsInventarios
Dim ObjOC As New ClsOC
If ObjInv.GetFletes(UsuarioActual.CveEmpresa, CveOC:=HdnCveOC.Value.ToEntero) AndAlso ObjInv.DtResultados.Rows.Count = 0 Then
If ObjOC.GetOC(HdnCveOC.Value.ToEntero, UsuarioActual.CveEmpresa) Then
If ObjOC.DtResultados.Rows.Count > 0 Then
LbOCProveedor.Text = ObjOC.DtResultados.Rows(0)("RazonSocial").ToString
HLOCFolio.Text = $"{ObjOC.DtResultados.Rows(0)("Folio").ToString}"
HLOCFolio.NavigateUrl = $"/OC/OC.aspx?OC={HdnCveOC.Value}"
LbOCImporte.Text = $"$ {ObjOC.DtResultados.Rows(0)("Total").ToString.FormatoNumero} {ObjOC.DtResultados.Rows(0)("Moneda").ToString}"
End If
Else
HdnCveOC.Value = "-1"
End If
Else
Alert($"La orden de compra ya forma parte del flete: <b>{ObjInv.DtResultados.Rows(0)("Folio")}</b>. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
End If
ObjInv.Dispose()
ObjOC.Dispose()
End If
UpRegistro.Update()
End Sub
Protected Sub BtnVincularCompra_Click(sender As Object, e As EventArgs)
VincularCompra()
End Sub
Private Sub VincularCompra()
If Not (HdnCveCompra.Value <> "-1" AndAlso IsNumeric(HdnCveCompra.Value) AndAlso HdnCveCompra.Value.ToEntero > 0) Then
Alert("No hay compra seleccionaada", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim ObjCompras As New ClsCompras
Dim ObjInv As New ClsInventarios
Dim ErrorAgregar = False
Dim RowCompras As DataRow = Nothing
If ObjCompras.GetCompras(HdnCveCompra.Value.ToEntero, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then
RowCompras = ObjCompras.DtResultados.Rows(0)
If Not (ObjInv.GetFleteDetalle(-1, HdnCveCompra.Value.ToEntero) AndAlso ObjInv.DtResultados.Rows.Count = 0) Then
ErrorAgregar = True
Alert($"La compra ya forma parte del flete: <b>{ObjCompras.DtResultados.Rows(0)("Folio")}</b>. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
End If
Else
ErrorAgregar = True
Alert("Ocurrió un error al cargar la información de la compra. Por favor comuniquese con atención SIG.", TipoMensaje.MsgError)
End If
If Not ErrorAgregar Then
If DtCompras.FiltraParametros($"CveCompra = {RowCompras("CveCompra").ToString.ToEntero}").Rows.Count > 0 Then
ErrorAgregar = True
Alert("La compra seleccionada ya es parte del flete. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
End If
End If
If Not ErrorAgregar Then
LbOCProveedor.Text = ObjCompras.DtResultados.Rows(0)("RazonSocial").ToString
HLOCFolio.Text = $"{ObjCompras.DtResultados.Rows(0)("Folio").ToString}"
HLOCFolio.NavigateUrl = $"/Compras/Compras.aspx?CveCompra={HdnCveCompra.Value}"
LbOCImporte.Text = $"$ {ObjCompras.DtResultados.Rows(0)("Total").ToString.FormatoNumero} {ObjCompras.DtResultados.Rows(0)("Moneda").ToString}"
Else
HdnCveCompra.Value = "-1"
End If
ObjCompras.Dispose()
ObjInv.Dispose()
End Sub
#End Region
#Region " AGREGA COMPRA GASTO "
Protected Sub BtnVincularCompraGasto_Click(sender As Object, e As EventArgs)
AgregaCompraGasto()
End Sub
Protected Sub ImgAgregarCompraGasto_Click(sender As Object, e As ImageClickEventArgs)
AgregaCompraGasto()
End Sub
Private Sub AgregaCompraGasto()
If Not (HdnCveCompraGasto.Value <> "-1" AndAlso IsNumeric(HdnCveCompraGasto.Value) AndAlso HdnCveCompraGasto.Value.ToEntero > 0) Then
Alert("No hay compra de gasto seleccionaada", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim ObjCompras As New ClsCompras
Dim ObjInv As New ClsInventarios(ObjCompras.IniciaTransacSQL)
Dim ErrorAgregar = False
Dim RowCompras As DataRow = Nothing
If ObjCompras.GetCompras(HdnCveCompraGasto.Value.ToEntero, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa) Then
RowCompras = ObjCompras.DtResultados.Rows(0)
If Not (ObjInv.GetFleteDetalle(-1, HdnCveCompraGasto.Value.ToEntero) AndAlso ObjInv.DtResultados.Rows.Count = 0) Then
ErrorAgregar = True
Alert($"La compra ya forma parte del flete: <b>{ObjCompras.DtResultados.Rows(0)("Folio")}</b>. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
End If
Else
ErrorAgregar = True
Alert("Ocurrió un error al cargar la información de la compra. Por favor comuniquese con atención SIG.", TipoMensaje.MsgError)
End If
If HdnCveCompraGasto.Value.ToEntero = HdnCveOC.Value.ToEntero Then
ErrorAgregar = True
Alert("La Compra seleccionada como gasto es la orden de compra del pedimento. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
End If
If Not ErrorAgregar Then
If DtCompras.FiltraParametros($"CveCompra = {RowCompras("CveCompra").ToString.ToEntero}").Rows.Count > 0 Then
ErrorAgregar = True
Alert("La compra seleccionada ya es parte del flete. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
End If
End If
If Not ErrorAgregar Then
If Not GvDatos.Rows.Count > 0 Then
DtCompras = RowCompras.Table.Clone
DtCompras.Columns.Add("CveFleteDetalle", Type.GetType("System.Int32"))
End If
If CveFlete > 0 Then
If Not ObjInv.AddFleteDetalle(CveFlete, RowCompras("CveCompra").ToString.ToEntero) Then
ErrorAgregar = True
Alert("Ocurrió un error al agregar la compra. Por favor intente de nuevo.", TipoMensaje.MsgError)
End If
End If
End If
If Not ErrorAgregar Then
ObjCompras.Commit()
DtCompras.ImportRow(RowCompras)
CargaGrid()
If CveFlete > 0 Then
Alert("La orden de compra se agregó correctamente.", TipoMensaje.MsgInformacion)
End If
Else
ObjCompras.RollBack()
End If
HdnCveCompraGasto.Value = "-1"
ObjCompras.Dispose()
ObjInv.Dispose()
End Sub
Private Sub GvDireccionesEnvio_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvDatos.RowDeleting
Dim TieneError = False
If CveFlete > 0 AndAlso GvDatos.Rows(e.RowIndex).DataKey("CveFleteDetalle").ToEntero > 0 Then
Dim ObjInv As New ClsInventarios
If Not ObjInv.RemoveFleteDetalle(GvDatos.Rows(e.RowIndex).DataKey("CveFleteDetalle").ToEntero) Then
TieneError = True
Alert("Ocurrió un error al eliminar el detalle. Por favor intente de nuevo", TipoMensaje.MsgError)
Else
Alert("Elflete detalle se eliminó correctamente", TipoMensaje.MsgInformacion)
End If
ObjInv.Dispose()
End If
If Not TieneError Then
DtCompras.Rows.RemoveAt(e.RowIndex)
DtCompras.AcceptChanges()
End If
CargaGrid()
End Sub
#End Region
#Region " GUARDAR "
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs)
Select Case DdlModalidad.SelectedValue.ToEntero
Case 1
If Not HdnCveOC.Value.ToEntero > 0 Then
Alert("Tiene que tener vinculada una OC", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Case 2
If Not HdnCveCompra.Value.ToEntero > 0 Then
Alert("Tiene que tener vinculada una Compra", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End Select
If Not DtCompras.Rows.Count > 0 Then
Alert("Tiene que tener compras de gastos agregadas", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim ObjInv As New ClsInventarios
ObjInv.IniciaTransacSQL()
Dim ErrorFlete = False
Dim CveFleteTemporal As Integer = 0
If CveFlete < 0 Then
If ObjInv.AddFlete(LblFolio.Text, TxtDescripcion.Text.Trim, TxtFecha.Text.ToDate, HdnCveOC.Value.ToEntero, HdnCveCompra.Value.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
CveFleteTemporal = ObjInv.CveFlete
Else
ErrorFlete = True
End If
If CveFleteTemporal > 0 Then
For Each dr As DataRow In DtCompras.Rows
If Not ObjInv.AddFleteDetalle(CveFleteTemporal, dr("CveCompra").ToString.ToEntero) Then
ErrorFlete = True
End If
Next
Else
ErrorFlete = True
End If
Else
If Not ObjInv.UpdateFlete(CveFlete, TxtDescripcion.Text, TxtFecha.Text.ToDate, HdnCveOC.Value.ToEntero, HdnCveCompra.Value.ToEntero, UsuarioActual.CveUsuario) Then
ErrorFlete = True
End If
End If
If Not ErrorFlete Then
BtnGuardar.Enabled = False
ObjInv.Commit()
If CveFlete > 0 Then
Alert("Flete actualizado con éxito.", TipoMensaje.MsgInformacion, "document.location.href=""/Inventarios/RepFletes.aspx"";")
Else
Alert("Flete agregado con éxito.", TipoMensaje.MsgInformacion, "document.location.href=""/Inventarios/RepFletes.aspx"";")
End If
Else
ObjInv.RollBack()
Alert("Ocurrió un error al registrar el flete. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
ObjInv.Dispose()
End Sub
#End Region
#Region " ELIMINAR "
Protected Sub BtnEliminar_Click(sender As Object, e As EventArgs)
Dim ObjInv As New ClsInventarios
ObjInv.IniciaTransacSQL()
Dim ErrorEliminar = False
For Each dr As DataRow In DtCompras.Rows
If Not ObjInv.RemoveFleteDetalle(dr("CveFleteDetalle").ToString.ToEntero) Then
ErrorEliminar = True
End If
Next
If Not ErrorEliminar Then
If Not ObjInv.RemoveFlete(CveFlete) Then
ErrorEliminar = True
End If
End If
If Not ErrorEliminar Then
Alert("Flete elimnado con éxito.", TipoMensaje.MsgInformacion, "document.location.href=""/Inventarios/RepFletes.aspx"";")
ObjInv.Commit()
Else
ObjInv.RollBack()
End If
ObjInv.Dispose()
End Sub
#End Region
End Class

View File

@@ -0,0 +1,387 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="InventarioFisico.aspx.vb" Inherits="Inventarios_InventarioFisico" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Inventario Físico
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel ID="UppAddAcciones" runat="server">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkInventarioFisico" runat="server" Text="Agregar"><i class="fa fa-plus-circle"></i> Agregar Inventario</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpFiltros" runat="server" RenderMode="Inline" ViewStateMode="Inherit" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT smalltitle " style="">
<div class="tools">
<asp:Button ID="BtnConsultar" runat="server" Text="Consultar" class="btn btn-primary" />
</div>
<div class="titlefiltros caption">
<div class="row">
<div class="col-md-1 truncate">SubProyecto:</div>
<div class="col-md-4">
<asp:DropDownList ID="DdlFiltroSubProyecto" CssClass="form-control select2me" runat="server" AppendDataBoundItems="true" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Width="70%"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Estatus:</div>
<div class="col-md-4">
<asp:DropDownList ID="DdlEstado" CssClass="form-control select2me" runat="server" AppendDataBoundItems="true" Width="70%">
<asp:ListItem Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Nuevo" Value="0"></asp:ListItem>
<asp:ListItem Text="En Progreso" Value="1"></asp:ListItem>
<asp:ListItem Text="En Espera" Value="2"></asp:ListItem>
<asp:ListItem Text="Finalizado" Value="3"></asp:ListItem>
<asp:ListItem Text="Activos" Value="4" Selected="True"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
</div>
<div class="portlet-body" style="display: none;">
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UppInventarioFisico" runat="server" RenderMode="Inline" ViewStateMode="Inherit" UpdateMode="Conditional">
<ContentTemplate>
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", gvIF.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", gvIF.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:GridView ID="gvIF" runat="server" EmptyDataText="Aun no hay registros." DataKeyNames="CveInventarioFisico,InventarioFisico,Observaciones,FechaInicio,FechaFin,CveSubProyecto" AutoGenerateColumns="False" ShowHeader="True" ShowHeaderWhenEmpty="True" CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" GridLines="None">
<Columns>
<asp:HyperLinkField
DataNavigateUrlFields="CveInventarioFisico" DataNavigateUrlFormatString="~/Inventarios/InventarioFisicoDetalle.aspx?CveInventarioFisico={0}" Target="_blank" HeaderText="Inventario Físico" DataTextField="InventarioFisico" ItemStyle-HorizontalAlign="Left"></asp:HyperLinkField>
<asp:TemplateField HeaderText="SubProyecto">
<ItemTemplate>
<asp:Label ID="lbAlmacen" runat="server"
Text='<%# Eval("SubProyecto")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Observaciones">
<ItemTemplate>
<asp:Label ID="lbObservaciones" runat="server" Style="text-align: left;"
Text='<%# Eval("Observaciones")%>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha I">
<ItemTemplate>
<asp:Label ID="lbFechaI" runat="server"
Text='<%# Eval("FechaInicio", "{0:d}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha F">
<ItemTemplate>
<asp:Label ID="lbFechaF" runat="server"
Text='<%# Eval("FechaFin", "{0:d}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Estatus" HeaderText="Estatus" />
<asp:HyperLinkField DataNavigateUrlFields="CveInventarioFisico" DataNavigateUrlFormatString="~/Inventarios/RepAnomalias.aspx?CveInventarioFisico={0}"
Target="_blank" Text="Dif."></asp:HyperLinkField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" CssClass="btn btn-circle btn-sm green" OnClick="Edit_Click" Text="<i class='fa fa-pencil'></i>" />
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" OnClick="Delete_Click" CausesValidation="False" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle CssClass="Texto" />
<AlternatingRowStyle CssClass="TextoAlterno" />
</asp:GridView>
<asp:HiddenField ID="HdnModalidad" runat="server" Value="A" ClientIDMode="Static" />
<asp:HiddenField ID="HdnID" runat="server" Value="-1" ClientIDMode="Static" />
<asp:HiddenField ID="HdnFechaInicio" runat="server" Value="-1" ClientIDMode="Static" />
<asp:HiddenField ID="HdnFechaFin" runat="server" Value="-1" ClientIDMode="Static" />
</ContentTemplate>
</asp:UpdatePanel>
<%--POPUP AGREGAR--%>
<div id="divAddInventarioFisico" class="modal ADS fade" role="dialog">
<div class="modal-dialog modal-lg" id="modal">
<asp:UpdatePanel ID="UpAddInventarioFisico" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="myModalLabel" runat="server">Agregar Inventario Físico</h4>
</div>
<div class="modal-body">
<asp:UpdatePanel ID="UpBodyInventarioFisico" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtTitulo" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="50"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTitulos" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtTitulo" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Titulo''</b> es necesario, por favor ingréselo." ValidationGroup="GrpObligatorio"></asp:RequiredFieldValidator>
<label for="<%= TxtTitulo.ClientID.ToString()%>">Titulo:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtObservaciones" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="500"></asp:TextBox>
<label for="<%= TxtObservaciones.ClientID.ToString()%>">Observaciones:</label>
</div>
<div class="row">
<div class="col-md-6">
<asp:UpdatePanel ID="UpSubProyecto" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div class="portlet light xspadding bordered" id="PtlAlmacen">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Almacen</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<div class="row">
<div class="col-md-5">
<label for="<%= DdlSubProyecto.ClientID.ToString()%>">SubProyecto:</label>
<asp:DropDownList ID="DdlSubProyecto" AutoPostBack="true" CssClass="form-control select2me" runat="server" AppendDataBoundItems="true" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Width="100%">
</asp:DropDownList>
</div>
<div class="col-md-5">
<label for="<%= DdlAlmacen.ClientID.ToString()%>">Almacen:</label>
<asp:DropDownList ID="DdlAlmacen" CssClass="form-control select2me" runat="server" AppendDataBoundItems="true" DataTextField="Almacen" DataValueField="CveAlmacen" Width="100%">
</asp:DropDownList>
</div>
<div class="col-md-2" style="margin-top: 20px;">
<asp:Button ID="BtnAgregarAlmacen" runat="server" CssClass="btn btn-primary btn-sm" Text="+" />
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvAlmacen" runat="server" GridLines="None" DataKeyNames="CveAlmacen,Almacen" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn scrollAD" Width="100%" AutoGenerateColumns="False" EmptyDataText="No ha seleccionado un almacen" ToolTip="Listado de Almacenes">
<Columns>
<asp:BoundField DataField="Almacen" HeaderText="Almacen" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" OnClick="DeleteAlmacen_Click" CausesValidation="False" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="col-md-6">
<div class="portlet light xspadding bordered" id="PtlClasificacion">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Clasificación</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<asp:UpdatePanel ID="UpClasificacion" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div class="row">
<div class="col-md-10">
<label for="<%= DdlClasificacion.ClientID.ToString()%>">Clasificación:</label>
<asp:DropDownList ID="DdlClasificacion" CssClass="form-control select2me" runat="server" AppendDataBoundItems="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Width="100%">
</asp:DropDownList>
</div>
<div class="col-md-2" style="margin-top: 20px;">
<asp:Button ID="BtnAgregarClasificaciones" runat="server" CssClass="btn btn-primary btn-sm" Text="+" />
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvClasificacion" runat="server" GridLines="None" DataKeyNames="CveClasificacion,Clasificacion" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn ADSCroll" Width="100%" AutoGenerateColumns="False" ToolTip="Listado de Clasificaciones" >
<Columns>
<asp:BoundField DataField="Clasificacion" HeaderText="Clasificacion" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" OnClick="DeleteClasificacion_Click" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="portlet light xspadding bordered" id="idnecesaria">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Productos Específicos</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<asp:UpdatePanel ID="UpProductosServicios" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div class="row">
<div class="col-md-10">
<label for="<%= DdlProductosServicios.ClientID.ToString()%>">Productos:</label>
<ADS:Dropdownlost ID="DdlProductosServicios" CssStyle="width: 95%;" runat="server" DataTextField="PSCodigo" DataValueField="CvePS" >
</ADS:Dropdownlost>
</div>
<div class="col-md-2" style="margin-top: 20px;">
<asp:Button for="DdlProductosServicios" ID="BtnAgregarProductosServicios" runat="server" CssClass="btn btn-primary btn-sm" Text="+" />
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvPS" runat="server" GridLines="None" DataKeyNames="CvePS" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn ScrollAD" data-heightfijo="150" data-height="150" Width="100%" AutoGenerateColumns="False" EmptyDataText="">
<Columns>
<asp:BoundField DataField="CodigoPS" HeaderText="Productos" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" OnClick="DeleteProductosServicios_Click" CausesValidation="False" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
<div class="col-md-6">
<div class="portlet light xspadding bordered" id="PtlClasificacionExcluida">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Clasificaciónes Excluidas</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<asp:UpdatePanel ID="UpClasificacionExcluida" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div class="row">
<div class="col-md-10">
<label for="<%= DdlClasificacionExcluida.ClientID.ToString()%>">Clasificación:</label>
<asp:DropDownList ID="DdlClasificacionExcluida" CssClass="form-control select2me" runat="server" AppendDataBoundItems="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Width="100%">
</asp:DropDownList>
</div>
<div class="col-md-2" style="margin-top: 20px;">
<asp:Button ID="BtnClasificacionExcluida" OnClick="BtnClasificacionExcluida_Click" runat="server" CssClass="btn btn-primary btn-sm" Text="+" />
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvClasificacionExcluida" runat="server" GridLines="None" DataKeyNames="CveClasificacion,Clasificacion" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn ADSCroll" Width="100%" AutoGenerateColumns="False" ToolTip="Listado de Clasificaciones Excluidas">
<Columns>
<asp:BoundField DataField="Clasificacion" HeaderText="Clasificacion" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="LnkEliminarClasificacionExcluida" OnClick="LnkEliminarClasificacionExcluida_Click" runat="server" AlternateText="Eliminar" CausesValidation="False" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="portlet light xspadding bordered" id="idnecesaria2">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Productos Excluidos</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<asp:UpdatePanel ID="UPPPSExcluye" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div class="row">
<div class="col-md-10">
<label for="<%= DdlPSExcluye.ClientID.ToString()%>">Productos:</label>
<ADS:Dropdownlost ID="DdlPSExcluye" CssStyle="width: 95%;" runat="server" DataTextField="PSCodigo" DataValueField="CvePS" >
</ADS:Dropdownlost>
</div>
<div class="col-md-2" style="margin-top:20px;">
<asp:Button for="DdlPSExcluye" ID="BtnAddPSExcluye" runat="server" CssClass="btn btn-primary btn-sm" Text="+" />
</div>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvPSExcluye" runat="server" GridLines="None" DataKeyNames="CvePS" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn ScrollAD" data-heightfijo="150" data-height="150" Width="100%" max-heigth="" AutoGenerateColumns="False" EmptyDataText="">
<Columns>
<asp:BoundField DataField="CodigoPS" HeaderText="Productos" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" OnClick="DeleteProductosServiciosExcluye_Click" CausesValidation="False" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel ID="UpFooter" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="BtnAgregarInventarioFisico" runat="server" CssClass="btn btn-primary" ValidationGroup="GrpObligatorio"> <i class='material-icons'>done_all</i> Guardar</asp:LinkButton>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,573 @@
Imports Extensiones
Imports System.Data
Partial Class Inventarios_InventarioFisico
Inherits ClsPaginas
#Region "PROPIEDADES"
Public Property DtEquivalencias() As DataTable
Get
Return CType(ViewState("dtIF"), DataTable)
End Get
Set(value As DataTable)
ViewState("dtIF") = value
End Set
End Property
Private Property tDTClasif As DataTable
Get
Return If(IsNothing(ViewState("tDTClasif")), Nothing, CType(ViewState("tDTClasif"), DataTable))
End Get
Set(value As DataTable)
ViewState("tDTClasif") = value
End Set
End Property
Private Property tDTClasifExcluye As DataTable
Get
Return If(IsNothing(ViewState("tDTClasifExcluye")), Nothing, CType(ViewState("tDTClasifExcluye"), DataTable))
End Get
Set(value As DataTable)
ViewState("tDTClasifExcluye") = value
End Set
End Property
Private Property tDTPS As DataTable
Get
Return If(IsNothing(ViewState("tDTPS")), Nothing, CType(ViewState("tDTPS"), DataTable))
End Get
Set(value As DataTable)
ViewState("tDTPS") = value
End Set
End Property
Private Property tDTPSExcluye As DataTable
Get
Return If(IsNothing(ViewState("tDTPSExcluye")), Nothing, CType(ViewState("tDTPSExcluye"), DataTable))
End Get
Set(value As DataTable)
ViewState("tDTPSExcluye") = value
End Set
End Property
Private Property tALM As DataTable
Get
Return If(IsNothing(ViewState("tALM")), Nothing, CType(ViewState("tALM"), DataTable))
End Get
Set(value As DataTable)
ViewState("tALM") = value
End Set
End Property
Property FechaInicio As String
Property FechaFin As String
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaDdlSubProyectos()
CargaDdlClasificacion()
CargaDdlProductosServicios()
CargDdlAlmacen()
CreaTmpClasificaciones()
CreaTmpProductosServicios()
CreaTmpAlmacen()
CargaDatos(UsuarioActual.CveEmpresa)
End If
End Sub
#Region "CARGAS"
Private Sub CargaDatos(CveEmpresa As Integer)
Dim Inventario As New ClsInventarios
Dim dt As New DataTable
If Inventario.GetInventarioFisico(-1, CveEmpresa, DdlFiltroSubProyecto.SelectedValue.ToEntero, DdlEstado.SelectedValue.ToEntero) Then
dt = Inventario.DtResultados
End If
Inventario.Dispose()
gvIF.DataSource = dt
gvIF.EditIndex = -1
gvIF.DataBind()
gvIF.Columns(6).Visible = UsuarioActual.TienePermisoProceso(178)
End Sub
Private Sub CargaGvAlmacen()
Dim ObjInventario As New ClsInventarios()
If ObjInventario.GetInventarioFisicoDetallesAlmacen(HdnID.Value, UsuarioActual.CveEmpresa) Then
GvAlmacen.DataSource = ObjInventario.DtResultados
GvAlmacen.DataBind()
End If
ObjInventario.Dispose()
UpSubProyecto.Update()
End Sub
Private Sub CargaGvClasificacion()
Dim ObjInventario As New ClsInventarios()
If ObjInventario.GetInventarioFisicoDetallesClasificacion(HdnID.Value, UsuarioActual.CveEmpresa) Then
GvClasificacion.DataSource = ObjInventario.DtResultados.FiltraParametros("Incluye = 1")
GvClasificacionExcluida.DataSource = ObjInventario.DtResultados.FiltraParametros("Incluye = 0")
End If
ObjInventario.Dispose()
GvClasificacion.DataBind()
GvClasificacionExcluida.DataBind()
UpClasificacionExcluida.Update()
UpClasificacion.Update()
End Sub
Private Sub CargaGvProductosServicios()
Dim ObjInventario As New ClsInventarios()
If ObjInventario.GetInventarioFisicoDetallesProductosServicios(HdnID.Value, UsuarioActual.CveEmpresa) Then
GvPS.DataSource = ObjInventario.DtResultados.FiltraParametros("Incluye = 1")
GvPSExcluye.DataSource = ObjInventario.DtResultados.FiltraParametros("Incluye = 0")
End If
ObjInventario.Dispose()
GvPS.DataBind()
GvPSExcluye.DataBind()
UpProductosServicios.Update()
UPPPSExcluye.Update()
End Sub
Private Sub CargaDdlSubProyectos()
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
DdlFiltroSubProyecto.Items.Insert(0, New ListItem("Todas", "-1"))
DdlFiltroSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlFiltroSubProyecto.DataBind()
End Sub
Private Sub CargaDdlClasificacion()
DdlClasificacion.Items.Insert(0, New ListItem("Todos", "-1"))
DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros("UsoClasificacion IN (1,3)")
DdlClasificacion.DataBind()
DdlClasificacionExcluida.Items.Insert(0, New ListItem("Todos", "-1"))
DdlClasificacionExcluida.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros("UsoClasificacion IN (1,3)")
DdlClasificacionExcluida.DataBind()
End Sub
Private Sub CargaDdlProductosServicios()
DdlProductosServicios.setEsWebService(True)
DdlProductosServicios.ddlWS.Attributes.Add("data-cveclasificacion", "-1")
DdlProductosServicios.SelectedText = "Todos"
DdlProductosServicios.SelectedValue = "-1"
DdlPSExcluye.setEsWebService(True)
DdlPSExcluye.ddlWS.Attributes.Add("data-cveclasificacion", "-1")
DdlPSExcluye.SelectedText = "Todos"
DdlPSExcluye.SelectedValue = "-1"
End Sub
Private Sub CargDdlAlmacen()
DdlAlmacen.Items.Clear()
DdlAlmacen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveSubProyecto ={DdlSubProyecto.SelectedValue} AND Inventariable= 'True'")
DdlAlmacen.DataBind()
End Sub
#End Region
#Region "PRODUCTOS SERVICIOS"
Public Sub DeleteProductosServicios_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
tDTPS.Rows(GvRow.RowIndex.ToEntero).Delete()
GvPS.DataSource = tDTPS
GvPS.DataBind()
UpProductosServicios.Update()
End Sub
Public Sub DeleteProductosServiciosExcluye_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
tDTPSExcluye.Rows(GvRow.RowIndex.ToEntero).Delete()
GvPSExcluye.DataSource = tDTPSExcluye
GvPSExcluye.DataBind()
UPPPSExcluye.Update()
End Sub
Private Sub BtnAgregarProductosServicios_Click(sender As Object, e As EventArgs) Handles BtnAgregarProductosServicios.Click
If DdlProductosServicios.SelectedValue = -1 Then
Alert("Tienes seleccionada la opcion 'Todos'.", TipoMensaje.MsgInformacion)
GvPS.DataSource = Nothing
GvPS.DataBind()
tDTPS.Rows.Clear()
Else
Dim Row As DataRow = Nothing
Row = tDTPS.NewRow
Row("CvePS") = DdlProductosServicios.SelectedValue.ToEntero
Row("CodigoPS") = DdlProductosServicios.SelectedText
tDTPS.Rows.Add(Row)
GvPS.DataSource = tDTPS
GvPS.DataBind()
UpProductosServicios.Update()
End If
End Sub
Private Sub BtnAddPSExcluye_Click(sender As Object, e As EventArgs) Handles BtnAddPSExcluye.Click
If DdlPSExcluye.SelectedValue = -1 Then
Alert("Tienes seleccionada la opcion 'Todos'.", TipoMensaje.MsgInformacion)
GvPSExcluye.DataSource = Nothing
GvPSExcluye.DataBind()
tDTPSExcluye.Rows.Clear()
Else
Dim Row As DataRow = Nothing
Row = tDTPSExcluye.NewRow
Row("CvePS") = DdlPSExcluye.SelectedValue.ToEntero
Row("CodigoPS") = DdlPSExcluye.SelectedText
tDTPSExcluye.Rows.Add(Row)
GvPSExcluye.DataSource = tDTPSExcluye
GvPSExcluye.DataBind()
UPPPSExcluye.Update()
End If
End Sub
Private Sub CreaTmpProductosServicios()
tDTPS = New DataTable
tDTPS.Columns.Add("CvePS", GetType(Integer))
tDTPS.Columns.Add("CodigoPS", GetType(String))
tDTPS.Columns.Add("Incluye", GetType(Integer))
tDTPSExcluye = New DataTable
tDTPSExcluye.Columns.Add("CvePS", GetType(Integer))
tDTPSExcluye.Columns.Add("CodigoPS", GetType(String))
tDTPSExcluye.Columns.Add("Incluye", GetType(Integer))
End Sub
#End Region
#Region "CLASIFICACIONES"
Public Sub DeleteClasificacion_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
tDTClasif.Rows(GvRow.RowIndex.ToEntero).Delete()
GvClasificacion.DataSource = tDTClasif
GvClasificacion.DataBind()
UpClasificacion.Update()
End Sub
Private Sub BtnAgregarClasificaciones_Click(sender As Object, e As EventArgs) Handles BtnAgregarClasificaciones.Click
If DdlClasificacion.SelectedValue = -1 Then
Alert("Tienes seleccionada la opcion 'Todos'.", TipoMensaje.MsgInformacion)
GvClasificacion.DataSource = Nothing
GvClasificacion.DataBind()
tDTClasif.Rows.Clear()
Else
Dim Row As DataRow = Nothing
Row = tDTClasif.NewRow
Row("CveClasificacion") = DdlClasificacion.SelectedValue.ToEntero
Row("Clasificacion") = DdlClasificacion.SelectedItem.Text
tDTClasif.Rows.Add(Row)
GvClasificacion.DataSource = tDTClasif
GvClasificacion.DataBind()
UpClasificacion.Update()
End If
End Sub
Private Sub CreaTmpClasificaciones()
tDTClasif = New DataTable
tDTClasif.Columns.Add("CveClasificacion", GetType(Integer))
tDTClasif.Columns.Add("Clasificacion", GetType(String))
tDTClasif.Columns.Add("Incluye", GetType(Integer))
tDTClasifExcluye = New DataTable
tDTClasifExcluye.Columns.Add("CveClasificacion", GetType(Integer))
tDTClasifExcluye.Columns.Add("Clasificacion", GetType(String))
tDTClasifExcluye.Columns.Add("Incluye", GetType(Integer))
End Sub
Protected Sub BtnClasificacionExcluida_Click(sender As Object, e As EventArgs)
If DdlClasificacionExcluida.SelectedValue = -1 Then
Alert("Tienes seleccionada la opcion 'Todos'.", TipoMensaje.MsgInformacion)
GvClasificacionExcluida.DataSource = Nothing
GvClasificacionExcluida.DataBind()
tDTClasifExcluye.Rows.Clear()
Else
Dim Row As DataRow = Nothing
Row = tDTClasifExcluye.NewRow
Row("CveClasificacion") = DdlClasificacionExcluida.SelectedValue.ToEntero
Row("Clasificacion") = DdlClasificacionExcluida.SelectedItem.Text
tDTClasifExcluye.Rows.Add(Row)
GvClasificacionExcluida.DataSource = tDTClasifExcluye
GvClasificacionExcluida.DataBind()
UpClasificacionExcluida.Update()
End If
End Sub
Protected Sub LnkEliminarClasificacionExcluida_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
tDTClasifExcluye.Rows(GvRow.RowIndex.ToEntero).Delete()
GvClasificacionExcluida.DataSource = tDTClasifExcluye
GvClasificacionExcluida.DataBind()
UpClasificacionExcluida.Update()
End Sub
#End Region
#Region "INVENTARIO FISICO"
Public Sub Delete_Click(sender As Object, e As EventArgs)
Dim ObjInventario As New ClsInventarios()
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
HdnID.Value = GvRow.DataKey("CveInventarioFisico")
UppInventarioFisico.Update()
If ObjInventario.RemoveInventarioFisico(HdnID.Value) Then
CargaDatos(UsuarioActual.CveEmpresa)
Alert("Eliminado Correctamente.", TipoMensaje.MsgInformacion)
End If
ObjInventario.Dispose()
UppInventarioFisico.Update()
End Sub
Public Sub Edit_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
tDTClasif.Rows.Clear()
tDTClasifExcluye.Rows.Clear()
tDTPS.Rows.Clear()
tDTPSExcluye.Rows.Clear()
tALM.Rows.Clear()
GvAlmacen.DataSource = Nothing
GvAlmacen.DataBind()
GvClasificacion.DataSource = Nothing
GvClasificacion.DataBind()
GvClasificacionExcluida.DataSource = Nothing
GvClasificacionExcluida.DataBind()
GvPS.DataSource = Nothing
GvPS.DataBind()
HdnModalidad.Value = "U"
HdnID.Value = GvRow.DataKey("CveInventarioFisico")
UppInventarioFisico.Update()
BtnAgregarInventarioFisico.Text = "Actualizar"
myModalLabel.InnerText = "Actualizar Inventario Fisico"
TxtTitulo.Text = GvRow.DataKey("InventarioFisico")
TxtObservaciones.Text = GvRow.DataKey("Observaciones")
FechaInicio = GvRow.DataKey("FechaInicio").ToEntero
FechaFin = GvRow.DataKey("FechaFin").ToEntero
DdlSubProyecto.SelectedValue = GvRow.DataKey("CveSubProyecto").ToEntero
CargaGvAlmacen()
CargaGvClasificacion()
CargaGvProductosServicios()
tDTClasif = GvClasificacion.DataSource
tDTClasifExcluye = GvClasificacionExcluida.DataSource
tDTPS = GvPS.DataSource
tDTPSExcluye = GvPSExcluye.DataSource
tALM = GvAlmacen.DataSource
UpAddInventarioFisico.Update()
RegistraScript(String.Format("$('#{0}').modal('show');", "divAddInventarioFisico"))
End Sub
Private Sub LnkInventarioFisico_Click(sender As Object, e As EventArgs) Handles LnkInventarioFisico.Click
Agregar()
End Sub
Public Sub Agregar()
If tDTClasif IsNot Nothing AndAlso tDTPS IsNot Nothing Then
tDTClasif.Rows.Clear()
tDTPS.Rows.Clear()
tDTPSExcluye.Rows.Clear()
tDTClasifExcluye.Rows.Clear()
tALM.Rows.Clear()
End If
HdnModalidad.Value = "A"
UppInventarioFisico.Update()
BtnAgregarInventarioFisico.Text = "Agregar"
myModalLabel.InnerText = "Agregar Inventario Fisico"
TxtTitulo.Text = ""
TxtObservaciones.Text = ""
GvAlmacen.DataSource = Nothing
GvAlmacen.DataBind()
GvClasificacion.DataSource = Nothing
GvClasificacion.DataBind()
GvClasificacionExcluida.DataSource = Nothing
GvClasificacionExcluida.DataBind()
GvPS.DataSource = Nothing
GvPS.DataBind()
GvPSExcluye.DataSource = Nothing
GvPSExcluye.DataBind()
UpAddInventarioFisico.Update()
RegistraScript("$('#divAddInventarioFisico').modal('show');")
End Sub
Private Sub BtnAgregarInventarioFisico_Click(sender As Object, e As EventArgs) Handles BtnAgregarInventarioFisico.Click
'verificar almacen
If GvAlmacen.Rows.Count = 0 Then Alert("Favor de especificar cuando menos un almacen", TipoMensaje.MsgAdvertencia) : Exit Sub
Dim ErrorClasif As Boolean = False
Dim ObjInventario As New ClsInventarios
Dim CveInventarioFisico As Integer
ObjInventario.IniciaTransacSQL()
If HdnModalidad.Value = "A" Then
If ObjInventario.AddInventarioFisico(UsuarioActual.CveEmpresa, TxtTitulo.Text, TxtObservaciones.Text, 0, DdlSubProyecto.SelectedValue.ToEntero) Then
CveInventarioFisico = ObjInventario.CveInventarioFisico
For Each Gvr As GridViewRow In GvAlmacen.Rows
If Not ObjInventario.AddInventarioFisicoAlmacenes(CveInventarioFisico, Gvr.DataKey("CveAlmacen").ToEntero) Then
ErrorClasif = True
Exit For
End If
Next
If ErrorClasif = False Then
For Each Gvr As GridViewRow In GvClasificacion.Rows
If Not ObjInventario.AddInventarioFisicoClasificaciones(CveInventarioFisico, Gvr.DataKey("CveClasificacion").ToEntero, UsuarioActual.CveUsuario, True) Then
ErrorClasif = True
Exit For
End If
Next
For Each Gvr As GridViewRow In GvClasificacionExcluida.Rows
If Not ObjInventario.AddInventarioFisicoClasificaciones(CveInventarioFisico, Gvr.DataKey("CveClasificacion").ToEntero, UsuarioActual.CveUsuario, False) Then
ErrorClasif = True
Exit For
End If
Next
End If
If ErrorClasif = False Then
For Each Gvr As GridViewRow In GvPS.Rows
If Not ObjInventario.AddInventarioFisicoProductosServicios(CveInventarioFisico, Gvr.DataKey("CvePS").ToEntero, True) Then
ErrorClasif = True
Exit For
End If
Next
For Each Gvr As GridViewRow In GvPSExcluye.Rows
If Not ObjInventario.AddInventarioFisicoProductosServicios(CveInventarioFisico, Gvr.DataKey("CvePS").ToEntero, False) Then
ErrorClasif = True
Exit For
End If
Next
End If
If ErrorClasif = False And CveInventarioFisico > 0 Then
ObjInventario.Commit()
Alert("Agregado Correctamente.", TipoMensaje.MsgInformacion)
RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddInventarioFisico"))
CargaDatos(UsuarioActual.CveEmpresa)
UppInventarioFisico.Update()
Else
ObjInventario.RollBack()
End If
End If
Else
If ObjInventario.UpdateInventarioFisico(HdnID.Value, TxtTitulo.Text, TxtObservaciones.Text, DdlSubProyecto.SelectedValue.ToEntero) Then
If Not ObjInventario.RemoveInventarioFisicoAlamacen(HdnID.Value) Then
ErrorClasif = True
End If
If Not ObjInventario.RemoveInventarioFisicoClasificacion(HdnID.Value) Then
ErrorClasif = True
End If
If Not ObjInventario.RemoveInventarioFisicoProductosServicios(HdnID.Value) Then
ErrorClasif = True
End If
If ErrorClasif = False Then
For Each Gvr As GridViewRow In GvAlmacen.Rows
If Not ObjInventario.AddInventarioFisicoAlmacenes(HdnID.Value, Gvr.DataKey("CveAlmacen").ToEntero) Then
ErrorClasif = True
Exit For
End If
Next
End If
If ErrorClasif = False Then
For Each Gvr As GridViewRow In GvClasificacion.Rows
If Not ObjInventario.AddInventarioFisicoClasificaciones(HdnID.Value, Gvr.DataKey("CveClasificacion").ToEntero, UsuarioActual.CveUsuario, True) Then
ErrorClasif = True
Exit For
End If
Next
For Each Gvr As GridViewRow In GvClasificacionExcluida.Rows
If Not ObjInventario.AddInventarioFisicoClasificaciones(HdnID.Value, Gvr.DataKey("CveClasificacion").ToEntero, UsuarioActual.CveUsuario, False) Then
ErrorClasif = True
Exit For
End If
Next
End If
If ErrorClasif = False Then
For Each Gvr As GridViewRow In GvPS.Rows
If Not ObjInventario.AddInventarioFisicoProductosServicios(HdnID.Value, Gvr.DataKey("CvePS").ToEntero, True) Then
ErrorClasif = True
Exit For
End If
Next
For Each Gvr As GridViewRow In GvPSExcluye.Rows
If Not ObjInventario.AddInventarioFisicoProductosServicios(HdnID.Value, Gvr.DataKey("CvePS").ToEntero, False) Then
ErrorClasif = True
Exit For
End If
Next
End If
If ErrorClasif = False And HdnID.Value > 0 Then
ObjInventario.Commit()
Alert("Actualizado Correctamente.", TipoMensaje.MsgInformacion)
RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddInventarioFisico"))
CargaDatos(UsuarioActual.CveEmpresa)
UppInventarioFisico.Update()
Else
ObjInventario.RollBack()
End If
End If
End If
End Sub
Protected Sub gvIF_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles gvIF.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("CveEstatus") = "3" Then
e.Row.FCLinkButton("imgE").Visible = False
e.Row.FCLinkButton("imgD").Visible = False
End If
End If
End Sub
#End Region
#Region "ALMACEN"
Public Sub DeleteAlmacen_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
tALM.Rows(GvRow.RowIndex.ToEntero).Delete()
GvAlmacen.DataSource = tALM
GvAlmacen.DataBind()
UpSubProyecto.Update()
End Sub
Private Sub BtnAgregarAlmacen_Click(sender As Object, e As EventArgs) Handles BtnAgregarAlmacen.Click
Dim Row As DataRow = Nothing
Row = tALM.NewRow
Row("CveAlmacen") = DdlAlmacen.SelectedValue.ToEntero
Row("Almacen") = DdlAlmacen.SelectedItem.Text
tALM.Rows.Add(Row)
GvAlmacen.DataSource = tALM
GvAlmacen.DataBind()
UpSubProyecto.Update()
End Sub
Private Sub CreaTmpAlmacen()
tALM = New DataTable
tALM.Columns.Add("CveAlmacen", GetType(Integer))
tALM.Columns.Add("Almacen", GetType(String))
End Sub
#End Region
#Region "CONSULTA"
Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
Dim ObjInventario As New ClsInventarios
If ObjInventario.GetInventarioFisico(-1, UsuarioActual.CveEmpresa, DdlFiltroSubProyecto.SelectedValue.ToEntero, DdlEstado.SelectedValue) Then
gvIF.DataSource = ObjInventario.DtResultados
gvIF.DataBind()
End If
UppInventarioFisico.Update()
ObjInventario.Dispose()
End Sub
#End Region
#Region "SELECTED INDEX CHANGE"
Private Sub DdlSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyecto.SelectedIndexChanged
CargDdlAlmacen()
GvAlmacen.DataSource = Nothing
GvAlmacen.DataBind()
tALM.Rows.Clear()
UpSubProyecto.Update()
End Sub
#End Region
End Class

View File

@@ -0,0 +1,336 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="InventarioFisicoDetalle.aspx.vb" Inherits="Inventarios_InventarioFisicoDetalle" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
<style>
#C_TxtHoraInicio_picker {
position: fixed !important;
}
.grides > tbody > tr > td:nth-child(3), .grides > tbody > tr > td:nth-child(3) {
width: 250px;
}
#C_myhidenbutton {
display: none;
}
.psagregar {
width: 450px;
}
.psagregar > div.comboxes {
display: inline-block;
width: 400px;
}
.table-scrollable {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
.Widthall {
width: 100% !important;
}
.dataTables_scrollHeadInner {
width: 100% !important;
background-color: #dddddd;
padding-left: 0px !important;
}
.dataTables_scrollFoot {
display: none;
position: static;
}
.table-scrollable {
margin: 0px !important;
}
.dataTables_scroll {
margin-bottom: 0px;
}
.table.dataTable {
margin-top: 0px !important;
}
.dataTables_scrollBody table th {
padding: 0px !important;
padding-right: 4px !important;
padding-left: 4px !important;
}
.sinlink td a {
pointer-events: none;
cursor: default;
color: black;
font-size: small;
}
.white a {
color: white !important;
}
.Derecha {
text-align: right;
}
.Izquierda {
text-align: left;
}
.SinColor th {
background-color: white;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
<li>
<asp:LinkButton ID="btnFin" runat="server" Text="Finalizar" data-toggle="confirmation" data-popout="true" data-original-title="Finalizar el inventario" data-btn-ok-label="si" />
</li>
<li>
<asp:LinkButton ID="LBAvance" OnClick="LBAvance_Click" runat="server" Text="Ver Avance" Visible="false" />
</li>
<li>
<asp:LinkButton ID="LnkPDF" runat="server"><i class="fa fa-ad-pdf"></i> Imprimir PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkExcel" runat="server"><i class="fa fa-ad-excel"></i> Imprimir EXCEL</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Inventario Físico Detalle
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<div class="row" style="margin-left: 0px; margin-right: 0px;">
<div class="col-md-6" style="max-width: 545px;">
<div class="portlet smmallpadding light bordered infomov">
<div class="portlet-title">
<div class="tools">
<a href="javascript:;" class="expand"></a>
</div>
<div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Información del movimiento
</div>
</div>
<div class="portlet-body">
<table>
<tr>
<td class="col-md-4">
<label><b>Título: </b></label>
<asp:Label ID="lbTitulo" runat="server"></asp:Label>
</td>
<td class="col-md-4">
<label><b>SubProyecto: </b></label>
<asp:Label ID="lbSubProyecto" runat="server"></asp:Label>
</td>
<td class="col-md-4">
<label><b>Estatus: </b></label>
<asp:Label ID="lbEstatus" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="col-md-4">
<label><b>Fecha Inicio: </b></label>
<asp:Label ID="lbFechaI" runat="server"></asp:Label>
</td>
<td class="col-md-4">
<label><b>Fecha Fin: </b></label>
<asp:Label ID="lbFechaF" runat="server"></asp:Label>
</td>
<td class="col-md-4">
<label><b>Usuario: </b></label>
<asp:DropDownList ID="ddlUsuario" AutoPostBack="true" runat="server" AppendDataBoundItems="true" Class="form-control input-sm select2me" Style="width: 141px !important;" DataTextField="Nombre" DataValueField="CveUsuario">
<asp:ListItem Text="Todos" Value="-1"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td colspan="3">&nbsp;&nbsp;&nbsp;<label><b>Almacenes:</b></label>&nbsp;<asp:Label ID="LblAlmacenes" runat="server" Text=""></asp:Label>
</td>
</tr>
<tr>
<td colspan="3">&nbsp;&nbsp;&nbsp;<label><b>Clasificaciones:</b></label>&nbsp;<asp:Label ID="LblClasif" runat="server" Text="Todas"></asp:Label>
<br />
&nbsp;&nbsp;&nbsp;<label><b>Clasificaciones Excluidas:</b></label>&nbsp;<asp:Label ID="LblClasificacionesExcluidas" runat="server" Text=""></asp:Label>
</td>
</tr>
<tr>
<td colspan="3">&nbsp;&nbsp;&nbsp;<label><b>Productos:</b></label>&nbsp;<asp:Label ID="LblProductos" runat="server" Text="Todos"></asp:Label>
<br />
&nbsp;&nbsp;&nbsp;<label><b>Productos Excluidos:</b></label>&nbsp;<asp:Label ID="LblProductosExcluidos" runat="server" Text=""></asp:Label>
</td>
</tr>
</table>
<table>
<tr>
<td class="col-md-12" style="width: 500px;">
<label><b>Observaciones: </b></label>
<asp:Label ID="lbObservaciones" runat="server" Style="width: 450px;"></asp:Label>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="col-md-3" id="PAgregar" runat="server">
<asp:UpdatePanel ID="UPAgregarPro" runat="server" RenderMode="Inline" ViewStateMode="Inherit" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="PnlII" runat="server" DefaultButton="BtnGuardar">
<div class="portlet smmallpadding light bordered" id="DivCodigoBarras" runat="server">
<div class="portlet-title">
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
<div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Agregar Producto
</div>
</div>
<div class="portlet-body">
<div class="row">
<label class="col-md-4">Cantidad</label>
<div class="col-md-8">
<asp:TextBox runat="server" ID="TxtCantidadProducto" Text="1" Width="50px"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ID="RFVCantidad" ControlToValidate="TxtCantidadProducto" ValidationGroup="GrpIngresar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingrése una." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOCantidad" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row" style="margin-top: 5px;">
<label class="col-md-4">Código/NoParte</label>
<div class="col-md-8">
<asp:TextBox runat="server" ID="TxtCodigo"></asp:TextBox>
</div>
</div>
<div class="row" style="margin-top: 5px;">
<label class="col-md-4">Código.Barras</label>
<div class="col-md-8">
<asp:TextBox runat="server" ID="TxtCodigoBarras"></asp:TextBox>
</div>
</div>
<div class="row" style="margin-top: 5px;">
<label class="col-md-4">Serie</label>
<div class="col-md-8">
<asp:TextBox runat="server" ID="TxtCodigoSerie"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ID="RFVSerie" ControlToValidate="TxtCodigoSerie" Enabled="false" ValidationGroup="GrpIngresar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Serie''</b> es necesario, por favor ingrése una." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCESerie" runat="server" HighlightCssClass="vco" TargetControlID="RFVSerie" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row" style="margin-top: 5px;">
<div class="col-md-12" style="text-align: center;">
<asp:Button ID="BtnGuardar" runat="server" ValidationGroup="GrpIngresar" Text="Ingresar" class="btn btn-primary" Enabled="false" />
</div>
</div>
</div>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<asp:UpdatePanel ID="UPPInventario" runat="server" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<label class="col-md-2"><b>Ultimo Registrado: </b></label>
<div class="col-md-8">
<asp:GridView ID="GvIFDUltimoRegistrado" ClientIDMode="Static" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" GridLines="None" DataKeyNames="CveInventarioFisicoDetalle" ShowHeaderWhenEmpty="True" CssClass="table table-striped table-hover Widthall">
<Columns>
<asp:BoundField HeaderText="Fecha" DataField="FechaInvFisico" DataFormatString="{0:g}"></asp:BoundField>
<asp:BoundField HeaderText="Código Barras" DataField="CodigoBarras" ItemStyle-HorizontalAlign="Left"></asp:BoundField>
<asp:BoundField HeaderText="Código" DataField="Codigo" ItemStyle-HorizontalAlign="Left"></asp:BoundField>
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-HorizontalAlign="Left"></asp:BoundField>
<asp:BoundField HeaderText="Serie/Lote" DataField="SerieLote" ItemStyle-HorizontalAlign="Left"></asp:BoundField>
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right"></asp:BoundField>
</Columns>
</asp:GridView>
</div>
<div class="col-md-2">
<asp:Button ID="BtnVerRegistrados" OnClick="BtnVerRegistrados_Click" runat="server" CssClass="btn btn-primary btn-sm" Text="Ver Registrados" />
</div>
</div>
<br />
<div class="row col-md-12" align="right" id="DivBuscador" runat="server">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="return Filtrar(event);" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvIFD.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
<div style="display: inline-block;" id="SumFiltra"></div>
</div>
<asp:GridView ID="GvIFD" ClientIDMode="Static" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" GridLines="None" DataKeyNames="CveInventarioFisicoDetalle" ShowHeaderWhenEmpty="True" CssClass="table table-striped table-hover Widthall">
<Columns>
<asp:BoundField HeaderText="Fecha" DataField="FechaInvFisico" DataFormatString="{0:g}"></asp:BoundField>
<asp:BoundField HeaderText="Código Barras" DataField="CodigoBarras" ItemStyle-HorizontalAlign="Left"></asp:BoundField>
<asp:BoundField HeaderText="Código" DataField="Codigo" ItemStyle-HorizontalAlign="Left"></asp:BoundField>
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-HorizontalAlign="Left"></asp:BoundField>
<asp:BoundField HeaderText="Serie/Lote" DataField="SerieLote" ItemStyle-HorizontalAlign="Left"></asp:BoundField>
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right"></asp:BoundField>
<asp:TemplateField HeaderText="Eliminar" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-xs red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Estas seguro que desea eliminar el registro?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlUsuario" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script src="/Scripts/DataTables.js"></script>
<script type="text/javascript">
function pageLoad(sender, e) {
$(document).ready(function () {
$('a[class="ajax__tab_tab"]').click(function () {
$.fn.dataTable.tables({ visible: true, api: true }).columns.adjust();
});
});
}
function Filtrar(e) {
debugger;
if (e.keyCode == 13 || e.which == 13) {
return false;
} else {
<%= String.Format("FiltrarTabla('TxtBusqueda','{0}','SumFiltra')", GvIFD.ClientID) %>;
}
}
function playsonidito(NomArchivo) {
var URL = /Sonidos/ + NomArchivo
var snd = new Audio(URL);
snd.play();
snd.currentTime = 0;
}
function OrdenarGV() {
$('#<%=GvIFD.ClientID%>').DataTable({
retrieve: true,
scrollY: '300px',
scrollCollapse: true,
paging: false,
searching: false,
info: false,
ordering: false
});
$('#GvIFD').parent().parent().children().first().css("position", "static");
}
</script>
</asp:Content>

View File

@@ -0,0 +1,448 @@

Option Explicit On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_InventarioFisicoDetalle
Inherits ClsPaginas
#Region "Propiedades"
Public Property DtEquivalencias() As DataTable
Get
Return CType(ViewState("dtIFDetalles"), DataTable)
End Get
Set(value As DataTable)
ViewState("dtIFDetalles") = value
End Set
End Property
Private Property CveSubProyecto As Integer
Get
Return ViewState("CveSubProyecto").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveSubProyecto") = value
End Set
End Property
Private Property CveInventarioFisico As Integer
Get
Return ViewState("CveInventarioFisico").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveInventarioFisico") = value
End Set
End Property
Private Property DtDatos As DataTable
Get
Return DirectCast(ViewState("DtVentas"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtVentas") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
If Request("CveInventarioFisico") IsNot Nothing AndAlso Request("CveInventarioFisico").ToString.ToEntero > 0 Then
CveInventarioFisico = Request("CveInventarioFisico").ToString.ToEntero
CargaUsuarios()
CargaDatos(CveInventarioFisico, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario)
End If
End If
End Sub
#Region " USUARIOS "
Private Sub CargaUsuarios()
ddlUsuario.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa)
ddlUsuario.DataBind()
UPPInventario.Update()
ddlUsuario.SelectedValue = UsuarioActual.CveUsuario.ToString
End Sub
Protected Sub ddlUsuario_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles ddlUsuario.SelectedIndexChanged
CargaDatos(CveInventarioFisico, UsuarioActual.CveEmpresa, ddlUsuario.SelectedValue.ToString.ToEntero)
Dim EsUsuarioActual As Boolean = False
If ddlUsuario.SelectedValue = UsuarioActual.CveUsuario.ToString Then
EsUsuarioActual = True
End If
GvIFD.Columns(6).Visible = EsUsuarioActual
GvIFD.DataBind()
If (GvIFD.Rows.Count > 0) Then
GvIFD.UseAccessibleHeader = True
GvIFD.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGV();")
End If
UPAgregarPro.Update()
UPPInventario.Update()
End Sub
#End Region
#Region " CARGA DATOS "
Private Sub CargaDatos(CveInventarioFisico As Integer, CveEmpresa As Integer, Optional CveUsuario As Integer = -1)
Dim Inventario As New ClsInventarios
If Inventario.GetInventarioFisico(CveInventarioFisico, CveEmpresa, -1, -1) Then
Select Case Inventario.Estatus
Case "Nuevo"
CveSubProyecto = Inventario.CveSubProyectoInventario
lbTitulo.Text = Inventario.InventarioFisico
lbObservaciones.Text = Inventario.Observaciones
lbSubProyecto.Text = Inventario.SubProyectoInventario
lbEstatus.Text = Inventario.Estatus
lbFechaF.Text = Inventario.FechaF
btnFin.Text = "Iniciar"
BtnGuardar.Enabled = False
btnFin.ToolTip = "Inicia el Inventario Físico"
Case "Finalizado"
GvIFD.Columns(6).Visible = False
PAgregar.Visible = False
'BtnGuardar.Visible = False
btnFin.Visible = False
'BtnGuardar.Enabled = False
'PAgregar.Visible = False
CveSubProyecto = Inventario.CveSubProyectoInventario
lbTitulo.Text = Inventario.InventarioFisico
lbObservaciones.Text = Inventario.Observaciones
lbSubProyecto.Text = Inventario.SubProyectoInventario
lbEstatus.Text = Inventario.Estatus
lbFechaI.Text = Inventario.FechaI
lbFechaF.Text = Inventario.FechaF
Case Else ' en proceso
CveSubProyecto = Inventario.CveSubProyectoInventario
lbTitulo.Text = Inventario.InventarioFisico
lbObservaciones.Text = Inventario.Observaciones
lbEstatus.Text = Inventario.Estatus
lbSubProyecto.Text = Inventario.SubProyectoInventario
lbFechaI.Text = Inventario.FechaI
lbFechaF.Text = Inventario.FechaF
BtnGuardar.Enabled = True
btnFin.Text = "Finalizar"
LBAvance.Visible = UsuarioActual.TienePermisoProceso(178) ' si tiene permiso de ver el avance, se activa
End Select
GvIFD.Visible = False
DivBuscador.Visible = False
If Inventario.GetInventarioFisicoDetallesAlmacen(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dt As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
For Each dr As DataRow In dt.Rows
str.AppendFormat("{0},", dr("almacen"))
Next
End If
LblAlmacenes.Text = str.ToString
End If
If Inventario.GetInventarioFisicoDetallesClasificacion(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dt As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
For Each dr As DataRow In dt.FiltraParametros("Incluye = 1").Rows
str.AppendFormat("{0},", dr("Clasificacion"))
Next
LblClasif.Text = str.ToString
str.Clear()
For Each dr As DataRow In dt.FiltraParametros("Incluye = 0").Rows
str.AppendFormat("{0},", dr("Clasificacion"))
Next
LblClasificacionesExcluidas.Text = str.ToString
End If
End If
If Inventario.GetInventarioFisicoDetallesProductosServicios(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dt As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then
For Each dr As DataRow In dt.FiltraParametros("Incluye = 1").Rows
str.AppendFormat("{0},", dr("CodigoPS"))
Next
LblProductos.Text = str.ToString
str.Clear()
For Each dr As DataRow In dt.FiltraParametros("Incluye = 0").Rows
str.AppendFormat("{0},", dr("CodigoPS"))
Next
LblProductosExcluidos.Text = str.ToString
End If
End If
If Inventario.GetInventarioFisicoDetalle(CveInventarioFisico, CveUsuario) Then
If Inventario.DtResultados.Rows.Count > 0 Then
GvIFDUltimoRegistrado.DataSource = Inventario.DtResultados.AsEnumerable.OrderByDescending(Function(k) k!CveInventarioFisicoDetalle).Take(1).CopyToDataTable
Else
GvIFDUltimoRegistrado.DataSource = Nothing
End If
DtDatos = Inventario.DtResultados
End If
End If
Inventario.Dispose()
GvIFDUltimoRegistrado.DataBind()
'If (GvIFD.Rows.Count > 0) Then
' GvIFD.UseAccessibleHeader = True
' GvIFD.HeaderRow.TableSection = TableRowSection.TableHeader
' RegistraScript("OrdenarGV();")
'End If
UPAgregarPro.Update()
UPPInventario.Update()
End Sub
Protected Sub BtnVerRegistrados_Click(sender As Object, e As EventArgs)
GvIFD.Visible = True
DivBuscador.Visible = True
Dim Inventario As New ClsInventarios
If Inventario.GetInventarioFisicoDetalle(CveInventarioFisico, ddlUsuario.SelectedValue.ToString.ToEntero) Then
If Inventario.DtResultados.Rows.Count > 0 Then
GvIFD.DataSource = Inventario.DtResultados '.AsEnumerable.OrderByDescending(Function(k) k!CveInventarioFisicoDetalle).Take(500).CopyToDataTable
Else
GvIFD.DataSource = Nothing
End If
DtDatos = Inventario.DtResultados
End If
Inventario.Dispose()
GvIFD.DataBind()
If (GvIFD.Rows.Count > 0) Then
GvIFD.UseAccessibleHeader = True
GvIFD.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGV();")
End If
UPPInventario.Update()
End Sub
#End Region
#Region " AGREGAR "
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
Dim Valido As Boolean = False
Dim CveProducto As Integer = -1
Dim CveUnidadMedida As Integer
Dim Codigo As String = If(TxtCodigo.Text.Trim <> "", TxtCodigo.Text.Trim, "-1").Replace("'", "''") ' scanner cambian los guiones por apostrofes
Dim CodigoBarras As String = If(TxtCodigoBarras.Text.Trim <> "", TxtCodigoBarras.Text.Trim, "-1").Replace("'", "''") ' scanner cambian los guiones por apostrofes
Dim SerieLote As String = TxtCodigoSerie.Text.Trim
Dim CveMetodoInv As Integer = -1
Dim Cantidad = TxtCantidadProducto.Text.ToDouble
Dim dr As DataRow
dr = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"CodigoBarras = '{CodigoBarras}' OR Codigo = '{Codigo}' ")
If dr IsNot Nothing Then
CveMetodoInv = dr("Inv_CveMetodoInventario").ToString.ToEntero
CveProducto = dr("CvePS").ToString.ToEntero
CveUnidadMedida = dr("CveUnidadMedida").ToString.ToEntero
If CveMetodoInv = 5 And SerieLote = "" Then
RFVSerie.Enabled = True
RFVSerie.Visible = True
RFVSerie.SetFocusOnError = True
RFVSerie.Validate()
RFVSerie.ValidationGroup = " "
Exit Sub
End If
RFVSerie.ValidationGroup = "GrpIngresar"
RFVSerie.Enabled = False
'VALIDA QUE LA SERIE NO SEA IGUAL AL CODIGO O CODIGOBARRAS
If SerieLote <> "" And (SerieLote.ToUpper = dr("Codigo").ToString.ToUpper Or SerieLote.ToUpper = dr("CodigoBarras").ToString.ToUpper) Then
Alert($"La serie indicada <b>{SerieLote}</b> coincide con el codigo o codigo de barras del producto. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim Inventarios As New ClsInventarios
Dim Consulto As Boolean = False
If Inventarios.AddInventarioFisicoDetalle(CveInventarioFisico, CveProducto, CveUnidadMedida, If(CveMetodoInv = 5, 1, Cantidad), SerieLote, UsuarioActual.CveUsuario) Then
If GvIFDUltimoRegistrado.Rows.Count > 0 Then
GvIFDUltimoRegistrado.Rows(0).Cells(0).Text = Now
GvIFDUltimoRegistrado.Rows(0).Cells(1).Text = dr("CodigoBarras").ToString
GvIFDUltimoRegistrado.Rows(0).Cells(2).Text = dr("Codigo").ToString
GvIFDUltimoRegistrado.Rows(0).Cells(3).Text = dr("PS").ToString
GvIFDUltimoRegistrado.Rows(0).Cells(4).Text = TxtCodigoSerie.Text.Trim
GvIFDUltimoRegistrado.Rows(0).Cells(5).Text = TxtCantidadProducto.Text.Trim
Else
Consulto = True
If Inventarios.GetInventarioFisicoDetalle(CveInventarioFisico, UsuarioActual.CveUsuario) Then
If Inventarios.DtResultados.Rows.Count > 0 Then
GvIFDUltimoRegistrado.DataSource = Inventarios.DtResultados.AsEnumerable.OrderByDescending(Function(k) k!CveInventarioFisicoDetalle).Take(1).CopyToDataTable
Else
GvIFDUltimoRegistrado.DataSource = Nothing
End If
Else
Alert("Ocurrió un error al consultar el inventario fisico. Por favor vuelva a intentar.", TipoMensaje.MsgError)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
End If
End If
TxtCodigoBarras.Text = ""
TxtCodigoSerie.Text = ""
TxtCodigo.Text = ""
TxtCantidadProducto.Text = "1"
RegistraScript("playsonidito('beep-07.wav')")
Else
TxtCodigoSerie.Text = ""
End If
TxtCodigoBarras.Focus()
Inventarios.Dispose()
If Consulto Then GvIFDUltimoRegistrado.DataBind()
Else
TxtCodigoBarras.Text = ""
TxtCodigoSerie.Text = ""
TxtCodigo.Text = ""
Alert("No se encontró el producto, favor de escribirlo correctamente.", TipoMensaje.MsgError)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
End If
GvIFD.Visible = False
DivBuscador.Visible = False
UPPInventario.Update()
End Sub
#End Region
#Region " ELIMINAR "
Protected Sub gvInventarioFisicoDetalle_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvIFD.RowDeleting
If ddlUsuario.SelectedValue = UsuarioActual.CveUsuario.ToString Then
Dim Inventarios As New ClsInventarios
Dim Retorno As Boolean = Inventarios.RemoveInventarioFisicoDetalles(GvIFD.DataKeys(e.RowIndex).Value.ToString.ToEntero())
If Retorno Then
If Inventarios.GetInventarioFisicoDetalle(CveInventarioFisico, ddlUsuario.SelectedValue.ToString.ToEntero) Then
GvIFD.DataSource = Inventarios.DtResultados
RegistraScript("playsonidito('beep-07.wav')")
End If
End If
Inventarios.Dispose()
GvIFD.DataBind()
If (GvIFD.Rows.Count > 0) Then
GvIFD.UseAccessibleHeader = True
GvIFD.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGV();")
End If
UPPInventario.Update()
UPAgregarPro.Update()
Else
Alert("No se puede eliminar un producto registrado por otro usuario.", TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
End If
End Sub
#End Region
#Region " FINALIZAR "
Protected Sub btnFin_Click(sender As Object, e As EventArgs) Handles btnFin.Click
If btnFin.Text = "Iniciar" Then
Dim Inventarios As New ClsInventarios
Inventarios.UpdateInventarioFisicoEstatus(CveInventarioFisico, 1, UsuarioActual.CveEmpresa)
Inventarios.Dispose()
CargaDatos(CveInventarioFisico, UsuarioActual.CveEmpresa)
BtnGuardar.Enabled = True
Response.Redirect("~/Inventarios/InventarioFisicoDetalle.aspx?CveInventarioFisico=" + CveInventarioFisico.ToString)
Else
If GvIFDUltimoRegistrado.Rows.Count > 0 Then
BtnGuardar.Enabled = False
Dim Inventarios As New ClsInventarios
Inventarios.IniciaTransacSQL()
If Inventarios.AddInventarioFisicoResultados(CveInventarioFisico, UsuarioActual.CveUsuario) Then
If Inventarios.UpdateInventarioFisicoEstatus(CveInventarioFisico, 3, UsuarioActual.CveEmpresa) Then
Dim url As String = ("/Inventarios/RepAnomalias.aspx?CveInventarioFisico=" + CveInventarioFisico.ToString)
Alert("Ha finalizado el Inventario Físico. Sera enviado al reporte de anomalías", TipoMensaje.MsgInformacion, " window.location=""" + url + """")
Inventarios.Commit()
RegistraScript("playsonidito('beep-07.wav')")
Else
Inventarios.RollBack()
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
End If
Else
Inventarios.RollBack()
End If
Inventarios.Dispose()
Else
Alert("Aún no se ha ingresado ningún registro.", TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
End If
End If
UPAgregarPro.Update()
UPPInventario.Update()
End Sub
#End Region
#Region " VER AVANCE "
Protected Sub LBAvance_Click(sender As Object, e As EventArgs)
Response.Redirect($"~/Inventarios/RepAnomalias.aspx?CveInventarioFisico={CveInventarioFisico}&EsAvance=1")
End Sub
#End Region
#Region "I M P R I M I R"
Private Sub LnkPDF_Click(sender As Object, e As EventArgs) Handles LnkPDF.Click
Impimir(Formato:="PDF")
End Sub
Private Sub LnkExcel_Click(sender As Object, e As EventArgs) Handles LnkExcel.Click
Impimir(Formato:="EXCEL")
End Sub
Protected Sub Impimir(Optional Formato As String = "PDF")
If DtDatos IsNot Nothing Then
Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepAnomalias.rdlc", UsuarioActual.Empresa.Ruta))
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("Titulo", lbTitulo.Text))
params.Add(New ReportParameter("Sucursal", lbSubProyecto.Text))
params.Add(New ReportParameter("Clasificaciones", LblClasif.Text))
params.Add(New ReportParameter("Productos", LblProductos.Text))
params.Add(New ReportParameter("Observaciones", lbObservaciones.Text))
params.Add(New ReportParameter("Almacen", LblAlmacenes.Text))
params.Add(New ReportParameter("Estatus", lbEstatus.Text))
params.Add(New ReportParameter("FechaInicio", lbFechaI.Text))
params.Add(New ReportParameter("FechaFin", lbFechaF.Text))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepInventarioFisicoDetalle.rdlc", DtDatos, params, String.Format("Reporte Inventario Físico-{0}", Now.ToDateTime.ToShortDateString), Formato:=Formato)
Else
Alert("No se encontraron resultado", TipoMensaje.MsgAdvertencia)
End If
End Sub
#End Region
End Class

460
Inventarios/Kardex.aspx Normal file
View File

@@ -0,0 +1,460 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Kardex.aspx.vb" Inherits="Inventarios_Kardex" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.dataTables_scrollBody table th {
padding: 0px !important;
padding-right: 4px !important;
padding-left: 4px !important;
}
.table-scrollable {
margin: 0px !important;
}
.dataTables_scrollFoot {
display: none;
}
.dataTables_scroll {
margin-bottom: 0px;
}
.table.dataTable {
margin-top: 0px !important;
}
.table table-striped table-hover dataTable no-footer {
margin-top: 0px !important;
}
.Excede {
overflow: hidden;
text-overflow: ellipsis;
}
.psagregar > div.comboxes {
display: inline-block;
width: 250px;
}
.psagregar > div.codigo input {
width: 79px;
}
.psagregar > div.codigo {
display: inline-block;
width: 80px;
}
.psagregar > div.codigo > input[type="submit"] {
display: none;
}
.widget-thumb {
padding: 15px;
border-radius: 4px;
}
.widget-thumb.bordered {
border: 3px solid whitesmoke;
}
.widget-thumb .widget-thumb-heading {
font-size: 14px;
font-weight: 700;
color: #8e9daa;
margin: 0px 5px;
text-align: center;
}
.widget-thumb .widget-thumb-wrap {
overflow: hidden;
}
.widget-thumb .widget-thumb-wrap .widget-thumb-icon {
float: left;
width: 60px;
height: 60px;
display: inline-block;
font-size: 20px;
line-height: 41px;
color: #fff;
text-align: center;
padding: 10px;
margin-right: 15px;
}
.widget-thumb .widget-thumb-body {
overflow: hidden;
padding: 5px;
}
.widget-thumb .widget-thumb-body .widget-thumb-subtitle {
padding-top: 2px;
display: block;
font-size: 14px;
font-weight: 600;
color: #8e9daa;
}
.widget-thumb .widget-thumb-body .widget-thumb-body-stat {
display: block;
font-size: 20px;
font-weight: 600;
color: #3e4f5e;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Kardex
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="ImgImprimir" runat="server"><i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Generar Excel</asp:LinkButton>
</li>
<li>
<a target="_blank" class="ayuda" href="../Documentacion/DocumentacionInventarios.aspx#Kardex">&nbsp;</a>
</li>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px; position: relative;">
<div class="tools">
<asp:Button ID="btConsultar" runat="server" Text="Consultar" class="btn btn-primary" />
<a href="javascript;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption ">
<div class="row" style="padding-top: 10px; position: relative;">
<label class="col-md-1 truncate" style="max-width: 80px;">Producto:</label>
<div class="col-md-2 " style="min-width: 250px; max-width: 300px;">
<ADS:Dropdownlost ID="ddlProducto2" runat="server" AutoPostBack="False" DataTextField="PSCodigo" IncluyeTodos="false" DataValueField="CvePS" CssClassDdl="select2me" CssStyle="width: 250px; "></ADS:Dropdownlost>
</div>
<label class="col-md-1 truncate" style="max-width: 80px;">Almacén:</label>
<div class="col-md-2">
<asp:DropDownList ID="ddlAlmacen" runat="server" CssClass="select2me " Style="width: 175px !important;" DataTextField="Almacen" DataValueField="CveAlmacen"></asp:DropDownList>
</div>
<label class="col-md-1" style="max-width: 85px;">Fecha Inicio:</label>
<div class="col-md-1" style="min-width: 115px;">
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 105px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 80px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
</div>
<label class="col-md-1 " style="max-width: 70px;">Fecha Fin:</label>
<div class="col-md-1" style="min-width: 115px;">
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 105px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 80px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
<div class="col-md-1">
<asp:CheckBox ID="ChkAgruparAlmacen" CssClass="md-checksd" runat="server" Text="Agrupar Almacenes" Checked="False" Visible="false" />
</div>
</div>
</div>
</div>
<div class="portlet-body" <%= IIf(chkexpand.Checked = True, "", "style=""display:none;""")%>>
<div class="row">
<label class="col-md-1 truncate">Clasificación:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlClasificacion" CssClass="select2me" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 250px !important;">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 truncate">Unidad Medida:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlUnidadMedida" runat="server" CssClass="select2me " Style="width: 200px !important;" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida">
<asp:ListItem Text="Todos" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1">
<asp:CheckBox ID="cbEntrada" CssClass="md-checksd" runat="server" Text="Entrada" Checked="True" />
</div>
<div class="col-md-1">
<asp:CheckBox ID="cbSalida" CssClass="md-checksd" runat="server" Text="Salida" Checked="True" />
</div>
<div class="col-md-2">
<button type="button" class="btn btn-default" data-toggle="modal" data-target="#ModalTiposAlmacen">Filtrar tipos almacén</button>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%-- INDICADORES --%>
<asp:UpdatePanel ID="UpIndicadores" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div id="DivIndicadores" visible="false" class="row" runat="server">
<div class="col-md-3 col-sm-6 col-xs-12">
<div class="widget-thumb text-uppercase bordered">
<h4 class="widget-thumb-heading">Existencia</h4>
<div class="widget-thumb-wrap">
<i class="widget-thumb-icon bg-yellow fa fa-cubes"></i>
<div class="widget-thumb-body">
<span class="widget-thumb-body-stat">
<asp:Literal ID="LtIndicador_Existencia" Text="" runat="server" />
</span>
</div>
</div>
</div>
</div>
<div class="col-md-3 col-sm-6 col-xs-12">
<div class="widget-thumb text-uppercase bordered">
<h4 class="widget-thumb-heading">Valor</h4>
<div class="widget-thumb-wrap">
<i class="widget-thumb-icon bg-green fa fa-money"></i>
<div class="widget-thumb-body">
<div class="row">
<div class="col-md-6">
<span class="widget-thumb-subtitle">MXN</span>
<span class="widget-thumb-body-stat">
<asp:Literal ID="LtIndicador_ValorPesos" Text="" runat="server" />
</span>
</div>
<div class="col-md-6">
<span class="widget-thumb-subtitle">USD *</span>
<span class="widget-thumb-body-stat">
<asp:Literal ID="LtIndicador_ValorDolares" Text="" runat="server" />
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-3 col-sm-6 col-xs-12">
<div class="widget-thumb text-uppercase bordered">
<h4 class="widget-thumb-heading">Costo Promedio</h4>
<div class="widget-thumb-wrap">
<i class="widget-thumb-icon bg-green-jungle fa fa-usd"></i>
<div class="widget-thumb-body">
<div class="row">
<div class="col-md-6">
<span class="widget-thumb-subtitle">MXN</span>
<span class="widget-thumb-body-stat">
<asp:Literal ID="LtIndicador_CPPesos" Text="" runat="server" />
</span>
</div>
<div class="col-md-6">
<span class="widget-thumb-subtitle">USD *</span>
<span class="widget-thumb-body-stat">
<asp:Literal ID="LtIndicador_CPDolares" Text="" runat="server" />
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-3 col-sm-6 col-xs-12">
<div class="widget-thumb text-uppercase bordered">
<h4 class="widget-thumb-heading">Ultimo Costo</h4>
<div class="widget-thumb-wrap">
<i class="widget-thumb-icon bg-green-jungle fa fa-usd"></i>
<div class="widget-thumb-body">
<div class="row">
<div class="col-md-6">
<span class="widget-thumb-subtitle">MXN</span>
<span class="widget-thumb-body-stat">
<asp:Literal ID="LtIndicador_UCPesos" Text="" runat="server" />
</span>
</div>
<div class="col-md-6">
<span class="widget-thumb-subtitle">USD *</span>
<span class="widget-thumb-body-stat">
<asp:Literal ID="LtIndicador_UCDolares" Text="" runat="server" />
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 text-right">
<asp:Literal ID="LtIndicador_Mensaje" Text="" runat="server" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="text-right" style="margin: 5px 0px;">
<input type="text" id="TxtBusqueda2" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvM.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvM.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate>
<asp:GridView ID="GvM" Width="100%" runat="server" ShowHeader="true" EmptyDataText="No hay registros." AutoGenerateColumns="False" AllowPaging="False"
ShowFooter="True" ShowHeaderWhenEmpty="True" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" GridLines="None" DataKeyNames="CveMovimiento,FechaMovto">
<Columns>
<asp:BoundField DataField="FechaMovto" DataFormatString="{0:d}" ItemStyle-Width="70px" HeaderText="Fecha" />
<asp:TemplateField ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Left" Visible="false">
<ItemTemplate>
<asp:LinkButton data-toggle="tooltip" title="Editar Fecha" ID="LnkEditarFecha" OnClick="LnkEditarFecha_Click" CssClass="btn btn-circle btn-sm green" runat="server" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Concepto" ItemStyle-Width="170px" HeaderText="Movimiento" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Almacen" ItemStyle-Width="140px" HeaderText="Almacen" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-Width="70px" HeaderText="Folio">
<ItemTemplate>
<asp:HyperLink ID="hlFolio" runat="server" Text='<%# Eval("Folio")%>' CssClass="Texto" NavigateUrl='<%# Eval("CveMovimiento", "/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}")%>' Target="_blank" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="140px" ItemStyle-HorizontalAlign="Left" HeaderText="Folio Doc.">
<ItemTemplate>
<asp:HyperLink runat="server" Target="_blank" ID="hlFolioD" Text='<%# Eval("FolioDocto")%>' CssClass="Texto" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Left" HeaderText="U. M.">
<ItemTemplate>
<asp:Label ID="lbUm" runat="server" Text='<%# Eval("UnidadMedida")%>' data-toggle="tooltip" title='<%# Eval("CveUnidadMedida")%>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="100px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="70px" ItemStyle-HorizontalAlign="Left" HeaderText="Serie/Lote" Visible="false">
<ItemTemplate>
<asp:Literal ID="lbSL" runat="server" Text='<%# Eval("SerieLote")%>'></asp:Literal>
</ItemTemplate>
<ItemStyle Width="100px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="70px" ItemStyle-HorizontalAlign="Center" HeaderText="F. Caducidad" Visible="false">
<ItemTemplate>
<asp:Label ID="lbFCad" runat="server" Text='<%# Eval("FechaCaducidad", "{0:d}")%>' data-toggle="tooltip"></asp:Label>
</ItemTemplate>
<ItemStyle Width="100px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Right" HeaderText="Entrada">
<ItemTemplate>
<asp:Label ID="lbEntrada" runat="server"
Text='<%# Eval("Entrada", "{0:###,###.####}")%>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="100px" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Right" HeaderText="Salida">
<ItemTemplate>
<asp:Label ID="lbSalida" runat="server"
Text='<%# Eval("Salida", "{0:###,###.####}")%>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="100px" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Right" HeaderText="Costo">
<ItemTemplate>
<asp:Label ID="lbCosto" runat="server"
Text='<%# Eval("Costo", "{0:N2}")%>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="100px" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Right" HeaderText="Importe">
<ItemTemplate>
<asp:Label ID="lbImporte" runat="server"
Text='<%# Eval("Importe", "{0:N2}")%>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="100px" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Right" HeaderText="Existencias">
<ItemTemplate>
<asp:Label ID="lbExistencias" runat="server"
Text='<%# Eval("Existencias", "{0:#,###.####}")%>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="100px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Right" HeaderText="Valor">
<ItemTemplate>
<asp:Label ID="lbValor" runat="server"
Text='<%# Eval("ValorInventario", "{0:N2}")%>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="100px" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
</Columns>
<RowStyle CssClass="Texto" />
<AlternatingRowStyle CssClass="TextoAlterno" />
</asp:GridView>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btConsultar" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<div id="ModalTiposAlmacen" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UpTiposAlmacen" class="modal-dialog rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Tipos Almacén</h4>
</div>
<div class="modal-body">
<asp:CheckBoxList ID="CBLTiposAlmacen" DataValueField="CveTipoAlmacen" DataTextField="TipoAlmacen" RepeatDirection="Horizontal" RepeatColumns="3" runat="server"></asp:CheckBoxList>
</div>
<div class="modal-footer">
<button id="CancelarTiposAlmacen" type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div id="DModalEditarFecha" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpModalEditarFecha" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<h4 class="modal-title">
<asp:Literal ID="LtlEditarFecha" Text="Editar Fecha" runat="server"> </asp:Literal></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-2" style="text-align: left">Fecha:</div>
<div class="col-md-2">
<asp:TextBox type="datetime-local" ID="TxtFecha" runat="server"></asp:TextBox>
</div>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="BtnEditarFecha" OnClick="BtnEditarFecha_Click" runat="server" Text="Editar Fecha" CssClass="btn btn-primary" ValidationGroup="VgmEditarFecha" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

369
Inventarios/Kardex.aspx.vb Normal file
View File

@@ -0,0 +1,369 @@
Option Strict On
Option Explicit On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_Kardex
Inherits ClsPaginas
#Region "P R O P I E D A D E S"
'Public Property DtKardex As DataTable
' Get
' Return CType(ViewState("DtKardex"), DataTable)
' End Get
' Set(value As DataTable)
' ViewState("DtKardex") = value
' End Set
'End Property
Private Property CveMovimiento() As Integer
Get
Return If(IsNothing(ViewState("CveMovimiento")), -1, CInt(ViewState("CveMovimiento")))
End Get
Set
ViewState("CveMovimiento") = Value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
TxtFechaI.Text = Now.AddMonths(-1).ToShortDateString
TxtFechaF.Text = Now.ToShortDateString
CargaCombos()
ddlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
If Not UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 13, 66) Then
GvM.Columns(6).Visible = True ' SerieLote
GvM.Columns(7).Visible = True ' FCaducidad
End If
If UsuarioActual.TienePermisoProceso(258) Then GvM.Columns(1).Visible = True
ddlAlmacen.SelectedValue = If(Request("CveAlmacen") IsNot Nothing, Request("CveAlmacen").ToString, "-1")
If Request("FechaI") IsNot Nothing AndAlso Request("FechaI") <> "-1" Then TxtFechaI.Text = Request("FechaI").ToString
If Request("FechaF") IsNot Nothing AndAlso Request("FechaF") <> "-1" Then TxtFechaF.Text = Request("FechaF").ToString
If IfNull(Request("CvePS"), "-1").ToString.ToEntero > 0 Then CargarKardex(Request("CvePS").ToString.ToEntero)
ddlProducto2.SelectedValue = If(Request("CvePS") IsNot Nothing, Request("CvePS").ToString, "-1")
If Request("CvePS") IsNot Nothing And Request("CvePS") <> "-1" Then
ddlProducto2.SelectedValue = If(Request("CvePS") IsNot Nothing, Request("CvePS").ToString, "-1")
ddlProducto_SelectedIndexChanged(ddlProducto2, EventArgs.Empty)
End If
CargaPermisos()
End If
End Sub
#Region " INICIALIZA VALORES "
Private Sub CargaPermisos()
Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201)
GvM.Columns(11).Visible = TienePermisoImportes ' costo
GvM.Columns(12).Visible = TienePermisoImportes ' importe
GvM.Columns(14).Visible = TienePermisoImportes ' valor
End Sub
Private Function isWithFamily() As Boolean
Return (UsuarioActual.CveEmpresa = 66)
End Function
Private Sub CargaCombos()
CargaFuncionalidad105()
CargaPS()
ddlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1)
ddlAlmacen.DataBind()
If IfNull(Request("CveAlmacen"), "-1").ToString.ToEntero > 0 Then ddlAlmacen.SelectedValueExist(Request("CveAlmacen").ToString)
CargaClasificaciones()
CBLTiposAlmacen.DataSource = GlobalDTTipoAlmacen(-1)
CBLTiposAlmacen.DataBind()
For Each item As ListItem In CBLTiposAlmacen.Items
If item.Text = "Entrega Adelantado" Then
item.Selected = False
Else
item.Selected = True
End If
Next
End Sub
Private Sub CargaFuncionalidad105()
ddlProducto2.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If ddlProducto2.UsaWebService Then
ddlProducto2.ddlWS.Attributes.Add("data-Estatus", "-1")
ddlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios")
ddlProducto2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
'DdlClasificacion.AutoPostBack = False
Else
ddlProducto2.ddl.Items.Add(New ListItem("Seleccione", "-1"))
ddlProducto2.ddl.Items.Add(New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
End If
End Sub
Private Sub CargaClasificaciones()
Dim CveClasificacion = If(Request("CveClasificacion") IsNot Nothing, Request("CveClasificacion").ToString, "-1")
If isWithFamily() Then
DdlClasificacion.DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion")
Else
Dim ObjClasificaciones As New ClsClasificaciones
If UsuarioActual.Empresa.UsaAC Then
If ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa) Then
DdlClasificacion.DataSource = ObjClasificaciones.DtResultados
' DdlClasificacion.DataBind()
End If
Else
If ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa) Then
DdlClasificacion.DataSource = ObjClasificaciones.DtResultados
' DdlClasificacion.DataBind()
End If
End If
ObjClasificaciones.Dispose()
End If
'DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros("", "Clasificacion")
DdlClasificacion.DataBind()
DdlClasificacion.SelectedValueExist(CveClasificacion)
End Sub
#End Region
#Region " CARGA PS "
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged
CargaPS()
End Sub
Private Sub CargaPS()
If Not ddlProducto2.UsaWebService Then
Dim Filtro = If(DdlClasificacion.SelectedValue.ToEntero > 0, String.Format("CveClasificacion={0} And CveTipoPS=2", DdlClasificacion.SelectedValue), "CveTipoPS=2")
ddlProducto2.ddl.Items.Clear()
ddlProducto2.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa).FiltraParametros(Filtro, "PSCodigo")
ddlProducto2.DataBind()
ddlProducto2.ddl.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
Else
ddlProducto2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
ddlProducto2.SelectedText = ""
ddlProducto2.SelectedValue = "-1"
End If
End Sub
Protected Sub ddlProducto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlProducto2.selectedindexchange
DdlUnidadMedida.Items.Clear()
DdlUnidadMedida.DataSource = GlobalDTProductosServiciosEquivalencias(ddlProducto2.SelectedValue.ToEntero, -1)
DdlUnidadMedida.DataBind()
DdlUnidadMedida.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
#End Region
#Region " CARGA DATOS "
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim CveProducto As Integer = ddlProducto2.SelectedValue.ToEntero
If CveProducto > 0 Then
Dim DtTemp = CargarKardex(CveProducto)
If DtTemp IsNot Nothing Then
'CARGA INDICADORES
If UsuarioActual.TienePermisoProceso(201) Then
DivIndicadores.Visible = True
Dim Dr = DtTemp.FiltroUltimo("")
Dim TC = If(GlobalTipoCambio(Now) > 0, GlobalTipoCambio(Now), 1)
LtIndicador_Existencia.Text = Dr("Existencias").ToString.FormatoNumero()
LtIndicador_ValorPesos.Text = Dr("ValorInventario").ToString.FormatoNumero()
LtIndicador_ValorDolares.Text = (Dr("ValorInventario").ToString.ToDouble / TC).FormatoNumero()
Dim CostoPromedio = If(Dr("Existencias").ToString.ToDouble > 0, Dr("ValorInventario").ToString.ToDouble / Dr("Existencias").ToString.ToDouble, 0)
LtIndicador_CPPesos.Text = CostoPromedio.FormatoNumero()
LtIndicador_CPDolares.Text = (CostoPromedio / TC).FormatoNumero()
LtIndicador_UCPesos.Text = Dr("UltimoCosto").ToString.FormatoNumero()
LtIndicador_UCDolares.Text = Dr("UltimoCostoUSD").ToString.FormatoNumero()
LtIndicador_Mensaje.Text = $"* Importes calculados con el tipo de cambio del dia <b> $ {TC.FormatoNumero(4)} </b>"
UpIndicadores.Update()
GvM.Attributes.Add("data-heighterror", "430")
Else
GvM.Attributes.Add("data-heighterror", "270")
End If
GvM.DataSource = DtTemp
GvM.DataBind()
End If
Else
Alert("Seleccione un producto.", TipoMensaje.MsgAdvertencia)
End If
End Sub
Private Function CargarKardex(CvePS As Integer) As DataTable
Dim dt As DataTable = Nothing
Dim Entrada As Boolean = cbEntrada.Checked
Dim Salida As Boolean = cbSalida.Checked
Dim FechaI As String = If(TxtFechaI.Text <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1")
Dim FechaF As String = If(TxtFechaF.Text <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1")
Dim CveAlmacen As Integer = ddlAlmacen.SelectedValue.ToEntero
If CvePS > 0 Then ddlProducto2.SelectedText = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("PSCodigo", "")
Dim CveTiposAlmacen = ""
For Each item As ListItem In CBLTiposAlmacen.Items
CveTiposAlmacen += If(item.Selected, $"{item.Value},", "")
Next
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.GetKardex(Entrada, Salida, CvePS, FechaI, FechaF, CveAlmacen, CveTiposAlmacen.Substring(0, CveTiposAlmacen.Length - 1), DdlUnidadMedida.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, ChkAgruparAlmacen.Checked) Then
dt = ObjInventarios.DtResultados.Copy
End If
ObjInventarios.Dispose()
Return dt
End Function
Protected Sub gvMovimientos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvM.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Cells(0).ToolTip = e.Row.DBCampo("FechaMovto")
If UsuarioActual.TienePermisoProceso(201) Then 'PERMISO PARA VER IMPORTES
If e.Row.DBCampo("CveCompra") <> "" Then
e.Row.FCHyperLink("hlFolioD").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DBCampo("CveCompra"))
ElseIf e.Row.DBCampo("CveVenta") <> "" Then
e.Row.FCHyperLink("hlFolioD").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DBCampo("CveVenta"))
ElseIf e.Row.DBCampo("CveOrdenCompra") <> "" Then
e.Row.FCHyperLink("hlFolioD").NavigateUrl = String.Format("/OC/OC.aspx?OC={0}", e.Row.DBCampo("CveOrdenCompra"))
End If
End If
If GvM.Columns(1).Visible Then
If Not e.Row.DBCampo("CveMovimiento").ToEntero > 0 Then
e.Row.Cells(1).Text = ""
End If
End If
If e.Row.DBCampo("Concepto").Contains("TOTAL GENERAL") Then
e.Row.CssClass = "Totales"
ElseIf e.Row.DBCampo("Concepto").Contains("SALDO INICIAL") Then
e.Row.CssClass = "SubTotales"
End If
End If
End Sub
#End Region
#Region " IMPRIMIR "
Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
'Imprimir("Excel")
GenerarPDF("Excel")
End Sub
Private Sub Imprimir(Optional reporte As String = "PDF")
Dim DtKardex As DataTable = Nothing
DtKardex = CargarKardex(ddlProducto2.SelectedValue.ToEntero)
If (Not IsNothing(DtKardex)) Then
Dim params As New List(Of ReportParameter)
If IO.File.Exists(String.Format("{0}/Formatos/Kardex.rdlc", UsuarioActual.Empresa.Ruta)) Then
ImprimirPDF(String.Format("Empresas/{0}/Formatos/Kardex.rdlc", UsuarioActual.CveEmpresa), DtKardex, params, "ReporteKardex", reporte)
Else
ImprimirPDF("Empresas/Grales/Formatos/Kardex.rdlc", DtKardex, params, "Reporte Kardex", reporte)
End If
DtKardex.Dispose()
End If
End Sub
Private Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click
GenerarPDF()
End Sub
Private Sub GenerarPDF(Optional Formato As String = "PDF")
Dim Movimientos As New ClsInventarios
Dim CvePS As Integer = ddlProducto2.SelectedValue.ToEntero
Dim Entrada As Boolean = cbEntrada.Checked
Dim Salida As Boolean = cbSalida.Checked
Dim FechaI As String = If(TxtFechaI.Text <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1")
Dim FechaF As String = If(TxtFechaF.Text <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1")
Dim CveAlmacen As Integer = ddlAlmacen.SelectedValue.ToEntero
Dim Almacen = If(ddlAlmacen.SelectedValue = "-1", "", $"&emsp;<b>Almacén:</b>&nbsp;{ddlAlmacen.SelectedItem.Text}")
Dim UM = If(DdlUnidadMedida.SelectedValue = "-1", "", $"&emsp;<b>Unidad de Medida:</b>&nbsp;{DdlUnidadMedida.SelectedItem.Text}")
Dim FechaIn As String = If(TxtFechaI.Text = "", "", $"&emsp;<b>Fecha Inicio:</b>&nbsp;{TxtFechaI.Text}")
Dim FechaFn As String = If(TxtFechaF.Text = "", "", $"&emsp;<b>Fecha Fin:</b>&nbsp;{TxtFechaF.Text}")
Dim EntradaSalida As String = ""
If cbEntrada.Checked And cbSalida.Checked Then
EntradaSalida = "Entradas y Salidas"
ElseIf cbEntrada.Checked And cbSalida.Checked = False Then
EntradaSalida = "Solo Entradas"
ElseIf cbEntrada.Checked = False And cbSalida.Checked Then
EntradaSalida = "Solo Salidas"
End If
If Movimientos.GetKardex(Entrada, Salida, CvePS, FechaI, FechaF, CveAlmacen, "1", DdlUnidadMedida.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, ChkAgruparAlmacen.Checked) Then
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim dt As DataTable = Movimientos.DtResultados
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("FechaInicio", FechaI))
params.Add(New ReportParameter("FechaFin", FechaF))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Producto", ddlProducto2.SelectedText))
params.Add(New ReportParameter("AgrupadoPor", $"<b>Agrupado Por:</b>&nbsp;{EntradaSalida}{Almacen}{UM}{FechaIn}{FechaFn}"))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepKardex.rdlc", dt, params, "ReporteKardex", Formato)
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
#End Region
#Region "EDITAR FECHA"
Protected Sub LnkEditarFecha_Click(sender As Object, e As EventArgs)
Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
CveMovimiento = gvRow.DataKey("CveMovimiento").ToEntero
TxtFecha.Text = gvRow.DataKey("FechaMovto").ToDateTime.ToLocalTime.ToString("yyyy-MM-ddTHH:mm")
RegistraScript("$('#DModalEditarFecha').modal()")
UpModalEditarFecha.Update()
End Sub
Protected Sub BtnEditarFecha_Click(sender As Object, e As EventArgs)
Dim ObjMov As New ClsMovimientos
If ObjMov.UpdateMovimientoFecha(TxtFecha.Text.ToDateTime, CveMovimiento) Then
Alert("Actualizada correctamente." + TxtFecha.Text.ToDateTime.ToLocalTime.ToString("yyyy-MM-ddTHH:mm"))
RegistraScript("$('#DModalEditarFecha').modal('hide')")
CargaDatos()
UPDatos.Update()
End If
ObjMov.Dispose()
End Sub
#End Region
End Class

View File

@@ -0,0 +1,209 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="KardexAlmacen.aspx.vb" Inherits="Inventarios_KardexAlmacen" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.dataTables_scrollHead {
background-color: #95A5A6;
color: white;
}
.dataTables_scrollBody table th {
padding: 0px !important;
padding-right: 4px !important;
padding-left: 4px !important;
}
.table-scrollable {
margin: 0px !important;
}
.dataTables_scrollFoot {
display: none;
}
.dataTables_scroll {
margin-bottom: 0px;
}
.table.dataTable {
margin-top: 0px !important;
}
.table table-striped table-hover dataTable no-footer {
margin-top: 0px !important;
}
.Excede {
overflow: hidden;
text-overflow: ellipsis;
}
.psagregar > div.comboxes {
display: inline-block;
width: 250px;
}
.psagregar > div.codigo input {
width: 79px;
}
.psagregar > div.codigo {
display: inline-block;
width: 80px;
}
.psagregar > div.codigo > input[type="submit"] {
display: none;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Kardex Almacen
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="ImgImprimir" runat="server"><i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Generar Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px; position: relative;">
<div class="tools">
<asp:Button ID="btConsultar" runat="server" Text="Consultar" class="btn btn-primary" />
<a href="javascript;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption ">
<div class="row" style="padding-top: 10px; position: relative;">
<label class="col-md-1 truncate">Producto:</label>
<div class="col-md-2 " style="min-width: 250px; max-width: 300px;">
<ADS:Dropdownlost ID="ddlProducto2" runat="server" AutoPostBack="False" DataTextField="PSCodigo" DataValueField="CvePS" CssClassDdl="select2me" CssStyle="width: 250px; "></ADS:Dropdownlost>
</div>
<label class="col-md-1 truncate">Almacén:</label>
<div class="col-md-2">
<asp:DropDownList ID="ddlAlmacen" runat="server" CssClass="select2me " Style="width: 200px !important;" DataTextField="Almacen" DataValueField="CveAlmacen"></asp:DropDownList>
</div>
<label class="col-md-2" style="max-width:65px;" ">Fecha Inicio:</label>
<div class="col-md-1">
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 110px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 85px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
</div>
<label class="col-md-1 ">Fecha Fin:</label>
<div class="col-md-1">
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 110px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 85px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
</div>
</div>
</div>
<div class="portlet-body" <%= IIf(chkexpand.Checked = True, "", "style=""display:none;""")%>>
<div class="row">
<label class="col-md-1 truncate">Clasificación:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlClasificacion" CssClass="select2me" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 250px !important;">
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 truncate">Unidad Medida:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlUnidadMedida" runat="server" CssClass="select2me " Style="width: 200px !important;" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida">
<asp:ListItem Text="Todos" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="text-right">
<input type="text" id="TxtBusqueda2" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<table class="Widthall " >
<tr style="width: 100%">
<td style="padding: 0px;">
<table class=" Widthall" >
<tr>
<td style="font-size: 14px; width: 20%; border-right: 3px solid white;"></td>
<td class="dataTables_scrollHead text-center bold" style="font-size: 14px; width: 40%; border-right: 3px solid white;">Existencias</td>
<td class="dataTables_scrollHead text-center bold" runat="server" visible="true" id="tdImportes" style="font-size: 14px; width: 40%; border-right: 3px solid white;">Importes</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="padding: 0px">
<asp:UpdatePanel ID="UpDatos" runat="server">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" ShowHeader="true" EmptyDataText="No hay registros." AutoGenerateColumns="False" AllowPaging="False" DataKeyNames="CvePS, CveAlmacen"
ShowFooter="True" ShowHeaderWhenEmpty="True" HeaderStyle-CssClass="Titulos" CssClass="table table-striped table-hover Widthall ScrollAD" GridLines="None">
<Columns>
<asp:TemplateField ItemStyle-Width="20%">
<HeaderTemplate>
Almacen
</HeaderTemplate>
<ItemTemplate>
<asp:HyperLink CssClass="Texto" ID="HplAlmacen" runat="server" Text='<%# Eval("Almacen") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Inicial" DataField="InicialExistencia" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:###,###.####}" />
<asp:BoundField HeaderText="Entrada" DataField="EntradaExistencia" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:###,###.####}" />
<asp:BoundField HeaderText="Salida" DataField="SalidaExistencia" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:###,###.####}" />
<asp:BoundField HeaderText="Final" DataField="FinalExistencia" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:###,###.####}" />
<asp:BoundField HeaderText="Inicial" DataField="InicialImporte" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:BoundField HeaderText="Entrada" DataField="EntradaImporte" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:BoundField HeaderText="Salida" DataField="SalidaImporte" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:BoundField HeaderText="Final" DataField="FinalImporte" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,202 @@
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_KardexAlmacen
Inherits ClsPaginas
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
TxtFechaI.Text = Now.AddMonths(-1).ToShortDateString
TxtFechaF.Text = Now.ToShortDateString
CargaCombos()
ddlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
'If Not UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 13, 66) Then
' GvDatos.Columns(6).Visible = True ' SerieLote
' GvDatos.Columns(7).Visible = True ' FCaducidad
'End If
If IfNull(Request("CvePS"), "-1").ToString.ToEntero > 0 Then CargarKardex(Request("CvePS").ToString.ToEntero)
ddlProducto2.SelectedValue = If(Request("CvePS") IsNot Nothing, Request("CvePS").ToString, "-1")
CargaPermisos()
End If
End Sub
Private Function isWithFamily() As Boolean
Return (UsuarioActual.CveEmpresa = 66)
End Function
Private Sub CargaCombos()
CargaFuncionalidad105()
CargaPS()
ddlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1)
ddlAlmacen.DataBind()
If IfNull(Request("CveAlmacen"), "-1").ToString.ToEntero > 0 Then ddlAlmacen.SelectedValueExist(Request("CveAlmacen").ToString)
CargaClasificaciones()
End Sub
Private Sub CargaClasificaciones()
Dim CveClasificacion = If(Request("CveClasificacion") IsNot Nothing, Request("CveClasificacion").ToString, "-1")
If isWithFamily() Then
DdlClasificacion.DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion")
Else
Dim ObjClasificaciones As New ClsClasificaciones
If UsuarioActual.Empresa.UsaAC Then
If ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa) Then
DdlClasificacion.DataSource = ObjClasificaciones.DtResultados
DdlClasificacion.DataBind()
End If
Else
If ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa) Then
DdlClasificacion.DataSource = ObjClasificaciones.DtResultados
DdlClasificacion.DataBind()
End If
End If
ObjClasificaciones.Dispose()
End If
DdlClasificacion.DataBind()
DdlClasificacion.SelectedValueExist(CveClasificacion)
End Sub
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged
CargaPS()
End Sub
Private Sub CargaPS()
If Not ddlProducto2.UsaWebService Then
Dim Filtro = If(DdlClasificacion.SelectedValue >= 0, String.Format("CveClasificacion={0} And CveTipoPS=2", DdlClasificacion.SelectedValue), "CveTipoPS=2")
ddlProducto2.ddl.Items.Clear()
ddlProducto2.DataSource = GlobalDTPS(UsuarioActual.CveEmpresa).FiltraParametros(Filtro, "PSCodigo")
ddlProducto2.DataBind()
ddlProducto2.ddl.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
End If
End Sub
Private Sub CargaFuncionalidad105()
ddlProducto2.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If ddlProducto2.UsaWebService Then
ddlProducto2.ddlWS.Attributes.Add("data-Estatus", "-1")
ddlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios")
ddlProducto2.ddlWS.Attributes.Add("data-idClasificacion", DdlClasificacion.ClientID)
DdlClasificacion.AutoPostBack = False
Else
ddlProducto2.ddl.Items.Add(New ListItem("Seleccione", "-1"))
ddlProducto2.ddl.Items.Add(New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
End If
End Sub
Protected Sub ddlProducto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlProducto2.selectedindexchange
DdlUnidadMedida.Items.Clear()
DdlUnidadMedida.DataSource = GlobalDTProductosServiciosEquivalencias(ddlProducto2.SelectedValue.ToEntero, -1)
DdlUnidadMedida.DataBind()
DdlUnidadMedida.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click
Dim CveProducto As Integer = ddlProducto2.SelectedValue.ToEntero
If CveProducto > 0 Then
CargarKardex(CveProducto)
Else
Alert("Seleccione un producto.", TipoMensaje.MsgAdvertencia)
End If
End Sub
Private Function CargarKardex(CvePS As Integer) As DataTable
Dim dt As DataTable = Nothing
Dim ObjMovimientos As New ClsInventarios
Dim FechaI As String = If(TxtFechaI.Text <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1")
Dim FechaF As String = If(TxtFechaF.Text <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1")
Dim CveAlmacen As Integer = ddlAlmacen.SelectedValue.ToEntero
If ObjMovimientos.GetKardexAlmacen(CvePS, FechaI, FechaF, CveAlmacen, DdlUnidadMedida.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
dt = ObjMovimientos.DtResultados
GvDatos.DataSource = ObjMovimientos.DtResultados
End If
ObjMovimientos.Dispose()
GvDatos.DataBind()
Return dt
End Function
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim Liga As String = String.Format($"/Inventarios/Kardex.aspx?CvePS={ddlProducto2.SelectedValue.ToEntero}&CveAlmacen={e.Row.DataKey("CveAlmacen")}&CveUM={DdlUnidadMedida.SelectedValue.ToEntero}&FechaI={TxtFechaI.Text}&FechaF={TxtFechaF.Text}")
e.Row.FCHyperLink("HplAlmacen").NavigateUrl = Liga
If e.Row.RowIndex = 0 Then
e.Row.CssClass = "Titulos"
End If
End If
End Sub
Private Sub CargaPermisos()
If Not UsuarioActual.TienePermisoProceso(201) Then 'PERMISO PARA VER IMPORTES
GvDatos.Columns(5).Visible = False
GvDatos.Columns(6).Visible = False
GvDatos.Columns(7).Visible = False
GvDatos.Columns(8).Visible = False
tdImportes.Visible = False
End If
End Sub
Private Sub ImgImprimirExcel_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
GenerarPDF("Excel")
End Sub
Private Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click
GenerarPDF()
End Sub
Private Sub GenerarPDF(Optional Formato As String = "PDF")
Dim Movimientos As New ClsInventarios
Dim CvePS As Integer = ddlProducto2.SelectedValue.ToEntero
Dim FechaI As String = If(TxtFechaI.Text <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1")
Dim FechaF As String = If(TxtFechaF.Text <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1")
Dim CveAlmacen As Integer = ddlAlmacen.SelectedValue.ToEntero
Dim Almacen = If(ddlAlmacen.SelectedValue = "-1", "", $"&emsp;<b>Almacén:</b>&nbsp;{ddlAlmacen.SelectedItem.Text}")
Dim UM = If(DdlUnidadMedida.SelectedValue = "-1", "", $"&emsp;<b>Unidad de Medida:</b>&nbsp;{DdlUnidadMedida.SelectedItem.Text}")
Dim FechaIn As String = If(TxtFechaI.Text = "", "", $"&emsp;<b>Fecha Inicio:</b>&nbsp;{TxtFechaI.Text}")
Dim FechaFn As String = If(TxtFechaF.Text = "", "", $"&emsp;<b>Fecha Fin:</b>&nbsp;{TxtFechaF.Text}")
Dim EntradaSalida As String = ""
If Movimientos.GetKardexAlmacen(CvePS, FechaI, FechaF, CveAlmacen, DdlUnidadMedida.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim dt As DataTable = Movimientos.DtResultados
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("FechaInicio", FechaI))
params.Add(New ReportParameter("FechaFin", FechaF))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Producto", ddlProducto2.SelectedText))
params.Add(New ReportParameter("AgrupadoPor", $"<b>Agrupado Por:</b>&nbsp;{EntradaSalida}{Almacen}{UM}{FechaIn}{FechaFn}"))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepKardexAlmacen.rdlc", dt, params, "ReporteKardex", Formato)
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
End Class

View File

@@ -0,0 +1,200 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="KardexAlmacenHorizontal.aspx.vb" Inherits="Inventarios_KardexAlmacen" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.dataTables_scrollHead {
background-color: #95A5A6;
color: white;
}
.dataTables_scrollBody table th {
padding: 0px !important;
padding-right: 4px !important;
padding-left: 4px !important;
}
.table-scrollable {
margin: 0px !important;
}
.dataTables_scrollFoot {
display: none;
}
.dataTables_scroll {
margin-bottom: 0px;
}
.table.dataTable {
margin-top: 0px !important;
}
.table table-striped table-hover dataTable no-footer {
margin-top: 0px !important;
}
.Excede {
overflow: hidden;
text-overflow: ellipsis;
}
.psagregar > div.comboxes {
display: inline-block;
width: 250px;
}
.psagregar > div.codigo input {
width: 79px;
}
.psagregar > div.codigo {
display: inline-block;
width: 80px;
}
.psagregar > div.codigo > input[type="submit"] {
display: none;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Kardex Almacén Horizontal
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Generar Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional" RenderMode="Inline">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px; position: relative;">
<div class="tools">
<asp:Button ID="btConsultar" runat="server" Text="Consultar" class="btn btn-primary" />
<a href="javascript;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption ">
<div class="row" style="padding-top: 10px; position: relative;">
<div class="col-md-1 truncate">Proveedor</div>
<div class="col-md-3">
<ADS:Dropdownlost ID="DdlProveedor" runat="server" DataValueField="CveProveedor" DataTextField="RazonSocial" Width="100%" CssClassDdl="select2me" CssStyle="width: 100%;"></ADS:Dropdownlost>
</div>
<label class="col-md-1 truncate">Producto:</label>
<div class="col-md-3" style="min-width: 250px; max-width: 300px;">
<ADS:Dropdownlost ID="ddlProducto2" runat="server" AutoPostBack="False" DataTextField="PSCodigo" DataValueField="CvePS" CssClassDdl="select2me" CssStyle="width: 250px; "></ADS:Dropdownlost>
</div>
<label class="col-md-1">Fecha Fin:</label>
<div class="col-md-1">
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 110px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 80px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
</div>
</div>
</div>
<div class="portlet-body" <%= IIf(chkexpand.Checked = True, "", "style=""display:none;""")%>>
<div class="row">
<label class="col-md-1 truncate">Clasificación:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlClasificacion" CssClass="select2me" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 150px !important;">
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 truncate">Unidad Medida:</label>
<div class="col-md-1">
<asp:DropDownList ID="DdlUnidadMedida" runat="server" CssClass="select2me " Style="width: 100px !important;" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida">
<asp:ListItem Text="Todos" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 truncate">Almacén:</label>
<div class="col-md-2">
<asp:DropDownList ID="ddlAlmacen" runat="server" CssClass="select2me " Style="width: 200px !important;" DataTextField="Almacen" DataValueField="CveAlmacen"></asp:DropDownList>
</div>
<label class="col-md-1 truncate">Tipo Almacen:</label>
<div class="col-md-1">
<asp:DropDownList ID="DdlTipoAlmacen" CssClass="select2me" runat="server" AppendDataBoundItems="true" DataTextField="TipoAlmacen" DataValueField="CveTipoAlmacen" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 100px !important;">
<asp:ListItem Selected="True" Text="Seleccione el tipo de Almacen (Todos)" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 truncate">Tránsito?:</label>
<div class="col-md-1">
<asp:CheckBox ID="ChkIncluyeTransitorios" runat="server" Checked="false" />
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="text-right">
<input type="text" id="TxtBusqueda2" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<table class="Widthall ScrollAD">
<tr style="width: 100%">
<td style="padding: 0px;">
<table class="table Widthall">
<tr>
</tr>
</table>
</td>
</tr>
<tr>
<td style="padding: 0px">
<asp:UpdatePanel ID="UpDatos" runat="server">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" ShowHeader="true" EmptyDataText="No hay registros." AutoGenerateColumns="True" DataKeyNames="CvePS"
ShowFooter="True" ShowHeaderWhenEmpty="True" HeaderStyle-CssClass="Texto" CssClass="table table-striped table-hover Widthall ScrollAD" data-sort="true" GridLines="None">
<Columns>
<%-- <asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-Width="300px" ItemStyle-HorizontalAlign="Left" />--%>
<asp:TemplateField ItemStyle-HorizontalAlign="Left">
<HeaderTemplate>
Producto
</HeaderTemplate>
<ItemTemplate>
<div class='truncate' style='width: 200px;'>
<asp:Label runat="server" Text='<%# Eval("PS") %>' Width="250px"></asp:Label>
</div>
</ItemTemplate>
</asp:TemplateField>
<%-- <asp:TemplateField ItemStyle-HorizontalAlign="Left">
<HeaderTemplate>
Proveedor Fecha
</HeaderTemplate>
<ItemTemplate>
<div class='truncate' style='width: 200px;'>
<asp:Label runat="server" Text='<%# Eval("ProveedorFecha") %>' Width="250px"></asp:Label>
</div>
</ItemTemplate>
</asp:TemplateField>--%>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
</table>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,244 @@
Imports System.Data
Imports System.IO
Imports Extensiones
Imports GemBox.Spreadsheet
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_KardexAlmacen
Inherits ClsPaginas
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
'TxtFechaI.Text = Now.AddMonths(-1).ToShortDateString
TxtFechaF.Text = Now.ToShortDateString
CargaCombos()
ddlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
If IfNull(Request("CvePS"), "-1").ToString.ToEntero > 0 Then CargarKardex(Request("CvePS").ToString.ToEntero)
ddlProducto2.SelectedValue = If(Request("CvePS") IsNot Nothing, Request("CvePS").ToString, "-1")
End If
End Sub
Private Function isWithFamily() As Boolean
Return (UsuarioActual.CveEmpresa = 66)
End Function
Private Sub CargaCombos()
CargaFuncionalidad105()
CargaPS()
ddlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1)
ddlAlmacen.DataBind()
Dim ObjInv As New ClsInventarios()
If ObjInv.GetTiposAlmacenes() Then
DdlTipoAlmacen.DataSource = ObjInv.DtResultados
End If
ObjInv.Dispose()
DdlTipoAlmacen.DataBind()
DdlTipoAlmacen.SelectedValueExist(1)
If IfNull(Request("CveAlmacen"), "-1").ToString.ToEntero > 0 Then ddlAlmacen.SelectedValueExist(Request("CveAlmacen").ToString)
CargaClasificaciones()
End Sub
Private Sub CargaClasificaciones()
Dim CveClasificacion = If(Request("CveClasificacion") IsNot Nothing, Request("CveClasificacion").ToString, "-1")
If isWithFamily() Then
DdlClasificacion.DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion")
Else
Dim ObjClasificaciones As New ClsClasificaciones
If UsuarioActual.Empresa.UsaAC Then
If ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa) Then
DdlClasificacion.DataSource = ObjClasificaciones.DtResultados
DdlClasificacion.DataBind()
End If
Else
If ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa) Then
DdlClasificacion.DataSource = ObjClasificaciones.DtResultados
DdlClasificacion.DataBind()
End If
End If
ObjClasificaciones.Dispose()
End If
DdlClasificacion.DataBind()
DdlClasificacion.SelectedValueExist(CveClasificacion)
End Sub
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged
CargaPS()
End Sub
Private Sub CargaPS()
If Not ddlProducto2.UsaWebService Then
'Dim Filtro = If(DdlClasificacion.SelectedValue >= 0, String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue), "")
ddlProducto2.ddl.Items.Clear()
ddlProducto2.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero).FiltraParametros($"CveTipoPS=2", "PSCodigo")
ddlProducto2.DataBind()
ddlProducto2.ddl.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
End If
End Sub
Private Sub CargaFuncionalidad105()
ddlProducto2.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
DdlProveedor.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If ddlProducto2.UsaWebService Then
ddlProducto2.ddlWS.Attributes.Add("data-Estatus", "-1")
ddlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios")
ddlProducto2.ddlWS.Attributes.Add("data-idClasificacion", DdlClasificacion.ClientID)
DdlClasificacion.AutoPostBack = False
DdlProveedor.Attributes.Add("data-metodo", "getproveedores")
Else
ddlProducto2.ddl.Items.Add(New ListItem("Seleccione", "-1"))
ddlProducto2.ddl.Items.Add(New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
DdlProveedor.ddl.Items.Add(New ListItem("Seleccione", "-1"))
DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
DdlProveedor.DataBind()
End If
End Sub
Protected Sub ddlProducto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlProducto2.selectedindexchange
DdlUnidadMedida.Items.Clear()
DdlUnidadMedida.DataSource = GlobalDTProductosServiciosEquivalencias(ddlProducto2.SelectedValue.ToEntero, -1)
DdlUnidadMedida.DataBind()
DdlUnidadMedida.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click
Dim CveProducto As Integer = ddlProducto2.SelectedValue.ToEntero
CargarKardex(CveProducto)
'If CveProducto > 0 Then
'Else
' Alert("Seleccione un producto.", TipoMensaje.MsgAdvertencia)
'End If
End Sub
Private Function CargarKardex(CvePS As Integer) As DataTable
Dim dt As DataTable = Nothing
Dim ObjMovimientos As New ClsInventarios
Dim FechaI As String = "-1" ' If(TxtFechaI.Text <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1")
' Dim FechaF As String = If(TxtFechaF.Text <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1")
Dim FechaF As Date = TxtFechaF.Text.ToDate
Dim CveAlmacen As Integer = ddlAlmacen.SelectedValue.ToEntero
Dim CveProveedorCompra As Integer = If(DdlProveedor.SelectedValue.ToEntero > 0, DdlProveedor.SelectedValue.ToEntero, -1)
If ObjMovimientos.GetKardexAlmacenHorizontal(CvePS, FechaF, CveAlmacen, DdlUnidadMedida.SelectedValue.ToEntero, CveProveedorCompra, DdlTipoAlmacen.SelectedValue.ToEntero(), If(ChkIncluyeTransitorios.Checked, 1, 0), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
If ObjMovimientos.DtResultados IsNot Nothing AndAlso ObjMovimientos.DtResultados.Rows.Count > 0 Then
dt = ObjMovimientos.DtResultados
Dim ListaBorrar As New List(Of DataColumn)
For index = 2 To dt.Columns.Count - 1
Dim TotColumna As Double = 0
For Each Dr As DataRow In dt.Rows
TotColumna += Dr.Item(index).ToString.ToDouble
Next
If Not TotColumna > 0 Then
ListaBorrar.Add(dt.Columns(index))
End If
Next
For Each item As DataColumn In ListaBorrar
dt.Columns().Remove(item)
Next
dt.AcceptChanges()
GvDatos.DataSource = dt
Else
Alert("La búsqueda no contiene resultados.", TipoMensaje.MsgAdvertencia)
GvDatos.Columns.Clear()
dt = Nothing
Return dt
Exit Function
End If
End If
ObjMovimientos.Dispose()
GvDatos.DataBind()
For index = 3 To GvDatos.Rows(0).Cells.Count - 1
GvDatos.HeaderRow.Cells(index).Text = GvDatos.HeaderRow.Cells(index).Text.Split("|")(0)
Next
Return dt
End Function
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
'Dim Liga As String = String.Format($"/Inventarios/Kardex.aspx?CvePS={ddlProducto2.SelectedValue.ToEntero}&CveAlmacen={e.Row.DataKey("CveAlmacen")}&CveUM={DdlUnidadMedida.SelectedValue.ToEntero}&FechaI={TxtFechaI.Text}&FechaF={TxtFechaF.Text}")
'e.Row.FCHyperLink("HplAlmacen").NavigateUrl = Liga
If e.Row.RowIndex = 0 Then
e.Row.CssClass = "Totales"
End If
e.Row.HorizontalAlign = HorizontalAlign.Right
e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Left
Dim Index As Integer = 0
For Each Cells As TableCell In e.Row.Cells
Dim Celda As String = Cells.Text
If IsNumeric(Celda) Then
Dim CveAlmacen2 As Integer = -1
If Index >= 4 Then
Dim Array = GvDatos.HeaderRow.Cells(Index).Text.Split("|")
If Array.Length > 1 Then
CveAlmacen2 = Array(1)
End If
End If
If Celda.ToDouble = 0 Then
Cells.Text = ""
Else
Dim ce = DirectCast(Cells, System.Web.UI.WebControls.DataControlFieldCell)
If ce.ContainingField.HeaderText = "CP" Then
Cells.Text = Cells.Text.FormatoNumero(2)
ElseIf ce.ContainingField.HeaderText = "Valor" Then
Cells.Text = Cells.Text.FormatoNumero(2)
'ElseIf ce.ContainingField.HeaderText = "Total" Then
' Cells.Text = Cells.Text.FormatoNumero(2)
Else
Cells.Text = String.Format("{0:#,###.##}", Cells.Text.ToDecimal)
End If
End If
e.Row.Cells(e.Row.Cells.GetCellIndex(Cells)).Width = Unit.Pixel(80)
'Dim Liga2 As String = String.Format($"/Inventarios/Kardex.aspx?CvePS={ddlProducto2.SelectedValue.ToEntero}&CveAlmacen={CveAlmacen2}&CveUM={DdlUnidadMedida.SelectedValue.ToEntero}&FechaI={TxtFechaI.Text}&FechaF={TxtFechaF.Text}")
'Cells.Text = String.Format("<a href=""{1}"">{0}</a>", Celda.FormatoNumero(), Liga2)
End If
Index = Index + 1
Next
End If
End Sub
Private Sub GvDatos_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowCreated
'Escondo CvePS y CveAlmacén (Se generan por autogeneratecolumns por eso se borran por aqui).
' e.Row.Cells(0).Width = New Unit("200px")
e.Row.Cells(1).Visible = False
e.Row.Cells(2).Visible = False
If e.Row.RowType = DataControlRowType.Header Then
e.Row.Cells(5).ToolTip = "Costo Promedio"
End If
End Sub
Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
Imprimir("Excel")
End Sub
Private Sub Imprimir(Optional reporte As String = "PDF")
' Demo()
Dim StrFiltro As New StringBuilder
If DdlProveedor.SelectedValue.ToEntero > 0 Then StrFiltro.AppendFormat("Proveedor: {0},", DdlProveedor.SelectedText)
If ddlProducto2.SelectedValue.ToEntero > 0 Then StrFiltro.AppendFormat(" Producto/Servicio: {0},", ddlProducto2.SelectedText)
If TxtFechaF.Text <> "" Then StrFiltro.AppendFormat(" Fecha Fin: {0}", TxtFechaF.Text)
GvDatos.ExportToExcelG("ExistenciasHorizontal.xlsx", "Existencias Almacen", UsuarioActual, StrFiltro.ToString, 100, 200)
End Sub
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub
End Class

View File

@@ -0,0 +1,140 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="KardexSeccionAlmacen.aspx.vb" Inherits="Inventarios_KardexSeccionAlmacen" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Kardex Secciones de Almacen
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" id="idnecesaria">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" OnClick="BtnConsultar_Click" runat="server" Text="Consultar" class="btn btn-primary" />
<a href="javascript:;" class="expand"></a>
</div>
<div class="titlefiltros caption">
<div class="row">
<label class="col-md-1 ">Producto/Servicio:</label>
<div class="col-md-2">
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width: 100%;" style="width: 100%;" CssClass=" DdlPS" IncluyeTodos="false" CssClassDdl="select2me form-control" DataTextField="PSCodigo" DataValueField="CvePS" />
</div>
<label class="col-md-1 ">Almacen:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlAlmacen" runat="server" AppendDataBoundItems="true" DataTextField="Almacen" DataValueField="CveAlmacen" Class="table-group-action-input form-control input-inline input-sm select2me" Width="100%">
</asp:DropDownList>
</div>
<label class="col-md-1 ">Sección Almacen:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlSeccionAlmacen" runat="server" AppendDataBoundItems="true" DataTextField="Seccion" DataValueField="CveSeccion" Class="table-group-action-input form-control input-inline input-sm select2me" Width="100%">
</asp:DropDownList>
</div>
</div>
</div>
</div>
<div class="portlet-body">
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:GridView ID="GvDatos" runat="server" GridLines="None" ShowHeaderWhenEmpty="true"
EmptyDataText="No se han encontrado datos con los filtros seleccionados"
CssClass="table table-hover table-striped ScrollAD mysmallbtn" Width="100%" data-sort="true" AutoGenerateColumns="False"
DataKeyNames="Existencia,CveAlmacenSeccion,AlmacenSeccion,CvePS,CveAlmacen,CveSubProyecto,CveUM,SerieLote" >
<Columns>
<asp:BoundField DataField="AlmacenSeccion" ItemStyle-HorizontalAlign="Left" HeaderText="Sección Almacen" />
<asp:BoundField DataField="SerieLote" ItemStyle-HorizontalAlign="Left" HeaderText="SerieLote" />
<asp:BoundField DataField="Existencia" ItemStyle-HorizontalAlign="Right" HeaderText="Existencia" DataFormatString="{0:N2}" />
<asp:TemplateField HeaderText="Traspaso" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%">
<ItemTemplate>
<asp:LinkButton data-toggle="tooltip" title="Sección Almacen" ID="LnkSeccionAlmacen" OnClick="LnkSeccionAlmacen_Click" CssClass="btn btn-circle btn-xs green" runat="server" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<%--SECCION DE ALMACEN--%>
<div id="DModalSeccionAlmacen" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpModalSeccionAlmacen" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<h4 class="modal-title">
<asp:Literal ID="LtlSeccionAlmacen" Text="Sección Almacen" runat="server"> </asp:Literal></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-2">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtCantidadSeccion" CssClass="form-control" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvCantidadSeccion" runat="server" ControlToValidate="TxtCantidadSeccion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="VgmSeccion"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoCantidadSeccion" runat="server" HighlightCssClass="vco" TargetControlID="RfvCantidadSeccion"></ajax:ValidatorCalloutExtender>
<asp:RangeValidator ID="RVTxtCantidad" runat="server" ControlToValidate="TxtCantidadSeccion" MinimumValue="0" MaximumValue="1" Type="Double" Text="<b><span style='text-decoration: underline'>ERROR:</span></b><br />No cuenta con la cantidad suficiente." ValidationGroup="VgmSeccion" />
<label for="<%= TxtCantidadSeccion.ClientID.ToString()%>">Cantidad:</label>
</div>
</div>
<div class="col-md-8" runat="server" id="DivSeccionAlmacenDestino" >
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlSeccionAlmacenDestino" CssClass="form-control select2me" AppendDataBoundItems="true" Style="width: 100%;" runat="server" DataTextField="Seccion" DataValueField="CveSeccion">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RfvSeccionAlmacenDestino" runat="server" ControlToValidate="DdlSeccionAlmacenDestino" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Sección Almacen Destino''</b> es necesario, por favor ingréselo." ValidationGroup="VgmSeccion"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VceSeccionAlmacenDestino" runat="server" HighlightCssClass="vco" TargetControlID="RfvSeccionAlmacenDestino"></ajax:ValidatorCalloutExtender>
<label for="<%= DdlSeccionAlmacenDestino.ClientID.ToString()%>">Sección Almacen Destino:</label>
</div>
</div>
<div class="col-md-2">
<asp:LinkButton ID="LnkAddSeccionAlmacen" data-toggle="tooltip" CssClass="btn btn-default btn-circle btn-xs " OnClick="LnkAddSeccionAlmacen_Click" data-placement="top" ToolTip="Agregar Sección Almacen" runat="server" ValidationGroup="VgmSeccion"><i class="fa fa-plus" style="color:black" aria-hidden="true"></i></asp:LinkButton>
</div>
</div>
<br />
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvSeccion" runat="server" GridLines="None" ShowHeaderWhenEmpty="true"
CssClass="table table-hover table-striped ScrollAD mysmallbtn" Width="100%" data-sort="true"
AutoGenerateColumns="False" EmptyDataText="No se han agregado datos"
DataKeyNames="Consec">
<Columns>
<asp:BoundField DataField="CantidadSeccionAlmacen" HeaderText="Cantidad" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.##}" />
<asp:BoundField DataField="SeccionAlmacenOrigen" HeaderText="Sección Almacen Origen" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="SeccionAlmacenDestino" HeaderText="Sección Almacen Destino" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="LnkEliminarSeccion" runat="server" OnClick="LnkEliminarSeccion_Click" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar la sección?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="BtnTraspasar" OnClick="BtnTraspasar_Click" runat="server" Text="Traspasar" CssClass="btn btn-primary" ValidationGroup="VgmTraspasar" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,328 @@
Option Strict On
Imports System.Data
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI.WebControls
Imports Extensiones
Partial Class Inventarios_KardexSeccionAlmacen
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property DtSeccionAlmacen As DataTable
Get
Return CType(ViewState("DtSeccionAlmacen"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtSeccionAlmacen") = value
End Set
End Property
Private Property CantidadTotal As Decimal
Get
Return CType(ViewState("CantidadTotal"), Decimal)
End Get
Set(value As Decimal)
ViewState("CantidadTotal") = value
End Set
End Property
Private Property CvePS As Integer
Get
Return CType(ViewState("CvePS"), Integer)
End Get
Set(value As Integer)
ViewState("CvePS") = value
End Set
End Property
Private Property CveSeccionAlmacenOrigen As Integer
Get
Return CType(ViewState("CveSeccionAlmacenOrigen"), Integer)
End Get
Set(value As Integer)
ViewState("CveSeccionAlmacenOrigen") = value
End Set
End Property
Private Property SeccionAlmacenOrigen As String
Get
Return CType(ViewState("SeccionAlmacenOrigen"), String)
End Get
Set(value As String)
ViewState("SeccionAlmacenOrigen") = value
End Set
End Property
Private Property CveAlmacen As Integer
Get
Return CType(ViewState("CveAlmacen"), Integer)
End Get
Set(value As Integer)
ViewState("CveAlmacen") = value
End Set
End Property
Private Property CveUM As Integer
Get
Return CType(ViewState("CveUM"), Integer)
End Get
Set(value As Integer)
ViewState("CveUM") = value
End Set
End Property
Private Property CveSubProyecto As Integer
Get
Return CType(ViewState("CveSubProyecto"), Integer)
End Get
Set(value As Integer)
ViewState("CveSubProyecto") = value
End Set
End Property
Private Property SerieLote As String
Get
Return CType(ViewState("SerieLote"), String)
End Get
Set(value As String)
ViewState("SerieLote") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
InicializaValores()
End If
End Sub
#Region "CARGAS"
Private Sub InicializaValores()
CantidadTotal = 0
SeccionAlmacenOrigen = ""
CvePS = 0
CveAlmacen = 0
CveSeccionAlmacenOrigen = 0
CveSubProyecto = 0
CveUM = 0
SerieLote = ""
CreaDtSeccionAlmacen()
CargaDdlAlmacen()
CargaPS()
End Sub
Private Sub CargaPS()
DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", "-1")
DdlPS.SelectedText = "Seleccione"
DdlPS.SelectedValue = "-1"
Else
DdlPS.ddl.Items.Clear()
DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
DdlPS.ddl.DataBind()
DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione", "-1"))
End If
End Sub
Private Sub CargaDdlAlmacen()
DdlAlmacen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlAlmacen.DataBind()
DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa)
DdlSeccionAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
DdlSeccionAlmacen.DataBind()
DdlSeccionAlmacenDestino.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa)
DdlSeccionAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlSeccionAlmacenDestino.DataBind()
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
Private Sub CargaDatos()
If Not DdlPS.SelectedValue.ToEntero > 0 Then
Alert("Tiene que seleccionar un producto/servicio.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If Not DdlAlmacen.SelectedValue.ToEntero > 0 Then
Alert("Tiene que seleccionar un alamacen.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim ObjInv As New ClsInventarios
If ObjInv.GetKardexSeccionAlmacen(DdlPS.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, DdlSeccionAlmacen.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjInv.DtResultados
End If
ObjInv.Dispose()
GvDatos.DataBind()
UpDatos.Update()
End Sub
#End Region
#Region "SECCION ALMACEN"
Private Sub CreaDtSeccionAlmacen()
DtSeccionAlmacen = New DataTable
DtSeccionAlmacen.Columns.Add("CantidadSeccionAlmacen", GetType(Decimal))
DtSeccionAlmacen.Columns.Add("CveSeccionAlmacenOrigen", GetType(Integer))
DtSeccionAlmacen.Columns.Add("CveSeccionAlmacenDestino", GetType(Integer))
DtSeccionAlmacen.Columns.Add("SeccionAlmacenOrigen", GetType(String))
DtSeccionAlmacen.Columns.Add("SeccionAlmacenDestino", GetType(String))
DtSeccionAlmacen.Columns.Add("Consec", GetType(Integer))
End Sub
Protected Sub LnkSeccionAlmacen_Click(sender As Object, e As EventArgs)
Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
DtSeccionAlmacen.Rows.Clear()
CantidadTotal = gvRow.DataKey("Existencia").ToDecimal
CveSeccionAlmacenOrigen = gvRow.DataKey("CveAlmacenSeccion").ToEntero
SeccionAlmacenOrigen = gvRow.DataKey("AlmacenSeccion").ToString
CvePS = gvRow.DataKey("CvePS").ToEntero
SerieLote = gvRow.DataKey("SerieLote").ToString
CveAlmacen = gvRow.DataKey("CveAlmacen").ToEntero
CveUM = gvRow.DataKey("CveUM").ToEntero
CveSubProyecto = gvRow.DataKey("CveSubProyecto").ToEntero
RegistraScript("$('#DModalSeccionAlmacen').modal()")
CargaSeccionAlmacen()
End Sub
Protected Sub LnkAddSeccionAlmacen_Click(sender As Object, e As EventArgs)
Dim ObjInv As New ClsInventarios
Dim CantidadDisponible As Decimal = 0
If ObjInv.GetMovimientosDetalleSeccionesAlmacen(CveSeccionAlmacenOrigen, CveAlmacen, CvePS, UsuarioActual.CveEmpresa) Then
If ObjInv.DtResultados.Rows.Count > 0 Then
CantidadDisponible = ObjInv.DtResultados.Rows(0)("CantidadRestante").ToString.ToDecimal
End If
End If
ObjInv.Dispose()
CantidadDisponible -= DtSeccionAlmacen.SUMD("CantidadSeccionAlmacen")
If TxtCantidadSeccion.Text.ToDecimal > CantidadDisponible Then
Alert($"No tiene cantidad de producto suficiente en esta seccion de almacen, su cantidad restante es: <b>{CantidadDisponible}</b>", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim Row As DataRow = Nothing
DtSeccionAlmacen.AcceptChanges()
Row = DtSeccionAlmacen.NewRow
Row("CantidadSeccionAlmacen") = TxtCantidadSeccion.Text.ToDecimal
Row("CveSeccionAlmacenOrigen") = CveSeccionAlmacenOrigen
Row("SeccionAlmacenOrigen") = SeccionAlmacenOrigen
Row("CveSeccionAlmacenDestino") = DdlSeccionAlmacenDestino.SelectedValue.ToEntero
Row("SeccionAlmacenDestino") = DdlSeccionAlmacenDestino.SelectedItem.Text
Row("Consec") = DtSeccionAlmacen.Rows.Count + 1
DtSeccionAlmacen.Rows.Add(Row)
DtSeccionAlmacen.AcceptChanges()
CargaSeccionAlmacen()
End Sub
Protected Sub LnkEliminarSeccion_Click(sender As Object, e As EventArgs)
Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
Dim Index As Integer = 0
For Each Dr As DataRow In DtSeccionAlmacen.Rows
If Dr("Consec").ToString.ToEntero = gvRow.DataKey("Consec").ToEntero() Then
Exit For
End If
Index += 1
Next
DtSeccionAlmacen.Rows.RemoveAt(Index)
DtSeccionAlmacen.AcceptChanges()
CargaSeccionAlmacen()
End Sub
Private Sub CargaSeccionAlmacen()
Dim CantidadTotalSeccion As Decimal = DtSeccionAlmacen.SUMD("CantidadSeccionAlmacen")
GvSeccion.DataSource = DtSeccionAlmacen
GvSeccion.DataBind()
TxtCantidadSeccion.Text = ""
DdlSeccionAlmacenDestino.SelectedIndex = 0
Dim CantidadRestante As Decimal = CantidadTotal - CantidadTotalSeccion
If CantidadRestante = 0 Then
RVTxtCantidad.MaximumValue = "1"
TxtCantidadSeccion.Enabled = False
Else
RVTxtCantidad.MaximumValue = CantidadRestante.ToString
TxtCantidadSeccion.Enabled = True
End If
UpModalSeccionAlmacen.Update()
End Sub
Protected Sub BtnTraspasar_Click(sender As Object, e As EventArgs)
Dim ObjInv As New ClsInventarios
ObjInv.IniciaTransacSQL()
Dim TieneError As Boolean = False
Dim MensajeError As String = ""
'SALIDA
Dim CveMovimientoSalida As Integer = ObjInv.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 3, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, CveSubProyecto, -1, CveAlmacenDestino:=CveAlmacen)
If CveMovimientoSalida <= 0 Then
TieneError = True
MensajeError = "Ocurrió un error al guardar el movimiento de salida. Por favor vuelva a intentar."
End If
Dim Cantidad As Decimal = DtSeccionAlmacen.SUMD("CantidadSeccionAlmacen")
If Not ObjInv.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUM, CvePS, 0, -1, SerieLote:=SerieLote) Then
MensajeError = "Ocurrió un error al guardar los detalles del movimiento de salida. Por favor vuelva a intentar."
TieneError = True
Else
If ObjInv.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then
For Each Dr2 As DataRow In DtSeccionAlmacen.Rows
If Not ObjInv.AddMovimientosDetalleSeccionesAlmacen(ObjInv.CveMovimientoDetalle, Dr2("CveSeccionAlmacenOrigen").ToString.ToEntero, -Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then
TieneError = True
MensajeError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar."
Exit For
End If
Next
End If
End If
'ENTRADA
If Not TieneError Then
Dim CveMovimientoEntrada As Integer = ObjInv.AddMovimiento(CveAlmacen, 2, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, CveSubProyecto, -1, CveMovimientoRelacionado:=CveMovimientoSalida)
If CveMovimientoEntrada <= 0 Then
MensajeError = "Ocurrió un error al guardar el movimiento de entrada correctamente. Por favor vuelva a intentar."
TieneError = True
Else
If ObjInv.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
For Each Dr As DataRow In ObjInv.DtResultados.Rows
If Not ObjInv.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Dr("Observaciones").ToString) Then
TieneError = True
MensajeError = "Ocurrió un error al guardar los movimientos de entrada"
Exit For
Else
If ObjInv.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then
For Each Dr2 As DataRow In DtSeccionAlmacen.Rows
If Not ObjInv.AddMovimientosDetalleSeccionesAlmacen(ObjInv.CveMovimientoDetalle, Dr2("CveSeccionAlmacenDestino").ToString.ToEntero, Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then
TieneError = True
MensajeError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar."
Exit For
End If
Next
End If
End If
Next
End If
End If
End If
If Not TieneError Then
ObjInv.Commit()
Alert("El traspaso se ha hecho correctamente")
CargaDatos()
RegistraScript("$('#DModalSeccionAlmacen').modal('hide')")
Else
ObjInv.RollBack()
Alert(MensajeError, TipoMensaje.MsgError)

97
Inventarios/Paquetes.aspx Normal file
View File

@@ -0,0 +1,97 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Paquetes.aspx.vb" Inherits="Inventarios_Paquetes" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Catalogo Paquetes
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<br /><br />
<div style="padding-left: 10px; min-height: 300px; height: 400px; overflow-y: scroll;">
<asp:UpdatePanel ID="UPPaquetes" runat="server" RenderMode="Inline" UpdateMode="Conditional" ViewStateMode="Inherit">
<ContentTemplate>
<asp:GridView ID="gvPaquetes" Width="950px" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False"
ShowHeaderWhenEmpty="True" CssClass="table table-striped table-advance table-hover" Style="margin-top: -10px; text-align: center;" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Paquete">
<ItemTemplate>
<asp:Label ID="lbPS" runat="server" Text='<%# Eval("PS")%>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEPS" runat="server" Text='<%# Eval("PS")%>'></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ID="RFVEPS" ControlToValidate="txtEPS" ValidationGroup="GrpGuardar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Paquete''</b> es necesario, por favor ingrése uno." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOEPS" runat="server" HighlightCssClass="vco" TargetControlID="RFVEPS" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
<ItemStyle></ItemStyle>
<HeaderStyle CssClass="Titulos" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Precio">
<ItemTemplate>
<asp:Label ID="lbPrecio" runat="server" Text='<%# Eval("Precio", "{0:N2}")%>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtEPrecio" runat="server" Text='<%# Eval("Precio","{0:N2}")%>'></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ID="RFVEPrecio" ControlToValidate="txtEPrecio" ValidationGroup="GrpGuardar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Precio''</b> es necesario, por favor ingrése una." Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOEPrecio" runat="server" HighlightCssClass="vco" TargetControlID="RFVEPrecio" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
<ItemStyle></ItemStyle>
<HeaderStyle CssClass="Titulos" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Estado">
<ItemTemplate>
<asp:Label ID="lbEstatus" runat="server"
Text='<%# Eval("Estado")%>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="cbEEstado" runat="server" Checked='<%# Eval("Estado2")%>' />
</EditItemTemplate>
<HeaderStyle CssClass="Titulos" />
</asp:TemplateField>
<asp:HyperLinkField
DataNavigateUrlFields="CvePS" ControlStyle-Width="118px" DataNavigateUrlFormatString="~/Inventarios/PaqueteDetalles.aspx?CvePSPaquete={0}"
Target="_blank" HeaderText="Armado"
ControlStyle-Font-Underline="false" Text="Armar/Desarmar Paquetes">
<ControlStyle Font-Underline="False" />
<HeaderStyle CssClass="Titulos" />
</asp:HyperLinkField>
<asp:TemplateField HeaderText="Editar" ItemStyle-Width="105px">
<EditItemTemplate>
<center>
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CommandName="Update" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" ValidationGroup="GrpGV" OnClientClick="return confirm('¿Estas seguro de guardar los cambios realizados?');" />
<asp:LinkButton ID="imgC" runat="server" AlternateText="Cancelar" CausesValidation="False" CommandName="Cancel" CssClass="btn btn-circle btn-sm red" Text="<i class='fa fa-times'></i>" />
</center>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CommandName="Edit" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
</ItemTemplate>
<HeaderStyle CssClass="Titulos" />
<ItemStyle />
</asp:TemplateField>
<asp:TemplateField HeaderText="Eliminar">
<ItemTemplate>
<asp:LinkButton ID="imgD" runat="server" AlternateText="Eliminar" CausesValidation="False" CommandName="Delete" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" OnClientClick="return confirm('¿Estas seguro que desea eliminar el registro?');" />
</ItemTemplate>
<ItemStyle />
<HeaderStyle CssClass="Titulos" />
</asp:TemplateField>
</Columns>
<RowStyle CssClass="Texto" />
<AlternatingRowStyle CssClass="TextoAlterno" />
</asp:GridView>
</ContentTemplate>
<Triggers>
</Triggers>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,80 @@
Imports System.Data
Imports Extensiones
Partial Class Inventarios_Paquetes
Inherits ClsPaginas
#Region "Propiedades"
Public Property dtPaquetes() As DataTable
Get
Return CType(ViewState("dtPaquetes"), DataTable)
End Get
Set(value As DataTable)
ViewState("dtPaquetes") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaDatos()
End If
End Sub
Private Sub CargaDatos()
Dim ps As New ClsProductosServicios
If ps.GetPS(-1, -1, UsuarioActual.CveEmpresa, "-1", "-1", 1) Then
gvPaquetes.DataSource = ps.DtResultados
dtPaquetes = ps.DtResultados
End If
gvPaquetes.EditIndex = -1
gvPaquetes.DataBind()
ps.Dispose()
End Sub
Protected Sub gvPaquetes_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles gvPaquetes.RowEditing
gvPaquetes.DataSource = dtPaquetes
gvPaquetes.EditIndex = e.NewEditIndex
gvPaquetes.DataBind()
End Sub
Protected Sub gvPaquetes_RowCancelingEdit(sender As Object, e As GridViewCancelEditEventArgs) Handles gvPaquetes.RowCancelingEdit
gvPaquetes.EditIndex = -1
gvPaquetes.DataSource = dtPaquetes
gvPaquetes.DataBind()
End Sub
Protected Sub gvPaquetes_RowUpdating(sender As Object, e As GridViewUpdateEventArgs) Handles gvPaquetes.RowUpdating
Dim pq As New ClsProductosServicios
Dim PS As String = DirectCast(gvPaquetes.Rows(e.RowIndex).FindControl("txtEPS"), TextBox).Text.ToString
Dim Precio As Double = DirectCast(gvPaquetes.Rows(e.RowIndex).FindControl("txtEPrecio"), TextBox).Text.ToDouble
Dim Estado As Boolean = DirectCast(gvPaquetes.Rows(e.RowIndex).FindControl("cbEEstado"), CheckBox).Checked
If pq.UpdatePaquete(dtPaquetes.Rows.Item(e.RowIndex)("CvePS").ToString.ToEntero, PS, Precio, Estado) Then
CargaDatos()
End If
pq.Dispose()
End Sub
End Class

View File

@@ -0,0 +1,643 @@
<%@ Page Title="SIG | Paquetes: Armado - Desarmado" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="PaquetesArmadoDesarmado.aspx.vb" Inherits="Inventarios_PaquetesArmadoDesarmado" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Paquetes | Armado - Desarmado
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<ajax:TabContainer ID="Tab" runat="server" ActiveTabIndex="0" Width="100%">
<ajax:TabPanel ID="TabArmado" runat="server" HeaderText="Armado">
<ContentTemplate>
<%--FILTROS--%>
<asp:UpdatePanel runat="server" ID="UpFiltraArmado" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle magindate">
<div class="tools">
<asp:Button ID="BtnVerificarExistenciasArmado" runat="server" Text="Verificar Existencias" OnClick="BtnVerificarExistenciasArmado_Click" ValidationGroup="GrpVerificarExistenciasArmado" class="btn btn-default" />
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1" style="max-width: 70px">Paquete:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlPaqueteArmado" runat="server" DataTextField="PSCodigo" DataValueField="CvePS" CssClass="form-control input-sm select2me" Width="100%"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVPaqueteArmado" runat="server" ControlToValidate="DdlPaqueteArmado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''PaqueteArmado''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpVerificarExistenciasArmado"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEPaqueteArmado" runat="server" HighlightCssClass="vco" TargetControlID="RFVPaqueteArmado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1" style="max-width: 70px">Cantidad</div>
<div class="col-md-1" style="max-width: 50px">
<asp:TextBox ID="TxtCantidadArmado" Text="0" runat="server" Width="100%" Style="max-width: 45px" />
<ajax:FilteredTextBoxExtender ID="FTBECantidadArmado" runat="server" TargetControlID="TxtCantidadArmado" FilterType="Custom, Numbers" ValidChars=".," />
<asp:RangeValidator ID="RVCantidadArmado" runat="server" Type="Currency" MinimumValue="0.01" MaximumValue="999999" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''CantidadArmado''</b> debe ser mayor a cero. Por favor especifiquelo." ControlToValidate="TxtCantidadArmado" Display="None" ValidationGroup="GrpVerificarExistenciasArmado"></asp:RangeValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidadArmado1" runat="server" HighlightCssClass="vco" TargetControlID="RVCantidadArmado" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="RFVCantidadArmado" runat="server" ControlToValidate="TxtCantidadArmado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''CantidadArmado''</b> es necesario. Por favor seleccione uno." InitialValue="" ValidationGroup="GrpVerificarExistenciasArmado"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidadArmado2" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidadArmado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1" style="max-width: 70px">Almacén:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlAlmacenArmado" AutoPostBack="true" OnSelectedIndexChanged="DdlAlmacenArmado_SelectedIndexChanged" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataTextField="Almacen" DataValueField="CveAlmacen"></asp:DropDownList>
<asp:RequiredFieldValidator InitialValue="-1" ID="RfvAlmacenArmado" Display="None" ValidationGroup="GrpVerificarExistenciasArmado" runat="server" ControlToValidate="DdlAlmacenArmado" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Es campo <b>''Almacén''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEAlmacenArmado" runat="server" HighlightCssClass="vco" TargetControlID="RfvAlmacenArmado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1" style="max-width: 50px">Fecha</div>
<div class="col-md-1">
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaArmado" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 80px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaArmado" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaArmado" runat="server" TargetControlID="TxtFechaArmado" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaArmado" TargetControlID="TxtFechaArmado" PopupButtonID="ImgFechaArmado" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaArmado" runat="server" ControlToValidate="TxtFechaArmado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaArmado''</b> es necesario, por favor ingréselo." ValidationGroup="GrpVerificarExistenciasArmado"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaArmado" runat="server" ControlToValidate="TxtFechaArmado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaArmado''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpVerificarExistenciasArmado"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFechaArmado1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaArmado" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFechaArmado2" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaArmado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="portlet-body">
<div class="row" id="RowApartadosArmado" runat="server" visible="false">
<div class="col-md-1" style="max-width: 70px">Vendedor:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlVendedorArmado" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataTextField="Vendedor" DataValueField="CveVendedor"></asp:DropDownList>
<asp:RequiredFieldValidator InitialValue="-1" ID="RFVVendedorArmado" Display="None" ValidationGroup="GrpVerificarExistenciasArmado" runat="server" ControlToValidate="DdlVendedorArmado" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Es campo <b>''Vendedor''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEVendedorArmado" runat="server" HighlightCssClass="vco" TargetControlID="RFVVendedorArmado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div runat="server" id="RowClienteArmado">
<div class="col-md-1" style="max-width: 70px">Cliente:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlClienteArmado" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataTextField="Nombre" DataValueField="CveCliente"></asp:DropDownList>
<asp:RequiredFieldValidator InitialValue="-1" ID="RFVClienteArmado" Display="None" ValidationGroup="GrpVerificarExistenciasArmado" runat="server" ControlToValidate="DdlClienteArmado" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Es campo <b>''Cliente''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEClienteArmado" runat="server" HighlightCssClass="vco" TargetControlID="RFVClienteArmado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div class="row">
<%--DATOS DEL MOVIMIENTO--%>
<div class="col-md-8">
<asp:UpdatePanel ID="UpGeneralesArmado" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-sub ject bold uppercase">Datos del movimiento</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<table width="100%">
<tr>
<td>Paquete:</td>
<td>
<asp:Label Font-Bold="true" Text="" ID="LbPaqueteArmado" runat="server" />
</td>
</tr>
<tr>
<td>Cantidad:</td>
<td>
<asp:Label Text="" ID="LbCantidadArmado" runat="server" />
</td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td>Almacén:</td>
<td>
<asp:Label Text="" ID="LbAlmacenArmado" runat="server" />
</td>
</tr>
<tr>
<td>Fecha:</td>
<td>
<asp:Label Text="" ID="LbFechaArmado" runat="server" />
</td>
</tr>
<tr>
<td>Observaciones:</td>
<td>
<asp:TextBox ID="TxtObservacionesArmado" TextMode="MultiLine" Rows="2" CssClass="form-control input-sm" runat="server" MaxLength="200"></asp:TextBox>
</td>
</tr>
</table>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<%--DATOS SERIE PAQUETE--%>
<div class="col-md-4">
<asp:UpdatePanel ID="UpSeriesPaqueteArmado" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet light smmallpadding bordered" runat="server" id="DivSeriesPaqueteArmado" visible="false">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-sub ject bold uppercase">series del paquete</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<asp:GridView ID="GvSeriesPaqueteArmado" runat="server" AutoGenerateColumns="false" CssClass="table table-striped table-hover Widthall" BorderColor="#D3D3D3" GridLines="None">
<Columns>
<asp:BoundField HeaderText="#" DataField="Row" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" />
<asp:TemplateField HeaderText="Serie" ItemStyle-Width="90%" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:TextBox Text='<%# Eval("Serie")%>' ID="TxtSerie" runat="server" Width="90%" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<%--GV DATOS ARMADO--%>
<div class="row" style="margin-left: 0px; margin-right: 0px;">
<div class="col-md-12">
<asp:UpdatePanel ID="UpDatosArmado" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Componentes</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<asp:GridView ID="GvDatosArmado" DataKeyNames="Cantidad,CvePS,CveUM,Consec,Inv_CveMetodoInventario" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron datos con los filtros especificados" CssClass="table table-striped table-hover Widthall" BorderColor="#D3D3D3" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Cant. Necesaria" DataField="Cantidad" ItemStyle-Width="15%" DataFormatString="{0:###,###,###,##0.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Cant. Disponible" DataField="CantidadDisponible2" ItemStyle-Width="15%" DataFormatString="{0:###,###,###,##0.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Producto/Servicio" DataField="CodigoPS" ItemStyle-Width="40%" />
<asp:BoundField HeaderText="Unidad Medida" DataField="UnidadMedida" ItemStyle-Width="20%" />
<asp:TemplateField HeaderText="SerieLote">
<ItemTemplate>
<asp:Button Text="SerieLote" ID="BtnSerieLote" OnClick="BtnSerieLote_Click" CssClass="btn btn-xs btn-primary" runat="server" Style="float: left;" />
<asp:LinkButton Text="<i class='fa fa-star'></i>" ID="BtnSeriePaquete" OnClick="BtnSeriePaquete_Click" CssClass="btn btn-xs btn-primary" runat="server" Visible="false" Style="float: left;" data-toggle="tooltip" title="Seleccionar como serie del paquete" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<%--GUARDAR--%>
<div class="col-md-12" style="text-align: center;">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnGuadarArmado" OnClick="BtnGuadarArmado_Click" Text="Armar" Visible="false" CssClass="btn btn-primary" Width="150px" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabDesarmado" runat="server" HeaderText="Desarmado">
<ContentTemplate>
<%--FILTROS DESARMADO--%>
<asp:UpdatePanel runat="server" ID="UpFiltraDesarmado" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle magindate">
<div class="tools">
<asp:Button ID="BtnVerificarExistenciasDesarmado" runat="server" Text="Verificar Existencias" OnClick="BtnVerificarExistenciasDesarmado_Click" ValidationGroup="GrpVerificarExistenciasDesarmado" class="btn btn-default" />
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1" style="max-width: 70px">Paquete:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlPaqueteDesarmado" runat="server" DataTextField="PSCodigo" DataValueField="CvePS" CssClass="form-control input-sm select2me" Width="100%"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVPaqueteDesarmado" runat="server" ControlToValidate="DdlPaqueteDesarmado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''PaqueteDesarmado''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpVerificarExistenciasDesarmado"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEPaqueteDesarmado" runat="server" HighlightCssClass="vco" TargetControlID="RFVPaqueteDesarmado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1" style="max-width: 70px">Cantidad</div>
<div class="col-md-1">
<asp:TextBox ID="TxtCantidadDesarmado" Text="0" runat="server" Width="100%" Style="max-width: 80px" />
<ajax:FilteredTextBoxExtender ID="FTBECantidadDesarmado" runat="server" TargetControlID="TxtCantidadDesarmado" FilterType="Custom, Numbers" ValidChars=".," />
<asp:RangeValidator ID="RVCantidadDesarmado" runat="server" Type="Currency" MinimumValue="0.01" MaximumValue="999999" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''CantidadDesarmado''</b> debe ser mayor a cero. Por favor especifiquelo." ControlToValidate="TxtCantidadDesarmado" Display="None" ValidationGroup="GrpVerificarExistenciasDesarmado"></asp:RangeValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidadDesarmado1" runat="server" HighlightCssClass="vco" TargetControlID="RVCantidadDesarmado" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="RFVCantidadDesarmado" runat="server" ControlToValidate="TxtCantidadDesarmado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''CantidadDesarmado''</b> es necesario. Por favor seleccione uno." InitialValue="" ValidationGroup="GrpVerificarExistenciasDesarmado"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidadDesarmado2" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidadDesarmado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1" style="max-width: 70px">Almacén:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlAlmacenDesarmado" OnSelectedIndexChanged="DdlAlmacenDesarmado_SelectedIndexChanged" AutoPostBack="true" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataTextField="Almacen" DataValueField="CveAlmacen"></asp:DropDownList>
<asp:RequiredFieldValidator InitialValue="-1" ID="RfvAlmacenDesarmado" Display="None" ValidationGroup="GrpVerificarExistenciasDesarmado" runat="server" ControlToValidate="DdlAlmacenDesarmado" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Es campo <b>''Almacén''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEAlmacenDesarmado" runat="server" HighlightCssClass="vco" TargetControlID="RfvAlmacenDesarmado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1" style="max-width: 50px">Fecha</div>
<div class="col-md-1">
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaDesarmado" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 80px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaDesarmado" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaDesarmado" runat="server" TargetControlID="TxtFechaDesarmado" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaDesarmado" TargetControlID="TxtFechaDesarmado" PopupButtonID="ImgFechaDesarmado" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaDesarmado" runat="server" ControlToValidate="TxtFechaDesarmado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaDesarmado''</b> es necesario, por favor ingréselo." ValidationGroup="GrpVerificarExistenciasDesarmado"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaDesarmado" runat="server" ControlToValidate="TxtFechaDesarmado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaDesarmado''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpVerificarExistencias"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFechaDesarmado1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaDesarmado" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFechaDesarmado2" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaDesarmado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="portlet-body">
<div class="row" id="RowApartadosDesarmado" runat="server" visible="false">
<div class="col-md-1" style="max-width: 70px">Vendedor:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlVendedorDesarmado" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataTextField="Vendedor" DataValueField="CveVendedor"></asp:DropDownList>
<asp:RequiredFieldValidator InitialValue="-1" ID="RFVVendedorDesarmado" Display="None" ValidationGroup="GrpVerificarExistenciasDesarmado" runat="server" ControlToValidate="DdlVendedorDesarmado" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Es campo <b>''Vendedor''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEVendedorDesarmado" runat="server" HighlightCssClass="vco" TargetControlID="RFVVendedorDesarmado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<div runat="server" id="RowClienteDesarmado">
<div class="col-md-1" style="max-width: 70px">Cliente:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlClienteDesarmado" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataTextField="Nombre" DataValueField="CveCliente"></asp:DropDownList>
<asp:RequiredFieldValidator InitialValue="-1" ID="RFVClienteDesarmado" Display="None" ValidationGroup="GrpVerificarExistenciasDesarmado" runat="server" ControlToValidate="DdlClienteDesarmado" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Es campo <b>''Cliente''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEClienteDesarmado" runat="server" HighlightCssClass="vco" TargetControlID="RFVClienteDesarmado" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div class="row">
<%--DATOS DEL MOVIMIENTO--%>
<div class="col-md-8">
<asp:UpdatePanel ID="UpGeneralesDesarmado" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-sub ject bold uppercase">Datos del movimiento</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<table width="100%">
<tr>
<td>Paquete:</td>
<td>
<asp:Label Font-Bold="true" Text="" ID="LbPaqueteDesarmado" runat="server" />
</td>
</tr>
<tr>
<td>Cantidad:</td>
<td>
<asp:Label Text="" ID="LbCantidadDesarmado" runat="server" />
</td>
</tr>
<tr>
<td colspan="2">
<hr />
</td>
</tr>
<tr>
<td>Almacén:</td>
<td>
<asp:Label Text="" ID="LbAlmacenDesarmado" runat="server" />
</td>
</tr>
<tr>
<td>Fecha:</td>
<td>
<asp:Label Text="" ID="LbFechaDesarmado" runat="server" />
</td>
</tr>
<tr>
<td>Observaciones:</td>
<td>
<asp:TextBox ID="TxtObservacionesDesarmado" TextMode="MultiLine" Rows="2" CssClass="form-control input-sm" runat="server" MaxLength="200"></asp:TextBox>
</td>
</tr>
</table>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<%--DATOS SERIE PAQUETE--%>
<div class="col-md-4">
<asp:UpdatePanel ID="UpSeriesPaqueteDesarmado" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet light smmallpadding bordered" runat="server" id="DivSeriesPaqueteDesarmado" visible="false">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-sub ject bold uppercase">series del paquete</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<asp:Panel runat="server" ID="PnlSeriePaqueteDesarmado" DefaultButton="BtnAgregarSerieDesarmado">
<div class="row">
<div class="col-md-2">Serie</div>
<div class="col-md-3">
<asp:TextBox runat="server" ID="TxtSerieDesarmado" Text="" CssClass="form-control input-sm" />
<asp:RequiredFieldValidator ID="RFVSerieDesarmado" runat="server" ControlToValidate="TxtSerieDesarmado" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Serie''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregaSeriePaqueteDesarmado"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCESerieDesarmado" runat="server" HighlightCssClass="vco" TargetControlID="RFVSerieDesarmado" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-4 col-md-offset-3 text-right">
<asp:Button Text="Agregar" CssClass="btn btn-primary" ID="BtnAgregarSerieDesarmado" OnClick="BtnAgregarSerieDesarmado_Click" ValidationGroup="GrpAgregaSeriePaqueteDesarmado" runat="server" />
</div>
</div>
</asp:Panel>
<br />
<asp:GridView ID="GvSeriesPaqueteDesarmado" runat="server" DataKeyNames="Serie" AutoGenerateColumns="false" CssClass="table table-striped table-hover Widthall" BorderColor="#D3D3D3" GridLines="None">
<Columns>
<asp:BoundField HeaderText="#" DataField="Row" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Serie" DataField="Serie" ItemStyle-Width="70%" />
<asp:TemplateField HeaderText="Eliminar">
<ItemTemplate>
<asp:LinkButton ID="lnkRemove" runat="server" CssClass="btn btn-circle btn-xs red" Text="<i class='icon-trash'></i>" CommandName="Delete" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar?" data-btn-ok-label="si"></asp:LinkButton>
</ItemTemplate>
<ItemStyle Width="20%" HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<%--GV DATOS DESARMADO--%>
<div class="row" style="margin-left: 0px; margin-right: 0px;">
<div class="col-md-12">
<asp:UpdatePanel ID="UpDatosDesarmado" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet light smmallpadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Componentes</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<asp:GridView ID="GvDatosDesarmado" DataKeyNames="Cantidad,CvePS,CveUM,Inv_CveMetodoInventario,Consec" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron datos con los filtros especificados" CssClass="table table-striped table-hover Widthall" BorderColor="#D3D3D3" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Cantidad" ItemStyle-Width="15%" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="LbCantidad" Text='<%# Eval("Cantidad", "{0:###,###,##0.##}")%>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<%--<asp:BoundField HeaderText="Cantidad Necesaria" DataField="Cantidad" ItemStyle-Width="20%" ItemStyle-HorizontalAlign="Right" />--%>
<asp:TemplateField HeaderText="Costo" ItemStyle-Width="15%" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:TextBox Text="0.00" Width="100%" Style="max-width: 80px; text-align: right;" ID="TxtCosto" runat="server" />
<ajax:FilteredTextBoxExtender ID="FTBECosto" runat="server" TargetControlID="TxtCosto" FilterType="Custom, Numbers" ValidChars=".," />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Producto/Servicio" DataField="CodigoPS" ItemStyle-Width="50%" />
<asp:BoundField HeaderText="Unidad Medida" DataField="UnidadMedida" ItemStyle-Width="20%" />
<asp:TemplateField HeaderText="SerieLote">
<ItemTemplate>
<asp:Button Text="SerieLote" ID="BtnSerieLote" OnClick="BtnSerieLote_Click" CssClass="btn btn-xs btn-primary" runat="server" Style="float: left;" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<table class="Widthall" runat="server" id="TotalDesarmado" visible="false">
<tr>
<td width="15%">Total:</td>
<td width="15%" style="text-align: right">
<asp:TextBox ClientIDMode="Static" Text="0" ID="LbTotalCalculado" runat="server" CssClass="TextBoxAsLabel" />
</td>
<td width="10%" style="text-align: right">
<asp:Label Text="0" ID="LbTotal" runat="server" />
</td>
<td></td>
</tr>
</table>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="col-md-12" style="text-align: center;">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnGuadarDesarmado" OnClick="BtnGuadarDesarmado_Click" Text="Desarmar" Visible="false" CssClass="btn btn-primary" Width="150px" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</ContentTemplate>
</ajax:TabPanel>
</ajax:TabContainer>
<%--AGREGAR POR SERIE LOTE--%>
<div id="DivSerie" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpSerie" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Ingresar producto con Serie/Lote
</h4>
</div>
<div class="modal-body">
<asp:Panel runat="server" DefaultButton="BtnAgregarPS">
<table width="100%">
<tr>
<td width="80px"><b>Producto:</b></td>
<td>
<asp:Label Text="" ID="LbProducto" runat="server" />
</td>
<td width="120px"><b>Cantidad:</b></td>
<td colspan="">
<asp:Label Text="" ID="LbCantidad" runat="server" />
</td>
</tr>
<tr>
<td colspan="4">
<hr />
</td>
</tr>
<tr>
<td width="80px">Serie/Lote:</td>
<td>
<asp:TextBox runat="server" ID="TxtSerieLote" Width="300px" ClientIDMode="Static" />
<asp:RequiredFieldValidator ID="RFVSerieLote" runat="server" ControlToValidate="TxtSerieLote" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Serie/Lote''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregaSerie"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCESerieLote" runat="server" HighlightCssClass="vco" TargetControlID="RFVSerieLote" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
</tr>
<tr>
<td colspan="3">
<code>
<asp:Label ID="LbSerieLoteRecomendado" Text="Serie/Lote Recomendado: <b>PS2505</b>, Caducicdad: <b>25/04/2016</b>" runat="server" />
</code>
</td>
<td align="right">
<asp:Button Text="Agregar" CssClass="btn btn-primary" ID="BtnAgregarPS" OnClick="BtnAgregarPS_Click" ValidationGroup="GrpAgregaSerie" runat="server" />
</td>
</tr>
<tr>
<td colspan="4">
<asp:GridView ID="GvSerie" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowHeader="true" ShowHeaderWhenEmpty="True" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD" data-height="100" data-freezerows="1" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Serie-Folio" DataField="Serie" ItemStyle-Width="40%" />
<asp:TemplateField HeaderText="Eliminar">
<ItemTemplate>
<asp:LinkButton ID="lnkRemove" runat="server" CssClass="btn btn-circle btn-xs red" Text="<i class='icon-trash'></i>" CommandName="Delete" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar?" data-btn-ok-label="si"></asp:LinkButton>
</ItemTemplate>
<ItemStyle Width="20%" HorizontalAlign="Center"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</asp:Panel>
</div>
<div class="modal-footer">
<button id="CerrarModalSerie" type="button" class="btn btn-default" data-dismiss="modal">cerrar</button>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script type="text/javascript">
function SumaValores() {
var Suma = 0;
var Importe = 0;
var Cantidad;
var topLevelElem = document.getElementById("form1");
var textBoxes = topLevelElem.getElementsByTagName("input");
for (var i = 0; i < textBoxes.length; i++) {
if (textBoxes[i].type == "text") {
if (textBoxes[i].id.indexOf('C_Tab_TabDesarmado_GvDatosDesarmado_TxtCosto_') >= 0) {
if (textBoxes[i].value != '') {
Cantidad = $(textBoxes[i].id.replace('C_Tab_TabDesarmado_GvDatosDesarmado_TxtCosto_', 'C_Tab_TabDesarmado_GvDatosDesarmado_LbCantidad_'));
Importe = parseFloat(textBoxes[i].value.split(',').join('')) * parseFloat($('#' + Cantidad.selector).text());
Suma = Suma + Importe
}
}
}
}
$('#LbTotalCalculado').attr('value', FormatoNumero(ToDouble(Suma), 2));
}
function playsonidito(NomArchivo) {
var URL = /Sonidos/ + NomArchivo
var snd = new Audio(URL);
snd.play();
snd.currentTime = 0;
}
</script>
</asp:Content>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,129 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="PopUpBuscarMovto.aspx.vb" Inherits="PopUpBuscarFolio" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Búsqueda de Movimientos de inventario
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="PnlPrincipal" runat="server" HorizontalAlign="Center" DefaultButton="BtnBuscar" Width="750px">
<table class="Widthall">
<tr>
<td class="Titulos" colspan="4">Filtros para búsqueda</td>
</tr>
<tr align="left">
<td class="text-right"><b>Folio:</b></td>
<td>
<asp:TextBox ID="TxtFolio" runat="server" ClientIDMode="Static" MaxLength="36" Width="230px" Height="30px" autofocus></asp:TextBox>
</td>
</tr>
<tr align="left">
<td class="text-right"><b>Almacén:</b></td>
<td>
<asp:DropDownList ID="DdlAlmacen" CssClass="form-control input-sm select2me" runat="server" Width="230px" DataValueField="CveAlmacen" DataTextField="Almacen"></asp:DropDownList>
</td>
<td class="text-right"><b>Tipo de movimiento:</b></td>
<td>
<asp:DropDownList ID="DdlTipoMovimiento" CssClass="form-control input-sm select2me" runat="server" Width="230px" DataTextField="Concepto" DataValueField="CveConcepto"></asp:DropDownList>
</td>
</tr>
<tr align="left">
<td class="text-right"><b>F.I Movto.</b></td>
<td>
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy" style="padding: 0px">
<asp:TextBox ID="TxtFechaI" runat="server" CssClass="form-control" MaxLength="10" Width="202px"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</td>
<td class="text-right"><b>F.F Movto.</b></td>
<td>
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy" style="padding: 0px">
<asp:TextBox ID="TxtFechaF" runat="server" CssClass="form-control" MaxLength="10" Width="202px"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</td>
</tr>
<tr align="left">
<td class="text-right"><b>F.I Ing.</b></td>
<td>
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy" style="padding: 0px">
<asp:TextBox ID="TxtFechaIngInicio" runat="server" CssClass="form-control" MaxLength="10" Width="202px"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaIngI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MaskedEditExtender1" runat="server" TargetControlID="TxtFechaIngInicio" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender2" TargetControlID="TxtFechaIngInicio" PopupButtonID="ImgFechaIngI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</td>
<td class="text-right"><b>F.F Ing.</b></td>
<td>
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy" style="padding: 0px">
<asp:TextBox ID="TxtFechaIngFin" runat="server" CssClass="form-control" MaxLength="10" Width="202px"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaIngF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MaskedEditExtender2" runat="server" TargetControlID="TxtFechaIngFin" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender3" TargetControlID="TxtFechaIngFin" PopupButtonID="ImgFechaIngF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</td>
</tr>
<tr>
<td style="text-align: center;" colspan="4">
<asp:Button ID="BtnBuscar" runat="server" Text="Buscar" class="btn btn-primary" /></td>
</tr>
</table>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<table id="TblBusqueda" runat="server" border="0" visible="false">
<tr>
<td align="left">Registros encontrados:<b><asp:Literal ID="LtlTotalRegistros" runat="server"></asp:Literal></b></td>
</tr>
<tr>
<td>
<div id="DivMovimientos" style="overflow-y: auto; width: 760px; max-height: 215px;">
<asp:GridView ID="GvM" runat="server" GridLines="None" CssClass="table table-striped table-hover Widthall" EmptyDataText="No se encontraron resultados." AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="Concepto" DataField="Concepto" ItemStyle-Width="15%" />
<asp:HyperLinkField DataNavigateUrlFields="CveMovimiento" DataNavigateUrlFormatString="~/inventarios/EntradasSalidas.aspx?CveMovimiento={0}" Target="_blank" ItemStyle-Width="10%" HeaderText="Folio" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Center" DataTextField="Folio" />
<asp:BoundField HeaderText="Almacen" DataField="Almacen" ItemStyle-Width="20%" />
<asp:BoundField HeaderText="F. Movimiento" DataField="FechaMovto" DataFormatString="{0:d}" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="F. Ingreso" DataField="FechaIng" DataFormatString="{0:d}" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" />
<%--<asp:HyperLinkField DataNavigateUrlFields="CveCompra" DataNavigateUrlFormatString="~/Compras/Compras.aspx?CveCompra={0}" Target="_blank" ItemStyle-Width="12.5%" HeaderText="Compra" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataTextField="SerieFolioCompra" />
<asp:HyperLinkField DataNavigateUrlFields="CveVenta" DataNavigateUrlFormatString="~/Ventas/Ventas.aspx?CvePS={0}" Target="_blank" ItemStyle-Width="12.5%" HeaderText="Venta" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataTextField="SerieFolioVenta" />--%>
</Columns>
<RowStyle CssClass="Texto" />
<AlternatingRowStyle CssClass="TextoAlterno" />
<HeaderStyle CssClass="Titulos" />
</asp:GridView>
</div>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,75 @@
Option Explicit On
Option Strict On
Imports Extensiones
Partial Class PopUpBuscarFolio
Inherits ClsPaginas
#Region "PROPIEDADES"
Private ReadOnly Property Ruta As String
Get
Return AppDomain.CurrentDomain.BaseDirectory & "Empresas\" & UsuarioActual.CveEmpresa & "\"
End Get
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
CType(Me.Master, BaseMasterPage).EsPopup = True
CType(Me.Master, BaseMasterPage).PopupWidth = 850
RegistraScript("if($get('tdContenido')){$get('tdContenido').style.height='600px'}")
InicializaValores()
End If
End Sub
#Region " Inicializa Valores "
Private Sub InicializaValores()
TxtFechaF.Text = Date.Now.ToShortDateString
TxtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString
TxtFechaIngFin.Text = Date.Now.ToShortDateString
TxtFechaIngInicio.Text = Now.FirstDayOfMonth.ToShortDateString
DdlTipoMovimiento.DataSource = GlobalDTInvConceptos()
DdlTipoMovimiento.DataBind()
DdlTipoMovimiento.Items.Insert(0, New ListItem("Todos", "-1"))
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
DdlAlmacen.DataBind()
DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
#End Region
#Region " CARGA DATOS "
Private Sub BtnBuscar_Click(sender As Object, e As EventArgs) Handles BtnBuscar.Click
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim Reporte As New ClsInventarios
Dim FechaInicial = If(TxtFechaI.Text.Trim <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text.ToDate, MinFecha)
Dim FechaFinal = If(TxtFechaF.Text.Trim <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text.ToDate, MaxFecha)
Dim FechaIngI = If(TxtFechaIngInicio.Text.Trim <> "" AndAlso TxtFechaIngInicio.Text <> "__/__/____", TxtFechaIngInicio.Text.ToDate, MinFecha)
Dim FechaIngF = If(TxtFechaIngFin.Text.Trim <> "" AndAlso TxtFechaIngFin.Text <> "__/__/____", TxtFechaIngFin.Text.ToDate, MaxFecha)
If Reporte.GetMovimientosRep(DdlAlmacen.SelectedValue.ToEntero, DdlTipoMovimiento.SelectedValue.ToEntero, If(TxtFolio.Text = "", "-1", TxtFolio.Text.Trim).ToEntero, FechaIngI, FechaIngF, FechaInicial, FechaFinal, -1, UsuarioActual.CveEmpresa) Then
GvM.DataSource = Reporte.DtResultados
LtlTotalRegistros.Text = Reporte.DtResultados.Rows.Count.ToString.FormatoNumero(0)
Else
GvM.DataSource = Nothing
End If
GvM.DataBind()
UPDatos.Update()
TblBusqueda.Visible = True
Reporte.Dispose()
End Sub
#End Region
End Class

View File

@@ -0,0 +1,120 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="PopUpExistenciasAlmacen.aspx.vb" Inherits="Inventarios_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
<asp:Label ID="LblTitulo" runat="server" Text="Búsqueda de Existencias"></asp:Label>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:HiddenField ID="hdnEsThickbox" runat="server" ClientIDMode="Static" />
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<table style="width: 750px;">
<tr>
<td class="Titulos" colspan="4">Filtros para búsqueda</td>
</tr>
<tr align="left">
</tr>
<tr align="left">
<td class="text-right"><b>Producto/Servicio:</b></td>
<td>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<ADS:Dropdownlost ID="DDlPS" AutoPostBack="false" runat="server" IncluyeTodos="false" DataTextField="PSCodigo" DataValueField="CvePS" CssClassDdl="select2me" CssStyle="width:400px;"></ADS:Dropdownlost>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
<tr runat="server" id="DivCodigoSeriePS" visible="false">
<td class="text-right"><b>C. Barras:</b></td>
<td>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Panel ID="PanelCodigo" runat="server" DefaultButton="BtnCodigoPS">
<asp:TextBox ID="TxtCodigoPS" ClientIDMode="Static" Text="" runat="server" />
<asp:Button Text="" ID="BtnCodigoPS" OnClick="BtnCodigoPS_Click" Style="display: none" runat="server" />
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
<tr align="left" runat="server" id="DivSucursal" visible="false">
<td class="text-right"><b>Sucursal:</b></td>
<td>
<asp:DropDownList ID="DdlSubProyecto" AutoPostBack="True" runat="server" CssClass="form-control input-sm select2me" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Width="400px"></asp:DropDownList>
</td>
</tr>
<tr>
<td colspan="4" style="text-align: center;">
<asp:Button ID="BtnBuscar" runat="server" Text="Buscar" class="btn btn-primary" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="TblBusqueda" style="width: 100%" runat="server" border="0" visible="false">
<div class="row">
<div class="col-md-6">
<asp:Literal ID="LtPs" Text="" runat="server" />&nbsp&nbsp&nbsp&nbsp
<asp:Literal ID="LtPrecioPS" Text="" runat="server" Visible="false"/>
&nbsp&nbsp&nbsp&nbsp
<asp:Literal ID="LtlIEPS" Text="IEPS:" runat="server" Visible="false"/>
&nbsp&nbsp
<asp:Literal ID="LtlIEPSPorcentaje" Text="" runat="server" Visible="false"/>
&nbsp&nbsp&nbsp&nbsp
<asp:Literal ID="LtlIVA" Text="IVA:" runat="server" Visible="false"/>
&nbsp
<asp:Literal ID="LtlIVAPorcentaje" Text="" runat="server" Visible="false"/>
</div>
<div class="col-md-3" style="text-align: right;"">
<asp:HyperLink ID="HlPendiente" Style="color: #337ab7;" Visible="false" runat="server" Text="Ventas Pendiente por Surtir" Target="_blank"></asp:HyperLink>
</div>
</div>
<div class="row">
<div id="DivPS" style="overflow-y: auto; width: 765px; height: 365px;">
<asp:GridView ID="GV" Width="100%" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron registros" ToolTip="Listado de Contratos encontrados." CssClass="table table-striped table-hover" GridLines="None">
<Columns>
<asp:BoundField DataField="Almacen" HeaderText="Almacén" />
<asp:BoundField DataField="UnidadMedida" HeaderText="Unidad de Medida" />
<asp:BoundField DataField="Existencia" ItemStyle-HorizontalAlign="Right" HeaderText="Existencia" DataFormatString="{0:#,###.######}" />
<asp:BoundField DataField="PendientePorSurtir" ItemStyle-HorizontalAlign="Right" HeaderText="Pendiente Por Surtir" DataFormatString="{0:#,###.######}" />
<asp:BoundField DataField="ExistenciaFinal" ItemStyle-HorizontalAlign="Right" HeaderText="Existencia Real" DataFormatString="{0:#,###.######}" />
<asp:BoundField DataField="CantidadDisponibleInv" ItemStyle-HorizontalAlign="Right" HeaderText="Pendiente Por Recibir" DataFormatString="{0:#,###.######}" Visible="false"/>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script type="text/javascript">
function Focus() {
$('#TxtCodigoPS').focus()
}
</script>
</asp:Content>

View File

@@ -0,0 +1,182 @@
Option Explicit On
Option Strict On
Imports Extensiones
Partial Class Inventarios_Default
Inherits ClsPaginas
#Region "Propiedades"
Private ReadOnly Property CvePS As Integer
Get
Return ViewState("CvePS").ToString.ToEntero
End Get
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
CType(Me.Master, BaseMasterPage).EsPopup = True
CType(Me.Master, BaseMasterPage).PopupWidth = 780
RegistraScript("if($get('tdContenido')){$get('tdContenido').style.height='465px'}")
InicializaValores()
CargaSubProyecto()
If Request("CvePS") IsNot Nothing AndAlso IsNumeric(Request("CvePS")) AndAlso Request("CvePS").ToEntero > 0 Then
ViewState("CvePS") = Request("CvePS")
CargaDatos(CvePS, 1)
DDlPS.SelectedValue = CvePS.ToString
End If
If Not Request("EsThickbox") Is Nothing Then
hdnEsThickbox.Value = Request("EsThickbox")
Else
hdnEsThickbox.Value = "N"
End If
Me.Form.DefaultButton = BtnBuscar.UniqueID
If UsuarioActual.Empresa.Funcionalidad(132) = "1" Then
DivCodigoSeriePS.Visible = True
TxtCodigoPS.Focus()
End If
If UsuarioActual.CveEmpresa.Contiene(119) Then
LtPrecioPS.Visible = True
DivSucursal.Visible = True
End If
End If
End Sub
Private Sub InicializaValores()
'FUNCIONALIDAD 105
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DDlPS.setEsWebService(True)
Else
DDlPS.setEsWebService(False)
'FUNCIONALIDAD DE COMPUESTO
If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then
DDlPS.ddl.DataTextField = "PSCodigoCompuesto"
End If
DDlPS.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
DDlPS.DataBind()
End If
Dim Txt As String = IfNull(Request("Txt"), "").ToString
If Txt <> "" Then LblTitulo.Text = String.Format("Búsqueda de {0}", Txt)
End Sub
Private Sub CargaSubProyecto()
DdlSubProyecto.Items.Clear()
DdlSubProyecto.SelectedValue = Nothing
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa, Estatus:=1)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("-", "-1"))
End Sub
Protected Sub BtnBuscar_Click(sender As Object, e As System.EventArgs) Handles BtnBuscar.Click
CargaDatos(DDlPS.SelectedValue.ToEntero, 1)
End Sub
Private Sub CargaDatos(CvePS As Integer, Tipo As Integer)
Dim ObjInventarios As New ClsInventarios()
If ObjInventarios.GetExistenciasProducto(CvePS, -1, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), ExcluyeApartados:=-1, ExcluyeAdelantado:=1, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero) Then
Dim dr As Data.DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("")
If dr IsNot Nothing Then
LtPs.Text = $"Producto: <b>{dr("PSCodigo").ToString}</b>"
Dim ObjVta As New ClsVentas
Dim objPS As New ClsProductosServicios
If ObjVta.GetPrecioListas(UsuarioActual.CveEmpresa) Then
If ObjVta.DtResultados.Rows.Count > 0 Then
If objPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, ObjVta.DtResultados.Rows(0)("CvePrecioLista").ToString.ToEntero, -1, DDlPS.SelectedValue.ToEntero) Then
If objPS.DtResultados.Rows.Count > 0 Then
LtPrecioPS.Text = $"Precio de venta: <b>$: {objPS.DtResultados.Rows(0)("PrecioLista").ToString.FormatoNumero} {dr("Abreviatura").ToString}</b>"
End If
End If
End If
End If
ObjVta.Dispose()
objPS.Dispose()
If UsuarioActual.CveEmpresa = 119 Then
If CBool(dr("AplicaIEPS")) Then
LtlIEPS.Visible = True
LtlIEPSPorcentaje.Visible = True
LtlIEPSPorcentaje.Text = $"<b>% {(dr("IEPSPorcentaje").ToString.ToDouble * 100).FormatoNumero}</b>"
Else
LtlIEPS.Visible = False
LtlIEPSPorcentaje.Visible = False
End If
If dr("IVA").ToString = "-1" OrElse dr("IVA").ToString.ToDecimal > 0 Then
LtlIVA.Visible = True
LtlIVAPorcentaje.Visible = True
LtlIVAPorcentaje.Text = $"<b>Si</b>"
Else
LtlIVA.Visible = False
LtlIVAPorcentaje.Visible = False
End If
End If
End If
If UsuarioActual.CveUsuario = 100 Then
HlPendiente.Visible = True
HlPendiente.NavigateUrl = String.Format("/Inventarios/RepVentasXSurtir.aspx?CvePS={0}", CvePS)
End If
If ObjInventarios.DtResultados.Rows.Count > 0 Then
GV.DataSource = ObjInventarios.DtResultados
Else
GV.DataSource = Nothing
Dim Js = If(Tipo = 1, "", "window.setTimeout(Focus,200);")
Alert("No se encontraron registros con los parámetros solicitados.", Extensiones.TipoMensaje.MsgAdvertencia)
End If
End If
ObjInventarios.Dispose()
GV.DataBind()
UPDatos.Update()
TblBusqueda.Visible = True
End Sub
Private Sub GV_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GV.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("CveAlmacen") = "" Then
e.Row.CssClass = "Totales"
End If
If UsuarioActual.CveEmpresa = 119 Then
GV.Columns(5).Visible = True
End If
End If
End Sub
#Region " BUSCA | CODIGO - SERIE "
Protected Sub BtnCodigoPS_Click(sender As Object, e As EventArgs)
If TxtCodigoPS.Text = "" Then
Exit Sub
End If
Dim DrPS = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"CodigoBarras = '{TxtCodigoPS.Text}'")
If DrPS Is Nothing Then
Alert($"No se ha encontrado un producto del Codigo ""<b>{TxtCodigoPS.Text}</b>"". ", TipoMensaje.MsgAdvertencia, "window.setTimeout(Focus,200);")
TxtCodigoPS.Text = ""
TxtCodigoPS.Focus()
Exit Sub
End If
CargaDatos(DrPS("CvePS").ToString.ToEntero, 2)
TxtCodigoPS.Text = ""
TxtCodigoPS.Focus()
End Sub
#End Region
End Class

View File

@@ -0,0 +1,31 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="PopUpExistenciasAlmacenDT.aspx.vb" Inherits="OC_PopUpBuscarOCPS" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" Runat="Server">
Existencia en Almacenes de Productos y Servicios
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" Runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" Runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" Runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" Runat="Server">
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<br />
<div class="row">
<div id="DivPS" style="overflow-y: auto; width: 765px; height: 305px;">
<asp:GridView ID="GV" Width="100%" runat="server" AutoGenerateColumns="True" EmptyDataText="No se encontraron registros"
CssClass="table table-striped table-hover" GridLines="None" ></asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" Runat="Server">
</asp:Content>

View File

@@ -0,0 +1,46 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Partial Class OC_PopUpBuscarOCPS
Inherits ClsPaginas
#Region "Propiedades"
Private Property CveOrdenCompra As Integer
Get
If ViewState("CveOrdenCompra") Is Nothing Then
Return -1
Else
Return ViewState("CveOrdenCompra").ToString.ToEntero
End If
End Get
Set(value As Integer)
ViewState("CveOrdenCompra") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
CType(Me.Master, BaseMasterPage).EsPopup = True
CType(Me.Master, BaseMasterPage).PopupWidth = 780
RegistraScript("if($get('tdContenido')){$get('tdContenido').style.height='465px'}")
CveOrdenCompra = Request("CveOrdenCompra").ToEntero
CargaDatos()
End If
End Sub
Private Sub CargaDatos()
If CveOrdenCompra > 0 Then
Dim ObjInv As New ClsInventarios
If ObjInv.GetExistenciasAlmacenDT(CveOrdenCompra, UsuarioActual.CveEmpresa) Then
GV.DataSource = ObjInv.DtResultados
GV.DataBind()
End If
ObjInv.Dispose()
UPDatos.Update()
End If
End Sub
End Class

View File

@@ -0,0 +1,170 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="PrestamosdeProveedor.aspx.vb" Inherits="Inventarios_PrestamosdeProveedor" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" Runat="Server">
Préstamos de Proveedores
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" Runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" Runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" Runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" Runat="Server">
<asp:UpdatePanel runat="server" ID="UpFiltraEntrega" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle magindate">
<div class="tools">
<asp:Button ID="BtnCargaPendientes" runat="server" Text="Consultar" class="btn btn-default" />
</div>
<div class="titlefiltros caption ">
<label class="col-md-1 truncate" style="text-align: right;">Proveedor:</label>
<div class="col-md-3">
<ADS:DropDownLost ID="ddlProveedor" runat="server" DataValueField="CveProveedor" DataTextField="RazonSocial" AutoPostBack="true" CssClassDdl="select2me" CssStyle="width: 300px; "></ADS:DropDownLost>
</div>
<label class="col-md-1 truncate" style="text-align: right;">Folio:</label>
<div class="col-md-3">
<asp:TextBox ID="TxtFolioEntrega" runat="server" Width="70px"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumeros2" runat="server" TargetControlID="TxtFolioEntrega" FilterType="Numbers" />
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div class="row">
<div class="col-md-5">
<asp:UpdatePanel runat="server" ID="UPDatosAlmacen" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet light xspadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">RECEPCIÓN DE TRASPASO</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body rowpadding">
<div class="row">
<label class="col-md-3">Fecha:</label>
<div class="col-md-9">
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy">
<asp:TextBox ID="TxtFechaEntrega" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" ValidationGroup="GrpRecibir" Width="100px" ClientIDMode="Static"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton runat="server" ID="ImgFechaEntrega" class="btn default"> <i class="fa fa-calendar"></i> </asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MaskedEditExtender1" runat="server" TargetControlID="TxtFechaEntrega" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaEntrega" TargetControlID="TxtFechaEntrega" PopupButtonID="ImgFechaEntrega" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaEntrega" runat="server" ControlToValidate="TxtFechaEntrega" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpRecibir"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaEntrega" runat="server" ControlToValidate="TxtFechaEntrega" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpRecibir"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaEntrega" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaEntrega" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RangeValidator ID="RVFechaEntrega" runat="server" ControlToValidate="TxtFechaEntrega" Display="None" Type="Date" MinimumValue="01/01/2000" MaximumValue="01/01/2000" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Entrega''</b> no puede ser mayor al dia actual. Por favor verifcar." ValidationGroup="GrpRecibir"></asp:RangeValidator>
<ajax:ValidatorCalloutExtender ID="VCOFechaEntrega3" runat="server" HighlightCssClass="vco" TargetControlID="RVFechaEntrega" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
<div class="row">
<label class="col-md-3">Almacén:</label>
<div class="col-md-9">
<asp:DropDownList ID="DdlAlmacenOrigen" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacenOrigen" runat="server" ControlToValidate="DdlAlmacenOrigen" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen Origen''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEAlmacenOrigen" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacenOrigen" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row">
<label class="col-md-3">Recibió:</label>
<div class="col-md-9">
<asp:TextBox runat="server" ID="TxtRecibio" />
</div>
</div>
<div class="row">
<label class="col-md-3">Observaciones:</label>
<div class="col-md-9">
<asp:TextBox ID="TxtObservacionesEntrega" TextMode="MultiLine" Rows="2" runat="server" Width="300px"></asp:TextBox>
</div>
</div>
<div class="row">
<div style="text-align: center;" class="col-sm-12">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnRecibir" runat="server" Text="Devolver Préstamo" OnClick="BtnRecibir_Click" class="btn btn-primary" ValidationGroup="GrpRecibir" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<br />
<asp:UpdatePanel runat="server" ID="UppEntrega" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvD" DataKeyNames="CveUM,CvePS, SerieLote,Lote,Batch,CveMovimientoDetalle" runat="server" AutoGenerateColumns="False" EmptyDataText="No hay movimientos pendientes" CssClass="table table-hover Widthall" GridLines="None">
<Columns>
<asp:TemplateField ItemStyle-Width="5%" ItemStyle-HorizontalAlign="Center">
<%--<HeaderTemplate>
<input type="checkbox" id="ChkAll" onclick="CheckAll();" />
</HeaderTemplate>--%>
<ItemTemplate>
<asp:CheckBox ID="Chk" Checked="true" runat="server" Visible="false" ></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:TextBox ID="TxtCantidad" Visible="false" Width="60px" runat="server" Text="0" enabled="false"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumeros2" runat="server" TargetControlID="TxtCantidad" FilterType="Custom, Numbers" ValidChars="." />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Disponible" DataField="Cantidad" DataFormatString="{0:#,##0.######}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="10%" />
<asp:BoundField HeaderText="Unidad" DataField="UnidadMedida" ItemStyle-Width="10%" />
<asp:BoundField HeaderText="Código" DataField="Codigo" ItemStyle-Width="10%" />
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-Width="40%" />
<asp:BoundField HeaderText="SerieLote" DataField="SerieLote" ItemStyle-Width="15%" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" Runat="Server">
<script type="text/javascript" language="javascript">
function ValidaCantidad(input, valorInicial) {
var ValorActual = input.value;
if (ValorActual > valorInicial) {
//alert("El valor no puede ser mayor a la cantidad inicial: " + valorInicial);
input.value = valorInicial;
}
}
</script>
</asp:Content>

View File

@@ -0,0 +1,246 @@
Imports Extensiones
Partial Class Inventarios_PrestamosdeProveedor
Inherits ClsPaginas
Private Sub Inventarios_PrestamosdeProveedor_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
CargaCombos()
Dim a As New ClsValidaCFDi("EBFD0EF4-F7D2-4243-9A79-9C484D6C1323", "FRU880930R72", "AJA850608L7A", 39)
Alert(a.EsValida)
Dim lista As New List(Of String)
lista.Add("93")
lista.Add("100")
Notificaciones.AlertaVentana("hola", lista)
CargaDatos()
End If
End Sub
Private Sub CargaCombos()
RVFechaEntrega.MaximumValue = Now.ToShortDateString
ddlProveedor.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If ddlProveedor.UsaWebService Then
ddlProveedor.Attributes.Add("data-metodo", "getproveedores")
Else
ddlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
ddlProveedor.DataBind()
ddlProveedor.SelectedValue = "-1"
ddlProveedor.SelectedText = "Seleccione el Proveedor"
End If
DdlAlmacenOrigen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1)
DdlAlmacenOrigen.DataBind()
End Sub
Private Sub CargaDatos()
Dim tCveProveedor As Integer = -1
Dim tFolio As Integer = -1
If ddlProveedor.SelectedValue.ToEntero > 0 Then tCveProveedor = ddlProveedor.SelectedValue.ToEntero
If TxtFolioEntrega.Text <> "" Then tFolio = TxtFolioEntrega.Text.ToEntero
Dim ObjInv As New ClsInventarios
If ObjInv.PrestamosdeProveedorGet(tCveProveedor, tFolio, UsuarioActual.CveEmpresa) Then
GvD.DataSource = ObjInv.DtResultados
End If
ObjInv.Dispose()
GvD.DataBind()
UppEntrega.Update()
End Sub
Protected Sub GvD_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvD.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
'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(2).Text = String.Format("Folio: <a class=""texto"" style=""color:white;"" target='_blank' href='/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}'>{0}</a> ", e.Row.DBCampo("FolioSalida"), e.Row.DBCampo("CveMovimientoSalida"))
e.Row.Cells(3).Text = String.Format("{0}", e.Row.DBCampo("FechaMovto").ToString.ToDate.ToShortDateString)
e.Row.Cells(5).Text = String.Format("Proveedor: {0} ", e.Row.DBCampo("RazonSocial"))
Else
If TxtFolioEntrega.Text <> "" Then
e.Row.FCCheckBox("Chk").Visible = True
e.Row.FCTextBox("TxtCantidad").Enabled = True
End If
e.Row.FCTextBox("TxtCantidad").Visible = True
e.Row.FCTextBox("TxtCantidad").Attributes.Add("onkeyup", String.Format("ValidaCantidad(this,{0});", e.Row.DBCampo("Cantidad")))
End If
''FUNCIONALIDAD PISTOLA DE CODIGOS
'If UsuarioActual.Empresa.Funcionalidad(132) = "1" And e.Row.DBCampo("CodigoBarras").Trim <> "" Then
' e.Row.FCTextBox("TxtCantidad").Enabled = False
'End If
End If
End Sub
Protected Sub BtnRecibir_Click(sender As Object, e As EventArgs)
If GvD.Rows.Count > 0 Then
'Valida Movimientos
Dim ValidaMovtos = 0.0
For Each gvr As GridViewRow In GvD.Rows
If gvr.FCCheckBox("Chk").Checked AndAlso gvr.FCTextBox("TxtCantidad").Text.ToDecimal > 0 Then
ValidaMovtos += gvr.FCTextBox("TxtCantidad").Text.ToDecimal
If gvr.FCTextBox("TxtCantidad").Text.ToDecimal > 0 Then
Dim SerieLote As String = "-1"
Dim Lote As String = "-1"
Dim Batch As String = "-1"
If gvr.DataKey("SerieLote") <> "" Then SerieLote = gvr.DataKey("SerieLote")
If gvr.DataKey("Lote") <> "" Then Lote = gvr.DataKey("Lote")
If gvr.DataKey("Batch") <> "" Then Batch = gvr.DataKey("Batch")
Dim Valido = ValidaExistencia(gvr.FCTextBox("TxtCantidad").Text.ToDecimal, gvr.DataKey("CvePS").ToEntero, gvr.DataKey("CveUM").ToEntero, SerieLote, Lote, Batch)
If Not Valido Then
Alert("No hay existencia del producto a devolver.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
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 ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
Dim CveMovimientoEntrada As Integer = 0
Dim Folio = 0
Dim ErrorMovInv As Boolean = False
Dim TextoError = ""
'REGISTRA LA SALIDA Y ENTRADA (TRASPASO)
Dim Fecha As Date = TxtFechaEntrega.Text.ToDate
Dim CveMovimientoSalida As Integer
Dim tCveProveedor As Integer = ddlProveedor.SelectedValue.ToEntero
Dim CvePS As Integer = 0
'AGREGAMOS LA SALIDA
CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenOrigen.SelectedValue.ToEntero, 29, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
Observaciones:=TxtObservacionesEntrega.Text.Trim, CveProveedor:=tCveProveedor)
Folio = ObjInventario.Folio
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 GvD.Rows
If gvr.FCCheckBox("Chk").Checked AndAlso gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal > 0 Then
CveMovimientoDetalleEntrada = gvr.DataKey("CveMovimientoDetalle").ToString.ToEntero
CvePS = gvr.DataKey("CvePS").ToString.ToEntero
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal, gvr.DataKey("CveUM").ToString.ToEntero, gvr.DataKey("CvePS").ToString.ToEntero, 0, -1, CveMovimientoDetalleEntrada:=CveMovimientoDetalleEntrada, SerieLote:=gvr.DataKey("SerieLote").ToString, Lote:=gvr.DataKey("Lote").ToString, Batch:=gvr.DataKey("Batch").ToString) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al guardar los movimientos de salida"
Exit For
End If
End If
Next
'faltan las prepólizas
If Not ErrorMovInv AndAlso ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inv/PrestamodeProvedor", 53, 0, 0, 1, Fecha, $" {TxtObservacionesEntrega.Text}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
Dim tValorInventario As Decimal = ObjInventario.DtResultados.SUM("Total", "").ToDecimal.RoundSQL()
Dim idCtaContable As Integer = 0
Dim IdCtaContableOtro As Integer = UsuarioActual.Empresa.IdCuentaOtrosIngresos
Dim TipoMovtoAlmacen As Boolean = False
Dim drA2 As Data.DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", DdlAlmacenOrigen.SelectedValue))
If drA2 IsNot Nothing Then idCtaContable = drA2("IdCtaContable").ToString.ToEntero
Dim OrigenMov As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", "CveConcepto = 29").ToEntero
If OrigenMov = 1 Then TipoMovtoAlmacen = False Else TipoMovtoAlmacen = True
Dim CveConceptoContable As Integer = 69
Dim CveClasifCosto As Integer = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveClasificacion", String.Format("CvePS ={0} ", CvePS))
idCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", $"CveClasificacion = {CveClasifCosto}").ToEntero
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAlmacen, tValorInventario, TxtObservacionesEntrega.Text.Trim, 68, TxtObservacionesEntrega.Text.Trim, Fecha, idCtaContable, -1, CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=tValorInventario) Then
ErrorMovInv = True
Else
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovtoAlmacen, tValorInventario, TxtObservacionesEntrega.Text.Trim, CveConceptoContable, TxtObservacionesEntrega.Text.Trim, Fecha, IdCtaContableOtro, -1, CveMovimientoAlmacen:=CveMovimientoSalida, CveClasificacion:=CveClasifCosto, ImporteMX:=tValorInventario) Then
ErrorMovInv = True
End If
End If
Else
ErrorMovInv = True
End If
End If
If Not ErrorMovInv Then
ObjInventario.Commit()
TxtRecibio.Text = ""
TxtFechaEntrega.Text = Now.ToShortDateString
TxtObservacionesEntrega.Text = ""
Dim Mensaje As StringBuilder = New StringBuilder
Mensaje.AppendFormat("Se realizo correctamente la recepción. <br/> Folio de Salida: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{0}</a></b>", Folio, CveMovimientoSalida)
Mensaje.AppendFormat("<br/><a target='_blank' href='/Compras/PopUpVerFactura.aspx?P={0}'>Imprimir Reporte</a>", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoSalida))) 'onclick='ImprimirTraslado()'
Alert(Mensaje.ToString, TipoMensaje.MsgInformacion)
GvD.DataBind()
CargaDatos()
UPDatosAlmacen.Update()
Else
ObjInventario.RollBack()
Alert(TextoError, TipoMensaje.MsgError)
End If
ObjInventario.Dispose()
' CargaEntrega()
Else
Alert("No hay movimientos por devolver", TipoMensaje.MsgAdvertencia)
End If
End Sub
Private Function ValidaExistencia(Cantidad As Double, CvePS As Integer, CveUnidadMedida As Integer, Optional SerieLote As String = "-1", Optional Lote As String = "-1", Optional Batch As String = "-1") As Boolean
Dim Retorno = True
Dim Inv As New ClsInventarios
Dim Existencia As Double = Inv.GetExistenciasPS(CvePS, CveUnidadMedida, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFechaEntrega.Text.ToDate.ToString("yyyy/MM/dd 23:59"), SerieLote:=SerieLote, Lote:=Lote, Batch:=Batch)
Inv.Dispose()
'- DtMovimientos.SUM("Cantidad", $"CvePS = {CvePS} AND CveUM = {CveUnidadMedida} {If(SerieLote <> "-1", $" AND SerieLote = '{SerieLote}'", "")}")
If Existencia - Cantidad < 0 Then
If Existencia < 0 Then
Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia)
Else
Alert(String.Format("Solo hay en existencia: {0}", Existencia), TipoMensaje.MsgAdvertencia)
End If
Retorno = False
End If
Return Retorno
End Function
Private Sub BtnCargaPendientes_Click(sender As Object, e As EventArgs) Handles BtnCargaPendientes.Click
CargaDatos()
End Sub
End Class

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,927 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RecepcionEntrega.aspx.vb" Inherits="Inventarios_RecepcionEntrega" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style type="text/css">
.gvInventario tr td:nth-child(4) {
width: 6% !important
}
.gvInventario tr td:nth-child(2) {
width: 1% !important
}
.gvInventario tr th:nth-child(4) {
width: 6% !important
}
.gvInventario tr th:nth-child(2) {
width: 1% !important
}
.gvInventario tr td:nth-child(4) {
width: 18% !important;
text-align: center !important;
}
.gvInventario tr th:nth-child(4) {
width: 18% !important
}
.gvEscondeColumna tr td:nth-child(3) {
display: none;
}
.gvEscondeColumna tr th:nth-child(3) {
display: none;
}
.btn.default:hover {
background-color: lightgray
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Entrega Almacén (Surtir Mercancia)
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<a target="_blank" class="ayuda" href="../Documentacion/DocumentacionInventarios.aspx#EntregaAlmacen">&nbsp;</a>
</li>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<%--FILTROS--%>
<asp:UpdatePanel runat="server" ID="UpFiltros" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server" DefaultButton="BtnBuscar">
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT" style="">
<div class="titlefiltros caption ">
<ul class="list-inline">
<li>Cliente:
<ADS:Dropdownlost ID="DdlClientes" CssClassDdl="select2me" runat="server" CssStyle="width: 350px;" DataTextField="NombreComercial" Onselectedindexchange="DdlCliente_SelectedIndexChanged" DataValueField="CveCliente"></ADS:Dropdownlost>
<%--<asp:DropDownList ID="DdlClientes" runat="server" DataValueField="CveCliente" DataTextField="Nombre" OnSelectedIndexChanged="DdlCliente_SelectedIndexChanged" AutoPostBack="true" CssClass="form-control input-sm select2me" Width="350px"></asp:DropDownList>--%>
</li>
<li>Serie-Folio:
<asp:DropDownList ID="DdlFolio" runat="server" DataValueField="CveVenta" DataTextField="SerieFolio" CssClass="form-control input-sm select2me" Width="250px"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVFolio" runat="server" ControlToValidate="DdlFolio" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Folio''</b> es necesario, por favor ingréselo." ValidationGroup="GrpBuscar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEFolio" runat="server" HighlightCssClass="vco" TargetControlID="RFVFolio" Width="300px"></ajax:ValidatorCalloutExtender>
</li>
</ul>
</div>
<div class="tools">
<asp:Button ID="BtnBuscar" runat="server" Text="Buscar" OnClick="BtnBuscar_Click" ValidationGroup="GrpBuscar" class="btn btn-primary" />
<%--<a href="javascript:;" class="expand"></a>--%>
</div>
</div>
<div class="portlet-body" style="display: none;">
<%--<ul class="list-inline">
<li>Descripcion:
<asp:Label ID="lbDescripcion" runat="server"></asp:Label>
</li>
</ul>--%>
</div>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<div class="row" style="margin-left: 0px; margin-right: 0px;">
<div class="col-md-6">
<%--DATOS DE LA VENTA--%>
<div class="row" style="margin-left: 0px; margin-right: 0px;">
<asp:UpdatePanel ID="UpVenta" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="col-md-12">
<div class="portlet light xspadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Venta a surtir</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<table style="width:100%">
<tr>
<td style="width: 150px;">Cliente:</td>
<td>
<asp:Label Text="" ID="LbCliente" runat="server" />
</td>
</tr>
<tr>
<td>Folio:</td>
<td>
<asp:HyperLink ID="HLFolio" Target="_blank" runat="server" />
<%--<asp:Label Text="" ID="LbFolio" runat="server" />--%>
</td>
</tr>
<tr>
<td>Observaciones Grales:</td>
<td>
<asp:Label Text="" ID="LbObservaciones" runat="server" />
</td>
</tr>
<tr>
<td>Observaciones Almacén:</td>
<td>
<asp:Label Text="" ID="LbObservacionesAlmacen" runat="server" />
</td>
</tr>
</table>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<%--DATOS DEL MOVIMIENTO--%>
<div class="row" style="margin-left: 0px; margin-right: 0px;">
<asp:UpdatePanel ID="UpGenerales" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="col-md-12">
<div class="portlet light xspadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Datos del movimiento</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body">
<table style="width:100%">
<tr>
<td>Almacén:</td>
<td>
<asp:DropDownList ID="DdlAlmacen" runat="server" DataTextField="Almacen" AppendDataBoundItems="true" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me" Width="320px"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacen" runat="server" ControlToValidate="DdlAlmacen" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEAlmacen" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacen" Width="350px"></ajax:ValidatorCalloutExtender>
</td>
</tr>
<tr>
<td>Fecha:</td>
<td>
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
<asp:TextBox ID="TxtFecha" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 118px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFecha" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFecha" runat="server" TargetControlID="TxtFecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFecha" TargetControlID="TxtFecha" PopupButtonID="ImgFecha" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RangeValidator ID="RVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" ErrorMessage="No puede registrar una fecha anterior a este dia." Type="Date" ValidationGroup="GrpGuardar" />
<asp:RequiredFieldValidator ID="RFVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFecha" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFecha2" runat="server" HighlightCssClass="vco" TargetControlID="CVFecha" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFecha3" runat="server" HighlightCssClass="vco" TargetControlID="RVFecha" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</td>
</tr>
<tr>
<td>Guía:</td>
<td>
<asp:TextBox ID="TxtGuia" runat="server" CssClass="form-control input-sm" MaxLength="20" Width="320px"></asp:TextBox>
</td>
</tr>
<tr>
<td>Observaciones:</td>
<td>
<asp:TextBox ID="TxtObservaciones" TextMode="MultiLine" Rows="2" CssClass="form-control input-sm" runat="server" MaxLength="200"></asp:TextBox>
</td>
</tr>
<tr id="DivTransitorio1" runat="server" visible="false">
<td>Transitorio:</td>
<td>
<asp:CheckBox ID="ChkTransitorio" AutoPostBack="true" OnCheckedChanged="ChkTransitorio_CheckedChanged" CssClass="md-checksd" runat="server" />
</td>
</tr>
<tr id="DivTransitorio2" runat="server" visible="false">
<td colspan="2" class="row">
<label class="col-md-3">Responsable:</label>
<div class="col-md-3">
<asp:TextBox runat="server" Text="" ID="TxtResponsable" Width="90%" />
</div>
<label class="col-md-3">Almacen Transitorio:</label>
<div class="col-md-3">
<asp:DropDownList ID="DdlAlmacenTransitorio" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me" Style="width: 150px !important;"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacenTransitorio" runat="server" ControlToValidate="DdlAlmacenTransitorio" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacén Transitorio''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEAlmacenTransitorio" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacenTransitorio" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</td>
</tr>
</table>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<asp:UpdatePanel ID="UpPendientes" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="col-md-6">
<div class="row">
<%--PENDIENTES DE SURTIR--%>
<div class="col-md-12">
<div class="portlet light xspadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Ventas por surtir</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<asp:Panel runat="server" DefaultButton="BtnConsultarPendientes">
<code>
<asp:Literal Text="" runat="server" ID="LtActualizado" />
</code>
&nbsp;
<b>Sucursal:</b>
<asp:DropDownList ID="DdlSubProyectos" runat="server" CssClass="form-control input-sm select2me" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Width="90px"></asp:DropDownList>
<asp:TextBox ID="TxtFechaPendientes" runat="server" CausesValidation="true" MaxLength="10" ValidationGroup="GrpPendientes" Width="70px" ClientIDMode="Static"></asp:TextBox>
<asp:LinkButton ID="ImgFechaPendientes" Style="background-color: white;" class="btn default " Text="<i style='width:16px; height:16px;' class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
<ajax:MaskedEditExtender ID="MEEFechaPendientes" runat="server" TargetControlID="TxtFechaPendientes" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaPendientes" TargetControlID="TxtFechaPendientes" PopupButtonID="ImgFechaPendientes" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaPendientes" runat="server" ControlToValidate="TxtFechaPendientes" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpPendientes"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaPendientes" runat="server" ControlToValidate="TxtFechaPendientes" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpPendientes"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha1Pendientes" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaPendientes" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFecha2Pendientes" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaPendientes" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:Button Text="Recarga" Width="75px" ID="BtnConsultarPendientes" OnClick="BtnConsultarPendientes_Click" CssClass="btn btn-primary" runat="server" ValidationGroup="GrpPendientes" />
<asp:Timer runat="server" ID="TimmerRefresh" Interval="100000" OnTick="TimmerRefresh_Tick"></asp:Timer>
<a href="javascript:;" class="collapse"></a>
</asp:Panel>
</div>
</div>
<div class="portlet-body">
<asp:GridView ID="GVPendientes" runat="server" DataKeyNames="TipoEntrega,CveVenta,CveTraspasoSolicitud" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowHeader="true" ShowHeaderWhenEmpty="True" HeaderStyle-CssClass="Titulos" CssClass="table table-striped table-hover Widthall ScrollAD" data-height="200" data-freezerows="1" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Tipo" DataField="TipoDocto" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%" />
<asp:BoundField HeaderText="Cliente" DataField="Nombre" ItemStyle-Width="45%" />
<asp:TemplateField HeaderText="Serie-Folio" ItemStyle-Width="20%">
<ItemTemplate>
<asp:Label runat="server" ID="LblFolio" Text='<%# Eval("SerieFolio")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton Text="Surtir" ID="BtnSurtir" CommandArgument="-1" OnClick="BtnSurtir_Click" CssClass="btn btn-primary btn-xs" runat="server" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="20%" />
</asp:TemplateField>
<asp:TemplateField Visible="false">
<ItemTemplate>
<asp:HyperLink ID="HplDownPDF" Target="_blank" runat="server" Visible="false"> <i class="fa fa-ad-pdf"></i></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<%--ADVERTENCIA--%>
<div class="col-md-12" style="vertical-align: middle;" align="center">
<div style="z-index: 5; position: relative;">
<div id="DivTipoCambioAdvertencia" visible="false" clientidmode="Static" runat="server" class="alert alert-warning" style="padding: 5px; margin-bottom: 5px; padding-right: 25px;">
<button type="button" class="close" data-dismiss="alert" style="margin-top: 5px;" aria-hidden="true"></button>
<strong style="font-size: 20px; margin-right: 25px;">Información: </strong>
<asp:Literal Text="" runat="server" ID="LtTipoCambioAdvertencia"></asp:Literal>
</div>
</div>
</div>
<div class="col-md-6">
<asp:GridView ID="GvDocs" DataKeyNames="CveDocumentacion,Documentacion,Orden,CveDocumentacionElectronica,Adjunto,Estatus" runat="server" AutoGenerateColumns="False" ShowHeader="true" HeaderStyle-CssClass="Titulos" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" data-height="100" data-freezerows="1" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Documento" DataField="Documentacion" />
<asp:BoundField HeaderText="Original" DataField="Observacion" />
<asp:BoundField HeaderText="Copia" DataField="Observacion2" />
<asp:TemplateField HeaderText="" ItemStyle-Width="20%">
<ItemTemplate>
<asp:Literal ID="HplDown" runat="server" Visible="false" > </asp:Literal>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet light xspadding bordered ">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Salida de Inventario</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body form-horizontal form-row-sepe formnombottom">
<%--AGREGAR POR CODIGO DE BARRAS--%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row" runat="server" id="DivCodigoSeriePS" visible="false">
<div class="col-md-4 pull-right">
<table style="float: right;">
<tr>
<td><i class="fa fa-barcode" style="font-size: 1.8em; margin-top: 8px;" aria-hidden="true" data-toggle="tooltip" title="Código Barras"></i></td>
<td>
<asp:Panel ID="PanelCodigo" runat="server" DefaultButton="BtnCodigoPS">
<asp:TextBox ID="TxtCodigoPS" ClientIDMode="Static" Text="" runat="server" />
<asp:Button Text="" ID="BtnCodigoPS" OnClick="BtnCodigoPS_Click" Style="display: none" runat="server" />
</asp:Panel>
</td>
<td runat="server" visible="false" id="TdSeriePS">
<asp:Panel ID="PanelSerie" runat="server" DefaultButton="BtnSeriePS">
<asp:TextBox ID="TxtSeriePS" Text="" runat="server" />
<asp:Button Text="" ID="BtnSeriePS" OnClick="BtnSeriePS_Click" Style="display: none" runat="server" />
</asp:Panel>
</td>
</tr>
</table>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="row">
<div class="col-md-12">
<div class="btn-group pull-right">
<asp:Button ID="LnkVerSecciones" CssClass="btn green-haze btn-outline btn-circle btn-sm" OnClick="LnkVerSecciones_Click" runat="server" Text="Ver Secciones" />
</div>
</div>
</div>
<%--GV DATOS--%>
<asp:GridView ID="GvDatos" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowFooter="True" ShowHeader="true" ShowHeaderWhenEmpty="True" DataKeyNames="Consec,CvePS,Codigo,CodigoBarras,AplicaSerieLote,CveUM,CantidadC,CantidadF,UM,PS,CveClasificacion,CveVentaDetalle" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD gvInventario mysmallbtn" data-heighterror="450" data-freezerows="1" GridLines="None">
<HeaderStyle Height="58px" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="cbInv" runat="server" Checked="true" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="5%" />
</asp:TemplateField>
<asp:BoundField HeaderText="Cant. Venta" DataField="CantidadC" DataFormatString="{0:#,##0.######}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<%--<asp:TemplateField HeaderText="Cantidad Venta" ItemStyle-Width="10%" HeaderStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="lbCantidadC" runat="server" Width="60px" ClientIDMode="Static"
Mask="9,999.99" Text='<%# Eval("CantidadC", "{0:N2}")%>'>
</asp:Label>
</ItemTemplate>
<HeaderStyle CssClass="Titulos" />
</asp:TemplateField>--%>
<asp:BoundField HeaderText="Cant. Surtida" DataField="CantidadS" DataFormatString="{0:#,##0.######}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:TemplateField HeaderText="Cant. a Surtir" ItemStyle-Width="10%">
<ItemTemplate>
<asp:TextBox ID="TbCantidadF" runat="server" Width="60px" Mask="9,999.99" Text="0"></asp:TextBox>
<asp:Button Text="Serie" ID="BtnSerieLote" OnClick="BtnSerieLote_Click" CssClass="btn btn-primary btn-xs" runat="server" />
</ItemTemplate>
<HeaderStyle CssClass="Titulos" />
</asp:TemplateField>
<asp:BoundField HeaderText="Unidad" DataField="UM" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" />
<asp:HyperLinkField HeaderText="Producto o Servicio" Target="_blank" DataTextField="CodigoPS" DataNavigateUrlFields="CvePS" DataNavigateUrlFormatString="/Ventas/ProductosServicios.aspx?CvePS={0}" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="35%" />
<asp:BoundField HeaderText="Observación" DataField="ObservacionesDetalle" ItemStyle-Width="7.5%" />
<%--<asp:BoundField HeaderText="P.U." DataField="PU" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="10%" />--%>
<%--<asp:TemplateField HeaderText="Almacén">
<HeaderStyle HorizontalAlign="Left" />
<HeaderTemplate>
<div style="padding-left: 24px; font-size: 12px;">
<asp:Label ID="lbAlmacen" runat="server" Text="Almacén"></asp:Label>
<div style="padding-top: 5px">
<asp:DropDownList ID="ddlPAlmacen" runat="server" Style="vertical-align: middle;" Width="100px" DataTextField="Almacen" DataValueField="CveAlmacen"></asp:DropDownList>
<asp:ImageButton ID="ImgAlmacen" runat="server" ToolTip="Aplicar Almacen" OnClick="ImgAlmacen_Click" ImageUrl="/Imagenes/abajo.png" Style="vertical-align: middle;" />
</div>
</div>
</HeaderTemplate>
<ItemTemplate>
<div style="padding-left: 5px">
<asp:DropDownList ID="ddlEAlmacen" runat="server" Width="100px" DataTextField="Almacen" DataValueField="CveAlmacen"></asp:DropDownList></td>
</div>
</ItemTemplate>
<ItemStyle Width="15%"></ItemStyle>
</asp:TemplateField>--%>
<%--<asp:TemplateField>
<ItemTemplate>
<asp:Image ID="btnImgDestino" runat="server" ToolTip="Asigna una cantidad a otro Almacén " AlternateText="" ImageUrl="~/Imagenes/transfer.png" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="5%" />
</asp:TemplateField>--%>
<%--<asp:BoundField HeaderText="Sección Almacén" DataField="" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="10%" />--%>
<asp:TemplateField HeaderText="Sección Almacén">
<ItemTemplate>
<asp:LinkButton ID="LBSeccionAlmacen" Text="Ver Sección Almacén" OnClick="LBSeccionAlmacen_Click" runat="server" />
<%--<asp:Label Text="1 <br/> 2 <br/> 3 <br/> 4 <br/>" runat="server" ID="LbSeccionAlmacen"></asp:Label>--%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sección Almacén" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" Visible="false">
<ItemTemplate>
<asp:LinkButton data-toggle="tooltip" title="Sección Almacen" ID="LnkSeccionAlmacen" OnClick="LnkSeccionAlmacen_Click" CssClass="btn btn-circle btn-xs green" runat="server" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%--BOTON GUARDAR--%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div align="center">
<asp:Label Text="Venta totalmente Surtida" ID="LbSurtida" Font-Size="Small" Visible="false" CssClass="label label-sm label-success" runat="server" />
<br />
<br />
<asp:Button ID="BtnGuardar" OnClick="BtnGuardar_Click" runat="server" CssClass="btn btn-primary" Text="Guardar" Width="150px" ValidationGroup="GrpGuardar" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%--SECCION DE ALMACEN--%>
<div id="DModalSeccionAlmacen" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpModalSeccionAlmacen" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<h4 class="modal-title">
<asp:Literal ID="LtlSeccionAlmacen" Text="Sección Almacen" runat="server"> </asp:Literal></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtCantidadSeccion" CssClass="form-control" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvCantidadSeccion" runat="server" ControlToValidate="TxtCantidadSeccion" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="VgmSeccion"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoCantidadSeccion" runat="server" HighlightCssClass="vco" TargetControlID="RfvCantidadSeccion"></ajax:ValidatorCalloutExtender>
<asp:RangeValidator ID="RVTxtCantidad" runat="server" ControlToValidate="TxtCantidadSeccion" MinimumValue="0" MaximumValue="1" Type="Double" Text="<b><span style='text-decoration: underline'>ERROR:</span></b><br />No cuenta con la cantidad suficiente." ValidationGroup="VgmSeccion" />
<label for="<%= TxtCantidadSeccion.ClientID.ToString()%>">Cantidad:</label>
</div>
</div>
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlSeccionAlmacen" CssClass="form-control select2me" AppendDataBoundItems="true" Style="width: 100%;" runat="server" DataTextField="Seccion" DataValueField="CveSeccion">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RfvSeccionAlmacen" runat="server" ControlToValidate="DdlSeccionAlmacen" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Sección Almacen''</b> es necesario, por favor ingréselo." ValidationGroup="VgmSeccion"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoSeccionAlmacen" runat="server" HighlightCssClass="vco" TargetControlID="RfvSeccionAlmacen"></ajax:ValidatorCalloutExtender>
<label for="<%= DdlSeccionAlmacen.ClientID.ToString()%>">Sección Almacen:</label>
</div>
</div>
<div class="col-md-2">
<asp:LinkButton ID="LnkAddSeccionAlmacen" data-toggle="tooltip" CssClass="btn btn-default btn-circle btn-xs " OnClick="LnkAddSeccionAlmacen_Click" data-placement="top" ToolTip="Agregar Sección Almacen" runat="server" ValidationGroup="VgmSeccion"><i class="fa fa-plus" style="color:black" aria-hidden="true"></i></asp:LinkButton>
</div>
</div>
<br />
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvSeccion" runat="server" GridLines="None" ShowHeaderWhenEmpty="true"
CssClass="table table-hover table-striped ScrollAD mysmallbtn" Width="100%" data-sort="true"
AutoGenerateColumns="False" EmptyDataText="No se han agregado datos"
DataKeyNames="Consec">
<Columns>
<asp:BoundField DataField="CantidadSeccionAlmacen" HeaderText="Cantidad" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:#,##0.##}" />
<asp:BoundField DataField="SeccionAlmacen" HeaderText="Sección Almacen" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="15%" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="LnkEliminarSeccion" runat="server" OnClick="LnkEliminarSeccion_Click" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar la sección?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<%--AGREGA POR SERIE--%>
<div id="DivSerie" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpSerie" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="Label7" runat="server" ClientIDMode="Static" Text="Surtir producto con Serie/Lote y Fecha de Caducidad"></asp:Label>
</h4>
</div>
<div class="modal-body">
<asp:Panel runat="server" DefaultButton="BtnAgregarPS">
<table width="100%">
<tr>
<td width="80px"><b>Producto:</b></td>
<td>
<asp:Label Text="" ID="LbProducto" runat="server" />
</td>
<td width="120px"><b>Cantidad:</b></td>
<td colspan="">
<asp:Label Text="" ID="LbCantidad" runat="server" />
</td>
</tr>
<tr>
<td colspan="4">
<hr />
</td>
</tr>
<tr>
<td width="80px">Serie/Lote:</td>
<td>
<asp:TextBox runat="server" ID="TxtSerieLote" ClientIDMode="Static" Width="200px" />
<asp:RequiredFieldValidator ID="RFVSerieLote" runat="server" ControlToValidate="TxtSerieLote" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Serie/Lote''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregaSerie"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCESerieLote" runat="server" HighlightCssClass="vco" TargetControlID="RFVSerieLote" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
<td width="80px" runat="server" id="TdCaducidad1">Fecha Caducidad:</td>
<td runat="server" id="TdCaducidad2">
<asp:TextBox ID="TxtFechaCaducidad" runat="server" CausesValidation="true" MaxLength="10" Width="80px" ClientIDMode="Static"></asp:TextBox>
&nbsp;<asp:ImageButton runat="server" ID="ImgFechaCaducidad" ImageUrl="/Imagenes/calendar.png" ImageAlign="AbsMiddle" Width="16px" Height="16px" AlternateText="Click para ver el Calendario" />
<ajax:MaskedEditExtender ID="MEEFechaCaducidad" runat="server" TargetControlID="TxtFechaCaducidad" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaCaducidad" TargetControlID="TxtFechaCaducidad" PopupButtonID="ImgFechaCaducidad" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaCaducidad" runat="server" ControlToValidate="TxtFechaCaducidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaCaducidad''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregaSerie"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaCaducidad" runat="server" ControlToValidate="TxtFechaCaducidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaCaducidad''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpAgregaSerie"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFechaCaducidad1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaCaducidad" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFechaCaducidad2" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaCaducidad" Width="350px"></ajax:ValidatorCalloutExtender>
</td>
</tr>
<tr>
<td colspan="3">
<code>
<asp:Label ID="LbSerieLoteRecomendado" Text="Serie/Lote Recomendado: <b>PS2505</b>, Caducicdad: <b>25/04/2016</b>" runat="server" />
</code>
</td>
<td align="right">
<asp:Button Text="Agregar" CssClass="btn btn-primary" ID="BtnAgregarPS" OnClick="BtnAgregarPS_Click" ValidationGroup="GrpAgregaSerie" runat="server" />
</td>
</tr>
<tr>
<td colspan="4">
<asp:GridView ID="GvSerie" DataKey="SerieLote" DataKeyNames="SerieLote" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowHeader="true" ShowHeaderWhenEmpty="True" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD" data-height="100" data-freezerows="1" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Serie-Folio" DataField="SerieLote" ItemStyle-Width="40%" />
<asp:BoundField HeaderText="Fecha Caducidad" DataField="FechaCaducidad" ItemStyle-Width="40%" />
<asp:TemplateField HeaderText="Eliminar">
<ItemTemplate>
<asp:LinkButton ID="lnkRemove" runat="server" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" CommandName="Delete" OnClientClick="return confirm('¿Desea borrar el registro?')"></asp:LinkButton>
</ItemTemplate>
<ItemStyle Width="20%"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</asp:Panel>
</div>
<div class="modal-footer">
<button id="CancelarDevolucion" type="button" class="btn btn-default" data-dismiss="modal">cerrar</button>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<div id="DivLote" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpLoteBatch" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="Label1" runat="server" ClientIDMode="Static" Text="Surtir producto con Lote-Batch y Fecha de Caducidad"></asp:Label>
</h4>
</div>
<div class="modal-body">
<asp:Panel ID="Panel2" runat="server" DefaultButton="BtnLote">
<table width="100%">
<tr>
<td width="120px"><b>Producto:</b></td>
<td>
<asp:Label Text="" ID="LbProducto2" runat="server" />
</td>
<td width="120px"><b>Cantidad:</b></td>
<td colspan="">
<asp:Label Text="" ID="LbCantidad2" runat="server" />
</td>
</tr>
<tr>
<td colspan="4">
<hr />
</td>
</tr>
<tr>
<td width="120px">Cantidad:</td>
<td>
<asp:TextBox runat="server" ID="TxtCantidadLote" Width="100px" ClientIDMode="Static" CssClass="form-control input-sm" />
<ajax:FilteredTextBoxExtender ID="SoloNumerosCantidadLote" runat="server" TargetControlID="TxtCantidadLote" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator ID="RFVCantidadLote" runat="server" ControlToValidate="TxtCantidadLote" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregaLote"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidadLote" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidadLote" Width="300px"></ajax:ValidatorCalloutExtender>
<asp:RangeValidator ID="RVCantidadLote" Display="None" ControlToValidate="TxtCantidadLote" runat="server" MinimumValue="0.01" MaximumValue="999999" Type="Currency" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> debe ser mayor a cero(0) y menor a la cantidad restante por surtir, por favor rectifique." ValidationGroup="GrpAgregaLote"></asp:RangeValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" HighlightCssClass="vco" TargetControlID="RVCantidadLote" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
</tr>
<tr>
<td width="120px">Lote:</td>
<td>
<asp:TextBox runat="server" ID="TxtLote" ClientIDMode="Static" Width="200px" CssClass="form-control input-sm" />
<asp:RequiredFieldValidator ID="RFVLote" runat="server" ControlToValidate="TxtLote" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Lote''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregaSerie2"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="RFVLote" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
</tr>
<tr>
<td width="120px">Batch:</td>
<td>
<asp:TextBox runat="server" ID="TxtBatch" ClientIDMode="Static" Width="200px" CssClass="form-control input-sm" />
<asp:RequiredFieldValidator ID="RFVBatch" runat="server" ControlToValidate="TxtBatch" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Batch''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAgregaSerie2"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender4" runat="server" HighlightCssClass="vco" TargetControlID="RFVBatch" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
</tr>
<tr>
<td colspan="3">
<code>
<asp:Label ID="LbLoteRecomendado" Text="" runat="server" />
</code>
</td>
<td align="right">
<asp:Button Text="Agregar" CssClass="btn btn-primary" ID="BtnLote" OnClick="BtnAgregarPS2_Click" ValidationGroup="GrpAgregaSerie2" runat="server" />
</td>
</tr>
<tr>
<td colspan="4">
<asp:GridView ID="GvLote" DataKeyNames="Lote" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowHeader="true" ShowHeaderWhenEmpty="True" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD" data-height="100" data-freezerows="1" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="20%" />
<asp:BoundField HeaderText="Folio" DataField="Lote" ItemStyle-Width="20%" />
<asp:BoundField HeaderText="Batch" DataField="Batch" ItemStyle-Width="20%" />
<asp:BoundField HeaderText="Fecha Caducidad" DataField="FechaCaducidad" ItemStyle-Width="20%" />
<asp:TemplateField HeaderText="Eliminar" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="lnkRemove" runat="server" CssClass="btn btn-circle btn-xs red" Text="<i class='icon-trash'></i>" CommandName="Delete" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar?" data-btn-ok-label="si"></asp:LinkButton>
</ItemTemplate>
<ItemStyle Width="20%"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</asp:Panel>
</div>
<div class="modal-footer">
<button id="CancelarDev" type="button" class="btn btn-default" data-dismiss="modal">cerrar</button>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<%--CANTIDAD ESPECIAL--%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Panel runat="server" DefaultButton="BtnGuardarCantidadEspecial">
<div id="ModalCantidad" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="LbCantidadEspecial" Text="Cantidad: 1234 - Producto Equis" runat="server" />
</h4>
</div>
<div class="modal-body">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row">
<div class="col-md-5" style="text-align: right;">
Cantidad
</div>
<div class="col-md-7">
<asp:TextBox ClientIDMode="Static" ID="TxtCantidadEspecial" Text="" runat="server"></asp:TextBox>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnGuardarCantidadEspecial" OnClick="BtnGuardarCantidadEspecial_Click" runat="server" ClientIDMode="Static" Text="Aceptar" CssClass="btn btn-primary" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<%--CANTIDAD ESPECIAL 2--%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div id="DivCantidadEspecial" style="display: none; z-index: 5000; box-shadow: 0px 0px 15px #999;">
<table border="0" cellpadding="0" cellspacing="1" style="border: solid 1px black; color: Black; background-color: White; width: 140px;">
<tr class="Titulos">
<td>
<asp:Literal ID="LtlProductoCantidad" runat="server"></asp:Literal>
</td>
<td width="15px" valign="bottom" style="height: 8px">
<asp:Image ID="ImgCerrar" runat="server" Width="18px" ImageUrl="/Imagenes/cerrarX.jpg" AlternateText=" " Style="cursor: pointer;" onclick="$('#DivCantidadEspecial').hide(200);" />
</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;">
<asp:Panel runat="server" DefaultButton="BtnGuardarCantidadEspecialDiv">
Cant.:
<asp:TextBox ClientIDMode="Static" ID="TxtCantidadEspecialDiv" Text="1" onfocus="this.select();" Width="50px" runat="server"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumeros" runat="server" TargetControlID="TxtCantidadEspecialDiv" FilterType="Custom, Numbers" ValidChars="." />
<br />
<br />
<asp:Button ID="BtnGuardarCantidadEspecialDiv" OnClick="BtnGuardarCantidadEspecial_Click" runat="server" ClientIDMode="Static" Text="Aceptar" CssClass="btn btn-primary" />
</asp:Panel>
</td>
</tr>
</table>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%--NUMERO DE GUIA--%>
<asp:UpdatePanel ID="UpNoGuia" runat="server" Visible="false">
<ContentTemplate>
<asp:TextBox runat="server" ID="TxtNumeroGuia" placeholder="Inserte un numero de guia" ClientIDMode="static"></asp:TextBox>
<asp:Button runat="server" ID="BtnNumeroGuia" ClientIDMode="static" />
</ContentTemplate>
</asp:UpdatePanel>
<%--MODAL SECCION ALMACEN--%>
<div id="ModalSeccionAlmacen" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UpSeccionAlmacen" class="modal-dialog rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Seccion Almacén</h4>
</div>
<div class="modal-body">
<asp:GridView ID="GVSeccionAlmacen" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowHeader="true" ShowHeaderWhenEmpty="True" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Seccion" DataField="Seccion" ItemStyle-Width="30%" />
<asp:BoundField HeaderText="Fecha Caducidad" DataField="FechaCaducidad" ItemStyle-Width="40%" DataFormatString="{0:d}" />
<asp:BoundField HeaderText="Existencia" DataField="Existencia" ItemStyle-Width="30%" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
</Columns>
</asp:GridView>
</div>
<div class="modal-footer">
<button id="CancelarSeccionAlmacen" type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div id="ModalVerSeccionesAlmacen" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UpVerSeccionesAlmacen" class="modal-dialog rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Sección Almacen</h4>
</div>
<div class="modal-body">
<asp:GridView ID="GvVerSeccionesAlmacen" runat="server" EmptyDataText="No se encontraron registros." AutoGenerateColumns="False" ShowHeader="true" ShowHeaderWhenEmpty="True" CssClass="table table-striped table-hover Widthall ScrollAD" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Producto/Servicio" DataField="CodigoPS" ItemStyle-HorizontalAlign="Left"/>
<asp:BoundField HeaderText="Sección Almacen" DataField="AlmacenSeccion" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
</Columns>
</asp:GridView>
</div>
<div class="modal-footer">
<button id="CancelarVerSeccionesAlmacen" type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script src="/Metronic/assets/global/plugins/jquery.pulsate.min.js"></script>
<script type="text/javascript">
function pageLoad() {
$(document).ready(function () {
if ($('#DivTipoCambioAdvertencia')) {
$("#DivTipoCambioAdvertencia").pulsate("destroy");
jQuery('#DivTipoCambioAdvertencia').pulsate({
color: "#faebcc"
});
}
});
}
function ValidarCantidad(t, c) {
if (t.value > c) {
t.value = c;
}
}
function Focus() {
$('#TxtCodigoPS').focus()
}
function playsonidito(NomArchivo) {
var URL = /Sonidos/ + NomArchivo
var snd = new Audio(URL);
snd.play();
snd.currentTime = 0;
}
function CantidadEspecial() {
MuestraCantidadEspecial();
//$('#ModalCantidad').modal('show');
}
function MuestraCantidadEspecial() {
PosicionaObjeto('TxtCodigoPS', 'DivCantidadEspecial', '');
$("#DivCantidadEspecial").show(200);
}
function FocusCantidadEspecial() {
$('#TxtCantidadEspecialDiv').focus()
}
</script>
</asp:Content>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,958 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RecepcionUsados.aspx.vb" Inherits="Inventarios_RecepcionUsados" %>
<%@ Register Assembly="eWorld.UI" Namespace="eWorld.UI" TagPrefix="ew" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
<style>
#C_TxtHoraInicio_picker {
position: fixed !important;
}
@media(min-width:545px) {
.infomov {
width: 545px;
}
.infomov .col-md-1, .infomov .col-md-2, .infomov .col-md-6 {
float: left;
padding-right: 5px;
}
.infomov .col-md-1 {
width: 75px;
}
.infomov .col-md-1:nth-child(1) {
width: 103px;
}
.infomov .col-md-2 {
width: 182px;
}
.infomov .col-md-5 {
width: 439px;
}
}
#C_myhidenbutton {
display: none;
}
.psagregar {
width: 100%;
text-align: center;
}
.psagregar > div.comboxes {
display: inline-block;
width: 90%;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Recepción/Entrega de Usados
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<li>
<asp:HyperLink ID="HplImprimir" runat="server" Visible="false"><i class="fa fa-print"></i> Imprimir</asp:HyperLink>
</li>
<li>
<asp:HyperLink ID="HplTraspaso" Target="_blank" runat="server" Visible="false"><i class="fa fa-truck" aria-hidden="true"></i> Traspaso Almacen</asp:HyperLink>
</li>
<%-- <li style="text-align: left!important" runat="server" id="LiLnkGuias" visible="false">
<asp:LinkButton runat="server" ID="LnkAgregarGuia" CssClass="" data-toggle="tooltip" data-placement="left" OnClick="LnkAgregarGuia_Click"
title="Paqueteria Guías." Text="<i class='fa fa-truck'></i> Paqueteria Guías"></asp:LinkButton>
</li>--%>
<li>
<asp:HyperLink ID="HplPrePoliza" Target="_blank" runat="server" Visible="false"> Ver PrePóliza</asp:HyperLink>
</li>
<li>
<asp:LinkButton runat="server" ID="LnkAgregarUsado" CssClass="" data-toggle="tooltip" data-placement="left" OnClick="LnkAgregarUsado_Click"
Text="<i class='fa fa-plus'></i> Agregar Usado"></asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row" style="margin-left: 0px; margin-right: 0px;">
<asp:UpdatePanel ID="UpGenerales" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="col-md-8">
<div class="portlet smmallpadding light bordered infomov" style="width: 750px">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" Checked="true" CssClass="hidden" runat="server" />
</div>
<div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Información del movimiento
</div>
</div>
<div class="portlet-body" <%= IIf(chkexpand.Checked = True, "", "style='display:none;'")%>>
<div id="tbEncabezado" runat="server" class="rowpadding" visible="true">
<div class="row" style="display:none;">
<label class="col-md-1 truncate" style="width: 110px">Movimiento:</label>
<div class="col-md-2">
<asp:RadioButtonList runat="server" ID="RBLOpcion" RepeatDirection="Horizontal" AutoPostBack="true" Font-Size="18pt">
<asp:ListItem Selected="True" Value="2">Entrada</asp:ListItem>
<asp:ListItem Value="3">Salida</asp:ListItem>
</asp:RadioButtonList>
</div>
</div>
<div class="row">
<label class="col-md-1 truncate" style="width: 110px">Almacén:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlAlmacen" AutoPostBack="true" AppendDataBoundItems="true" OnSelectedIndexChanged="DdlAlmacen_SelectedIndexChanged" runat="server" CssClass="form-control input-sm select2me" Style="max-width: 200px" DataTextField="Almacen" DataValueField="CveAlmacen"></asp:DropDownList>
<asp:RequiredFieldValidator InitialValue="-1" ID="RfvAlmacen" Display="None" ValidationGroup="GrpGuardar" runat="server" ControlToValidate="DdlAlmacen" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="RfvAlmacen" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<%-- <label class="col-md-1 truncate" style="width: 110px" id="DivConcepto1" runat="server">Concepto:</label>
<div class="col-md-2 " id="DivConcepto2" runat="server">
<asp:DropDownList ID="DdlConcepto" DataTextField="Concepto" CssClass="form-control input-sm select2me" AutoPostBack="true" DataValueField="CveConcepto" runat="server" Style="max-width: 200px"></asp:DropDownList>
<asp:RequiredFieldValidator InitialValue="-1" ID="RfvConcepto" Display="None" ValidationGroup="GrpGuardar" runat="server" ControlToValidate="DdlConcepto" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Concepto''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoConcepto" runat="server" HighlightCssClass="vco" TargetControlID="RfvConcepto" Width="350px"></ajax:ValidatorCalloutExtender>
</div>--%>
</div>
<div class="row">
<div id="DivCliente" runat="server" visible="true">
<label class="col-md-1 truncate" style="width: 110px">Cliente:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlClientes" AutoPostBack="true" OnSelectedIndexChanged="DdlClientes_SelectedIndexChanged" AppendDataBoundItems="true" runat="server" CssClass="form-control input-sm select2me" Style="max-width: 200px" DataTextField="NombreComercial" DataValueField="CveCliente"></asp:DropDownList>
</div>
</div>
<div id="DivClienteSucursal" runat="server" visible="false">
<label class="col-md-1 truncate" style="width: 110px">Sucursal:</label>
<div class="col-md-2 " id="DivDdlClienteSucursal" runat="server">
<asp:DropDownList ID="DdlClientesSucursales" AutoPostBack="true" AppendDataBoundItems="true" runat="server" CssClass="form-control input-sm select2me" Style="max-width: 200px" DataTextField="SucursalCliente" DataValueField="CveClienteSucursal">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator InitialValue="-1" ID="RfvSucursalCliente" Display="None" ValidationGroup="GrpGuardar" runat="server" ControlToValidate="DdlClientesSucursales" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />Es campo <b>''Sucursal''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoClienteSucursal" runat="server" HighlightCssClass="vco" TargetControlID="RfvSucursalCliente" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
<div class="row" id="DivDepartamentoEntrega" runat="server" visible="False">
<label class="col-md-1 truncate" style="width: 110px">
<asp:Label runat="server" ID="LblDepartamentoEntrega"> Depto. entrega:</asp:Label>
</label>
<div class="col-md-2">
<asp:TextBox ID="TxtDepartamentoEntrega" runat="server" MaxLength="50" Width="100%"></asp:TextBox>
</div>
<label class="col-md-1 truncate" style="width: 110px">
<asp:Label runat="server" ID="LblPedidoContrato">Con./Pedido:</asp:Label>
</label>
<div class="col-md-2">
<asp:TextBox ID="TxtPedidoContrato" runat="server" MaxLength="50" Width="100%"></asp:TextBox>
</div>
</div>
<div class="row">
<label class="col-md-1 truncate" style="width: 110px">Fecha:</label>
<div class="col-md-2">
<div style="display: inline-block; vertical-align: text-bottom;">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
<asp:TextBox ID="TxtFecha" runat="server" CssClass="form-control" CausesValidation="true" Style="width: 118px" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFecha" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFecha" runat="server" TargetControlID="TxtFecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFecha" TargetControlID="TxtFecha" PopupButtonID="ImgFecha" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha1" runat="server" HighlightCssClass="vco" TargetControlID="RFVFecha" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFecha2" runat="server" HighlightCssClass="vco" TargetControlID="CVFecha" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RangeValidator ID="RVFecha" runat="server" ControlToValidate="TxtFecha" Display="None" Type="Date" MinimumValue="01/01/2000" MaximumValue="01/01/2000" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no puede ser mayor al dia actual. Por favor verifcar." ValidationGroup="GrpGuardar"></asp:RangeValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha3" runat="server" HighlightCssClass="vco" TargetControlID="RVFecha" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
<label class="col-md-1 truncate" style="display: none">Hora:</label>
<div class="col-md-1" style="display: none">
<div style="width: 85px;">
<ew:TimePicker ID="TxtHoraInicio" TimeStyle-CssClass="Texto" runat="server" ControlDisplay="TextBoxImage" CssClass="inputtimepicker" ImageUrl="/Imagenes/timepicker.png" PopupWidth="100px" Width="50px" DisableTextBoxEntry="True" PopupHeight="150px" RoundUpMinutes="True" MilitaryTime="True" Culture="Spanish (Mexico)"></ew:TimePicker>
<ew:CustomValidator ID="CVHoraInicio" runat="server" ClientValidationFunction="RevisaHora" ControlToValidate="TxtHoraInicio" Display="None" ErrorMessage="El campo <b>''Hora''</b> es necesario, por favor seleccione la hora correcta." ValidationGroup="Guardar" ValidateEmptyText="true"></ew:CustomValidator>
<ajax:ValidatorCalloutExtender ID="VcoHoraInicio" runat="server" HighlightCssClass="vco" TargetControlID="CVHoraInicio" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<label class="col-md-1 truncate" style="width: 110px" id="DivFolio1" runat="server">Folio:</label>
<div class="col-md-2" id="DivFolio2" runat="server">
<asp:TextBox ID="TxtFolio" runat="server" Style="" Width="100%"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumerosFolio" runat="server" TargetControlID="TxtFolio" FilterType="Numbers" />
</div>
</div>
<div class="row" id="divDestino" runat="server" visible="False">
<label class="col-md-1 truncate">
<asp:Label runat="server" ID="Label1">Destino:</asp:Label>
</label>
<div class="col-md-2">
<asp:Literal ID="LtlAlmacenDestino" runat="server"></asp:Literal>
</div>
</div>
<div class="row" id="divMonedaSeccion" runat="server" visible="False">
<label class="col-md-1 truncate" style="width: 110px">Moneda:</label>
<div class="col-md-2 ">
<asp:DropDownList ID="DdlMoneda" runat="server" Style="max-width: 200px" CssClass="form-control input-sm select2me" DataTextField="Moneda" DataValueField="CveMoneda"></asp:DropDownList>
</div>
<label class="col-md-1 truncate" style="width: 110px">Sección:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlSeccion" runat="server" CssClass="form-control input-sm" Style="max-width: 200px" DataTextField="Seccion" DataValueField="CveSeccion"></asp:DropDownList>
</div>
</div>
<div class="row" id="divGuia" runat="server" visible="False">
<label class="col-md-1 truncate" style="width: 110px">
<asp:Label runat="server" ID="LblGuia">Guía:</asp:Label>
</label>
<div class="col-md-2">
<asp:TextBox ID="TxtGuia" runat="server" MaxLength="20" Width="100%"></asp:TextBox>
</div>
</div>
<div class="row" runat="server" id="TrResponsable">
<label class="col-md-1" style="width: 110px">Recibe:</label>
<div class="col-md-3">
<asp:TextBox runat="server" Text="" ID="TxtResponsable" Width="100%" />
<%--<asp:DropDownList ID="DdlResponsable" runat="server" DataTextField="Nombre" DataValueField="CveUsuario" CssClass="form-control input-sm" Style="width: 200px !important;"></asp:DropDownList>--%>
</div>
</div>
<div class="row">
<label class="col-md-1 truncate" style="width: 110px">
Observaciones:
</label>
<div class="col-md-5">
<asp:TextBox ID="TxtObservaciones" TextMode="MultiLine" Rows="2" CssClass="form-control input-sm" runat="server" MaxLength="232"></asp:TextBox>
</div>
</div>
<div class="row" id="TrPersonal" runat="server" visible="false">
<label class="col-md-1 truncate">Personal</label>
<div class="col-md-5">
<asp:DropDownList ID="DdlPersonal" CssClass="form-control select2me" runat="server" DataTextField="CodigoNombreCompleto" DataValueField="CvePersonal"></asp:DropDownList>
</div>
</div>
<div class="row" id="TrProveedor" runat="server" visible="false">
<label class="col-md-1 truncate">Proveedor</label>
<div class="col-md-5">
<asp:DropDownList ID="DdlProveedor" CssClass="form-control select2me" runat="server" DataTextField="RazonSocial" DataValueField="CveProveedor"></asp:DropDownList>
</div>
</div>
<div class="row" id="TrTipoCargado" runat="server" visible="false">
<label class="col-md-1 truncate" id="LblTipo" runat="server"></label>
<div class="col-md-5">
<asp:Literal ID="LtTipo" runat="server"></asp:Literal>
</div>
</div>
<div class="row" runat="server" id="TrSubProyectoActivoFijo" visible="false">
<label class="col-md-1 truncate">Proyecto:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlSubProyecto" CssClass=" form-control input-sm select2me" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Style="max-width: 250px"></asp:DropDownList>
<asp:RangeValidator ID="RVSubProyecto" runat="server" ControlToValidate="DdlSubProyecto" MinimumValue="0" MaximumValue="9999999" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Sub Proyecto''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RangeValidator>
<ajax:ValidatorCalloutExtender ID="VCOSubProyecto" runat="server" HighlightCssClass="vco" TargetControlID="RVSubProyecto" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row" runat="server" id="DivRemision" visible="false">
<label class="col-md-1 truncate" style="width: 110px">Remision:</label>
<div class="col-md-2">
<asp:TextBox ID="TxtRemision" runat="server" Enabled="false" />
</div>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%--INVENTARIO INICIAL--%>
<asp:UpdatePanel runat="server" ID="UpCodigoBarras" UpdateMode="Conditional">
<ContentTemplate>
<div class="col-md-3">
<div class="portlet smmallpadding light bordered" id="DivCodigoBarras" runat="server" visible="False">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="<%= chkexpand2.ClientID%>" class=" <%= IIf(chkexpand2.Checked = True, "collapse", "expand")%>"></a>
</div>
<div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Agregar Producto
</div>
</div>
<div class="portlet-body">
<asp:Panel ID="PnlII" runat="server" DefaultButton="BtnAddCodigo">
<div class="row">
<label class="col-md-4">Cantidad</label>
<div class="col-md-8">
<asp:TextBox runat="server" ID="TxtCantidadProducto" Text="1" Width="50px" Enabled="false"></asp:TextBox>
</div>
</div>
<div class="row" style="margin-top: 5px;">
<label class="col-md-4">NoParte</label>
<div class="col-md-8">
<asp:TextBox runat="server" ID="TxtCodigo" ClientIDMode="Static"></asp:TextBox>
</div>
</div>
<div class="row" style="margin-top: 5px;">
<label class="col-md-4">UPC/EAN</label>
<div class="col-md-8">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Panel ID="PanelCodigoBarras" runat="server" DefaultButton="BtnCodigoBarras">
<asp:TextBox runat="server" ID="TxtCodigoBarras" ClientIDMode="Static"></asp:TextBox>
<asp:Button Text="" ID="BtnCodigoBarras" OnClick="BtnCodigoBarras_Click" Style="display: none" runat="server" />
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<div runat="server" id="TdSeriePS" visible="false" class="row" style="margin-top: 5px;">
<label class="col-md-4">Serie</label>
<div class="col-md-8">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Panel ID="PanelSerie" runat="server" DefaultButton="BtnSeriePS">
<asp:TextBox runat="server" ID="TxtCodigoSerie"></asp:TextBox>
<asp:Button Text="" ID="BtnSeriePS" OnClick="BtnSeriePS_Click" Style="display: none" runat="server" />
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<br />
<div class="row" style="margin-top: 5px;">
<div class="col-md-12" style="text-align: center;">
<asp:Button ID="BtnAddCodigo" runat="server" Text="Guardar" CssClass="btn btn-primary" Width="75%" />
</div>
</div>
</asp:Panel>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="UpRegistroTipoCambio" UpdateMode="Conditional">
<ContentTemplate>
<div class="col-md-4">
<div class="portlet smmallpadding light bordered" id="DivRegistro" runat="server" visible="false">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="<%= chkexpand2.ClientID%>" class=" <%= IIf(chkexpand2.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand2" Checked="true" CssClass="hidden" runat="server" />
</div>
<div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Información de registro
</div>
</div>
<div class="portlet-body">
<div class="row">
<label class="col-md-3 truncate">
Usuario:
</label>
<div class="col-md-6">
<asp:Label ID="LblUsuarioRegistro" runat="server"></asp:Label>
</div>
</div>
<div class="row" style="margin-top: 10px;">
<label class="col-md-3 truncate">
Fecha:
</label>
<div class="col-md-6">
<asp:Label ID="LblFechaRegistro" runat="server"></asp:Label>
</div>
</div>
<div class="row" style="margin-top: 10px;">
<label class="col-md-3 truncate">
Referencia:
</label>
<div class="col-md-6">
<asp:HyperLink ID="HplCompra" Target="_blank" runat="server" Visible="False" CssClass="Texto">Ver Compra</asp:HyperLink>
<asp:HyperLink ID="HplVenta" Target="_blank" runat="server" Visible="False" CssClass="Texto">Ver Venta</asp:HyperLink>
<asp:HyperLink ID="HplPoliza" Target="_blank" runat="server" Visible="False" CssClass="Texto">Ver Póliza</asp:HyperLink>
<asp:HyperLink ID="HplOrdenCompra" Target="_blank" runat="server" Visible="False" CssClass="Texto">Ver Orden Compra</asp:HyperLink>
<asp:HiddenField ID="HdnCveOrdenCompra" runat="server" />
</div>
</div>
<div class="row" runat="server" id="RowConsignacion" visible="false" style="margin-top: 10px;">
<label class="col-md-3 truncate">
Consignación:
</label>
<div class="col-md-6">
<asp:HyperLink ID="HLConsignacion" Target="_blank" NavigateUrl="#" Text="" runat="server" />
<%--<asp:Label Text="" ID="LbConsignacion" runat="server" />--%>
</div>
</div>
<div class="row" runat="server" id="RowTipoCambio" visible="false" style="margin-top: 10px;">
<label class="col-md-3 truncate">
Tipo Cambio:
</label>
<div class="col-md-6">
<asp:Label Text="" ID="LbTipoCambio" runat="server" />
</div>
</div>
<div class="row" runat="server" id="RowMtoRel" visible="false" style="margin-top: 10px;">
<label class="col-md-3 truncate">
Mto. Rel.:
</label>
<div class="col-md-6">
<asp:HyperLink ID="lnkMtoRelaioando" CssClass="Texto" runat="server" Target="_blank">ver</asp:HyperLink>
</div>
</div>
</div>
</div>
<div class="portlet smmallpadding light bordered" id="DivTipoCambio" runat="server" visible="false">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="<%= chkexpand3.ClientID%>" class=" <%= IIf(chkexpand3.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand3" Checked="true" CssClass="hidden" runat="server" />
</div>
<div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Tipo de Cambio
</div>
</div>
<div class="portlet-body">
<table style="width: 100%">
<tr>
<td>Moneda:</td>
<td>
<asp:DropDownList ID="DdlMonedaTC" AutoPostBack="true" OnSelectedIndexChanged="DdlMonedaTC_SelectedIndexChanged" CssClass="form-control input-sm select2me" runat="server" CausesValidation="true" ValidationGroup="GrpTipoCambio">
<asp:ListItem Selected="True" Text="Pesos" Value="1"></asp:ListItem>
<asp:ListItem Text="Dólares" Value="2"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVMoneda" runat="server" ControlToValidate="DdlMoneda" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Moneda''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpTipoCambio"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOMoneda" runat="server" HighlightCssClass="vco" TargetControlID="RFVMoneda" Width="350px"></ajax:ValidatorCalloutExtender>
</td>
</tr>
<tr id="TrTC1" visible="false" runat="server">
<td>Tipo de Cambio:</td>
<td>
<asp:TextBox ID="TxtTipoCambio" onkeyup="FormatoMoneda(this);" runat="server" Width="60px" CausesValidation="true" MaxLength="10" ValidationGroup="GrpTipoCambio"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTipoCambio" runat="server" ControlToValidate="TxtTipoCambio" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo Cambio''</b> es necesario, por favor ingréselo." ValidationGroup="GrpTipoCambio"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCETipoCambio" runat="server" HighlightCssClass="vco" TargetControlID="RFVTipoCambio" Width="350px"></ajax:ValidatorCalloutExtender>
</td>
</tr>
<tr id="TrTC2" visible="false" runat="server">
<td colspan="2" align="center">
<asp:Button ID="BtnAplicarTC" OnClick="BtnAplicarTC_Click" Text="Aplicar Tipo Cambio" CssClass="btn btn-primary" ValidationGroup="GrpTipoCambio" runat="server" Visible="false" />
</td>
</tr>
</table>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row" runat="server" id="DivCodigoSeriePS" visible="false">
<div class="col-md-4 pull-right">
<table style="float: right;">
<tr>
<td><i class="fa fa-barcode" style="font-size: 1.8em; margin-top: 8px;" aria-hidden="true" data-toggle="tooltip" title="Código Barras"></i></td>
<td>
<asp:Panel ID="PanelCodigo" runat="server" DefaultButton="BtnCodigoPS">
<asp:TextBox ID="TxtCodigoPS" ClientIDMode="Static" Text="" runat="server" />
<%--<asp:Button Text="" ID="BtnCodigoPS" OnClick="BtnCodigoPS_Click" Style="display: none" runat="server" />--%>
</asp:Panel>
</td>
<td runat="server" visible="false" id="TdSeriePSAdd">
<asp:Panel ID="Panel2" runat="server" DefaultButton="BtnSeriePSAdd">
<asp:TextBox ID="TxtSeriePS" Text="" runat="server" />
<%-- <asp:Button Text="" ID="BtnSeriePSAdd" OnClick="BtnSeriePSAdd_Click" Style="display: none" runat="server" />--%>
</asp:Panel>
</td>
</tr>
</table>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div style="width:70%" align="right">
<asp:Label ID="LbTotalMovimientos" Text="Total de Movimientos: 0" runat="server" />
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
<asp:UpdatePanel ID="UppGrid" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:HiddenField runat="server" ID="HdnCodAFEdit" Value="-1" ClientIDMode="Static" />
<asp:GridView ID="GvM" runat="server" GridLines="none" Width="70%"
CssClass="table table-hover ADScroller btn-xs" ShowHeader="True"
EmptyDataText="Aún no hay registros." DataKeyNames="No,CveMovimientoDetalle"
AutoGenerateColumns="False" AllowPaging="False" ShowFooter="True" ShowHeaderWhenEmpty="True">
<Columns>
<asp:TemplateField HeaderText="" ItemStyle-Font-Size="6pt" >
<ItemTemplate>
<asp:Literal ID="lbNo" runat="server" Text='<%# Eval("No")%>'></asp:Literal>
</ItemTemplate>
<ItemStyle Width="28px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<asp:Literal ID="lbCantidad" runat="server" Text='<%# Eval("Cantidad", "{0:#,##0.######}")%>'> </asp:Literal>
</ItemTemplate>
<ItemStyle Width="43px"></ItemStyle>
</asp:TemplateField>
<asp:BoundField HeaderText="Producto" ReadOnly="true" DataField="CodigoPS" ItemStyle-Width="200px" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField HeaderText="Unidad" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Literal ID="LblUnidad" runat="server" Text='<%# Eval("UnidadMedida")%>'></asp:Literal>
</ItemTemplate>
<ItemStyle Width="73px"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Observaciones">
<ItemTemplate>
<asp:Literal ID="lblObservaciones" runat="server" Text='<%# Eval("Observaciones")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LnkActuallizarUsado" runat="server" AlternateText="Editar" CausesValidation="False" OnClick="LnkActuallizarUsado_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
<asp:LinkButton ID="lnkRemove" runat="server" AlternateText="Eliminar" OnClick="DeleteRow" CommandArgument='<%# Eval("No")%>' CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el concepto?" data-btn-ok-label="si" />
</ItemTemplate>
<ItemStyle Width="140px"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div style="width: 100%; text-align: center;">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:HiddenField ID="HdnIdPoliza" Value="0" runat="server" />
<asp:Button ID="BtnGuardar" runat="server" ValidationGroup="GrpGuardar" Text="Guardar" CssClass="btn btn-primary" />
<asp:Button ID="BtnEliminar" runat="server" Text="Eliminar" Visible="False" CssClass="btn btn-danger" data-toggle="confirmation" data-popout="true" data-original-title="confirmar" data-btn-ok-label="si" />
<asp:Button ID="BtnContabilizar" runat="server" ValidationGroup="" Text="Contabilizar" Visible="False" CssClass="btn btn-primary" />
<asp:Button ID="BtnNuevo" runat="server" ValidationGroup="" Text="Nuevo" CssClass="btn btn-success" />
<asp:Button ID="BtnGeneraPrepoliza" runat="server" Visible="false" ValidationGroup="" Text="GeneraPrePoliza" CssClass="btn btn-success" />
<br />
<br />
<div runat="server" id="DivMensaje" visible="false">
<p>
<code>
<asp:Literal Text="" ID="LtMensaje" runat="server" />
</code>
</p>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<%-- EMPIEZA: BITACORA --%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="portlet xspadding light bordered" id="DivBitacora" runat="server" visible="false" style="display:none">
<div class="portlet-title">
<div class="caption font-green">
<span class="caption-subject bold uppercase">Bitácora</span>
</div>
<div class="actions">
<div class="btn-group">
<asp:HyperLink ID="ImgAddObs" CssClass="caption-subject bold" data-toggle="modal" data-target="#ModalBitacora" runat="server" Text=" <i class='fa fa-commenting font-green' style='font-weight: 700 !important;' ><span class='caption-subject bold'>Agregar</span></i>" Style="cursor: pointer;" ToolTip="Observaciones"></asp:HyperLink><br />
<asp:HyperLink ID="HlEvento" CssClass="thickbox caption-subject bold" runat="server" Text=" <i class='fa fa-calendar-plus-o font-green' style='font-weight: 700 !important;' >Agendar</i>" Visible="false" Style="cursor: pointer;" ToolTip="Agendar"></asp:HyperLink>
</div>
</div>
</div>
<div class="portlet-body">
<asp:UpdatePanel ID="UPEventoBitacora" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvBitacora" runat="server" AutoGenerateColumns="False" EmptyDataText="No se han capturado comentarios o bitácora" CssClass="table table-striped table-hover Widthall" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Fecha" DataField="FechaIng" ItemStyle-Width="16%"/>
<asp:BoundField HeaderText="Fecha Agenda" DataField="FechaInicio" ItemStyle-Width="16%"/>
<asp:BoundField HeaderText="Usuario" DataField="Usuario" ItemStyle-Width="16%"/>
<asp:BoundField HeaderText="Descripción" DataField="Descripcion" ItemStyle-Width="55%"/>
<asp:TemplateField HeaderText="Archivo" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="LinkArchivo" Visible="false" runat="server" CssClass="Texto" OnClick="DownloadFile">
<asp:Image ImageUrl="/Imagenes/Abajo.png" ID="ImgArchivo" runat="server" />
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<br />
<div id="ModalBitacora" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Bitácora</h4>
</div>
<div class="modal-body">
<asp:UpdatePanel runat="server" ID="UPAddEventoBitacora" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-8">
<label>Bitácora/Observaciones</label>
<br />
<asp:TextBox CssClass="form-control" ID="TxtEventoDescripcion" class="Widthall" runat="server" TextMode="MultiLine" Columns="60" Rows="4"></asp:TextBox>
<br />
<%--<asp:CheckBox ID="ChkEventoPrioridad" CssClass="md-checksd2" Text="Bitácora de Atención" runat="server" />--%>
</div>
<div class="col-md-4">
<asp:TextBox ID="Anexo" CssClass="ADSdropzone hidden" data-maxFile="1" Text="" runat="server"></asp:TextBox>
</div>
</div>
<div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnGuardarEventoBitacora" runat="server" ClientIDMode="Static" Text="Guardar" CssClass="btn btn-primary" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%-- TERMINA: BITACORA --%>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Panel runat="server" DefaultButton="BtnGuardarCantidadEspecial">
<div id="ModalCantidad" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="LbCantidadEspecial" Text="Cantidad: 1234 - Producto Equis" runat="server" />
</h4>
</div>
<div class="modal-body">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row">
<div class="col-md-5" style="text-align: right;">
Cantidad
</div>
<div class="col-md-7">
<asp:TextBox ClientIDMode="Static" ID="TxtCantidadEspecial" Text="" runat="server"></asp:TextBox>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnGuardarCantidadEspecial" runat="server" ClientIDMode="Static" Text="Aceptar" CssClass="btn btn-primary" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<div id="DivModalAgregar" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpModalAgregar" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title" id="HTituloDispostivo" runat="server">Agregar</h4>
</div>
<div class="modal-body">
<div class="form-group form-md-line-input ">
<label for='<%= txtCantidad.ClientID %>'>Cantidad:</label>
<asp:TextBox ID="txtCantidad" CssClass="form-control input-sm" Width="55px" MaxLength="15" runat="server" ValidationGroup="GprAgregarUsado"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumerosCantidad" runat="server" TargetControlID="txtCantidad" FilterType=" Numbers" />
<asp:RequiredFieldValidator ID="RFVCantidad" runat="server" ControlToValidate="txtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="GprAgregarUsado"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOCantidad1" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
<asp:CustomValidator ID="CVCantidad" runat="server" ClientValidationFunction="ValidaDecimal6digits" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> no tiene el formato correcto (6 decimales). Por favor rectifique y vuelva a intentar." ValidateEmptyText="True" ValidationGroup="GprAgregarUsado"></asp:CustomValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidad" runat="server" HighlightCssClass="vco" TargetControlID="CVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
<i></i>
</div>
<%--<div class="form-group form-md-line-input ">
<label for='<%= DdlClasificacion.ClientID %>'>Clasificación:</label>
<asp:DropDownList ID="DdlClasificacion" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Width="100%" Class="form-control input-sm select2me">
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>--%>
<div class="form-group form-md-line-input ">
<asp:DropDownList runat="server" ID="DdlProducto2" AutoPostBack="true" AppendDataBoundItems="true" Class="form-control select2me" Style="width: 200px !important;" DataTextField="PSCodigo" DataValueField="CvePS" OnSelectedIndexChanged="DdlProducto2_SelectedIndexChanged" />
<asp:HiddenField ID="HdnCveTamaño" runat="server" />
<label for='<%= DdlProducto2.ClientID %>'>Producto:</label>
</div>
<div class="form-group form-md-line-input "><br />
<label for='<%= DdlUnidad.ClientID %>'>Unidad de Medida:</label><br />
<asp:DropDownList ID="DdlUnidad" runat="server" Class="form-control input-sm select2me" Style="width: 75px !important;" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida"></asp:DropDownList>
<asp:CompareValidator ID="CVUnidad" runat="server" ControlToValidate="ddlUnidad" Type="Integer" Operator="GreaterThan" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Unidad Medida''</b> es necesario, por favor selecione una." Display="None" ValueToCompare="0" ValidationGroup="GprAgregarUsado"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender4" runat="server" HighlightCssClass="vco" TargetControlID="CVUnidad" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
<div class="form-group form-md-line-input " runat="server" visible="false" >
<label for='<%= txtPrecio.ClientID %>'>PU:</label>
<asp:TextBox ID="txtPrecio" CssClass="form-control input-sm" runat="server" Width="55px" Text="0" ></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="ftbe" runat="server" TargetControlID="txtPrecio" FilterType="Custom, Numbers" ValidChars="+-.," />
</div>
<div class="form-group form-md-line-input ">
<label for='<%= TxtObservacionesdetalle.ClientID %>'>Observaciones:</label>
<asp:TextBox ID="TxtObservacionesdetalle" CssClass="form-control input-sm" runat="server" MaxLength="200"></asp:TextBox>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:LinkButton ID="LnkModalAgregarUsado" runat="server" CssClass="btn btn-success" Text="Agregar" OnClick="LnkModalAgregarUsado_Click" ValidationGroup="GprAgregarUsado"></asp:LinkButton>
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script type="text/javascript">
function CargaActivoFijo(CveAF, Codigo) {
$get("HdnCveActivoFijo").value = CveAF;
$get("HdnCodigoAF").value = Codigo;
$('#BtnVinculaAF').click();
}
function CargaActivoFijoEdit(CveAF, Codigo, ri) {
debugger;
$get("C_Tab_tabConceptos_GvD_HdnCveActivoFijo_" + ri).value = CveAF;
$get("C_Tab_tabConceptos_GvD_HdnCodigoAF_" + ri).value = Codigo;
$get("C_Tab_tabConceptos_GvD_LblEditCodigo_" + ri).value = Codigo;
}
var H1 = "";
var H2 = "";
var T = "";
function EnterAFEdit(event, Txt, Hdn1, Hdn2) {
if (event.which == 13 || event.keyCode == 13) {
H1 = Hdn1;
H2 = Hdn2;
T = Txt;
$get("HdnCodAFEdit").value = Txt.value;
$('#BtnVinculaAFEdit').click();
}
}
function AFBlurEdit(Txt, Hdn1, Hdn2) {
H1 = Hdn1;
H2 = Hdn2;
T = Txt;
$get("HdnCodAFEdit").value = Txt.value;
if (Txt.value != '')
$('#BtnVinculaAFEdit').click();
}
function EnterAFEditOK(Cve, Codigo) {
$get(H1.id).value = Cve;
$get(H2.id).value = Codigo;
$get(T.id).value = (Codigo == -1) ? "" : Codigo;
}
var CodigoAF = "";
function EnterAF(event) {
if (event.which == 13 || event.keyCode == 13) {
Focus = false;
$get("HdnCveActivoFijo").value = -2;
$('#BtnVinculaAF').click();
CodigoAF = $get('LblCodigo').value;
}
}
function AFBlur() {
$get("HdnCveActivoFijo").value = -2;
if ($get('LblCodigo').value != '' && $get('LblCodigo').value != CodigoAF) {
$('#BtnVinculaAF').click();
CodigoAF = $get('LblCodigo').value;
}
}
function playsonidito(NomArchivo) {
var URL = /Sonidos/ + NomArchivo
var snd = new Audio(URL);
snd.play();
snd.currentTime = 0;
}
function Focus() {
$('#TxtCodigoBarras').focus()
}
function Focus2() {
$('#TxtCodigo').focus()
}
function FocusAdd() {
$('#TxtCodigoPS').focus()
}
function CantidadEspecial() {
$('#ModalCantidad').modal('show');
$('#TxtCantidadEspecial').focus()
}
Sys.Application.add_load(function (s, e) {
<%-- if ($("#<%= DdlProductows.ClientID%>")) {
if (!($('#<%= HFProducto.ClientID %>').val() === '')) {
AddItem($('#<%= HFTProducto.ClientID%>').val(), $('#<%= HFProducto.ClientID %>').val());
}
}
if ($("#<%= DdlProductows.ClientID%>").data('creado') === '1') { } else {
$("#<%= DdlProductows.ClientID%>").data('creado', '1')
$("#<%= DdlProductows.ClientID%>").select2({
ajax: {
url: "/Ashx/SIGWeb.ashx",
dataType: 'json',
delay: 250,
data: function (params) {
return {
Name: params.term, // search term
Metodo: 'getps'
};
},
processResults: function (data, params) {
// parse the results into the format expected by Select2
// since we are using custom formatting functions we do not need to
// alter the remote JSON data, except to indicate that infinite
// scrolling can be used
params.page = params.page || 1;
return {
results: data,
pagination: {
more: (params.page * 30) < data.total_count
}
};
},
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: 3
});
}
if ($("#<%= DdlProductows.ClientID%>")) {
if (!($('#<%= HFProducto.ClientID %>').val() === '')) {
AddItem($('#<%= HFTProducto.ClientID%>').val(), $('#<%= HFProducto.ClientID %>').val());
}
$("#<%= DdlProductows.ClientID%>").on("select2:select", function (e) { console.log(e); $('#<%= HFProducto.ClientID %>').val(e.params.data.id); $('#<%= HFTProducto.ClientID%>').val(e.params.data.text); $('#<%= myhidenbutton.ClientID %>').click(); });
}
if ($("#<%= DdlProducto.ClientID%>")) {
$("#<%= DdlProducto.ClientID%>").on("select2:select", function (e) { console.log(e); $('#<%= HFProducto.ClientID %>').val(e.params.data.id); $('#<%= HFTProducto.ClientID%>').val(e.params.data.text); });
}--%>
});
</script>
</asp:Content>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,105 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Remanufactura.aspx.vb" Inherits="Inventarios_Remanufactura" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reciclaje
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<div class="row">
<div class="col-md-6">
<asp:UpdatePanel ID="UpDatosRemanufactura" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="labeltruncate labeltext labelbold">
<div class="row" style="padding-bottom: 0.6em;">
<label class="col-md-2">Folio:</label>
<label class="col-md-4">
<asp:Label runat="server" ID="lblFolio" Font-Bold="true"></asp:Label>
</label>
<b>
<asp:Label runat="server" ID="LblFecha" Text="Fecha:" class="col-md-2" /></b>
<div class="col-md-4" id="DivFecha" runat="server">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 50% !important; padding: 0px;">
<asp:TextBox ID="TxtFecha" runat="server" ClientIDMode="Static" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFecha" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFecha" runat="server" TargetControlID="TxtFecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFecha" TargetControlID="TxtFecha" PopupButtonID="ImgFecha" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="CvFecha" runat="server" ControlToValidate="TxtFecha" Display="None" Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpAplicar" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)."></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VcoFecha" runat="server" Enabled="True" HighlightCssClass="vco" TargetControlID="CvFecha" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
<div class="row" style="padding-bottom: 0.6em;">
<label class="col-md-2">Cliente:</label>
<div class="col-md-10">
<ADS:Dropdownlost ID="DdlCliente" runat="server" CssStyle="width: 95%;" DataTextField="NombreComercial" DataValueField="CveCliente"></ADS:Dropdownlost>
<%--<asp:RequiredFieldValidator ID="RFVCliente" runat="server" ControlToValidate="DdlCliente" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cliente''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAplicar"></asp:RequiredFieldValidator>--%>
<%--<ajax:ValidatorCalloutExtender ID="VCECliente" runat="server" HighlightCssClass="vco" TargetControlID="RFVCliente"></ajax:ValidatorCalloutExtender>--%>
</div>
</div>
<div class="row" style="padding-bottom: 0.6em;">
<label class="col-md-2">Alamcen:</label>
<div class="col-md-10">
<asp:DropDownList ID="DdlAlmacen" runat="server" CssClass="select2me" Width="95%" DataTextField="Almacen" DataValueField="CveAlmacen" AppendDataBoundItems="true"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacen" runat="server" ControlToValidate="DdlAlmacen" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacen''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAplicar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEAlmacen" runat="server" HighlightCssClass="vco" TargetControlID="RFVAlmacen"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="row" style="padding-bottom: 0.6em;">
<b><asp:Label ID="LblProyecto" runat="server" class="col-md-2">Proyecto:</asp:Label></b>
<div id="DivProyecto" runat="server" class="col-md-4">
<asp:DropDownList ID="DdlProyecto" runat="server" AutoPostBack="true" Width="95%" OnSelectedIndexChanged="DdlProyecto_SelectedIndexChanged" CssClass="select2me" DataTextField="Proyecto" DataValueField="CveProyecto" AppendDataBoundItems="true"></asp:DropDownList>
</div>
<b><asp:Label ID="LblSubProyecto" runat="server" class="col-md-2">SubProyecto:</asp:Label></b>
<div class="col-md-4">
<asp:DropDownList ID="DdlSubProyecto" runat="server" CssClass="select2me" Width="95%" DataTextField="SubProyecto" DataValueField="CveSubProyecto" AppendDataBoundItems="true"></asp:DropDownList>
</div>
</div>
<div class="row" style="padding-bottom: 0.6em;">
<label class="col-md-2">Cantidad:</label>
<div class="col-md-4">
<asp:TextBox ID="TxtCantidad" CssClass="form-control input-sm" runat="server" Width="100%" />
<asp:RequiredFieldValidator ID="RFVCantidad" runat="server" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAplicar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidad" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad"></ajax:ValidatorCalloutExtender>
<ajax:FilteredTextBoxExtender ID="FTBETCantidad" TargetControlID="TxtCantidad" FilterType="Custom, Numbers" ValidChars="." runat="server" />
</div>
</div>
<div class="row" style="padding-bottom: 0.6em;">
<label class="col-md-2">Producto o Servicio:</label>
<div class="col-md-10">
<ADS:Dropdownlost ID="DdlPS" runat="server" CssStyle="width: 95%;" DataTextField="PSCodigo" DataValueField="CvePS"></ADS:Dropdownlost>
<%--<asp:RequiredFieldValidator ID="RFVPS" runat="server" ControlToValidate="DdlPS" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Producto o Servicio''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAplicar"></asp:RequiredFieldValidator>--%>
<%--<ajax:ValidatorCalloutExtender ID="VCEPS" runat="server" HighlightCssClass="vco" TargetControlID="RFVPS"></ajax:ValidatorCalloutExtender>--%>
</div>
</div>
<div class="row" style="padding-bottom: 0.6em;">
<label class="col-md-2">Precio:</label>
<div class="col-md-4">
<asp:TextBox ID="TxtPrecio" CssClass="form-control input-sm" runat="server" Width="100%" />
<asp:RequiredFieldValidator ID="RFVPrecio" runat="server" ControlToValidate="TxtPrecio" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Precio''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAplicar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEPrecio" runat="server" HighlightCssClass="vco" TargetControlID="RFVPrecio"></ajax:ValidatorCalloutExtender>
<ajax:FilteredTextBoxExtender ID="FTBEPrecio" TargetControlID="TxtPrecio" FilterType="Custom, Numbers" ValidChars="." runat="server" />
</div>
</div>
</div>
<div class="col-md-12" align="center">
<asp:Button ID="BtnAplicar" CssClass="btn btn-primary" OnClick="BtnAplicar_Click" Style="margin-top: 5px;" runat="server" Text="Aplicar" Width="170px" ValidationGroup="GrpAplicar" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

File diff suppressed because it is too large Load Diff

274
Inventarios/RepAlmacen.aspx Normal file
View File

@@ -0,0 +1,274 @@
<%@ Page Title="REPORTE DE ALMACÉN" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepAlmacen.aspx.vb" Inherits="Inventarios_RepAlmacen" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.GVAlmacen > tbody > tr:nth-child(2) {
background: #CCCCCC;
color: #67809F;
font-weight: bold;
}
.GVAlmacen > tbody > tr > td:nth-child(2) {
text-align: right;
}
.GVAlmacen > tbody > tr > td:nth-child(3) {
text-align: center;
}
.select2 .select2-selection__rendered {
line-height: 1;
color: #111;
}
.select2 .select2-selection--multiple {
box-sizing: border-box;
cursor: pointer;
display: block;
min-height: 20px;
user-select: none;
-webkit-user-select: none;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
margin-top: 10px;
}
.select2-selection__rendered {
margin-top: 0px;
height: 25px;
}
.select2-selection {
margin-top: 0px;
height: 31px;
}
.select2-container--default.select2-container--focus .select2-selection--multiple {
border: none;
outline: 0;
}
#chartdiv {
width: 100%;
height: 500px;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
REPORTE DE ALMACÉN
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkPdf" runat="server"><i class="fa fa-file-pdf-o" style="font-weight:bold;"></i> PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-file-excel-o" style="font-weight:bold;"></i> Excel</asp:LinkButton>
</li>
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkVerGrafica" OnClick="LnkVerGrafica_Click" runat="server"><i class="fa fa-signal"></i> Ver Grafica</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" runat="server" Text="Consultar" class="btn btn-primary" />
<a href="javascript;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption">
<div class="row">
<div class="col-md-1 truncate" style="text-align: right!important">Fecha Inicio:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaI" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Fecha Fin:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaF" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Tipo Almacen:</div>
<div class="col-md-1">
<asp:ListBox ID="DdlTipoAlmacen" SelectionMode="Multiple" CssClass="form-control ddlFiltros input-sm select2me Widthall" DataTextField="TipoAlmacen" DataValueField="CveTipoAlmacen" Style="width: 100%;" runat="server"></asp:ListBox>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Modalidad:</div>
<div class="col-md-1">
<asp:DropDownList ID="DdlModalidadFiltro" runat="server" CssClass="input-small input-sm select2me" Width="100%">
<asp:ListItem Text="Todas" Value="-1" Selected="True"> </asp:ListItem>
<asp:ListItem Text="Contable" Value="1"></asp:ListItem>
<asp:ListItem Text="No Contable" Value="0"></asp:ListItem>
</asp:DropDownList>
</div>
<asp:CheckBox ID="ChkInventariable" CssClass="md-checksd" runat="server" Text="Aplica Inventario" />
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GVAlmacen" runat="server" AutoGenerateColumns="False" data-sort="true" EmptyDataText="No se encontraron Almacenes" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Almacén">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" Target="_blank" NavigateUrl='<%# String.Format("/Inventarios/RepEntradasSalidas.aspx?CveAlmacen={0}&FechaInicio={1:d}&FechaCorte={2:d}", Eval("CveAlmacen").ToString, Eval("FechaInicio"), Eval("FechaFin"))%>' runat="server"><%# Eval("Almacen") %></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Existencia" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="LtlExist" runat="server" Text='<%# Eval("Existencia", "{0:#,###.##}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="LtlTotal" runat="server" Text='<%# Eval("Total", "{0:#,##0.00}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Tipo Almacén">
<ItemTemplate>
<asp:Label ID="LtlAlmacen" runat="server" Text='<%# Eval("TipoAlmacen")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<div id="DivModalGrafica" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog modal-lg" runat="server" ID="UPModalProd" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="LblTituloGrafica" runat="server" ClientIDMode="Static" Text="Almacenes"></asp:Label>
</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-2"></div>
<label class="col-md-1 truncate">Grafica:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlGrafica" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlGrafica_SelectedIndexChanged" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-small input-sm select2me">
<asp:ListItem Selected="True" Text="Barras" Value="1"></asp:ListItem>
<asp:ListItem Text="Pastel" Value="2"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 truncate">&nbsp;&nbsp;&nbsp;Ver:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlVer" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlVer_SelectedIndexChanged" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-small input-sm select2me">
<asp:ListItem Selected="True" Text="Existencias" Value="1"></asp:ListItem>
<asp:ListItem Text="Total" Value="2"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<br />
<div id="chartdiv"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Cerrar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
<script src="https://www.amcharts.com/lib/3/serial.js"></script>
<script src="https://www.amcharts.com/lib/3/pie.js"></script>
<script src="https://www.amcharts.com/lib/3/plugins/export/export.min.js"></script>
<link rel="stylesheet" href="https://www.amcharts.com/lib/3/plugins/export/export.css" type="text/css" media="all" />
<script src="https://www.amcharts.com/lib/3/themes/light.js"></script>
<script>
function CargaGraficaBarras(data,title) {
var chart = AmCharts.makeChart("chartdiv", {
"type": "serial",
"theme": "light",
"dataProvider": data,
"startDuration": 2,
"valueAxes": [{
"position": "left",
"title": title
}],
"graphs": [{
"balloonText": "[[category]]: <b>[[value]]</b>",
"colorField": "Color",
"fillAlphas": 1,
"lineAlpha": 0.1,
"type": "column",
"valueField": "Valor"
}],
"depth3D": 20,
"angle": 30,
"chartCursor": {
"categoryBalloonEnabled": false,
"cursorAlpha": 0,
"zoomable": false
},
"categoryField": "Texto",
"categoryAxis": {
"gridPosition": "start",
"labelRotation": 90
},
"export": {
"enabled": true
}
});
}
function CargaGraficaPastel(data) {
var chart = AmCharts.makeChart("chartdiv", {
"type": "pie",
"theme": "light",
"dataProvider":
data,
"valueField": "Valor",
"titleField": "Texto",
"outlineAlpha": 0.4,
"depth3D": 0,
"balloonText": "[[title]]<br><span style='font-size:14px'><b>[[value]]</b> ([[percents]]%)</span>",
"angle": 0,
"export": {
"enabled": true
}
});
}
</script>
</asp:Content>

View File

@@ -0,0 +1,234 @@
Option Strict On
Option Explicit On
Imports Extensiones
Imports System.Data
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepAlmacen
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property TmpDT As DataTable
Get
Return CType(ViewState("TmpDT"), DataTable)
End Get
Set(value As DataTable)
ViewState("TmpDT") = value
End Set
End Property
Private Property DtColor As DataTable
Get
Return DirectCast(ViewState("DtColor"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtColor") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaTipoAlmacen()
CargaDatos()
CreaDataTableColor()
End If
End Sub
Private Sub CargaTipoAlmacen()
DdlTipoAlmacen.DataSource = GlobalDTTipoAlmacen(1)
DdlTipoAlmacen.DataBind()
DdlTipoAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub CargaDatos()
Dim objInv As New ClsInventarios
Dim FechaI, FechaF As String
FechaI = If(IsDate(TxtFechaI.Text.Trim()), TxtFechaI.Text.Trim(), "-1")
FechaF = If(IsDate(TxtFechaF.Text.Trim()), TxtFechaF.Text.Trim(), "-1")
Dim TipoAlmacen As String = If(DdlTipoAlmacen.GetSelectedValuesM = "", "-1", DdlTipoAlmacen.GetSelectedValuesM)
If objInv.GetRepAlmacenes(FechaI, FechaF, UsuarioActual.CveEmpresa, TipoAlmacen, DdlModalidadFiltro.SelectedValue.ToEntero, ChkInventariable.Checked) Then
GVAlmacen.DataSource = objInv.DtResultados
TmpDT = objInv.DtResultados
End If
objInv.Dispose()
GVAlmacen.DataBind()
End Sub
Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
CargaDatos()
UpDatos.Update()
End Sub
#Region "I M P R I M I R <i class='fa fa-print'></i>"
Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
GVAlmacen.ExportToExcel("RepFacturas_" & Now.ToShortDateString())
End Sub
Private Sub GenerarPDF()
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim StrFiltro As New StringBuilder
If TxtFechaI.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Inicio </b>: {0}", TxtFechaI.Text.ToDate.ToShortDateString)
If TxtFechaF.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Fin </b>: {0}", TxtFechaF.Text.ToDate.ToShortDateString)
If DdlTipoAlmacen.GetSelectedText <> "" Then StrFiltro.AppendFormat("&emsp;<b>Tipo Almacen</b>: {0}", DdlTipoAlmacen.GetSelectedText)
If DdlModalidadFiltro.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Modalidad</b>: {0}", DdlModalidadFiltro.SelectedItem)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", StrFiltro.ToString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepAlmacen.rdlc", TmpDT, params, "ReporteAlmacen")
End Sub
Protected Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click
GenerarPDF()
End Sub
Private Sub GVAlmacen_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GVAlmacen.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.FCLabel("LtlAlmacen").Text = "" Then
e.Row.CssClass = "Totales"
End If
End If
End Sub
#End Region
#Region "GRAFICA"
Protected Sub LnkVerGrafica_Click(sender As Object, e As EventArgs)
If Not TmpDT IsNot Nothing AndAlso TmpDT.Rows.Count > 0 Then
Alert("No hay datos disponibles", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
RegistraScript("$('#DivModalGrafica').modal('show')")
CambioGrafica()
End Sub
Private Sub CreaDataTableColor()
DtColor = New DataTable
DtColor.Columns.Add("Color")
Dim RowColor As DataRow = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#FF0F00"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#FF6600"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#FF9E01"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#FCD202"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#F8FF01"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#B0DE09"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#04D215"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#0D8ECF"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#0D52D1"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#2A0CD0"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#8A0CCF"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#CD0D74"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#754DEB"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#DDDDDD"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#999999"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#333333"
DtColor.Rows.Add(RowColor)
RowColor = Nothing
RowColor = DtColor.NewRow()
RowColor("Color") = "#000000"
DtColor.Rows.Add(RowColor)
End Sub
Private Sub CambioGrafica()
Dim Dt As New DataTable()
Dt.Columns.Add("Texto")
Dt.Columns.Add("Valor")
Dt.Columns.Add("Color")
Dim RowColorIndex As Integer = 0
For Each Dr As DataRow In TmpDT.Rows
If Not Dr("TipoAlmacen").ToString = "" Then
Dim Row As DataRow = Nothing
Row = Dt.NewRow()
Row("Texto") = Dr("Almacen").ToString
Select Case DdlVer.SelectedValue.ToEntero
Case 1
Row("Valor") = Dr("Existencia").ToString.FormatoNumero
Case 2
Row("Valor") = Dr("Total").ToString.FormatoNumero
End Select
Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString
Dt.Rows.Add(Row)
RowColorIndex += 1
If RowColorIndex = 17 Then
RowColorIndex = 0
End If
End If
Next
Dim query = From s In Dt.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString()}
Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(query)
Select Case DdlGrafica.SelectedValue.ToEntero
Case 1
RegistraScript($"CargaGraficaBarras({json})", "22")
Case 2
RegistraScript($"CargaGraficaPastel({json})", "22")
End Select
UPModalProd.Update()
End Sub
Protected Sub DdlGrafica_SelectedIndexChanged(sender As Object, e As EventArgs)
CambioGrafica()
End Sub
Protected Sub DdlVer_SelectedIndexChanged(sender As Object, e As EventArgs)
CambioGrafica()
End Sub
#End Region
End Class

View File

@@ -0,0 +1,124 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepAlmacenCompras.aspx.vb" Inherits="Inventarios_RepAlmacenCompras" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.dataTables_scrollHead {
background-color: #95A5A6;
color: white;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte Almacen-Compras
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<li>
<asp:LinkButton ID="LnkPdf" runat="server"> <i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="ImgExcel" runat="server"><i class="fa fa-ad-excel"></i> Exporta Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel runat="server" ID="UpFiltraRecepcion" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle magindate" style="min-height: 49px;">
<div class="tools">
<asp:Button ID="BtnConsultar" runat="server" Text="Consultar" OnClick="BtnConsultar_Click" ValidationGroup="GrpConsultar" class="btn btn-default" />
</div>
<div class="titlefiltros caption ">
<ul class="list-inline" style="font-size: 12px;">
<li>Almacén:</li>
<li>
<div>
<asp:DropDownList ID="DdlAlmacen" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm" Style="width: 150px !important;" ValidationGroup="GrpConsultar"></asp:DropDownList>
</div>
</li>
<li>FechaInicio:</li>
<li>
<div class="input-group input-small date date-picker" style="margin-bottom: -12px;" data-date-format="dd/mm/yyyy">
<asp:TextBox ID="TxtFechaInicio" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" ValidationGroup="GrpRecibir" Width="100px"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton runat="server" ID="ImgFechaInicio" class="btn default"> <i class="fa fa-calendar"></i> </asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaInicio" runat="server" TargetControlID="TxtFechaInicio" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender ID="CEFechaInicio" runat="server" TargetControlID="TxtFechaInicio" PopupButtonID="ImgFechaInicio" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaInicio" runat="server" ControlToValidate="TxtFechaInicio" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaInicio''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaInicio" runat="server" ControlToValidate="TxtFechaInicio" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaInicio''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCEFechaInicio" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaInicio" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCECVFechaInicio" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaInicio" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</li>
<li>FechaFin:</li>
<li>
<div class="input-group input-small date date-picker" style="margin-bottom: -12px;" data-date-format="dd/mm/yyyy">
<asp:TextBox ID="TxtFechaFin" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" ValidationGroup="GrpRecibir" Width="100px"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton runat="server" ID="ImgFechaFin" class="btn default"> <i class="fa fa-calendar"></i> </asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaFin" runat="server" TargetControlID="TxtFechaFin" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender ID="CEFechaFin" runat="server" TargetControlID="TxtFechaFin" PopupButtonID="ImgFechaFin" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaFin" runat="server" ControlToValidate="TxtFechaFin" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaFin''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaFin" runat="server" ControlToValidate="TxtFechaFin" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''FechaFin''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCEFechaFin" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaFin" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCECVFechaFin" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaFin" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</li>
</ul>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<asp:UpdatePanel runat="server" ID="UpDatos" UpdateMode="Conditional">
<ContentTemplate>
<div style="overflow-x: auto; overflow-y: auto">
<table class="ScrollAD Widthall">
<tr>
<td>
<table class="table Widthall ">
<tr>
<td class="dataTables_scrollHead text-center bold" style="font-size: 14px; border-right: 3px solid white;" runat="server" id="CabeceraAlmacen">Movimiento de Almacen</td>
<td class="dataTables_scrollHead text-center bold" style="font-size: 14px; border-right: 3px solid white;" runat="server" id="CabeceraCompra">Compra</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<asp:GridView ID="GvDatos" runat="server" data-sort="true" AutoGenerateColumns="False" EmptyDataText="No hay movimientos." ToolTip="Listado de Movimientos" CssClass="table table-striped table-advance table-hover Widthall" Style="text-align: center;" GridLines="None">
<Columns>
<asp:HyperLinkField HeaderText="Folio Almacen" DataTextField="FolioAlmacen" DataNavigateUrlFields="CveMovimiento" DataNavigateUrlFormatString="/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" ItemStyle-Width="7.5%" />
<asp:BoundField HeaderText="Almacen" DataField="Almacen" ItemStyle-Width="20%" />
<asp:BoundField HeaderText="Fecha Movto" DataField="FechaMovto" DataFormatString="{0:d}" ItemStyle-Width="7.5%" />
<asp:HyperLinkField HeaderText="Folio Compra" DataTextField="FolioCompra" DataNavigateUrlFields="CveCompra" DataNavigateUrlFormatString="/Compras/Compras.aspx?CveCompra={0}" ItemStyle-Width="7.5%" />
<asp:BoundField HeaderText="Observaciones" DataField="Observaciones" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="15%" />
<asp:BoundField HeaderText="Proveedor" DataField="RazonSocial" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="20%" />
<asp:BoundField HeaderText="SubTotal" DataField="SubTotal" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:BoundField HeaderText="IVA" DataField="IVA" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:BoundField HeaderText="Total" DataField="Total" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</div>
<br />
<br />
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,150 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepAlmacenCompras
Inherits ClsPaginas
#Region " PROPIEDADES"
Public Property DtDatos() As DataTable
Get
Return CType(ViewState("DtDatos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatos") = value
End Set
End Property
Private Property DtAlmacenCompra As DataTable
Get
Return DirectCast(ViewState("DtAlmacenCompra"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtAlmacenCompra") = 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
CargaDatos()
CargaPermisos()
End If
End Sub
#Region " CARGA VALORES INICIALES "
Private Sub CargaPermisos()
Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201)
GvDatos.Columns(6).Visible = TienePermisoImportes
GvDatos.Columns(7).Visible = TienePermisoImportes
GvDatos.Columns(8).Visible = TienePermisoImportes
If TienePermisoImportes Then
CabeceraAlmacen.Width = "35%"
CabeceraCompra.Width = "65%"
Else
CabeceraAlmacen.Width = "45%"
CabeceraCompra.Width = "55%"
End If
End Sub
Private Sub CargaDatos()
TxtFechaFin.Text = Now.ToShortDateString
TxtFechaInicio.Text = Now.FirstDayOfMonth.ToShortDateString
CargaCombos()
End Sub
Private Sub CargaCombos()
'Llena Almacen
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
DdlAlmacen.DataBind()
DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
#End Region
#Region " CONSULTAR - CARGA "
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
Consultar()
End Sub
Private Sub Consultar()
Dim ObjInventarios As New ClsInventarios
Dim FechaI As Date = If(TxtFechaInicio.Text = "" Or TxtFechaInicio.Text = "__/__/____", MinFecha, TxtFechaInicio.Text.ToDate)
Dim FechaF As Date = If(TxtFechaFin.Text = "" Or TxtFechaFin.Text = "__/__/____", MaxFecha, TxtFechaFin.Text.ToDate)
If ObjInventarios.RepAlmacenCompras(DdlAlmacen.SelectedValue.ToEntero, FechaI, FechaF, UsuarioActual.CveEmpresa) Then
DtDatos = ObjInventarios.DtResultados
DtAlmacenCompra = ObjInventarios.DtResultados
Else
DtDatos = Nothing
Alert("Ocurrió un error al obtener el reporte de almacen compras. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
ObjInventarios.Dispose()
If DtDatos IsNot Nothing AndAlso DtDatos.Rows.Count > 0 Then
GvDatos.DataSource = DtDatos
GvDatos.DataBind()
UpDatos.Update()
End If
End Sub
#End Region
#Region "PDF"
Private Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click
If DtAlmacenCompra IsNot Nothing Then
Dim StrFiltro As New StringBuilder
If DdlAlmacen.SelectedValue <> "-1" Then StrFiltro.AppendFormat("<b>Almacen</b>: {0}", DdlAlmacen.SelectedItem.Text)
If TxtFechaInicio.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Inicio </b>: {0}", TxtFechaInicio.Text.ToDate.ToShortDateString)
If TxtFechaFin.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Fin </b>: {0}", TxtFechaFin.Text.ToDate.ToShortDateString)
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", StrFiltro.ToString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepAlmacenCompras.rdlc", DtAlmacenCompra, params, String.Format("ReporteAlmacenCompras-{0}", Now.ToDateTime.ToShortDateString))
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
#End Region
#Region "EXCEL"
Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
GvDatos.ExportToExcel("Reporte de AlmacenCompras" & Now.ToShortDateString)
End Sub
#End Region
End Class

View File

@@ -0,0 +1,233 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepAlmacenPeriodo.aspx.vb" Inherits="Inventarios_RepAlmacenPeriodo" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.select2 .select2-selection__rendered {
line-height: 1;
color: #111;
}
.select2 .select2-selection--multiple {
box-sizing: border-box;
cursor: pointer;
display: block;
min-height: 20px;
user-select: none;
-webkit-user-select: none;
}
.select2-container--default .select2-selection--multiple .select2-selection__choice {
margin-top: 10px;
}
.select2-selection__rendered {
margin-top: 0px;
height: 25px;
}
.select2-selection {
margin-top: 0px;
height: 31px;
}
.select2-container--default.select2-container--focus .select2-selection--multiple {
border: none;
outline: 0;
}
#chartdiv {
width: 100%;
height: 800px;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte de Almacen Periodo
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<li>
<asp:HyperLink NavigateUrl="#" data-toggle="modal" data-target="#DivVerEn" ID="VerEn" runat="server"> <i class="fa fa-pencil"></i> Ver En</asp:HyperLink>
</li>
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkVerGrafica" OnClick="LnkVerGrafica_Click" runat="server">Ver Grafica</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
<li>
<asp:LinkButton ID="LnkPdf" OnClick="LnkPdf_Click" runat="server"><i class="fa fa-ad-pdf"></i> Genera PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkEXCEL" OnClick="LnkEXCEL_Click" runat="server"><i class="fa fa-ad-excel"></i> Genera Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" runat="server" Text="Consultar" OnClick="BtnConsultar_Click" class="btn btn-primary" />
<a href="javascript;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption">
<div class="row">
<div class="col-md-1 truncate" style="text-align: right!important">Fecha Corte:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaCorte" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="LnkFechaCorte" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaCorte" runat="server" TargetControlID="TxtFechaCorte" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CECorte" TargetControlID="TxtFechaCorte" PopupButtonID="LnkFechaCorte" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Tipo Almacen:</div>
<div class="col-md-1">
<asp:ListBox ID="DdlTipoAlmacen" SelectionMode="Multiple" CssClass="form-control ddlFiltros input-sm select2me Widthall" DataTextField="TipoAlmacen" DataValueField="CveTipoAlmacen" Style="width: 100%;" runat="server"></asp:ListBox>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Modalidad:</div>
<div class="col-md-1">
<asp:DropDownList ID="DdlModalidadFiltro" runat="server" CssClass="input-small input-sm select2me" Width="100%">
<asp:ListItem Text="Todas" Value="-1" Selected="True"> </asp:ListItem>
<asp:ListItem Text="Contable" Value="1"></asp:ListItem>
<asp:ListItem Text="No Contable" Value="0"></asp:ListItem>
</asp:DropDownList>
</div>
<asp:CheckBox ID="ChkInventariable" CssClass="md-checksd" runat="server" Text="Aplica Inventario" />
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row" style="margin-left: 0px; margin-top: 15px; margin-bottom: 5px; text-align: right; margin-right: 5px;" align="left">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GVAlmacen.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GVAlmacen.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:GridView ID="GVAlmacen" runat="server" AutoGenerateColumns="False" OnRowDataBound="GVAlmacen_RowDataBound" data-sort="true" EmptyDataText="No se encontraron Almacenes"
CssClass="table table-striped table-advance table-hover Widthall ScrollAD" GridLines="None" Width="99%" >
<Columns>
<asp:HyperLinkField HeaderText="Almacen" DataTextField="Almacen" DataNavigateUrlFields="CveAlmacen" DataNavigateUrlFormatString="/Inventarios/RepEntradasSalidas.aspx?CveAlmacen={0}" Target="_blank" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Enero" DataField="Enero" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Febrero" DataField="Febrero" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Marzo" DataField="Marzo" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Abril" DataField="Abril" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Mayo" DataField="Mayo" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Junio" DataField="Junio" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Julio" DataField="Julio" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Agosto" DataField="Agosto" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Septiembre" DataField="Septiembre" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Octubre" DataField="Octubre" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Noviembre" DataField="Noviembre" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Diciembre" DataField="Diciembre" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Total" DataField="Total" DataFormatString="{0:###,###,###,###.##}" ItemStyle-HorizontalAlign="Right" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="UpVerEn" UpdateMode="Conditional">
<ContentTemplate>
<div id="DivVerEn" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="Label2" runat="server" ClientIDMode="Static" Text="Ver En:"></asp:Label></h4>
</div>
<div class="modal-body">
<table style="width: 335px;" class="table table-striped table-advance table-hover">
<tbody>
<tr>
<td style="text-align: left;">
<asp:RadioButton ID="RblTotal" Checked="true" GroupName="GnVerEn" Text="Total" runat="server" /></td>
<td style="text-align: left;">
<asp:RadioButton ID="RblExistencia" GroupName="GnVerEn" Text="Existencia" runat="server" /></td>
</tr>
</tbody>
</table>
</div>
<div class="modal-footer">
<asp:Button ID="BtnVerEn" ClientIDMode="Static" runat="server" Text="Cargar" class="btn btn-success" OnClick="BtnVerEn_Click" />
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div id="DivModalGrafica" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog modal-lg" runat="server" ID="UpGrafica" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="LblTituloGrafica" runat="server" ClientIDMode="Static" Text="Almacenes"></asp:Label>
</h4>
</div>
<div class="modal-body">
<div id="chartdiv"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">Cerrar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
<script src="https://www.amcharts.com/lib/3/serial.js"></script>
<script src="https://www.amcharts.com/lib/3/plugins/export/export.min.js"></script>
<link rel="stylesheet" href="https://www.amcharts.com/lib/3/plugins/export/export.css" type="text/css" media="all" />
<script src="https://www.amcharts.com/lib/3/themes/light.js"></script>
<script type="text/javascript">
function CargaGraficaLineas(data, graph) {
var chart = AmCharts.makeChart("chartdiv", {
"type": "serial",
"theme": "light",
"legend": {
"useGraphSettings": true,
"valueWidth": 150
},
"dataProvider": data,
"startDuration": 0.5,
"graphs": graph,
"chartCursor": {
"cursorAlpha": 0,
"zoomable": false
},
"categoryField": "mes",
"categoryAxis": {
"gridPosition": "start",
"axisAlpha": 0,
"fillAlpha": 0.05,
"fillColor": "#000000",
"gridAlpha": 0,
"position": "top"
},
"export": {
"enabled": true,
"position": "bottom-right"
}
});
}
</script>
</asp:Content>

View File

@@ -0,0 +1,250 @@
Option Strict On
Option Explicit On
Imports Extensiones
Imports System.Data
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepAlmacenPeriodo
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property TmpDT As DataTable
Get
Return CType(ViewState("TmpDT"), DataTable)
End Get
Set(value As DataTable)
ViewState("TmpDT") = value
End Set
End Property
Private Property Ver As Integer
Get
Return CType(ViewState("VerEn"), Integer)
End Get
Set(value As Integer)
ViewState("VerEn") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
Ver = 1
CargaTipoAlmacen()
End If
End Sub
Private Sub CargaTipoAlmacen()
DdlTipoAlmacen.DataSource = GlobalDTTipoAlmacen(1)
DdlTipoAlmacen.DataBind()
DdlTipoAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub CargaDatos()
Dim objInv As New ClsInventarios
Dim FechaCorte As Date
FechaCorte = If(IsDate(TxtFechaCorte.Text.Trim()), TxtFechaCorte.Text.ToDate, MaxFecha)
Dim TipoAlmacen As String = If(DdlTipoAlmacen.GetSelectedValuesM = "", "-1", DdlTipoAlmacen.GetSelectedValuesM)
If RblTotal.Checked Then Ver = 1
If RblExistencia.Checked Then Ver = 2
If objInv.GetRepAlmacenesPeriodo(FechaCorte, UsuarioActual.CveEmpresa, TipoAlmacen, DdlModalidadFiltro.SelectedValue.ToEntero, ChkInventariable.Checked, Ver) Then
GVAlmacen.DataSource = objInv.DtResultados
TmpDT = objInv.DtResultados
End If
objInv.Dispose()
GVAlmacen.DataBind()
UpDatos.Update()
End Sub
Protected Sub GVAlmacen_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
If Not e.Row.DBCampo("CveAlmacen").ToEntero > 0 Then
e.Row.CssClass = "Totales"
End If
If TxtFechaCorte.Text <> "" Then
If TxtFechaCorte.Text.ToDate.Month < 12 Then
e.Row.Cells(12).Text = ""
End If
If TxtFechaCorte.Text.ToDate.Month < 11 Then
e.Row.Cells(11).Text = ""
End If
If TxtFechaCorte.Text.ToDate.Month < 10 Then
e.Row.Cells(10).Text = ""
End If
If TxtFechaCorte.Text.ToDate.Month < 9 Then
e.Row.Cells(9).Text = ""
End If
If TxtFechaCorte.Text.ToDate.Month < 8 Then
e.Row.Cells(8).Text = ""
End If
If TxtFechaCorte.Text.ToDate.Month < 7 Then
e.Row.Cells(7).Text = ""
End If
If TxtFechaCorte.Text.ToDate.Month < 6 Then
e.Row.Cells(6).Text = ""
End If
If TxtFechaCorte.Text.ToDate.Month < 5 Then
e.Row.Cells(5).Text = ""
End If
If TxtFechaCorte.Text.ToDate.Month < 4 Then
e.Row.Cells(4).Text = ""
End If
If TxtFechaCorte.Text.ToDate.Month < 3 Then
e.Row.Cells(3).Text = ""
End If
If TxtFechaCorte.Text.ToDate.Month < 2 Then
e.Row.Cells(2).Text = ""
End If
End If
End If
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
Protected Sub BtnVerEn_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
Private Sub GenerarPDF()
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim StrFiltro As New StringBuilder
If TxtFechaCorte.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Corte </b>: {0}", TxtFechaCorte.Text.ToDate.ToShortDateString)
If DdlTipoAlmacen.GetSelectedText <> "" Then StrFiltro.AppendFormat("&emsp;<b>Tipo Almacen</b>: {0}", DdlTipoAlmacen.GetSelectedText)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", StrFiltro.ToString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepAlmacenPeriodo.rdlc", TmpDT, params, "ReporteAlmacenPeriodo")
End Sub
Protected Sub LnkPdf_Click(sender As Object, e As EventArgs)
GenerarPDF()
End Sub
Protected Sub LnkEXCEL_Click(sender As Object, e As EventArgs)
GenerarPDF()
End Sub
Protected Sub LnkVerGrafica_Click(sender As Object, e As EventArgs)
If Not TmpDT IsNot Nothing AndAlso TmpDT.Rows.Count > 0 Then
Alert("No hay datos disponibles", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
RegistraScript("$('#DivModalGrafica').modal('show')")
CargaGrafica()
End Sub
Private Sub CargaGrafica()
Dim Dt As New DataTable()
Dt.Columns.Add("mes")
Dim Dt2 As New DataTable()
Dt2.Columns.Add("balloonText")
Dt2.Columns.Add("bullet")
Dt2.Columns.Add("title")
Dt2.Columns.Add("valueField")
Dt2.Columns.Add("fillAlphas")
Dim Cont As Integer = 1
For Each Dr As DataRow In TmpDT.Rows
If Dr("CveAlmacen").ToString.ToEntero > 0 Then
Dt.Columns.Add(Dr("Almacen").ToString)
Dim Row4 As DataRow = Nothing
Row4 = Dt2.NewRow()
Select Case Ver
Case 1
Row4("balloonText") = "Total [[category]]: [[value]]"
Case 2
Row4("balloonText") = "Existencia [[category]]: [[value]]"
End Select
Row4("bullet") = "round"
Row4("title") = Dr("Almacen").ToString
Row4("valueField") = Dr("Almacen").ToString
Row4("fillAlphas") = 0
Dt2.Rows.Add(Row4)
Cont += 1
End If
Next
Dim RowEnero As DataRow = Nothing
RowEnero = Dt.NewRow()
Dim RowFebrero As DataRow = Nothing
RowFebrero = Dt.NewRow()
Dim RowMarzo As DataRow = Nothing
RowMarzo = Dt.NewRow()
Dim RowAbril As DataRow = Nothing
RowAbril = Dt.NewRow()
Dim RowMayo As DataRow = Nothing
RowMayo = Dt.NewRow()
Dim RowJunio As DataRow = Nothing
RowJunio = Dt.NewRow()
Dim RowJulio As DataRow = Nothing
RowJulio = Dt.NewRow()
Dim RowAgosto As DataRow = Nothing
RowAgosto = Dt.NewRow()
Dim RowSeptiembre As DataRow = Nothing
RowSeptiembre = Dt.NewRow()
Dim RowOctubre As DataRow = Nothing
RowOctubre = Dt.NewRow()
Dim RowNoviembre As DataRow = Nothing
RowNoviembre = Dt.NewRow()
Dim RowDiciembre As DataRow = Nothing
RowDiciembre = Dt.NewRow()
For Each Dr As DataRow In TmpDT.Rows
If Dr("CveAlmacen").ToString.ToEntero > 0 Then
RowEnero(Dr("Almacen").ToString) = Dr("Enero").ToString
RowEnero("mes") = "Enero"
RowFebrero(Dr("Almacen").ToString) = Dr("Febrero").ToString
RowFebrero("mes") = "Febrero"
RowMarzo(Dr("Almacen").ToString) = Dr("Marzo").ToString
RowMarzo("mes") = "Marzo"
RowAbril(Dr("Almacen").ToString) = Dr("Abril").ToString
RowAbril("mes") = "Abril"
RowMayo(Dr("Almacen").ToString) = Dr("Mayo").ToString
RowMayo("mes") = "Mayo"
RowJunio(Dr("Almacen").ToString) = Dr("Junio").ToString
RowJunio("mes") = "Junio"
RowJulio(Dr("Almacen").ToString) = Dr("Julio").ToString
RowJulio("mes") = "Julio"
RowAgosto(Dr("Almacen").ToString) = Dr("Agosto").ToString
RowAgosto("mes") = "Agosto"
RowSeptiembre(Dr("Almacen").ToString) = Dr("Septiembre").ToString
RowSeptiembre("mes") = "Septiembre"
RowOctubre(Dr("Almacen").ToString) = Dr("Octubre").ToString
RowOctubre("mes") = "Octubre"
RowNoviembre(Dr("Almacen").ToString) = Dr("Noviembre").ToString
RowNoviembre("mes") = "Noviembre"
RowDiciembre(Dr("Almacen").ToString) = Dr("Diciembre").ToString
RowDiciembre("mes") = "Diciembre"
End If
Next
Dt.Rows.Add(RowEnero)
Dt.Rows.Add(RowFebrero)
Dt.Rows.Add(RowMarzo)
Dt.Rows.Add(RowAbril)
Dt.Rows.Add(RowMayo)
Dt.Rows.Add(RowJunio)
Dt.Rows.Add(RowJulio)
Dt.Rows.Add(RowAgosto)
Dt.Rows.Add(RowSeptiembre)
Dt.Rows.Add(RowOctubre)
Dt.Rows.Add(RowNoviembre)
Dt.Rows.Add(RowDiciembre)
RegistraScript($"CargaGraficaLineas({Dt.ToJson},{Dt2.ToJson.Replace($"{Chr(34)}True{Chr(34)}", "true").Replace($"{Chr(34)}False{Chr(34)}", "false")})", "44")
UpGrafica.Update()
End Sub
End Class

View File

@@ -0,0 +1,309 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepAnomalias.aspx.vb" Inherits="Inventarios_RepAnomalias" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.table-scrollable {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
.Widthall {
width: 100% !important;
}
.dataTables_scrollHeadInner {
width: 100% !important;
background-color: #dddddd;
padding-left: 0px !important;
}
.dataTables_scrollFoot {
display: none;
position: static;
}
.table-scrollable {
margin: 0px !important;
}
.dataTables_scroll {
margin-bottom: 0px;
}
.table.dataTable {
margin-top: 0px !important;
}
.dataTables_scrollBody table th {
padding: 0px !important;
padding-right: 4px !important;
padding-left: 4px !important;
}
.sinlink td a {
pointer-events: none;
cursor: default;
color: black;
font-size: small;
}
.white a {
color: white !important;
}
.Derecha {
text-align: right;
}
.Izquierda {
text-align: left;
}
.SinColor th {
background-color: white;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Reporte de Inventario Fisico
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkPDF" runat="server"><i class="fa fa-ad-pdf"></i> Imprimir PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="ImgExcel" runat="server"><i class="fa fa-ad-excel"></i> Exportar a Excel Productos que Faltan </asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="ImgExcel2" runat="server"><i class="fa fa-ad-excel"></i> Exporta a Excel Productos que Sobran</asp:LinkButton>
</li>
<%-- <li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Exporta Faltantes</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkExportaSobrantes" runat="server"><i class="fa fa-ad-excel"></i> Exporta Sobrantes</asp:LinkButton>
</li>--%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<li>
<asp:LinkButton ID="btnFin" runat="server" Text="Finalizar" data-toggle="confirmation" data-popout="true" data-original-title="Finalizar el inventario" data-btn-ok-label="si" />
</li>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnFin" />
</Triggers>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="col-md-12">
<div class="portlet smmallpadding light bordered infomov">
<div class="portlet-title">
<div class="tools">
<a href="javascript:;" class="expand"></a>
</div>
<div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Información del movimiento
</div>
</div>
<div class="portlet-body">
<table>
<tr>
<td class="col-md-5">
<label><b>Título: </b></label>
<asp:Label ID="lbTitulo" runat="server"></asp:Label>
</td>
<td class="col-md-5">
<label><b>SubProyecto: </b></label>
<asp:Label ID="lbSubProyecto" runat="server"></asp:Label>
</td>
<td class="col-md-5">
<label><b>Estatus: </b></label>
<asp:Label ID="lbEstatus" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td class="col-md-5">
<label><b>Fecha Inicio: </b></label>
<asp:Label ID="lbFechaI" runat="server"></asp:Label>
</td>
<td class="col-md-5">
<label><b>Fecha Fin: </b></label>
<asp:Label ID="lbFechaF" runat="server"></asp:Label>
</td>
</tr>
</table>
<table>
<tr>
<td class="col-md-12">
<label><b>Observaciones: </b></label>
<asp:Label ID="lbObservaciones" Width="600px" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td colspan="3">&nbsp;&nbsp;&nbsp;<label><b>Almacenes:</b></label>&nbsp;<asp:Label ID="LblAlmacenes" runat="server" Text=""></asp:Label>
</td>
</tr>
<tr>
<td colspan="3">&nbsp;&nbsp;&nbsp;<label><b>Clasificaciones:</b></label>&nbsp;<asp:Label ID="LblClasif" runat="server" Text="Todas"></asp:Label>
<br />
&nbsp;&nbsp;&nbsp;<label><b>Clasificaciones Excluidas:</b></label>&nbsp;<asp:Label ID="LblClasificacionesExcluidas" runat="server" Text=""></asp:Label>
</td>
</tr>
<tr>
<td colspan="3">&nbsp;&nbsp;&nbsp;<label><b>Productos:</b></label>&nbsp;<asp:Label ID="LblProductos" runat="server" Text="Todos"></asp:Label>
<br />
&nbsp;&nbsp;&nbsp;<label><b>Productos Excluidos:</b></label>&nbsp;<asp:Label ID="LblProductosExcluidos" runat="server" Text=""></asp:Label>
</td>
</tr>
</table>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div class="row">
<div class="col-md-12">
<label style="font-size: 16px"><b>Productos que Faltan</b></label>
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvF.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvF.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
</div>
<asp:UpdatePanel ID="UPAnomalias" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:GridView ID="GvF" data-sort="true" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False"
CssClass="table table-striped table-hover Widthall ScrollAD" Style="text-align: center;"
GridLines="None">
<Columns>
<asp:TemplateField HeaderText="#">
<ItemTemplate>
<asp:Label ID="LblC" runat="server" Font-Size="6pt"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Código Barras" DataField="CodigoBarras" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Código" DataField="Codigo" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="SerieLote" DataField="SerieLote" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Existencia" DataField="CantidadAlmacen" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Inv. Físico" DataField="CantidadInventarioFisico" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Diferencia" DataField="Diferencia" DataFormatString="{0:#,###.##}" ItemStyle-Font-Bold="true" />
<asp:BoundField HeaderText="Costo" DataField="Costo" DataFormatString="{0:#,##0.00}" ItemStyle-HorizontalAlign="Right" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div class="row">
<div class="col-md-12">
<label style="font-size: 16px"><b>Productos que Sobran</b></label>
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<input type="text" id="TxtBusqueda2" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvS.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvS.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
</div>
<asp:UpdatePanel ID="UpdateGvS" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:GridView ID="GvS" data-sort="true" runat="server" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False"
CssClass="table table-striped table-hover Widthall ScrollAD" Style="text-align: center;" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="#">
<ItemTemplate>
<asp:Label ID="LblC" runat="server" Font-Size="6pt"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Código Barras" DataField="CodigoBarras" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Código" DataField="Codigo" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="SerieLote" DataField="SerieLote" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Existencia" DataField="CantidadAlmacen" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Inv. Físico" DataField="CantidadInventarioFisico" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Diferencia" DataField="Diferencia" DataFormatString="{0:#,###.##}" ItemStyle-Font-Bold="true" />
<asp:BoundField HeaderText="Costo" DataField="Costo" ItemStyle-HorizontalAlign="Right" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<br />
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script src="/Scripts/DataTables.js"></script>
<script type="text/javascript">
function pageLoad(sender, e) {
$(document).ready(function () {
$('a[class="ajax__tab_tab"]').click(function () {
$.fn.dataTable.tables({ visible: true, api: true }).columns.adjust();
});
});
}
<%-- function FiltrarF(e) {
debugger;
if (e.keyCode == 13 || e.which == 13) {
return false;
} else {
<%= String.Format("FiltrarTabla('TxtBusqueda','{0}', 'SumFiltraF')", GvF.ClientID) %>;
}
}
function FiltrarS(e) {
debugger;
if (e.keyCode == 13 || e.which == 13) {
return false;
} else {
<%= String.Format("FiltrarTabla('TxtBusquedaS','{0}', 'SumFiltraS')", GvS.ClientID) %>;
}
}--%>
<%-- function OrdenarGVF() {
$('#<%=GvF.ClientID%>').DataTable({
retrieve: true,
scrollY: '300px',
scrollCollapse: true,
paging: false,
searching: false,
info: false,
ordering: true
});
$('#GvF').parent().parent().children().first().css("position", "static");
}
function OrdenarGVS() {
debugger;
$('#<%=GvS.ClientID%>').DataTable({
retrieve: true,
scrollY: '300px',
scrollCollapse: true,
paging: false,
searching: false,
info: false,
ordering: true
});
$('#GvS').parent().parent().children().first().css("position", "static");
}--%>
</script>
</asp:Content>

View File

@@ -0,0 +1,272 @@
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepAnomalias
Inherits ClsPaginas
#Region "Propiedades"
Public Property CveInventarioFisico As Integer
Get
Return CType(ViewState("CveInventarioFisico"), Integer)
End Get
Set(value As Integer)
ViewState("CveInventarioFisico") = value
End Set
End Property
Public Property CveAlmacen As Integer
Get
Return CType(ViewState("CveAlmacen"), Integer)
End Get
Set(value As Integer)
ViewState("CveAlmacen") = value
End Set
End Property
Public Property CveSubProyecto As Integer
Get
Return CType(ViewState("CveSubProyecto"), Integer)
End Get
Set(value As Integer)
ViewState("CveSubProyecto") = value
End Set
End Property
Public Property EsAvance As Boolean
Get
Return CType(ViewState("EsAvance"), Boolean)
End Get
Set(value As Boolean)
ViewState("EsAvance") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CveInventarioFisico = If(Request("CveInventarioFisico") IsNot Nothing AndAlso Request("CveInventarioFisico").ToEntero() > 0, Request("CveInventarioFisico").ToEntero(), -1).ToString
EsAvance = If(Request("EsAvance") IsNot Nothing, CBool(Request("EsAvance").ToEntero), False)
If CveInventarioFisico > 0 Then
CargaDatos(CveInventarioFisico)
End If
End If
End Sub
#Region " CARGA DATOS "
Private Sub CargaDatos(CveInventarioFisico As Integer)
Dim Inventario As New ClsInventarios
Dim dt As DataTable = Nothing
If Inventario.GetInventarioFisico(CveInventarioFisico, UsuarioActual.CveEmpresa, -1, -1) Then
lbTitulo.Text = Inventario.InventarioFisico
lbObservaciones.Text = Inventario.Observaciones
lbSubProyecto.Text = Inventario.SubProyectoInventario
lbEstatus.Text = Inventario.Estatus
lbFechaI.Text = Inventario.FechaI
lbFechaF.Text = Inventario.FechaF
CveSubProyecto = Inventario.CveSubProyectoInventario
If Inventario.Estatus = "Finalizado" Then
btnFin.Visible = False
End If
If EsAvance Then
If Inventario.GetInventarioFisicoResultadosAvance(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
dt = Inventario.DtResultados
End If
Else
If Inventario.GetInventarioFisicoResultados(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
dt = Inventario.DtResultados
End If
End If
If Inventario.GetInventarioFisicoDetallesAlmacen(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dta As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dta IsNot Nothing AndAlso dta.Rows.Count > 0 Then
For Each dr As DataRow In dta.Rows
str.AppendFormat("{0},", dr("almacen"))
Next
End If
LblAlmacenes.Text = str.ToString
End If
If Inventario.GetInventarioFisicoDetallesClasificacion(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dta As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dta IsNot Nothing AndAlso dta.Rows.Count > 0 Then
For Each dr As DataRow In dta.FiltraParametros("Incluye = 1").Rows
str.AppendFormat("{0},", dr("Clasificacion"))
Next
LblClasif.Text = str.ToString
str.Clear()
For Each dr As DataRow In dta.FiltraParametros("Incluye = 0").Rows
str.AppendFormat("{0},", dr("Clasificacion"))
Next
LblClasificacionesExcluidas.Text = str.ToString
End If
End If
If Inventario.GetInventarioFisicoDetallesProductosServicios(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
Dim dta As DataTable = Inventario.DtResultados
Dim str As New StringBuilder
If dta IsNot Nothing AndAlso dta.Rows.Count > 0 Then
For Each dr As DataRow In dta.FiltraParametros("Incluye = 1").Rows
str.AppendFormat("{0},", dr("CodigoPS"))
Next
LblProductos.Text = If(str.ToString <> "", str.ToString, "Todos")
str.Clear()
For Each dr As DataRow In dta.FiltraParametros("Incluye = 0").Rows
str.AppendFormat("{0},", dr("CodigoPS"))
Next
LblProductosExcluidos.Text = str.ToString
End If
End If
End If
Inventario.Dispose()
GvS.DataSource = dt.FiltraParametros("Diferencia < 0")
GvS.DataBind()
GvF.DataSource = dt.FiltraParametros("Diferencia > 0")
GvF.DataBind()
Dim Script = ""
If (GvF.Rows.Count > 0) Then
GvF.UseAccessibleHeader = True
GvF.HeaderRow.TableSection = TableRowSection.TableHeader
Script = "OrdenarGVF();"
End If
If (GvS.Rows.Count > 0) Then
GvS.UseAccessibleHeader = True
GvS.HeaderRow.TableSection = TableRowSection.TableHeader
Script += "OrdenarGVS();"
End If
RegistraScript(Script)
UPAnomalias.Update()
UpdateGvS.Update()
UPDatos.Update()
End Sub
#End Region
#Region " FINALIZAR "
Protected Sub btnFin_Click(sender As Object, e As EventArgs) Handles btnFin.Click
Dim Inventarios As New ClsInventarios
Inventarios.IniciaTransacSQL()
If Inventarios.AddInventarioFisicoResultados(CveInventarioFisico, UsuarioActual.CveUsuario) Then
If Inventarios.UpdateInventarioFisicoEstatus(CveInventarioFisico, 3, UsuarioActual.CveEmpresa) Then
Dim url As String = ("/Inventarios/RepAnomalias.aspx?CveInventarioFisico=" + CveInventarioFisico.ToString)
Alert("Ha finalizado el Inventario Físico. Sera enviado al reporte de anomalías", TipoMensaje.MsgInformacion, " window.location=""" + url + """")
Inventarios.Commit()
Else
Inventarios.RollBack()
End If
Else
Inventarios.RollBack()
End If
Inventarios.Dispose()
End Sub
#End Region
Protected Sub GV_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvF.RowDataBound, GvS.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("Costo") = "-1" Then
e.Row.Cells(8).Text = "0"
End If
e.Row.FCLabel("Lblc").Text = e.Row.RowIndex + 1
End If
End Sub
#Region " IMPRIMIR "
'Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
' GvF.ExportToExcel("IF_Faltantes_" & Now.ToShortDateString())
'End Sub
'Protected Sub LnkExportaSobrantes_Click(sender As Object, e As EventArgs) Handles LnkExportaSobrantes.Click
' GvS.ExportToExcel("IF_Sobrantes_" & Now.ToShortDateString())
'End Sub
Private Sub LnkPDF_Click(sender As Object, e As EventArgs) Handles LnkPDF.Click
ImprimirbytesPDF(Impimir, Formato:="PDF")
End Sub
Protected Function Impimir() As Byte()
Dim retorno As Byte() = Nothing
Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepAnomalias.rdlc", UsuarioActual.Empresa.Ruta))
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim params As New List(Of ReportParameter)
Dim lrds As New List(Of ReportDataSource)
Dim Inventario As New ClsInventarios
Dim dtS As DataTable = Nothing
Dim dtF As DataTable = Nothing
If Inventario.GetInventarioFisico(CveInventarioFisico, UsuarioActual.CveEmpresa, -1, -1) Then
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("Titulo", Inventario.InventarioFisico))
params.Add(New ReportParameter("Observaciones", Inventario.Observaciones))
params.Add(New ReportParameter("Almacen", LblAlmacenes.Text))
params.Add(New ReportParameter("Estatus", Inventario.Estatus))
params.Add(New ReportParameter("FechaInicio", Inventario.FechaI))
params.Add(New ReportParameter("FechaFin", Inventario.FechaF))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
If EsAvance Then
If Inventario.GetInventarioFisicoResultadosAvance(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
dtS = Inventario.DtResultados.FiltraParametros("Diferencia <0")
dtF = Inventario.DtResultados.FiltraParametros(" Diferencia > 0")
End If
Else
If Inventario.GetInventarioFisicoResultados(CveInventarioFisico, UsuarioActual.CveEmpresa) Then
dtS = Inventario.DtResultados.FiltraParametros("Diferencia <0")
dtF = Inventario.DtResultados.FiltraParametros(" Diferencia > 0")
End If
End If
Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = dtS}
lrds.Add(rds)
Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = dtF}
lrds.Add(rds2)
End If
retorno = StreamPDF("Empresas/Grales/Formatos/RepAnomalias.rdlc", lrds, params, "Reporte Anomalías", "PDF", MR:=Nothing)
Return retorno
End Function
Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
GvF.ExportToExcel("Reporte de Inventario Fisico - Productos que Faltan " & Now.ToShortDateString)
End Sub
Private Sub ImgExcel2_Click(sender As Object, e As EventArgs) Handles ImgExcel2.Click
GvS.ExportToExcel("Reporte de Inventario Fisico - Productos que Sobran " & Now.ToShortDateString)
End Sub
#End Region
End Class

View File

@@ -0,0 +1,116 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepApartados.aspx.vb" Inherits="Inventarios_RepApartados" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Apartados | Reporte de apartados - Detalle
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<li>
<asp:LinkButton ID="LnkPdf" runat="server"> <i class="fa fa-file-pdf-o" style="font-weight:bold;"></i> PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="ImgExcel" runat="server"><i class="fa fa-file-excel-o" style="font-weight:bold;"></i> Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<%--FILTROS--%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" OnClick="BtnConsultar_Click" runat="server" Text="Consultar" ValidationGroup="GrpCargarApartados" class="btn btn-primary" />
<a href="javascript:;" class="expand"></a>
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1" >Fecha Inicial:</div>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="margin-top: -5px; padding: 5px 0px;">
<asp:TextBox ID="txtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" Style="width: 80px;"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendario" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="txtFechaI" PopupButtonID="ImgCalendario" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoFfvFI" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="col-md-1" >Fecha Final:</div>
<div class="col-md-1" style="margin-left: -10px">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="margin-top: -5px; padding: 5px 0px;">
<asp:TextBox ID="txtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" Style="width: 80px;"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="txtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="txtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="col-md-1" >Sucursal:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlSubProyectos" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" CssClass="form-control input-sm select2me"></asp:DropDownList>
</div>
<div class="col-md-1" >Vendedor:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlVendedor" Width="150px" runat="server" DataTextField="Vendedor" DataValueField="CveVendedor" CssClass="form-control input-sm select2me"></asp:DropDownList>
</div>
</div>
</div>
</div>
<div class="portlet-body">
<div class="row">
<div class="col-md-1">Cliente</div>
<div class="col-md-2">
<ADS:Dropdownlost CssClassDdl="select2me" ID="DdlClientesWS" data-metodo="getcliente" runat="server" DataTextField="NombreComercial" DataValueField="CveCliente" CssStyle="width:150px;"></ADS:Dropdownlost>
</div>
<div class="col-md-1">PS:</div>
<div class="col-md-2">
<ADS:Dropdownlost ID="DdlPS" AutoPostBack="false" runat="server" DataTextField="PSCodigo" DataValueField="CvePS" CssClassDdl="select2me" CssStyle="width:200px;"></ADS:Dropdownlost>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="text-right">
<input type="text" id="TxtBusqueda2" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<%--GV DATOS--%>
<asp:UpdatePanel ID="UpDatos" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" data-sort="true" AutoGenerateColumns="False" EmptyDataText="No se encontraron datos con los filtros seleccionados" ToolTip="Listado de Movimientos" CssClass="Widthall table table-striped table-hover ScrollAD" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Producto" DataField="GPO"/>
<asp:BoundField HeaderText="Fecha" DataField="FechaMovto" DataFormatString="{0:d}"/>
<asp:BoundField HeaderText="Unidad" DataField="UnidadMedida"/>
<asp:BoundField HeaderText="SerieLote" DataField="SerieLote"/>
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Importe" DataField="Importe" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,232 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepApartados
Inherits ClsPaginas
#Region " PROPIEDADES "
Private Property DtApartados As DataTable
Get
Return DirectCast(ViewState("DtApartados"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtApartados") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
SetValues()
InicializaParam()
End If
End Sub
#Region " SET VALUES "
Private Sub SetValues()
DdlSubProyectos.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlSubProyectos.DataBind()
DdlSubProyectos.Items.Insert(0, New ListItem(" Todas ", "-1"))
If UsuarioActual.CveEmpresa = 119 Then
DdlClientesWS.setEsWebService(True)
Else
DdlClientesWS.setEsWebService(False)
DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1)
DdlClientesWS.DataBind()
DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1"))
End If
Dim DTVendedores As New DataTable
DTVendedores = GlobalDTVendedores(UsuarioActual.CveEmpresa, True)
DTVendedores.Merge(GlobalDTVendedores(UsuarioActual.CveEmpresa, False))
DdlVendedor.DataSource = DTVendedores
DdlVendedor.DataBind()
DdlVendedor.Items.Insert(0, New ListItem(" Todos ", "-1"))
'FUNCIONALIDAD 105
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlPS.setEsWebService(True)
Else
DdlPS.setEsWebService(False)
'FUNCIONALIDAD DE COMPUESTO
If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then
DdlPS.ddl.DataTextField = "PSCodigoCompuesto"
End If
DdlPS.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
DdlPS.DataBind()
End If
txtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString
txtFechaF.Text = Now.ToShortDateString
End Sub
#End Region
Private Sub InicializaParam()
Dim Anio, Mes, AnioMes, Fecha, FechaI, FechaF As String
Dim CveCliente, CveVendedor, CveSucursal, CvePS As String
Anio = If(Request("Anio") IsNot Nothing, Request("Anio").ToString, "-1").ToString
Mes = If(Request("Mes") IsNot Nothing, Request("Mes").ToString, "-1").ToString
AnioMes = If(Request("AnioMes") IsNot Nothing, Request("AnioMes").ToString, "-1").ToString
Fecha = If(Request("Fecha") IsNot Nothing, Request("Fecha").ToString, "-1").ToString
FechaI = If(Request("FechaI") IsNot Nothing, Request("FechaI").ToString, "-1").ToString
FechaF = If(Request("FechaF") IsNot Nothing, Request("FechaF").ToString, "-1").ToString
CveCliente = If(Request("CveCliente") IsNot Nothing AndAlso Request("CveCliente").ToEntero() > 0, Request("CveCliente").ToEntero(), -1).ToString
CveVendedor = If(Request("CveVendedor") IsNot Nothing AndAlso Request("CveVendedor").ToEntero() > 0, Request("CveVendedor").ToEntero(), -1).ToString
CveSucursal = If(Request("CveSubProyecto") IsNot Nothing AndAlso Request("CveSubProyecto").ToEntero() > 0, Request("CveSubProyecto").ToEntero(), -1).ToString
CvePS = If(Request("CvePS") IsNot Nothing AndAlso Request("CvePS").ToEntero() > 0, Request("CvePS").ToEntero(), -1).ToString
If FechaF <> "-1" Then
txtFechaF.Text = FechaF
End If
If FechaI <> "-1" Then
txtFechaI.Text = FechaI
End If
txtFechaI.Text = If(Anio <> "-1", String.Format("01/01/{0}", Anio), txtFechaI.Text)
txtFechaI.Text = If(Mes <> "-1", String.Format("01/{0}/0001", Mes), txtFechaI.Text)
Dim sMes As String
Dim sAnio As String = If(AnioMes <> "-1", AnioMes.Substring(0, 4), "")
If AnioMes.Trim.Length = 7 Then
sMes = AnioMes.Substring(5, 2).ToEntero.ToString("00")
Else
sMes = If(AnioMes <> "-1", AnioMes.Substring(5, 1).ToEntero.ToString("00"), "")
End If
txtFechaI.Text = If(AnioMes <> "-1", String.Format("01/{0}/{1}", sMes, sAnio), txtFechaI.Text)
If Anio <> "-1" Then
txtFechaF.Text = String.Format("31/12/{0}", Anio)
ElseIf Mes <> "-1" Then
txtFechaF.Text = String.Format("{0}/{1}/{2}", txtFechaI.Text.ToDate.LastDayOfMonth.Day, Mes, Now.Year)
ElseIf AnioMes <> "-1" Then
txtFechaF.Text = txtFechaI.Text.ToDate.LastDayOfMonth.ToShortDateString
End If
If Fecha <> "-1" Then
txtFechaI.Text = Fecha
txtFechaF.Text = Fecha
End If
If CveCliente <> "-1" Then
DdlClientesWS.SelectedValue = CveCliente
DdlClientesWS.SelectedText = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("NombreComercial", $"CveCliente ={CveCliente}")
Else
DdlClientesWS.SelectedValue = CveCliente
DdlClientesWS.SelectedText = "Todos"
End If
DdlVendedor.SelectedValueExist(CveVendedor)
DdlSubProyectos.SelectedValueExist(CveSucursal)
'DdlPS.ddl.SelectedValueExist(CvePS)
DdlPS.SelectedValue = CvePS
If CvePS <> "-1" Then
DdlPS.SelectedValue = CvePS
DdlPS.SelectedText = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS.ToEntero)(0)("PSCodigo").ToString
Else
DdlPS.SelectedValue = CvePS
DdlPS.SelectedText = "Todos"
End If
If Anio <> "-1" Or Mes <> "-1" Or AnioMes <> "-1" Or Fecha <> "-1" Or FechaI <> "-1" Or FechaF <> "-1" Or CveCliente <> "-1" Or CveVendedor <> "-1" Or CveSucursal <> "-1" Or CvePS <> "-1" Then
CargaDatos()
End If
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim CveAlmacenApartado = -1
If DdlSubProyectos.SelectedValue.ToEntero > 0 Then
CveAlmacenApartado = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen IN (9) And Estatus = 'Activo' And CveSubProyecto = {DdlSubProyectos.SelectedValue.ToEntero}").ToEntero
If CveAlmacenApartado <= 0 Then
Alert("No se encontro el almacen de Apartado de la sucursal seleccionada. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.ApartadosRep(CveAlmacenApartado, DdlClientesWS.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate) Then
GvDatos.DataSource = ObjInventarios.DtResultados
DtApartados = ObjInventarios.DtResultados
GvDatos.DataBind()
UpDatos.Update()
End If
ObjInventarios.Dispose()
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("IDGPO").ToString.ToEntero = 1 Then
e.Row.CssClass = "Totales"
End If
If e.Row.DBCampo("IDGPO").ToString.ToEntero = 2 Then
e.Row.CssClass = "SubTotales2"
End If
If e.Row.DBCampo("IDGPO").ToString.ToEntero = 3 Then
End If
End If
End Sub
#Region "PDF"
Private Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click
If DtApartados IsNot Nothing Then
Dim StrFiltro As New StringBuilder
If txtFechaI.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Inicio:</b>&nbsp;{0}", txtFechaI.Text)
If txtFechaF.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Fin:</b>&nbsp;{0}", txtFechaF.Text)
If DdlSubProyectos.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Sucursal:</b> {0}", DdlSubProyectos.SelectedItem.Text)
If DdlVendedor.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Vendedor:</b> {0}", DdlVendedor.SelectedItem.Text)
If DdlClientesWS.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Cliente:</b> {0}", DdlClientesWS.SelectedText)
If DdlPS.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Producto/Servicio:</b> {0}", DdlPS.SelectedText)
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", StrFiltro.ToString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepApartados.rdlc", DtApartados, params, String.Format("ReporteApartados-{0}", Now.ToDateTime.ToShortDateString))
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
GvDatos.ExportToExcel("Reporte de Apartados" & Now.ToShortDateString)
End Sub
#End Region
End Class

View File

@@ -0,0 +1,124 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepApartados2.aspx.vb" Inherits="Inventarios_RepApartados" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Apartados | Reporte de apartados
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<li>
<asp:LinkButton ID="LnkPdf" runat="server" Visible="true"> <i class="fa fa-file-pdf-o" style="font-weight:bold;"></i> PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="ImgExcel" runat="server" Visible="true"><i class="fa fa-file-excel-o" style="font-weight:bold;"></i> Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<%--FILTROS--%>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" OnClick="BtnConsultar_Click" runat="server" Text="Consultar" ValidationGroup="GrpCargarApartados" class="btn btn-primary" />
<a href="javascript:;" class="expand"></a>
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1" >Fecha Inicial:</div>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="margin-top: -5px; padding: 5px 0px;">
<asp:TextBox ID="txtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" Style="width: 80px;"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendario" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="txtFechaI" PopupButtonID="ImgCalendario" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoFfvFI" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="col-md-1" >Fecha Final:</div>
<div class="col-md-1" style="margin-left: -10px">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="margin-top: -5px; padding: 5px 0px;">
<asp:TextBox ID="txtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" Style="width: 80px;"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="txtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="txtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="col-md-1" >Sucursal:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlSubProyectos" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" CssClass="form-control input-sm select2me"></asp:DropDownList>
</div>
<div class="col-md-1" >Vendedor:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlVendedor" Width="150px" runat="server" DataTextField="Vendedor" DataValueField="CveVendedor" CssClass="form-control input-sm select2me"></asp:DropDownList>
</div>
</div>
</div>
</div>
<div class="portlet-body">
<div class="row">
<div class="col-md-1">Cliente</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlCliente" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="Nombre" DataValueField="CveCliente" CssClass="form-control input-sm select2me"></asp:DropDownList>
</div>
<div class="col-md-1">PS:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlPS" Width="150px" runat="server" DataTextField="PSCodigo" DataValueField="CvePS" CssClass="form-control input-sm select2me"></asp:DropDownList>
</div>
<div class="col-md-1">Grupo:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlGrupo" runat="server" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-small input-sm select2me"></asp:DropDownList>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="text-right">
<input type="text" id="TxtBusqueda2" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda2','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<%--GV DATOS--%>
<asp:UpdatePanel ID="UpDatos" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" data-sort="true" AutoGenerateColumns="False" EmptyDataText="No se encontraron datos con los filtros seleccionados" ToolTip="Listado de Movimientos" CssClass="Widthall table table-striped table-hover ScrollAD" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Grupo" ItemStyle-Width="60%" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Literal ID="LtlGrupo" runat="server" Text='<%# Eval("GPO") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--<asp:BoundField HeaderText="Producto" DataField="GPO" ItemStyle-Width="60%" />--%>
<%-- <asp:BoundField HeaderText="Unidad" DataField="UnidadMedida" ItemStyle-Width="10%" />
<asp:BoundField HeaderText="SerieLote" DataField="SerieLote" ItemStyle-Width="15%" />--%>
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,###.##}" ItemStyle-Width="5%" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Importe" DataField="Total" DataFormatString="{0:N2}" ItemStyle-Width="20%" ItemStyle-HorizontalAlign="Right" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,161 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepApartados
Inherits ClsPaginas
#Region " PROPIEDADES "
Private Property DtApartados As DataTable
Get
Return DirectCast(ViewState("DtApartados"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtApartados") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
SetValues()
End If
End Sub
#Region " SET VALUES "
Private Sub SetValues()
DdlSubProyectos.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlSubProyectos.DataBind()
DdlSubProyectos.Items.Insert(0, New ListItem(" Todas ", "-1"))
DdlCliente.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa)
DdlCliente.DataBind()
DdlCliente.Items.Insert(0, New ListItem(" Todos ", "-1"))
Dim DTVendedores As New DataTable
DTVendedores = GlobalDTVendedores(UsuarioActual.CveEmpresa, True)
DTVendedores.Merge(GlobalDTVendedores(UsuarioActual.CveEmpresa, False))
DdlVendedor.DataSource = DTVendedores
DdlVendedor.DataBind()
DdlVendedor.Items.Insert(0, New ListItem(" Todos ", "-1"))
DdlPS.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
DdlPS.DataBind()
DdlPS.Items.Insert(0, New ListItem(" Todos ", "-1"))
txtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString
txtFechaF.Text = Now.ToShortDateString
CargaGrupo()
End Sub
Private Sub CargaGrupo()
DdlGrupo.Items.Insert(0, New ListItem("Año", "1"))
DdlGrupo.Items.Insert(1, New ListItem("Mes", "2"))
DdlGrupo.Items.Insert(2, New ListItem("Año/Mes", "3"))
DdlGrupo.Items.Insert(3, New ListItem("Fecha", "4"))
DdlGrupo.Items.Insert(4, New ListItem("Cliente", "5"))
DdlGrupo.Items.Insert(5, New ListItem("Vendedor", "7"))
DdlGrupo.Items.Insert(6, New ListItem("Sucursal", "8"))
DdlGrupo.Items.Insert(7, New ListItem("Producto/Servicio", "9"))
DdlGrupo.DataBind()
DdlGrupo.SelectedValueExist("7")
End Sub
#End Region
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim CveAlmacenApartado = -1
If DdlSubProyectos.SelectedValue.ToEntero > 0 Then
CveAlmacenApartado = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen IN (9) And Estatus = 'Activo' And CveSubProyecto = {DdlSubProyectos.SelectedValue.ToEntero}").ToEntero
If CveAlmacenApartado <= 0 Then
Alert("No se encontro el almacen de Apartado de la sucursal seleccionada. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.ApartadosRep2(CveAlmacenApartado, DdlCliente.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, DdlGrupo.SelectedValue.ToEntero) Then
GvDatos.DataSource = ObjInventarios.DtResultados
DtApartados = ObjInventarios.DtResultados
GvDatos.DataBind()
UpDatos.Update()
End If
ObjInventarios.Dispose()
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim Css As String = "Texto"
If e.Row.DBCampo("GPO") = "Total Pesos" Or e.Row.DBCampo("GPO") = "Total Dólares" Then
e.Row.CssClass = "Totales"
End If
' PARA LIGA
Dim FechaI, FechaF As String
FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1")
FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1")
'LIGA A DETALLE
Dim Liga As String = $"/Inventarios/RepApartados.aspx?Anio={e.Row.DBCampo("Anio")}&Mes={e.Row.DBCampo("Mes")}&AnioMes={e.Row.DBCampo("AnioMes")}&Fecha={e.Row.DBCampo("Fecha")}&CveCliente={e.Row.DBCampo("CveCliente")}&CveVendedor={e.Row.DBCampo("CveVendedor")}&CveSubProyecto={e.Row.DBCampo("CveSubProyecto")}&CvePS={e.Row.DBCampo("CvePS")}&FechaI={FechaI}&FechaF={FechaF}"
e.Row.FCLiteral("LtlGrupo").Text = "<a class=""" & Css & """ href=""" & Liga & """>" & e.Row.FCLiteral("LtlGrupo").Text & "</a>"
End If
End Sub
#Region "IMPRESION"
Private Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click
GeneraImpresion()
End Sub
Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
GeneraImpresion("Excel")
End Sub
Private Sub GeneraImpresion(Optional Formato As String = "PDF")
If DtApartados IsNot Nothing Then
Dim StrFiltro As New StringBuilder
If DdlGrupo.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Agrupado por:</b> {0}", DdlGrupo.SelectedItem.Text)
If txtFechaI.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Inicio:</b>&nbsp;{0}", txtFechaI.Text)
If txtFechaF.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Fin:</b>&nbsp;{0}", txtFechaF.Text)
If DdlSubProyectos.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Sucursal:</b> {0}", DdlSubProyectos.SelectedItem.Text)
If DdlVendedor.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Vendedor:</b> {0}", DdlVendedor.SelectedItem.Text)
If DdlCliente.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Cliente:</b> {0}", DdlCliente.SelectedItem.Text)
If DdlPS.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Producto/Servicio:</b> {0}", DdlPS.SelectedItem.Text)
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", StrFiltro.ToString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepApartados2.rdlc", DtApartados, params, String.Format("ReporteApartados-{0}", Now.ToDateTime.ToShortDateString), Formato)
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
#End Region
End Class

View File

@@ -0,0 +1,90 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepConsignaciones.aspx.vb" Inherits="Inventarios_RepConsignaciones" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte Consignaciones
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<li>
<asp:LinkButton ID="LnkPdf" runat="server"> <i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="ImgExcel" runat="server"><i class="fa fa-ad-excel"></i> Exporta Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel runat="server" ID="UpEncabezado" UpdateMode="Conditional">
<ContentTemplate>
<asp:UpdatePanel ID="UpFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT" style="">
<div class="titlefiltros caption ">
<ul class="list-inline" style="font-size: 14px;">
<li>Proveedor:
<asp:DropDownList ID="DdlProveedor" CssClass="form-control input-sm select2me" runat="server" CausesValidation="true" DataTextField="RazonSocial" DataValueField="CveProveedor" Width="320px" ValidationGroup="GrpConsultar" AutoPostBack="true"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVProveedor" runat="server" ControlToValidate="DdlProveedor" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Proveedor''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpConsultar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOProveedor" runat="server" HighlightCssClass="vco" TargetControlID="RFVProveedor" Width="350px"></ajax:ValidatorCalloutExtender>
</li>
<li>Tipo Reporte:
<asp:DropDownList ID="DdlTipoReporte" runat="server" CssClass="form-control input-sm select2me" Style="width: 150px !important;" AutoPostBack="true">
<asp:ListItem Text="Por Facturar" Value="1" />
<asp:ListItem Text="Disponibles" Value="2" />
</asp:DropDownList>
</li>
<li>Remisiones:
<asp:DropDownList ID="DdlRemisiones" DataValueField="CveConsignacion" DataTextField="Consignacion" runat="server" CssClass="form-control input-sm select2me" Width="150px">
</asp:DropDownList>
</li>
</ul>
</div>
<div class="tools">
<asp:Button ID="BtnConsultar" runat="server" Text="Consultar" OnClick="BtnConsultar_Click" class="btn btn-primary" ValidationGroup="GrpConsultar" />
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="false" data-sort="true" EmptyDataText="No hay movimientos." ShowHeaderWhenEmpty="True" GridLines="None" CssClass="table table-advance Widthall ScrollAD">
<Columns>
<asp:BoundField HeaderText="Almacén" DataField="Almacen" Visible="false" ItemStyle-Width="30%" />
<%--ItemStyle-Width="75px"--%>
<asp:BoundField HeaderText="Código" DataField="Codigo" />
<%--ItemStyle-Width="75px"--%>
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="40%" />
<%--ItemStyle-Width="400px"--%>
<asp:BoundField HeaderText="Cantidad" DataField="Existencia" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<%--ItemStyle-Width="100px"--%>
<asp:BoundField HeaderText="U.M." DataField="UnidadMedida" />
<%--ItemStyle-Width="75px"--%>
<asp:BoundField HeaderText="P.U." DataField="PU" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<%--ItemStyle-Width="75px"--%>
<asp:BoundField Visible="false" HeaderText="Folio" DataField="SerieFolio" />
<%--ItemStyle-Width="75px"--%>
<asp:BoundField Visible="false" HeaderText="Fecha" DataField="Fecha" DataFormatString="{0:d}" />
<%--ItemStyle-Width="75px"--%>
<%-- <asp:TemplateField HeaderText="Cantidad">
<ItemTemplate>
<asp:Label Text="" ID="LbCantidad" runat="server" />
</ItemTemplate>
<ItemStyle Width="200px" HorizontalAlign="Right"/>
</asp:TemplateField>--%>
</Columns>
<RowStyle HorizontalAlign="Center" />
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,142 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepConsignaciones
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property DtDatos As DataTable
Get
Return CType(ViewState("DtDatos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtDatos") = value
End Set
End Property
Private Property DtConsignaciones As DataTable
Get
Return DirectCast(ViewState("DtConsignaciones"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtConsignaciones") = 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
CargaCombos()
End If
End Sub
#Region "CARGA DATOS"
Private Sub CargaCombos()
'Llena Proveedores
DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
DdlProveedor.DataBind()
DdlProveedor.Items.Insert(0, New ListItem("Seleccione el Proveedor", "-1"))
CargaDdlRemisiones()
End Sub
Private Sub CargaDdlRemisiones()
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.GetConsignacionesPendientes(DdlProveedor.SelectedValue.ToEntero, DdlTipoReporte.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) Then
DdlRemisiones.DataSource = ObjInventarios.DtResultados.FiltraParametros("", "", {"CveConsignacion", "Consignacion"})
End If
ObjInventarios.Dispose()
DdlRemisiones.DataBind()
DdlRemisiones.Items.Insert(0, New ListItem("Todas", "-1"))
End Sub
#End Region
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("CvePS") = "" Then
e.Row.CssClass = "SubTotales"
End If
'e.Row.FCLabel("LbCantidad").Text = If(DdlTipoReporte.SelectedValue = "1", e.Row.DBCampo("PorFacturar").FormatoNumero, e.Row.DBCampo("Disponibles").FormatoNumero)
End If
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
If DdlTipoReporte.SelectedValue = "2" Then
GvDatos.Columns(0).Visible = True
Else
GvDatos.Columns(0).Visible = False
End If
Dim ObjInventario As New ClsInventarios
If ObjInventario.RepConsignaciones(DdlProveedor.SelectedValue.ToEntero, DdlTipoReporte.SelectedValue.ToEntero, DdlRemisiones.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
DtDatos = ObjInventario.DtResultados
DtConsignaciones = ObjInventario.DtResultados
Else
DtDatos = Nothing
Alert("Ocurrió un error al consultar el reporte de consignaciones. Por favor vuelva a intentar.", TipoMensaje.MsgError)
End If
ObjInventario.Dispose()
If DtDatos IsNot Nothing Then
GvDatos.DataSource = DtDatos
GvDatos.DataBind()
End If
End Sub
Private Sub DdlProveedor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProveedor.SelectedIndexChanged
CargaDdlRemisiones()
UpFiltros.Update()
End Sub
Private Sub DdlTipoReporte_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoReporte.SelectedIndexChanged
CargaDdlRemisiones()
UpFiltros.Update()
End Sub
#Region "PDF"
Private Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click
If DtConsignaciones IsNot Nothing Then
Dim StrFiltro As New StringBuilder
If DdlProveedor.SelectedValue <> "-1" Then StrFiltro.AppendFormat("<b>Proveedor</b>: {0}", DdlProveedor.SelectedItem.Text)
If DdlTipoReporte.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Tipo Reporte</b>: {0}", DdlTipoReporte.SelectedItem.Text)
If DdlRemisiones.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Cliente</b>: {0}", DdlRemisiones.SelectedItem.Text)
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", StrFiltro.ToString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepConsignaciones.rdlc", DtConsignaciones, params, String.Format("ReporteConsignaciones-{0}", Now.ToDateTime.ToShortDateString))
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
#End Region
#Region "EXCEL"
Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
GvDatos.ExportToExcel("Reporte de Consignaciones" & Now.ToShortDateString)
End Sub
#End Region
End Class

View File

@@ -0,0 +1,170 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="RepConsumoInterno.aspx.cs" Inherits="Inventarios_RepConsumoInterno" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
<style>
.psagregar {
width: 100%;
text-align: center;
}
.psagregar > div.comboxes {
display: inline-block;
width: 90%;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte de Consumo Interno
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel ID="UpLnkAcciones" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkImprimirPDF" runat="server" OnClick="LnkImprimirPDF_Click"> <i class="fa fa-ad-pdf"></i><span style="padding: 10px">Generar PDF</span></asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkImprimirExcel" runat="server" OnClick="LnkImprimirExcel_Click"> <i class="fa fa-ad-excel"></i><span style="padding: 10px">Generar Excel</span></asp:LinkButton>
</li>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="LnkImprimirPDF" />
<asp:PostBackTrigger ControlID="LnkImprimirExcel" />
</Triggers>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<%-- FILTROS --%>
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="PFiltros" class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" runat="server" Text="Consultar" OnClick="BtnConsultar_Click" class="btn btn-primary" ValidationGroup="Valida" />
<a href="javascript:;" class="expand"></a>
</div>
<div class="titlefiltros caption">
<div class="row" style="margin-left: 10px;">
<label class="col-md-1 " id="LblDdlAlmacen" runat="server" style="margin-top: 5px;">Almacén:</label>
<div class="col-md-2" id="DivDdlSucursal" runat="server">
<asp:DropDownList ID="DdlAlmacen" runat="server" Width="100%" DataTextField="Almacen" DataValueField="CveAlmacen" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-sm select2me">
</asp:DropDownList>
</div>
<label class="col-md-1 " style="margin-top: 5px;">Fecha Inicio:</label>
<div class="col-md-2">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 138px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendarioI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="TxtFechaI" PopupButtonID="ImgCalendarioI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="TxtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="rfvFechaI" runat="server" ControlToValidate="TxtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="vcoFfvFI" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<label class="col-md-1 " style="margin-top: 5px;">Fecha Fin:</label>
<div class="col-md-2">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 138px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="TxtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="TxtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="TxtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<asp:CompareValidator ID="CVFechas" runat="server" ForeColor="#a94442" ControlToCompare="TxtFechaI" ControlToValidate="TxtFechaF" Type="Date" Operator="GreaterThan" Display="None" ErrorMessage="<b><span style='text-decoration: underline;'>ERROR:</span></b><br /><b>''Fecha R.F.''</b> debe ser mayor a Fecha R.I." ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCE2" runat="server" HighlightCssClass="vco" TargetControlID="CVFechas" Width="270px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
<div class="portlet-body" style="display: none;">
<div class="row" style="margin-left: 10px; margin-top: 10px;">
<label class="col-md-1 " style=" margin-top: 5px;">Personal:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlPersonal" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="CodigoNombreCompleto" DataValueField="CvePersonal" Class="table-group-action-input form-control input-inline input-small input-sm select2me"></asp:DropDownList>
</div>
<label class="col-md-1" style=" margin-top: 5px;">Clasificación</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlClasificacion" AutoPostBack="true" OnSelectedIndexChanged="DdlClasificacion_SelectedIndexChanged" Width="100%" runat="server" CssClass="select2me" AppendDataBoundItems="true" DataTextField="Clasificacion" DataValueField="CveClasificacion">
<asp:ListItem Selected="True" Text="Todas" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1" style="margin-top: 5px;">P. S.</label>
<div class="col-md-2">
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width: 100%;" CssClass="DdlPS" CssClassDdl="select2me " DataTextField="PSCodigo" DataValueField="CvePS" />
</div>
<label class="col-md-1 " style=" margin-top: 5px;">A.F.:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlAF" runat="server" AppendDataBoundItems="true" DataTextField="CodDesc" DataValueField="CveActivoFijo" Width="100%" Class="table-group-action-input form-control input-inline input-small input-sm select2me"></asp:DropDownList>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%-- GV DATOS --%>
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row" style="margin-left: 0px; margin-top: 15px; margin-bottom: 5px; text-align: right; margin-right: 5px;" align="left">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GVDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GVDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:GridView ID="GVDatos" runat="server" DataKeyNames="CveMovimiento, Folio, FechaMovto, CveAlmacen ,Almacen, CvePersonal, NombreCompleto, CvePS, CodigoPS, PS, Cantidad, CodPS, CveActivoFijo, CodigoAF, DescripcionAF, CodDescAF, Observaciones"
AutoGenerateColumns="False" EmptyDataText="No se encontraron Registros con los filtros especificados" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn ScrollAD" data-sort="true" GridLines="None"
EmptyDataRowStyle-HorizontalAlign="Center" OnRowDataBound="GVDatos_RowDataBound">
<Columns>
<asp:HyperLinkField DataTextField="Folio" HeaderText="Folio" DataNavigateUrlFields="CveMovimiento" DataNavigateUrlFormatString="/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" Target="_blank" ItemStyle-Width="5%" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="FechaMovto" HeaderText="Fecha" ItemStyle-Width="5%" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField DataField="Almacen" HeaderText="Almacén" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="CodPS" HeaderText="Producto" ItemStyle-Width="30%" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Cantidad" HeaderText="Cantidad" ItemStyle-Width="5%" DataFormatString="{0:N0}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField DataField="Observaciones" HeaderText="Observaciones" ItemStyle-Width="20%" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="NombreCompleto" HeaderText="Personal" ItemStyle-Width="20%" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="CodigoAF" HeaderText="Activo Fijo" ItemStyle-Width="5%" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="PU" Visible ="false" HeaderText="Importe" DataFormatString="{0:N2}" ItemStyle-Width="5%" ItemStyle-HorizontalAlign="Right" />
<%-- <asp:TemplateField HeaderText="Folio" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="7%">
<ItemTemplate>
<asp:HyperLink runat="server" ID="HLFolio" Text='<%# Eval("Folio")%>' ToolTip='<%# "Ir a " + Eval("TipoAgrupador")%>' Target="_blank" />
</ItemTemplate>
</asp:TemplateField>--%>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,233 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using Microsoft.Reporting.WebForms;
using System.IO;
public partial class Inventarios_RepConsumoInterno : ClsPaginas
{
#region PROPIEDADES
private DataTable DTDatos
{
get
{
return (DataTable)ViewState["DTDatos"];
}
set
{
ViewState["DTDatos"] = value;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CargaFiltros();
}
}
#region CARGA DATOS
protected void BtnConsultar_Click(object sender, EventArgs e)
{
CargaDatos();
}
protected void CargaDatos()
{
ClsInventarios ObjGeneral = new ClsInventarios();
int CveEmpresa = UsuarioActual.CveEmpresa;
int CveAlmacen = DdlAlmacen.SelectedValue.ToEntero();
int CvePersonal = DdlPersonal.SelectedValue.ToEntero();
int CveAF = DdlAF.SelectedValue.ToEntero();
int CvePS = DdlPS.SelectedValue.ToEntero();
String FechaInicio = TxtFechaI.Text == "" ? "-1" : TxtFechaI.Text;
String FechaFin = TxtFechaF.Text == "" ? "-1" : TxtFechaF.Text;
if (ObjGeneral.GetConsumoInterno(CveEmpresa, CveAlmacen, CvePersonal, CveAF, CvePS, FechaInicio, FechaFin))
{
DTDatos = ObjGeneral.DtResultados;
GVDatos.DataSource = DTDatos;
}
ObjGeneral.Dispose();
bool TienePermisoImportes = UsuarioActual.TienePermisoProceso(201);
GVDatos.Columns[8].Visible = TienePermisoImportes; // costo
GVDatos.DataBind();
UPDatos.Update();
}
protected void DdlClasificacion_SelectedIndexChanged(object sender, EventArgs e)
{
if (UsuarioActual.Empresa.Funcionalidad(105) == "1")
{
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue);
DdlPS.SelectedText = "";
DdlPS.SelectedValue = "-1";
} else {
DdlPS.ddl.Items.Clear();
DdlPS.ddl.DataSource = get_GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, DdlClasificacion.SelectedValue.ToEntero());
DdlPS.ddl.DataBind();
DdlPS.ddl.Items.Insert(0, new ListItem("Seleccione el Producto", "-1"));
}
}
protected void GVDatos_RowDataBound(object sender, GridViewRowEventArgs e)
{
}
#endregion
#region INICIALIZA FILTROS
protected void CargaFiltros()
{
CargaAlmacen();
CargaFechas();
CargaPersonal();
CargaProductos();
CargaAF();
}
protected void CargaAlmacen()
{
//Carga Almacen
DdlAlmacen.DataSource = get_GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1);//.FiltraParametros("CveTipoAlmacen NOT IN (9,11)");
DdlAlmacen.Items.Insert(0, new ListItem("Todos", "-1"));
DdlAlmacen.SelectedValue = "-1";
DdlAlmacen.DataBind();
}
protected void CargaPersonal()
{
//Carga Personal
DdlPersonal.DataSource = get_GlobalDTRHPersonal(UsuarioActual.CveEmpresa);
DdlPersonal.Items.Insert(0, new ListItem("Todos", "-1"));
DdlPersonal.SelectedValue = "-1";
DdlPersonal.DataBind();
}
protected void CargaProductos()
{
//Carga Clasificaciones PS
DdlClasificacion.DataSource = get_GlobalDTClasificaciones(UsuarioActual.CveEmpresa);
DdlClasificacion.DataBind();
// Carga PS
DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) == "1");
if (UsuarioActual.Empresa.Funcionalidad(105) == "1")
{
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue);
DdlPS.SelectedText = "";
DdlPS.SelectedValue = "-1";
}
else
{
DdlPS.ddl.Items.Clear();
DdlPS.ddl.DataSource = get_GlobalDTPSSimplificado(UsuarioActual.CveEmpresa);
DdlPS.ddl.DataBind();
DdlPS.ddl.Items.Insert(0, new ListItem("Todos", "-1"));
}
}
protected void CargaAF()
{
// Carga AF
DdlAF.DataSource = get_GlobalDTActivoFijos(UsuarioActual.CveEmpresa);
DdlAF.Items.Insert(0, new ListItem("Todos", "-1"));
DdlAF.SelectedValue = "-1";
DdlAF.DataBind();
}
protected void CargaFechas()
{
TxtFechaI.Text = DateTime.Now.AddDays(-30).ToShortDateString();
TxtFechaF.Text = DateTime.Now.ToShortDateString();
}
#endregion
#region IMPRESION REPORTE
protected void ImprimiReporte(string Formato = "PDF")
{
string Almacen = DdlAlmacen.SelectedItem.Text;
string Clasificacion = DdlClasificacion.SelectedItem.Text;
string PS = DdlPS.SelectedText == "" ? "Todos" : DdlPS.SelectedText;
string Personal = DdlPersonal.SelectedItem.Text;
string AF = DdlAF.SelectedItem.Text;
string FechaInicio = DateTime.Parse(TxtFechaI.Text).ToShortDateString();
string FechaFin = DateTime.Parse(TxtFechaF.Text).ToShortDateString();
string Ruta = string.Format("{0}Empresas/{1}/", AppDomain.CurrentDomain.BaseDirectory, UsuarioActual.CveEmpresa);
string RutaPDF = string.Format("{0}/Formatos/RepConsumoInterno.rdlc", Ruta);
if (!File.Exists(RutaPDF))
{
RutaPDF = "Empresas/Grales/Formatos/RepConsumoInterno.rdlc";
}
var logouri = string.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa);
System.IO.FileInfo Imagen = new System.IO.FileInfo(string.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta));
List<ReportParameter> @params = new List<ReportParameter>();
@params.Add(new ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa));
@params.Add(new ReportParameter("FechaInicio", FechaInicio));
@params.Add(new ReportParameter("FechaFin", FechaFin));
@params.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre));
@params.Add(new ReportParameter("Almacen", Almacen));
@params.Add(new ReportParameter("Clasificacion", Clasificacion));
@params.Add(new ReportParameter("PS", PS));
@params.Add(new ReportParameter("Personal", Personal));
@params.Add(new ReportParameter("AF", AF));
@params.Add(new ReportParameter("FechaImpresion", DateTime.Now.ToShortDateString()));
if (Imagen.Exists)
{
@params.Add(new ReportParameter("LogoPath", logouri));
}
else
{
@params.Add(new ReportParameter("LogoPath", ""));
}
ImprimirPDF(RutaPDF, DTDatos, @params, "RepConsumoInterno " + DateTime.Now.ToString("yyyyMMddhhmmss"), Formato);
}
protected void LnkImprimirPDF_Click(object sender, EventArgs e)
{
ImprimiReporte();
}
protected void LnkImprimirExcel_Click(object sender, EventArgs e)
{
ImprimiReporte("Excel");
}
#endregion
}

View File

@@ -0,0 +1,492 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepEntradasSalidas.aspx.vb" Inherits="Inventarios_ReporteEntradasSalidas" %>
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkImprimir" runat="server"><i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Generar Excel</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkFormatoInventario" runat="server" Visible="false"><i class="fa fa-ad-excel"></i> Generar Formato Inventario</asp:LinkButton>
</li>
<li>
<asp:HyperLink NavigateUrl="#" data-toggle="modal" data-target="#DivPersonalizar" ID="ImgPersonalizar" runat="server"> <i class="fa fa-pencil"></i> Personalizar Columnas</asp:HyperLink>
</li>
<li>
<asp:LinkButton ID="Lnkcompuxlsinventarios" OnClick="Lnkcompuxlsinventarios_Click" runat="server"><i class="fa fa-ad-excel"></i> Generar Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="Css" runat="Server">
<style>
.dataTables_scrollHead{
background-color:#95A5A6;
color:white;
}
.table-scrollable{
margin-top:0px!important;
margin-bottom:0px!important;
}
.dataTables_scroll{
padding-top:0px;
}
.Totales a{
color: white;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="E" runat="Server">
Reporte de entradas y salidas
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="C" runat="Server">
<%--Tabla con los campos para filtrar--%>
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px; position: relative;">
<div class="tools">
<asp:Button ID="btConsultar" CssClass="btn btn-primary" runat="server" ValidationGroup="GrpConsultar" Text="Consultar" /></td>
<a href="javascript:;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption magindate">
<div class="row">
<div class="col-md-1 truncate">Almacén</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlAlmacen" CssClass="form-control input-sm select2me" runat="server" Width="100%" DataValueField="CveAlmacen" DataTextField="Almacen"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Fecha Inicio</div>
<div class="col-md-2 col-sm-2">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate">Fecha Fin</div>
<div class="col-md-2 col-sm-2">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
</div>
</div>
<div class="portlet-body magindate" <%= IIf(chkexpand.Checked = True, "", "style=""display:none;""")%>>
<div class="row">
<div class="col-md-1 truncate">Tipo de movimiento </div>
<div class="col-md-2">
<asp:DropDownList ID="DdlTipoMovimiento" CssClass="form-control input-sm select2me" runat="server" Width="100%" DataTextField="Concepto" DataValueField="CveConcepto"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Moneda</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlMoneda" CssClass="form-control input-sm select2me" runat="server" Width="100%" DataTextField="Moneda" DataValueField="CveMoneda"></asp:DropDownList>
</div>
<div class="col-md-1 truncate" style="width:150px !important">Solo con Movimientos</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlMovs" CssClass="form-control input-sm select2me" runat="server" Width="250" DataValueField="CveAlmacen" DataTextField="Almacen">
<asp:ListItem Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Con Movimientos" Value="2"></asp:ListItem>
<asp:ListItem Text="Sin Movimientos" Value="5"></asp:ListItem>
<asp:ListItem Text="Con Existencias" Value="3"></asp:ListItem>
<asp:ListItem Text="Sin Existencias" Value="4"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class="row">
<div class="col-md-1 truncate">Proveedor</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlProveedor" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CveProveedor" DataTextField="RazonSocial"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Clasificación</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlClasificacion" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlClasificacion_SelectedIndexChanged" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CveClasificacion" DataTextField="Clasificacion"></asp:DropDownList>
</div>
<div class="col-md-1 truncate" style="width:50px !important" >PS</div>
<div class="col-md-2">
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width: 100%;" CssClass="DdlPS" CssClassDdl="select2me " DataTextField="PSCodigo" DataValueField="CvePS" />
<%--<asp:DropDownList ID="DdlPS" CssClass="form-control input-sm select2me" runat="server" Width="100%" DataTextField="PS" DataValueField="CvePS"></asp:DropDownList>--%>
</div>
<div runat="Server" id="DivMarca">
<div class="col-md-1 truncate" style="width:40px !important" >Marca</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlMarca" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CveMarca" DataTextField="Marca"></asp:DropDownList>
</div>
</div>
</div>
<div class="row">
<div class="col-md-1 truncate">Personal</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlPersonal" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CvePersonal" DataTextField="CodigoNombreCompleto"></asp:DropDownList>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Tipo Almacen:</div>
<div class="col-md-2">
<asp:ListBox ID="DdlTipoAlmacen" SelectionMode="Multiple" CssClass="form-control ddlFiltros input-sm select2me Widthall" DataTextField="TipoAlmacen" DataValueField="CveTipoAlmacen" Style="width: 100%;" runat="server"></asp:ListBox>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Modalidad:</div>
<div class="col-md-1">
<asp:DropDownList ID="DdlModalidadFiltro" runat="server" CssClass="input-small input-sm select2me" Width="100%">
<asp:ListItem Text="Todas" Value="-1" Selected="True"> </asp:ListItem>
<asp:ListItem Text="Contable" Value="1"></asp:ListItem>
<asp:ListItem Text="Solo Existencia" Value="0"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1" id="DivClaisficacionLabel" runat="server">Clasificación 2:</div>
<div class="col-md-2 " >
<asp:DropDownList ID="DdlClasificacion2" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveClasificacion" DataTextField="Clasificacion" Width="100%">
</asp:DropDownList>
</div>
</div>
<div id="DivFamiliaSubFamilia" style="display:none" class="row" runat="server" visible="false">
<div class="col-md-1 truncate">Familia</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlFamilia" CssClass="form-control input-sm select2me" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlFamilia_SelectedIndexChanged" Width="100%" DataTextField="Categoria" DataValueField="CveCategoria"></asp:DropDownList>
</div>
<div class="col-md-1 truncate" >SubFamilia</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlSubFamilia" CssClass="form-control input-sm select2me" runat="server" Width="100%" DataTextField="Clasificacion" DataValueField="CveClasificacion"></asp:DropDownList>
</div>
</div>
<div class="row">
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div class="row col-md-12" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<br />
<asp:UpdatePanel ID="UpEncabezado" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="dvCa" style="width:100%;visibility:hidden;top:40px">
<table id="dTable" class="correcto table Widthall "><tr>
<td id="dvArt" runat="server" class="dataTables_scrollHead" style="text-align:center!important; font-size:14px;width:32.5%;"><b>Producto</b></td>
<td id="dvCan" runat="server" class="dataTables_scrollHead" style="text-align:center!important; font-size:14px; border-right-color: white!important;border-left-color: white!important;width:30%;border-style: solid;"><b>Cantidad</b></td>
<td id="dvImp" runat="server" class="dataTables_scrollHead" style="text-align:center!important;width: 37.5%;font-size:14px;"><b>Importe</b></td>
</tr></table>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UPPMov" runat="server" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvM" Width="100%" runat="server" data-sort="false" GridLines="None" CssClass="table table-smallpadding table-striped table-hover Widthall ScrollAD" ShowHeader="True" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False">
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="CvePS,CveMoneda,CveProveedor,CveConcepto,FechaI,FechaF,CveAlmacen,CvePersonal" DataNavigateUrlFormatString="~/Inventarios/RepExistenciasCostos.aspx?CvePS={0}&CveMoneda={1}&CveProveedor={2}&CveConcepto={3}&FechaI={4}&FechaF={5}&CveAlmacen={6}&CvePersonal={7}" Target="_blank" ItemStyle-Width="10%" HeaderText="Codigo" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataTextField="Codigo" />
<asp:HyperLinkField DataNavigateUrlFields="CvePS,CveMoneda,CveProveedor,CveConcepto,FechaI,FechaF,CveAlmacen,CvePersonal" DataNavigateUrlFormatString="~/Inventarios/RepExistenciasCostos.aspx?CvePS={0}&CveMoneda={1}&CveProveedor={2}&CveConcepto={3}&FechaI={4}&FechaF={5}&CveAlmacen={6}&CvePersonal={7}" Target="_blank" ItemStyle-Width="10%" HeaderText="codigo2" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" Visible="False" DataTextField="Codigo2" />
<asp:BoundField Visible="false" DataField="CodigoBarras" HeaderText="CodigoBarras" ItemStyle-Width="10%" />
<asp:BoundField Visible="false" DataField="Clasificacion" HeaderText="Clasificación 2" ItemStyle-Width="7%" />
<asp:HyperLinkField DataNavigateUrlFields="CvePS,CveMoneda,CveProveedor,CveConcepto,FechaI,FechaF,CveAlmacen,CvePersonal" DataNavigateUrlFormatString="~/Inventarios/RepExistenciasCostos.aspx?CvePS={0}&CveMoneda={1}&CveProveedor={2}&CveConcepto={3}&FechaI={4}&FechaF={5}&CveAlmacen={6}&CvePersonal={7}" Target="_blank" ItemStyle-Width="22.5%" HeaderText="Descripción" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataTextField="PS" />
<asp:BoundField Visible="false" DataField="SeccionAlmacen" HeaderText="Sección Almacén" ItemStyle-Width="10%" />
<asp:TemplateField ItemStyle-HorizontalAlign="Right" HeaderText="Exist. Inicial" >
<ItemTemplate>
<asp:Label ID="lbSaldoI" runat="server" Text='<%# If(Eval("SaldoIniCant").ToString() = "0", "-", Eval("SaldoIniCant", "{0:#,###.######}")) %>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="7.5%" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right" HeaderText="Entradas">
<ItemTemplate>
<asp:Label ID="lbEntradasCant" runat="server" Text='<%#If(Eval("EntradaCant").ToString() = "0", "-", Eval("EntradaCant", "{0:#,###.######}")) %>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="7.5%" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right" HeaderText="Salidas">
<ItemTemplate>
<asp:Label ID="lbSalidasCant" runat="server" Text='<%# If(Eval("SalidaCant").ToString() = "0", "-", Eval("SalidaCant", "{0:#,###.######}")) %>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="7.5%" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right" HeaderText="Exist. Final">
<ItemTemplate>
<asp:Label ID="lbSaldoF" runat="server" Text='<%# If(Eval("SaldoFCant").ToString() = "0", "-", Eval("SaldoFCant", "{0:#,###.######}")) %>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="7.5%" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right" HeaderText="Saldo Inicial">
<ItemTemplate>
<asp:Label ID="lbSaldoI2" runat="server" Text='<%# If(Eval("SaldoIniImp").ToString() = "0", "-", Eval("SaldoIniImp", "{0:N2}")) %>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="7.5%" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right" HeaderText="Entradas">
<ItemTemplate>
<asp:Label ID="lbEntradaImp" runat="server" Text='<%# If(Eval("EntradaImp").ToString() = "0", "-", Eval("EntradaImp", "{0:N2}")) %>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="7.5%" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right" HeaderText="Salidas">
<ItemTemplate>
<asp:Label ID="lbSalidaImp" runat="server" Text='<%# If(Eval("SalidaImp").ToString() = "0", "-", Eval("SalidaImp", "{0:N2}")) %>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="7.5%" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right" HeaderText="Saldo Final">
<ItemTemplate>
<asp:Label ID="lbSaldoF2" runat="server" Text='<%# If(Eval("SaldoFImp").ToString() = "0", "-", Eval("SaldoFImp", "{0:N2}")) %>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="7.5%" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right" HeaderText="Ultimo Costo">
<ItemTemplate>
<asp:Label ID="lbUltimoCosto" runat="server" Text='<%# If(Eval("UltimoCosto").ToString() = "0", "-", Eval("UltimoCosto", "{0:N2}")) %>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="7.5%" HorizontalAlign="Right"></ItemStyle>
</asp:TemplateField>
<asp:BoundField Visible="false" DataField="FechaCompra" HeaderText="Última Compra" DataFormatString="{0:d}" ItemStyle-Width="7%" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField Visible="false" DataField="FechaVenta" HeaderText="Última Venta" DataFormatString="{0:d}" ItemStyle-Width="7%" ItemStyle-HorizontalAlign="Right"/>
</Columns>
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btConsultar" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpBitacora" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-12">
<div class="portlet light bordered xspadding">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Historial de Eliminación</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
</div>
<div class="portlet-body">
<div class="row">
<div class="col-md-12" align="right">
<asp:Button ID="BtnMostrar" runat="server" Text="Mostrar" class="btn btn-primary" />
<asp:Button ID="BtnOcultar" Visible="false" runat="server" Text="Ocultar" class="btn btn-primary" />
</div>
</div>
<br />
<asp:GridView ID="GvBitacora" Visible="false" runat="server" GridLines="None" Width="100%" CssClass="table table-striped table-advance table-hover Widthall ADSCroll mysmallbtn ScrollAD" data-sort="true" CellSpacing="0" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Fecha">
<ItemTemplate>
<asp:Literal ID="LtlFecha" runat="server" Text='<%# Eval("FechaIng") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Id_Clave" HeaderText="Folio / Concepto" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Descripcion" HeaderText="Descripción" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Usuario" HeaderText="Usuario" ItemStyle-HorizontalAlign="Left" />
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="UPPersonalizar" UpdateMode="Conditional">
<ContentTemplate>
<div id="DivPersonalizar" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="Label1" runat="server" ClientIDMode="Static" Text="Personalizar Columnas"></asp:Label></h4>
</div>
<div class="modal-body">
<table style="width:598px;" class="table table-advance">
<tbody>
<tr>
<td style="text-align: left;">
<asp:CheckBox ID="ChkCodigoAlterno" runat="server" Text="Código Alterno" />
</td>
<td style="text-align: left;">
<asp:CheckBox ID="ChkCodigoBarras" runat="server" Text="Código Barras" />
</td>
<td style="text-align: left;">
<asp:CheckBox ID="ChkSeccionAlmacen" runat="server" Text="Sección Almacen" />
</td>
<td style="text-align: left;" id="TdModalClasificacion2" runat="server" visible ="false">
<asp:CheckBox ID="ChkClasificacion2" runat="server" Text="Clasificación 2" />
</td>
</tr>
<tr>
<td style="text-align: left;">
<asp:CheckBox ID="ChkFechaUltimaCompra" runat="server" Text="Fecha Última Compra" />
</td>
<td style="text-align: left;">
<asp:CheckBox ID="ChkFechaUltimaVenta" runat="server" Text="Fecha Última Venta" />
</td>
</tr>
</tbody>
</table>
</div>
<div class="modal-footer">
<asp:Button ID="BtnPersonalizar" OnClientClick="javascript:$('#DivPersonalizar').modal('hide')" runat="server" Text="Personalizar" class="btn btn-success" />
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script src="/Metronic/assets/global/scripts/datatable.js"></script>
<script src="/Metronic/assets/global/plugins/datatables/all.min.js"></script>
<script type="text/javascript">
function elementexist(element) {
if ($(element)) {
if ($(element).html()) {
return true;
} else {
return false;
}
} else {
return false;
}
}
Sys.Application.add_load(function (s, e) {
});
var dTable;
function pageLoad() {
var Tam = TamañoVentana();
var Alto = Tam.height - 330;
if (Alto < 100) {
Alto = 100;
}
var rows = false;
var cont = 0;
$("#<%=GvM.ClientID %> tr").each(function () {
cont++;
subHeaders();
});
<%-- if (cont > 2) {
var head = $('<thead></thead>');
head.append($('#<%=GvM.ClientID %> tr:nth-child(1)'));
$('#<%=GvM.ClientID %>').prepend(head);
dTable = $('#<%=GvM.ClientID %>').DataTable({
'order': [], 'orderable': true, scrollY: Alto + 'px', scrollCollapse: true, paging: false, searching: false, info: false
});
subHeaders();
//$dataTables_scrollHead--%>
//}
}
$(window).resize(function () {
subHeaders();
dTable.columns.adjust().draw();
});
function subHeaders() {
var recco = 0;
$("#<%=GvM.ClientID %> tr").each(function() {
if (!this.rowIndex) return;
var celdas = [];
$(this).find('td').each(function (column, td) {
celdas.push($(td).width());
});
var ancho = 0
ancho += celdas[0];
ancho += celdas[1];
console.log('ancho req ' + ancho);
$('#dvArt').width(ancho);
ancho = 0;
ancho += celdas[2];
ancho += celdas[3];
ancho += celdas[4];
ancho += celdas[5];
console.log('ancho req ' + ancho);
$('#dvCan').width(ancho);
ancho = 0;
ancho += celdas[6];
ancho += celdas[7];
ancho += celdas[8];
ancho += celdas[9];
console.log('ancho req ' + ancho);
$('#dvImp').width(ancho);
$('#dvCa').css('visibility', 'visible');
return false;
});
}
</script>
</asp:Content>

View File

@@ -0,0 +1,743 @@
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Imports System.IO
Partial Class Inventarios_ReporteEntradasSalidas
Inherits ClsPaginas
#Region "propiedades"
'Private ReadOnly Property reporteador As Microsoft.Reporting.WebForms.ReportViewer
' Get
' Return CType(Master.FindControl("ReportMaster"), Microsoft.Reporting.WebForms.ReportViewer)
' End Get
'End Property
Private Property dt As DataTable
Get
Try
dt = DirectCast(ViewState("dt"), DataTable)
Return DirectCast(ViewState("dt"), DataTable)
Catch ex As Exception
Return Nothing
End Try
End Get
Set(value As DataTable)
ViewState("dt") = value
End Set
End Property
Public Property DtEquivalencias() As DataTable
Get
Return CType(ViewState("dtReporte"), DataTable)
End Get
Set(value As DataTable)
ViewState("dtReporte") = value
End Set
End Property
Public Property FechaInicial As String
Get
Return ViewState("FechaInicial").ToString
End Get
Set(value As String)
ViewState("FechaInicial") = value
End Set
End Property
Public Property FechaFinal As String
Get
Return ViewState("FechaFinal").ToString
End Get
Set(value As String)
ViewState("FechaFinal") = value
End Set
End Property
Private ReadOnly Property PermiteClasificacion2 As Boolean
Get
Return (UsuarioActual.CveEmpresa.Contiene(72, 80))
End Get
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DivFamiliaSubFamilia.Visible = True
End If
If UsuarioActual.CveEmpresa.Contiene(119) Then
LnkFormatoInventario.Visible = True
End If
TxtFechaI.Text = Now.AddMonths(-1).ToShortDateString
TxtFechaF.Text = Now
FechaInicial = "-1"
FechaFinal = "-1"
CargaCombos()
GvM.DataBind()
If Not IsNothing(Request("CveAlmacen")) Then
DdlAlmacen.SelectedValue = Request("CveAlmacen").ToString()
TxtFechaI.Text = "01/01/2000"
If Not IsNothing(Request("FechaCorte")) Then
TxtFechaF.Text = Request("FechaCorte")
End If
If Not IsNothing(Request("FechaInicio")) And IsDate(Request("FechaInicio")) Then
TxtFechaI.Text = Request("FechaInicio")
End If
btConsultar_Click(Nothing, Nothing)
End If
CargaPermisos()
CargaGvBitacora()
Lnkcompuxlsinventarios.Visible = (UsuarioActual.CveRol = 1)
End If
End Sub
Private Sub CargaPermisos()
Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201)
dvImp.Visible = TienePermisoImportes
GvM.Columns(10).Visible = TienePermisoImportes
GvM.Columns(11).Visible = TienePermisoImportes
GvM.Columns(12).Visible = TienePermisoImportes
GvM.Columns(13).Visible = TienePermisoImportes
GvM.Columns(14).Visible = TienePermisoImportes
End Sub
Private Sub CargaCombos()
DdlTipoMovimiento.DataSource = GlobalDTInvConceptos()
DdlTipoMovimiento.DataBind()
DdlTipoMovimiento.Items.Insert(0, New ListItem("Todos", "-1"))
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
DdlAlmacen.DataBind()
DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
If Not IsNothing(Request("CveAlmacen")) Then
If DdlAlmacen.Items.FindByValue(Request("CveAlmacen").ToString) Is Nothing Then
Dim CveAlmacen = Request("CveAlmacen").ToString
Dim Almacen As String = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Almacen", $"CveAlmacen = {Request("CveAlmacen").ToString}")
DdlAlmacen.Items.Insert(0, New ListItem(Almacen, CveAlmacen))
End If
End If
'Llenar dropdownlist de monedas
DdlMoneda.DataSource = GlobalDTMonedas
DdlMoneda.DataBind()
DdlMoneda.Items.Insert(0, New ListItem("Todos", "-1"))
'Llenar dropdownlist de proveedores
DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
DdlProveedor.DataBind()
DdlProveedor.Items.Insert(0, New ListItem("Todos", "-1"))
'CARGA CLASIFICACIONES
Dim ObjClasificaciones As New ClsClasificaciones
If ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa) Then
DdlClasificacion.DataSource = ObjClasificaciones.DtResultados
End If
ObjClasificaciones.Dispose()
DdlClasificacion.DataBind()
DdlClasificacion.Items.Insert(0, New ListItem("Todos", "-1"))
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlFamilia.DataSource = GlobalDTFamilias(UsuarioActual.CveEmpresa)
DdlFamilia.DataBind()
End If
DdlFamilia.Items.Insert(0, New ListItem("Todas", "-1"))
DdlSubFamilia.Items.Insert(0, New ListItem("Todas", "-1"))
'Carga Productos
DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1")
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
DdlPS.SelectedText = ""
DdlPS.SelectedValue = "-1"
Else
DdlPS.ddl.Items.Clear()
DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero)
DdlPS.ddl.DataBind()
DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
End If
DdlMovs.SelectedValue = "2"
'Llenar dropdownlist de personal
DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa)
DdlPersonal.DataBind()
DdlPersonal.Items.Insert(0, New ListItem("Todos", "-1"))
DdlClasificacion2.DataSource = GlobalDTClasificaciones2(UsuarioActual.CveEmpresa)
DdlClasificacion2.DataBind()
DdlClasificacion2.Items.Insert(0, New ListItem("Todos", "-1"))
DdlClasificacion2.SelectedValueExist("-1")
'BLOQUEA DDL CLASIFICACION
DivClaisficacionLabel.Visible = PermiteClasificacion2
DdlClasificacion2.Visible = PermiteClasificacion2
TdModalClasificacion2.Visible = PermiteClasificacion2
CargarMarcas()
DdlTipoAlmacen.DataSource = GlobalDTTipoAlmacen(1)
DdlTipoAlmacen.DataBind()
DdlTipoAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Protected Sub DdlFamilia_SelectedIndexChanged(sender As Object, e As EventArgs)
DdlSubFamilia.DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa, DdlFamilia.SelectedValue.ToEntero)
DdlSubFamilia.DataBind()
DdlSubFamilia.Items.Insert(0, New ListItem("Todas", "-1"))
End Sub
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim Reporte As New ClsInventarios
Dim rpt As DataTable = Nothing
Dim CveMarca As Integer = -1
'Dim fechaI As String = If(TxtFechaI.Text.Trim <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1")
'Dim fechaF As String = If(TxtFechaF.Text.Trim <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1")
FechaInicial = If(TxtFechaI.Text.Trim <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1")
FechaFinal = If(TxtFechaF.Text.Trim <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1")
Dim TipoAlmacen As String = If(DdlTipoAlmacen.GetSelectedValuesM = "", "-1", DdlTipoAlmacen.GetSelectedValuesM)
If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then
CveMarca = DdlMarca.SelectedValue.ToEntero
End If
If Reporte.RepMovimientos(UsuarioActual.CveEmpresa, DdlMoneda.SelectedValue.ToEntero, FechaInicial, FechaFinal, DdlTipoMovimiento.SelectedValue.ToEntero, DdlProveedor.SelectedValue.ToEntero,
DdlAlmacen.SelectedValue.ToEntero, DdlFamilia.SelectedValue.ToEntero, DdlSubFamilia.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero,
DdlMovs.SelectedValue.ToEntero, CveMarca, CvePersonal:=DdlPersonal.SelectedValue.ToEntero, CveClasificacion2:=DdlClasificacion2.SelectedValue.ToEntero, CveTipoAlmacen:=TipoAlmacen,
Modalidad:=DdlModalidadFiltro.SelectedValue.ToEntero) Then
dt = Reporte.DtResultados
GvM.DataSource = dt
ViewState("dtReporte") = dt
rpt = dt
End If
Reporte.Dispose()
GvM.DataBind()
UPPMov.Update()
End Sub
Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs)
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue)
DdlPS.SelectedText = ""
DdlPS.SelectedValue = "-1"
Else
DdlPS.ddl.Items.Clear()
DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero)
DdlPS.ddl.DataBind()
DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
End If
End Sub
Protected Sub GvM_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles GvM.RowCreated
'If e.Row.RowType = DataControlRowType.Header Then
' 'GENERO ENCABEZADO
' Dim FC As New SortedList
' FC.Add(0, "Código,1,2,Titulos")
' If ChkCodigoAlterno.Checked Then
' FC.Add(1, "Código Alterno,1,2,Titulos")
' End If
' FC.Add(10, "Descripción,1,2,Titulos")
' FC.Add(20, "CANTIDAD,4,1,Titulos")
' FC.Add(30, "IMPORTE,4,1,Titulos")
' Dim FC2 As New SortedList
' FC2.Add(0, "Exist. inicial,1,1,Titulos")
' FC2.Add(1, "Entradas,1,1S,Titulos")
' FC2.Add(2, "Salidas,1,1,Titulos")
' FC2.Add(3, "Exist. final,1,1,Titulos")
' FC2.Add(4, "Saldo inicial,1,1,Titulos")
' FC2.Add(5, "Entradas,1,1,Titulos")
' FC2.Add(6, "Salidas,1,1,Titulos")
' FC2.Add(7, "Saldo final,1,1,Titulos")
' GetMultiRowHeader(DirectCast(sender, GridView), e, FC2, "Titulosfijos")
' GetMultiRowHeader(DirectCast(sender, GridView), e, FC, "Titulosfijos")
''End If
End Sub
Protected Sub gvMovimientos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvM.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("CvePS").ToEntero <= 0 Then
e.Row.CssClass = "Totales"
Else
e.Row.Cells(9).BackColor = Drawing.Color.LightGray
e.Row.Cells(13).BackColor = Drawing.Color.LightGray
'e.Row.FCLabel("lbSaldoI").Text = If(e.Row.DBCampo("SaldoIniCant").ToString().ToEntero = 0, "-", e.Row.DBCampo("SaldoIniCant").ToDouble.ToString("N2"))
'e.Row.FCLabel("lbEntradasCant").Text = If(e.Row.DBCampo("EntradaCant").ToString().ToEntero = 0, "-", e.Row.DBCampo("EntradaCant").ToDouble.ToString("N2"))
'e.Row.FCLabel("lbSalidasCant").Text = If(e.Row.DBCampo("SalidaCant").ToString().ToEntero = 0, "-", e.Row.DBCampo("SalidaCant").ToDouble.ToString("N2"))
'e.Row.FCLabel("lbSaldoF").Text = If(e.Row.DBCampo("SaldoFCant").ToString().ToEntero = 0, "-", e.Row.DBCampo("SaldoFCant").ToDouble.ToString("N2"))
e.Row.FCLabel("lbSaldoI2").Text = If(e.Row.DBCampo("SaldoIniImp").ToString().ToDecimal = 0, "-", e.Row.DBCampo("SaldoIniImp").ToDouble.ToString("N2"))
e.Row.FCLabel("lbEntradaImp").Text = If(e.Row.DBCampo("EntradaImp").ToString().ToDecimal = 0, "-", e.Row.DBCampo("EntradaImp").ToDouble.ToString("N2"))
e.Row.FCLabel("lbSalidaImp").Text = If(e.Row.DBCampo("SalidaImp").ToString().ToDecimal = 0, "-", e.Row.DBCampo("SalidaImp").ToDouble.ToString("N2"))
e.Row.FCLabel("lbSaldoF2").Text = If(e.Row.DBCampo("SaldoFImp").ToString().ToDecimal = 0, "-", e.Row.DBCampo("SaldoFImp").ToDouble.ToString("N2"))
End If
End If
End Sub
'Protected Sub gv_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles Gv.RowDataBound
' If e.Row.RowType = DataControlRowType.DataRow Then
' If e.Row.DBCampo("CvePS").ToEntero = -1 Then
' e.Row.Cells(3).Text = ""
' e.Row.Cells(4).Text = ""
' e.Row.Cells(5).Text = ""
' e.Row.CssClass = "SubTotales"
' e.Row.Height = 22
' End If
' End If
'End Sub
#Region "MARCA"
Protected Sub CargarMarcas()
If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then
DivMarca.Visible = True
Dim ObjMarcas As New ClsProductosServicios
ObjMarcas.GetMarcas(UsuarioActual.CveEmpresa)
DdlMarca.DataSource = ObjMarcas.DtResultados
ObjMarcas.Dispose()
DdlMarca.DataBind()
End If
DdlMarca.Items.Insert(0, New ListItem(" Todas ", "-1"))
End Sub
#End Region
#Region " EXPORTAR - PDF - EXCEL "
Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
' GvM.ExportToExcel("Reporte de Entradas y Salidas")
ImprimiReporte("EXCEL")
End Sub
Private Sub LnkImprimir_Click(sender As Object, e As EventArgs) Handles LnkImprimir.Click
ImprimiReporte()
End Sub
Protected Sub ImprimiReporte(Optional Formato As String = "PDF", Optional FormatoInventario As Boolean = False)
Dim FechaI As String = FechaInicial
Dim FechaF As String = FechaFinal
Dim Almacen = If(DdlAlmacen.SelectedValue = "-1", "", $"&emsp;<b>Almacén:</b>&nbsp;{DdlAlmacen.SelectedItem.Text}")
Dim TipoMov = If(DdlTipoMovimiento.SelectedValue = "-1", "", $"&emsp;<b>Tipo&nbsp;Movimiento:</b>&nbsp;{DdlTipoMovimiento.SelectedItem.Text}")
Dim Moneda = If(DdlMoneda.SelectedValue = "-1", "", $"&emsp;<b>Moneda:</b>&nbsp;{DdlMoneda.SelectedItem.Text}")
Dim SoloConMov = If(DdlMovs.SelectedValue = "-1", "", $"&emsp;<b>Solo&nbsp;Movimientos:</b>&nbsp;{DdlMovs.SelectedItem.Text}")
Dim Proveedor = If(DdlProveedor.SelectedValue = "-1", "", $"&emsp;<b>Proveedor:</b>&nbsp;{DdlProveedor.SelectedItem.Text}")
Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $"&emsp;<b>Clasificación:</b>&nbsp;{DdlClasificacion.SelectedItem.Text}")
Dim Familia = If(DdlFamilia.SelectedValue = "-1", "", $"&emsp;<b>Familia:</b>&nbsp;{DdlFamilia.SelectedItem.Text}")
Dim SubFamilia = If(DdlSubFamilia.SelectedValue = "-1", "", $"&emsp;<b>SubFamilia:</b>&nbsp;{DdlSubFamilia.SelectedItem.Text}")
Dim PS = If(DdlPS.SelectedValue = "-1", "", $"&emsp;<b>PS:</b>&nbsp;{DdlPS.SelectedText}")
Dim FechaIn As String = $"&emsp;<b>Fecha&nbsp;Inicio:</b>&nbsp;{TxtFechaI.Text}"
Dim FechaFn As String = $"&emsp;<b>Fecha&nbsp;Fin:</b>&nbsp;{TxtFechaF.Text}"
If TxtFechaI.Text = "" Then FechaIn = ""
If TxtFechaF.Text = "" Then FechaFn = ""
If FechaI = "-1" Then
FechaI = "01-01-0001"
End If
If FechaF = "-1" OrElse FechaFinal.ToDate > Now.ToDate Then
FechaF = Now
End If
Dim RutaPDF As String
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\"
Dim NombreArchivoDescarga = "ReporteEntradas-Salidas"
If UsuarioActual.CveEmpresa.Contiene(119) Then
If FormatoInventario Then
RutaPDF = $"{Ruta}\Formatos\FormatoAlmacen.rdlc"
NombreArchivoDescarga = "Formato Inventario"
Else
If DdlTipoMovimiento.SelectedValue.ToEntero = 2 Then
RutaPDF = $"{Ruta}\Formatos\EntradaAlmacen.rdlc"
ElseIf DdlTipoMovimiento.SelectedValue.ToEntero = 3 Then
RutaPDF = $"{Ruta}\Formatos\SalidaAlmacen.rdlc"
Else
RutaPDF = $"{Ruta}\Formatos\EntradasSalidas.rdlc"
End If
End If
Else
RutaPDF = $"{Ruta}\Formatos\EntradasSalidas.rdlc"
End If
If Not File.Exists(RutaPDF) Then
RutaPDF = "Empresas/Grales/Formatos/EntradasSalidas.rdlc"
End If
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("pEmp", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("pImg", New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Logo.png", UsuarioActual.CveEmpresa))).AbsoluteUri))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
If FormatoInventario Then
params.Add(New ReportParameter("Sucursal", DdlAlmacen.SelectedItem.Text))
params.Add(New ReportParameter("Bodega", DdlAlmacen.SelectedItem.Text))
Else
params.Add(New ReportParameter("FechaInicial", FechaI))
params.Add(New ReportParameter("FechaFinal", FechaF))
params.Add(New ReportParameter("AgrupadoPor", $"{Almacen}{TipoMov}{Moneda}{SoloConMov}{Proveedor}{Clasificacion}{Familia}{SubFamilia}{PS}{FechaIn}{FechaFn}"))
End If
ImprimirPDF(RutaPDF, If(FormatoInventario, dt.FiltraParametros("", "RazonSocial, PS ASC"), dt), params, NombreArchivoDescarga, Formato:=Formato)
End Sub
Private Sub BtnPersonalizar_Click(sender As Object, e As EventArgs) Handles BtnPersonalizar.Click
RegistraScript("$('#DivPersonalizar').modal('hide')")
GvM.Columns(1).Visible = ChkCodigoAlterno.Checked
GvM.Columns(2).Visible = ChkCodigoBarras.Checked
GvM.Columns(3).Visible = ChkClasificacion2.Checked
GvM.Columns(5).Visible = ChkSeccionAlmacen.Checked
GvM.Columns(15).Visible = ChkFechaUltimaCompra.Checked
GvM.Columns(16).Visible = ChkFechaUltimaVenta.Checked
'GvM.Columns(4).Visible = ChkSeccionAlmacen.Checked
If ChkSeccionAlmacen.Checked OrElse ChkCodigoBarras.Checked OrElse ChkCodigoAlterno.Checked Then
dvArt.Style.Add("width", "39%")
dvCan.Style.Add("width", "25%")
If ChkFechaUltimaCompra.Checked OrElse ChkFechaUltimaVenta.Checked Then
dvArt.Style.Add("width", "34%")
dvCan.Style.Add("width", "23%")
End If
If ChkFechaUltimaCompra.Checked AndAlso ChkFechaUltimaVenta.Checked Then
dvArt.Style.Add("width", "32%")
dvCan.Style.Add("width", "22%")
End If
ElseIf ChkClasificacion2.Checked Then
dvArt.Style.Add("width", "38%")
dvCan.Style.Add("width", "26%")
If ChkFechaUltimaCompra.Checked Or ChkFechaUltimaVenta.Checked Then
dvArt.Style.Add("width", "35%")
dvCan.Style.Add("width", "22%")
End If
Else
If ChkFechaUltimaCompra.Checked OrElse ChkFechaUltimaVenta.Checked Then
dvArt.Style.Add("width", "30%")
dvCan.Style.Add("width", "26%")
dvImp.Style.Add("width", "44%")
End If
If ChkFechaUltimaCompra.Checked And ChkFechaUltimaVenta.Checked Then
dvArt.Style.Add("width", "28%")
dvCan.Style.Add("width", "25%")
dvImp.Style.Add("width", "50%")
End If
End If
If (ChkSeccionAlmacen.Checked AndAlso ChkCodigoBarras.Checked) Then
dvArt.Style.Add("width", "50%")
dvCan.Style.Add("width", "21%")
ElseIf (ChkSeccionAlmacen.Checked AndAlso ChkCodigoAlterno.Checked) Then
dvArt.Style.Add("width", "42%")
dvCan.Style.Add("width", "22%")
ElseIf (ChkCodigoBarras.Checked AndAlso ChkCodigoAlterno.Checked) Then
dvArt.Style.Add("width", "45%")
dvCan.Style.Add("width", "22%")
End If
If (ChkSeccionAlmacen.Checked AndAlso ChkCodigoBarras.Checked AndAlso ChkCodigoAlterno.Checked) Then
dvArt.Style.Add("width", "54%")
dvCan.Style.Add("width", "22%")
ElseIf (Not ChkSeccionAlmacen.Checked AndAlso Not ChkCodigoBarras.Checked AndAlso Not ChkCodigoAlterno.Checked AndAlso Not ChkFechaUltimaCompra.Checked AndAlso Not ChkFechaUltimaVenta.Checked) Then
dvArt.Style.Add("width", "32%")
dvCan.Style.Add("width", "30%")
End If
If (ChkSeccionAlmacen.Checked AndAlso ChkCodigoBarras.Checked AndAlso ChkCodigoAlterno.Checked AndAlso ChkClasificacion2.Checked) Then
dvArt.Style.Add("width", "62%")
dvCan.Style.Add("width", "21%")
End If
CargaDatos()
UpEncabezado.Update()
End Sub
Private Sub LnkFormatoInventario_Click(sender As Object, e As EventArgs) Handles LnkFormatoInventario.Click
ImprimiReporte("EXCEL", True)
End Sub
#End Region
#Region "B I T A C O R A"
Private Sub CargaGvBitacora()
Dim ObjGral As New ClsGenerales
If ObjGral.GetHistorialBitacoraRemoveGet("Inventarios", UsuarioActual.CveEmpresa) Then
GvBitacora.DataSource = ObjGral.DtResultados
ObjGral.Dispose()
End If
GvBitacora.DataBind()
End Sub
Private Sub BtnMostrar_Click(sender As Object, e As EventArgs) Handles BtnMostrar.Click
GvBitacora.Visible = True
BtnOcultar.Visible = True
BtnMostrar.Visible = False
UpBitacora.Update()
End Sub
Private Sub BtnOcultar_Click(sender As Object, e As EventArgs) Handles BtnOcultar.Click
GvBitacora.Visible = False
BtnOcultar.Visible = False
BtnMostrar.Visible = True
UpBitacora.Update()
End Sub
#End Region
Protected Sub Lnkcompuxlsinventarios_Click(sender As Object, e As EventArgs)
Dim continuar = True
Try
Dim wb As New ClosedXML.Excel.XLWorkbook()
Dim libro As ClosedXML.Excel.IXLWorksheet = wb.AddWorksheet("Reporte de inventarios")
Dim Fila As Integer = 0
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 2, 7)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(217, 225, 242))
libro.Range(libro.Cell(Fila + 3, 1), libro.Cell(Fila + 3, 7)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80))
libro.Cell(Fila + 3, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166))
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 7)).Style.Border.InsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 7)).Style.Border.OutsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
libro.Column(1).Width = 34.43
libro.Cell(Fila + 1, 1).Value = "TIPO DO REGISTRO"
libro.Cell(Fila + 2, 1).Value = "RECORD Type"
libro.Cell(Fila + 3, 1).Value = "OBLIGATORIO"
libro.Column(2).Width = 24
libro.Cell(Fila + 1, 2).Value = "Codigo del Partner"
libro.Cell(Fila + 2, 2).Value = "Reporter_id "
libro.Cell(Fila + 3, 2).Value = "OBLIGATORIO"
libro.Column(3).Width = 28.71
libro.Cell(Fila + 1, 3).Value = "Nombre de la Empresa"
libro.Cell(Fila + 2, 3).Value = "Reporter Company Name"
libro.Cell(Fila + 3, 3).Value = "OBLIGATORIO"
libro.Column(4).Width = 23.57
libro.Cell(Fila + 1, 4).Value = "CÓDIGO DEL PAÍS"
libro.Cell(Fila + 2, 4).Value = "COUNTRY CD"
libro.Cell(Fila + 3, 4).Value = "OBLIGATORIO"
libro.Column(5).Width = 17.57
libro.Cell(Fila + 1, 5).Value = "Ubicación"
libro.Cell(Fila + 2, 5).Value = "LOCATION"
libro.Cell(Fila + 3, 5).Value = "OPCIONAL"
libro.Column(6).Width = 35.29
libro.Cell(Fila + 1, 6).Value = "FECHA DEL INVENTARIO"
libro.Cell(Fila + 2, 6).Value = "Period End Date"
libro.Cell(Fila + 3, 6).Value = "OBLIGATORIO"
libro.Column(7).Width = 23.43
libro.Cell(Fila + 1, 7).Value = "REENVIO"
libro.Cell(Fila + 2, 7).Value = "RESUBMIT"
libro.Cell(Fila + 3, 7).Value = "OBLIGATORIO"
libro.Column(8).Width = 29.29
libro.Column(9).Width = 25
libro.Column(10).Width = 18.14
libro.Column(11).Width = 32.71
libro.Column(12).Width = 13.57
libro.Column(13).Width = 13
libro.Column(14).Width = 32
libro.Column(15).Width = 12.71
libro.Column(16).Width = 13
Fila = Fila + 3
libro.Cell(Fila + 1, 1).Value = "IH"
libro.Cell(Fila + 1, 2).Value = "12345678"
libro.Cell(Fila + 1, 3).Value = "ABCD"
libro.Cell(Fila + 1, 4).Value = "MX"
libro.Cell(Fila + 1, 5).Value = ""
libro.Cell(Fila + 1, 6).Value = String.Format("{0:yyyyMMdd}", DateTime.Now)
libro.Cell(Fila + 1, 6).Value = "N"
Fila = Fila + 1
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 2, 16)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(217, 225, 242))
libro.Range(libro.Cell(Fila + 3, 1), libro.Cell(Fila + 3, 16)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80))
libro.Range(libro.Cell(Fila + 3, 3), libro.Cell(Fila + 3, 15)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166))
libro.Cell(Fila + 3, 7).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80))
libro.Cell(Fila + 3, 10).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80))
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 16)).Style.Border.InsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 16)).Style.Border.OutsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
libro.Cell(Fila + 1, 1).Value = "TIPO DO REGISTRO"
libro.Cell(Fila + 1, 2).Value = "NÚMERO DEL PRODUCTO"
libro.Cell(Fila + 1, 3).Value = "OPCION DEL PRODUCTO"
libro.Cell(Fila + 1, 4).Value = "UPC"
libro.Cell(Fila + 1, 5).Value = "CODIGO SKU"
libro.Cell(Fila + 1, 6).Value = "ORDENES DE COMPRAS EN ABIERTO "
libro.Cell(Fila + 1, 7).Value = "INVENTARIO DISPONIBLE"
libro.Cell(Fila + 1, 8).Value = "DEVOLUCIONES"
libro.Cell(Fila + 1, 9).Value = "INVENTARIO RESERVADO"
libro.Cell(Fila + 1, 10).Value = "INVENTARIO TOTAL"
libro.Cell(Fila + 1, 11).Value = "EN TRANSITO"
libro.Cell(Fila + 1, 12).Value = "VALOR UNITARIO DEL PRODUCTO HP"
libro.Cell(Fila + 1, 13).Value = "VALOR TOTAL DEL INVENTARIO"
libro.Cell(Fila + 1, 14).Value = "NOMBRE DE LA TIENDA"
libro.Cell(Fila + 1, 15).Value = "Codigo de la tienda"
libro.Cell(Fila + 1, 16).Value = "MONEDA"
Fila = Fila + 1
libro.Cell(Fila + 1, 1).Value = "RECORD TYPE "
libro.Cell(Fila + 1, 2).Value = "Partner Reported Product ID"
libro.Cell(Fila + 1, 3).Value = "PROD_OPTION"
libro.Cell(Fila + 1, 4).Value = "UPC"
libro.Cell(Fila + 1, 5).Value = "Reseller product number "
libro.Cell(Fila + 1, 6).Value = "Quantity on Order"
libro.Cell(Fila + 1, 7).Value = "Quantity on Hand"
libro.Cell(Fila + 1, 8).Value = "Quantity in stock allocated to be returned to supplier"
libro.Cell(Fila + 1, 9).Value = "Reserved Inventory"
libro.Cell(Fila + 1, 10).Value = "Quantity avail. for sale"
libro.Cell(Fila + 1, 11).Value = "Quantity in float (In transit between partner warehouses)"
libro.Cell(Fila + 1, 12).Value = "INVENTORY UNIT VALUE"
libro.Cell(Fila + 1, 13).Value = "INVENTORY VALUATION"
libro.Cell(Fila + 1, 14).Value = "Sell from name (For retailers, ""Store Name / Site Name"")"
libro.Cell(Fila + 1, 15).Value = "Sell From Location ID"
libro.Cell(Fila + 1, 16).Value = "CURRENCY"
Fila = Fila + 1
libro.Cell(Fila + 1, 1).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 2).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 3).Value = "OPCIONAL"
libro.Cell(Fila + 1, 4).Value = "OPCIONAL"
libro.Cell(Fila + 1, 5).Value = "OPCIONAL"
libro.Cell(Fila + 1, 6).Value = "OPCIONAL"
libro.Cell(Fila + 1, 7).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 8).Value = "OPCIONAL"
libro.Cell(Fila + 1, 9).Value = "OPCIONAL"
libro.Cell(Fila + 1, 10).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 11).Value = "OPCIONAL"
libro.Cell(Fila + 1, 12).Value = "OPCIONAL"
libro.Cell(Fila + 1, 13).Value = "OPCIONAL"
libro.Cell(Fila + 1, 14).Value = "OPCIONAL"
libro.Cell(Fila + 1, 15).Value = "OPCIONAL"
libro.Cell(Fila + 1, 16).Value = "OBLIGATORIO"
For Each row As DataRow In dt.Select("CvePS>0")
Fila = Fila + 1
libro.Cell(Fila + 1, 1).Value = "ID" ' "TIPO DO REGISTRO"
libro.Cell(Fila + 1, 2).Value = String.Format("'{0}", row("Codigo")) ' "NÚMERO DEL PRODUCTO"
libro.Cell(Fila + 1, 3).Value = "" ' "OPCION DEL PRODUCTO"
libro.Cell(Fila + 1, 4).Value = "" ' "UPC"
libro.Cell(Fila + 1, 5).Value = "" ' "CODIGO SKU"
libro.Cell(Fila + 1, 6).Value = "" ' "ORDENES DE COMPRAS EN ABIERTO "
libro.Cell(Fila + 1, 7).Value = String.Format("{0}", row("SaldoFCant")) ' "INVENTARIO DISPONIBLE"
'libro.Cell(Fila + 1, 7).Style.NumberFormat.Format = "N2"
libro.Cell(Fila + 1, 8).Value = "" ' "DEVOLUCIONES"
libro.Cell(Fila + 1, 9).Value = "" ' "INVENTARIO RESERVADO"
libro.Cell(Fila + 1, 10).Value = String.Format("{0}", row("SaldoFImp")) ' "INVENTARIO TOTAL"
libro.Cell(Fila + 1, 10).Style.NumberFormat.Format = "$ #,##0.00"
libro.Cell(Fila + 1, 11).Value = "" ' "EN TRANSITO"
libro.Cell(Fila + 1, 12).Value = "" ' "VALOR UNITARIO DEL PRODUCTO HP"
libro.Cell(Fila + 1, 13).Value = "" ' "VALOR TOTAL DEL INVENTARIO"
libro.Cell(Fila + 1, 14).Value = "" ' "NOMBRE DE LA TIENDA"
libro.Cell(Fila + 1, 15).Value = "" ' "Codigo de la tienda"
libro.Cell(Fila + 1, 16).Value = "MXN" ' "MONEDA"
Next
Fila = Fila + 1
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 2, 4)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(217, 225, 242))
libro.Range(libro.Cell(Fila + 3, 1), libro.Cell(Fila + 3, 4)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80))
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 4)).Style.Border.InsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 4)).Style.Border.OutsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin
libro.Cell(Fila + 1, 1).Value = "TIPO DEL REGISTRO"
libro.Cell(Fila + 1, 2).Value = "TOTAL DE REGISTROS"
libro.Cell(Fila + 1, 3).Value = "Suma del Inventario Disponible"
libro.Cell(Fila + 1, 4).Value = "Suma del Inventario Total"
Fila = Fila + 1
libro.Cell(Fila + 1, 1).Value = "RECORD TYPE"
libro.Cell(Fila + 1, 2).Value = "COUNT OF RECORDS"
libro.Cell(Fila + 1, 3).Value = "SUM OF “"On Hand”""
libro.Cell(Fila + 1, 4).Value = "SUM OF “"Total Inventory"”"
Fila = Fila + 1
libro.Cell(Fila + 1, 1).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 2).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 3).Value = "OBLIGATORIO"
libro.Cell(Fila + 1, 4).Value = "OBLIGATORIO"
Dim Codigo As Double = 0
Dim SaldoFCant As Double = 0
Dim SaldoFImp As Double = 0
If Not IsNothing(dt) AndAlso dt.Rows.Count > 0 Then
Codigo = dt.COUNT("Codigo", "CvePS>0")
SaldoFCant = dt.SUM("SaldoFCant", "CvePS>0")
SaldoFImp = dt.SUM("SaldoFImp", "CvePS>0")
End If
Fila = Fila + 1
libro.Cell(Fila + 1, 1).Value = "IT"
libro.Cell(Fila + 1, 2).Value = String.Format("{0}", Codigo)
'libro.Cell(Fila + 1, 2).Style.NumberFormat.Format = "N2"
libro.Cell(Fila + 1, 3).Value = String.Format("{0}", SaldoFCant)
'libro.Cell(Fila + 1, 3).Style.NumberFormat.Format = "N2"
libro.Cell(Fila + 1, 4).Value = String.Format("{0}", SaldoFImp)
libro.Cell(Fila + 1, 4).Style.NumberFormat.Format = "$ #,##0.00"
''Guarda streem y descarga
Dim fs As Stream = New MemoryStream()
wb.SaveAs(fs)
fs.Position = 0
Dim memoryStream As New MemoryStream()
Using input As Stream = fs
input.CopyTo(memoryStream)
End Using
memoryStream.Position = 0
Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
Response.AddHeader("content-disposition", String.Format("attachment;filename={0}.xlsx", "Reporte de Inventarios"))
Response.BinaryWrite(memoryStream.ToArray())
Response.End()
''endGuarda streem y descarga
Catch
continuar = False
End Try
If Not continuar Then
Alert("Ocurrió un error al gener el excel", TipoMensaje.MsgAdvertencia)
End If
End Sub
End Class

View File

@@ -0,0 +1,261 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="RepEntradasSalidasXContrato.aspx.cs" Inherits="Inventarios_RepEntradasSaliidasContrato" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.dataTables_scrollHead {
background-color: #95A5A6;
color: white;
}
.table-scrollable {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
.dataTables_scroll {
padding-top: 0px;
}
.Totales a {
color: white;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte de Entradas Salidas X Contrato
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<li>
<asp:LinkButton ID="LnkPdf" OnClick="LnkPdf_Click" runat="server"> <i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkExcel" OnClick="LnkExcel_Click" runat="server"><i class="fa fa-ad-excel"></i> Exporta Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px; position: relative;">
<div class="tools">
<asp:Button ID="btConsultar" OnClick="btConsultar_Click" CssClass="btn btn-primary" runat="server" ValidationGroup="GrpConsultar" Text="Consultar" /></td>
<a href="javascript:;" data-idchekbox="<%= chkexpand.ClientID%>" class="expand"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption magindate">
<div class="row">
<div class="col-md-1 truncate">Contrato</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlContrato" CssClass="form-control input-sm select2me" runat="server" Width="100%" DataValueField="CveContrato" DataTextField="NumeroDescripcionContrato"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVContrato" runat="server" ControlToValidate="DdlContrato" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Contrato''</b> es necesario, por favor ingréselo." ValidationGroup="GrpConsultar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOContrato" runat="server" HighlightCssClass="vco" TargetControlID="RFVContrato"></ajax:ValidatorCalloutExtender>
</div>
<div class="col-md-1 truncate">Almacén</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlAlmacen" CssClass="form-control input-sm select2me" runat="server" Width="100%" DataValueField="CveAlmacen" DataTextField="Almacen"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Fecha Inicio</div>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate">Fecha Fin</div>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
</div>
</div>
<div class="portlet-body" style="display: none;">
<div class="row">
<div class="col-md-1 truncate">Tipo de movimiento </div>
<div class="col-md-2">
<asp:DropDownList ID="DdlTipoMovimiento" CssClass="form-control input-sm select2me" runat="server" Width="100%" DataTextField="Concepto" DataValueField="CveConcepto"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Moneda</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlMoneda" CssClass="form-control input-sm select2me" runat="server" Width="100%" DataTextField="Moneda" DataValueField="CveMoneda"></asp:DropDownList>
</div>
<div class="col-md-1 truncate" style="width: 150px !important">Solo con Movimientos</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlMovs" CssClass="form-control input-sm select2me" runat="server" Width="250" DataValueField="CveAlmacen" DataTextField="Almacen">
<asp:ListItem Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Con Movimientos" Value="2"></asp:ListItem>
<asp:ListItem Text="Sin Movimientos" Value="5"></asp:ListItem>
<asp:ListItem Text="Con Existencias" Value="3"></asp:ListItem>
<asp:ListItem Text="Sin Existencias" Value="4"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
<div class="row">
<div class="col-md-1 truncate">Proveedor</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlProveedor" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CveProveedor" DataTextField="RazonSocial"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Clasificación</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlClasificacion" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DdlClasificacion_SelectedIndexChanged" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CveClasificacion" DataTextField="Clasificacion"></asp:DropDownList>
</div>
<div class="col-md-1 truncate" style="width: 50px !important">PS</div>
<div class="col-md-2">
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width: 100%;" CssClass="DdlPS" CssClassDdl="select2me " DataTextField="PSCodigo" DataValueField="CvePS" />
</div>
<div runat="Server" id="DivMarca">
<div class="col-md-1 truncate">Marca</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlMarca" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CveMarca" DataTextField="Marca"></asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div class="row col-md-12" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<br />
<asp:UpdatePanel ID="UpEncabezado" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="dvCa" style="width: 100%; visibility: hidden; top: 40px">
<table id="dTable" class="correcto table Widthall ">
<tr>
<td id="dvArt" runat="server" class="dataTables_scrollHead" style="text-align: center!important; font-size: 14px; width: 32.5%;"><b>Producto</b></td>
<td id="dvCan" runat="server" class="dataTables_scrollHead" style="text-align: center!important; font-size: 14px; border-right-color: white!important; border-left-color: white!important; width: 30%; border-style: solid;"><b>Cantidad</b></td>
<td id="dvImp" runat="server" class="dataTables_scrollHead" style="text-align: center!important; width: 37.5%; font-size: 14px;"><b>Importe</b></td>
</tr>
</table>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpMov" runat="server" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvM" Width="99%" runat="server" OnRowDataBound="GvM_RowDataBound" data-sort="false" GridLines="None" CssClass="table table-smallpadding table-striped table-hover Widthall ScrollAD" ShowHeader="True" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False">
<Columns>
<asp:BoundField DataField="Codigo" HeaderText="Codigo" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="10%" />
<asp:BoundField DataField="PS" HeaderText="Descripción" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="22.5%" />
<asp:BoundField DataField="SaldoIniCant" HeaderText="Exist. Inicial" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:BoundField DataField="EntradaCant" HeaderText="Entradas" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:BoundField DataField="SalidaCant" HeaderText="Salidas" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:BoundField DataField="SaldoFCant" HeaderText="Exist. Final" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:BoundField DataField="SaldoIniImp" HeaderText="Saldo Inicial" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:BoundField DataField="EntradaImp" HeaderText="Entradas" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:BoundField DataField="SalidaImp" HeaderText="Salidas" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:BoundField DataField="SaldoFImp" HeaderText="Saldo Final" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:BoundField DataField="PrecioVenta" HeaderText="Precio Venta" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script src="/Metronic/assets/global/scripts/datatable.js"></script>
<script src="/Metronic/assets/global/plugins/datatables/all.min.js"></script>
<script type="text/javascript">
function elementexist(element) {
if ($(element)) {
if ($(element).html()) {
return true;
} else {
return false;
}
} else {
return false;
}
}
Sys.Application.add_load(function (s, e) {
});
var dTable;
function pageLoad() {
var Tam = TamañoVentana();
var Alto = Tam.height - 330;
if (Alto < 100) {
Alto = 100;
}
var rows = false;
var cont = 0;
$("#<%=GvM.ClientID %> tr").each(function () {
cont++;
subHeaders();
});
}
$(window).resize(function () {
subHeaders();
dTable.columns.adjust().draw();
});
function subHeaders() {
var recco = 0;
$("#<%=GvM.ClientID %> tr").each(function() {
if (!this.rowIndex) return;
var celdas = [];
$(this).find('td').each(function (column, td) {
celdas.push($(td).width());
});
var ancho = 0
ancho += celdas[0];
ancho += celdas[1];
console.log('ancho req ' + ancho);
$('#dvArt').width(ancho);
ancho = 0;
ancho += celdas[2];
ancho += celdas[3];
ancho += celdas[4];
ancho += celdas[5];
console.log('ancho req ' + ancho);
$('#dvCan').width(ancho);
ancho = 0;
ancho += celdas[6];
ancho += celdas[7];
ancho += celdas[8];
ancho += celdas[9];
console.log('ancho req ' + ancho);
$('#dvImp').width(ancho);
$('#dvCa').css('visibility', 'visible');
return false;
});
}
</script>
</asp:Content>

View File

@@ -0,0 +1,217 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using Microsoft.Reporting.WebForms;
public partial class Inventarios_RepEntradasSaliidasContrato : ClsPaginas
{
#region PROPIEDADES
private DataTable DtDatos
{
get { return DtDatos = (DataTable)ViewState["DtDatos"]; }
set { ViewState["DtDatos"] = value; }
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InicializaValores();
}
}
private void InicializaValores()
{
TxtFechaI.Text = DateTime.Now.AddMonths(-1).ToShortDateString();
TxtFechaF.Text = DateTime.Now.ToShortDateString();
ClsContratos ObjContrato = new ClsContratos();
if (ObjContrato.GetContratos(-1, UsuarioActual.CveEmpresa))
{
DdlContrato.DataSource = ObjContrato.DtResultados;
}
ObjContrato.Dispose();
DdlContrato.DataBind();
DdlContrato.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlAlmacen.DataSource = get_GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,-1);
DdlAlmacen.DataBind();
DdlAlmacen.Items.Insert(0, new ListItem("Todos", "-1"));
DdlTipoMovimiento.DataSource = GlobalDTInvConceptos;
DdlTipoMovimiento.DataBind();
DdlTipoMovimiento.Items.Insert(0, new ListItem("Todos", "-1"));
DdlMoneda.DataSource = GlobalDTMonedas;
DdlMoneda.DataBind();
DdlMoneda.Items.Insert(0, new ListItem("Todos", "-1"));
DdlProveedor.DataSource = get_GlobalDTCompProveedores(UsuarioActual.CveEmpresa);
DdlProveedor.DataBind();
DdlProveedor.Items.Insert(0, new ListItem("Todos", "-1"));
DdlClasificacion.DataSource = get_GlobalDTClasificaciones(UsuarioActual.CveEmpresa);
DdlClasificacion.DataBind();
DdlClasificacion.Items.Insert(0, new ListItem("Todos", "-1"));
ClsClasificaciones ObjClasificaciones = new ClsClasificaciones();
if (ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa))
{
DdlClasificacion.DataSource = ObjClasificaciones.DtResultados;
}
ObjClasificaciones.Dispose();
DdlClasificacion.DataBind();
DdlClasificacion.Items.Insert(0, new ListItem("Todos", "-1"));
DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) == "1");
if (UsuarioActual.Empresa.Funcionalidad(105) == "1")
{
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue);
DdlPS.SelectedText = "";
DdlPS.SelectedValue = "-1";
}
else
{
DdlPS.ddl.Items.Clear();
DdlPS.ddl.DataSource = get_GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion: DdlClasificacion.SelectedValue.ToEntero());
DdlPS.ddl.DataBind();
DdlPS.ddl.Items.Insert(0, new ListItem("Seleccione el Producto", "-1"));
}
if (UsuarioActual.Empresa.Funcionalidad(130) == "1")
{
DivMarca.Visible = true;
ClsProductosServicios ObjMarcas = new ClsProductosServicios();
if (ObjMarcas.GetMarcas(UsuarioActual.CveEmpresa))
{
DdlMarca.DataSource = ObjMarcas.DtResultados;
}
ObjMarcas.Dispose();
DdlMarca.DataBind();
}
DdlMarca.Items.Insert(0, new ListItem(" Todas ", "-1"));
}
private void CargaDatos()
{
DateTime FechaInicial = DateTime.MinValue;
DateTime FechaFinal = DateTime.MaxValue;
if (TxtFechaI.Text.Trim() != "" && TxtFechaI.Text != "__/__/____")
{
FechaInicial = TxtFechaI.Text.ToDate();
}
if (TxtFechaF.Text.Trim() != "" && TxtFechaF.Text != "__/__/____")
{
FechaFinal = TxtFechaF.Text.ToDate();
}
ClsInventarios ObjInv = new ClsInventarios();
if (ObjInv.GetRepEntradasSalidasXContrato(UsuarioActual.CveEmpresa,DdlMoneda.SelectedValue.ToEntero(), FechaInicial,
FechaFinal, DdlTipoMovimiento.SelectedValue.ToEntero(),DdlProveedor.SelectedValue.ToEntero(),DdlAlmacen.SelectedValue.ToEntero(),
DdlPS.SelectedValue.ToEntero(),DdlClasificacion.SelectedValue.ToEntero(), DdlMovs.SelectedValue.ToEntero(),DdlMarca.SelectedValue.ToEntero(),
DdlContrato.SelectedValue.ToEntero()))
{
GvM.DataSource = ObjInv.DtResultados;
DtDatos= ObjInv.DtResultados;
}
ObjInv.Dispose();
GvM.DataBind();
UpMov.Update();
}
protected void btConsultar_Click(object sender, EventArgs e)
{
CargaDatos();
}
protected void GvM_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.DBCampo("CvePS").ToEntero() <= 0)
{
e.Row.CssClass = "Totales";
}
else
{
e.Row.Cells[5].BackColor = System.Drawing.Color.LightGray;
e.Row.Cells[9].BackColor = System.Drawing.Color.LightGray;
if (e.Row.DBCampo("SaldoIniCant").ToDouble() <= 0) { e.Row.Cells[2].Text = "-"; }
if (e.Row.DBCampo("EntradaCant").ToDouble() <= 0) { e.Row.Cells[3].Text = "-"; }
if (e.Row.DBCampo("SalidaCant").ToDouble() <= 0) { e.Row.Cells[4].Text = "-"; }
if (e.Row.DBCampo("SaldoFCant").ToDouble() <= 0) { e.Row.Cells[5].Text = "-"; }
if (e.Row.DBCampo("SaldoIniImp").ToDouble() <= 0) { e.Row.Cells[6].Text = "-"; }
if (e.Row.DBCampo("EntradaImp").ToDouble() <= 0) { e.Row.Cells[7].Text = "-"; }
if (e.Row.DBCampo("SalidaImp").ToDouble() <= 0) { e.Row.Cells[8].Text = "-"; }
if (e.Row.DBCampo("SaldoFImp").ToDouble() <= 0) { e.Row.Cells[9].Text = "-"; }
if (e.Row.DBCampo("PrecioVenta").ToDouble() <= 0) { e.Row.Cells[10].Text = "-"; }
}
}
}
protected void DdlClasificacion_SelectedIndexChanged(object sender, EventArgs e)
{
if (UsuarioActual.Empresa.Funcionalidad(105) == "1")
{
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue);
DdlPS.SelectedText = "";
DdlPS.SelectedValue = "-1";
}
else
{
DdlPS.ddl.Items.Clear();
DdlPS.ddl.DataSource = get_GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion: DdlClasificacion.SelectedValue.ToEntero());
DdlPS.ddl.DataBind();
DdlPS.ddl.Items.Insert(0, new ListItem("Seleccione el Producto", "-1"));
}
}
protected void LnkExcel_Click(object sender, EventArgs e)
{
GenerarPDF("EXCEL");
}
protected void LnkPdf_Click(object sender, EventArgs e)
{
GenerarPDF("PDF");
}
protected void GenerarPDF(String Opcion)
{
String FechaI;
if (TxtFechaI.Text == "" || TxtFechaI.Text == "__/__/____") { FechaI = ""; } else { FechaI = $"&emsp;<b>Fecha Inicial:</b> {TxtFechaI.Text}"; }
String FechaF;
if (TxtFechaF.Text == "" || TxtFechaF.Text == "__/__/____") { FechaF = ""; } else { FechaF = $"&emsp;<b>Fecha Final:</b> {TxtFechaF.Text}"; }
String Contrato;
if (DdlContrato.SelectedValue != "-1") { Contrato = $"&emsp;<b>Contrato:</b> {DdlContrato.SelectedItem.Text}"; } else { Contrato = ""; }
String Almacen;
if (DdlAlmacen.SelectedValue != "-1") { Almacen = $"&emsp;<b>Cliente:</b> {DdlAlmacen.SelectedItem.Text}"; } else { Almacen = ""; }
if (DtDatos.Rows.Count > 0)
{
System.IO.FileInfo Imagen = new System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta));
String logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa);
List<ReportParameter> para = new List<ReportParameter>();
para.Add(new ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa));
para.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre));
para.Add(new ReportParameter("FechaImpresion", DateTime.Now.ToString()));
para.Add(new ReportParameter("AgrupadoPor", $"<b>Agrupado Por:</b> {Contrato}{Almacen}{FechaI}{FechaF}"));
if (Imagen.Exists)
{
para.Add(new ReportParameter("LogoPath", logouri));
}
else
{
para.Add(new ReportParameter("LogoPath", ""));
}
ImprimirPDF("Empresas/Grales/Formatos/RepEntradasSalidasXContrato.rdlc", DtDatos, para, "Reporte de Entradas y Salidas X Contrato", Opcion);
}
else
{
Alert("No hay datos consultados", ModExtensiones.TipoMensaje.MsgAdvertencia);
}

View File

@@ -0,0 +1,256 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepEntregasForaneas.aspx.vb" Inherits="Inventarios_RepEntregasForaneas" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte de Guias
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkImprimir" runat="server"><i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Generar Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div id="PFiltros" class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" runat="server" Text="Consultar" class="btn btn-primary" ValidationGroup="Valida"/>
<a href="javascript:;" class="expand"></a>
</div>
<div class="titlefiltros caption">
<div class="row" style="margin-left: 10px;">
<label class="col-md-1 " id="LblDdlSucursal" runat="server" style="width: 90px;margin-top: 5px;">Sucursal:</label>
<div class="col-md-2" id="DivDdlSucursal" runat="server">
<asp:DropDownList ID="DdlSucursal" runat="server" Width="100%" DataTextField="SubProyecto" DataValueField="CveSubProyecto" AppendDataBoundItems="true" Class="table-group-action-input form-control input-inline input-sm select2me">
</asp:DropDownList>
</div>
<label class="col-md-1 " style="width: 80px; margin-top: 5px;">Estatus:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlEstatusFiltro" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="EntregaForaneaEstatus" DataValueField="CveEntregaForaneaEstatus" Class="table-group-action-input form-control input-inline input-small input-sm select2me">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 " style="width: 80px; margin-top: 5px;">Paqueteria:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlPaqueteria" runat="server" Width="100%" AppendDataBoundItems="true" DataTextField="Paqueteria" DataValueField="CvePaqueteria" Class="table-group-action-input form-control input-inline input-small input-sm select2me">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1" style="width: 70px; margin-top: 5px;">Tipo:</label>
<div class="col-md-1">
<asp:DropDownList ID="DdlTipo" runat="server" Width="90%" Class="table-group-action-input form-control input-inline input-small input-sm select2me">
<asp:ListItem Selected="True" Text="Todos" Value="1">Orden Compra</asp:ListItem>
<asp:ListItem Selected="False" Text="Todos" Value="2">Venta</asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
</div>
<div class="portlet-body" style="display: none;">
<div class="row" style="margin-left: 10px;">
<label class="col-md-1 " style="width: 90px;">Fecha Inicial:</label>
<div class="col-md-2">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 138px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="txtFechaI" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendario" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="txtFechaI" PopupButtonID="ImgCalendario" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="rfvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="vcoFfvFI" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<label class="col-md-1 " style="width: 80px;">Fecha Final:</label>
<div class="col-md-2">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 138px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="txtFechaF" runat="server" CssClass="form-control" Text="31/08/2018" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="txtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="txtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<asp:CompareValidator ID="CVFechasRef" runat="server" ForeColor="#a94442" ControlToCompare="txtFechaI" ControlToValidate="txtFechaF" Type="Date" Operator="GreaterThan" Display="None" ErrorMessage="<b><span style='text-decoration: underline;'>ERROR:</span></b><br /><b>''Fecha R.F.''</b> debe ser mayor a Fecha R.I." ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCE2" runat="server" HighlightCssClass="vco" TargetControlID="CVFechasRef" Width="270px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" DataKeyNames="CveEntregaForanea,CveVenta,CveMovimiento,CvePaqueteriaGuia,Guia,GuiaRequerida,CveEntregaForaneaEstatus,Liga"
AutoGenerateColumns="False" EmptyDataText="No se encontraron Datos con los filtros especificados" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn" GridLines="None">
<Columns>
<asp:BoundField DataField="Tipo" HeaderText="Tipo" ItemStyle-Width="5%" />
<asp:BoundField DataField="Nombre" HeaderText="Cliente" ItemStyle-Width="35%" />
<asp:TemplateField HeaderText="Folio" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:HyperLink ID="HLFolio" runat="server" Text='<%# Eval("Folio")%>' />
</ItemTemplate>
<ItemStyle Width="10%" />
</asp:TemplateField>
<asp:BoundField DataField="Fecha" ItemStyle-HorizontalAlign="Center" HeaderText="Fecha" DataFormatString="{0:d}" ItemStyle-Width="10%" />
<asp:TemplateField HeaderText="Guia">
<ItemTemplate>
<asp:TextBox ID="TxtGuia" runat="server" Text='<%# Eval("Guia")%>' Enabled='<%# If(Eval("Guia").ToString.Length = 0, "True", "False") %>'></asp:TextBox>
</ItemTemplate>
<ItemStyle Width="10%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="" ItemStyle-Width="26px">
<ItemTemplate>
<asp:LinkButton runat="server" Width="25px" ID="LnkActualizaGuia" OnClick="LnkActualizaGuia_Click" CssClass="btn btn-circle btn-sm green"
Visible='<%# If(Eval("Guia").ToString.Length = 0, "True", "False") %>' Text="<i tittle='Actualizar Guia' class='fa fa-check'></i>" ToolTip="Actualizar Guia"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField Visible="false" HeaderText="Requerido" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="ChkRequerida" runat="server" Checked='<%# Eval("GuiaRequerida")%>' />
</ItemTemplate>
<ItemStyle Width="5%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Paqueteria">
<ItemTemplate>
<asp:DropDownList ID="DdlPaqueteria" runat="server" DataValueField="CvePaqueteria" DataTextField="Paqueteria" CssClass="select2me form-control" Width="150px"></asp:DropDownList>
</ItemTemplate>
<ItemStyle Width="10%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Estatus">
<ItemTemplate>
<asp:DropDownList ID="DdlEstatus" OnSelectedIndexChanged="DdlEstatus_SelectedIndexChanged" AutoPostBack="true" runat="server" DataValueField="CveEntregaForaneaEstatus" DataTextField="EntregaForaneaEstatus" CssClass="select2me form-control" Width="150px"></asp:DropDownList>
</ItemTemplate>
<ItemStyle Width="10%" />
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Actualizar">
<ItemTemplate>
<asp:LinkButton runat="server" ID="BtnAgregarDetalle" OnClick="BtnAgregarDetalle_click" CssClass="btn btn-circle btn-sm blue" Text="<i class='fa fa-check'></i>" ToolTip="Actualizar"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Liga">
<ItemTemplate>
<asp:HyperLink runat="server" ID="BtnLiga" CssClass="btn btn-circle btn-sm blue" Text="<i class='fa fa-external-link' aria-hidden='true'></i>" ToolTip="Ir" Target="_blank"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<%--BOTON MODAL--%>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Cargar Archivo">
<ItemTemplate>
<asp:LinkButton ID="FileUpload" runat="server" Visible="false" OnClick="UploadModal_ClickDocumentacionGuia" AlternateText="Editar" CausesValidation="False"
CssClass="btn btn-circle btn-sm green" Text="<i title='Subir Documento' class='fa fa-upload' title='Subir Documento' ></i>" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<%--MODAL--%>
<div id="ModalUploadGuiaDocumento" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:UpdatePanel ID="UpModalTitleUploadDocumentoGuia" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Literal ID="LtlModalTitleUploadDocumentoGuia" runat="server">Documentacion </asp:Literal>
</ContentTemplate>
</asp:UpdatePanel>
</h4>
</div>
<div class="modal-body">
<asp:UpdatePanel runat="server" ID="UpModalUploadGuiaDocumento" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-12">
<asp:TextBox ID="TxtFileDocumentacion" CssClass="ADSdropzone hidden" data-maxFile="1" Text="" runat="server"></asp:TextBox>
</div>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtObservacionVenta" CssClass="form-control" MaxLength="50" runat="server"></asp:TextBox>
<label for="<%= TxtObservacionVenta.ClientID.ToString() %>">Observación de la Venta:</label>
<i></i>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="BtnModalGuiaDocumentoUpload" runat="server" ClientIDMode="Static" Text="Guardar" CssClass="btn btn-primary" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
<script>
function LnkGuiaPosback(txtGuia) {
var lGuia = $(txtGuia).val().length;
if (lGuia > 0) {
return true;
} else {
return false;
}
}
</script>
</asp:Content>

View File

@@ -0,0 +1,756 @@
Option Explicit On
Option Strict On
Imports Extensiones
Imports System.IO
Imports System.Data
Imports System.Linq
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepEntregasForaneas
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property DTEstatus As DataTable
Get
Return CType(ViewState("DTEstatus"), DataTable)
End Get
Set(value As DataTable)
ViewState("DTEstatus") = value
End Set
End Property
Property CveEntregaForanea As Integer
Get
If ViewState("CveEntregaForanea") Is Nothing Then
Return -1
Else
Return ViewState("CveEntregaForanea").ToString.ToEntero
End If
End Get
Set(value As Integer)
ViewState("CveEntregaForanea") = value
End Set
End Property
Property CvePaqueteriaGuia As Integer
Get
If ViewState("CvePaqueteriaGuia") Is Nothing Then
Return -1
Else
Return ViewState("CvePaqueteriaGuia").ToString.ToEntero
End If
End Get
Set(value As Integer)
ViewState("CvePaqueteriaGuia") = value
End Set
End Property
Property Guia As String
Get
If ViewState("Guia") Is Nothing Then
Return "-1"
Else
Return ViewState("Guia").ToString
End If
End Get
Set(value As String)
ViewState("Guia") = value
End Set
End Property
Property Estatus As Integer
Get
If ViewState("Estatus") Is Nothing Then
Return -1
Else
Return ViewState("Estatus").ToString.ToEntero
End If
End Get
Set(value As Integer)
ViewState("Estatus") = value
End Set
End Property
Property CvePaqueteria As Integer
Get
If ViewState("CvePaqueteria") Is Nothing Then
Return -1
Else
Return ViewState("CvePaqueteria").ToString.ToEntero
End If
End Get
Set(value As Integer)
ViewState("CvePaqueteria") = value
End Set
End Property
Property CveMovimiento As Integer
Get
If ViewState("CveMovimiento") Is Nothing Then
Return -1
Else
Return ViewState("CveMovimiento").ToString.ToEntero
End If
End Get
Set(value As Integer)
ViewState("CveMovimiento") = value
End Set
End Property
Property Requeriada As Boolean
Get
If ViewState("Requeriada") Is Nothing Then
Return False
Else
Return Boolean.Parse(ViewState("Requeriada").ToString)
End If
End Get
Set(value As Boolean)
ViewState("Requeriada") = value
End Set
End Property
Property GuiaOriginal As String
Get
If ViewState("GuiaOriginal") Is Nothing Then
Return ""
Else
Return ViewState("GuiaOriginal").ToString
End If
End Get
Set(value As String)
ViewState("GuiaOriginal") = value
End Set
End Property
Property CveVenta As Integer
Get
If ViewState("CveVenta") Is Nothing Then
Return -1
Else
Return ViewState("CveVenta").ToString.ToEntero
End If
End Get
Set(value As Integer)
ViewState("CveVenta") = value
End Set
End Property
Property DTDatos As DataTable
Get
If ViewState("DTDatos") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DTDatos"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DTDatos") = value
End Set
End Property
Private Property CorreoPaqueteriaNotificacion As String
Get
If ViewState("CorreoPaqueteriaSinGias") Is Nothing Then
Return "sig.buzon@adsistemas.com"
Else
Return "sig.buzon@adsistemas.com"
End If
End Get
Set(value As String)
ViewState("CorreoPaqueteriaSinGias") = value
End Set
End Property
Property FechaInicio As String
Get
If ViewState("FechaInicio") Is Nothing Then
Return ""
Else
Return ViewState("FechaInicio").ToString
End If
End Get
Set(value As String)
ViewState("FechaInicio") = value
End Set
End Property
Property FechaFin As String
Get
If ViewState("FechaFin") Is Nothing Then
Return ""
Else
Return ViewState("FechaFin").ToString
End If
End Get
Set(value As String)
ViewState("FechaFin") = value
End Set
End Property
#End Region
Private Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim ObjInv As New ClsInventarios
If ObjInv.GetEntregaForaneaEstatus(-1) Then
DTEstatus = ObjInv.DtResultados
DdlEstatusFiltro.DataSource = DTEstatus
End If
DdlPaqueteria.DataSource = GlobalDTPaqueterias
DdlPaqueteria.DataBind()
DdlEstatusFiltro.DataBind()
ObjInv.Dispose()
CargaSucursales()
InicializaFechas()
End If
End Sub
Private Sub InicializaFechas()
Dim FI As New DateTime(DateTime.Now.Year, 1, 1)
FechaInicio = FI.ToShortDateString
FechaFin = DateTime.Today.ToShortDateString
txtFechaI.Text = FechaInicio
txtFechaF.Text = FechaFin
End Sub
Private Sub CargaDatos(Estatus As Integer, Paqueteria As Integer, Tipo As Integer, CveSubProyecto As Integer, FechaInicio As String, FechaFin As String)
Dim ObjInv As New ClsInventarios
If Tipo = 1 Then
If ObjInv.GetEntregasForaneas(Estatus, Paqueteria, UsuarioActual.CveEmpresa, Tipo, CveSubProyecto, FechaInicio, FechaFin) Then
GvDatos.DataSource = ObjInv.DtResultados
DTDatos = ObjInv.DtResultados
Else
GvDatos.DataSource = Nothing
DTDatos = Nothing
End If
GvDatos.Columns(9).Visible = True
GvDatos.Columns(11).Visible = False
Else
If ObjInv.GetEntregasForaneas(Estatus, Paqueteria, UsuarioActual.CveEmpresa, Tipo, CveSubProyecto, FechaInicio, FechaFin) Then
GvDatos.DataSource = ObjInv.DtResultados
DTDatos = ObjInv.DtResultados
Else
GvDatos.DataSource = Nothing
DTDatos = Nothing
End If
GvDatos.Columns(9).Visible = False
GvDatos.Columns(11).Visible = True
End If
ObjInv.Dispose()
GvDatos.DataBind()
UpDatos.Update()
End Sub
Private Sub CargaSucursales()
DdlSucursal.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1)
DdlSucursal.DataBind()
DdlSucursal.Items.Insert(0, New ListItem("Todos", "-1"))
DdlSucursal.SelectedValue = "-1"
End Sub
Public Sub BtnAgregarDetalle_click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
If GvRow.FCDropDownList("DdlEstatus").SelectedValue.ToEntero = 4 And GvRow.FCTextBox("TxtGuia").Text = "" Then
Alert("Es necesario el número de guía.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim ObjInv As New ClsInventarios
Dim TieneError = False
If DdlTipo.SelectedValue.ToEntero = 1 Then
If Not ObjInv.UpdateEntregaForanea(GvRow.DataKey("CveEntregaForanea").ToEntero, GvRow.FCTextBox("TxtGuia").Text, If(GvRow.FCCheckBox("ChkRequerida").Checked, 1, 0), GvRow.FCDropDownList("DdlEstatus").SelectedValue.ToEntero, GvRow.FCDropDownList("DdlPaqueteria").SelectedValue.ToEntero) Then
TieneError = True
End If
Else
If Not ObjInv.UpdateEntregaForanea(0, GvRow.FCTextBox("TxtGuia").Text, If(GvRow.FCCheckBox("ChkRequerida").Checked, 1, 0), GvRow.FCDropDownList("DdlEstatus").SelectedValue.ToEntero, GvRow.FCDropDownList("DdlPaqueteria").SelectedValue.ToEntero, 2, GvRow.DataKey("CvePaqueteriaGuia").ToEntero) Then
TieneError = True
End If
End If
If TieneError Then
Alert("Ocurrió un erro al actualizar la guia", TipoMensaje.MsgError)
Else
Alert("Se actualizó la guia con exito", TipoMensaje.MsgInformacion)
End If
ObjInv.Dispose()
UpDatos.Update()
End Sub
Private Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If DdlTipo.SelectedValue = "2" Then 'Venta
If e.Row.FCTextBox("TxtGuia").Text.Length > 0 Then
e.Row.FCTextBox("TxtGuia").Enabled = False
Else
e.Row.FCLinkButton("LnkActualizaGuia").OnClientClick = $"return LnkGuiaPosback({e.Row.FCTextBox("TxtGuia").ClientID});"
End If
e.Row.FCDropDownList("DdlPaqueteria").Enabled = False
e.Row.FCDropDownList("DdlEstatus").DataSource = DTEstatus.FiltraParametros("CveEntregaForaneaEstatus in(1,2)")
e.Row.FCLinkButton("BtnAgregarDetalle").Visible = False
Else
e.Row.FCDropDownList("DdlEstatus").DataSource = DTEstatus
End If
e.Row.FCDropDownList("DdlEstatus").DataBind()
e.Row.FCDropDownList("DdlEstatus").SelectedValueExist(e.Row.DBCampo("CveEntregaForaneaEstatus"))
e.Row.FCDropDownList("DdlPaqueteria").DataSource = GlobalDTPaqueterias
e.Row.FCDropDownList("DdlPaqueteria").DataBind()
e.Row.FCDropDownList("DdlPaqueteria").SelectedValueExist(e.Row.DBCampo("CvePaqueteria"))
If e.Row.DBCampo("CveVenta").ToString.ToEntero > 0 Then
e.Row.FCHyperLink("HLFolio").NavigateUrl = $"/Ventas/Ventas.aspx?CveVenta={e.Row.DBCampo("CveVenta")}"
End If
If e.Row.DBCampo("CveOC").ToString.ToEntero > 0 Then
e.Row.FCHyperLink("HLFolio").NavigateUrl = $"/OC/OC.aspx?CveOC={e.Row.DBCampo("CveOC")}"
End If
e.Row.FCHyperLink("BtnLiga").NavigateUrl = String.Format(e.Row.DBCampo("Liga"), e.Row.DBCampo("Guia"))
UpDatos.Update()
End If
End Sub
Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
CargaDatos(DdlEstatusFiltro.SelectedValue.ToEntero, DdlPaqueteria.SelectedValue.ToEntero, DdlTipo.SelectedValue.ToEntero, DdlSucursal.SelectedValue.ToEntero, txtFechaI.Text, txtFechaF.Text)
End Sub
#Region "M O D A L D O C"
Public Sub UploadModal_ClickDocumentacionGuia(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim CveMovimiento As Integer = GvRow.DataKey("CveMovimiento").ToEntero
CveEntregaForanea = GvRow.DataKey("CveEntregaForanea").ToEntero
CvePaqueteriaGuia = GvRow.DataKey("CvePaqueteriaGuia").ToEntero
'CvePaqueteria = GvRow.DataKey("CvePaqueteria").ToEntero
Guia = GvRow.FCTextBox("TxtGuia").Text
GuiaOriginal = GvRow.DataKey("Guia").ToString
Requeriada = GvRow.FCCheckBox("ChkRequerida").Checked
Estatus = GvRow.FCDropDownList("DdlEstatus").SelectedValue.ToEntero
CvePaqueteria = GvRow.FCDropDownList("DdlPaqueteria").SelectedValue.ToEntero
CveMovimiento = GvRow.DataKey("CveMovimiento").ToEntero
CveVenta = GvRow.DataKey("CveVenta").ToEntero
RegistraScript("$('#ModalUploadGuiaDocumento').modal({ backdrop: 'static', keyboard: false});")
End Sub
Protected Sub BtnModalGuiaDocumentoUpload_Click(sender As Object, e As EventArgs) Handles BtnModalGuiaDocumentoUpload.Click
Dim FileExtension As String = "-1"
Dim Filesgral As List(Of Archivo) = TxtFileDocumentacion.getfiles().Archivos
Dim Filename As String = ""
'Dim CvePaqueteriaGuia As String = GvDatos.DataKeys("CvePaqueteriaGuia").ToString()
For Each fileItem As Archivo In Filesgral
Try
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "")
Dim rutaDestino As String = UsuarioActual.Empresa.Ruta & "Documentos\Guias\" & CvePaqueteriaGuia & "." & FileExtension
If Not System.IO.Directory.Exists(UsuarioActual.Empresa.Ruta & "Documentos\Guias\") Then
System.IO.Directory.CreateDirectory(UsuarioActual.Empresa.Ruta & "Documentos\Guias\")
End If
If System.IO.File.Exists(rutaDestino) Then
System.IO.File.Delete(rutaDestino)
End If
System.IO.File.Copy(fileItem.FileUrl, rutaDestino)
Dim ObjInv As New ClsInventarios
Dim TieneError = False
If DdlTipo.SelectedValue.ToEntero = 1 Then
If Not ObjInv.UpdateEntregaForanea(CveEntregaForanea, Guia, If(Requeriada, 1, 0), Estatus, CvePaqueteria) Then
TieneError = True
Else
Alert("Actualizado Correctamente")
End If
Else
If Not ObjInv.UpdateEntregaForanea(CveEntregaForanea, Guia, If(Requeriada, 1, 0), Estatus, CvePaqueteria:=CvePaqueteria, Tipo:=2, CvePaqueteriaGuia:=CvePaqueteriaGuia.ToEntero, Extencion:=FileExtension) Then
TieneError = True
Else
EnviarCorreoNotificacionEntrega(1, CvePaqueteriaGuia, rutaDestino)
GuardarBitacora(CveVenta, rutaDestino, TxtObservacionVenta.Text)
If GuiaOriginal <> Guia Then
EnviarCorreoNotificacionEntrega(2, CvePaqueteriaGuia, "")
End If
Alert("Actualizado Correctamente")
End If
End If
ObjInv.Dispose()
UpDatos.Update()
TxtFileDocumentacion.Text = ""
TxtObservacionVenta.Text = ""
UpModalUploadGuiaDocumento.Update()
Catch ex As Exception
OnError("Error al cargar archivo", ex)
End Try
Next
RegistraScript("$('#ModalUploadGuiaDocumento').modal('hide')", "hidemodal3")
End Sub
Private Sub GuardarBitacora(CveVenta As Integer, RutaAdjunto As String, Obser As String)
If File.Exists(RutaAdjunto) Then
Dim FI As New FileInfo(RutaAdjunto)
Dim FileExtension As String = FI.Extension
Dim ArchivoDestino As String = ""
Dim ObjEventos As New ClsOIEventos()
Try
If ObjEventos.AddEventoBitacora(Obser, String.Format("{0}", FileExtension), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveVenta) Then
ArchivoDestino = $" {Server.MapPath("~")}\Empresas\{UsuarioActual.CveEmpresa}\OI\OI{ObjEventos.CveEvento }{FileExtension}"
If FI.Name <> "" Then
'Filename.FilesMove(String.Format("OI{0}", ObjEventos.CveEvento.ToString), String.Format("Empresas\{0}\OI", UsuarioActual.CveEmpresa))
If Not System.IO.Directory.Exists($" {Server.MapPath("~")}\Empresas\{UsuarioActual.CveEmpresa}\OI\") Then
System.IO.Directory.CreateDirectory($" {Server.MapPath("~")}\Empresas\{UsuarioActual.CveEmpresa}\OI\")
End If
If File.Exists(ArchivoDestino) Then
File.Delete(ArchivoDestino)
End If
File.Copy(RutaAdjunto, ArchivoDestino)
End If
End If
Catch ex As Exception
OnError("Se presento un error al guardar la Bitacora", ex)
End Try
ObjEventos.Dispose()
' CargaEventoBitacora()
End If
' UPEventoBitacora.Update()
End Sub
Private Sub EnviarCorreoNotificacionEntrega(Tipo As Integer, CvePaqueteriaGuia As Integer, RutaArchivoAdjunto As String, Optional UpGuia As Boolean = False)
Dim SerieFolio As String = ""
Dim NombreComercial As String = ""
Dim Destinatario As String = ""
Dim Paqueteria As String = ""
Dim Guia As String = ""
Dim Rastreo As String = ""
Dim CveMovimiento As Integer = 0
Dim ObjInventarios As New ClsInventarios
Dim DTResultado As New DataTable
Dim DTDetalles As New DataTable
If ObjInventarios.GetPaqueteriaGuia(-1, UsuarioActual.CveEmpresa, CvePaqueteriaGuia:=CvePaqueteriaGuia) Then
DTResultado = ObjInventarios.DtResultados
If DTResultado.Rows.Count > 0 Then
SerieFolio = DTResultado.Rows(0)("SerieFolio").ToString
NombreComercial = DTResultado.Rows(0)("NombreComercial").ToString
Destinatario = DTResultado.Rows(0)("Mail").ToString
Paqueteria = DTResultado.Rows(0)("Paqueteria").ToString
Guia = DTResultado.Rows(0)("Guia").ToString
Rastreo = DTResultado.Rows(0)("Rastreo").ToString
CveMovimiento = DTResultado.Rows(0)("CveMovimiento").ToString.ToEntero
Else
ObjInventarios.Dispose()
Exit Sub
End If
Else
ObjInventarios.Dispose()
Exit Sub
End If
If ObjInventarios.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
DTDetalles = ObjInventarios.DtResultados
If DTResultado.Rows.Count > 0 Then
'continua
Else
ObjInventarios.Dispose()
Exit Sub
End If
Else
ObjInventarios.Dispose()
Exit Sub
End If
ObjInventarios.Dispose()
Dim Correo As New ClsSisMail()
Dim Asunto As String = UsuarioActual.Empresa.NombreCorto & " Entrega de pedido: " & SerieFolio
Dim Cuerpo As New StringBuilder
Select Case Tipo
Case 1
If Destinatario.Length > 0 Then
Cuerpo.AppendLine($"Estimado {NombreComercial} le informamos que los productos de la factura {SerieFolio} con Guia {Guia}, paquetería {Paqueteria} han sido entregados.<br><br>")
Cuerpo.AppendLine("<table><tr>")
Cuerpo.AppendLine("<th>Cantidad</th><th>Producto</th>")
For Each Drow As DataRow In DTDetalles.Rows
Cuerpo.AppendLine($"<tr><td>{Drow("Cantidad").ToString.ToEntero }</td><td>{Drow("PS").ToString}</td></tr>")
Next
Cuerpo.AppendLine("</tr></table>")
Cuerpo.AppendLine("<br><br>Dudas y aclaraciones departamento de ateción al cliente Tel. 2142200.")
'Destinatario = "rakcsle.rakcsle@gmail.com"
Dim ArchivoAdjunto As New ClsSisMail.ArchivoMail
Dim ListaAdjuntos As New List(Of ClsSisMail.ArchivoMail)
If File.Exists(RutaArchivoAdjunto) Then
ArchivoAdjunto.ArchivoBinario() = File.ReadAllBytes(RutaArchivoAdjunto)
ArchivoAdjunto.Ruta = RutaArchivoAdjunto
ArchivoAdjunto.NombreArchivo = New FileInfo(RutaArchivoAdjunto).Name
ListaAdjuntos.Add(ArchivoAdjunto)
End If
If ListaAdjuntos.Count > 0 Then
If Correo.SendMail(UsuarioActual.Empresa, Destinatario, Asunto, Cuerpo.ToString, Archivos:=ListaAdjuntos) Then
' Alert("Correo enviado existosamente a " & Destinatario)
Else
' Alert("Se presento un error al enviar el correo a " & Destinatario)
End If
Else
If Correo.SendMail(UsuarioActual.Empresa, Destinatario, Asunto, Cuerpo.ToString) Then
' Alert("Correo enviado existosamente a " & Destinatario)
Else
' Alert("Se presento un error al enviar el correo a " & Destinatario)
End If
End If
End If
Exit Select
Case 2
Cuerpo.AppendLine($"Se informa que en la venta {SerieFolio} se agrego la guia {Guia } de la paqueteria {Paqueteria}, usuario { UsuarioActual.Nombre }.<br><br>")
If DTDetalles IsNot Nothing AndAlso DTDetalles.Rows.Count > 0 Then
Cuerpo.AppendLine("<table><tr>")
Cuerpo.AppendLine("<th>Cantidad</th><th>Producto</th>")
For Each Drow As DataRow In DTDetalles.Rows
Cuerpo.AppendLine($"<tr><td>{Drow("Cantidad").ToString.ToEntero }</td><td>{Drow("PS").ToString}</td></tr>")
Next
Cuerpo.AppendLine("</tr></table>")
End If
Correo.SendMail(UsuarioActual.Empresa, Destinatario, Asunto, Cuerpo.ToString)
'Destinatario = "rakcsle.rakcsle@gmail.com"
Dim ArchivoAdjunto As New ClsSisMail.ArchivoMail
Dim ListaAdjuntos As New List(Of ClsSisMail.ArchivoMail)
If File.Exists(RutaArchivoAdjunto) Then
ArchivoAdjunto.ArchivoBinario() = File.ReadAllBytes(RutaArchivoAdjunto)
ArchivoAdjunto.Ruta = RutaArchivoAdjunto
ArchivoAdjunto.NombreArchivo = New FileInfo(RutaArchivoAdjunto).Name
ListaAdjuntos.Add(ArchivoAdjunto)
End If
If ListaAdjuntos.Count > 0 Then
If Correo.SendMail(UsuarioActual.Empresa, Destinatario, Asunto, Cuerpo.ToString, Archivos:=ListaAdjuntos) Then
' Alert("Correo enviado existosamente a " & Destinatario)
Else
' Alert("Se presento un error al enviar el correo a " & Destinatario)
End If
Else
If Correo.SendMail(UsuarioActual.Empresa, Destinatario, Asunto, Cuerpo.ToString) Then
' Alert("Correo enviado existosamente a " & Destinatario)
Else
' Alert("Se presento un error al enviar el correo a " & Destinatario)
End If
End If
Exit Select
End Select
End Sub
#End Region
Protected Sub DdlEstatus_SelectedIndexChanged(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, DropDownList).NamingContainer, GridViewRow)
If GvRow.FCDropDownList("DdlEstatus").SelectedValue.ToEntero = 2 Then
GvRow.FCLinkButton("FileUpload").Visible = True
Else
GvRow.FCLinkButton("FileUpload").Visible = False
End If
End Sub
Protected Sub LnkActualizaGuia_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim CvePaqueteriaGuia As Integer = GvRow.DataKey("CvePaqueteriaGuia").ToString.ToEntero
Dim Guia As String = GvRow.FCTextBox("TxtGuia").Text.Trim
Dim objInventario As New ClsInventarios
If objInventario.UpdatePaqueteriaGuia(CvePaqueteriaGuia, -1, Guia) Then
CargaDatos(DdlEstatusFiltro.SelectedValue.ToEntero, DdlPaqueteria.SelectedValue.ToEntero, DdlTipo.SelectedValue.ToEntero, DdlSucursal.SelectedValue.ToEntero, txtFechaI.Text, txtFechaF.Text)
If Guia.Trim.Length = 0 Then
'Envia notificacion se elimino guia vacia eliminada
EnviarCorreoNotificacionEntrega(2, CvePaqueteriaGuia, "")
End If
End If
objInventario.Dispose()
End Sub
#Region " EXPORTAR - PDF - EXCEL "
Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
ImprimiReporte("EXCEL")
End Sub
Private Sub LnkImprimir_Click(sender As Object, e As EventArgs) Handles LnkImprimir.Click
ImprimiReporte("PDF")
End Sub
Protected Sub ImprimiReporte(Optional Formato As String = "PDF")
Dim Estatus As String = DdlEstatusFiltro.SelectedItem.Text
Dim Paqueteria As String = DdlPaqueteria.SelectedItem.Text
Dim Tipo As String = DdlTipo.SelectedItem.Text
Dim RutaPDF As String
Dim Ruta As String = $"{AppDomain.CurrentDomain.BaseDirectory}Empresas\{UsuarioActual.CveEmpresa}\"
RutaPDF = $"{Ruta}\Formatos\RepEntregasForaneas.rdlc"
If Not File.Exists(RutaPDF) Then
RutaPDF = "Empresas/Grales/Formatos/RepEntregasForaneas.rdlc"
End If
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("pEmp", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("pImg", New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Logo.png", UsuarioActual.CveEmpresa))).AbsoluteUri))
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", $" <b>Estado:</b>{Estatus} <b>Paqueteria:</b>{Paqueteria} <b>Tipo:</b>{Tipo}"))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF(RutaPDF, DTDatos, params, "RepEntregasForaneas" & Now.ToString("yyyyMMddhhmmss"), Formato)
End Sub
#End Region
End Class

View File

@@ -0,0 +1,268 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepExistenciasCostos.aspx.vb" Inherits="Inventarios_RepExistenciasCostos" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.table-GvM .SubTotales2 {
background-color: #FAFAFA;
}
.table-GvM .SubTotales {
background-color: #E5E5E5;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Reporte de Existencias y Costos
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkImprimir" runat="server"><i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Generar Excel</asp:LinkButton>
</li>
<li>
<asp:HyperLink NavigateUrl="#" data-toggle="modal" data-target="#DivPersonalizar" ID="ImgPersonalizar" runat="server"> <i class="fa fa-pencil"></i> Personalizar</asp:HyperLink>
</li>
<li>
<asp:HyperLink ID="LnkKardex" runat="server" Visible="false"> Ver Kardex</asp:HyperLink>
</li>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpFiltros" runat="server">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server">
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="btConsultar" runat="server" ValidationGroup="GrpConsultar" Text="Consultar" class="btn btn-primary" />
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption" style="position: relative;">
<div class="row">
<label class="col-md-1">Proveedor:</label>
<div class="col-md-3">
<asp:DropDownList ID="DdlProveedor" runat="server" DataValueField="CveProveedor" DataTextField="RazonSocial" Class="form-control input-sm select2me" Style="max-width: 400px !important;"></asp:DropDownList>
</div>
<label class="col-md-1">Fecha Inicio:</label>
<div class="col-md-2">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaI" runat="server" CssClass="form-control" Style="width: 118px;" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<label class="col-md-1">Fecha Fin:</label>
<div class="col-md-2">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
<asp:TextBox ID="TxtFechaF" runat="server" CssClass="form-control" Style="width: 118px;" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
<div class="row">
<label class="col-md-1">Concepto:</label>
<div class="col-md-3">
<asp:DropDownList ID="DdlTipoMovimiento" runat="server" DataTextField="Concepto" DataValueField="CveConcepto" Class="form-control input-sm select2me"></asp:DropDownList>
</div>
<label class="col-md-1">Almacen</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlAlmacen" runat="server" CssClass="form-control input-sm select2me" DataTextField="Almacen" DataValueField="CveAlmacen"></asp:DropDownList>
</div>
<label class="col-md-1">Moneda:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlMoneda" runat="server" DataTextField="Moneda" DataValueField="CveMoneda" Class="form-control input-sm select2me"></asp:DropDownList>
</div>
</div>
<div class="row">
<label class="col-md-1 truncate">Clasificación:</label>
<div class="col-md-3">
<asp:DropDownList ID="DdlClasificacion" CssClass="form-control select2me" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Class="table-group-action-input form-control input-inline input-small input-sm">
<asp:ListItem Selected="True" Text="Seleccione la Clasificación (Todas)" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 truncate">Producto:</label>
<div class="col-md-2 ">
<asp:DropDownList ID="ddlProducto" CssClass="form-control select2me" runat="server" DataTextField="PSCodigo" DataValueField="CvePS" Class="table-group-action-input form-control col-md-3"></asp:DropDownList>
<select id="DdlProductows" runat="server" class="form-control col-md-3"></select>
<asp:HiddenField ID="HFProducto" runat="server" />
<asp:Button ID="myhidenbutton" CssClass="hidden" runat="server" Text="Button" />
<asp:HiddenField ID="HFTProducto" runat="server" />
</div>
<div class="col-md-1 truncate">Personal</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlPersonal" runat="server" CssClass="select2me" Width="100%" DataValueField="CvePersonal" DataTextField="CodigoNombreCompleto"></asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div class="row col-md-12" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<br />
<br />
<asp:UpdatePanel ID="UPPEquiv" runat="server" RenderMode="Inline" UpdateMode="Conditional" ViewStateMode="Inherit">
<ContentTemplate>
<div id="gv-container" class="table-VH-container">
<asp:GridView ID="GvM" runat="server" ShowHeader="True" EmptyDataText="Aún no hay registros." AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False"
ShowHeaderWhenEmpty="false" CssClass="table table-advance table-GvM Widthall" GridLines="None">
<Columns>
<asp:HyperLinkField HeaderText="Fecha" ItemStyle-Width="75px" DataTextField="FechaMovto" ItemStyle-CssClass="Texto" DataNavigateUrlFields="CveMovimiento" DataNavigateUrlFormatString="/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" />
<asp:BoundField HeaderText="Almacen" ItemStyle-Width="150px" DataField="Almacen" />
<asp:HyperLinkField HeaderText="Folio" ItemStyle-Width="50px" DataTextField="Folio" ItemStyle-CssClass="Texto" DataNavigateUrlFields="CveMovimiento" DataNavigateUrlFormatString="/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" />
<asp:BoundField HeaderText="Activo Fijo" DataField="CodigoAF" ItemStyle-HorizontalAlign="Left" Visible="false" />
<asp:BoundField HeaderText="SubProyecto" DataField="SubProyecto" ItemStyle-HorizontalAlign="Left" Visible="false" />
<asp:BoundField HeaderText="Entradas" ItemStyle-Width="75px" DataField="Entradas" DataFormatString="{0:#,###.####}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Costo" ItemStyle-Width="75px" DataField="CostoE" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Importe" ItemStyle-Width="75px" DataField="ImporteE" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Salidas" ItemStyle-Width="75px" DataField="Salidas" DataFormatString="{0:#,###.####}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Costo" ItemStyle-Width="75px" DataField="CostoS" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Importe" ItemStyle-Width="75px" DataField="ImporteS" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Existencia" ItemStyle-Width="75px" DataField="ExistenciaAcum" DataFormatString="{0:#,###.####}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Valor" ItemStyle-Width="75px" DataField="ValorAcum" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right"/>
</Columns>
</asp:GridView>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btConsultar" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="UPPersonalizar" UpdateMode="Conditional">
<ContentTemplate>
<div id="DivPersonalizar" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="Label1" runat="server" ClientIDMode="Static" Text="Personalizar Columnas"></asp:Label></h4>
</div>
<div class="modal-body">
<table class="table table-striped table-advance table-hover Widthall">
<tbody>
<tr>
<td style="text-align: left;">
<asp:CheckBox ID="ChkActivoFijo" runat="server" Text="Activo Fijo" /></td>
<td style="text-align: left;">
<asp:CheckBox ID="ChkSubProyecto" runat="server" Text="SubProyecto" /></td>
</tr>
</tbody>
</table>
</div>
<div class="modal-footer">
<asp:Button ID="BtnPersonalizar" runat="server" Text="Personalizar" class="btn btn-success" />
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script type="text/javascript">
function LimpiaPS() {
$('#<%= HFProducto.ClientID %>').val(-1);
$('#<%= HFTProducto.ClientID%>').val('Todos');
$('#<%= myhidenbutton.ClientID %>').click();
}
function AddItem(Text, Value) {
var opt = document.createElement("option");
if (document.getElementById('<%= DdlProductows.ClientID%>')) {
document.getElementById('<%= DdlProductows.ClientID%>').options.add(opt);
opt.text = Text;
opt.value = Value;
}
}
function opsws() {
if ($("#<%= DdlProductows.ClientID%>")) {
if (!($('#<%= HFProducto.ClientID %>').val() === '')) {
AddItem($('#<%= HFTProducto.ClientID%>').val(), $('#<%= HFProducto.ClientID %>').val());
}
}
if ($("#<%= DdlProductows.ClientID%>").data('creado') === '1') { } else {
$("#<%= DdlProductows.ClientID%>").data('creado', '1')
$("#<%= DdlProductows.ClientID%>").select2({
ajax: {
url: "/Ashx/SIGWeb.ashx",
dataType: 'json',
delay: 250,
data: function (params) {
return {
Name: params.term, // search term
Metodo: 'getps'
};
},
processResults: function (data, params) {
// parse the results into the format expected by Select2
// since we are using custom formatting functions we do not need to
// alter the remote JSON data, except to indicate that infinite
// scrolling can be used
params.page = params.page || 1;
data.push({ id: -1, text: 'Todos' });
return {
results: data,
pagination: {
more: (params.page * 30) < data.total_count
}
};
},
cache: true
},
escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
minimumInputLength: 3
});
}
if ($("#<%= DdlProductows.ClientID%>")) {
$("#<%= DdlProductows.ClientID%>").on("select2:select", function (e) { console.log(e); $('#<%= HFProducto.ClientID %>').val(e.params.data.id); $('#<%= HFTProducto.ClientID%>').val(e.params.data.text); $('#<%= myhidenbutton.ClientID %>').click(); });
}
if ($("#<%= DdlProducto.ClientID%>")) {
$("#<%= DdlProducto.ClientID%>").on("select2:select", function (e) { console.log(e); $('#<%= HFProducto.ClientID %>').val(e.params.data.id); $('#<%= HFTProducto.ClientID%>').val(e.params.data.text); });
}
}
Sys.Application.add_load(function (s, e) {
var Tam = TamañoVentana();
var Alto = Tam.height - 350;
if (Alto < 100) {
Alto = 100;
}
$('#<%= GvM.ClientID%>').ADScroll({ 'height': Alto });
opsws();
});
</script>
</asp:Content>

View File

@@ -0,0 +1,471 @@
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepExistenciasCostos
Inherits ClsPaginas
#Region "PROPIEDADES"
Public Property DtData As DataTable
Get
Return CType(ViewState("DtData"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtData") = value
End Set
End Property
Public Property DtData2 As DataTable
Get
Return CType(ViewState("DtData2"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtData2") = value
End Set
End Property
Private Property TmpPS As DataTable
Get
Return CType(ViewState("TmpPS"), DataTable)
End Get
Set(value As DataTable)
ViewState("TmpPS") = value
End Set
End Property
Public Property FechaFinal As String
Get
Return ViewState("FechaFinal").ToString
End Get
Set(value As String)
ViewState("FechaFinal") = value
End Set
End Property
Public Property FechaInicial As String
Get
Return ViewState("FechaInicial").ToString
End Get
Set(value As String)
ViewState("FechaInicial") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
TxtFechaI.Text = New Date(Now.Year, Now.Month, 1).ToShortDateString
TxtFechaF.Text = Now.LastDayOfMonth
If Request("CvePS") IsNot Nothing AndAlso Request("CveProveedor") IsNot Nothing AndAlso
Request("CveMoneda") IsNot Nothing AndAlso Request("CveConcepto") IsNot Nothing AndAlso
Request("FechaI") IsNot Nothing AndAlso Request("FechaF") IsNot Nothing Then
' Alert(Request("CvePS").ToString, TipoMensaje.MsgAdvertencia)
Dim CveAlmacen = IfNull(Request("CveAlmacen"), "-1").ToString.ToEntero
CargaDatos(Request("CvePS").ToString.Trim.ToEntero,
Request("CveProveedor").ToString.Trim.ToEntero,
Request("CveMoneda").ToString.Trim.ToEntero,
Request("CveConcepto").ToString.Trim.ToEntero,
If(Request("FechaI").ToString.Trim <> "-1", Request("FechaI").ToString.Trim.ToDate, MinFecha),
If(Request("FechaF").ToString.Trim <> "-1", Request("FechaF").ToString.Trim.ToDate, MaxFecha),
CveAlmacen,
IIf(Request("CVECLASIFICACION") Is Nothing, -1, Request("CveClasificacion").ToEntero),
IIf(Request("CvePersonal") Is Nothing, -1, Request("CvePersonal").ToEntero)
)
Panel1.Visible = False
Else
Panel1.Visible = True
CargaCombos()
End If
'CargaPS()
CargaPermisos()
End If
End Sub
Private Sub CargaPermisos()
Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201)
GvM.Columns(6).Visible = TienePermisoImportes
GvM.Columns(7).Visible = TienePermisoImportes
GvM.Columns(9).Visible = TienePermisoImportes
GvM.Columns(10).Visible = TienePermisoImportes
GvM.Columns(12).Visible = TienePermisoImportes
End Sub
Public Sub CargaCombos()
DdlMoneda.DataSource = GlobalDTMonedas()
DdlMoneda.DataBind()
DdlMoneda.Items.Insert(0, New ListItem("Todos", "-1"))
DdlTipoMovimiento.DataSource = GlobalDTInvConceptos()
DdlTipoMovimiento.DataBind()
DdlTipoMovimiento.Items.Insert(0, New ListItem("Todos", "-1"))
DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
DdlProveedor.DataBind()
DdlProveedor.Items.Insert(0, New ListItem("Todos", "-1"))
DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa)
DdlPersonal.DataBind()
DdlPersonal.Items.Insert(0, New ListItem("Todos", "-1"))
'Llenar el dropdownlist de Productosy servicios
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
ddlProducto.Visible = False
'DdlProductows.Items.Insert(0, New ListItem("Todos", "-1"))
Else
Dim productos As New ClsProductosServicios
If productos.GetPS(-1, -1, UsuarioActual.CveEmpresa) Then
TmpPS = productos.DtResultados.FiltraParametros("", "PS")
ddlProducto.DataSource = TmpPS
End If
productos.Dispose()
ddlProducto.DataBind()
DdlProductows.Visible = False
End If
DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1)
DdlAlmacen.DataBind()
DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
If Not IsNothing(Request("CveAlmacen")) Then
If DdlAlmacen.Items.FindByValue(Request("CveAlmacen").ToString) Is Nothing Then
Dim CveAlmacen = Request("CveAlmacen").ToString
Dim Almacen As String = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveAlmacen = {Request("CveAlmacen").ToString}").Rows(0)("Almacen").ToString
DdlAlmacen.Items.Insert(0, New ListItem(Almacen, CveAlmacen))
End If
End If
ddlProducto.Items.Insert(0, New ListItem("----", "-1"))
CargaClasificaciones()
End Sub
Private Sub CargaClasificaciones()
If isWhitFamily() Then
DdlClasificacion.DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion")
Else
If UsuarioActual.Empresa.UsaAC Then
DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion")
Else
DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion")
End If
End If
'DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros("", "Clasificacion")
DdlClasificacion.DataBind()
End Sub
Private Function isWhitFamily() As Boolean
Return (UsuarioActual.CveEmpresa = 66)
End Function
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click
Dim CveProveedor As Integer = DdlProveedor.SelectedValue.ToEntero
Dim CveMoneda As Integer = DdlMoneda.SelectedValue.ToEntero
Dim CveConcepto As Integer = DdlTipoMovimiento.SelectedValue.ToEntero
Dim CvePS As Integer = If(HFProducto.Value.ToEntero > 0, HFProducto.Value.ToEntero, -1)
Dim CveAlmacen As Integer = DdlAlmacen.SelectedValue.ToEntero
Dim CveClasificacion As Integer = DdlClasificacion.SelectedValue.ToEntero
Dim fechaI As Date = If(TxtFechaI.Text <> "", TxtFechaI.Text.ToDateTime, MinFecha)
Dim fechaF As Date = If(TxtFechaF.Text <> "", TxtFechaF.Text.ToDateTime, MaxFecha)
CargaDatos(CvePS, CveProveedor, CveMoneda, CveConcepto, fechaI, fechaF, CveAlmacen, CveClasificacion, DdlPersonal.SelectedValue.ToEntero)
End Sub
Protected Sub CargaDatos(CvePS As Integer, CveProveedor As Integer, CveMoneda As Integer, CveConcepto As Integer, FechaI As Date, FechaF As Date, CveAlmacen As Integer, CveClasificacion As Integer, CvePersonal As Integer)
If CvePS > 0 Then
LnkKardex.Visible = True
LnkKardex.NavigateUrl = String.Format("/Inventarios/Kardex.aspx?CvePS={0}", CvePS)
End If
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.RepExistenciasCostos(FechaI, FechaF, CveMoneda, CveProveedor, CveConcepto, CvePS, UsuarioActual.CveEmpresa, CveAlmacen, UsuarioActual.CveUsuario, CveClasificacion, CvePersonal) Then
DtData = ObjInventarios.DtResultados
GvM.DataSource = DtData
FechaInicial = FechaI
FechaFinal = FechaF
End If
ObjInventarios.Dispose()
GvM.DataBind()
End Sub
Protected Sub GvM_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvM.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim TienePermisoImportes = UsuarioActual.TienePermisoProceso(201)
e.Row.Cells(6).Visible = TienePermisoImportes
e.Row.Cells(7).Visible = TienePermisoImportes
e.Row.Cells(9).Visible = TienePermisoImportes
e.Row.Cells(10).Visible = TienePermisoImportes
e.Row.Cells(12).Visible = TienePermisoImportes
Select Case e.Row.DBCampo("Orden").ToEntero
Case 10
e.Row.CssClass = "SubTotales2"
e.Row.Cells(0).Text = e.Row.DBCampo("PS")
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
e.Row.Cells(0).ColumnSpan = 3
e.Row.Cells(1).Visible = False
e.Row.Cells(2).Visible = False
e.Row.Cells(5).Text = ""
e.Row.Cells(6).Text = ""
e.Row.Cells(7).Text = ""
e.Row.Cells(8).Text = ""
e.Row.Cells(9).Text = ""
e.Row.Cells(10).Text = ""
e.Row.Cells(11).Text = ""
e.Row.Cells(12).Text = ""
Case 15
If e.Row.DBCampo("CveMovimiento").ToString.ToEntero <= 0 Then
e.Row.Cells(0).Text = e.Row.DBCampo("FechaMovto")
e.Row.Cells(2).Text = ""
End If
Case 20
e.Row.CssClass = "SubTotales"
e.Row.Cells(0).Text = $"Total: {e.Row.DBCampo("PS")}"
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
e.Row.Cells(0).ColumnSpan = 3
e.Row.Cells(1).Visible = False
e.Row.Cells(2).Visible = False
e.Row.Cells(11).Text = e.Row.DBCampo("ExistenciaTotal").ToDouble().ToString("#,####.####")
e.Row.Cells(12).Text = e.Row.DBCampo("ValorTotal").FormatoNumero
End Select
End If
End Sub
Protected Sub BtnPersonalizar_Click(sender As Object, e As System.EventArgs) Handles BtnPersonalizar.Click
GvM.Columns(3).Visible = ChkActivoFijo.Checked
GvM.Columns(4).Visible = ChkSubProyecto.Checked
UPPEquiv.Update()
End Sub
#Region " IMPRIMIR "
Protected Sub LnkImprimir_Click(sender As Object, e As EventArgs) Handles LnkImprimir.Click
impimir("PDF")
End Sub
Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
impimir("EXCEL")
End Sub
Private Sub impimir(Optional reporte As String = "PDF")
Dim Proveedor = If(DdlProveedor.SelectedValue = "-1", "", $"&emsp;<b>Proveedor:</b> {DdlProveedor.SelectedItem.Text}")
Dim Moneda = If(DdlMoneda.SelectedValue = "-1", "", $"&emsp;<b>Moneda:</b> {DdlMoneda.SelectedItem.Text}")
Dim Concepto = If(DdlTipoMovimiento.SelectedValue = "-1", "", $"&emsp;<b>Concepto:</b> {DdlTipoMovimiento.SelectedItem.Text}")
Dim PS = If(HFProducto.Value.ToEntero > 0, $"&emsp;<b>Producto/Servicio:</b> {GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=HFProducto.Value.ToEntero).Rows(0)("PSCodigo").ToString}", "")
Dim Almacen = If(DdlAlmacen.SelectedValue = " - 1", "", $"&emsp;<b>Almacen: </b> {DdlAlmacen.SelectedItem.Text}")
Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $"&emsp;<b>Clasificacion:</b> {DdlClasificacion.SelectedItem.Text}")
Dim FechaIn As String = $"&emsp;<b>Fecha Inicio:</b> {TxtFechaI.Text}"
Dim FechaFn As String = $"&emsp;<b>Fecha Fin:</b> {TxtFechaF.Text}"
If TxtFechaI.Text = "" Then FechaIn = ""
If TxtFechaF.Text = "" Then FechaFn = ""
If DtData IsNot Nothing Then
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("FechaInicio", FechaIn))
params.Add(New ReportParameter("FechaFin", FechaFn))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", $"{FechaIn} {FechaFn} {Proveedor} {Concepto} {Almacen} {Clasificacion} {PS} {Moneda}"))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepExistenciasCostos.rdlc", DtData, params, "ReporteExistenciasCostos", Formato:=reporte)
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
#End Region
'#Region "UNIFICAR PS"
' Protected Sub BtnCargaPS_Click(sender As Object, e As EventArgs)
' CargaPS()
' End Sub
' Private Sub CargaPS()
' Dim DtPS As DataTable = GlobalDTProductosServicios(UsuarioActual.CveEmpresa)
' DdlPSPrimario.Items.Clear()
' DdlPSUnificado.Items.Clear()
' DdlPSPrimario.Items.Insert(0, New ListItem("Seleccione", "-1"))
' DdlPSUnificado.Items.Insert(0, New ListItem("Seleccione", "-1"))
' DdlPSPrimario.DataSource = DtPS
' DdlPSUnificado.DataSource = DtPS
' DdlPSPrimario.DataBind()
' DdlPSUnificado.DataBind()
' DtPS.Dispose()
' End Sub
' Protected Sub BtnUnificarPS_Click(sender As Object, e As EventArgs)
' If DdlPSPrimario.SelectedValue = DdlPSUnificado.SelectedValue Then
' Alert("El Producto/Servicio a unificar no puede ser el mismo al primario. Por favor verifique y vuelva a intetar.", TipoMensaje.MsgAdvertencia)
' Exit Sub
' End If
' 'Dim ObjPS As New ClsProductosServicios()
' 'If ObjPS.UnificarPS(DdlPSPrimario.SelectedValue.ToEntero, DdlPSUnificado.SelectedValue.ToEntero) Then
' ' Alert("El Producto/Servicio Fue unificado correctamente.", TipoMensaje.MsgInformacion)
' ' RegistraScript("$get('DivUnificarPS').style.display='none';")
' ' DdlPSPrimario.SelectedValue = "-1"
' ' DdlPSUnificado.SelectedValue = "-1"
' ' 'CargaPS()
' 'Else
' ' Alert("Ocurrió un error al unificar el Producto/Servicio. Por favor vuelta a intentar.", TipoMensaje.MsgError)
' 'End If
' 'ObjPS.Dispose()
' Dim CveMovimientoSalida = 0
' Dim CveMovimientoEntrada = 0
' Dim Existencia As Double
' Dim IDPoliza As Integer = 0
' Dim Folio = 0
' Dim Fecha As Date = Date.Now 'TxtFecha.Text.ToDate
' Dim TieneError = False
' Dim TextoError = ""
' Dim ObjInventario As New ClsInventarios
' ObjInventario.IniciaTransacSQL()
' Dim DtAlmacenes As New DataTable
' If ObjInventario.GetAlmacenes() Then
' DtAlmacenes = ObjInventario.DtResultados.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa))
' Else
' TieneError = True
' End If
' If Not TieneError Then
' Dim CvePSPrimario = 0
' Dim CveUMPrimario = 0
' Dim CvePSUnificado = 0
' Dim CveUMUnificado = 0
' Dim DTPS1 As DataTable = GlobalDTProductosServicios(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CvePS = {0}", DdlPSPrimario.SelectedValue.ToEntero))
' Dim DTPS2 As DataTable = GlobalDTProductosServicios(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CvePS = {0}", DdlPSUnificado.SelectedValue.ToEntero))
' For Each dr As DataRow In DtAlmacenes.Rows
' CvePSPrimario = DTPS1.Rows(0)("CvePS").ToString.ToEntero
' CveUMPrimario = DTPS1.Rows(0)("CveUM").ToString.ToEntero
' CvePSUnificado = DTPS2.Rows(0)("CvePS").ToString.ToEntero
' CveUMUnificado = DTPS2.Rows(0)("CveUM").ToString.ToEntero
' 'VALIDA LA EXISTENCIA
' Existencia = ObjInventario.GetExistenciasPS(CvePSUnificado, CveUMUnificado, UsuarioActual.CveEmpresa, dr("CveAlmacen").ToString.ToEntero)
' 'REGISTRA LA SALIDA Y ENTRADA (TRASPASO)
' If Existencia > 0 Then
' 'AGREGAMOS LA SALIDA
' Folio = ObjInventario.GetFolioSiguiente(3, UsuarioActual.CveEmpresa)
' CveMovimientoSalida = ObjInventario.AddMovimiento(dr("CveAlmacen").ToString.ToEntero, 3, 1, Fecha, Folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1)
' If CveMovimientoSalida > 0 Then
' If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Existencia, CveUMUnificado, CvePSUnificado, 0, -1) Then
' TieneError = True
' TextoError = "Ocurrió un error al guardar los movimientos de salida"
' Exit For
' End If
' Else
' TieneError = True
' TextoError = "No se pudo generar el movimiento de salida correctamente"
' Exit For
' End If
' 'AGREGAMOS LA ENTRADA
' Folio = ObjInventario.GetFolioSiguiente(2, UsuarioActual.CveEmpresa)
' CveMovimientoEntrada = ObjInventario.AddMovimiento(1, 2, 1, Fecha, Folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1)
' If CveMovimientoEntrada > 0 Then
' If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
' For Each dr2 As DataRow In ObjInventario.DtResultados.Rows
' If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, dr2("Cantidad").ToString.ToDouble, dr2("CveUM").ToString.ToEntero, CvePSPrimario, dr2("PU").ToString.ToDouble, -1) Then
' TieneError = True
' TextoError = "Ocurrió un error al guardar los movimientos de entrada"
' Exit For
' End If
' Next
' If TieneError Then Exit For
' Else
' Exit For
' TextoError = "Ocurrió un error al guardar los movimientos de entrada"
' End If
' Else
' TieneError = True
' TextoError = "No se pudo generar el movimiento de entrada correctamente"
' Exit For
' End If
' End If
' Next
' DTPS1.Dispose()
' DTPS2.Dispose()
' End If
' If Not TieneError Then
' ObjInventario.Commit()
' Alert("El producto se ha unificado correctamente.", TipoMensaje.MsgInformacion)
' CargaPS()
' Else
' ObjInventario.RollBack()
' Alert(TextoError, TipoMensaje.MsgError)
' End If
' ObjInventario.Dispose()
' End Sub
' Private Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClasificacion.SelectedIndexChanged
' If DdlClasificacion.SelectedValue = "-1" Then
' ddlProducto.DataSource = TmpPS
' Else
' If isWhitFamily() Then
' ddlProducto.DataSource = TmpPS.FiltraParametros(String.Format("CveSubFamilia={0}", DdlClasificacion.SelectedValue), "PS")
' Else
' ddlProducto.DataSource = TmpPS.FiltraParametros(String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue), "PS")
' End If
' End If
' ddlProducto.Items.Clear()
' ddlProducto.DataBind()
' ddlProducto.Items.Insert(0, New ListItem("----", "-1"))
' End Sub
' #End Region
End Class

114
Inventarios/RepFletes.aspx Normal file
View File

@@ -0,0 +1,114 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepFletes.aspx.vb" Inherits="Compras_RepFletes" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.dataTables_scrollHead {
background-color: #95A5A6;
color: white;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte de Costo Indirecto
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<li>
<asp:LinkButton ID="ImgAdd" PostBackUrl="/Inventarios/Fletes.aspx" CommandArgument="-1" runat="server"><i class="fa fa-plus-circle"></i> Registrar Nuevo Flete</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpFiltros" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultarFiltros" OnClick="BtnConsultarFiltros_Click" runat="server" Text="Consultar" ValidationGroup="GrpFiltros" class="btn btn-primary" />
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1" style="max-width: 70px">Folio:</div>
<div class="col-md-1">
<asp:TextBox runat="server" Width="80px" ID="TxtFolio"></asp:TextBox>
</div>
<div class="col-md-1" style="max-width: 100px;">Proveedor:</div>
<div class="col-md-3">
<asp:DropDownList runat="server" ID="DdlProveedor" Width="100%" DataTextField="RazonSocial" DataValueField="CveProveedor" CssClass="select2me"></asp:DropDownList>
</div>
<div class="col-md-1" style="max-width: 90px">Fecha Inicio:</div>
<div class="col-md-2">
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy" style="margin-bottom: -15px;">
<asp:TextBox ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" Onblur="Recalculafechapago();" ValidationGroup="GrpGuardar" Width="80px" ClientIDMode="Static"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton runat="server" ID="ImgFechaI" class="btn default"> <i class="fa fa-calendar"></i> </asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender ID="CalendarioI" runat="server" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="CVFechaI" runat="server" ControlToValidate="TxtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicio''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFechaI" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="col-md-1" style="max-width: 70px">Fecha Fin:</div>
<div class="col-md-2">
<div class="input-group input-sm input-small date date-picker" data-date-format="dd/mm/yyyy" style="margin-bottom: -15px;">
<asp:TextBox ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" Onblur="Recalculafechapago();" ValidationGroup="GrpGuardar" Width="80px" ClientIDMode="Static"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton runat="server" ID="ImgFechaF" class="btn default"> <i class="fa fa-calendar"></i> </asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="CVFechaF" runat="server" ControlToValidate="TxtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Fin''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<table class="table Widthall ">
<tr>
<td style="font-size: 14px; width: 20%; border-right: 3px solid white;"></td>
<td class="dataTables_scrollHead text-center bold" style="font-size: 14px; width: 35%; border-right: 3px solid white;">Flete</td>
<td class="dataTables_scrollHead text-center bold" style="font-size: 14px; width: 45%; border-right: 3px solid white;">Documento (OC/Compra)</td>
</tr>
</table>
<a target="_blank" href="#"></a>
<div class="row">
<div class="col-md-12">
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" EmptyDataText="No hay fletes" ToolTip="Fletes" OnRowDataBound="GvDatos_RowDataBound" CssClass="table table-striped table-hover Widthall ScrollAD" data-sort="true" GridLines="None">
<Columns>
<asp:HyperLinkField HeaderText="Proveedor" Target="_blank" DataTextField="RazonSocial" ItemStyle-Width="20%" DataNavigateUrlFormatString="/Compras/Proveedores.aspx?CveProveedor={0}" DataNavigateUrlFields="CveProveedor" />
<asp:HyperLinkField HeaderText="Folio" Target="_blank" ItemStyle-HorizontalAlign="Center" DataTextField="Folio" ItemStyle-Width="5%" DataNavigateUrlFormatString="/Inventarios/Fletes.aspx?CveFlete={0}" DataNavigateUrlFields="CveFlete" />
<asp:HyperLinkField HeaderText="Fecha" Target="_blank" DataTextField="Fecha" ItemStyle-HorizontalAlign="Center" DataTextFormatString="{0:d}" ItemStyle-Width="10%" DataNavigateUrlFormatString="/Inventarios/Fletes.aspx?CveFlete={0}" DataNavigateUrlFields="CveFlete" />
<asp:HyperLinkField HeaderText="Descripción" Target="_blank" DataTextField="Descripcion" ItemStyle-Width="20%" DataNavigateUrlFormatString="/Inventarios/Fletes.aspx?CveFlete={0}" DataNavigateUrlFields="CveFlete" />
<asp:BoundField HeaderText="Folio" DataField="FolioDocumento" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" />
<asp:BoundField HeaderText="Fecha" DataField="FechaDocumento" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" ItemStyle-Width="10%" />
<asp:BoundField HeaderText="Descripción" DataField="DescripcionDocumento" ItemStyle-Width="20%" />
<asp:BoundField HeaderText="Importe" DataField="TotalDocumento" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" ItemStyle-Width="5%" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,70 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Partial Class Compras_RepFletes
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property DtFletes As DataTable
Get
Return CType(ViewState("DtFletes"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtFletes") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
InicializaValores()
End If
End Sub
Private Sub InicializaValores()
TxtFechaI.Text = Date.Now.AddDays(-Now.DayOfYear + 1).ToShortDateString
TxtFechaF.Text = Date.Now.ToShortDateString
DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
DdlProveedor.DataBind()
DdlProveedor.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
#Region " CARGA DAATOS "
Protected Sub BtnConsultarFiltros_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim ObjInv As New ClsInventarios
If TxtFolio.Text <> "" Then TxtFechaI.Text = MinFecha.ToShortDateString : TxtFechaF.Text = MaxFecha.ToShortDateString
If ObjInv.GetFletes(UsuarioActual.CveEmpresa, -1, If(TxtFolio.Text = "", "-1", TxtFolio.Text), DdlProveedor.SelectedValue.ToString.ToEntero, -1, -1, TxtFechaI.Text.ToDate, TxtFechaF.Text.ToDate) Then
DtFletes = ObjInv.DtResultados
End If
ObjInv.Dispose()
CargaGrid()
End Sub
Private Sub CargaGrid()
GvDatos.DataSource = DtFletes
GvDatos.DataBind()
UpDatos.Update()
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Dim Modalidad = e.Row.DBCampo("Modalidad").ToString.ToEntero
Dim Liga = If(Modalidad = 1, "/OC/OC.aspx?OC", "/Compras/Compras.aspx?CveCompra")
e.Row.Cells(4).Text = $"<a target='_blank' href='{Liga}={e.Row.DBCampo("CveDocumento")}'>{If(Modalidad = 1, "OC: ", "Compra: ")}{e.Row.DBCampo("FolioDocumento")}</a>"
e.Row.Cells(5).Text = $"<a target='_blank' href='{Liga}={e.Row.DBCampo("CveDocumento")}'>{e.Row.DBCampo("FechaDocumento").ToDate.ToShortDateString}</a>"
e.Row.Cells(6).Text = $"<a target='_blank' href='{Liga}={e.Row.DBCampo("CveDocumento")}'>{e.Row.DBCampo("DescripcionDocumento")}</a>"
e.Row.Cells(7).Text = $"<a target='_blank' href='{Liga}={e.Row.DBCampo("CveDocumento")}'>{e.Row.DBCampo("TotalDocumento")}</a>"
End If
End Sub
#End Region
End Class

View File

@@ -0,0 +1,367 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepMaximoMinimo.aspx.vb" Inherits="Inventarios_RepMaximoMinimo" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.truncate2 {
display: table;
table-layout: fixed;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.Widthall {
width: 100% !important;
}
.dataTables_scrollHeadInner {
width: 100% !important;
background-color: #dddddd;
padding-left: 0px !important;
}
.dataTables_scrollFoot {
display: none;
position: static;
}
.table-scrollable {
margin: 0px !important;
}
.dataTables_scroll {
margin-bottom: 0px;
}
.table.dataTable {
margin-top: 0px !important;
}
.dataTables_scrollBody table th {
padding: 0px !important;
padding-right: 4px !important;
padding-left: 4px !important;
}
.sinlink td a {
pointer-events: none;
cursor: default;
color: black;
font-size: small;
}
.white a {
color: white !important;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte Máximos y Mínimos
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkPdf" runat="server"><i class="fa fa-ad-pdf"></i> Genera PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Genera Excel</asp:LinkButton>
</li>
<asp:UpdatePanel runat="server" ID="UpDefinir">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkDefinir" runat="server"><i class="fa fa-plus"></i> Definir Max/Min</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
<li>
<asp:HyperLink NavigateUrl="#" data-toggle="modal" data-target="#DivPersonalizar" ID="ImgPersonalizar" runat="server"> <i class="fa fa-pencil"></i> Personalizar Columnas</asp:HyperLink>
</li>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpTitulos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button runat="server" ID="BtnFiltrar" Text="Consultar" class="btn btn-primary" />
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1">Sucursal:</div>
<div class="col-md-2 ">
<%-- <asp:DropDownList ID="DdlSucursal" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveSucursal" DataTextField="Sucursal">
</asp:DropDownList>--%>
<asp:DropDownList ID="DdlSubProyecto" AutoPostBack="true" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveSubProyecto" DataTextField="SubProyecto">
</asp:DropDownList>
</div>
<div class="col-md-1">Almacen:</div>
<div class="col-md-2 ">
<asp:DropDownList ID="DdlAlmacen" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveAlmacen" DataTextField="Almacen">
</asp:DropDownList>
</div>
<div class="col-md-1" id="DivClaisficacionLabel" runat="server">Clasificación 2:</div>
<div class="col-md-2 " id="DivClasificacion2" runat="server" >
<asp:DropDownList ID="DdlClasificacion2" runat="server" CssClass="select2me" DataValueField="CveClasificacion" DataTextField="Clasificacion" Width="100%">
</asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div id="DvBusqueda" class="" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div>
<asp:GridView ID="GvDatos" DataKeyNames="CvePS,PS,CodigoPS,Maximo,Minimo,CveAlmacen" CssClass="table table-striped table-hover Widthall ScrollAD" data-sort="true" runat="server" AutoGenerateColumns="False" GridLines="None">
<Columns>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Código">
<ItemTemplate>
<asp:Literal ID="LtCodigo" runat="server" Text='<%# Eval("Codigo")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Clasificacion 2" Visible="false">
<ItemTemplate>
<asp:Literal ID="LtlClasificacion2" runat="server" Text='<%# Eval("Clasificacion")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="30%" HeaderText="Descripción">
<ItemTemplate>
<asp:Label ID="LtDescripcion" CssClass="truncate2" runat="server" Text='<%# Eval("PS")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Marca" Visible="false">
<ItemTemplate>
<asp:Label ID="LtMarca" CssClass="truncate2" runat="server" Text='<%# Eval("Marca")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Existencia" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Literal ID="LtExistencia" runat="server" Text='<%# If(Eval("Existencia").ToString() = "0" Or Eval("Existencia").ToString() = "", "-", (Eval("Existencia", "{0:#,##0.##}"))) %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Máximo" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Literal ID="LtMaximo" runat="server" Text='<%# Eval("Maximo", "{0:#,##0.00##}")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Mínimo" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Literal ID="LtMínimo" runat="server" Text='<%# Eval("Minimo", "{0:#,##0.00##}")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Pte. por Recibir" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:LinkButton ID="LnkPteRecibir" OnClick="Click_VerDetalleOC" runat="server" CausesValidation="False" Text='<%# If(Eval("PtePorRecibir").ToString() = "", "-", (Eval("PtePorRecibir", "{0:#,##0.00##}"))) %>' />
<asp:Label ID="LblPteRecibir" runat="server" Visible="false" Text="-"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Pte. por Comprar" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Literal ID="LtPteComprar" runat="server" Text='<%# Eval("PtePorComprar", "{0:#,##0.00##}")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="10%" HeaderText="Ultimo Costo" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Literal ID="LtUltimoCosto" runat="server" Text='<%# Eval("UltimoCosto", "{0:#,##0.00##}")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="40px" HeaderText="Comandos" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" OnClick="UpdateMaximoMinimo" CssClass="btn btn-circle btn-xs green" Text="<i class='fa fa-pencil'></i>" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div id="ModalDetalleOrdenCompra" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<asp:UpdatePanel runat="server" class="modal-content" ID="UpModaletalle" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">
<asp:Literal ID="LtlTitulo" runat="server">Detalles Orden de compra</asp:Literal></h4>
</div>
<div class="modal-body" style="width: 700px!important;">
<table style="width: 100%">
<tr>
<td style="width: 100%; text-align: right">
<asp:LinkButton ID="LnkImprimirDetalle" OnClick="LnkImprimirDetalle_Click" runat="server" class="texto fa fa-ad-pdf">Imprimir PDF</asp:LinkButton>
</td>
</tr>
</table>
<asp:GridView ID="GvDetalleOrdenCompra" DataKeyNames="CveOrdenCompra,OC" CssClass="table table-striped table-hover Widthall" runat="server" AutoGenerateColumns="False" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Orden de compra" HeaderStyle-Width="80">
<ItemTemplate>
<asp:Literal ID="LtlOc" runat="server"></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha" HeaderStyle-HorizontalAlign="Center" HeaderStyle-Width="80">
<ItemTemplate>
<asp:Label ID="LblFecha" CssClass="truncate2" runat="server" Text='<%# Eval("Fecha", "{0:d}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Cantidad" ItemStyle-HorizontalAlign="Right" HeaderStyle-Width="80">
<ItemTemplate>
<asp:Label ID="LblCantidad" CssClass="truncate2" runat="server" Text='<%# Eval("Cantidad", "{0:#,##0.00##}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Proveedor" HeaderStyle-Width="300">
<ItemTemplate>
<asp:Label ID="LblProveedor" CssClass="truncate2" runat="server" Text='<%# Eval("Proveedor")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SubProyecto">
<ItemTemplate>
<asp:Label ID="LblSubProyecto" CssClass="truncate2" runat="server" Text='<%# Eval("SubProyecto")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div class="modal-footer">
<button id="btnCerrar" runat="server" type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="LnkImprimirDetalle" />
</Triggers>
</asp:UpdatePanel>
</div>
</div>
<div id="ModalMaximoMinimo" class="modal ADS fade" role="dialog">
<div class="modal-dialog" style="width: 450px;">
<asp:UpdatePanel runat="server" class="modal-content" ID="UpModalMaximoMinimo" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">
<asp:Literal ID="Literal5" runat="server">Definir Máximos y Mínimos</asp:Literal></h4>
</div>
<div class="modal-body">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlAlmacenModal" CssClass="form-control input-sm select2me js-cuenta-programmatic" runat="server" AppendDataBoundItems="true" DataTextField="Almacen" DataValueField="CveAlmacen" Width="240px" CausesValidation="true"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVAlmacen" runat="server" ControlToValidate="DdlAlmacenModal" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Almacén''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpDefinir"></asp:RequiredFieldValidator>
<label for="<%= DdlAlmacenModal.ClientID.ToString()%>">Almacén:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlPSModal" CssClass="form-control input-sm select2me js-cuenta-programmatic" runat="server" AppendDataBoundItems="true" DataTextField="PSCodigo" DataValueField="CvePS" Width="240px" CausesValidation="true"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVPS" runat="server" ControlToValidate="DdlPSModal" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Producto / Servicio''</b> es necesario, por favor seleccione uno." InitialValue="-1" ValidationGroup="GrpDefinir"></asp:RequiredFieldValidator>
<label for="<%= DdlPSModal.ClientID.ToString()%>">Producto/Servicios:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtMaximo" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVMaximo" runat="server" ControlToValidate="TxtMaximo" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Máximo''</b> es necesario, por favor ingréselo." ValidationGroup="GrpDefinir"></asp:RequiredFieldValidator>
<label for="<%= TxtMaximo.ClientID.ToString()%>">Máximo:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtMinimo" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVMinimo" runat="server" ControlToValidate="TxtMinimo" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Minimo''</b> es necesario, por favor ingréselo." ValidationGroup="GrpDefinir"></asp:RequiredFieldValidator>
<label for="<%= TxtMinimo.ClientID.ToString()%>">Mínimo:</label>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="LbAgregarMaximoMinimo" runat="server" class="btn btn-success" Text="Agregar" ValidationGroup="GrpDefinir" />
<button id="LbCancelarModal" runat="server" type="button" class="btn default" data-dismiss="modal">Cancelar</button>
</div>
<asp:HiddenField ID="HFDefinir" runat="server" Value="I" ClientIDMode="Static" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<asp:UpdatePanel runat="server" ID="UPPersonalizar" UpdateMode="Conditional">
<ContentTemplate>
<div id="DivPersonalizar" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="Label1" runat="server" ClientIDMode="Static" Text="Personalizar Columnas"></asp:Label></h4>
</div>
<div class="modal-body">
<table style="width:598px!important;" class="table table-striped table-advance table-hover">
<tbody>
<tr>
<td style="text-align: left;" id="TdModalClasificacion2" runat="server" visible="false" >
<asp:CheckBox ID="ChkClasificacion2" runat="server" Text="Clasificación 2" />
</td>
<td style="text-align: left;">
<asp:CheckBox ID="ChkMarca" runat="server" Text="Marca" />
</td>
</tr>
</tbody>
</table>
</div>
<div class="modal-footer">
<asp:Button ID="BtnPersonalizar" OnClientClick="javascript:$('#DivPersonalizar').modal('hide')" runat="server" Text="Personalizar" class="btn btn-success" />
<button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script src="/Metronic/assets/global/scripts/datatable.js"></script>
<script src="/Metronic/assets/global/plugins/datatables/all.min.js"></script>
<script>
$(document).on('mouseenter', ".truncate2", function () {
var $this = $(this);
if (this.offsetWidth < this.scrollWidth && !$this.attr('title')) {
$this.tooltip({
title: $this.text(),
placement: "top"
});
$this.tooltip('show');
}
});
</script>
</asp:Content>

View File

@@ -0,0 +1,345 @@
Option Explicit On
Option Strict On
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Imports System.Data
Partial Class Inventarios_RepMaximoMinimo
Inherits ClsPaginas
#Region " PROPIEDADES "
Private Property PS As String
Get
If ViewState("PS") Is Nothing Then
Return ""
Else
Return ViewState("PS").ToString
End If
End Get
Set(value As String)
ViewState("PS") = value
End Set
End Property
Private Property DTOCDetalle As DataTable
Get
If ViewState("DTOCDetalle") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DTOCDetalle"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DTOCDetalle") = value
End Set
End Property
Private ReadOnly Property PermiteClasificacion2 As Boolean
Get
Return (UsuarioActual.CveEmpresa.Contiene(72, 80))
End Get
End Property
#End Region
Private Sub Inventarios_RepMaximoMinimo_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaCombos()
End If
End Sub
#Region " INICIALIZA VALORES "
Private Sub CargaCombos()
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, -1, UsuarioActual.Empresa.CveEmpresa, 1)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todas", "-1"))
DdlAlmacen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
DdlAlmacen.DataBind()
DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
DdlAlmacenModal.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
DdlAlmacenModal.DataBind()
DdlAlmacenModal.Items.Insert(0, New ListItem("Seleccione Almacén", "-1"))
DdlPSModal.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
DdlPSModal.DataBind()
DdlPSModal.Items.Insert(0, New ListItem("Seleccione", "-1"))
UpModalMaximoMinimo.Update()
DdlClasificacion2.DataSource = GlobalDTClasificaciones2(UsuarioActual.CveEmpresa)
DdlClasificacion2.DataBind()
DdlClasificacion2.Items.Insert(0, New ListItem("Todas", "-1"))
'BLOQUEA DDL CLASIFICACION
DivClaisficacionLabel.Visible = PermiteClasificacion2
DivClasificacion2.Visible = PermiteClasificacion2
TdModalClasificacion2.Visible = PermiteClasificacion2
End Sub
Private Sub DdlSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyecto.SelectedIndexChanged
'Dim DtSubptoyecto As DataTable = GlobalDTSubProyectos(-1, -1, UsuarioActual.Empresa.CveEmpresa, 1).FiltraParametros(String.Format(" CveSubProyecto ={0}", DdlSubProyecto.SelectedValue.ToEntero)) 'GlobalDTSucursales(" CveSucursal = ")
DdlAlmacen.Items.Clear()
'If DtSubptoyecto.Rows.Count > 0 Then
'Dim CveSucursal As Integer = DtSubptoyecto(0)("CveSucursal").ToString.ToEntero
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveSubProyecto={0}", DdlSubProyecto.SelectedValue.ToEntero))
DdlAlmacen.DataBind()
DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
'Else
' DdlAlmacen.DataSource = Nothing
' DdlAlmacen.DataBind()
'End If
'GvDatos.DataSource = Nothing
'GvDatos.DataBind()
'DdlAlmacen.SelectedIndex = 0
OrdenaDatos()
UpDatos.Update()
UpTitulos.Update()
End Sub
#End Region
#Region " CARGA DATOS "
Private Sub BtnFiltrar_Click(sender As Object, e As EventArgs) Handles BtnFiltrar.Click
CargaGrid()
OrdenaDatos()
End Sub
Private Sub CargaGrid()
Dim ObjMaxMin As New ClsInventarios
If ObjMaxMin.RepMaximoMinimo(DdlSubProyecto.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, DdlClasificacion2.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjMaxMin.DtResultados
Else
GvDatos.DataSource = Nothing
End If
If DdlAlmacen.SelectedValue.ToEntero > 0 Then
GvDatos.Columns(9).Visible = True
Else
GvDatos.Columns(9).Visible = False
End If
ObjMaxMin.Dispose()
GvDatos.DataBind()
UpDatos.Update()
End Sub
Private Sub OrdenaDatos()
'If (GvDatos.Rows.Count > 0) Then
' GvDatos.UseAccessibleHeader = True
' GvDatos.HeaderRow.TableSection = TableRowSection.TableHeader
' RegistraScript("OrdenarGV();", "ScriptOrdenamiento")
'End If
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.FCLiteral("LtCodigo").Text = $"<a class=""Texto"" target='_blank' href=""/Ventas/ProductosServicios.aspx?CvePS={e.Row.DataKey("CvePS")}"">{e.Row.DBCampo("Codigo")}</a>"
e.Row.FCLabel("LtDescripcion").Text = $"<a class=""Texto"" target='_blank' href=""/Ventas/ProductosServicios.aspx?CvePS={e.Row.DataKey("CvePS")}"">{e.Row.DBCampo("PS")}</a>"
If e.Row.FCLinkButton("LnkPteRecibir").Text = "-" Then
e.Row.FCLinkButton("LnkPteRecibir").Visible = False
e.Row.FCLabel("LblPteRecibir").Visible = True
End If
End If
End Sub
#End Region
#Region " PENDIENTE POR RECIBIR "
Private Sub GvDetalleOrdenCompra_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDetalleOrdenCompra.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.FCLiteral("LtlOc").Text = $"<a class=""Texto"" target='_blank' href=""/OC/OC.aspx?OC={e.Row.DataKey("CveOrdenCompra")}"">{e.Row.DBCampo("OC")}</a>"
End If
End Sub
Public Sub Click_VerDetalleOC(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim activo As Boolean = False
Dim CvePs As Integer = GvRow.DataKey("CvePS").ToString.ToEntero
Dim CodigoPS As String = GvRow.DataKey("CodigoPS").ToString
Dim Descripcion As String = GvRow.DataKey("PS").ToString
PS = Descripcion
Dim objInventarios As New ClsInventarios
If objInventarios.RepMaximoMinimoDetalleGet(DdlSubProyecto.SelectedValue.ToEntero, CvePs, UsuarioActual.Empresa.CveEmpresa) Then
DTOCDetalle = objInventarios.DtResultados
GvDetalleOrdenCompra.DataSource = objInventarios.DtResultados
End If
OrdenaDatos()
objInventarios.Dispose()
GvDetalleOrdenCompra.DataBind()
LtlTitulo.Text = String.Format("{0}", CodigoPS)
RegistraScript("$('#ModalDetalleOrdenCompra').modal({ backdrop: 'static', keyboard: false})", "ModalDetalle")
UpModaletalle.Update()
End Sub
#End Region
#Region " MODAL "
Private Sub LnkDefinir_Click(sender As Object, e As EventArgs) Handles LnkDefinir.Click
HFDefinir.Value = "I"
DdlAlmacenModal.SelectedIndex = 0
DdlPSModal.SelectedIndex = 0
TxtMaximo.Text = ""
TxtMinimo.Text = ""
DdlAlmacenModal.Enabled = True
DdlPSModal.Enabled = True
LbAgregarMaximoMinimo.Text = "Agregar"
UpModalMaximoMinimo.Update()
RegistraScript(String.Format("$('#{0}').modal();", "ModalMaximoMinimo"))
End Sub
Private Sub LbAgregarMaximoMinimo_Click(sender As Object, e As EventArgs) Handles LbAgregarMaximoMinimo.Click
Dim ObjInventario As New ClsInventarios
If HFDefinir.Value = "I" Then
If ObjInventario.AddAlmacenMaximoMinimo(DdlAlmacenModal.SelectedValue.ToEntero, DdlPSModal.SelectedValue.ToEntero, TxtMaximo.Text.ToDouble, TxtMinimo.Text.ToDouble, UsuarioActual.CveUsuario) Then
Alert("El Máximo/Mínimo se agregó correctamente.", TipoMensaje.MsgInformacion)
End If
ElseIf HFDefinir.Value = "U" Then
If ObjInventario.UpdateAlmacenMaximoMinimo(DdlAlmacenModal.SelectedValue.ToEntero, DdlPSModal.SelectedValue.ToEntero, TxtMaximo.Text.ToDouble, TxtMinimo.Text.ToDouble, UsuarioActual.CveUsuario) Then
Alert("El Máximo/Mínimo se actualizó correctamente.", TipoMensaje.MsgInformacion)
End If
End If
CargaGrid()
RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalMaximoMinimo"))
ObjInventario.Dispose()
End Sub
Protected Sub UpdateMaximoMinimo(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
HFDefinir.Value = "U"
Dim CveAlmacen As Integer = GvRow.DataKey("CveAlmacen").ToString.ToEntero
Dim CvePS As Integer = GvRow.DataKey("CvePS").ToString.ToEntero
Dim Maximo As String = GvRow.DataKey("Maximo").ToString
Dim Minimo As String = GvRow.DataKey("Minimo").ToString
DdlAlmacenModal.Enabled = False
DdlPSModal.Enabled = False
DdlAlmacenModal.SelectedValue = CveAlmacen.ToString
DdlPSModal.SelectedValue = CvePS.ToString
TxtMaximo.Text = Maximo
TxtMinimo.Text = Minimo
LbAgregarMaximoMinimo.Text = "Actualizar"
UpModalMaximoMinimo.Update()
RegistraScript(String.Format("$('#{0}').modal();", "ModalMaximoMinimo"))
End Sub
#End Region
#Region "I M P R I M I R "
Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
GvDatos.ExportToExcel("RepFacturas_" & Now.ToShortDateString())
End Sub
Private Sub GenerarPDF()
Dim ObjDatos As New ClsInventarios
If ObjDatos.RepMaximoMinimo(DdlSubProyecto.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, DdlClasificacion2.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
If ObjDatos.DtResultados.Rows.Count > 0 Then
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim dt As DataTable = ObjDatos.DtResultados
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("SubProyecto", DdlSubProyecto.SelectedItem.Text))
params.Add(New ReportParameter("Almacen", DdlAlmacen.SelectedItem.Text))
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepMaximosMinimos.rdlc", dt, params, "ReporteMaxMin")
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
Protected Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click
GenerarPDF()
End Sub
Protected Sub LnkImprimirDetalle_Click(sender As Object, e As EventArgs)
If DTOCDetalle.Rows.Count > 0 Then
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim dt As DataTable = DTOCDetalle
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("SubProyecto", DdlSubProyecto.SelectedItem.Text))
params.Add(New ReportParameter("Almacen", DdlAlmacen.SelectedItem.Text))
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("PS", PS))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepMaximosMinimosDetalle.rdlc", dt, params, "ReporteMaxMinDetalle")
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
OrdenaDatos()
End Sub
#End Region
#Region " PERSONALIZAR COLUMNAS "
Private Sub BtnPersonalizar_Click(sender As Object, e As EventArgs) Handles BtnPersonalizar.Click
If ChkClasificacion2.Checked Then
GvDatos.Columns(1).Visible = True
Else
GvDatos.Columns(1).Visible = False
End If
If ChkMarca.Checked Then
GvDatos.Columns(3).Visible = True
Else
GvDatos.Columns(3).Visible = False
End If
RegistraScript("$('#DivPersonalizar').modal('hide')")
CargaGrid()
End Sub
#End Region
End Class

View File

@@ -0,0 +1,217 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepMovimientos.aspx.vb" Inherits="RepMovimientosRep" %>
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Exportar</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkPdf" runat="server"><i class="fa fa-ad-pdf"></i> Genera PDF</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="CP" runat="Server">
<link href="/Metronic/assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.css" rel="stylesheet" />
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="Css" runat="Server">
<style>
.table-scrollable {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
.Widthall {
width: 100% !important;
}
.dataTables_scrollHeadInner {
width: 100% !important;
background-color: #dddddd;
padding-left: 0px !important;
}
.dataTables_scrollFoot {
display: none;
position: static;
}
.table-scrollable {
margin: 0px !important;
}
.dataTables_scroll {
margin-bottom: 0px;
}
.table.dataTable {
margin-top: 0px !important;
}
.dataTables_scrollBody table th {
padding: 0px !important;
padding-right: 4px !important;
padding-left: 4px !important;
}
.sinlink td a {
pointer-events: none;
cursor: default;
color: black;
font-size: small;
}
.white a {
color: white !important;
}
.Derecha {
text-align: right;
}
.Izquierda {
text-align: left;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="E" runat="Server">
Reporte de Movimientos
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px; position: relative;">
<div class="tools">
<asp:Button ID="btConsultar" CssClass="btn btn-primary" runat="server" Text="Consultar" /></td>
<a href="javascript:;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" Checked="true" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption magindate">
<div class="row">
<div class="col-md-1 truncate" style="text-align: right!important">Almacén:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlAlmacen" CssClass="form-control input-sm select2me" runat="server" Width="150" DataValueField="CveAlmacen" DataTextField="Almacen"></asp:DropDownList>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Tipo de movimiento:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlTipoMovimiento" CssClass="form-control input-sm select2me" runat="server" Width="150" DataTextField="Concepto" DataValueField="CveConcepto"></asp:DropDownList>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">F.I. Movto:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaI" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">F.F. Mov:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaF" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
</div>
</div>
<div class="portlet-body magindate" <%= IIf(chkexpand.Checked = True, "", "style=""display:none;""")%>>
<div class="row">
<div class="col-md-1 truncate" style="text-align: right!important">Usuario:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlUsuarios" CssClass="form-control input-sm select2me" runat="server" Width="150" DataTextField="Usuario" DataValueField="CveUsuario"></asp:DropDownList>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Folio:</div>
<div class="col-md-2">
<asp:TextBox ID="TxtFolio" style="max-width:75px;" runat="server" CssClass="form-control input-sm" Width="150"></asp:TextBox>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">F.I. Ing:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaIngInicio" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaIngI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MaskedEditExtender1" runat="server" TargetControlID="TxtFechaIngInicio" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender2" TargetControlID="TxtFechaIngInicio" PopupButtonID="ImgFechaIngI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">F.F. Ing:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaIngFin" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaIngF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MaskedEditExtender2" runat="server" TargetControlID="TxtFechaIngFin" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender3" TargetControlID="TxtFechaIngFin" PopupButtonID="ImgFechaIngF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div class="row col-md-12" style="text-align: right!important">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<br />
<br />
<asp:UpdatePanel ID="UpDatosGV" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvM" data-sort="true" Width="100%" runat="server" GridLines="None" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" >
<Columns>
<asp:BoundField HeaderText="Concepto" DataField="Concepto" ItemStyle-Width="10%" />
<asp:HyperLinkField DataNavigateUrlFields="CveMovimiento" DataNavigateUrlFormatString="~/inventarios/EntradasSalidas.aspx?CveMovimiento={0}" Target="_blank" ItemStyle-Width="15%" HeaderText="Movimiento" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataTextField="Folio" />
<asp:BoundField HeaderText="Almacen" DataField="Almacen" ItemStyle-Width="20%" />
<asp:BoundField HeaderText="F. Movimiento" DataField="FechaMovto" DataFormatString="{0:d}" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="F. Ingreso" DataField="FechaIng" DataFormatString="{0:d}" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" />
<asp:HyperLinkField DataNavigateUrlFields="CveCompra" DataNavigateUrlFormatString="~/Compras/Compras.aspx?CveCompra={0}" Target="_blank" ItemStyle-Width="12.5%" HeaderText="Compra" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataTextField="SerieFolioCompra" />
<asp:HyperLinkField DataNavigateUrlFields="CveVenta" DataNavigateUrlFormatString="~/Ventas/Ventas.aspx?CvePS={0}" Target="_blank" ItemStyle-Width="12.5%" HeaderText="Venta" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataTextField="SerieFolioVenta" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script src="/Metronic/assets/global/scripts/datatable.js"></script>
<script src="/Metronic/assets/global/plugins/datatables/all.min.js"></script>
<script type="text/javascript">
//function OrdenarGV() {
// var Tam = TamañoVentana();
// var Alto = Tam.height - 330;
// if (Alto < 100) {
// Alto = 100;
// }
// $('#GvM').DataTable({
// scrollY: Alto + 'px',
// scrollCollapse: true,
// paging: false,
// searching: false,
// info: false
// });
// $('#GvM').parent().parent().children().first().css("position", "static");
//}
</script>
</asp:Content>

View File

@@ -0,0 +1,158 @@
Option Strict On
Option Explicit On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class RepMovimientosRep
Inherits ClsPaginas
#Region " PROPIEDADES "
Private Property dt As DataTable
Get
Try
dt = DirectCast(ViewState("dt"), DataTable)
Return DirectCast(ViewState("dt"), DataTable)
Catch ex As Exception
Return Nothing
End Try
End Get
Set(value As DataTable)
ViewState("dt") = value
End Set
End Property
Public Property DtEquivalencias() As DataTable
Get
Return CType(ViewState("dtReporte"), DataTable)
End Get
Set(value As DataTable)
ViewState("dtReporte") = value
End Set
End Property
Private Property DtMovimientos As DataTable
Get
Return DirectCast(ViewState("DtMovimientos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtMovimientos") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
InicializaValores()
End If
End Sub
#Region " INICIALIZA VALORES "
Private Sub InicializaValores()
TxtFechaF.Text = Date.Now.ToShortDateString
TxtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString
TxtFechaIngFin.Text = Date.Now.ToShortDateString
TxtFechaIngInicio.Text = Now.FirstDayOfMonth.ToShortDateString
DdlTipoMovimiento.DataSource = GlobalDTInvConceptos()
DdlTipoMovimiento.DataBind()
DdlTipoMovimiento.Items.Insert(0, New ListItem("Todos", "-1"))
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
DdlAlmacen.DataBind()
DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
DdlUsuarios.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("", "Nombre")
DdlUsuarios.DataBind()
DdlUsuarios.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
#End Region
#Region " CARGA DATOS "
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim Reporte As New ClsInventarios
Dim rpt As DataTable = Nothing
Dim FechaInicial = If(TxtFechaI.Text.Trim <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text.ToDate, MinFecha)
Dim FechaFinal = If(TxtFechaF.Text.Trim <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text.ToDate, MaxFecha)
Dim FechaIngI = If(TxtFechaIngInicio.Text.Trim <> "" AndAlso TxtFechaIngInicio.Text <> "__/__/____", TxtFechaIngInicio.Text.ToDate, MinFecha)
Dim FechaIngF = If(TxtFechaIngFin.Text.Trim <> "" AndAlso TxtFechaIngFin.Text <> "__/__/____", TxtFechaIngFin.Text.ToDate, MaxFecha)
If Reporte.GetMovimientosRep(DdlAlmacen.SelectedValue.ToEntero, DdlTipoMovimiento.SelectedValue.ToEntero, If(TxtFolio.Text = "", "-1", TxtFolio.Text.Trim).ToEntero, FechaIngI, FechaIngF, FechaInicial, FechaFinal, DdlUsuarios.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
GvM.DataSource = Reporte.DtResultados
DtMovimientos = Reporte.DtResultados
Else
GvM.DataSource = Nothing
End If
GvM.DataBind()
If (GvM.Rows.Count > 0) Then
GvM.UseAccessibleHeader = True
GvM.HeaderRow.TableSection = TableRowSection.TableHeader
RegistraScript("OrdenarGV();")
End If
UpDatosGV.Update()
Reporte.Dispose()
End Sub
#End Region
#Region " EXPORTAR - PDF - EXCEL "
Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
GvM.ExportToExcel("Reporte de Entradas y Salidas")
End Sub
#End Region
#Region "PDF"
Private Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click
If DtMovimientos IsNot Nothing Then
Dim StrFiltro As New StringBuilder
If DdlAlmacen.SelectedValue <> "-1" Then StrFiltro.AppendFormat("<b>Almacen</b>: {0}", DdlAlmacen.SelectedItem.Text)
If DdlTipoMovimiento.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Tipo Movimiento</b>: {0}", DdlTipoMovimiento.SelectedItem.Text)
If DdlUsuarios.SelectedValue <> "-1" Then StrFiltro.AppendFormat("&emsp;<b>Usuario</b>: {0}", DdlUsuarios.SelectedItem.Text)
If TxtFechaI.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Inicio </b>: {0}", TxtFechaI.Text.ToDate.ToShortDateString)
If TxtFechaF.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Fin </b>: {0}", TxtFechaF.Text.ToDate.ToShortDateString)
If TxtFechaIngInicio.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Ingreso Inicio </b>: {0}", TxtFechaIngInicio.Text.ToDate.ToShortDateString)
If TxtFechaIngFin.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Ingreso Fin </b>: {0}", TxtFechaIngFin.Text.ToDate.ToShortDateString)
If TxtFolio.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Folio </b>: {0}", TxtFolio.Text.ToDate.ToShortDateString)
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", StrFiltro.ToString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepMovimientos.rdlc", DtMovimientos, params, String.Format("ReporteMovimientos-{0}", Now.ToDateTime.ToShortDateString))
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
#End Region
End Class

View File

@@ -0,0 +1,106 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="RepMovimientosProveedor.aspx.cs" Inherits="Inventarios_RepMovimientosProveedor" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte de Movimientos de Proveedor
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<li>
<asp:LinkButton ID="LnkPdf" OnClick="LnkPdf_Click" runat="server"> <i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="ImgExcel" OnClick="ImgExcel_Click" runat="server"><i class="fa fa-ad-excel"></i> Exporta Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" id="idnecesaria">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" OnClick="BtnConsultar_Click" runat="server" Text="Consultar" class="btn btn-primary" ValidationGroup="Valida" />
<a href="javascript:;" class="expand"></a>
</div>
<div class="titlefiltros caption">
<div class="row">
<label class="col-md-1 ">Proveedor:</label>
<div class="col-md-3">
<asp:DropDownList ID="DdlProveedor" runat="server" AppendDataBoundItems="true" DataTextField="RazonSocial" DataValueField="CveProveedor" Class="table-group-action-input form-control input-inline input-sm select2me" Width="100%">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVProveedor" runat="server" ControlToValidate="DdlProveedor" Display="None" InitialValue="-1" ErrorMessage="El campo <b>''Proveedor''</b> es requerido por la aplicación, por favor seleccione uno." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEProveedor" runat="server" HighlightCssClass="vco" TargetControlID="RFVProveedor" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<label class="col-md-1 ">Fecha Inicial:</label>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 80px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="txtFechaI" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendario" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="txtFechaI" PopupButtonID="ImgCalendario" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="rfvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="vcoFfvFI" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<label class="col-md-1 ">Fecha Final:</label>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 80px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="txtFechaF" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="txtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="txtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
<div class="portlet-body" style="display:none">
<div class="row">
<label class="col-md-1 ">Concepto:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlConcepto" runat="server" AppendDataBoundItems="true" DataTextField="Concepto" DataValueField="CveConcepto" Class="table-group-action-input form-control input-inline input-sm select2me" Width="100%">
</asp:DropDownList>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:GridView ID="GvDatos" runat="server" GridLines="None" ShowHeaderWhenEmpty="true" EmptyDataText="No se han encontrado movimientos con los filtros seleccionados" CssClass="table table-hover table-striped ScrollAD mysmallbtn" Width="99%" data-sort="true" AutoGenerateColumns="False">
<Columns>
<asp:HyperLinkField DataTextField="Folio" DataNavigateUrlFields="CveMovimiento" Target="_blank" DataNavigateUrlFormatString="/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" ItemStyle-HorizontalAlign="Left" HeaderText="Folio" />
<asp:BoundField DataField="FechaMovto" ItemStyle-Width="15%" HeaderText="Fecha del Movimiento" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:BoundField DataField="Almacen" ItemStyle-HorizontalAlign="Left" HeaderText="Almacen Origen" />
<asp:BoundField DataField="AlmacenDestino" ItemStyle-HorizontalAlign="Left" HeaderText="Almacen Destino" />
<asp:BoundField DataField="CodigoPS" ItemStyle-HorizontalAlign="Left" HeaderText="Producto/Servicio" />
<asp:BoundField DataField="Cantidad" ItemStyle-HorizontalAlign="Right" HeaderText="Cantidad" DataFormatString="{0:N2}" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,113 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms;
using System.Activities.Expressions;
public partial class Inventarios_RepMovimientosProveedor : ClsPaginas
{
#region PROPIEDADES
private DataTable DtDatos
{
get { return DtDatos = (DataTable)ViewState["DtDatos"]; }
set { ViewState["DtDatos"] = value; }
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InicializaValores();
}
}
public void InicializaValores()
{
txtFechaI.Text = $"01/{DateTime.Now.Month}/{DateTime.Now.Year}";
txtFechaF.Text = DateTime.Now.ToShortDateString();
CargaCombos();
}
public void CargaCombos()
{
DdlProveedor.DataSource = get_GlobalDTCompProveedores(UsuarioActual.CveEmpresa);
DdlProveedor.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlProveedor.DataBind();
DdlConcepto.DataSource = GlobalDTInvConceptos;
DdlConcepto.Items.Insert(0, new ListItem("Todos", "-1"));
DdlConcepto.DataBind();
}
public void CargaDatos()
{
ClsInventarios ObjInv = new ClsInventarios();
if (ObjInv.GetRepMovimientosProveedor(UsuarioActual.CveEmpresa, DdlConcepto.SelectedValue.ToEntero(), DdlProveedor.SelectedValue.ToEntero(), txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate()))
{
DtDatos = ObjInv.DtResultados;
GvDatos.DataSource = DtDatos;
}
ObjInv.Dispose();
GvDatos.DataBind();
UPDatos.Update();
}
protected void BtnConsultar_Click(object sender, EventArgs e)
{
CargaDatos();
}
protected void GenerarPDF(String Opcion)
{
if (DtDatos.Rows.Count > 0)
{
String FechaF;
if (txtFechaF.Text == "" || txtFechaF.Text == "__/__/____") { FechaF = "-1"; } else { FechaF = $"&emsp;<b>Fecha Final:</b> {txtFechaF.Text}"; }
String FechaI;
if (txtFechaI.Text == "" || txtFechaI.Text == "__/__/____") { FechaI = "-1"; } else { FechaI = $"&emsp;<b>Fecha Inicial:</b> {txtFechaI.Text}"; }
String Proveedor;
if (DdlProveedor.SelectedValue != "-1") { Proveedor = $"&emsp;<b>Proveedor:</b> {DdlProveedor.SelectedItem.Text}"; } else { Proveedor = ""; }
String Concepto;
if (DdlConcepto.SelectedValue != "-1") { Concepto = $"&emsp;<b>Concepto:</b> {DdlConcepto.SelectedItem.Text}"; } else { Concepto = ""; }
System.IO.FileInfo Imagen = new System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta));
String logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa);
List<ReportParameter> para = new List<ReportParameter>();
para.Add(new ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa));
para.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre));
para.Add(new ReportParameter("FechaImpresion", DateTime.Now.ToString()));
para.Add(new ReportParameter("AgrupadoPor", $"<b>Filtrado Por:</b> {Proveedor}{Concepto}{FechaI}{FechaF}"));
if (Imagen.Exists)
{
para.Add(new ReportParameter("LogoPath", logouri));
}
else
{
para.Add(new ReportParameter("LogoPath", ""));
}
ImprimirPDF("Empresas/Grales/Formatos/RepMovimientosProveedor.rdlc", DtDatos, para, "Reporte de Movimientos del Proveedor", Opcion);
}
else
{
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia);
}
}
protected void LnkPdf_Click(object sender, EventArgs e)
{
GenerarPDF("PDF");
}
protected void ImgExcel_Click(object sender, EventArgs e)
{
GenerarPDF("EXCEL");
}
}

View File

@@ -0,0 +1,102 @@
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="RepMovimientosSalida.aspx.cs" Inherits="Inventarios_RepMovimientosSalida" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.dataTables_scrollHead {
background-color: #95A5A6;
color: white;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Movimientos de Costo
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<li>
<asp:LinkButton ID="LnkExcel" OnClick="LnkExcel_Click" runat="server"><i class="fa fa-ad-excel"></i> Exporta Excel</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" id="idnecesaria">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" OnClick="BtnConsultar_Click" runat="server" Text="Consultar" class="btn btn-primary" />
<a href="javascript:;" class="expand"></a>
</div>
<div class="titlefiltros caption">
<div class="row">
<label class="col-md-1 ">Fecha Inicial:</label>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 80px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="txtFechaI" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendario" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="txtFechaI" PopupButtonID="ImgCalendario" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="rfvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="vcoFfvFI" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<label class="col-md-1 ">Fecha Final:</label>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 80px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="txtFechaF" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="txtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="txtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
<div class="portlet-body">
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<table class="table Widthall ">
<tr>
<td class="dataTables_scrollHead text-center bold" style="font-size: 14px; width: 55%; border-right: 3px solid white;">Ventas</td>
<td class="dataTables_scrollHead text-center bold" style="font-size: 14px; width: 45%; border-right: 3px solid white;">Movimientos</td>
</tr>
</table>
<asp:GridView ID="GvDatos" runat="server" GridLines="None" ShowHeaderWhenEmpty="true" EmptyDataText="No se han encontrado datos con los filtros seleccionados" OnRowDataBound="GvDatos_RowDataBound" CssClass="table table-hover table-striped ScrollAD mysmallbtn" Width="99%" data-sort="true" AutoGenerateColumns="False">
<Columns>
<asp:BoundField DataField="TipoDocto" ItemStyle-HorizontalAlign="Center" HeaderText="Tipo" />
<asp:HyperLinkField DataTextField="SerieFolio" Target="_blank" DataNavigateUrlFields="CveVenta" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" HeaderText="Folio" />
<asp:BoundField DataField="Fecha" ItemStyle-Width="15%" HeaderText="Fecha" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:BoundField DataField="SubTotal" ItemStyle-HorizontalAlign="Right" HeaderText="SubTotal" DataFormatString="{0:N2}" />
<asp:HyperLinkField DataTextField="Folio" Target="_blank" DataNavigateUrlFields="CveMovimiento" DataNavigateUrlFormatString="/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" HeaderText="Folio" />
<asp:BoundField DataField="FechaMovto" ItemStyle-Width="15%" HeaderText="Fecha" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:BoundField DataField="Importe" ItemStyle-HorizontalAlign="Right" HeaderText="Importe" DataFormatString="{0:N2}" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,60 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI.WebControls;
using Extensiones;
using System.Data;
using static Extensiones.ModExtensiones;
using Microsoft.Reporting.WebForms;
using System.Web.UI;
public partial class Inventarios_RepMovimientosSalida : ClsPaginas
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InicializaValores();
}
}
private void InicializaValores()
{
txtFechaI.Text = DateTime.Now.FirstDayOfMonth().ToShortDateString();
txtFechaF.Text = DateTime.Now.ToShortDateString();
}
private void Consulta()
{
ClsInventarios ObjInv = new ClsInventarios();
if (ObjInv.GetRepMovimientosSalida(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), UsuarioActual.CveEmpresa))
{
GvDatos.DataSource = ObjInv.DtResultados;
}
ObjInv.Dispose();
GvDatos.DataBind();
UpDatos.Update();
}
protected void BtnConsultar_Click(object sender, EventArgs e)
{
Consulta();
}
protected void GvDatos_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowIndex == 0)
{
e.Row.Cells[0].Text = "Total";
e.Row.CssClass = "Totales";
}
}
}
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);

View File

@@ -0,0 +1,252 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepNotasSinAlmacen.aspx.vb" Inherits="RepNotasSinAlmacen" %>
<asp:Content ID="Content1" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Exportar a Excel</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LinkPDF" runat="server"> <i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="Css" runat="Server">
<style>
.table-scrollable {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
.Widthall {
width: 100% !important;
}
.dataTables_scrollHeadInner {
width: 100% !important;
background-color: #dddddd;
padding-left: 0px !important;
}
.dataTables_scrollFoot {
display: none;
position: static;
}
.table-scrollable {
margin: 0px !important;
}
.dataTables_scroll {
margin-bottom: 0px;
}
.table.dataTable {
margin-top: 0px !important;
}
.dataTables_scrollBody table th {
padding: 0px !important;
padding-right: 4px !important;
padding-left: 4px !important;
}
.sinlink td a {
pointer-events: none;
cursor: default;
color: black;
font-size: small;
}
.white a {
color: white !important;
}
.Derecha {
text-align: right;
}
.Izquierda {
text-align: left;
}
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="E" runat="Server">
Reporte de Compras / Notas Sin Entrada
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" style="min-height: 80px !important;">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="btConsultar" CssClass="btn btn-primary" runat="server" Text="Consultar" /></td>
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1 truncate" id="DivCliente1" runat="server" style="text-align: right!important">Cliente:</div>
<div class="col-md-3" id="DivCliente2" runat="server">
<ADS:Dropdownlost ID="DdlCliente" runat="server" CssStyle="width: 100%;" Width="100%" DataTextField="NombreComercial" DataValueField="CveCliente"></ADS:Dropdownlost>
</div>
<div class="col-md-1 truncate" id="DivProveedor1" runat="server" visible="false" style="text-align: right!important">Proveedor:</div>
<div class="col-md-3" id="DivProveedor2" runat="server" visible="false">
<ADS:Dropdownlost ID="DdlProveedor" runat="server" CssStyle="width: 100%;" Width="100%" DataTextField="RazonSocial" DataValueField="CveProveedor" ></ADS:Dropdownlost>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Fecha Inicio:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaI" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate" style="text-align: right!important">Fecha Fin:</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaF" runat="server" CssClass="form-control" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
<div class="row">
<div class="col-md-1 truncate" id="DivTipoDoctoVenta" style="text-align: right!important;" runat="server">Tipo Documento:</div>
<div class="col-md-1" id="DivTipoDocto1" runat="server">
<asp:DropDownList ID="DdlTipoDocto1" runat="server" Class="table-group-action-input form-control input-inline input-sm select2me" Width="100px">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Ingresos" Value="Ing"></asp:ListItem>
<asp:ListItem Text="Egresos" Value="Egs"></asp:ListItem>
<asp:ListItem Text="Remisión" Value="Rem"></asp:ListItem>
<asp:ListItem Text="Pedido" Value="Ped"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1 truncate" id="DivTipoDoctoCompra" style="text-align: right!important;" runat="server" visible="false">Tipo Documento:</div>
<div class="col-md-1" id="DivTipoDoctoCompra2" runat="server" visible="false">
<asp:DropDownList ID="DdlTipoDocto2" runat="server" Class="table-group-action-input form-control input-inline input-sm select2me" Width="100px">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Factura" Value="Fac"></asp:ListItem>
</asp:DropDownList>
</div>
<%-- <div class="col-md-1 truncate" id="DivSucursal" runat="server" style="text-align: right!important;">Sucursal:</div>
<div class="col-md-1" id="DivSucursal2" runat="server">
<asp:DropDownList ID="DdlSucursal" runat="server" AppendDataBoundItems="true" DataTextField="Sucursal" DataValueField="CveSucursal" Class="table-group-action-input form-control input-inline input-sm select2me" Width="100px">
<asp:ListItem Selected="True" Text="Todas" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>--%>
<div class="col-md-1 truncate" id="DivSubProyecto" runat="server" style="text-align: right!important;">Proyecto:</div>
<div class="col-md-1" id="DivSubProyecto2" runat="server" >
<asp:DropDownList ID="DdlSubProyecto" CssClass="form-control input-sm select2me" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Width="150px">
<asp:ListItem Selected="true" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="Updatetabs" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<ajax:TabContainer ID="Tab" OnActiveTabChanged="Tab_ActiveTabChanged" AutoPostBack="true" runat="server" ActiveTabIndex="0" Width="100%">
<ajax:TabPanel ID="TabVentas" runat="server" HeaderText="Ventas">
<ContentTemplate>
<div style="text-align: right!important">
<input type="text" id="TxtBusquedaVentas" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaVentas','{0}')", GvVentas.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaVentas','{0}')", GvVentas.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UpDatosGvVentas" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvVentas" ClientIDMode="Static" Width="100%" runat="server" GridLines="None" BorderWidth="0" CssClass="table table-striped table-hover Widthall ScrollAD" data-sort="true" ShowHeader="True" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False">
<Columns>
<asp:BoundField HeaderText="Tipo Documento" DataField="TipoDocto" ItemStyle-Width="125px" />
<asp:HyperLinkField DataNavigateUrlFields="CveVenta" DataNavigateUrlFormatString="~/Ventas/Ventas.aspx?CveVenta={0}" Target="_blank" ItemStyle-Width="15%" HeaderText="SerieFolio" ControlStyle-CssClass="Texto" DataTextField="SerieFolio" />
<asp:BoundField HeaderText="Fecha" DataField="Fecha" DataFormatString="{0:d}" ItemStyle-HorizontalAlign="Center" />
<asp:HyperLinkField DataNavigateUrlFields="CveCliente" DataNavigateUrlFormatString="~/Ventas/Clientes.aspx?CveCliente={0}" Target="_blank" HeaderText="Cliente" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataTextField="Nombre" />
<asp:BoundField HeaderText="Total" DataField="Total" DataFormatString="{0:n2}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Sucursal" DataField="SubProyecto" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabCompras" runat="server" HeaderText="Compras">
<ContentTemplate>
<div style="text-align: right!important">
<input type="text" id="TxtBusquedaCompras" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaCompras','{0}')", GvCompras.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaCompras','{0}')", GvCompras.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UpDatosGvCompras" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvCompras" ClientIDMode="Static" Width="100%" runat="server" GridLines="None" BorderWidth="0" CssClass="table table-striped table-hover Widthall ScrollAD" data-sort="true" ShowHeader="True" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False" OnRowDataBound="GvCompras_RowDataBound">
<Columns>
<asp:BoundField HeaderText="Cantidad Solicitada" DataField="CantidadC" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right"/>
<asp:BoundField HeaderText="Cantidad Restante" DataField="CantidadF" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Proveedor/Producto ó Servicio" DataField="CodigoPS" ItemStyle-HorizontalAlign="Left"/>
<asp:BoundField HeaderText="Total" DataField="Total" DataFormatString="{0:#,##0.##}" ItemStyle-HorizontalAlign="Right" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
</ajax:TabContainer>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<%--<script src="/Scripts/DataTables.js"></script>
<script type="text/javascript">
function pageLoad(sender, e) {
$(document).ready(function () {
$('a[class="ajax__tab_tab"]').click(function () {
$.fn.dataTable.tables({ visible: true, api: true }).columns.adjust();
});
});
}
function OrdenarGvVentas() {
var Tam = TamañoVentana();
var Alto = Tam.height - 330;
if (Alto < 100) {
Alto = 100;
}
$('#GvVentas').DataTable({
scrollY: Alto + 'px',
scrollCollapse: true,
paging: false,
searching: false,
info: false
});
$('#GvVentas').parent().parent().children().first().css("position", "static");
}
function OrdenarGvCompras() {
var Tam = TamañoVentana();
var Alto = Tam.height - 330;
if (Alto < 100) {
Alto = 100;
}
$('#GvCompras').DataTable({
scrollY: Alto + 'px',
scrollCollapse: true,
paging: false,
searching: false,
info: false
});
$('#GvCompras').parent().parent().children().first().css("position", "static");
}
</script>--%>
</asp:Content>

View File

@@ -0,0 +1,283 @@
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class RepNotasSinAlmacen
Inherits ClsPaginas
#Region "propiedades"
Private Property dt As DataTable
Get
Try
dt = DirectCast(ViewState("dt"), DataTable)
Return DirectCast(ViewState("dt"), DataTable)
Catch ex As Exception
Return Nothing
End Try
End Get
Set(value As DataTable)
ViewState("dt") = value
End Set
End Property
Public Property DtEquivalencias() As DataTable
Get
Return CType(ViewState("dtReporte"), DataTable)
End Get
Set(value As DataTable)
ViewState("dtReporte") = value
End Set
End Property
Public Property FechaInicial As String
Get
Return ViewState("FechaInicial").ToString
End Get
Set(value As String)
ViewState("FechaInicial") = value
End Set
End Property
Public Property FechaFinal As String
Get
Return ViewState("FechaFinal").ToString
End Get
Set(value As String)
ViewState("FechaFinal") = value
End Set
End Property
Private Property DtNotasSinAlmacenVentas As DataTable
Get
Return DirectCast(ViewState("DtNotasSinAlmacenVentas"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtNotasSinAlmacenVentas") = value
End Set
End Property
Private Property DtNotasSinAlmacenCompras As DataTable
Get
Return DirectCast(ViewState("DtNotasSinAlmacenCompras"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtNotasSinAlmacenCompras") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaCombos()
'CargaDatos()
CargaPermisos()
End If
End Sub
Private Sub CargaPermisos()
Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201)
GvVentas.Columns(4).Visible = TienePermisoImportes
GvCompras.Columns(3).Visible = TienePermisoImportes
End Sub
Private Sub CargaCombos()
TxtFechaF.Text = Date.Now.ToShortDateString
TxtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString
DdlCliente.setEsWebService(True)
DdlCliente.Attributes.Add("data-metodo", "getcliente")
DdlCliente.SelectedText = "Todos"
DdlCliente.SelectedValue = "-1"
DdlProveedor.setEsWebService(True)
DdlProveedor.Attributes.Add("data-metodo", "getproveedores")
DdlProveedor.SelectedText = "Todos"
DdlProveedor.SelectedValue = "-1"
'DdlSucursal.DataSource = GlobalDTSucursales(UsuarioActual.CveEmpresa)
'DdlSucursal.DataBind()
DdlSubProyecto.Items.Clear()
DdlSubProyecto.SelectedValue = Nothing
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa, Estatus:=1)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Sin SubProyecto Asignado", "-1"))
End Sub
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim Reporte As New ClsInventarios
Dim CveClienteProveedor As Integer = -1
Dim TipoDocumento As String = DdlTipoDocto1.SelectedValue
Dim Opcion As Integer = 1
FechaInicial = If(TxtFechaI.Text.Trim <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text.ToDate, MinFecha)
FechaFinal = If(TxtFechaF.Text.Trim <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text.ToDate.AddDays(1), MaxFecha)
If Tab.ActiveTabIndex = 0 Then
'Ventas
If Not DdlCliente.SelectedValue.ToEntero > 0 Then
CveClienteProveedor = -1
Else
CveClienteProveedor = DdlCliente.SelectedValue.ToEntero
End If
If Reporte.RepNotasSinAlmacen(Opcion, CveClienteProveedor, FechaInicial, FechaFinal, TipoDocumento, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.Empresa.CveEmpresa) Then
GvVentas.DataSource = Reporte.DtResultados
DtNotasSinAlmacenVentas = Reporte.DtResultados
Else
GvVentas.DataSource = Nothing
End If
GvVentas.DataBind()
'If (GvVentas.Rows.Count > 0) Then
' GvVentas.UseAccessibleHeader = True
' GvVentas.HeaderRow.TableSection = TableRowSection.TableHeader
' RegistraScript("OrdenarGvVentas();")
'End If
Else
'Compras
If Not DdlProveedor.SelectedValue.ToEntero > 0 Then
CveClienteProveedor = -1
Else
CveClienteProveedor = DdlProveedor.SelectedValue.ToEntero
End If
If Reporte.RepNotasSinAlmacen(2, CveClienteProveedor, FechaInicial, FechaFinal, DdlTipoDocto2.SelectedValue.ToEntero, -1, UsuarioActual.Empresa.CveEmpresa) Then
GvCompras.DataSource = Reporte.DtResultados
DtNotasSinAlmacenCompras = Reporte.DtResultados
Else
GvCompras.DataSource = Nothing
End If
GvCompras.DataBind()
'If (GvCompras.Rows.Count > 0) Then
' GvCompras.UseAccessibleHeader = True
' GvCompras.HeaderRow.TableSection = TableRowSection.TableHeader
' RegistraScript("OrdenarGvCompras();")
'End If
End If
UpDatosGvVentas.Update()
UpDatosGvCompras.Update()
Reporte.Dispose()
End Sub
Protected Sub Tab_ActiveTabChanged(sender As Object, e As EventArgs)
DivCliente1.Visible = False
DivCliente2.Visible = False
DivProveedor1.Visible = False
DivProveedor2.Visible = False
DivTipoDoctoVenta.Visible = False
DivTipoDocto1.Visible = False
DivTipoDoctoCompra.Visible = False
DivTipoDoctoCompra2.Visible = False
DivSubProyecto.Visible = True
DivSubProyecto2.Visible = True
If Tab.ActiveTabIndex = 0 Then
DivCliente1.Visible = True
DivCliente2.Visible = True
DivTipoDoctoVenta.Visible = True
DivTipoDocto1.Visible = True
DivSubProyecto.Visible = True
DivSubProyecto2.Visible = True
Else
DivProveedor1.Visible = True
DivProveedor2.Visible = True
DivTipoDoctoCompra.Visible = True
DivTipoDoctoCompra2.Visible = True
End If
UpFiltros.Update()
End Sub
#Region " EXPORTAR - PDF - EXCEL "
Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
ImprimirPDFExcel("Excel")
End Sub
#Region "P D F"
Private Sub LinkPDF_Click(sender As Object, e As EventArgs) Handles LinkPDF.Click
ImprimirPDFExcel()
End Sub
Private Sub ImprimirPDFExcel(Optional Formato As String = "PDF")
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
'OBTENEMOS LOS DATOS
'Dim CveCliente As Integer = -1
'If DdlCliente.SelectedIndex = 0 Then
' CveCliente = -1
'Else
' CveCliente = DdlCliente.SelectedValue.ToEntero
'End If
FechaInicial = If(TxtFechaI.Text.Trim <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text.ToDate, MinFecha)
FechaFinal = If(TxtFechaF.Text.Trim <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text.ToDate.AddDays(1), MaxFecha)
Dim Filtros As String = ""
If Tab.ActiveTabIndex = 0 Then
Filtros = "<b>Filtros:</b> " & " cliente: " & DdlCliente.SelectedText & ", Tipo: " & DdlTipoDocto1.SelectedItem.Text & ", Fecha I: " & TxtFechaI.Text & " Fecha F: " & TxtFechaF.Text
Else
Filtros = "<b>Filtros:</b> " & " cliente: " & DdlCliente.SelectedText & ", Tipo: " & DdlTipoDocto2.SelectedItem.Text & ", Fecha I: " & TxtFechaI.Text & " Fecha F: " & TxtFechaF.Text
End If
'If Reporte.RepNotasSinAlmacen(1, CveCliente, FechaInicial, FechaFinal, 1, 1, UsuarioActual.Empresa.CveEmpresa) Then
' rpt = Reporte.DtResultados
'Else
' rpt = Nothing
'End If
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("AgrupadoPor", Filtros))
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("RFC", UsuarioActual.Empresa.RFC))
params.Add(New ReportParameter("DireccionEmpresa", UsuarioActual.Empresa.Direccion))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString()))
params.Add(New ReportParameter("FechaInicio", FechaInicial))
params.Add(New ReportParameter("FechaFin", FechaFinal))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
If Tab.ActiveTabIndex = 0 Then
ImprimirPDF("Empresas/Grales/Formatos/RepNotasSinAlmacenVentas.rdlc", DtNotasSinAlmacenVentas, params, "RepNotasSinAlmacenVentas", Formato:=Formato)
Else
ImprimirPDF("Empresas/Grales/Formatos/RepNotasSinAlmacenCompras.rdlc", DtNotasSinAlmacenCompras, params, "RepNotasSinAlmacenCompras", Formato:=Formato)
End If
End Sub
#End Region
#End Region
Protected Sub GvCompras_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
If Not e.Row.DBCampo("CveCompraDetalle").ToEntero > 0 Then
e.Row.CssClass = "Totales"
e.Row.Cells(0).Text = "<a class=""Texto"" href=""/Compras/Compras.aspx?CveCompra=" & e.Row.DBCampo("CveCompra") & """>" & e.Row.DBCampo("SerieFolio") & "</a>"
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left
e.Row.Cells(1).Text = e.Row.DBCampo("Fecha").ToDate.ToShortDateString
e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center
e.Row.Cells(2).Text = "<a class=""Texto"" href=""/Compras/Proveedores.aspx?CveProveedor=" & e.Row.DBCampo("CveProveedor") & """>" & e.Row.DBCampo("RazonSocial") & "</a>"
End If
End If
End Sub
End Class

139
Inventarios/RepOcInv.aspx Normal file
View File

@@ -0,0 +1,139 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepOcInv.aspx.vb" Inherits="Inventarios_RepOcInv" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.dataTables_scrollHead {
background-color: #95A5A6;
color: white;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte OC x Recibir
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Exportar a Excel</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LinkPDF" runat="server"> <i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<%--FILTROS--%>
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="UpFiltros">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px; position: relative;">
<div class="tools">
<asp:Button ID="BtnConsultar" CssClass="btn btn-primary" runat="server" ValidationGroup="GrpConsultar" Text="Consultar" />
</div>
<div class="titlefiltros caption magindate">
<div class="row">
<div class="col-md-1" style="max-width: 80px">Proveedor</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlProveedor" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CveProveedor" DataTextField="RazonSocial"></asp:DropDownList>
</div>
<%-- <div class="col-md-1 truncate" style="max-width: 80px">Folio</div>
<div class="col-md-1">
<asp:TextBox ID="TxtFolio" CssClass="form-control input-sm " runat="server" Width="100%"></asp:TextBox>
</div>--%>
<div class="col-md-1 truncate" style="max-width: 80px">Fecha Inicio</div>
<div class="col-md-1" style="min-width: 90px">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate" style="max-width: 80px">Fecha Fin</div>
<div class="col-md-1" style="min-width: 90px">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate" style="max-width: 80px">SubProyecto</div>
<div class="col-md-1">
<asp:DropDownList ID="DdlSubProyecto" runat="server" CssClass="form-control input-sm select2me" DataTextField="SubProyecto" DataValueField ="CveSubProyecto" Width="100%">
</asp:DropDownList>
</div>
<div class="col-md-1 truncate" style="max-width: 80px">Estatus</div>
<div class="col-md-1">
<asp:DropDownList ID="DdlEstatus" runat="server" CssClass="form-control input-sm select2me" Width="100%">
<asp:ListItem Text="Todos" Value="-1" />
<asp:ListItem Text="Pendientes Surtir" Value="5" Selected="True" />
<asp:ListItem Text="Sin surtir" Value="1" />
<asp:ListItem Text="Parcialmente surtido" Value="2" />
<asp:ListItem Text="Surtido" Value="3" />
<asp:ListItem Text="Cancelada" Value="4" />
</asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%--FILTRO JS--%>
<div class="row col-md-12" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<br />
<br />
<%--GV DATOS--%>
<asp:UpdatePanel ID="UPGv" runat="server" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
<table class="table Widthall ">
<tr>
<td class="dataTables_scrollHead text-center bold" style="font-size: 14px; width: 22.5%; border-right: 3px solid white;">Orden de Compra</td>
<td class="dataTables_scrollHead text-center bold" style="font-size: 14px; width: 47.5%; border-right: 3px solid white;">Producto</td>
<td class="dataTables_scrollHead text-center bold" style="font-size: 14px; width: 30%; border-right: 3px solid white;">Cantidad</td>
</tr>
</table>
<asp:GridView ID="GvDatos" Width="100%" runat="server" GridLines="None" BorderWidth="0" data-heighterror="370" data-freezecols="0" data-freezerows="1" CssClass="table table-striped table-hover Widthall ScrollAD" ShowHeader="True" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False" data-sort="true">
<Columns>
<asp:TemplateField HeaderText="Folio" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="7.5%">
<ItemTemplate>
<asp:HyperLink ID="HplFolio" runat="server" Text='<%# Eval("Folio")%>' CssClass="Texto" NavigateUrl='<%# Eval("CveOrdenCompra", "/OC/OC.aspx?OC={0}") %>'> </asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Fecha" DataField="FechaIng" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="7.5%" DataFormatString="{0:d}" />
<asp:BoundField HeaderText="SubProyecto" DataField="SubProyecto" ItemStyle-Width="7.5%" />
<asp:BoundField HeaderText="Descripción" DataField="CodigoPS" ItemStyle-Width="37.5%" />
<asp:BoundField HeaderText="Unidad" DataField="UM" ItemStyle-Width="5%" />
<asp:BoundField HeaderText="Precio" DataField="PU" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="5%" />
<asp:BoundField HeaderText="Original" DataField="CantidadTotal" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:BoundField HeaderText="Surtido" DataField="CantidadSurtida" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="10%" />
<asp:BoundField HeaderText="Pendiente" DataField="CantidadPendiente" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="7.5%" />
<asp:BoundField HeaderText="x Vin" DataField="CantidadxVincular" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="5%" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,153 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepOcInv
Inherits ClsPaginas
#Region "PROPIEDADES"
Private Property DtOCXSurtir As DataTable
Get
Return DirectCast(ViewState("DtOCXSurtir"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtOCXSurtir") = value
End Set
End Property
#End Region
Private Sub Inventarios_RepOcInv_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
InicializaValores()
' CargaDatos()
CargaPermisos()
End If
End Sub
#Region " INICIALIZA VALORES "
Private Sub CargaPermisos()
Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201)
GvDatos.Columns(5).Visible = TienePermisoImportes
End Sub
Private Sub InicializaValores()
TxtFechaF.Text = Now.ToShortDateString
TxtFechaI.Text = Now.AddMonths(-1).ToShortDateString
'Llenar dropdownlist de proveedores
DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
DdlProveedor.DataBind()
DdlProveedor.Items.Insert(0, New ListItem("Todos", "-1"))
DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
'CENTRO COSTO
If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then
GvDatos.Columns(2).HeaderText = "Sucursal"
ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
GvDatos.Columns(2).HeaderText = "Proyecto"
ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then
GvDatos.Columns(2).HeaderText = "Proyecto"
ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then
GvDatos.Columns(2).HeaderText = "Sucursal"
End If
End Sub
#End Region
#Region " CARGA DATOS "
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim Folio As String
Dim FechaInicio As Date
Dim FechaFin As Date
'Folio = If(TxtFolio.Text.Trim.Length > 0, TxtFolio.Text.Trim, "-1")
Folio = "-1"
FechaInicio = If(IsDate(TxtFechaI.Text), TxtFechaI.Text.ToDate, MinFecha)
FechaFin = If(IsDate(TxtFechaF.Text), TxtFechaF.Text.ToDate, MinFecha)
Dim objInventario As New ClsInventarios
If objInventario.RepOcInv(Folio, FechaInicio, FechaFin, DdlProveedor.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.Empresa.CveEmpresa) Then
GvDatos.DataSource = objInventario.DtResultados
DtOCXSurtir = objInventario.DtResultados
Else
GvDatos.DataSource = Nothing
End If
objInventario.Dispose()
GvDatos.DataBind()
UPGv.Update()
End Sub
#End Region
#Region " IMPRIMIR "
Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
GvDatos.ExportToExcel("OC_X_Surtir")
End Sub
Private Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LinkPDF.Click
If DtOCXSurtir IsNot Nothing Then
Dim StrFiltro As New StringBuilder
If DdlProveedor.SelectedValue <> "-1" Then StrFiltro.AppendFormat("<b>Proveedor</b>: {0}", DdlProveedor.SelectedItem.Text)
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
If TxtFechaI.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Inicio </b>: {0}", TxtFechaI.Text.ToDate.ToShortDateString)
If TxtFechaF.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Fin </b>: {0}", TxtFechaF.Text.ToDate.ToShortDateString)
'If TxtFolio.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Folio</b>: {0}", TxtFolio.Text)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", StrFiltro.ToString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepOCInv.rdlc", DtOCXSurtir, params, String.Format("ReporteOCXSurtir-{0}", Now.ToDateTime.ToShortDateString))
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
Private Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("CveOrdenCompra") = "" Then
e.Row.CssClass = "SubTotales2"
End If
End If
End Sub
#End Region
'Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
' If e.Row.RowType = DataControlRowType.DataRow Then
' If UsuarioActual.TienePermisoProceso(201) Then
' Dim Css = "Texto"
' Dim Liga = $"/OC/OC.aspx?&OC={e.Row.DBCampo("CveOrdenCompra")}"
' e.Row.FCLabel("LblFolio").Text = "<a class=" + "" + Css + "" + " href=" + "" + Liga + "" + ">" + e.Row.FCLabel("LblFolio").Text + "</a>"
' End If
' End If
'End Sub
End Class

View File

@@ -0,0 +1,140 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepOcInvMoto.aspx.vb" Inherits="Inventarios_RepOcInvMoto" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.dataTables_scrollHead {
background-color: #95A5A6;
color: white;
}
.table-scrollable {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte Ordenes de Compra Movimientos
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<li>
<asp:LinkButton ID="LnkExportar" runat="server"><i class="fa fa-ad-excel"></i> Exportar a Excel</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LinkPDF" runat="server"> <i class="fa fa-ad-pdf"></i> Generar PDF</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpFiltros" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px; position: relative;">
<div class="tools">
<asp:Button ID="btConsultar" CssClass="btn btn-primary" runat="server" ValidationGroup="GrpConsultar" Text="Consultar" />
</div>
<div class="titlefiltros caption magindate">
<div class="row">
<div class="col-md-1" style="max-width: 80px;">Proveedor</div>
<div class="col-md-1">
<asp:DropDownList ID="DdlProveedor" runat="server" CssClass="form-control input-sm select2me" Width="100%" DataValueField="CveProveedor" DataTextField="RazonSocial"></asp:DropDownList>
</div>
<div class="col-md-1" style="max-width: 80px;">Almacén</div>
<div class="col-md-1">
<asp:DropDownList ID="DdlAlmacen" runat="server" DataTextField="Almacen" DataValueField="CveAlmacen" CssClass="form-control input-sm select2me"></asp:DropDownList>
</div>
<div class="col-md-1 truncate" style="max-width: 80px;">Folio OC</div>
<div class="col-md-1">
<asp:TextBox ID="TxtFolio" CssClass="form-control input-sm" runat="server" Width="100%"></asp:TextBox>
</div>
<div class="col-md-1 truncate" style="max-width: 80px;">F. Inicio</div>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate">F. Fin</div>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btConsultar" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpEncabezado" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row col-md-12" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", Gv.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", Gv.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<div id="dvCa" style="width: 100%; top: 40px">
<table id="dTable" class="correcto table" style="width: 99.7% !Important;">
<tr>
<td id="dvOC" runat="server" class="dataTables_scrollHead" style="width: 60%; text-align: center!important"><strong>Orden de Compra</strong> </td>
<td id="dvFolio" runat="server" class="dataTables_scrollHead" style="width: 40%; text-align: center!important; border-right-color: white!important; border-left-color: white!important; border-style: solid;"><strong>Inventario</strong></td>
</tr>
</table>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UPGv" runat="server" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="Gv" Width="100%" runat="server" GridLines="None" BorderWidth="0" data-heighterror="330" data-freezecols="0" data-freezerows="1" CssClass=" table table-striped table-hover Widthall ScrollAD" ShowHeader="True" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False" data-sort="true">
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="CveProveedor" Target="_blank" ItemStyle-Width="20%" DataNavigateUrlFormatString="~/Compras/Proveedores.aspx?CveProveedor={0}" DataTextField="NombreComercial" HeaderText="PROVEEDOR" />
<asp:HyperLinkField DataNavigateUrlFields="CveOrdenCompra" DataNavigateUrlFormatString="~/OC/OC.aspx?OC={0}" Target="_blank" HeaderText="FOLIO OC" ItemStyle-HorizontalAlign="Center" ControlStyle-CssClass="Texto" ItemStyle-Width="10%" DataTextField="FolioOC" />
<asp:BoundField HeaderText="Descripción" ItemStyle-Width="20%" ControlStyle-CssClass="Texto" DataField="Descripcion" />
<asp:TemplateField HeaderText="Fecha" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Literal ID="lblFechaOC" runat="server" Text='<%# Eval("FechaIng", "{0:dd/MM/yyyy}")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField DataNavigateUrlFields="CveMovimiento" DataNavigateUrlFormatString="~/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" Target="_blank" HeaderText="Folio" ItemStyle-HorizontalAlign="Center" ControlStyle-CssClass="Texto" ItemStyle-Width="10%" DataTextField="FolioInv" />
<asp:BoundField HeaderText="Almacén" ItemStyle-Width="20%" ControlStyle-CssClass="Texto" DataField="Almacen" />
<asp:TemplateField HeaderText="Fecha" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Literal ID="lblFechaOC" runat="server" Text='<%# Eval("FechaMovto", "{0:dd/MM/yyyy}")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<%--<asp:BoundField HeaderText="Usuario" ItemStyle-Width="20%" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataField="Usuario" />--%>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,115 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class Inventarios_RepOcInvMoto
Inherits ClsPaginas
Private Sub Inventarios_RepOcInv_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
InicializaValores()
cargaDatos()
End If
End Sub
#Region " INICIALIZA VALORES "
Private Sub InicializaValores()
'Llenar dropdownlist de proveedores
DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa)
DdlProveedor.DataBind()
DdlProveedor.Items.Insert(0, New ListItem("Todos", "-1"))
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen IN (1,2)")
DdlAlmacen.DataBind()
DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1"))
TxtFechaF.Text = Now.ToString("dd/MM/yyyy")
TxtFechaI.Text = Now.AddMonths(-1).ToString("dd/MM/yyyy")
End Sub
#End Region
#Region "PROPIEDADES"
Private Property DtOCMovimientos As DataTable
Get
Return DirectCast(ViewState("DtOCMovimientos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtOCMovimientos") = value
End Set
End Property
#End Region
#Region " CARGA DATOS "
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click
cargaDatos()
End Sub
Private Sub cargaDatos()
Dim Folio As String
Dim Fini As Date
Dim Ffin As Date
Folio = If(TxtFolio.Text.Trim.Length > 0, TxtFolio.Text.Trim, "-1")
Fini = If(IsDate(TxtFechaI.Text), TxtFechaI.Text.ToDate, MinFecha)
Ffin = If(IsDate(TxtFechaF.Text), TxtFechaF.Text.ToDate, MaxFecha)
Dim objInventario As New ClsInventarios
If objInventario.RepOcInvMoto(Folio, Fini, Ffin, DdlProveedor.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, UsuarioActual.Empresa.CveEmpresa) Then
Gv.DataSource = objInventario.DtResultados
DtOCMovimientos = objInventario.DtResultados
Else
Gv.DataSource = Nothing
End If
Gv.DataBind()
objInventario.Dispose()
UPGv.Update()
End Sub
#End Region
#Region " EXCEL "
Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click
Gv.ExportToExcel("OCMovimientos")
End Sub
#End Region
#Region "PDF"
Private Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LinkPDF.Click
If DtOCMovimientos IsNot Nothing Then
Dim StrFiltro As New StringBuilder
If DdlProveedor.SelectedValue <> "-1" Then StrFiltro.AppendFormat("<b>Proveedor</b>: {0}", DdlProveedor.SelectedItem.Text)
If DdlAlmacen.SelectedValue <> "-1" Then StrFiltro.AppendFormat("<b>Almacen</b>: {0}", DdlAlmacen.SelectedItem.Text)
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
If TxtFechaI.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Inicio </b>: {0}", TxtFechaI.Text.ToDate.ToShortDateString)
If TxtFechaF.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Fecha Fin </b>: {0}", TxtFechaF.Text.ToDate.ToShortDateString)
If TxtFolio.Text <> "" Then StrFiltro.AppendFormat("&emsp;<b>Folio OC</b>: {0}", TxtFolio.Text)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("Filtros", StrFiltro.ToString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
ImprimirPDF("Empresas/Grales/Formatos/RepOCInvMoto.rdlc", DtOCMovimientos, params, String.Format("ReporteOCMovimientos-{0}", Now.ToDateTime.ToShortDateString))
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)
End If
End Sub
#End Region
End Class

View File

@@ -0,0 +1,122 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepReciclaje.aspx.vb" Inherits="Inventarios_RepReciclaje" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte de Reciclaje
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<asp:UpdatePanel ID="UppAddAcciones" runat="server">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkReciclaje" OnClick="LnkReciclaje_Click" runat="server" Text="Agregar Reciclaje"></asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" id="idnecesaria">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<asp:Button ID="BtnConsultar" OnClick="BtnConsultar_Click" runat="server" Text="Consultar" class="btn btn-primary" />
<a href="javascript:;" class="expand"></a>
</div>
<div class="titlefiltros caption">
<div class="row">
<label class="col-md-1 ">Cliente:</label>
<div class="col-md-4">
<ADS:Dropdownlost ID="DdlCliente" runat="server" CssStyle="width: 95%;" Width="100%" DataTextField="NombreComercial" DataValueField="CveCliente"></ADS:Dropdownlost>
</div>
<label class="col-md-1 ">Fecha Inicial:</label>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 80px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="txtFechaI" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendario" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="txtFechaI" PopupButtonID="ImgCalendario" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="rfvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="vcoFfvFI" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<label class="col-md-1 ">Fecha Final:</label>
<div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 80px !important; padding: 0px; margin-bottom: -10px;">
<asp:TextBox ID="txtFechaF" runat="server" CssClass="form-control" CausesValidation="true" Width="98%" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="txtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="txtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
<div class="portlet-body" style="display: none;">
<div class="row">
<label class="col-md-1 ">Producto/Servicio:</label>
<div class="col-md-2">
<ADS:Dropdownlost ID="DdlPS" runat="server" CssStyle="width: 95%;" DataTextField="PSCodigo" DataValueField="CvePS"></ADS:Dropdownlost>
</div>
<label class="col-md-1 ">Almacen:</label>
<div class="col-md-2">
<asp:DropDownList ID="DdlAlmacen" runat="server" Class="table-group-action-input form-control input-inline input-small input-sm select2me" DataTextField="Almacen" DataValueField="CveAlmacen" AppendDataBoundItems="true"></asp:DropDownList>
</div>
<label runat="server" id="LblProyecto" class="col-md-1 truncate">Proyecto:</label>
<div runat="server" id="DivProyecto" class="col-md-2">
<asp:DropDownList ID="DdlProyecto" runat="server" AutoPostBack="true" AppendDataBoundItems="true" DataTextField="Proyecto" DataValueField="CveProyecto" Class="table-group-action-input form-control input-inline input-small input-sm select2me">
</asp:DropDownList>
</div>
<label runat="server" id="LblSubProyecto" class="col-md-1 truncate">SubProyecto:</label>
<div runat="server" id="DivSubProyecto" class="col-md-2">
<asp:DropDownList ID="DdlSubProyecto" runat="server" AppendDataBoundItems="true" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Class="table-group-action-input form-control input-inline input-small input-sm select2me">
</asp:DropDownList>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:GridView ID="GvDatos" runat="server" GridLines="None"
EmptyDataText="No se han encontrado reciclajes con los filtros especificados"
CssClass="table table-hover table-striped ScrollAD mysmallbtn" Width="100%" data-sort="true" AutoGenerateColumns="False"
OnRowDataBound="GvDatos_RowDataBound">
<Columns>
<asp:BoundField DataField="FolioRemanufactura" ItemStyle-HorizontalAlign="Left" HeaderText="Folio Reciclaje" />
<asp:BoundField DataField="Almacen" ItemStyle-HorizontalAlign="Left" HeaderText="Almacen" />
<asp:HyperLinkField HeaderText="Folio Venta" DataTextField="FolioVenta" DataNavigateUrlFields="CveVenta" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" Target="_blank" />
<asp:HyperLinkField HeaderText="Folio Movimiento" DataTextField="FolioMovimiento" DataNavigateUrlFields="CveMovimiento" DataNavigateUrlFormatString="/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}" Target="_blank" />
<asp:HyperLinkField HeaderText="Cliente" DataTextField="Nombre" DataNavigateUrlFields="CveCliente" DataNavigateUrlFormatString="/Ventas/Clientes.aspx?CveCliente={0}" Target="_blank" />
<asp:BoundField DataField="ProyectoSubProyecto" ItemStyle-HorizontalAlign="Left" HeaderText="Proyecto/SubProyecto" />
<asp:BoundField DataField="Almacen" ItemStyle-HorizontalAlign="Left" HeaderText="Almacen" />
<asp:BoundField DataField="PS" ItemStyle-HorizontalAlign="Left" HeaderText="Producto/Servicio" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

View File

@@ -0,0 +1,125 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports System.IO
Partial Class Inventarios_RepReciclaje
Inherits ClsPaginas
#Region "PROPIEDADES"
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
InicializaValores()
End If
End Sub
Public Sub InicializaValores()
txtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString
txtFechaF.Text = Now.ToShortDateString
'Carga Clientes
DdlCliente.setEsWebService(True)
DdlCliente.Attributes.Add("data-metodo", "getcliente")
DdlCliente.SelectedText = "Todos"
DdlCliente.SelectedValue = "-1"
'Carga PS
DdlPS.setEsWebService(True)
DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", "-1")
DdlPS.SelectedText = "Todos"
DdlPS.SelectedValue = "-1"
'Carga Almacenes
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen NOT IN (9,11)")
DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1"))
DdlAlmacen.DataBind()
'Cargo Proyectos
DdlProyecto.DataSource = GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1)
DdlProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
DdlProyecto.DataBind()
CargaTipoCentroCosto()
End Sub
Private Sub CargaTipoCentroCosto()
If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then
DdlSubProyecto.Items.Clear()
DivProyecto.Visible = False
LblProyecto.Visible = False
LblSubProyecto.InnerText = "Sucursal:"
DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1)
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
DdlSubProyecto.DataBind()
ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
DdlSubProyecto.Items.Clear()
DivProyecto.Visible = False
LblProyecto.Visible = False
LblSubProyecto.InnerText = "Proyecto:"
DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1)
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
DdlSubProyecto.DataBind()
ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 3 Then
DdlSubProyecto.Items.Clear()
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
DdlSubProyecto.DataBind()
ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then
LblProyecto.InnerText = "Sucursal:"
LblSubProyecto.InnerText = "Proyecto:"
ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then
LblProyecto.InnerText = "Proyecto:"
LblSubProyecto.InnerText = "Sucursal:"
End If
End Sub
#Region "SELECTED INDEX CHANGE"
Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs)
DdlSubProyecto.Items.Clear()
If DdlProyecto.SelectedValue.ToEntero > 0 Then
DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1, 1)
End If
DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1"))
DdlSubProyecto.DataBind()
End Sub
#End Region
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
Dim ObjInv As New ClsInventarios
If ObjInv.GetRemanufactura(DdlCliente.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero,
DdlProyecto.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, UsuarioActual.CveEmpresa,
txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, UsuarioActual.CveUsuario) Then
GvDatos.DataSource = ObjInv.DtResultados
End If
ObjInv.Dispose()
GvDatos.DataBind()
If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then
GvDatos.Columns(5).HeaderText = "Sucursal"
ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then
GvDatos.Columns(5).HeaderText = "Proyecto"
ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then
GvDatos.Columns(5).HeaderText = "Sucursal/Proyecto"
ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then
GvDatos.Columns(5).HeaderText = "Proyecto/Sucursal"
End If
UpDatos.Update()
End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
If UsuarioActual.Empresa.TipoContabilizacion.Contiene(1, 2) Then
e.Row.Cells(5).Text = e.Row.DBCampo("SubProyecto").ToString
End If
End If
End Sub
Protected Sub LnkReciclaje_Click(sender As Object, e As EventArgs)
Response.Redirect("/Inventarios/Remanufactura.aspx", True)
UppAddAcciones.Update()
End Sub
End Class

View File

@@ -0,0 +1,119 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepTrasladoSolicitud.aspx.vb" Inherits="Inventarios_RepTrasladoSolicitud" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" Runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" Runat="Server">
Reporte de solicitudes de traspaso
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" Runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" Runat="Server">
<li>
<asp:HyperLink NavigateUrl="/Inventarios/TrasladoSolicitud.aspx?CveTraspasoSolicitud=-1" ID="HplAgregar" runat="server"> <i class="fa fa-plus"></i>Agregar Solicitud</asp:HyperLink>
</li>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" Runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" Runat="Server">
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px;">
<div class="tools">
<asp:Button ID="BtnConsultar" CssClass="btn btn-default" runat="server" Text="Consultar" />
<a href="javascript;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1 truncate">Origen</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlAlmacenOrigen" CssClass="form-control input-sm select2me" runat="server" Width="100%" DataValueField="CveAlmacen" DataTextField="Almacen"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Destino</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlAlmacenDestino" CssClass="form-control input-sm select2me" runat="server" Width="100%" DataValueField="CveAlmacen" DataTextField="Almacen"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Fecha Inicio</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaI" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaI" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaI" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate">Fecha Fin</div>
<div class="col-md-1 col-sm-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
</div>
</div>
</div>
<div class="portlet-body" <%= IIf(chkexpand.Checked = True, "", "style=""display:none;""")%>>
<div class="row">
<div class="col-md-1 truncate">Estatus</div>
<div class="col-md-1 col-sm-1">
<asp:DropDownList ID="DdlTraspasoEstatus" CssClass="form-control input-sm select2me" runat="server">
<asp:ListItem Text="Todos" Value="-1"></asp:ListItem>
<asp:ListItem Text="Activo" Value="1"></asp:ListItem>
<asp:ListItem Text="Cancelado" Value="2"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1 truncate">Contratos</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlContrato" CssClass="form-control input-sm select2me" DataTextField="NumeroDescripcionContrato" DataValueField="CveContrato" runat="server">
</asp:DropDownList>
</div>
<div class="col-md-1 truncate">Solicitante</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlSolicitante" CssClass="form-control input-sm select2me" DataTextField="Nombre" DataValueField="CveUsuario" runat="server">
</asp:DropDownList>
</div>
</div>
</div>
</div>
<asp:UpdatePanel ID="UPPMov" runat="server" RenderMode="Inline" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvT" Width="100%" runat="server" GridLines="None" BorderWidth="0" data-heighterror="330" data-freezecols="0" data-freezerows="4" CssClass=" correcto table table-smallpadding Widthall " ShowHeader="True" EmptyDataText="No se encontraron resultados." ShowHeaderWhenEmpty="true" AutoGenerateColumns="False" AllowPaging="False" ShowFooter="False">
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="CveTraspasoSolicitud" DataNavigateUrlFormatString="~/Inventarios/TrasladoSolicitud.aspx?CveTraspasoSolicitud={0} " Target="_blank" ItemStyle-Width="5%" HeaderText="Folio" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataTextField="Folio" />
<asp:BoundField DataField="AlmacenOrigen" HeaderText="Origen" ItemStyle-Width="10%" />
<asp:BoundField DataField="AlmacenDestino" HeaderText="Destino" ItemStyle-Width="10%" />
<asp:BoundField DataField="Fecha" HeaderText="Fecha" ItemStyle-Width="10%" DataFormatString="{0:d}" />
<asp:BoundField DataField="Nombre" HeaderText="Solicitante" ItemStyle-Width="15%" />
<asp:BoundField DataField="Guia" HeaderText="Guia" ItemStyle-Width="10%" />
<asp:BoundField DataField="Observaciones" HeaderText="Observaciones" ItemStyle-Width="10%" />
<asp:BoundField DataField="TraspasoEstatus" HeaderText="Estatus" ItemStyle-Width="10%" />
<asp:BoundField DataField="OpcionAlmacen" HeaderText="Surtido" ItemStyle-Width="10%" />
<asp:HyperLinkField DataNavigateUrlFields="CveContrato" DataNavigateUrlFormatString="~/Contratos/Contrato.aspx?CveContrato={0} " Target="_blank" ItemStyle-Width="30%" HeaderText="Contrato" ControlStyle-CssClass="Texto" ItemStyle-HorizontalAlign="Left" DataTextField="NumeroContrato" />
</Columns>
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnConsultar" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" Runat="Server">
</asp:Content>

View File

@@ -0,0 +1,52 @@
Imports Extensiones
Partial Class Inventarios_RepTrasladoSolicitud
Inherits ClsPaginas
Private Sub Inventarios_RepTrasladoSolicitud_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
CargaCombos()
TxtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString
TxtFechaF.Text = Now.ToShortDateString
End If
End Sub
Private Sub CargaCombos()
DdlAlmacenOrigen.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
DdlAlmacenOrigen.DataBind()
DdlAlmacenOrigen.Items.Insert(0, New ListItem("Todos", "-1"))
DdlAlmacenDestino.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa)
DdlAlmacenDestino.DataBind()
DdlAlmacenDestino.Items.Insert(0, New ListItem("Todos", "-1"))
DdlContrato.DataSource = GlobalDTContratos().FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa}")
DdlContrato.DataBind()
DdlContrato.Items.Insert(0, New ListItem("Todos", "-1"))
DdlSolicitante.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros("", "Nombre")
DdlSolicitante.DataBind()
DdlSolicitante.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click
CargaDatos()
End Sub
Private Sub CargaDatos()
Dim ObjInv As New ClsInventarios
If ObjInv.RepTrasladoSolicitud(DdlAlmacenOrigen.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero, DdlTraspasoEstatus.SelectedValue.ToEntero, TxtFechaI.Text.ToDate, TxtFechaF.Text.ToDate, DdlSolicitante.SelectedValue.ToEntero, -1,
DdlContrato.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
GvT.DataSource = ObjInv.DtResultados
End If
ObjInv.Dispose()
GvT.DataBind()
End Sub
End Class

View File

@@ -0,0 +1,119 @@
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepUMEquivalencia.aspx.vb" Inherits="Inventarios_RepUMEquivalencia" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" Runat="Server">
<style>
.table-advance tr td:nth-child(2) {
display:none;
}
.table-advance tr td:first-child {
text-align:left
}
.table-advance tr td:first-child {
width:200px !important;
}
.table-advance tr th:nth-child(2) {
display:none;
}
.table-advance tr td:nth-child(3) {
display:none;
}
.table-advance tr th:nth-child(3) {
display:none;
}
.table-advance tr td:nth-child(4) {
text-align:center;
width:100px !important
}
.table-advance tr td:nth-child(4) {
text-align:center
}
.table-advance tr td{
width:70px;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" Runat="Server">
Reporte de Equivalencia de Unidades de Medida
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" Runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" Runat="Server">
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" Runat="Server">
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="C" Runat="Server">
<asp:UpdatePanel ID="UpFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT portletfiltrostitlee" runat="server" id="td1">
<div class="tools">
<asp:Button runat="server" ID="btnFiltrar" Text="Consultar" OnClick="btnFiltrar_Click" CssClass="btn btn-primary"/>
<a href="javascript;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption ">
<div class="row">
<div class="col-md-1" style="font-size: medium; margin-top:5px;">Buscar: </div>
<div class="col-md-2 ">
<asp:DropDownList runat="server" ID="DdlClasificacion" DataTextField="Clasificacion" DataValueField="CveClasificacion" CssClass=" form-control select2me input-sm"></asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="UpDatos" UpdateMode="Conditional">
<ContentTemplate>
<div id="divHeader" runat="server">
</div>
<div runat="server" id="divGvdatos" style="height:600px; overflow:auto; width:100%;">
<asp:GridView runat="server" ID="GVDatos" CssClass="table table-striped table-advance table-hover" DataKeyNames="CvePS" EmptyDataText="No se encontraron equivalencias" Style="width:100%; text-align:right; overflow-x:scroll" gridlines="none" AutoGenerateColumns="True">
<Columns>
<asp:TemplateField HeaderText="Producto/Servicio">
<ItemTemplate>
<asp:HyperLink runat="server" target="_blank" href='<%#Eval("CvePS", "/Ventas/ProductosServicios.aspx?CvePS={0}")%>' CausesValidation="false" Text='<%# Eval("ProductoServicio")%>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>-
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" Runat="Server">
<script language="javascript" type="text/javascript">
function bind() {
var gridHeader = $('#<%=GVDatos.ClientID%>').clone(true);
/*Code to remove first ror which is header row*/
$(gridHeader).find("tr:gt(0)").remove();
$('#<%=GVDatos.ClientID%> tr th').each(function (i) {
/* Here Set Width of each th from gridview to new table th */
$("th:nth-child(" + (i + 1) + ")", gridHeader).css('width', ($(this).width()).toString() + "px");
});
$("#C_divHeader").append(gridHeader);
$('#C_divHeader').css('position', 'absolute');
// $('#C_divHeader').css('top', $('#<%=GVDatos.ClientID%>').offset().top);
}
</script>
</asp:Content>

View File

@@ -0,0 +1,59 @@
Imports Extensiones
Partial Class Inventarios_RepUMEquivalencia
Inherits ClsPaginas
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If IsPostBack Then
RegistraScript("bind()")
End If
If Not IsPostBack Then
CargaCombos()
End If
End Sub
Public Sub CargaCombos()
DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa)
DdlClasificacion.DataBind()
DdlClasificacion.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
Public Sub CargaDatos()
Dim ObjInv As New ClsInventarios
If ObjInv.RepExistenciasEquivalencias( DdlClasificacion.SelectedValue,-1,UsuarioActual.CveEmpresa) Then
GVDatos.DataSource = ObjInv.DtResultados
If ObjInv.DtResultados.Columns.Count <= 5 Then
divGvdatos.Style.Add("width", "50%")
divHeader.Style.Add("width", "48.5%")
ElseIf ObjInv.DtResultados.Columns.Count > 5 AndAlso ObjInv.DtResultados.Columns.Count <= 7 Then
divGvdatos.Style.Add("width", "60%")
divHeader.Style.Add("width", "58.5%")
ElseIf ObjInv.DtResultados.Columns.Count > 7 AndAlso ObjInv.DtResultados.Columns.Count <= 9 Then
divGvdatos.Style.Add("width", "70%")
divHeader.Style.Add("width", "68%")
ElseIf ObjInv.DtResultados.Columns.Count > 9 AndAlso ObjInv.DtResultados.Columns.Count <= 11 Then
divGvdatos.Style.Add("width", "80%")
divHeader.Style.Add("width", "77.5%")
ElseIf ObjInv.DtResultados.Columns.Count > 11 AndAlso ObjInv.DtResultados.Columns.Count <= 13 Then
divGvdatos.Style.Add("width", "90%")
divHeader.Style.Add("width", "87%")
ElseIf ObjInv.DtResultados.Columns.Count > 13 Then
divGvdatos.Style.Add("width", "100%")
divHeader.Style.Add("width", "96.5%")
End If
End If
divGvdatos.Visible = True
UpDatos.Update()
ObjInv.Dispose()
GVDatos.DataBind()
'GVDatos.Columns(2).Visible = False
'GVDatos.Columns(3).Visible = False
End Sub
Protected Sub btnFiltrar_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
End Class

Some files were not shown because too many files have changed in this diff Show More