This commit is contained in:
2023-11-11 11:50:51 -07:00
91 changed files with 2969 additions and 1293 deletions

398
Ventas/CatAgentes.aspx Normal file
View File

@@ -0,0 +1,398 @@
<%@ Page Title="Vendedores de Producto o Servicios" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="CatAgentes.aspx.vb" Inherits="Ventas_CatAgentes" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
<link href="/Metronic/assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.css" rel="stylesheet" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
body {
font-size: 11px;
}
</style>
<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;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Catálogo de Vendedores
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel runat="server" ID="UpAgregar">
<ContentTemplate>
<li>
<asp:LinkButton runat="server" ID="BtnAgregarModal" OnClick="BtnAgregarSucursalModal_Click" data-toggle="tooltip" data-placement="left" title="Agregar un Vendedor." Text="<i class='fa fa-plus'></i> Agregar Vendedor"></asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<div class="row" style="margin-left: 0px; margin-top: 5px; 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:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" data-sort="12" DataKeyNames="CveVendedor, CveEsquemaComision, Codigo, Telefono, Celular, Vendedor, Correo, Estatus, CveSuperior, VendedorTipo, TituloDocumentos,CveSubProyecto" EmptyDataText="No se encontraron Vendedores Registrados" ToolTip="Listado de Vendedores" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Sucursal">
<ItemTemplate>
<asp:Literal ID="LtlSubProyecto" runat="server" Text='<%# Eval("SubProyecto") %>'></asp:Literal>
</ItemTemplate>
<%--<EditItemTemplate>
<asp:DropDownList ID="DdlSubProyecto" CssClass="form-control input-small select2me" runat="server" DataValueField="CveSubProyecto" DataTextField="Sucursal" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 110px !important;"></asp:DropDownList>
</EditItemTemplate>--%>
</asp:TemplateField>
<asp:TemplateField HeaderText="Código">
<ItemTemplate>
<asp:Literal ID="LtlCodigo" runat="server" Text='<%# Eval("Codigo")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtCodigo" CssClass="form-control tt-input" runat="server" CausesValidation="true" MaxLength="30" Text='<%# Eval("Codigo") %>' ValidationGroup="GrpGV" Width="50px"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Vendedor">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlVendedor" runat="server" Text='<%# Eval("Vendedor", "{0}")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtVendedor" CssClass="form-control tt-input" runat="server" CausesValidation="true" MaxLength="50" Text='<%# Eval("Vendedor") %>' ValidationGroup="GrpGV" Width="110px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVVendedor" runat="server" ControlToValidate="TxtVendedor" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Vendedor''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGV"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCVendedor" runat="server" HighlightCssClass="vco" TargetControlID="RFVVendedor" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Correo">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlCorreo" runat="server" Text='<%# Eval("Correo", "{0}")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Teléfono">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlTelefono" runat="server" Text='<%# Eval("Telefono", "{0}")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtTelefono" CssClass="form-control tt-input" runat="server" CausesValidation="true" MaxLength="50" Text='<%# Eval("Telefono") %>' ValidationGroup="GrpGV" Width="90px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTelefono" runat="server" ControlToValidate="TxtTelefono" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Telefono''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGV"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCTelefono" runat="server" HighlightCssClass="vco" TargetControlID="RFVTelefono" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="TituloDocumentos">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlTituloDocumentos" runat="server" Text='<%# Eval("TituloDocumentos", "{0}")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtTituloDocumentos" CssClass="form-control tt-input" runat="server" CausesValidation="true" MaxLength="150" Text='<%# Eval("TituloDocumentos") %>' ValidationGroup="GrpGV" Width="110px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTituloDocumentos" runat="server" ControlToValidate="TxtTituloDocumentos" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Titulo de Documentos''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGV"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCVTitiloDocumentos" runat="server" HighlightCssClass="vco" TargetControlID="RFVTituloDocumentos" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Celular">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlCelular" runat="server" Text='<%# Eval("Celular", "{0}")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCelular" CssClass="form-control tt-input" runat="server" CausesValidation="true" MaxLength="50" Text='<%# Eval("Telefono") %>' ValidationGroup="GrpGV" Width="90px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVCel" runat="server" ControlToValidate="txtCelular" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Celular''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGV"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCCelular" runat="server" HighlightCssClass="vco" TargetControlID="RFVCel" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Estatus" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="LtlEstatus" runat="server" Text='<%# Eval("Estatus") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="ChkEstatus" runat="server" Checked='<%# If (Eval("Estatus").ToString = "Activo", True, False) %>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Esquema Comisión">
<ItemTemplate>
<asp:Literal ID="LtlEsquemaComision" runat="server" Text='<%# Eval("EsquemaComision")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DdlEsquemaComision" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveEsquemaComision" DataTextField="EsquemaComision" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 80px !important;" AutoPostBack="true"></asp:DropDownList>
<asp:RangeValidator ID="RVEsquemaComision" runat="server" ControlToValidate="DdlEsquemaComision" Display="None" Type="Integer" MinimumValue="1" MaximumValue="2147483647" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Sucursal''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpGuardar"></asp:RangeValidator>
<ajax:ValidatorCalloutExtender ID="VCEEsquemaComision" runat="server" HighlightCssClass="vco" TargetControlID="RVEsquemaComision" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Literal ID="LtlFecha" runat="server" Text='<%# Eval("FechaIng", "{0:d}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Usuario">
<ItemTemplate>
<asp:Literal ID="LtlUsuario" runat="server" Text='<%# Eval("Usuario") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Usuario Vinculado" Visible="false">
<ItemTemplate>
<asp:Literal ID="LtlUsuarioVinculado" runat="server" Text='<%# Eval("UsuarioVinculado") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Tipo Vendedor">
<ItemTemplate>
<asp:Literal ID="LtlTipoVendedor" runat="server" Text='<%# Eval("TituloTipoVendedor", "{0}")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Superior">
<ItemTemplate>
<asp:Literal ID="LtlSupervisor" runat="server" Text='<%# Eval("NombreSuperior", "{0}")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DdlSupervisor" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveVendedor" DataTextField="Vendedor" Class="table-group-action-input form-control input-inline input-small input-sm" Width="140px" AutoPostBack="true"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVSupervisor" runat="server" ControlToValidate="DdlSupervisor" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Supervisor''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGV"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCVSupervisor" runat="server" HighlightCssClass="vco" TargetControlID="RFVSupervisor" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
</asp:TemplateField>
<%-- <asp:TemplateField HeaderText="Es Supervisor" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="LtlEsSupervisor" runat="server" Text='<%# Eval("EsSupervisor") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="ChkEsSupervisor" runat="server" Checked='<%# If(Eval("Supervisor").ToString = "SI", True, False) %>' />
</EditItemTemplate>
</asp:TemplateField>--%>
<asp:TemplateField ItemStyle-HorizontalAlign="center">
<EditItemTemplate>
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" ValidationGroup="GrpGV" />
&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" OnClick="Edit_Click" CausesValidation="False" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<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>
</ContentTemplate>
</asp:UpdatePanel>
<div id="divAgregarSucursal" class="modal ADS fade" role="dialog">
<div class="modal-dialog" style="width: 450px;">
<asp:UpdatePanel runat="server" class="modal-content" ID="UpModal" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">
<asp:Literal ID="LtlTituloModal" runat="server">Agregar Vendedor</asp:Literal></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlSubProyecto" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveSubProyecto" DataTextField="SubProyecto" Class="table-group-action-input form-control input-inline input-small input-sm" Width="140px" AutoPostBack="true"></asp:DropDownList>
<label for="<%= DdlSubProyecto.ClientID.ToString()%>">Sucursal:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtCodigo" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TxtCodigo" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Código''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarRegistro"></asp:RequiredFieldValidator>
<label for="<%= TxtCodigo.ClientID.ToString()%>">Código:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtVendedor" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TxtVendedor" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Vendedor''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarRegistro"></asp:RequiredFieldValidator>
<label for="<%= TxtVendedor.ClientID.ToString()%>">Vendedor:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtCorreo" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVCorreo2" runat="server" ControlToValidate="TxtCorreo" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Correo''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarRegistro"></asp:RequiredFieldValidator>
<label for="<%= TxtCorreo.ClientID.ToString()%>">Correo:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="txtTelefono" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFTelefono" runat="server" ControlToValidate="txtTelefono" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Teléfono''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarRegistro"></asp:RequiredFieldValidator>
<label for="<%= txtTelefono.ClientID.ToString()%>">Teléfono:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtTituloDocumentos" CssClass="form-control " runat="server" MaxLength="150" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTituloDocumentos" runat="server" ControlToValidate="TxtTituloDocumentos" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Titulo de Documentos''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarRegistro"></asp:RequiredFieldValidator>
<label for="<%= txtTelefono.ClientID.ToString()%>">Titulo de Documentos:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtCelular" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVCel" runat="server" ControlToValidate="TxtCelular" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Celular''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarRegistro"></asp:RequiredFieldValidator>
<label for="<%= TxtCelular.ClientID.ToString()%>">Celular:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:CheckBox ID="ChkEstatus" runat="server" CssClass="form-control" CausesValidation="true" Checked="true"></asp:CheckBox>
<label for="<%= ChkEstatus.ClientID.ToString()%>">Estatus:</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-5">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DDlPuestoVendedor" runat="server" CssClass="form-control input-sm select2me" AutoPostBack="true" Class="table-group-action-input form-control input-inline input-small input-sm" Width="140px">
<asp:ListItem Text="Vendedor" Value="1"></asp:ListItem>
<asp:ListItem Text="Coordinador" Value="2"></asp:ListItem>
<asp:ListItem Text="Asistente" Value="3"></asp:ListItem>
<asp:ListItem Text="Vendedor PV" Value="4"></asp:ListItem>
</asp:DropDownList>
<label for="<%= DDlPuestoVendedor.ClientID.ToString()%>">Puesto:</label>
</div>
<div class="form-group form-md-line-input input-iconright" runat="server" id="DivSupervisor">
<asp:DropDownList ID="DdlSuperior" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveVendedor" DataTextField="Vendedor" Class="table-group-action-input form-control input-inline input-small input-sm" Width="140px" AutoPostBack="true"></asp:DropDownList>
<label for="<%= DdlSuperior.ClientID.ToString()%>">Superior:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlEsquemaComision" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveEsquemaComision" DataTextField="EsquemaComision" Class="table-group-action-input form-control input-inline input-small input-sm" Width="140px"></asp:DropDownList>
<label for="<%= DdlEsquemaComision.ClientID.ToString()%>">Esquema Comisión:</label>
</div>
</div>
<div class="col-md-7">
<div class="form-group form-md-line-input input-iconright" runat="server" id="DivTraspasar">
<asp:DropDownList ID="DdlVendedores" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveVendedor" DataTextField="Vendedor" Class="table-group-action-input form-control input-inline input-small input-sm" Width="89%"></asp:DropDownList>
<asp:LinkButton ID="BtnTraspasarClientes" runat="server" Width="10%" CssClass="btn btn-primary btn-sm" Style="margin-top:10px;" Text="<i class='fa fa-check'></i>">
</asp:LinkButton>
<label for="<%= DdlVendedores.ClientID.ToString()%>">Traspasar clientes de:</label>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="LbAgregar" runat="server" class="btn btn-success" Text="Agregar" ValidationGroup="GrpGuardarRegistro" />
<button id="BtnCancelarSucursal" runat="server" type="button" class="btn default" data-dismiss="modal">Cancelar</button>
</div>
<asp:HiddenField ID="HdnModalidad" runat="server" Value="I" ClientIDMode="Static" />
<asp:HiddenField ID="HdnID" runat="server" Value="-1" ClientIDMode="Static" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script type="text/javascript">
function showDivEC() {
$('#divAgregarSucursal').modal('show');
}
function hideDivEC() {
$('#divAgregarSucursal').modal('hide');
}
function ShowDivRegistro() {
$('#divAgregarSucursal').modal();
}
function HideDivRegistro() {
$('#divAgregarSucursal').modal('hide');
}
function SetValue(Hidden, Value) {
document.getElementById(Hidden).value = Value;
}
</script>
<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>

253
Ventas/CatAgentes.aspx.vb Normal file
View File

@@ -0,0 +1,253 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Partial Class Ventas_CatAgentes
Inherits ClsPaginas
Private Property DtVendedores As DataTable
Get
Return CType(ViewState("DtVendedores"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtVendedores") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
CargaValoresIniciales()
End If
End Sub
#Region " CARGA VALORES INICIALES "
Private Sub CargaValoresIniciales()
ViewState("Orden") = ""
CargaSubProyectos()
CargaDatos()
End Sub
Public Sub CargaSubProyectos()
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa))
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todas", "-1"))
End Sub
#End Region
Public Sub CargaDatos()
Dim ObjVendedores As New ClsVtaVendedores
Dim ObjComisiones As New ClsEsquemasComisiones
If ObjVendedores.GetVendedores(UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjVendedores.DtResultados '.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
DtVendedores = ObjVendedores.DtResultados
DdlSuperior.Items.Clear()
DdlSuperior.DataSource = DtVendedores.FiltraParametros("VendedorTipo = 2")
DdlVendedores.DataSource = DtVendedores
DdlSuperior.DataBind()
ObjVendedores.Dispose()
GvDatos.DataBind()
Else
Me.GvDatos.DataSource = Nothing
End If
If ObjComisiones.GetEsquemaComisiones(-1, "-1", -1, UsuarioActual.CveEmpresa) Then
DdlEsquemaComision.DataSource = ObjComisiones.DtResultados
Else
Alert("Ocurrio un Error al cargar los esquemas de comisiones", TipoMensaje.MsgError)
DdlEsquemaComision.DataSource = Nothing
End If
ObjComisiones.Dispose()
DdlEsquemaComision.DataBind()
End Sub
Protected Sub LbAgregar_Click(sender As Object, e As System.EventArgs) Handles LbAgregar.Click
Dim ObjVendedores As New ClsVtaVendedores
Dim TieneError = False
If HdnModalidad.Value = "I" Then
If ObjVendedores.AddVendedores(TxtVendedor.Text.Trim, TxtCorreo.Text.Trim, txtTelefono.Text.Trim, TxtCelular.Text.Trim, ChkEstatus.Checked,
DDlPuestoVendedor.SelectedValue.ToEntero, DdlSuperior.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, TxtTituloDocumentos.Text, DdlSubProyecto.SelectedValue.ToEntero, TxtCodigo.Text.Trim, DdlEsquemaComision.SelectedValue.ToEntero) Then
Alert("El nuevo Vendedor se guardó correctamente.", TipoMensaje.MsgInformacion)
TxtCodigo.Text = ""
TxtVendedor.Text = ""
TxtCorreo.Text = ""
txtTelefono.Text = ""
TxtCelular.Text = ""
Else
TieneError = True
Alert("Error al agregar vendedor", TipoMensaje.MsgError)
End If
Else
If HdnID.Value.ToEntero <> -1 Then
If ObjVendedores.UpdateVendedor(TxtCodigo.Text, TxtVendedor.Text, TxtCorreo.Text.Trim, txtTelefono.Text, TxtCelular.Text, ChkEstatus.Checked,
DDlPuestoVendedor.SelectedValue.ToEntero, DdlSuperior.SelectedValue.ToEntero,
HdnID.Value.ToEntero, TxtTituloDocumentos.Text, DdlSubProyecto.SelectedValue.ToEntero, DdlEsquemaComision.SelectedValue.ToEntero) Then
GvDatos.EditIndex = -1
Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion)
Else
TieneError = True
Alert("Error al actualizar los cambios.", TipoMensaje.MsgError)
End If
End If
End If
ObjVendedores.Dispose()
CargaDatos()
CargaGlobal()
OcultaDiv()
UpDatos.Update()
End Sub
#Region "G V D A T O S"
Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If Not (e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5) Then
If e.Row.DBCampo("Estatus") = "Activo" Then
e.Row.FCLabel("LtlEstatus").ForeColor = Drawing.Color.Green
Else
e.Row.FCLabel("LtlEstatus").ForeColor = Drawing.Color.Red
End If
End If
End If
End Sub
Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting
Dim ObjVendedores As New ClsVtaVendedores
Dim TieneError = False
If ObjVendedores.RemoveVendedor(GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then
GvDatos.EditIndex = -1
Alert("EL Vendedor se eliminó correctamente.", TipoMensaje.MsgInformacion)
Else
TieneError = True
Alert("Error al eliminar Vendedor", TipoMensaje.MsgError)
End If
ObjVendedores.Dispose()
CargaDatos()
If Not TieneError Then
CargaGlobal()
End If
End Sub
#End Region
#Region "CARGA GLOBAL"
Private Sub CargaGlobal()
GlobalDTVendedores(UsuarioActual.CveEmpresa) = Nothing
'Dim ObjVendedores As New ClsVtaVendedores
'If ObjVendedores.GetVendedores(UsuarioActual.CveEmpresa) Then
' GlobalDTVendedores(-1) = ObjVendedores.DtResultados
'End If
'ObjVendedores.Dispose()
End Sub
#End Region
Private Sub OcultaDiv()
ScriptManager.RegisterStartupScript(Me, Me.GetType, "Llave", "HideDivRegistro();", True)
End Sub
Public Sub BtnAgregarSucursalModal_Click(sender As Object, e As EventArgs)
LbAgregar.Text = "Agregar"
LtlTituloModal.Text = "Agregar Vendedor"
DdlSubProyecto.SelectedIndex = 0
DdlSuperior.Items.Clear()
DdlSuperior.DataSource = DtVendedores.FiltraParametros("VendedorTipo = 2")
DdlSuperior.DataBind()
DivSupervisor.Visible = True
DDlPuestoVendedor.SelectedIndex = 0
TxtCodigo.Text = ""
txtTelefono.Text = ""
TxtVendedor.Text = ""
TxtCelular.Text = ""
TxtTituloDocumentos.Text = ""
TxtCorreo.Text = ""
ChkEstatus.Checked = True
UpModal.Update()
HdnModalidad.Value = "I"
RegistraScript(String.Format("$('#{0}').modal();", "divAgregarSucursal"))
End Sub
Public Sub Edit_Click(sender As Object, e As EventArgs)
Dim ObjVendedores As New ClsVtaVendedores
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
HdnModalidad.Value = "U"
HdnID.Value = GvRow.DataKey("CveVendedor")
DdlSubProyecto.SelectedValueExist(GvRow.DataKey("CveSubProyecto"))
DdlEsquemaComision.SelectedValueExist(GvRow.DataKey("CveEsquemaComision"))
TxtCodigo.Text = GvRow.DataKey("Codigo")
txtTelefono.Text = GvRow.DataKey("Telefono")
TxtTituloDocumentos.Text = GvRow.DataKey("TituloDocumentos")
TxtVendedor.Text = GvRow.DataKey("Vendedor")
TxtCorreo.Text = GvRow.DataKey("Correo")
TxtCelular.Text = GvRow.DataKey("Celular")
ChkEstatus.Checked = If(GvRow.DataKey("Estatus") = "Activo", True, False)
DDlPuestoVendedor.SelectedValueExist(GvRow.DataKey("VendedorTipo"))
ValidaVendedores()
DdlSuperior.SelectedValueExist(GvRow.DataKey("CveSuperior"))
LbAgregar.Text = "Actualizar"
LtlTituloModal.Text = String.Format("{0}{1}", "Actualizar Vendedor: ", TxtVendedor.Text)
If ObjVendedores.GetVendedores(UsuarioActual.CveEmpresa) Then
DdlVendedores.Items.Clear()
DdlVendedores.DataSource = DtVendedores.FiltraParametros($"CveVendedor <> {GvRow.DataKey("CveVendedor")}")
DdlVendedores.DataBind()
End If
UpModal.Update()
RegistraScript(String.Format("$('#{0}').modal();", "divAgregarSucursal"))
ObjVendedores.Dispose()
End Sub
Private Sub DDlPuestoVendedor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DDlPuestoVendedor.SelectedIndexChanged
ValidaVendedores()
End Sub
Private Sub ValidaVendedores()
If DDlPuestoVendedor.SelectedValue = "1" Then
DdlSuperior.Items.Clear()
DdlSuperior.DataSource = DtVendedores.FiltraParametros("VendedorTipo = 2")
DdlSuperior.DataBind()
DivSupervisor.Visible = True
ElseIf DDlPuestoVendedor.SelectedValue = "3" Then
DdlSuperior.Items.Clear()
DdlSuperior.DataSource = DtVendedores.FiltraParametros("VendedorTipo = 1")
DdlSuperior.DataBind()
DivSupervisor.Visible = True
ElseIf DDlPuestoVendedor.SelectedValue = "2" Then
DdlSuperior.Items.Clear()
DivSupervisor.Visible = False
End If
UpModal.Update()
End Sub
Private Sub BtnTraspasarClientes_Click(sender As Object, e As EventArgs) Handles BtnTraspasarClientes.Click
Dim ObjVendedores As New ClsVtaVendedores
Dim TieneError = False
ObjVendedores.IniciaTransacSQL()
If Not ObjVendedores.TraspasarClientesVendedor(HdnID.Value.ToEntero, DdlVendedores.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
TieneError = True
End If
If Not TieneError Then
ObjVendedores.Commit()
Alert("Se han traspasado los clientes al nuevo vendedor", TipoMensaje.MsgInformacion)
Else
ObjVendedores.RollBack()
Alert("Ocurrió un error al traspasar los clientes al nuevo vendedor", TipoMensaje.MsgError)
End If
RegistraScript(String.Format("$('#{0}').modal('hide');", "divAgregarSucursal"))
ObjVendedores.Dispose()
CargaDatos()
CargaGlobal()
UpDatos.Update()
End Sub
End Class

View File

@@ -0,0 +1,398 @@
<%@ Page Title="Vendedores de Producto o Servicios" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="CatProcedimientos.aspx.vb" Inherits="Ventas_CatProcedimientos" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
<link href="/Metronic/assets/global/plugins/datatables/plugins/bootstrap/dataTables.bootstrap.css" rel="stylesheet" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
body {
font-size: 11px;
}
</style>
<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;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Catálogo de Vendedores
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel runat="server" ID="UpAgregar">
<ContentTemplate>
<li>
<asp:LinkButton runat="server" ID="BtnAgregarModal" OnClick="BtnAgregarSucursalModal_Click" data-toggle="tooltip" data-placement="left" title="Agregar un Vendedor." Text="<i class='fa fa-plus'></i> Agregar Vendedor"></asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<div class="row" style="margin-left: 0px; margin-top: 5px; 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:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" data-sort="12" DataKeyNames="CveVendedor, CveEsquemaComision, Codigo, Telefono, Celular, Vendedor, Correo, Estatus, CveSuperior, VendedorTipo, TituloDocumentos,CveSubProyecto" EmptyDataText="No se encontraron Vendedores Registrados" ToolTip="Listado de Vendedores" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Sucursal">
<ItemTemplate>
<asp:Literal ID="LtlSubProyecto" runat="server" Text='<%# Eval("SubProyecto") %>'></asp:Literal>
</ItemTemplate>
<%--<EditItemTemplate>
<asp:DropDownList ID="DdlSubProyecto" CssClass="form-control input-small select2me" runat="server" DataValueField="CveSubProyecto" DataTextField="Sucursal" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 110px !important;"></asp:DropDownList>
</EditItemTemplate>--%>
</asp:TemplateField>
<asp:TemplateField HeaderText="Código">
<ItemTemplate>
<asp:Literal ID="LtlCodigo" runat="server" Text='<%# Eval("Codigo")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtCodigo" CssClass="form-control tt-input" runat="server" CausesValidation="true" MaxLength="30" Text='<%# Eval("Codigo") %>' ValidationGroup="GrpGV" Width="50px"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Vendedor">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlVendedor" runat="server" Text='<%# Eval("Vendedor", "{0}")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtVendedor" CssClass="form-control tt-input" runat="server" CausesValidation="true" MaxLength="50" Text='<%# Eval("Vendedor") %>' ValidationGroup="GrpGV" Width="110px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVVendedor" runat="server" ControlToValidate="TxtVendedor" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Vendedor''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGV"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCVendedor" runat="server" HighlightCssClass="vco" TargetControlID="RFVVendedor" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Correo">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlCorreo" runat="server" Text='<%# Eval("Correo", "{0}")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Teléfono">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlTelefono" runat="server" Text='<%# Eval("Telefono", "{0}")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtTelefono" CssClass="form-control tt-input" runat="server" CausesValidation="true" MaxLength="50" Text='<%# Eval("Telefono") %>' ValidationGroup="GrpGV" Width="90px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTelefono" runat="server" ControlToValidate="TxtTelefono" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Telefono''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGV"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCTelefono" runat="server" HighlightCssClass="vco" TargetControlID="RFVTelefono" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="TituloDocumentos">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlTituloDocumentos" runat="server" Text='<%# Eval("TituloDocumentos", "{0}")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="TxtTituloDocumentos" CssClass="form-control tt-input" runat="server" CausesValidation="true" MaxLength="150" Text='<%# Eval("TituloDocumentos") %>' ValidationGroup="GrpGV" Width="110px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTituloDocumentos" runat="server" ControlToValidate="TxtTituloDocumentos" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Titulo de Documentos''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGV"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCVTitiloDocumentos" runat="server" HighlightCssClass="vco" TargetControlID="RFVTituloDocumentos" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Celular">
<ItemTemplate>
&nbsp;<asp:Literal ID="LtlCelular" runat="server" Text='<%# Eval("Celular", "{0}")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtCelular" CssClass="form-control tt-input" runat="server" CausesValidation="true" MaxLength="50" Text='<%# Eval("Telefono") %>' ValidationGroup="GrpGV" Width="90px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVCel" runat="server" ControlToValidate="txtCelular" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Celular''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGV"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCCelular" runat="server" HighlightCssClass="vco" TargetControlID="RFVCel" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Estatus" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="LtlEstatus" runat="server" Text='<%# Eval("Estatus") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="ChkEstatus" runat="server" Checked='<%# If (Eval("Estatus").ToString = "Activo", True, False) %>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Esquema Comisión">
<ItemTemplate>
<asp:Literal ID="LtlEsquemaComision" runat="server" Text='<%# Eval("EsquemaComision")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DdlEsquemaComision" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveEsquemaComision" DataTextField="EsquemaComision" Class="table-group-action-input form-control input-inline input-small input-sm" Style="width: 80px !important;" AutoPostBack="true"></asp:DropDownList>
<asp:RangeValidator ID="RVEsquemaComision" runat="server" ControlToValidate="DdlEsquemaComision" Display="None" Type="Integer" MinimumValue="1" MaximumValue="2147483647" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Sucursal''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpGuardar"></asp:RangeValidator>
<ajax:ValidatorCalloutExtender ID="VCEEsquemaComision" runat="server" HighlightCssClass="vco" TargetControlID="RVEsquemaComision" Width="300px"></ajax:ValidatorCalloutExtender>
</td>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Literal ID="LtlFecha" runat="server" Text='<%# Eval("FechaIng", "{0:d}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Usuario">
<ItemTemplate>
<asp:Literal ID="LtlUsuario" runat="server" Text='<%# Eval("Usuario") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Usuario Vinculado" Visible="false">
<ItemTemplate>
<asp:Literal ID="LtlUsuarioVinculado" runat="server" Text='<%# Eval("UsuarioVinculado") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Tipo Vendedor">
<ItemTemplate>
<asp:Literal ID="LtlTipoVendedor" runat="server" Text='<%# Eval("TituloTipoVendedor", "{0}")%>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Superior">
<ItemTemplate>
<asp:Literal ID="LtlSupervisor" runat="server" Text='<%# Eval("NombreSuperior", "{0}")%>'></asp:Literal>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DdlSupervisor" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveVendedor" DataTextField="Vendedor" Class="table-group-action-input form-control input-inline input-small input-sm" Width="140px" AutoPostBack="true"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVSupervisor" runat="server" ControlToValidate="DdlSupervisor" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Supervisor''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGV"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCVSupervisor" runat="server" HighlightCssClass="vco" TargetControlID="RFVSupervisor" Width="300px"></ajax:ValidatorCalloutExtender>
</EditItemTemplate>
</asp:TemplateField>
<%-- <asp:TemplateField HeaderText="Es Supervisor" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:Label ID="LtlEsSupervisor" runat="server" Text='<%# Eval("EsSupervisor") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="ChkEsSupervisor" runat="server" Checked='<%# If(Eval("Supervisor").ToString = "SI", True, False) %>' />
</EditItemTemplate>
</asp:TemplateField>--%>
<asp:TemplateField ItemStyle-HorizontalAlign="center">
<EditItemTemplate>
<asp:LinkButton ID="imgU" runat="server" AlternateText="Actualizar" CausesValidation="True" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-check'></i>" ValidationGroup="GrpGV" />
&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" OnClick="Edit_Click" CausesValidation="False" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<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>
</ContentTemplate>
</asp:UpdatePanel>
<div id="divAgregarSucursal" class="modal ADS fade" role="dialog">
<div class="modal-dialog" style="width: 450px;">
<asp:UpdatePanel runat="server" class="modal-content" ID="UpModal" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">
<asp:Literal ID="LtlTituloModal" runat="server">Agregar Vendedor</asp:Literal></h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlSubProyecto" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveSubProyecto" DataTextField="SubProyecto" Class="table-group-action-input form-control input-inline input-small input-sm" Width="140px" AutoPostBack="true"></asp:DropDownList>
<label for="<%= DdlSubProyecto.ClientID.ToString()%>">Sucursal:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtCodigo" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TxtCodigo" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Código''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarRegistro"></asp:RequiredFieldValidator>
<label for="<%= TxtCodigo.ClientID.ToString()%>">Código:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtVendedor" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TxtVendedor" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Vendedor''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarRegistro"></asp:RequiredFieldValidator>
<label for="<%= TxtVendedor.ClientID.ToString()%>">Vendedor:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtCorreo" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVCorreo2" runat="server" ControlToValidate="TxtCorreo" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Correo''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarRegistro"></asp:RequiredFieldValidator>
<label for="<%= TxtCorreo.ClientID.ToString()%>">Correo:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="txtTelefono" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFTelefono" runat="server" ControlToValidate="txtTelefono" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Teléfono''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarRegistro"></asp:RequiredFieldValidator>
<label for="<%= txtTelefono.ClientID.ToString()%>">Teléfono:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtTituloDocumentos" CssClass="form-control " runat="server" MaxLength="150" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTituloDocumentos" runat="server" ControlToValidate="TxtTituloDocumentos" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Titulo de Documentos''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarRegistro"></asp:RequiredFieldValidator>
<label for="<%= txtTelefono.ClientID.ToString()%>">Titulo de Documentos:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtCelular" CssClass="form-control " runat="server" MaxLength="50" CausesValidation="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVCel" runat="server" ControlToValidate="TxtCelular" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Celular''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardarRegistro"></asp:RequiredFieldValidator>
<label for="<%= TxtCelular.ClientID.ToString()%>">Celular:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:CheckBox ID="ChkEstatus" runat="server" CssClass="form-control" CausesValidation="true" Checked="true"></asp:CheckBox>
<label for="<%= ChkEstatus.ClientID.ToString()%>">Estatus:</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-5">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DDlPuestoVendedor" runat="server" CssClass="form-control input-sm select2me" AutoPostBack="true" Class="table-group-action-input form-control input-inline input-small input-sm" Width="140px">
<asp:ListItem Text="Vendedor" Value="1"></asp:ListItem>
<asp:ListItem Text="Coordinador" Value="2"></asp:ListItem>
<asp:ListItem Text="Asistente" Value="3"></asp:ListItem>
<asp:ListItem Text="Vendedor PV" Value="4"></asp:ListItem>
</asp:DropDownList>
<label for="<%= DDlPuestoVendedor.ClientID.ToString()%>">Puesto:</label>
</div>
<div class="form-group form-md-line-input input-iconright" runat="server" id="DivSupervisor">
<asp:DropDownList ID="DdlSuperior" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveVendedor" DataTextField="Vendedor" Class="table-group-action-input form-control input-inline input-small input-sm" Width="140px" AutoPostBack="true"></asp:DropDownList>
<label for="<%= DdlSuperior.ClientID.ToString()%>">Superior:</label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlEsquemaComision" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveEsquemaComision" DataTextField="EsquemaComision" Class="table-group-action-input form-control input-inline input-small input-sm" Width="140px"></asp:DropDownList>
<label for="<%= DdlEsquemaComision.ClientID.ToString()%>">Esquema Comisión:</label>
</div>
</div>
<div class="col-md-7">
<div class="form-group form-md-line-input input-iconright" runat="server" id="DivTraspasar">
<asp:DropDownList ID="DdlVendedores" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveVendedor" DataTextField="Vendedor" Class="table-group-action-input form-control input-inline input-small input-sm" Width="89%"></asp:DropDownList>
<asp:LinkButton ID="BtnTraspasarClientes" runat="server" Width="10%" CssClass="btn btn-primary btn-sm" Style="margin-top:10px;" Text="<i class='fa fa-check'></i>">
</asp:LinkButton>
<label for="<%= DdlVendedores.ClientID.ToString()%>">Traspasar clientes de:</label>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="LbAgregar" runat="server" class="btn btn-success" Text="Agregar" ValidationGroup="GrpGuardarRegistro" />
<button id="BtnCancelarSucursal" runat="server" type="button" class="btn default" data-dismiss="modal">Cancelar</button>
</div>
<asp:HiddenField ID="HdnModalidad" runat="server" Value="I" ClientIDMode="Static" />
<asp:HiddenField ID="HdnID" runat="server" Value="-1" ClientIDMode="Static" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
<script type="text/javascript">
function showDivEC() {
$('#divAgregarSucursal').modal('show');
}
function hideDivEC() {
$('#divAgregarSucursal').modal('hide');
}
function ShowDivRegistro() {
$('#divAgregarSucursal').modal();
}
function HideDivRegistro() {
$('#divAgregarSucursal').modal('hide');
}
function SetValue(Hidden, Value) {
document.getElementById(Hidden).value = Value;
}
</script>
<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,253 @@
Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Partial Class Ventas_CatProcedimientos
Inherits ClsPaginas
Private Property DtVendedores As DataTable
Get
Return CType(ViewState("DtVendedores"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtVendedores") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
CargaValoresIniciales()
End If
End Sub
#Region " CARGA VALORES INICIALES "
Private Sub CargaValoresIniciales()
ViewState("Orden") = ""
CargaSubProyectos()
CargaDatos()
End Sub
Public Sub CargaSubProyectos()
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa))
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todas", "-1"))
End Sub
#End Region
Public Sub CargaDatos()
Dim ObjVendedores As New ClsVtaVendedores
Dim ObjComisiones As New ClsEsquemasComisiones
If ObjVendedores.GetVendedores(UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjVendedores.DtResultados '.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
DtVendedores = ObjVendedores.DtResultados
DdlSuperior.Items.Clear()
DdlSuperior.DataSource = DtVendedores.FiltraParametros("VendedorTipo = 2")
DdlVendedores.DataSource = DtVendedores
DdlSuperior.DataBind()
ObjVendedores.Dispose()
GvDatos.DataBind()
Else
Me.GvDatos.DataSource = Nothing
End If
If ObjComisiones.GetEsquemaComisiones(-1, "-1", -1, UsuarioActual.CveEmpresa) Then
DdlEsquemaComision.DataSource = ObjComisiones.DtResultados
Else
Alert("Ocurrio un Error al cargar los esquemas de comisiones", TipoMensaje.MsgError)
DdlEsquemaComision.DataSource = Nothing
End If
ObjComisiones.Dispose()
DdlEsquemaComision.DataBind()
End Sub
Protected Sub LbAgregar_Click(sender As Object, e As System.EventArgs) Handles LbAgregar.Click
Dim ObjVendedores As New ClsVtaVendedores
Dim TieneError = False
If HdnModalidad.Value = "I" Then
If ObjVendedores.AddVendedores(TxtVendedor.Text.Trim, TxtCorreo.Text.Trim, txtTelefono.Text.Trim, TxtCelular.Text.Trim, ChkEstatus.Checked,
DDlPuestoVendedor.SelectedValue.ToEntero, DdlSuperior.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, TxtTituloDocumentos.Text, DdlSubProyecto.SelectedValue.ToEntero, TxtCodigo.Text.Trim, DdlEsquemaComision.SelectedValue.ToEntero) Then
Alert("El nuevo Vendedor se guardó correctamente.", TipoMensaje.MsgInformacion)
TxtCodigo.Text = ""
TxtVendedor.Text = ""
TxtCorreo.Text = ""
txtTelefono.Text = ""
TxtCelular.Text = ""
Else
TieneError = True
Alert("Error al agregar vendedor", TipoMensaje.MsgError)
End If
Else
If HdnID.Value.ToEntero <> -1 Then
If ObjVendedores.UpdateVendedor(TxtCodigo.Text, TxtVendedor.Text, TxtCorreo.Text.Trim, txtTelefono.Text, TxtCelular.Text, ChkEstatus.Checked,
DDlPuestoVendedor.SelectedValue.ToEntero, DdlSuperior.SelectedValue.ToEntero,
HdnID.Value.ToEntero, TxtTituloDocumentos.Text, DdlSubProyecto.SelectedValue.ToEntero, DdlEsquemaComision.SelectedValue.ToEntero) Then
GvDatos.EditIndex = -1
Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion)
Else
TieneError = True
Alert("Error al actualizar los cambios.", TipoMensaje.MsgError)
End If
End If
End If
ObjVendedores.Dispose()
CargaDatos()
CargaGlobal()
OcultaDiv()
UpDatos.Update()
End Sub
#Region "G V D A T O S"
Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If Not (e.Row.RowState = DataControlRowState.Edit OrElse e.Row.RowState = 5) Then
If e.Row.DBCampo("Estatus") = "Activo" Then
e.Row.FCLabel("LtlEstatus").ForeColor = Drawing.Color.Green
Else
e.Row.FCLabel("LtlEstatus").ForeColor = Drawing.Color.Red
End If
End If
End If
End Sub
Protected Sub GvDatos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvDatos.RowDeleting
Dim ObjVendedores As New ClsVtaVendedores
Dim TieneError = False
If ObjVendedores.RemoveVendedor(GvDatos.DataKeys(e.RowIndex).Value.ToString.ToEntero) Then
GvDatos.EditIndex = -1
Alert("EL Vendedor se eliminó correctamente.", TipoMensaje.MsgInformacion)
Else
TieneError = True
Alert("Error al eliminar Vendedor", TipoMensaje.MsgError)
End If
ObjVendedores.Dispose()
CargaDatos()
If Not TieneError Then
CargaGlobal()
End If
End Sub
#End Region
#Region "CARGA GLOBAL"
Private Sub CargaGlobal()
GlobalDTVendedores(UsuarioActual.CveEmpresa) = Nothing
'Dim ObjVendedores As New ClsVtaVendedores
'If ObjVendedores.GetVendedores(UsuarioActual.CveEmpresa) Then
' GlobalDTVendedores(-1) = ObjVendedores.DtResultados
'End If
'ObjVendedores.Dispose()
End Sub
#End Region
Private Sub OcultaDiv()
ScriptManager.RegisterStartupScript(Me, Me.GetType, "Llave", "HideDivRegistro();", True)
End Sub
Public Sub BtnAgregarSucursalModal_Click(sender As Object, e As EventArgs)
LbAgregar.Text = "Agregar"
LtlTituloModal.Text = "Agregar Vendedor"
DdlSubProyecto.SelectedIndex = 0
DdlSuperior.Items.Clear()
DdlSuperior.DataSource = DtVendedores.FiltraParametros("VendedorTipo = 2")
DdlSuperior.DataBind()
DivSupervisor.Visible = True
DDlPuestoVendedor.SelectedIndex = 0
TxtCodigo.Text = ""
txtTelefono.Text = ""
TxtVendedor.Text = ""
TxtCelular.Text = ""
TxtTituloDocumentos.Text = ""
TxtCorreo.Text = ""
ChkEstatus.Checked = True
UpModal.Update()
HdnModalidad.Value = "I"
RegistraScript(String.Format("$('#{0}').modal();", "divAgregarSucursal"))
End Sub
Public Sub Edit_Click(sender As Object, e As EventArgs)
Dim ObjVendedores As New ClsVtaVendedores
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
HdnModalidad.Value = "U"
HdnID.Value = GvRow.DataKey("CveVendedor")
DdlSubProyecto.SelectedValueExist(GvRow.DataKey("CveSubProyecto"))
DdlEsquemaComision.SelectedValueExist(GvRow.DataKey("CveEsquemaComision"))
TxtCodigo.Text = GvRow.DataKey("Codigo")
txtTelefono.Text = GvRow.DataKey("Telefono")
TxtTituloDocumentos.Text = GvRow.DataKey("TituloDocumentos")
TxtVendedor.Text = GvRow.DataKey("Vendedor")
TxtCorreo.Text = GvRow.DataKey("Correo")
TxtCelular.Text = GvRow.DataKey("Celular")
ChkEstatus.Checked = If(GvRow.DataKey("Estatus") = "Activo", True, False)
DDlPuestoVendedor.SelectedValueExist(GvRow.DataKey("VendedorTipo"))
ValidaVendedores()
DdlSuperior.SelectedValueExist(GvRow.DataKey("CveSuperior"))
LbAgregar.Text = "Actualizar"
LtlTituloModal.Text = String.Format("{0}{1}", "Actualizar Vendedor: ", TxtVendedor.Text)
If ObjVendedores.GetVendedores(UsuarioActual.CveEmpresa) Then
DdlVendedores.Items.Clear()
DdlVendedores.DataSource = DtVendedores.FiltraParametros($"CveVendedor <> {GvRow.DataKey("CveVendedor")}")
DdlVendedores.DataBind()
End If
UpModal.Update()
RegistraScript(String.Format("$('#{0}').modal();", "divAgregarSucursal"))
ObjVendedores.Dispose()
End Sub
Private Sub DDlPuestoVendedor_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DDlPuestoVendedor.SelectedIndexChanged
ValidaVendedores()
End Sub
Private Sub ValidaVendedores()
If DDlPuestoVendedor.SelectedValue = "1" Then
DdlSuperior.Items.Clear()
DdlSuperior.DataSource = DtVendedores.FiltraParametros("VendedorTipo = 2")
DdlSuperior.DataBind()
DivSupervisor.Visible = True
ElseIf DDlPuestoVendedor.SelectedValue = "3" Then
DdlSuperior.Items.Clear()
DdlSuperior.DataSource = DtVendedores.FiltraParametros("VendedorTipo = 1")
DdlSuperior.DataBind()
DivSupervisor.Visible = True
ElseIf DDlPuestoVendedor.SelectedValue = "2" Then
DdlSuperior.Items.Clear()
DivSupervisor.Visible = False
End If
UpModal.Update()
End Sub
Private Sub BtnTraspasarClientes_Click(sender As Object, e As EventArgs) Handles BtnTraspasarClientes.Click
Dim ObjVendedores As New ClsVtaVendedores
Dim TieneError = False
ObjVendedores.IniciaTransacSQL()
If Not ObjVendedores.TraspasarClientesVendedor(HdnID.Value.ToEntero, DdlVendedores.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
TieneError = True
End If
If Not TieneError Then
ObjVendedores.Commit()
Alert("Se han traspasado los clientes al nuevo vendedor", TipoMensaje.MsgInformacion)
Else
ObjVendedores.RollBack()
Alert("Ocurrió un error al traspasar los clientes al nuevo vendedor", TipoMensaje.MsgError)
End If
RegistraScript(String.Format("$('#{0}').modal('hide');", "divAgregarSucursal"))
ObjVendedores.Dispose()
CargaDatos()
CargaGlobal()
UpDatos.Update()
End Sub
End Class

View File

@@ -4143,7 +4143,7 @@
<asp:TextBox ID="TxtCorreoCumplimiento" CssClass="form-control" runat="server" MaxLength="300"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender9" runat="server" FilterType="Numbers, LowercaseLetters, UppercaseLetters, Custom" ValidChars=".;@_-ñ" TargetControlID="TxtCorreoCumplimiento" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator4" runat="server" CssClass="help-block errorimput" ValidationExpression="(([a-zA-Z0-9ñÑ_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)(\s*;\s*|\s*$))*" ControlToValidate="TxtCorreoCumplimiento" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Email''</b> no es válido, por favor ingrése uno correcto." ValidationGroup="GrpGuardarmaterialidad"></asp:RegularExpressionValidator>
<asp:Label AssociatedControlID="TxtCorreoCumplimiento" runat="server" Text="Correo cunmplimiento:"></asp:Label>
<asp:Label AssociatedControlID="TxtCorreoCumplimiento" runat="server" Text="Correo cumplimiento:"></asp:Label>
<i></i>
</div>
<div class="row">

View File

@@ -917,6 +917,7 @@ Partial Class Ventas_ClientesAbonar
If RblTipoPago.SelectedValue = "3" Then
Pago.TipoPago = "I"
Pago.FechaDocumentoRelacionado = FechaIngreso
Pago.CveClientePago = CveCliente
End If
'Tipos de cambio

View File

@@ -19,6 +19,9 @@
<li>
<asp:LinkButton ID="LnkEliminarSeleccionados" runat="server" OnClick="LnkEliminarSeleccionados_Click"><i class='fa fa-trash' style="color:red"></i> Eliminar seleccionados</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="Content6" ContentPlaceHolderID="HA" runat="Server">
</asp:Content>
@@ -56,9 +59,46 @@
<asp:ListItem Text="Facturado y Timbrado" Value="3"></asp:ListItem>
</asp:DropDownList>
</div>--%>
<div class="col-md-1 truncate">
Fecha Inicio:
</div>
</div>
<div class="col-md-1" style="min-width: 115px">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 100px !important; padding: 0px;">
<asp:TextBox Width="80px" ID="txtFechaI" runat="server" CssClass="form-control" CausesValidation="true" 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: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 class="col-md-1 truncate">
Fecha Fin:
</div>
<div class="col-md-1" style="min-width: 115px">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 100px !important; padding: 0px;">
<asp:TextBox Width="80px" ID="txtFechaF" runat="server" CssClass="form-control" CausesValidation="true" 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: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>
</div>
<div class="portlet-body" style="display: none;">
<div class="row">
</div>
@@ -90,17 +130,16 @@
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron solicitudes de facturación" OnRowDataBound="GvDatos_RowDataBound"
DataKeyNames="CveFacturacionAcarreo,CvePSGeneral,Cantidad,CveCliente,CveSubProyecto,CvePSRelacionado" CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" data-sort="true" GridLines="None" Width="99%">
DataKeyNames="CveFacturacionAcarreo,CvePSGeneral,Cantidad,CveCliente,CveSubProyecto,CvePSRelacionado,Folio,FolioAdicional" CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" data-sort="true" GridLines="None" Width="99%">
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="20px" HeaderStyle-Width="20px" ItemStyle-CssClass="NoClick">
<HeaderTemplate>
<asp:CheckBox runat="server" ID="chkSelectAll" CssClass="ChkAllClick" />
<asp:CheckBox runat="server" ID="chkSelectAll" CssClass="ChkAllClick" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox runat="server" ID="chk" CssClass="ChkAllEvt" />
<asp:CheckBox runat="server" ID="chk" CssClass="ChkAllEvt" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Cliente" DataField="Nombre" />
</asp:TemplateField>
<asp:BoundField HeaderText="Servicio" DataField="Servicio" />
<asp:BoundField HeaderText="Mercancia" DataField="Mercancia" />
<asp:BoundField HeaderText="Fecha Salida" DataField="FechaSalida" DataFormatString="{0:dd/MM/yyyy HH:mm}" ItemStyle-Width="80px" />
@@ -108,6 +147,8 @@
<asp:BoundField HeaderText="Cant." DataField="Cantidad" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Origen" DataField="DireccionOrigen" />
<asp:BoundField HeaderText="Destino" DataField="DireccionDestino" />
<asp:BoundField HeaderText="Boleta" DataField="Folio" />
<asp:BoundField HeaderText="Hoja Servicio" DataField="FolioAdicional" />
<asp:HyperLinkField HeaderText="Serie Folio" DataTextField="SerieFolio" DataNavigateUrlFields="CveVenta" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" />
</Columns>
<RowStyle CssClass="Texto" />

View File

@@ -1,10 +1,10 @@

Option Explicit On
Option Explicit On
Option Strict On
Imports System.Data
Imports System.Data
Imports System.IO
Imports ADSTimbrado
Imports System.IO.Compression
Imports System.Net.Http
Imports Extensiones
Imports GemBox.Spreadsheet
@@ -13,8 +13,14 @@ Partial Class Ventas_FacturacionAcarreos
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
txtFechaI.Text = NowADS.FirstDayOfMonth().ToShortDateString
CargaDatos()
End If
If IfNull(Request("OP"), "").ToString = "File" Then
DescargaArchivoDirecto(Request("File").ToString)
End If
End Sub
Private Sub CargaDatos()
@@ -23,7 +29,7 @@ Partial Class Ventas_FacturacionAcarreos
CveCliente = DdlClientes.SelectedValue.ToEntero()
End If
Using ObjVentas As New ClsVentas
If ObjVentas.GetFacturacionAcarreos(-1, CveCliente, -1, DdlEstatus.SelectedValue.ToEntero(), NowADS(), UsuarioActual.CveEmpresa) Then
If ObjVentas.GetFacturacionAcarreos(-1, CveCliente, -1, DdlEstatus.SelectedValue.ToEntero(), txtFechaI.Text.ToDate, UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjVentas.DtResultados
End If
End Using
@@ -41,17 +47,18 @@ Partial Class Ventas_FacturacionAcarreos
.Add(New DataColumn("Sucursal", GetType(String)))
.Add(New DataColumn("RFC", GetType(String)))
.Add(New DataColumn("Cantidad", GetType(Decimal)))
.Add(New DataColumn("Folio", GetType(String)))
.Add(New DataColumn("ProductoGeneral", GetType(String)))
.Add(New DataColumn("Origen", GetType(String)))
.Add(New DataColumn("Destino", GetType(String)))
.Add(New DataColumn("FechaSalida", GetType(DateTime)))
.Add(New DataColumn("FechaLlegada", GetType(DateTime)))
.Add(New DataColumn("Unidad", GetType(String)))
.Add(New DataColumn("Chofer", GetType(String)))
.Add(New DataColumn("Configuración", GetType(String)))
.Add(New DataColumn("Remolque1", GetType(String)))
.Add(New DataColumn("Remolque2", GetType(String)))
'.Add(New DataColumn("Chofer", GetType(String)))
'.Add(New DataColumn("Remolque1", GetType(String)))
'.Add(New DataColumn("Remolque2", GetType(String)))
.Add(New DataColumn("Distancia", GetType(Decimal)))
.Add(New DataColumn("HojaServicio", GetType(String)))
End With
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
@@ -114,25 +121,40 @@ Partial Class Ventas_FacturacionAcarreos
RowsNoCargados += 1
End If
For Each row As DataRow In dt.Rows
For Each row As DataRow In dt.FiltraParametros("Sucursal <> ''").Rows
Dim FechaSalida As DateTime = MinFecha
Dim FechaLlegada As DateTime = MinFecha
If row("FechaSalida").ToString().ToDateTime() > FechaSalida Then
FechaSalida = row("FechaSalida").ToString().ToDateTime()
FechaSalida = row("FechaSalida").ToString().ToDateTime().AddHours(9)
End If
If row("FechaLlegada").ToString().ToDateTime() > FechaLlegada Then
FechaLlegada = row("FechaLlegada").ToString().ToDateTime()
End If
FechaLlegada = row("FechaLlegada").ToString().ToDateTime().AddHours(14)
End If
Dim Folio, FolioAdicional, Remolque1, Remolque2 As String
Dim dtu As DataRow = GlobalDTInvCamiones(UsuarioActual.CveEmpresa).FiltroPrimero($"Placa = '{row("Unidad")}'")
If dtu IsNot Nothing Then
'Chofer = dtu("Chofer").ToString
'Configuracion = dtu("Configuracion").ToString
Remolque1 = dtu("Remolque1").ToString
Remolque2 = dtu("Remolque2").ToString
Else
Folio = "" : FolioAdicional = "" : Remolque1 = "" : Remolque2 = ""
End If
'temporal
Folio = row("Folio").ToString
FolioAdicional = row("HojaServicio").ToString
Dim msg As String = ObjVentas.AddFacturacionAcarreos(row("Sucursal").ToString(), row("RFC").ToString(), row("Cantidad").ToString().ToDecimal(), row("ProductoGeneral").ToString(), row("Origen").ToString(),
row("Destino").ToString(), FechaSalida, FechaLlegada, row("Unidad").ToString(), row("Chofer").ToString(), row("Configuración").ToString(),
row("Remolque1").ToString(), row("Remolque2").ToString(), row("Distancia").ToString().ToDecimal(), UsuarioActual.CveEmpresa)
row("Destino").ToString(), FechaSalida, FechaLlegada, row("Unidad").ToString(), Folio, FolioAdicional,
Remolque1, Remolque2, row("Distancia").ToString().ToDecimal(), UsuarioActual.CveEmpresa)
If msg = "Correcto" Then
RowsCargados += 1
Else
TieneError = True
MsgFacturacionAcarreos.AppendFormat("Ocurrió un error al procesar la fila: {0}<br/>{1}", row("NoExcel"), msg)
MsgFacturacionAcarreos.AppendFormat("Ocurrió un error al procesar la fila: Hoja Servicio: {0}<br/>{1}", FolioAdicional, msg)
RowsNoCargados += 1
Exit For
End If
@@ -163,60 +185,8 @@ Partial Class Ventas_FacturacionAcarreos
CargaDatos()
End If
End Sub
Private Function ReadExcelFile(ByVal flatFilePath As String, ByVal firstRowHasHeaders As Boolean) As DataTable
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
Dim excelFile As ExcelFile = ExcelFile.Load(flatFilePath)
Dim unnamed As Integer = 0
Dim cols As Integer
Dim columns As String()
Dim curRow As Integer = 0
Dim curCol As Integer = 0
Dim dataTable As DataTable = New DataTable()
Dim worksheet As ExcelWorksheet = excelFile.Worksheets(0)
For cols = 0 To worksheet.Rows(0).AllocatedCells.Count - 1
If firstRowHasHeaders Then
If worksheet.Rows(0).Cells(cols).Value IsNot Nothing Then
dataTable.Columns.Add(worksheet.Rows(0).Cells(cols).Value.ToString())
Else
dataTable.Columns.Add("Unnamed Column " & (System.Threading.Interlocked.Increment(unnamed)))
End If
curRow = 1
Else
dataTable.Columns.Add("Column " & (cols + 1))
End If
Next
dataTable.Columns.Add("NoExcel", GetType(String))
While curRow < worksheet.Rows.Count
columns = New String(cols) {}
For curCol = 0 To cols
End Sub
If curCol = cols Then
columns(curCol) = worksheet.Rows(curRow).Name
Else
If worksheet.Rows(curRow).Cells(curCol).Value Is Nothing Then
columns(curCol) = ""
Else
columns(curCol) = worksheet.Rows(curRow).Cells(curCol).Value.ToString()
End If
End If
Next
dataTable.Rows.Add(columns)
curRow += 1
End While
Return dataTable
End Function
#End Region
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
@@ -227,9 +197,6 @@ Partial Class Ventas_FacturacionAcarreos
End If
End Sub
Protected Sub LnkFacturarSeleccionados_Click(sender As Object, e As EventArgs)
If GvDatos.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("chk").Checked) <= 0 Then
@@ -238,10 +205,22 @@ Partial Class Ventas_FacturacionAcarreos
End If
Dim msg As New StringBuilder()
Dim msgDescarga As New StringBuilder()
Dim NumFacturasGeneradas As Integer = 0
Dim NumFacturasTimbradas As Integer = 0
Dim Archivo As String = ""
Dim NombreArchivo As String = String.Format("Acarreos{0}{1}.zip", NowADS().ToString("yyyyMMddhhmmss"), UsuarioActual.CveUsuario.ToString)
Dim ArchivoDestino As String = String.Format("{0}Temp/{1}", UsuarioActual.Empresa.Ruta, NombreArchivo)
Dim HuboInexistentes As Boolean = False
Dim archiveZip As ZipArchive = ZipFile.Open(ArchivoDestino, ZipArchiveMode.Create)
Dim dtt As New DataTable
dtt.Columns.Add("Cantidad", GetType(String))
dtt.Columns.Add("Boleta", GetType(String))
dtt.Columns.Add("HojaServicio", GetType(String))
dtt.Columns.Add("SerieFolio", GetType(String))
For Each GvRow As GridViewRow In GvDatos.Rows
If GvRow.RowType = DataControlRowType.DataRow Then
If GvRow.FCCheckBox("chk").Checked Then
@@ -251,10 +230,10 @@ Partial Class Ventas_FacturacionAcarreos
Dim CveMoneda As Integer = 1
Dim CvePS As Integer = GvRow.DataKey("CvePSGeneral").ToEntero()
Dim Cantidad As Decimal = GvRow.DataKey("Cantidad").ToEntero()
Dim Cantidad As Decimal = GvRow.DataKey("Cantidad").ToDecimal()
Dim PU As Decimal = -1
Dim Descuento As Decimal = 0
Dim Obs As String = ""
Dim Obs As String = $"DE ACARREO DE MINERAL DE HIERRO AQUILA SINALOA, MÉXICO, FOLIO: { GvRow.DataKey("Folio")} HOJA DE SERVICIO: {GvRow.DataKey("FolioAdicional")}"
Dim CvePSMercancia As Integer = GvRow.DataKey("CvePSRelacionado").ToEntero()
@@ -274,8 +253,26 @@ Partial Class Ventas_FacturacionAcarreos
msg.AppendFormat("{0}<br/>", m)
Next
If resp.TieneError AndAlso resp.Mensajes.Count = 0 Then
msg.Append("Ocurrió un error al generar la factura.<br/>")
If Not resp.TieneError Then
If resp.SerieFolio <> String.Empty Then
msgDescarga.AppendFormat("{0},", resp.SerieFolio)
Dim drr As DataRow = dtt.NewRow
drr("Cantidad") = GvRow.DataKey("Cantidad")
drr("Boleta") = GvRow.DataKey("Folio")
drr("HojaServicio") = GvRow.DataKey("FolioAdicional")
drr("SerieFolio") = resp.SerieFolio
dtt.Rows.Add(drr)
DescargarFactura(resp.CveVenta, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario)
Archivo = String.Format("{0}PDF/ING/{1}.pdf", UsuarioActual.Empresa.Ruta.Replace("\", "/"), resp.SerieFolio)
If File.Exists(Archivo) Then
archiveZip.CreateEntryFromFile(Archivo, resp.SerieFolio & ".pdf")
End If
Archivo = String.Format("{0}XML/ING/{1}.xml", UsuarioActual.Empresa.Ruta.Replace("\", "/"), resp.SerieFolio)
If File.Exists(Archivo) Then
archiveZip.CreateEntryFromFile(Archivo, resp.SerieFolio & ".xml")
End If
End If
End If
If resp.CveVenta > 0 AndAlso Not resp.TieneError Then
@@ -287,9 +284,23 @@ Partial Class Ventas_FacturacionAcarreos
End If
End If
Next
archiveZip.Dispose()
If NumFacturasGeneradas > 0 Then
Alert($"Se generaron {NumFacturasGeneradas} y se timbraron {NumFacturasTimbradas} facturas. <br/>" + msg.ToString(), TipoMensaje.MsgInformacion)
Dim stt As String = $"Se generaron {NumFacturasGeneradas} y se timbraron {NumFacturasTimbradas} facturas. <br/>"
Dim nombreexcel As String = "AcarreosListado.xlsx"
Dim rutaexcel As String = UsuarioActual.Empresa.Ruta & "\Temp\" & nombreexcel
GemBox.Spreadsheet.SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
Dim workbook As New ExcelFile()
Dim worksheet As ExcelWorksheet = workbook.Worksheets.Add("Acarreos")
worksheet.InsertDataTable(dtt, New InsertDataTableOptions() With {.ColumnHeaders = True})
workbook.Save(rutaexcel)
If msgDescarga.Length > 0 Then
stt += String.Format("<a target='_blank' class='Texto' href='/Ventas/FacturacionAcarreos.aspx?OP=File&File={0}'>Descarga xml/pdf</a>", NombreArchivo)
End If
stt += String.Format("<br/><a target='_blank' class='Texto' href='/Ventas/FacturacionAcarreos.aspx?OP=File&File={0}'>Descarga excel</a>", nombreexcel)
Alert(stt, TipoMensaje.MsgInformacion)
Else
Alert($"No se pudieron generar facturas. <br/>" + msg.ToString(), TipoMensaje.MsgError)
End If
@@ -367,4 +378,58 @@ Partial Class Ventas_FacturacionAcarreos
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
CargaDatos()
End Sub
Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
GvDatos.Columns(0).Visible = False
GvDatos.ExportToExcelG("Acarreos_" & NowADS().ToShortDateString & ".xls", "Facturación Acarreos")
GvDatos.Columns(0).Visible = True
End Sub
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub
Private Function DescargarFactura(CveVenta As Integer, CveEmpresa As Integer, CveUsuarioCreo As Integer, Optional GetBytes As Boolean = True, Optional Regenerar As Boolean = False, Optional strURLHOST As String = "") As Byte()
If String.IsNullOrEmpty(strURLHOST) Then
strURLHOST = String.Format("{0}://{1}:{2}", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port)
End If
Dim Url As New Uri(String.Format("{0}/Compras/PopUpVerFactura.aspx?P={1}", strURLHOST, Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1&GUARDAR=1&REGENERAR={1}", CveVenta, If(Regenerar, "1", "0")))))
Dim File As Byte() = Nothing
Try
Using httpClient As New HttpClient()
httpClient.Timeout = New TimeSpan(0, 2, 0)
Using request As New HttpRequestMessage(HttpMethod.Get, Url)
request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CveUsuario={2}", CveEmpresa, DateTime.UtcNow.Ticks, CveUsuarioCreo)))
Dim response As HttpResponseMessage = httpClient.SendAsync(request).Result
If GetBytes AndAlso response.StatusCode = Net.HttpStatusCode.OK Then
File = response.Content.ReadAsByteArrayAsync().Result
End If
End Using
End Using
Catch ex As Exception
File = Nothing
OnError("Ocurrió un error al descargar la factura", ex)
End Try
Return File
End Function
Private Sub DescargaArchivoDirecto(NombreArchivo As String)
If NombreArchivo <> "" Then
NombreArchivo = String.Format("{0}Temp\{1}", UsuarioActual.Empresa.Ruta, NombreArchivo)
Dim Archivo As New System.IO.FileInfo(NombreArchivo)
If Archivo.Exists Then
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.ClearContent()
HttpContext.Current.Response.ContentType = "application/zip"
HttpContext.Current.Response.AppendHeader("Content-disposition", String.Format("attachment; filename={0}", Archivo.Name))
HttpContext.Current.Response.TransmitFile(NombreArchivo)
HttpContext.Current.Response.Flush()
HttpContext.Current.Response.End()
End If
Archivo = Nothing
End If
End Sub
End Class

View File

@@ -3334,7 +3334,7 @@ Partial Class PV
'COSTO ALMACEN
If UsuarioActual.Empresa.Funcionalidad(129).ToEntero > 0 AndAlso UsuarioActual.CveUsuario <> 1560 Then
Costo = ObjInventarios.GetCostoPS(dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDouble, -1, dr("Serie").ToString, TxtFecha.Text.ToDate, -1)
Costo = ObjInventarios.GetCostoPS(dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDecimal, -1, dr("Serie").ToString, TxtFecha.Text.ToDate, -1)
CostoMenor = Costo + ((UsuarioActual.Empresa.Funcionalidad(129).ToDecimal / 100) * Costo)
'SI EL PRECIO ES MAYOR AL COSTO, SI PASA
If PU >= CostoMenor Then
@@ -3345,7 +3345,7 @@ Partial Class PV
End If
If UsuarioActual.Empresa.Funcionalidad(133).ToEntero > 0 AndAlso UsuarioActual.CveUsuario <> 1560 Then
Costo = ObjInventarios.GetCostoPS(dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDouble, -1, dr("Serie").ToString, TxtFecha.Text.ToDate)
Costo = ObjInventarios.GetCostoPS(dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDecimal, -1, dr("Serie").ToString, TxtFecha.Text.ToDate)
CostoMayor = Costo + ((UsuarioActual.Empresa.Funcionalidad(133).ToDecimal / 100) * Costo)
'SI EL PRECIO ES MAYOR AL COSTO, SI PASA
If PU <= CostoMayor Then
@@ -4092,7 +4092,7 @@ Partial Class PV
PrecioSugerido = ObjPS.DtResultados.FiltroPrimeroValor("PrecioLista").ToDecimal
If PrecioSugerido = 0 Then
Dim ObjInventarios As New ClsInventarios
Dim CostoPS As Decimal = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero)
Dim CostoPS As Decimal = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero)
ObjInventarios.Dispose()
Dim PorcentajePrecio As Decimal = ObjPS.DtResultados.FiltroPrimeroValor("Porcentaje").ToDecimal
If CostoPS > 0 And PorcentajePrecio > 0 Then
@@ -4144,9 +4144,9 @@ Partial Class PV
If PrecioSugerido = 0 Then
Dim ObjInventarios As New ClsInventarios
Dim CostoPS As Decimal = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
Dim CostoPS As Decimal = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
ObjInventarios.Dispose()
If CostoPS > 0 And PorcentajePrecio > 0 Then
PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS
@@ -5173,7 +5173,7 @@ Partial Class PV
End If
Dim Existencia As Decimal = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, -1, CveTipoAlmacen:=CveTipoAlmacen, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1, RestringirAlmacenes:=1, ExcluyeApartados:=1)
Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero)
Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero)
ObjInventarios.Dispose()
Dim PrecioMinimo As Decimal = 0
'RMF. condicion temporal, para reubicación, precio mínimo
@@ -7268,9 +7268,9 @@ Partial Class PV
If PrecioSugerido = 0 Then
Dim ObjInventarios As New ClsInventarios
Dim CostoPS As Decimal = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
Dim CostoPS As Decimal = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
ObjInventarios.Dispose()
If CostoPS > 0 And PorcentajePrecio > 0 Then
PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS

View File

@@ -561,20 +561,27 @@
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtEcommerceEtiquetas" CssClass="form-control input-sm" runat="server" MaxLength="200" >
</asp:TextBox>
<label for="<%= TxtEcommerceEtiquetas.ClientID.ToString()%>">Etiquetas:</label>
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtEcommercePrecio" CssClass="form-control input-sm" runat="server" MaxLength="10" >
</asp:TextBox>
<label for="<%= TxtEcommercePrecio.ClientID.ToString()%>">Precio:</label>
<i></i>
</div>
<div class="row">
<div class="form-group form-md-line-input col-md-6">
<asp:TextBox ID="TxtEcommercePrecio" CssClass="form-control input-sm" runat="server" MaxLength="10" >
</asp:TextBox>
<label for="<%= TxtEcommercePrecio.ClientID.ToString()%>">Precio:</label>
<i></i>
</div>
<div class="form-group form-md-line-input col-md-6">
<asp:DropDownList ID="DdlEcommerceClasificacion" CssClass="form-control input-sm select2me" runat="server" AppendDataBoundItems="true" CausesValidation="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Width="50%">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVEcoClasificacion" runat="server" ControlToValidate="DdlEcommerceClasificacion" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Clasificacion Ecommerce''</b> es necesario, por favor ingréselo." ValidationGroup="VGMGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEEcoClasificacion" runat="server" HighlightCssClass="vco" TargetControlID="RFVEcoClasificacion"></ajax:ValidatorCalloutExtender>
<label for="<%= DdlEcommerceClasificacion.ClientID.ToString()%>">Clasificación:</label>
</div>
</div>
</div>
</div>
</div>
@@ -641,11 +648,17 @@
</asp:DropDownList>
</div>
<div class="col-md-6">
<label id="LIva" for="<%= DdlIVA.ClientID.ToString()%>" runat="server">IVA:</label>
<asp:DropDownList ID="DdlIVA" CssClass="form-control input-sm select2me" runat="server">
<asp:ListItem Selected="True" Text="IVA de la sucursal" Value="-1"></asp:ListItem>
<label id="LIva" for="<%= DdlIVA.ClientID.ToString()%>" runat="server">IVA:</label><br />
<asp:DropDownList ID="DdlIVA" CssClass="form-control input-sm select2me" runat="server">
<asp:ListItem Text="IVA de la sucursal" Value="-1"></asp:ListItem>
<asp:ListItem Text="IVA 0%" Value="0"></asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RfvDdlIVA" runat="server" ControlToValidate="DdlIVA" InitialValue="-2" Display="None"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''IVA''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCERfvDdlIVA" runat="server" HighlightCssClass="vco" TargetControlID="RfvDdlIVA"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>

View File

@@ -1,9 +1,9 @@
Option Explicit On
Option Strict On
Imports Extensiones
Imports System.IO
Imports System.Data
Imports System.IO
Imports Extensiones
Imports ZXing
Partial Class ProductosyServicios
@@ -328,6 +328,15 @@ Partial Class ProductosyServicios
DdlSATPS.SelectedText = DrSAT("SATClaveProductoServicio").ToString()
End If
If UsuarioActual.CveEmpresa.Contiene(119) Then
DdlIVA.Items.Insert(0, New ListItem("Seleccione Uno", "-2"))
If CvePS > 0 Then
DdlIVA.SelectedValueExist(-2)
End If
Else
DdlIVA.SelectedValueExist(-1)
End If
End If
End Sub
@@ -359,6 +368,9 @@ Partial Class ProductosyServicios
divLitraje.Visible = True
DivClasificacion2.Visible = True
CargaPSAdicionalesVigencias()
DdlTamanio.DataSource = GlobalDTAcumTamaños(UsuarioActual.CveEmpresa)
DdlTamanio.DataBind()
End If
divPrecio.Visible = UsuarioActual.Empresa.Funcionalidad(404) = "" ' si tiene lista de precio, se oculta el precio por ps
@@ -405,16 +417,6 @@ Partial Class ProductosyServicios
TxtDescripcion.Text = UCase(TxtDescripcion.Text)
Dim objAcum As New ClsAcumuladores
If objAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
DdlTamanio.DataSource = objAcum.DtResultados
Else
DdlTamanio.DataSource = Nothing
End If
objAcum.Dispose()
DdlTamanio.DataBind()
If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then
DivLlantas.Visible = True
DivPSAdicionales.Visible = True
@@ -430,23 +432,14 @@ Partial Class ProductosyServicios
End If
If UsuarioActual.CveEmpresa = 119 Then
DiveCommerce.Visible = True
Dim CveCategoria2 As Integer = GlobalDTGralCategorias2(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveCategoria", "Categoria = 'Ecommerce'").ToEntero
DdlEcommerceClasificacion.DataSource = GlobalDTClasificaciones2(UsuarioActual.CveEmpresa, CveCategoria2)
DdlEcommerceClasificacion.DataBind()
End If
End Sub
'Private Sub CargaPSAdicional(Objeto As ADServerControl.Dropdownlost)
' Objeto.setEsWebService(UsuarioActual.Empresa.Funcionalidad(141).ToString = "1")
' If Not UsuarioActual.Empresa.Funcionalidad(141).ToString = "1" Then
' Objeto.ddl.Items.Clear()
' Objeto.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=-1, Estatus:=1, AplicaParaVenta:=1)
' Objeto.ddl.DataBind()
' Objeto.ddl.Items.Insert(0, New ListItem("Seleccione", "-1"))
' Else
' Objeto.ddlWS.Attributes.Add("data-Estatus", "1")
' Objeto.SelectedValue = "-1"
' Objeto.SelectedText = "Seleccione"
' End If
'End Sub
Private Sub CargaPanelLlantas()
Dim ObjGral As New ClsGenerales()
If ObjGral.GetModelos(UsuarioActual.CveEmpresa) Then
@@ -978,6 +971,7 @@ Partial Class ProductosyServicios
TxtEcommerceNota.Text = ObjProductosServicios.DtResultados.Rows(0)("NotasAdicionales").ToString
TxtEcommerceEtiquetas.Text = ObjProductosServicios.DtResultados.Rows(0)("EcommerceEtiquetas").ToString
TxtEcommercePrecio.Text = ObjProductosServicios.DtResultados.Rows(0)("EcommercePrecio").ToString.ToDecimal.ToString("#,###.####")
DdlEcommerceClasificacion.SelectedValueExist(ObjProductosServicios.DtResultados.Rows(0)("CveClasificacionEcommerce").ToString)
Try
DdlClasificacion_SelectedIndexChanged(DdlClasificacion, Nothing)
@@ -1464,7 +1458,7 @@ Partial Class ProductosyServicios
CvePSAdicionalVigencia:=DdlPSAdicionalVigencia.SelectedValue.ToEntero(), PrecioLibre:=ChkPrecioLibre.Checked,
CveMaterialPeligroso:=DdlMaterialPeligroso.SelectedValue.ToEntero, CveEmbalaje:=DdlEmbalaje.SelectedValue.ToEntero, PesoKg:=TxtPesoKg.Text.ToDecimal, Dimensiones:=TxtDimensiones.Text.Trim,
CveObjetoImpuesto:=DdlObjetoImpuesto.SelectedValue.ToEntero, Litraje:=TxtLitraje.Text.ToDecimal, RegistroRSCO:=TxtRegistroRSCO.Text, FechaVigenciaRSCO:=TxtFechaVigenciaRSCO.Text.ToDate, VigenciaIndeterminadaRSCO:=ChkFechaIndeterminadaRSCO.Checked,
NombreComercial:=TxtNombreComercial.Text.Trim, NotasAdicionales:=TxtEcommerceNota.Text.Trim, EcommerceEtiquetas:=TxtEcommerceEtiquetas.Text.Trim, EcommercePrecio:=TxtEcommercePrecio.Text.Trim.ToDecimal) > 0 Then
NombreComercial:=TxtNombreComercial.Text.Trim, NotasAdicionales:=TxtEcommerceNota.Text.Trim, EcommerceEtiquetas:=TxtEcommerceEtiquetas.Text.Trim, EcommercePrecio:=TxtEcommercePrecio.Text.Trim.ToDecimal, CveClasificacionEcommerce:=DdlEcommerceClasificacion.SelectedValue.ToEntero) > 0 Then
ViewState("CvePS") = ObjProductosServicios.CvePS
For Each GVR As GridViewRow In GvImpuestosLocales.Rows
If GVR.FCCheckBox("ChkDeduccion").Checked Then
@@ -1536,7 +1530,7 @@ Partial Class ProductosyServicios
CveMaterialPeligroso:=DdlMaterialPeligroso.SelectedValue.ToEntero, CveEmbalaje:=DdlEmbalaje.SelectedValue.ToEntero, PesoKg:=TxtPesoKg.Text.ToDecimal, Dimensiones:=TxtDimensiones.Text.Trim,
CveObjetoImpuesto:=DdlObjetoImpuesto.SelectedValue.ToEntero, Litraje:=TxtLitraje.Text.ToDecimal,
RegistroRSCO:=TxtRegistroRSCO.Text, FechaVigenciaRSCO:=TxtFechaVigenciaRSCO.Text.ToDate, VigenciaIndeterminadaRSCO:=ChkFechaIndeterminadaRSCO.Checked,
NombreComercial:=TxtNombreComercial.Text.Trim, NotasAdicionales:=TxtEcommerceNota.Text.Trim, EcommerceEtiquetas:=TxtEcommerceEtiquetas.Text.Trim, ActivoEcommerce:=ChkActivoEcommerce.Checked, EcommercePrecio:=TxtEcommercePrecio.Text.Trim.ToDecimal) Then
NombreComercial:=TxtNombreComercial.Text.Trim, NotasAdicionales:=TxtEcommerceNota.Text.Trim, EcommerceEtiquetas:=TxtEcommerceEtiquetas.Text.Trim, ActivoEcommerce:=ChkActivoEcommerce.Checked, EcommercePrecio:=TxtEcommercePrecio.Text.Trim.ToDecimal, CveClasificacionEcommerce:= DdlEcommerceClasificacion.SelectedValue.toentero) Then
If Not ObjProductosServicios.LimpiaImpuestosLocales(CvePS) Then
TieneError = True

View File

@@ -554,7 +554,7 @@ Partial Class Ventas_Promociones
If Not ObjVentas.AddPromocionesDetalle(CvePromocion, Dr("CvePS").ToString.ToEntero, Dr("CveTipoPromocion").ToString.ToEntero, Dr("Promocion").ToString.ToDouble, Dr("PUAnterior").ToString.ToDouble, Dr("PUPromocion").ToString.ToDouble,
CBool(Dr("AplicaRestriccion")), CBool(Dr("AplicaLunes")), CBool(Dr("AplicaMartes")), CBool(Dr("AplicaMiercoles")), CBool(Dr("AplicaJueves")), CBool(Dr("AplicaViernes")), CBool(Dr("AplicaSabado")), CBool(Dr("AplicaDomingo")),
Dr("HoraInicio").ToString.ToDateTime, Dr("HoraFin").ToString.ToDateTime, Dr("CantidadMinima").ToString.ToEntero,
CveClasificacion:=If(Dr("CvePS").ToString = "", 20, Dr("CveClasificacion").ToString.ToEntero), CveRinTamaño:=Dr("CveRinTamaño").ToString.ToEntero, IncluyeImpuestos:=ChkIncluyeImpuesto.Checked) Then
CveClasificacion:=If(Dr("CvePS").ToString = "", 20, Dr("CveClasificacion").ToString.ToEntero), CveRinTamaño:=Dr("CveRinTamaño").ToString.ToEntero, IncluyeImpuestos:=CBool(Dr("IncluyeImpuestos"))) Then
TieneError = True
Exit For
End If
@@ -605,7 +605,7 @@ Partial Class Ventas_Promociones
If Not ObjVentas.AddPromocionesDetalle(CvePromocion, Dr("CvePS").ToString.ToEntero, Dr("CveTipoPromocion").ToString.ToEntero, Dr("Promocion").ToString.ToDouble, Dr("PUAnterior").ToString.ToDouble, Dr("PUPromocion").ToString.ToDouble,
CBool(Dr("AplicaRestriccion")), CBool(Dr("AplicaLunes")), CBool(Dr("AplicaMartes")), CBool(Dr("AplicaMiercoles")), CBool(Dr("AplicaJueves")), CBool(Dr("AplicaViernes")), CBool(Dr("AplicaSabado")), CBool(Dr("AplicaDomingo")),
Dr("HoraInicio").ToString.ToDateTime, Dr("HoraFin").ToString.ToDateTime, Dr("CantidadMinima").ToString.ToEntero, CveClasificacion:=If(Dr("CvePS").ToString = "-1", Dr("CveClasificacion").ToString.ToEntero, -1),
CveRinTamaño:=Dr("CveRinTamaño").ToString.ToEntero, IncluyeImpuestos:=ChkIncluyeImpuesto.Checked, Opcion:=OpReplicarDetalleFranquicias) Then
CveRinTamaño:=Dr("CveRinTamaño").ToString.ToEntero, IncluyeImpuestos:=CBool(Dr("IncluyeImpuestos")), Opcion:=OpReplicarDetalleFranquicias) Then
TieneError = True
Exit For
End If
@@ -1119,7 +1119,7 @@ Partial Class Ventas_Promociones
Dim CantidadMinima As Decimal = CantidadMinimaStr.ToDecimal
Dim CveRin As Integer = If(RinStr <> "", DTRines.FiltroPrimeroValor("CveRinTamaño", $"Codigo = '{RinStr}'").ToString.ToEntero(), -1)
Dim RinTamaño As String = If(RinStr <> "", DTRines.FiltroPrimeroValor("RinTamaño", $"Codigo = '{RinStr}'").ToString(), "")
Dim IncluyeImpuestos As Boolean = If(IncluyeImpuestosStr.ToUpper.Contiene("´SÍ", "SI", "1"), True, False)
Dim IncluyeImpuestos As Boolean = If(IncluyeImpuestosStr.ToUpper.Contiene("SÍ", "SI", "1"), True, False)
' SBErrorRegistro.Append($"")
If ClasificacionStr.Length > 0 And CodigoStr.Length > 0 Then
@@ -1133,11 +1133,11 @@ Partial Class Ventas_Promociones
End If
End If
If TipoPromocionStr.ToUpper.Contiene("IMPORTE $", "IMPORTE") Then
If TipoPromocionStr.Trim.ToUpper.Contiene("IMPORTE $", "IMPORTE") Then
CveTipoPromocion = 1
ElseIf TipoPromocionStr.ToUpper.Contiene("DESCUENTO %", "DESCUENTO") Then
ElseIf TipoPromocionStr.Trim.ToUpper.Contiene("DESCUENTO %", "DESCUENTO") Then
CveTipoPromocion = 2
ElseIf TipoPromocionStr.ToUpper = "CANTIDAD" Then
ElseIf TipoPromocionStr.Trim.ToUpper = "CANTIDAD" Then
CveTipoPromocion = 3
Else
SBErrorRegistro.Append($"Tipo Promoción no encontrada '{TipoPromocionStr}'. ")

View File

@@ -395,7 +395,7 @@ Partial Class Ventas_RepProductosServiciosDetalle
If AnioMesEjec.Trim.Length > 5 Then
TxtFechaIEjec.Text = If(AnioMesEjec <> "-1", String.Format("01/{0}/{1}", AnioMesEjec.Substring(5, 1).PadLeft(2, "0"c), AnioMesEjec.Substring(0, 4)), TxtFechaIEjec.Text)
Dim FechaFEjectemporal = $"01/{AnioMesEjec.Substring(5, 1).PadLeft(2, "0"c)}/{AnioMesEjec.Substring(0, 4)}"
Dim FechaFEjectemporal As String = $"01/{AnioMesEjec.Substring(5, 1).PadLeft(2, "0"c)}/{AnioMesEjec.Substring(0, 4)}"
TxtFechaFEjec.Text = String.Format("{2}/{0}/{1}", AnioMesEjec.Substring(5, 1).PadLeft(2, "0"c), AnioMesEjec.Substring(0, 4), FechaFEjectemporal.ToDate.LastDayOfMonth.Day)
End If
@@ -584,7 +584,7 @@ Partial Class Ventas_RepProductosServiciosDetalle
End Sub
Private Sub CargaClientes(Optional CveCliente As Integer = -1)
Dim EsWS = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False)
Dim EsWS As Boolean = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False)
If EsWS Then
DdlClientes.setEsWebService(True)
If CveCliente > 0 Then
@@ -691,7 +691,7 @@ Partial Class Ventas_RepProductosServiciosDetalle
If TmpDT.Rows.Count > 0 Then
Dim params As New List(Of ReportParameter)
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim logouri As String = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))

View File

@@ -136,7 +136,7 @@ Partial Class Ventas_RepVentasUtilidadPadre
GvDatos.DataSource = ObjVentas.DtResultados
DtDatos = ObjVentas.DtResultados
End If
If DtDatos.Rows.Count > 0 Then
If DtDatos IsNot Nothing AndAlso DtDatos.Rows.Count > 0 Then
Dim Utilidad As Double = DtDatos.Rows(0)("Utilidad").ToString.ToDouble
Dim Perdida As Double = DtDatos.Rows(0)("Perdida").ToString.ToDouble
Dim Costo As Double = DtDatos.Rows(0)("Costo").ToString.ToDouble

View File

@@ -983,7 +983,13 @@
<th id="thPoliza" runat="server" visible="false">Poliza
</th>
<th>Total&nbsp;<asp:LinkButton ID="ImgDescConcepto" runat="server" Text="<i class='fa fa-comment-o'></i>" Style="cursor: pointer;" AlternateText="Agregar Descuento" /></th>
<th style="width: 100px;" colspan="3">Comandos</th>
<th style="width: 100px;" colspan="3">Comandos
<div id="DivClienteMsg" visible="false" clientidmode="Static" runat="server" class="alert alert-warning" style="width: 155px; padding: 5px; margin-bottom: 5px; padding-right: 15px;">
<p style="font-size: 7pt">
<asp:Literal Text="" runat="server" ID="LtlClienteMsg"></asp:Literal>
</p>
</div>
</th>
<th></th>
<th runat="server" visible="false" id="nomostrar2"></th>
<th runat="server" visible="false" id="thProntoPago2"></th>
@@ -1029,10 +1035,7 @@
<asp:HiddenField ID="HdnPS" runat="server" Value="-1" />
<asp:HiddenField ID="HdnCodigoPS" runat="server" Value="-1" />
<asp:HiddenField ID="HdnTipoPS" runat="server" Value="-1" />
<asp:HiddenField ID="HdnTipoInv" runat="server" Value="-1" />
<asp:HiddenField ID="HdnAsientoContable" runat="server" Value="-1" />
<asp:HiddenField ID="HdnCtaContable" runat="server" Value="-1" />
<asp:HiddenField ID="HdnAplicaParaConcepto" runat="server" Value="-1" />
<asp:HiddenField ID="HdnTipoInv" runat="server" Value="-1" />
<asp:HiddenField ID="HdnCodigo" runat="server" Value="-1" />
<asp:HiddenField ID="HdnAplicaIEPS" runat="server" Value="-1" />
<asp:HiddenField ID="HdnPorcentajeIEPS" runat="server" Value="-1" />
@@ -1105,11 +1108,7 @@
<asp:Label ID="LblTotalPS" runat="server" ClientIDMode="Static" Text="0.00"></asp:Label></th>
<th align="center" colspan="3">
<asp:LinkButton ID="LbAgregar" ClientIDMode="Static" runat="server" CssClass="btn btn-default " Enabled="false" Text="Agregar" ValidationGroup="GprAgregaPS" />
<div id="DivClienteMsg" visible="false" clientidmode="Static" runat="server" class="alert alert-warning" style="width: 155px; padding: 5px; margin-bottom: 5px; padding-right: 15px;">
<p style="font-size: 7pt">
<asp:Literal Text="" runat="server" ID="LtlClienteMsg"></asp:Literal>
</p>
</div>
</th>
<%--<th style="text-align: center;">
<asp:LinkButton ID="LbVerInventario" ClientIDMode="Static" runat="server" CssClass="btn btn-circle btn-sm purple" Text="<i class='icon-magnifier'></i>"></asp:LinkButton>

View File

@@ -2320,10 +2320,6 @@ Partial Class Ventas
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If EsProduccion Then
If UsuarioActual.CveEmpresa.Contiene(141, 152, 153, 160, 161, 162) Then System.Threading.Thread.Sleep(2000)
End If
If Not IsPostBack Then
If IfNull(Request("Opcionx"), "").ToString = "Saldar" And UsuarioActual.CveUsuario = 100 Then
@@ -3209,7 +3205,6 @@ Partial Class Ventas
ThProyecto.Visible = False
For Each Gvr As GridViewRow In GvPS.Rows
Gvr.FCLinkButton("imgE").Visible = False
Gvr.FCLinkButton("imgEPyME").Visible = True
Next
LnkAddVenta.Visible = True
End If
@@ -6413,6 +6408,10 @@ Partial Class Ventas
DivClienteMsg.Visible = True
LtlClienteMsg.Text = "Cálculo sin desglose de IEPS"
End If
ViewState("ClienteNODesglosaIVA") = ObjCliente.NoDesglosaIVA
If ClienteNODesglosaIVA Then
LtlClienteMsg.Text += "<br/>Cálculo sin desglose de IVA"
End If
ViewState("CargoUsado") = ObjCliente.CargoUsados
Dim dr As DataRow = Nothing
@@ -7377,7 +7376,7 @@ Partial Class Ventas
'VERIFICAR RESTRICCIONES DEL CLIENTE
If Not UsuarioActual.Empresa.Funcionalidad(702).ToEntero() > 0 Then
If DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0 AndAlso RBLPago.SelectedValue = "2" Then
If (DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0 AndAlso RBLPago.SelectedValue = "2") Then
Dim Vta As New ClsVentas
Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa)
Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón: <br> <br> {0}", Vta.SerieVenta)
@@ -7867,7 +7866,7 @@ Partial Class Ventas
e.Row.FCDropDownList("DdlSubProyecto").DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, dr("CveProyecto").ToString().ToEntero(), UsuarioActual.CveEmpresa, -1, 1)
e.Row.FCDropDownList("DdlSubProyecto").DataBind()
e.Row.FCDropDownList("DdlSubProyecto").SelectedValue = e.Row.DBCampo("CveSubProyecto")
e.Row.FCDropDownList("DdlSubProyecto").SelectedValueExist(e.Row.DBCampo("CveSubProyecto"))
End If
@@ -8219,10 +8218,10 @@ Partial Class Ventas
Existencia = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1, RestringirAlmacenes:=1, ExcluyeApartados:=-1)
End If
Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
ObjInventarios.Dispose()
Dim PrecioMinimo As Decimal = 0
@@ -8474,8 +8473,11 @@ Partial Class Ventas
If GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").Items.Count = 0 Then
TmpDT.Rows(e.RowIndex)("SubProyecto") = "Sin SubProyecto Asignado"
Else
TmpDT.Rows(e.RowIndex)("SubProyecto") = GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedItem.Text
TmpDT.Rows(e.RowIndex)("CveSubProyecto") = GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue
'si está visible en el encabezado, si no esta visible que no actualice, porque generar error, selecciona el primer item
If DdlSubProyecto.Visible Then
TmpDT.Rows(e.RowIndex)("SubProyecto") = GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedItem.Text
TmpDT.Rows(e.RowIndex)("CveSubProyecto") = GvPS.Rows(e.RowIndex).FCDropDownList("DdlSubProyecto").SelectedValue
End If
End If
'RELACIONAL PS CON EL DESCUENTO
@@ -9211,7 +9213,7 @@ Partial Class Ventas
EsValidoMayor = False
EsValidoPU = True
PU = dr("PU").ToString().ToDecimal * If(DdlMoneda.SelectedValue.ToEntero() = 1, 1, TxtTipoCambio.Text.ToDecimal)
Costo = ObjInventarios.GetCostoPS(dr("CvePS").ToString().ToEntero(), dr("Cantidad").ToString().ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
Costo = ObjInventarios.GetCostoPS(dr("CvePS").ToString().ToEntero(), dr("Cantidad").ToString().ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
Dim PrecioMinimo As Decimal = 0
'RMF. condicion temporal, para reubicación, precio mínimo
@@ -14873,7 +14875,7 @@ Partial Class Ventas
Else
Dim Mensaje As String = ""
Dim i As Integer = 0
Dim Cantidad As Double
Dim Cantidad As Decimal
Dim CveUnidad As Integer
Dim CveProducto As Integer
Dim Existencia As Double
@@ -14886,7 +14888,7 @@ Partial Class Ventas
CveProducto = Dr("CvePS").ToString().ToEntero()
CveUnidad = Dr("CveUM").ToString().ToEntero()
Cantidad = Dr("Cantidad").ToString().ToDouble
Cantidad = Dr("Cantidad").ToString().ToDecimal
Dim AplicaSeccion As Boolean = CBool(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CveProducto).FiltroPrimeroValor("AplicaSeccion"))
If Dr("CveTipoInvPS").ToString().ToEntero() = 5 And Dr("Serie").ToString() = "" Then
@@ -14913,7 +14915,7 @@ Partial Class Ventas
'SI LA UNIDAD ACTUAL NO ES LA BASE SACA PROPORCION (EQUIVALENTE)
If CveUnidadBase <> CveUnidad Then
' LO QUE PUSE LO QUE VALE UNIDAD BASE LO QUE VALE UNIDAD SELECCIONADA
Cantidad = Dr("Cantidad").ToString().ToDouble * drUMBase("Cantidad").ToString().ToDouble / DtEquivalencias.FiltraParametros(String.Format("CveUM = {0}", CveUnidad)).Rows(0)("Cantidad").ToString().ToDouble
Cantidad = Dr("Cantidad").ToString().ToDecimal * drUMBase("Cantidad").ToString().ToDecimal / DtEquivalencias.FiltraParametros(String.Format("CveUM = {0}", CveUnidad)).Rows(0)("Cantidad").ToString().ToDecimal
CveUnidad = CveUnidadBase
End If
End If
@@ -15338,11 +15340,6 @@ Partial Class Ventas
End Try
End If
'MANDA CORREO
If EnviaCorreo Then
Dim ArchivoAdjunto As String = ""
@@ -15799,6 +15796,7 @@ Partial Class Ventas
Pago.CveVentaAmortizacion = gvr.DataKey("CveVenta").ToEntero()
Pago.AplicaTraslado = gvr.DataKey("RegresarImpuesto") = "1"
Pago.Referencia = gvr.DataKey("Folio")
Pago.CveClientePago = gvr.DataKey("CveCliente").ToEntero()
ErrorConta = AplicaPrePolizaPagoVenta(VentaActual, Pago, CvePrePoliza, ObjConta)
@@ -16180,12 +16178,11 @@ Partial Class Ventas
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant", "Egs") Then
'If Not ImprimeAlert Then
Dim ArchivoIngPyMe As New System.IO.FileInfo(String.Format("{0}Formatos/Factura.mrt", UsuarioActual.Empresa.Ruta))
Dim ArchivoIng As New System.IO.FileInfo(String.Format("{0}Formatos/Factura.rdlc", UsuarioActual.Empresa.Ruta))
Dim ArchivoRem As New System.IO.FileInfo(String.Format("{0}Formatos/Remision.rdlc", UsuarioActual.Empresa.Ruta))
Dim ArchivoEgs As New System.IO.FileInfo(String.Format("{0}Formatos/NotaCredito.rdlc", UsuarioActual.Empresa.Ruta))
If ArchivoIng.Exists Or ArchivoRem.Exists Or ArchivoIngPyMe.Exists Or ArchivoEgs.Exists Then
If ArchivoIng.Exists Or ArchivoRem.Exists Or ArchivoEgs.Exists Then
MensajeAlert.AppendFormat("<ul><li><a class=""Texto"" href=""/Compras/PopUpVerFactura.aspx?P={0}"">Descargar PDF</a></li></ul><br/>", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1", CveVenta)))
Else
MensajeAlert.Append("Ocurrió un error al generar el PDF. Por favor vuelva a entrar a la factura para imprimir el PDF. ")
@@ -16692,8 +16689,6 @@ Partial Class Ventas
HdnIVAPS.Value = If(drPS("IVA").ToString() = "-1", ViewState("IVA"), drPS("IVA").ToString()).ToString()
HdnIVARetAPS.Value = drPS("RetIVA").ToString()
HdnAsientoContable.Value = drPS("AsientoContableVentas").ToString()
HdnAplicaParaConcepto.Value = drPS("AplicaParaConcepto").ToString()
HdnCodigo.Value = drPS("Codigo").ToString()
If DdlClasificacion.SelectedIndex = 0 Then
If drPS("CveClasificacion").ToString() IsNot Nothing Then
@@ -16775,9 +16770,9 @@ Partial Class Ventas
If PrecioSugerido = 0 Then
Dim ObjInventarios As New ClsInventarios
Dim CostoPS As Decimal = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
Dim CostoPS As Decimal = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
ObjInventarios.Dispose()
If CostoPS > 0 And PorcentajePrecio > 0 Then
PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS
@@ -17496,10 +17491,10 @@ Partial Class Ventas
If UsuarioActual.Empresa.UsaInventarios AndAlso CveTipoPS = 2 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA") Or (DdlTipoComprobante.SelectedValue.Contiene("Cot") And UsuarioActual.CveEmpresa.Contiene(119))) Then
Dim ObjInventarios As New ClsInventarios
Dim Existencia As Decimal = ObjInventarios.GetExistenciasPS(CvePS, CveUM, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, PendientePorSurtir:=1, RestringirAlmacenes:=1, ExcluyeApartados:=-1)
Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
ObjInventarios.Dispose()
Dim PrecioMinimo As Decimal = 0
@@ -18028,9 +18023,6 @@ Partial Class Ventas
HdnIVARetAPS.Value = "-1"
HdnAplicaIEPS.Value = "False"
HdnPorcentajeIEPS.Value = "0"
HdnAsientoContable.Value = "-1"
HdnCtaContable.Value = "-1"
HdnAplicaParaConcepto.Value = "False"
HdnCodigo.Value = "-1"
TxtCuentaPredial.Text = ""
' codigo comentado RMF. 2016.06.13, esto paa que respete el que tenga selecionado e nla sucursal
@@ -18506,9 +18498,7 @@ Partial Class Ventas
TmpDT.Columns.Add("Total", GetType(Decimal))
TmpDT.Columns.Add("RetIVA", GetType(Decimal))
TmpDT.Columns.Add("RetISR", GetType(Decimal))
'Para uso del módulo contable
TmpDT.Columns.Add("AsientoContableVentas", GetType(Integer))
TmpDT.Columns.Add("AplicaParaConcepto", GetType(Boolean))
'Para uso del módulo contable
TmpDT.Columns.Add("CveProyecto", GetType(Integer))
TmpDT.Columns.Add("Proyecto", GetType(String))
TmpDT.Columns.Add("CveSubProyecto", GetType(Integer))
@@ -20282,7 +20272,7 @@ Partial Class Ventas
If CveMovimientoVirtual > 0 Then
For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS As Integer = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
Dim CantidadUsado As Decimal = RowUsado("Cantidad").ToString().ToDecimal()
Dim PU As Decimal = RowUsado("Cargo").ToString().ToDecimal()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
@@ -21578,8 +21568,6 @@ Partial Class Ventas
HdnPorcentajeIEPS.Value = DrProducto("IEPSPorcentaje").ToString()
HdnIVAPS.Value = If(DrProducto("IVA").ToString() = "-1", ViewState("IVA"), DrProducto("IVA").ToString()).ToString()
HdnIVARetAPS.Value = DrProducto("RetIVA").ToString()
HdnAsientoContable.Value = DrProducto("AsientoContableVentas").ToString()
HdnAplicaParaConcepto.Value = DrProducto("AplicaParaConcepto").ToString()
HdnCodigo.Value = DrProducto("Codigo").ToString()
If ValidaAgregarPS(DrProducto("CvePS").ToString().ToEntero(), DrProducto("CveUM").ToString().ToEntero(), TxtPrecio.Text.Trim.ToDouble, DrProducto("CveTipoPS").ToString().ToEntero()) Then
@@ -24763,9 +24751,6 @@ Partial Class Ventas
HdnPorcentajeIEPS.Value = "-1"
HdnIVAPS.Value = "0.16"
HdnIVARetAPS.Value = "0"
HdnAsientoContable.Value = "1"
HdnCtaContable.Value = "0"
HdnAplicaParaConcepto.Value = "False"
HdnCodigo.Value = TxtCodigoPS.Text.Trim
End If
@@ -24838,12 +24823,12 @@ Partial Class Ventas
If CveMovimientoSalidaConsignacion > 0 Then
Dim CveProducto As Integer
Dim CveUnidad As Integer
Dim Cantidad As Double
Dim Cantidad As Decimal
Dim Existencia As Double
For Each Dr As DataRow In TmpDT.FiltraParametros("CveTipoPS=2").Rows
CveProducto = Dr("CvePS").ToString().ToEntero()
CveUnidad = Dr("CveUM").ToString().ToEntero()
Cantidad = Dr("Cantidad").ToString().ToDouble
Cantidad = Dr("Cantidad").ToString().ToDecimal
If Not CveProducto > 0 Then
Return False
@@ -24897,7 +24882,7 @@ Partial Class Ventas
Else
CveSeccionAlmacen = -1
End If
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaGeneral, Dr("Cantidad").ToString().ToDouble, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), Dr("PU").ToString().ToDecimal, CveAF:=Dr("CveAF").ToString().ToEntero(), CveSeccionAlmacen:=CveSeccionAlmacen, Serie:=Dr("Serie").ToString(), Lote:=Dr("Lote").ToString(), CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString().ToEntero(), CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero()) Then
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaGeneral, Dr("Cantidad").ToString().ToDecimal, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), Dr("PU").ToString().ToDecimal, CveAF:=Dr("CveAF").ToString().ToEntero(), CveSeccionAlmacen:=CveSeccionAlmacen, Serie:=Dr("Serie").ToString(), Lote:=Dr("Lote").ToString(), CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString().ToEntero(), CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero()) Then
Return False
End If
Next
@@ -24911,7 +24896,7 @@ Partial Class Ventas
If CveMovimientoSalidaGeneral > 0 Then
If ObjInventario.GetMovimientosDetalle(CveMovimientoEntradaGeneral, UsuarioActual.CveEmpresa) Then
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaGeneral, Dr("Cantidad").ToString().ToDouble, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), Dr("PU").ToString().ToDecimal, CveAF:=Dr("CveAF").ToString().ToEntero(), CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString().ToEntero(), Serie:=Dr("Serie").ToString(), Lote:=Dr("Lote").ToString(), CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString().ToEntero(), CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero()) Then
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaGeneral, Dr("Cantidad").ToString().ToDecimal, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), Dr("PU").ToString().ToDecimal, CveAF:=Dr("CveAF").ToString().ToEntero(), CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString().ToEntero(), Serie:=Dr("Serie").ToString(), Lote:=Dr("Lote").ToString(), CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString().ToEntero(), CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero()) Then
Return False
End If
Next
@@ -24945,7 +24930,7 @@ Partial Class Ventas
For Each RowVirtual As DataRow In dtvirtual.Rows
Dim CvePS As Integer = RowVirtual("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowVirtual("Cantidad").ToString().ToDouble()
Dim CantidadUsado As Decimal = RowVirtual("Cantidad").ToString().ToDecimal()
Dim PU As Decimal = RowVirtual("PU").ToString().ToDecimal()
Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero()
@@ -32998,45 +32983,8 @@ Partial Class Ventas
TFuenteRecaudacion.Visible = False
End If
'If UsuarioActual.CveRol = 1 Then
' If ChkEmitirComercioExterior.Checked Then
' TxtTipoCambio.Text = GlobalTipoCambio(TxtFecha.Text.ToDate.AddDays(-1)).ToString()
' Else
' TxtTipoCambio.Text = GlobalTipoCambio(TxtFecha.Text.ToDate).ToString()
' End If
' UpPS.Update()
'End If
End Sub
'Protected Sub LnkDescargarFacturaPrueba_Click(sender As Object, e As EventArgs)
' 'Dim Hilo As New System.Threading.Thread(Sub() DescargarFactura(Me.CveVenta, UsuarioActual.CveEmpresa))
' 'Hilo.Start()
' Dim facBytes = DescargarFactura(Me.CveVenta, UsuarioActual.CveEmpresa)
' ImprimirbytesPDF(facBytes, "Factura")
'End Sub
'Private Function DescargarFactura(CveVenta As Integer, CveEmpresa As Integer) As Byte()
' Dim Url = New Uri(String.Format("{0}Compras/PopUpVerFactura.aspx?P={1}", "https://sig.adssistemas.mx/", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1&GUARDAR=1", CveVenta))))
' Dim File As Byte() = Nothing
' Try
' Using httpClient = New HttpClient()
' httpClient.Timeout = New TimeSpan(0, 15, 0)
' Using request = New HttpRequestMessage(HttpMethod.Get, Url)
' request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CVEUSUARIO=100", CveEmpresa, DateTime.UtcNow.Ticks)))
' Dim response = httpClient.SendAsync(request).Result
' If response.StatusCode = Net.HttpStatusCode.OK Then
' File = response.Content.ReadAsByteArrayAsync().Result
' End If
' End Using
' End Using
' Catch ex As Exception
' File = Nothing
' OnError("Ocurrió un error al descargar la factura", ex)
' End Try
' Return File
'End Function
Private Function DescargarFactura(CveVenta As Integer, CveEmpresa As Integer, CveUsuarioCreo As Integer, Optional GetBytes As Boolean = True, Optional Regenerar As Boolean = False, Optional strURLHOST As String = "") As Byte()
If String.IsNullOrEmpty(strURLHOST) Then
@@ -33067,26 +33015,6 @@ Partial Class Ventas
Response.Redirect($"~/OC/OC.aspx?CveCotizacion={Me.CveVenta}&Tipo=OC")
End Sub
'Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
' Dim ObjVentas As New ClsVentas
' ObjVentas.IniciaTransacSQL()
' Dim ObjConta As New ClsContabilidad(ObjVentas.IniciaTransacSQL())
' Dim ObjBancos As New ClsBancos(ObjVentas.IniciaTransacSQL())
' Dim ObjCGame As New ClsCGame(ObjVentas.IniciaTransacSQL())
' Dim ObjAC As ClsContPAQi = Nothing
' If Not RegeneracionPolizas(ObjVentas, ObjAC, ObjConta, ObjBancos) Then
' ObjVentas.Commit()
' If ObjAC IsNot Nothing Then ObjAC.Commit()
' Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion, JSBtnAceptar:="BtnRefrescarPagina();")
' End If
' ObjVentas.Dispose()
' ObjConta.Dispose()
' ObjBancos.Dispose()
' If ObjAC IsNot Nothing Then ObjAC.Dispose()
'End Sub
Protected Sub btnupEventoBitacora_Click(sender As Object, e As EventArgs)
CargaEventoBitacora()
End Sub
@@ -33789,9 +33717,7 @@ Partial Class Ventas
TmpDT.Columns.Add("TipoDescuento", GetType(Integer))
TmpDT.Columns.Add("TotalImporte", GetType(Decimal))
TmpDT.Columns.Add("Total", GetType(Decimal))
'Para uso del módulo contable
TmpDT.Columns.Add("AsientoContableVentas", GetType(Integer))
TmpDT.Columns.Add("AplicaParaConcepto", GetType(Boolean))
'Para uso del módulo contable
TmpDT.Columns.Add("CveProyecto", GetType(Integer))
TmpDT.Columns.Add("Proyecto", GetType(String))
TmpDT.Columns.Add("CveSubProyecto", GetType(Integer))
@@ -34942,9 +34868,9 @@ Partial Class Ventas
If PrecioSugerido = 0 Then
Dim ObjInventarios As New ClsInventarios
Dim CostoPS As Decimal = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidadMercancia.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
Dim CostoPS As Decimal = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidadMercancia.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1)
'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal
If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidadMercancia.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
If CostoPS = 0 Then CostoPS = ObjInventarios.GetCostoPS(CvePSParametro, TxtCantidadMercancia.Text.Trim.ToDecimal, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1)
ObjInventarios.Dispose()
If CostoPS > 0 And PorcentajePrecio > 0 Then
PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS