Correcion en punto de venta de recepcion de usados

This commit is contained in:
2019-10-03 18:13:38 -07:00
parent 0d246347a1
commit 85f2c7576f
10 changed files with 2020 additions and 1850 deletions

View File

@@ -698,6 +698,21 @@ Public Class ClsAcumuladores
End Try
Return Retorno
End Function
Public Function GetGarantiasDetalle(CveVenta As Integer) As Boolean
Dim Retorno As Boolean = False
SqlDataAdapter("PA_Acum_GarantiasDetalleGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As SqlException
OnError("Ocurrió un al agregar la garantia detalle. ", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
#End Region

View File

@@ -1758,7 +1758,6 @@ Namespace Modelos
Private Function GuardarUsados(SqlTransaccion As SqlClient.SqlTransaction, CveVenta As Integer, ByRef ObjVentas As ClsVentas) As Boolean
Dim Resultado As Boolean = True
'If ClienteEsDistribuidor Then
If UsuarioActual.Empresa.Funcionalidad(533).ToEntero > 0 Then
Dim CvePSPSA As Integer = UsuarioActual.Empresa.Funcionalidad(533).ToEntero
@@ -1789,15 +1788,7 @@ Namespace Modelos
Resultado = False
End If
End If
Else
ErrorList.Add("El cliente es Distribuidor y no se tiene un producto o servicio asigando como PS Acumulador")
Resultado = False
End If
'Else
' Resultado = True
'End If
Return Resultado

File diff suppressed because it is too large Load Diff

View File

@@ -65,7 +65,7 @@
<li>
<asp:HyperLink ID="HplTraspaso" Target="_blank" runat="server" Visible="false"><i class="fa fa-truck" aria-hidden="true"></i> Traspaso Almacen</asp:HyperLink>
</li>
<%-- <li style="text-align: left!important" runat="server" id="LiLnkGuias" visible="false">
<%-- <li style="text-align: left!important" runat="server" id="LiLnkGuias" visible="false">
<asp:LinkButton runat="server" ID="LnkAgregarGuia" CssClass="" data-toggle="tooltip" data-placement="left" OnClick="LnkAgregarGuia_Click"
title="Paqueteria Guías." Text="<i class='fa fa-truck'></i> Paqueteria Guías"></asp:LinkButton>
</li>--%>
@@ -83,16 +83,11 @@
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row" style="margin-left: 0px; margin-right: 0px;">
<asp:UpdatePanel ID="UpGenerales" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="col-md-8">
<div class="portlet smmallpadding light bordered infomov" style="width: 750px">
<div class="col-md-6">
<div class="portlet smmallpadding light bordered infomov" style="width: 100%">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
@@ -100,21 +95,22 @@
</div>
<div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Información del movimiento
</div>
</div>
<div class="portlet-body" <%= IIf(chkexpand.Checked = True, "", "style='display:none;'")%>>
<div id="tbEncabezado" runat="server" class="rowpadding" visible="true">
<div class="row" style="display:none;">
<div class="row" style="display: none;">
<label class="col-md-1 truncate" style="width: 110px">Movimiento:</label>
<label class="col-md-1 truncate" style="width: 110px">Movimiento:</label>
<div class="col-md-2">
<asp:RadioButtonList runat="server" ID="RBLOpcion" RepeatDirection="Horizontal" AutoPostBack="true" Font-Size="18pt">
<asp:ListItem Selected="True" Value="2">Entrada</asp:ListItem>
<asp:ListItem Value="3">Salida</asp:ListItem>
</asp:RadioButtonList>
</div>
<asp:RadioButtonList runat="server" ID="RBLOpcion" RepeatDirection="Horizontal" AutoPostBack="true" Font-Size="18pt">
<asp:ListItem Selected="True" Value="2">Entrada</asp:ListItem>
<asp:ListItem Value="3">Salida</asp:ListItem>
</asp:RadioButtonList>
</div>
</div>
<div class="row">
<label class="col-md-1 truncate" style="width: 110px">Almacén:</label>
@@ -124,7 +120,7 @@
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="RfvAlmacen" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
<%-- <label class="col-md-1 truncate" style="width: 110px" id="DivConcepto1" runat="server">Concepto:</label>
<%-- <label class="col-md-1 truncate" style="width: 110px" id="DivConcepto1" runat="server">Concepto:</label>
<div class="col-md-2 " id="DivConcepto2" runat="server">
<asp:DropDownList ID="DdlConcepto" DataTextField="Concepto" CssClass="form-control input-sm select2me" AutoPostBack="true" DataValueField="CveConcepto" runat="server" Style="max-width: 200px"></asp:DropDownList>
<asp:RequiredFieldValidator InitialValue="-1" ID="RfvConcepto" Display="None" ValidationGroup="GrpGuardar" runat="server" ControlToValidate="DdlConcepto" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Concepto''</b> es necesario, por favor seleccione uno."></asp:RequiredFieldValidator>
@@ -241,6 +237,7 @@
<div class="row">
<label class="col-md-1 truncate" style="width: 110px">
Observaciones:
</label>
<div class="col-md-5">
<asp:TextBox ID="TxtObservaciones" TextMode="MultiLine" Rows="2" CssClass="form-control input-sm" runat="server" MaxLength="232"></asp:TextBox>
@@ -252,7 +249,7 @@
<asp:DropDownList ID="DdlPersonal" CssClass="form-control select2me" runat="server" DataTextField="CodigoNombreCompleto" DataValueField="CvePersonal"></asp:DropDownList>
</div>
</div>
<div class="row" id="TrProveedor" runat="server" visible="false">
<div class="row" id="TrProveedor" runat="server" visible="false">
<label class="col-md-1 truncate">Proveedor</label>
<div class="col-md-5">
<asp:DropDownList ID="DdlProveedor" CssClass="form-control select2me" runat="server" DataTextField="RazonSocial" DataValueField="CveProveedor"></asp:DropDownList>
@@ -282,10 +279,58 @@
</div>
</div>
</div>
<div class="col-md-6">
<div id="DivRecepcionUsados" runat="server" visible="false" class="portlet light xspadding bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
<span class="caption-subject bold uppercase">Remisiones por Recibir</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<asp:Panel runat="server" DefaultButton="BtnConsultarPendientes">
&nbsp;
<b>Sucursal:</b>
<asp:DropDownList ID="DdlSubProyectos" runat="server" CssClass="form-control input-sm select2me" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Width="90px"></asp:DropDownList>
<asp:TextBox ID="TxtFechaPendientes" runat="server" CausesValidation="true" MaxLength="10" ValidationGroup="GrpPendientes" Width="70px" ClientIDMode="Static"></asp:TextBox>
<asp:LinkButton ID="ImgFechaPendientes" Style="background-color: white;" class="btn default " Text="<i style='width:16px; height:16px;' class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
<ajax:MaskedEditExtender ID="MEEFechaPendientes" runat="server" TargetControlID="TxtFechaPendientes" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFechaPendientes" TargetControlID="TxtFechaPendientes" PopupButtonID="ImgFechaPendientes" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVFechaPendientes" runat="server" ControlToValidate="TxtFechaPendientes" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpPendientes"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVFechaPendientes" runat="server" ControlToValidate="TxtFechaPendientes" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpPendientes"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCOFecha1Pendientes" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaPendientes" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCOFecha2Pendientes" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaPendientes" Width="350px"></ajax:ValidatorCalloutExtender>
<asp:Button Text="Recarga" Width="75px" ID="BtnConsultarPendientes" OnClick="BtnConsultarPendientes_Click" CssClass="btn btn-primary" runat="server" ValidationGroup="GrpPendientes" />
<a href="javascript:;" class="collapse"></a>
</asp:Panel>
</div>
</div>
<div class="portlet-body">
<asp:GridView ID="GVPendientes" runat="server" DataKeyNames="CveVenta" EmptyDataText="Aun no hay registros." AutoGenerateColumns="False" ShowHeader="true" ShowHeaderWhenEmpty="True" HeaderStyle-CssClass="Titulos" CssClass="table table-striped table-hover Widthall ScrollAD" data-height="200" data-freezerows="1" GridLines="None">
<Columns>
<asp:TemplateField HeaderText="Serie-Folio" ItemStyle-Width="20%">
<ItemTemplate>
<asp:Label runat="server" ID="LblFolio" Text='<%# Eval("SerieFolio")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton Text="Recibir" ID="BtnRecibir" CommandArgument="-1" OnClick="BtnRecibir_Click" CssClass="btn btn-primary btn-xs" runat="server" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="20%" />
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<%--INVENTARIO INICIAL--%>
<asp:UpdatePanel runat="server" ID="UpCodigoBarras" UpdateMode="Conditional">
<ContentTemplate>
@@ -297,6 +342,7 @@
</div>
<div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Agregar Producto
</div>
</div>
<div class="portlet-body">
@@ -351,8 +397,6 @@
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel runat="server" ID="UpRegistroTipoCambio" UpdateMode="Conditional">
<ContentTemplate>
<div class="col-md-4">
@@ -365,12 +409,14 @@
</div>
<div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Información de registro
</div>
</div>
<div class="portlet-body">
<div class="row">
<label class="col-md-3 truncate">
Usuario:
</label>
<div class="col-md-6">
<asp:Label ID="LblUsuarioRegistro" runat="server"></asp:Label>
@@ -380,6 +426,7 @@
<div class="row" style="margin-top: 10px;">
<label class="col-md-3 truncate">
Fecha:
</label>
<div class="col-md-6">
<asp:Label ID="LblFechaRegistro" runat="server"></asp:Label>
@@ -388,6 +435,7 @@
<div class="row" style="margin-top: 10px;">
<label class="col-md-3 truncate">
Referencia:
</label>
<div class="col-md-6">
<asp:HyperLink ID="HplCompra" Target="_blank" runat="server" Visible="False" CssClass="Texto">Ver Compra</asp:HyperLink>
@@ -400,6 +448,7 @@
<div class="row" runat="server" id="RowConsignacion" visible="false" style="margin-top: 10px;">
<label class="col-md-3 truncate">
Consignación:
</label>
<div class="col-md-6">
<asp:HyperLink ID="HLConsignacion" Target="_blank" NavigateUrl="#" Text="" runat="server" />
@@ -409,6 +458,7 @@
<div class="row" runat="server" id="RowTipoCambio" visible="false" style="margin-top: 10px;">
<label class="col-md-3 truncate">
Tipo Cambio:
</label>
<div class="col-md-6">
<asp:Label Text="" ID="LbTipoCambio" runat="server" />
@@ -417,6 +467,7 @@
<div class="row" runat="server" id="RowMtoRel" visible="false" style="margin-top: 10px;">
<label class="col-md-3 truncate">
Mto. Rel.:
</label>
<div class="col-md-6">
<asp:HyperLink ID="lnkMtoRelaioando" CssClass="Texto" runat="server" Target="_blank">ver</asp:HyperLink>
@@ -434,6 +485,7 @@
</div>
<div class="caption uppercase" style="position: relative;">
<i class="fa fa-info-circle"></i>Tipo de Cambio
</div>
</div>
<div class="portlet-body">
@@ -470,9 +522,7 @@
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="row" runat="server" id="DivCodigoSeriePS" visible="false">
@@ -489,7 +539,7 @@
<td runat="server" visible="false" id="TdSeriePSAdd">
<asp:Panel ID="Panel2" runat="server" DefaultButton="BtnSeriePSAdd">
<asp:TextBox ID="TxtSeriePS" Text="" runat="server" />
<%-- <asp:Button Text="" ID="BtnSeriePSAdd" OnClick="BtnSeriePSAdd_Click" Style="display: none" runat="server" />--%>
<%-- <asp:Button Text="" ID="BtnSeriePSAdd" OnClick="BtnSeriePSAdd_Click" Style="display: none" runat="server" />--%>
</asp:Panel>
</td>
</tr>
@@ -505,7 +555,7 @@
<div class="row">
<div style="width:70%" align="right">
<div style="width: 70%" align="right">
<asp:Label ID="LbTotalMovimientos" Text="Total de Movimientos: 0" runat="server" />
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvM.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
@@ -517,12 +567,12 @@
<asp:HiddenField runat="server" ID="HdnCodAFEdit" Value="-1" ClientIDMode="Static" />
<asp:GridView ID="GvM" runat="server" GridLines="none" Width="70%"
<asp:GridView ID="GvM" runat="server" GridLines="none" Width="70%"
CssClass="table table-hover ADScroller btn-xs" ShowHeader="True"
EmptyDataText="Aún no hay registros." DataKeyNames="No,CveMovimientoDetalle"
AutoGenerateColumns="False" AllowPaging="False" ShowFooter="True" ShowHeaderWhenEmpty="True">
<Columns>
<asp:TemplateField HeaderText="" ItemStyle-Font-Size="6pt" >
<asp:TemplateField HeaderText="" ItemStyle-Font-Size="6pt">
<ItemTemplate>
<asp:Literal ID="lbNo" runat="server" Text='<%# Eval("No")%>'></asp:Literal>
</ItemTemplate>
@@ -550,7 +600,7 @@
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LnkActuallizarUsado" runat="server" AlternateText="Editar" CausesValidation="False" OnClick="LnkActuallizarUsado_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
<asp:LinkButton ID="LnkActuallizarUsado" runat="server" AlternateText="Editar" CausesValidation="False" OnClick="LnkActuallizarUsado_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
<asp:LinkButton ID="lnkRemove" runat="server" AlternateText="Eliminar" OnClick="DeleteRow" CommandArgument='<%# Eval("No")%>' CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el concepto?" data-btn-ok-label="si" />
</ItemTemplate>
<ItemStyle Width="140px"></ItemStyle>
@@ -598,7 +648,7 @@
<asp:UpdatePanel runat="server">
<ContentTemplate>
<div class="portlet xspadding light bordered" id="DivBitacora" runat="server" visible="false" style="display:none">
<div class="portlet xspadding light bordered" id="DivBitacora" runat="server" visible="false" style="display: none">
<div class="portlet-title">
<div class="caption font-green">
<span class="caption-subject bold uppercase">Bitácora</span>
@@ -617,10 +667,10 @@
<ContentTemplate>
<asp:GridView ID="GvBitacora" runat="server" AutoGenerateColumns="False" EmptyDataText="No se han capturado comentarios o bitácora" CssClass="table table-striped table-hover Widthall" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Fecha" DataField="FechaIng" ItemStyle-Width="16%"/>
<asp:BoundField HeaderText="Fecha Agenda" DataField="FechaInicio" ItemStyle-Width="16%"/>
<asp:BoundField HeaderText="Usuario" DataField="Usuario" ItemStyle-Width="16%"/>
<asp:BoundField HeaderText="Descripción" DataField="Descripcion" ItemStyle-Width="55%"/>
<asp:BoundField HeaderText="Fecha" DataField="FechaIng" ItemStyle-Width="16%" />
<asp:BoundField HeaderText="Fecha Agenda" DataField="FechaInicio" ItemStyle-Width="16%" />
<asp:BoundField HeaderText="Usuario" DataField="Usuario" ItemStyle-Width="16%" />
<asp:BoundField HeaderText="Descripción" DataField="Descripcion" ItemStyle-Width="55%" />
<asp:TemplateField HeaderText="Archivo" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="LinkArchivo" Visible="false" runat="server" CssClass="Texto" OnClick="DownloadFile">
@@ -702,6 +752,7 @@
<div class="row">
<div class="col-md-5" style="text-align: right;">
Cantidad
</div>
<div class="col-md-7">
<asp:TextBox ClientIDMode="Static" ID="TxtCantidadEspecial" Text="" runat="server"></asp:TextBox>
@@ -729,7 +780,7 @@
<div id="DivModalAgregar" class="modal ADS fade" role="dialog">
<div id="DivModalAgregar" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpModalAgregar" class="modal-content rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
@@ -745,7 +796,7 @@
<label for='<%= txtCantidad.ClientID %>'>Cantidad:</label>
<asp:TextBox ID="txtCantidad" CssClass="form-control input-sm" Width="55px" MaxLength="15" runat="server" ValidationGroup="GprAgregarUsado"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="SoloNumerosCantidad" runat="server" TargetControlID="txtCantidad" FilterType=" Numbers" />
<ajax:FilteredTextBoxExtender ID="SoloNumerosCantidad" runat="server" TargetControlID="txtCantidad" FilterType=" Numbers" />
<asp:RequiredFieldValidator ID="RFVCantidad" runat="server" ControlToValidate="txtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="GprAgregarUsado"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCOCantidad1" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
<asp:CustomValidator ID="CVCantidad" runat="server" ClientValidationFunction="ValidaDecimal6digits" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> no tiene el formato correcto (6 decimales). Por favor rectifique y vuelva a intentar." ValidateEmptyText="True" ValidationGroup="GprAgregarUsado"></asp:CustomValidator>
@@ -761,12 +812,13 @@
</asp:DropDownList>
</div>--%>
<div class="form-group form-md-line-input ">
<asp:DropDownList runat="server" ID="DdlProducto2" AutoPostBack="true" AppendDataBoundItems="true" Class="form-control select2me" Style="width: 200px !important;" DataTextField="PSCodigo" DataValueField="CvePS" OnSelectedIndexChanged="DdlProducto2_SelectedIndexChanged" />
<asp:DropDownList runat="server" ID="DdlProducto2" AutoPostBack="true" AppendDataBoundItems="true" Class="form-control select2me" Style="width: 200px !important;" DataTextField="PSCodigo" DataValueField="CvePS" OnSelectedIndexChanged="DdlProducto2_SelectedIndexChanged" />
<asp:HiddenField ID="HdnCveTamaño" runat="server" />
<label for='<%= DdlProducto2.ClientID %>'>Producto:</label>
</div>
<div class="form-group form-md-line-input "><br />
<div class="form-group form-md-line-input ">
<br />
<label for='<%= DdlUnidad.ClientID %>'>Unidad de Medida:</label><br />
<asp:DropDownList ID="DdlUnidad" runat="server" Class="form-control input-sm select2me" Style="width: 75px !important;" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida"></asp:DropDownList>
<asp:CompareValidator ID="CVUnidad" runat="server" ControlToValidate="ddlUnidad" Type="Integer" Operator="GreaterThan" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Unidad Medida''</b> es necesario, por favor selecione una." Display="None" ValueToCompare="0" ValidationGroup="GprAgregarUsado"></asp:CompareValidator>
@@ -774,9 +826,9 @@
</div>
<div class="form-group form-md-line-input " runat="server" visible="false" >
<div class="form-group form-md-line-input " runat="server" visible="false">
<label for='<%= txtPrecio.ClientID %>'>PU:</label>
<asp:TextBox ID="txtPrecio" CssClass="form-control input-sm" runat="server" Width="55px" Text="0" ></asp:TextBox>
<asp:TextBox ID="txtPrecio" CssClass="form-control input-sm" runat="server" Width="55px" Text="0"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="ftbe" runat="server" TargetControlID="txtPrecio" FilterType="Custom, Numbers" ValidChars="+-.," />
</div>

View File

@@ -198,6 +198,14 @@ Partial Class Inventarios_RecepcionUsados
ViewState("FolioAsignado") = value
End Set
End Property
Private Property CveRemisionRecibida As Integer
Get
Return IfNull(ViewState("CveRemisionRecibida"), -1, CType(ViewState("CveRemisionRecibida"), Integer)).ToString().ToEntero()
End Get
Set(value As Integer)
ViewState("CveRemisionRecibida") = value
End Set
End Property
Private ReadOnly Property CveConcepto As Integer
@@ -270,6 +278,7 @@ Partial Class Inventarios_RecepcionUsados
CreaDT()
CargaCombos()
TxtFecha.Text = Now.ToShortDateString
TxtFechaPendientes.Text = Now.ToShortDateString
RVFecha.MaximumValue = Now.ToShortDateString
InicializaClientes()
@@ -298,6 +307,7 @@ Partial Class Inventarios_RecepcionUsados
End If
End If
CargaSubProyectosUsados()
InicializaBitacoraTemporal()
If UsuarioActual.Empresa.Funcionalidad(132) = "1" Then
@@ -507,8 +517,30 @@ Partial Class Inventarios_RecepcionUsados
Private Sub CargaSubProyectos()
DdlSubProyecto.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1))
DdlSubProyecto.DataBind()
'DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
Private Sub CargaSubProyectosUsados()
If UsuarioActual.CveEmpresa = 140 Then
DivRecepcionUsados.Visible = True
If Not UsuarioActual.TienePermisoProceso(190) Then
'CARGA SOLO LAS SUCURSALES DE LOS ALMCENES QUE TIENE ASIGNADO EL USUARIO
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.GetSucursalesAlmacenUsuario(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
DdlSubProyectos.DataSource = ObjInventarios.DtResultados
End If
ObjInventarios.Dispose()
Else
DdlSubProyectos.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
End If
DdlSubProyectos.DataBind()
DdlSubProyectos.SelectedValueExist(UsuarioActual.CveSubProyecto.ToString)
End If
End Sub
Private Sub CargaPersonal()
TrPersonal.Visible = True
Dim dt As DataTable = Nothing
@@ -940,16 +972,12 @@ Partial Class Inventarios_RecepcionUsados
End Sub
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
If GvM.Rows.Count > 0 Then
'Dim CveMovimiento As Integer
Dim ObjInventario As New ClsInventarios
Dim ObjAcum As New ClsAcumuladores(ObjInventario.IniciaTransacSQL())
Dim ObjVentas As New ClsVentas(ObjInventario.IniciaTransacSQL())
Dim ErrorMovInv As Boolean = False
Dim ErrorAC As Boolean = False
@@ -978,9 +1006,12 @@ Partial Class Inventarios_RecepcionUsados
End If
Dim tCveProveedor As Integer = -1
If DdlProveedor.SelectedValue.ToEntero > 0 Then tCveProveedor = DdlProveedor.SelectedValue.ToEntero
Dim CveVenta As Integer = -1
If CveRemisionRecibida > 0 Then
CveVenta = CveRemisionRecibida
End If
'Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inv/ES", 53, 0, 0, 1, TxtFecha.Text.ToDate, $" {TxtObservaciones.Text}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
CveMovimiento = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, CveConcepto, 1, Fecha, tFolio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1,
CveMovimiento = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, CveConcepto, 1, Fecha, tFolio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta,
CveSubProyecto, ActivoFijo, Guia:=TxtGuia.Text, Observaciones:=TxtObservaciones.Text, CvePersonal:=DdlPersonal.SelectedValue.ToEntero,
Recibio:=TxtResponsable.Text.Trim, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, DepartamentoEntrega:=TxtDepartamentoEntrega.Text,
PedidoContrato:=TxtPedidoContrato.Text, CveProveedor:=tCveProveedor)
@@ -1007,6 +1038,12 @@ Partial Class Inventarios_RecepcionUsados
Exit For
End If
If Not ObjVentas.UpdateVentaUsadoRecibido(CveRemisionRecibida, Dr("CvePS").ToString.ToEntero, True) Then
Mensaje = "Error al actualizar el recibo de los usados"
ErrorMovInv = True
Exit For
End If
Dim CveConceptoUsados As Integer = If(RBLOpcion.SelectedValue.ToEntero = 2, 1, 2)
@@ -1933,4 +1970,45 @@ Partial Class Inventarios_RecepcionUsados
UpGenerales.Update()
End Sub
Protected Sub BtnConsultarPendientes_Click(sender As Object, e As EventArgs)
Dim ObjVentas As New ClsVentas
If ObjVentas.GetVentasUsados(-1, DdlSubProyectos.SelectedValue.ToEntero(), TxtFechaPendientes.Text.ToDateTime(), UsuarioActual.CveEmpresa) Then
GVPendientes.DataSource = ObjVentas.DtResultados
End If
ObjVentas.Dispose()
GVPendientes.DataBind()
UpGenerales.Update()
End Sub
Protected Sub BtnRecibir_Click(sender As Object, e As EventArgs)
Me.CveRemisionRecibida = -1
Me.CveRemisionRecibida = CType(CType(sender, LinkButton).NamingContainer, GridViewRow).DataKey("CveVenta").ToEntero()
Dim DtUsados As DataTable = Nothing
Dim ObjVentas As New ClsVentas
If ObjVentas.GetVentasUsadosDetalle(CveRemisionRecibida) Then
DtUsados = ObjVentas.DtResultados.Copy()
End If
ObjVentas.Dispose()
If DtUsados IsNot Nothing Then
For Each RowUsado As DataRow In DtUsados.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim RowPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).Rows(0) '.FiltroPrimeroValor("CveTamaño", $"CvePS = { DdlProducto2.SelectedValue.ToEntero }").ToEntero
Dim CveTamaño As Integer = RowPS("CveTamaño").ToString().ToEntero()
Dim PS As String = RowPS("PS").ToString()
Dim CveUM As Integer = RowPS("CveUnidadMedida").ToString().ToEntero()
Dim UM As String = RowPS("UnidadMedida").ToString()
Dim Cantidad As Double = RowUsado("Cantidad").ToString().ToEntero()
Dim PU As Double = RowUsado("PU").ToString().ToDouble()
AddNew(CvePS, PS, CveUM, UM, Cantidad, PU,
"", "-1", "-1", "-1", "", "", "", DdlAlmacen.SelectedValue.ToEntero, DdlAlmacen.SelectedItem.Text, "", CveTamaño)
Next
End If
End Sub
End Class

View File

@@ -4,4 +4,4 @@
28/08/2019:05:48 p. m. No se especifico a remitente - SIG - Se Genero una Recepción de Usados con el folio: 80
02/09/2019:11:00 a. m. From:'signotificaciones@adssistemas.mx' - Para:'x@x.com' - Asunto:'Entrega de Factura SUCURSAL NARANJO SN-22' - CCP: '' - Adjuntos: 1

View File

@@ -337,6 +337,7 @@
<asp:DropDownList CssClass="form-control input-sm" ID="DdlTipoComprobante" DataValueField="CveTipoDocumento" DataTextField="TipoDocumento" runat="server" AppendDataBoundItems="true" AutoPostBack="true" Width="100px">
<asp:ListItem Value="Ing" Text="Ingresos" Selected="True"></asp:ListItem>
<asp:ListItem Value="Ant" Text="Anticipos"></asp:ListItem>
<asp:ListItem Value="Rem" Text="Remision"></asp:ListItem>
</asp:DropDownList>
</td>
@@ -1208,7 +1209,7 @@
<ajax:FilteredTextBoxExtender ID="FTBECambio" runat="server" TargetControlID="TxtCambio" FilterType="Custom, Numbers" ValidChars=".," />
<br></br>
</div>
</div>
</div>
</div>
</div>
</div>
@@ -1503,7 +1504,7 @@
<asp:Literal ID="LtlRecepcionUsados" Text="Recepcion Usados" runat="server"> </asp:Literal></h4>
</div>
<div class="modal-body">
<asp:GridView ID="GvRecepcionUsados" runat="server" GridLines="None" ShowHeaderWhenEmpty="true" CssClass="table table-hover table-striped ScrollAD mysmallbtn" Width="100%" data-sort="true" AutoGenerateColumns="False"
<asp:GridView ID="GvRecepcionUsadosModal" runat="server" GridLines="None" ShowHeaderWhenEmpty="true" CssClass="table table-hover table-striped ScrollAD mysmallbtn" Width="100%" data-sort="true" AutoGenerateColumns="False"
DataKeyNames="CvePSCargo,CveUM,Cargo">
<Columns>
<asp:BoundField DataField="CodigoPS" HeaderText="Producto/Servicio" ItemStyle-HorizontalAlign="Left" />
@@ -2620,7 +2621,7 @@
<asp:HiddenField ID="HdnPorcentajeIEPS" runat="server" Value="-1" />
<asp:HiddenField ID="HdnCvePS" runat="server" Value="-1" />
<div class="row">
<div class="row" runat="server" visible="false">
<div class="col-md-12">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlClasificacion" CssClass="form-control input-sm select2me" runat="server" AppendDataBoundItems="true" AutoPostBack="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Width="100%" OnSelectedIndexChanged="DdlClasificacion_SelectedIndexChanged">
@@ -2643,7 +2644,7 @@
<br />
<asp:UpdatePanel runat="server" ID="UpUnidadMedida" UpdateMode="Conditional">
<ContentTemplate>
<div class="form-group form-md-line-input input-iconright">
<div runat="server" visible="false" class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlUnidadMedida" AppendDataBoundItems="true" CssClass="form-control input-sm select2me " runat="server" DataTextField="UnidadMedida" DataValueField="CveUnidadMedida" Style="width: 100%;"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVUnidadMedida" runat="server" ControlToValidate="DdlUnidadMedida" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Unidad de Medida''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAddVenta"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEUnidadMedida" runat="server" HighlightCssClass="vco" TargetControlID="RFVUnidadMedida" Width="300px"></ajax:ValidatorCalloutExtender>
@@ -2653,12 +2654,30 @@
</div>
</ContentTemplate>
</asp:UpdatePanel>
<br />
<div>
<label>Observación:</label>
<br />
<asp:TextBox ID="TxtObsPS" runat="server" Height="50" Width="398px" TextMode="MultiLine" CausesValidation="true" MaxLength="500"></asp:TextBox>
<div class="row">
<div class="col-md-7">
<label>Observación:</label>
<br />
<asp:TextBox ID="TxtObsPS" runat="server" Height="100%" Width="100%" TextMode="MultiLine" CausesValidation="true" MaxLength="500"></asp:TextBox>
</div>
<div class="col-md-5" id="DivRecepcionUsados" runat="server" visible="false">
<asp:GridView ID="GvRecepcionUsados" runat="server" GridLines="None" ShowHeaderWhenEmpty="true" CssClass="table table-hover table-striped ScrollAD mysmallbtn"
data-sort="true" BorderWidth="1" BorderColor="#D3D3D3" CellSpacing="0" Width="100%" AutoGenerateColumns="False" data-height="100"
DataKeyNames="CvePSCargo,CveUM,Cargo,CveTamaño">
<Columns>
<asp:BoundField DataField="CodigoPS" HeaderText="Tamaño" ItemStyle-HorizontalAlign="Left" ItemStyle-Width="70%" />
<asp:TemplateField HeaderText="Cantidad" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="30%" >
<ItemTemplate>
<asp:TextBox ID="TxtCantidad" runat="server" Width="80%"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FTBECantidad" runat="server" TargetControlID="TxtCantidad" FilterType="Custom, Numbers" ValidChars="." />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
<br />
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtPrecio" runat="server" onkeypress="setFocus(event,'LbAgregar');" onkeyup="Recalcula();" CausesValidation="true" lang="nb" ClientIDMode="Static" Text="0.00" MaxLength="12" ValidationGroup="GrpAddVenta" Width="76px" CssClass="form-control "></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender4" runat="server" TargetControlID="TxtPrecio" FilterType="Custom, Numbers" ValidChars="." />
@@ -2729,7 +2748,7 @@
</div>
<div class="col-md-3">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtPUFactura" CssClass="form-control" runat="server" MaxLength="50" ></asp:TextBox>
<asp:TextBox ID="TxtPUFactura" CssClass="form-control" runat="server" MaxLength="50"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVPUFactura" runat="server" ControlToValidate="TxtPUFactura" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''PU Factura''</b> es necesario, por favor ingréselo." ValidationGroup="GrpAddVenta"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCEPUFactura" runat="server" HighlightCssClass="vco" TargetControlID="RFVPUFactura"></ajax:ValidatorCalloutExtender>
<ajax:FilteredTextBoxExtender ID="FTBEPUFactura" runat="server" TargetControlID="TxtPUFactura" FilterType="Custom, Numbers" ValidChars=".," />

View File

@@ -4,8 +4,7 @@ Option Strict On
Imports Extensiones
Imports System.Data
Imports System.IO
Imports System.Xml
Imports Microsoft.Reporting.WebForms
Imports System.Linq
Imports System.Security.Cryptography.X509Certificates
Imports System.Globalization
@@ -1955,9 +1954,10 @@ Partial Class PV
Dim DbRow As DataRow = Nothing
DbRow = TmpDT.Rows(e.RowIndex)
TmpDT.Rows.Remove(DbRow)
CalculaUsados()
EliminarUsados(DbRow("Consec").ToString().ToEntero())
TmpDT.Rows.Remove(DbRow)
GvPS.DataSource = TmpDT
DtInv = TmpDT.Copy.FiltraParametros("CveTipoPS = 2")
@@ -2256,22 +2256,18 @@ Partial Class PV
MandarCorreoSupervisor = False
End If
'If DdlTipoComprobante.SelectedValue = "Cot" Then
' EmitirImprimirNew()
'If TmpDTAjustes IsNot Nothing AndAlso Not TmpDTAjustes.Rows.Count > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(531).ToString = "1" Then
' RegistraScript("$('#DModalRecepcionUsados').modal('show');")
'Else
' LimpiaEscondeContado()
' EmitirImprimirNew()
'End If
EmitirImprimirNew()
If TmpDTAjustes IsNot Nothing AndAlso Not TmpDTAjustes.Rows.Count > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(531).ToString = "1" Then
RegistraScript(String.Format("$('#{0}').modal('show');", "DModalRecepcionUsados"))
Else
EmitirImprimirNew()
End If
End Sub
#End Region
#Region " NNNNEEEEEEEWWWWWW "
#Region "E M I T I R - F A C T U R A"
Protected Sub EmitirImprimirNew()
If ValidaPagosContado() Then
@@ -2293,12 +2289,6 @@ Partial Class PV
Alert(Mensaje, If(Retorno.TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion), If(Retorno.TieneError, "", Retorno.LigaPV))
Next
' 'MUESTA ALERT OK
' Dim Liga = If(UsuarioActual.CveRol = 1165, "document.location.href=""/Ventas/Ventas.aspx?CveVenta=-1"";", $"document.location.href=""/Ventas/Clientes.aspx?CveCliente={CveCliente}&Opt=3"";")
' Alert(MensajeAlert.ToString, TipoMensaje.MsgInformacion, Liga)
End If
End If
@@ -2499,12 +2489,12 @@ Partial Class PV
ddlAlmacen.SelectedIndex = 1
End If
ObjFactura.CveAlmacen = ddlAlmacen.SelectedValue.ToEntero
'ObjFactura.CveAlmacen = ddlAlmacen.SelectedValue.ToEntero
DtInv.Columns.Add("Seleccionado", GetType(Integer))
For Each Gvr As GridViewRow In GvInv.Rows
Dim Dr As DataRow = DtInv.Select($"CvePS={Gvr.DataKey("CvePS")}")(0)
If Gvr.FCCheckBox("cbInv").Checked Then
If Gvr.FCCheckBox("cbInv").Checked AndAlso ddlAlmacen.SelectedValue.ToEntero > 0 Then
Dr("Seleccionado") = 1
Else
Dr("Seleccionado") = 0
@@ -2512,7 +2502,7 @@ Partial Class PV
Next
DtInv.AcceptChanges()
ObjFactura.DtInventario = DtInv.FiltraParametros("Seleccionado = 1")
'ObjFactura.DtInventario = DtInv.FiltraParametros("Seleccionado = 1")
End Sub
@@ -2717,6 +2707,11 @@ Partial Class PV
HdnTipoInv.Value = drPS("Inv_CveMetodoInventario").ToString
HdnAplicaIEPS.Value = drPS("AplicaIEPS").ToString
HdnPorcentajeIEPS.Value = drPS("IEPSPorcentaje").ToString
'Muestra la tabla de tamaños
If drPS("CveTamaño").ToString().ToEntero() > 0 Then
DivRecepcionUsados.Visible = True
End If
DdlUnidadMedida.Items.Clear()
If UsuarioActual.Empresa.UsaInventarios Then
DdlUnidadMedida.DataSource = GlobalDTProductosServiciosEquivalencias(CvePSParametro, -1)
@@ -2791,7 +2786,7 @@ Partial Class PV
UpClasificacion.Update()
UpPS.Update()
UpUnidadMedida.Update()
UpAddVenta.Update()
End Sub
Protected Sub DdlPS_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DdlPS.selectedindexchange
DdlPSIndexChange(DdlPS.SelectedValue.ToEntero, DdlPS)
@@ -2980,6 +2975,9 @@ Partial Class PV
TmpDT.Columns.Add("CveTamaño", GetType(Integer))
TmpDT.Columns.Add("EsCargo", GetType(Boolean))
TmpDT.Columns.Add("PUOriginal", GetType(Decimal))
End Sub
Private Sub CreaDTmpC()
@@ -3152,6 +3150,13 @@ Partial Class PV
ChkAgregar.Checked = True
For Each Gvr As GridViewRow In GvRecepcionUsados.Rows
If Gvr.RowType = DataControlRowType.DataRow Then
Gvr.FCTextBox("TxtCantidad").Text = ""
End If
Next
DivRecepcionUsados.Visible = False
LimpiaAjuste()
UPPDescuento.Update()
@@ -3164,17 +3169,19 @@ Partial Class PV
Optional SerieLote As String = "", Optional TiempoEntrega As String = "", Optional EntregaDirecta As Integer = 0,
Optional CveContratoDetalle As Integer = 0, Optional CveVentaDetalle As Integer = 0, Optional CveMovimientoDetallePedido As Integer = 0,
Optional CveOrdenCompraDetalle As Integer = 0, Optional CveVentaDetalleRemision As Integer = 0, Optional CveVentaDetalleCotizacion As Integer = 0,
Optional CuentaPredial As String = "", Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional EsCargo As Boolean = False) As Boolean
Optional CuentaPredial As String = "", Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional EsCargo As Boolean = False) As Integer
Dim Retorno As Boolean = False
Dim Retorno As Integer = -1
If Not CvePS > 0 Then
Alert("Ocurrió un error al cargar la información del producto a agregar. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Return False
Retorno = -1
Return Retorno
End If
If (Obs.Length + PS.Length > 1000) Then
Alert(String.Format("El Nombre y observación del producto tiene longitud de {0} caracteres y excede los 1000 caracteres permitidos.", Obs.Length + PS.Length), TipoMensaje.MsgAdvertencia)
Return False
Retorno = -1
Return Retorno
End If
'VALIDA CONCEPTOS EN CERO - YA SE VALIDA ANTES CON FUNCIONALIDAD - A MIRAS DE ELIMINAR - IPP 28 AGOSTO 2017
@@ -3183,153 +3190,19 @@ Partial Class PV
If Cantidad * PU <= 0 Then
If Not DdlTipoComprobante.SelectedValue = "DPe" Then
Alert("El importe del concepto debe ser mayor a cero. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Return False
Retorno = -1
Return Retorno
End If
End If
End If
End If
Dim Row As DataRow = Nothing
If Modalidad = "A" Then
Dim Row As DataRow = Nothing
Dim TotalCalculableImpuestos As Decimal = 0
PU = Math.Round(PU, 6) ' el precio unitario puede llevar hasta 6 decimales permitidos
Row = TmpDT.NewRow()
Row("CveProyecto") = CveProyecto
Row("Proyecto") = Proyecto
Row("CveSubProyecto") = CveSubProyecto
Row("SubProyecto") = SubProyecto
Row("SerieLote") = SerieLote
Row("TiempoEntrega") = TiempoEntrega
Row("Orden") = TmpDT.Rows.Count + 1
Row("Cantidad") = Cantidad
Row("CveUM") = CveUM
Row("UM") = UM
Row("CveClasificacion") = CveClasificacion
Row("Clasificacion") = Clasificacion
Row("CvePS") = CvePS
Row("Obs") = Obs
Dim DrPS As DataRow = Nothing
DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
If DrPS Is Nothing Then
Alert("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Return False
End If
If Not ClienteDesglosaIEPS Then
If Not RegeneraIEPS Then
PU = PU * (1 + DrPS("IEPSPorcentaje").ToString.ToDecimal)
End If
DrPS("IEPSPorcentaje") = 0
End If
'verifica si tiene ventaminima
If Cantidad > 0 AndAlso DrPS("VentaMinima").ToString.ToDecimal > 0 Then
'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15...
If Cantidad Mod DrPS("VentaMinima").ToString.ToDecimal <> 0 Then
Alert(String.Format("El producto se vende solo en cantidades de {0}", DrPS("VentaMinima").ToString))
Return False
End If
End If
TotalCalculableImpuestos = (Cantidad * (PU)) - Descuento
Row("PU") = PU
Row("Codigo") = DrPS("Codigo")
Row("NoIdentificacion") = DrPS("Codigo")
Row("ClaveSATFraccionArancelaria") = DrPS("ClaveSATFraccionArancelaria")
Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana")
Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion")
Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion")
Row("Consec") = TmpDT.Rows.Count + 1
If Not EsCargo Then
ConsecutivoVenta = TmpDT.Rows.Count + 1
End If
Row("PS") = DrPS("PS")
Row("CodigoPS") = DrPS("PSCodigo").ToString
Row("CveTipoPS") = DrPS("CveTipoPS")
Row("CveTipoInvPS") = DrPS("Inv_CveMetodoInventario")
Row("CveTamaño") = DrPS("CveTamaño")
If CveClasificacion <= 0 Then Row("CveClasificacion") = DrPS("CveClasificacion")
If Clasificacion = "" Then Row("Clasificacion") = DrPS("Clasificacion")
If DrPS("IVA").ToString.Contiene("-1", "") Then
Row("PorcentajeIVA") = SubProyectoPorcentajeIVA
Else
Row("PorcentajeIVA") = DrPS("IVA")
End If
Row("IVA") = Row("PorcentajeIVA")
Row("ImporteIVA") = Math.Round(Row("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
Row("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
Row("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
Row("PorcentajeRetIVA") = ClienteRetIVA
Row("PorcentajeRetISR") = ClienteRetISR
Row("PorcentajeIEPS") = DrPS("IEPSPorcentaje")
Row("ImporteIEPS") = Math.Round(DrPS("IEPSPorcentaje").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
Row("IEPS") = Row("ImporteIEPS")
Row("Descuento") = Math.Round(Descuento, NumeroDecimales)
Row("TipoDescuento") = HdnTipoDescuento.Value
Row("Total") = (Cantidad * PU)
Row("TotalImporte") = Math.Round(Cantidad * PU, NumeroDecimales)
'Row("AsientoContableVentas") = DrPS("AsientoContableVentas")
' Row("IdCtaContVentas") = IdCtaContable
' Row("AplicaParaConcepto") = AplicaParaConcepto
Row("SATClaveProdServ") = DrPS("SATClavePS")
Row("SATClaveUM") = DrPS("SATClaveUnidadMedida")
Row("EntregaDirecta") = EntregaDirecta
'Contratos
Row("CveContratoDetalle") = CveContratoDetalle
Row("CveVentaDetalle") = CveVentaDetalle
Row("CveMovimientoDetallePedido") = CveVentaDetalle
Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
Row("CveVentaDetalleRemision") = CveVentaDetalleRemision
Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
Row("CveVentaDetallePedido2") = CveVentaDetallePedido2
Row("CuentaPredial") = CuentaPredial
Row("EsCargo") = EsCargo
If UsuarioActual.CveEmpresa = 119 Then
If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA
'MONEDA DIFERENTE DEL PS AL PRIMER PS AGREGADO
If DdlMoneda.Enabled = False And CveVenta < 0 And TmpDT.Rows.Count > 0 Then
If DdlMoneda.SelectedValue <> DrPS("CveMoneda").ToString Then
Alert($"La moneda base del producto: <b>{DrPS("PSCodigo").ToString}</b> es diferente a la moneda del documento.", TipoMensaje.MsgAdvertencia)
Return False
End If
End If
'ACTIVA PRODUCTOS DE LA MISMA MONEDA
If TmpDT.Rows.Count = 0 And CveVenta < 0 Then
DdlMoneda.SelectedValueExist(DrPS("CveMoneda").ToString)
CambiaMoneda()
DdlMoneda.Enabled = False
End If
End If
End If
'RECARGAR GV
TmpDT.Rows.Add(Row)
ElseIf Modalidad = "U" Then
Dim TotalCalculableImpuestos As Decimal = 0
PU = Math.Round(PU, 6) ' el precio unitario puede llevar hasta 6 decimales permitidos
Dim Contador As Integer = 0
For Each Dr As DataRow In TmpDT.Rows
If Dr("Consec").ToString.ToEntero = Index Then
@@ -3337,135 +3210,157 @@ Partial Class PV
End If
Contador = Contador + 1
Next
Dim Row As DataRow = TmpDT.Rows(Contador)
Row("CveProyecto") = CveProyecto
Row("Proyecto") = Proyecto
Row("CveSubProyecto") = CveSubProyecto
Row("SubProyecto") = SubProyecto
Row("SerieLote") = SerieLote
Row("TiempoEntrega") = TiempoEntrega
Row("Orden") = TmpDT.Rows.Count + 1
Row("Cantidad") = Cantidad
Row("CveUM") = CveUM
Row("UM") = UM
Row("CveClasificacion") = CveClasificacion
Row("Clasificacion") = Clasificacion
Row("CvePS") = CvePS
Row("Obs") = Obs
Row = TmpDT.Rows(Contador)
End If
Dim DrPS As DataRow = Nothing
Dim TotalCalculableImpuestos As Decimal = 0
PU = Math.Round(PU, 6) ' el precio unitario puede llevar hasta 6 decimales permitidos
DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
Row("CveProyecto") = CveProyecto
Row("Proyecto") = Proyecto
Row("CveSubProyecto") = CveSubProyecto
Row("SubProyecto") = SubProyecto
Row("SerieLote") = SerieLote
Row("TiempoEntrega") = TiempoEntrega
Row("Orden") = TmpDT.Rows.Count + 1
Row("Cantidad") = Cantidad
Row("CveUM") = CveUM
Row("UM") = UM
Row("CveClasificacion") = CveClasificacion
Row("Clasificacion") = Clasificacion
Row("CvePS") = CvePS
Row("Obs") = Obs
If DrPS Is Nothing Then
Alert("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Return False
Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
If DrPS Is Nothing Then
Alert("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
Retorno = -1
Return Retorno
End If
If Not ClienteDesglosaIEPS Then
If Not RegeneraIEPS Then
PU = PU * (1 + DrPS("IEPSPorcentaje").ToString.ToDecimal)
End If
DrPS("IEPSPorcentaje") = 0
End If
If Not ClienteDesglosaIEPS Then
If Not RegeneraIEPS Then
PU = PU * (1 + DrPS("IEPSPorcentaje").ToString.ToDecimal)
End If
DrPS("IEPSPorcentaje") = 0
'verifica si tiene ventaminima
If Cantidad > 0 AndAlso DrPS("VentaMinima").ToString.ToDecimal > 0 Then
'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15...
If Cantidad Mod DrPS("VentaMinima").ToString.ToDecimal <> 0 Then
Alert(String.Format("El producto se vende solo en cantidades de {0}", DrPS("VentaMinima").ToString))
Retorno = -1
Return Retorno
End If
End If
'verifica si tiene ventaminima
If Cantidad > 0 AndAlso DrPS("VentaMinima").ToString.ToDecimal > 0 Then
'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15...
If Cantidad Mod DrPS("VentaMinima").ToString.ToDecimal <> 0 Then
Alert(String.Format("El producto se vende solo en cantidades de {0}", DrPS("VentaMinima").ToString))
Return False
End If
TotalCalculableImpuestos = (Cantidad * (PU)) - Descuento
If Modalidad = "A" Then
If Not TmpDT.Columns.Contains("PUOriginal") Then
TmpDT.Columns.Add("PUOriginal", GetType(Decimal))
End If
Row("PUOriginal") = PU
End If
TotalCalculableImpuestos = (Cantidad * (PU)) - Descuento
Row("PU") = PU
Row("Codigo") = DrPS("Codigo")
Row("NoIdentificacion") = DrPS("Codigo")
Row("ClaveSATFraccionArancelaria") = DrPS("ClaveSATFraccionArancelaria")
Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana")
Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion")
Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion")
Row("PU") = PU
Row("Codigo") = DrPS("Codigo")
Row("NoIdentificacion") = DrPS("Codigo")
Row("ClaveSATFraccionArancelaria") = DrPS("ClaveSATFraccionArancelaria")
Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana")
Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion")
Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion")
If Modalidad = "A" Then
Row("Consec") = TmpDT.Rows.Count + 1
If Not EsCargo Then
ConsecutivoVenta = TmpDT.Rows.Count + 1
End If
ElseIf Modalidad = "U" Then
If Not EsCargo Then
ConsecutivoVenta = Row("Consec").ToString.ToEntero
End If
Row("PS") = DrPS("PS")
Row("CodigoPS") = DrPS("PSCodigo").ToString
Row("CveTipoPS") = DrPS("CveTipoPS")
Row("CveTipoInvPS") = DrPS("Inv_CveMetodoInventario")
Row("CveTamaño") = DrPS("CveTamaño")
If CveClasificacion <= 0 Then Row("CveClasificacion") = DrPS("CveClasificacion")
If Clasificacion = "" Then Row("Clasificacion") = DrPS("Clasificacion")
If DrPS("IVA").ToString.Contiene("-1", "") Then
Row("PorcentajeIVA") = SubProyectoPorcentajeIVA
Else
Row("PorcentajeIVA") = DrPS("IVA")
End If
Row("IVA") = Row("PorcentajeIVA")
Row("ImporteIVA") = Math.Round(Row("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
Row("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
Row("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
Row("PorcentajeRetIVA") = ClienteRetIVA
Row("PorcentajeRetISR") = ClienteRetISR
Row("PorcentajeIEPS") = DrPS("IEPSPorcentaje")
Row("ImporteIEPS") = Math.Round(DrPS("IEPSPorcentaje").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
Row("IEPS") = Row("ImporteIEPS")
Row("Descuento") = Math.Round(Descuento, NumeroDecimales)
Row("TipoDescuento") = HdnTipoDescuento.Value
Row("Total") = (Cantidad * PU)
Row("TotalImporte") = Math.Round(Cantidad * PU, NumeroDecimales)
'Row("AsientoContableVentas") = DrPS("AsientoContableVentas")
' Row("IdCtaContVentas") = IdCtaContable
' Row("AplicaParaConcepto") = AplicaParaConcepto
Row("SATClaveProdServ") = DrPS("SATClavePS")
Row("SATClaveUM") = DrPS("SATClaveUnidadMedida")
Row("EntregaDirecta") = EntregaDirecta
'Contratos
Row("CveContratoDetalle") = CveContratoDetalle
Row("CveVentaDetalle") = CveVentaDetalle
Row("CveMovimientoDetallePedido") = CveVentaDetalle
Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
Row("CveVentaDetalleRemision") = CveVentaDetalleRemision
Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
Row("CveVentaDetallePedido2") = CveVentaDetallePedido2
Row("CuentaPredial") = CuentaPredial
Row("EsCargo") = EsCargo
If UsuarioActual.CveEmpresa = 119 Then
If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA
'MONEDA DIFERENTE DEL PS AL PRIMER PS AGREGADO
If DdlMoneda.Enabled = False And CveVenta < 0 And TmpDT.Rows.Count > 0 Then
If DdlMoneda.SelectedValue <> DrPS("CveMoneda").ToString Then
Alert($"La moneda base del producto: <b>{DrPS("PSCodigo").ToString}</b> es diferente a la moneda del documento.", TipoMensaje.MsgAdvertencia)
Return False
End If
End If
'ACTIVA PRODUCTOS DE LA MISMA MONEDA
If TmpDT.Rows.Count = 0 And CveVenta < 0 Then
DdlMoneda.SelectedValueExist(DrPS("CveMoneda").ToString)
CambiaMoneda()
DdlMoneda.Enabled = False
End If
End If
End If
End If
Row("PS") = DrPS("PS")
Row("CodigoPS") = DrPS("PSCodigo").ToString
Row("CveTipoPS") = DrPS("CveTipoPS")
Row("CveTipoInvPS") = DrPS("Inv_CveMetodoInventario")
Row("CveTamaño") = DrPS("CveTamaño")
If CveClasificacion <= 0 Then Row("CveClasificacion") = DrPS("CveClasificacion")
If Clasificacion = "" Then Row("Clasificacion") = DrPS("Clasificacion")
If DrPS("IVA").ToString.Contiene("-1", "") Then
Row("PorcentajeIVA") = SubProyectoPorcentajeIVA
Else
Row("PorcentajeIVA") = DrPS("IVA")
End If
Row("IVA") = Row("PorcentajeIVA")
Row("ImporteIVA") = Math.Round(Row("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
Row("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
Row("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
Row("PorcentajeRetIVA") = ClienteRetIVA
Row("PorcentajeRetISR") = ClienteRetISR
Row("PorcentajeIEPS") = DrPS("IEPSPorcentaje")
Row("ImporteIEPS") = Math.Round(DrPS("IEPSPorcentaje").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
Row("IEPS") = Row("ImporteIEPS")
Row("Descuento") = Math.Round(Descuento, NumeroDecimales)
Row("TipoDescuento") = HdnTipoDescuento.Value
Row("Total") = (Cantidad * PU)
Row("TotalImporte") = Math.Round(Cantidad * PU, NumeroDecimales)
'Row("AsientoContableVentas") = DrPS("AsientoContableVentas")
' Row("IdCtaContVentas") = IdCtaContable
' Row("AplicaParaConcepto") = AplicaParaConcepto
Row("SATClaveProdServ") = DrPS("SATClavePS")
Row("SATClaveUM") = DrPS("SATClaveUnidadMedida")
Row("EntregaDirecta") = EntregaDirecta
'Contratos
Row("CveContratoDetalle") = CveContratoDetalle
Row("CveVentaDetalle") = CveVentaDetalle
Row("CveMovimientoDetallePedido") = CveVentaDetalle
Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
Row("CveVentaDetalleRemision") = CveVentaDetalleRemision
Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
Row("CveVentaDetallePedido2") = CveVentaDetallePedido2
Row("CuentaPredial") = CuentaPredial
Row("EsCargo") = EsCargo
If UsuarioActual.CveEmpresa = 119 Then
If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA
'MONEDA DIFERENTE DEL PS AL PRIMER PS AGREGADO
If DdlMoneda.Enabled = False And CveVenta < 0 And TmpDT.Rows.Count > 0 Then
If DdlMoneda.SelectedValue <> DrPS("CveMoneda").ToString Then
Alert($"La moneda base del producto: <b>{DrPS("PSCodigo").ToString}</b> es diferente a la moneda del documento.", TipoMensaje.MsgAdvertencia)
Retorno = -1
Return Retorno
End If
End If
'ACTIVA PRODUCTOS DE LA MISMA MONEDA
If TmpDT.Rows.Count = 0 And CveVenta < 0 Then
DdlMoneda.SelectedValueExist(DrPS("CveMoneda").ToString)
CambiaMoneda()
DdlMoneda.Enabled = False
End If
End If
End If
If Modalidad = "A" Then
TmpDT.Rows.Add(Row)
End If
Retorno = Row("Consec").ToString().ToEntero()
TmpDT.AcceptChanges()
Retorno = True
Return Retorno
End Function
Private Function ValidaAgregarPS(CvePS As Integer, CveUM As Integer, PU As Double, CveTipoPS As Integer) As Boolean 'NO TOCAR - IPP
@@ -3493,6 +3388,18 @@ Partial Class PV
Return False
End If
Dim CantidadUsados As Decimal = 0
For Each Gvr As GridViewRow In GvRecepcionUsados.Rows
If Gvr.RowType = DataControlRowType.DataRow Then
CantidadUsados = CantidadUsados + Gvr.FCTextBox("TxtCantidad").Text.ToEntero()
End If
Next
If CantidadUsados > TxtCantidad.Text.ToEntero() Then
Alert("No puede tener una cantidad mayor a la de los cargos", TipoMensaje.MsgAdvertencia)
Return False
End If
'VALIDA PROMOCIONES
Dim ObjVentas As New ClsVentas
If ObjVentas.GetPromocionesPS(-1, TxtFecha.Text.ToDateTime, DdlSubProyectoDatos.SelectedValue.ToEntero, CveCliente, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
@@ -3704,30 +3611,22 @@ Partial Class PV
Dim CveProyecto As Integer = GlobalDTSubProyectos(-1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).Rows(0)("CveProyecto").ToString.ToEntero
Dim Proyecto As String = GlobalDTSubProyectos(-1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).Rows(0)("Proyecto").ToString
AgregarProductoServicio(TxtCantidad.Text.ToDecimal, DdlUnidadMedida.SelectedValue.ToEntero, DdlUnidadMedida.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text,
Dim Consec = AgregarProductoServicio(TxtCantidad.Text.ToDecimal, DdlUnidadMedida.SelectedValue.ToEntero, DdlUnidadMedida.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text,
CvePS, "", TxtObsPS.Text.Trim, If(CvePSAmortizacion > 0, TxtPrecio.Text.Trim.ToDecimal * -1, TxtPrecio.Text.Trim.ToDecimal), Descuento,
CveProyecto, Proyecto, DdlSubProyectoDatos.SelectedValue.ToEntero, DdlSubProyectoDatos.SelectedItem.Text,
SerieLote:="", TiempoEntrega:="", CuentaPredial:="", RegeneraIEPS:=ClienteDesglosaIEPS)
CalculaUsados()
Dim ListaPSCargo = CalculaUsados(Consec)
If ListaPSCargo.Count > 0 Then
CalculaRecepcionUsados(GvRecepcionUsados, CvePS, ListaPSCargo)
End If
Return True
Else
Return False
End If
''NO SIRVE PARA NADA - NO SE USAN LAS VARIABLES - IPP 28 AGOSTO 2017
'For Each gvr As GridViewRow In GVAnticipos.Rows
' Dim total As Decimal = TxtTotal.Text.ToString.ToDecimal
' Dim saldo As Decimal = gvr.DataKey("Saldo").ToDecimal
' Dim maxsaldo As Decimal
' If total > saldo Then
' maxsaldo = saldo
' Else
' maxsaldo = total
' End If
'Next
End Function
#End Region
@@ -4909,7 +4808,7 @@ Partial Class PV
DdlFolioGarantia.DataSource = ObjAcum.DtResultados
DdlFolioGarantia.Items.Insert(0, New ListItem("Seleccione", "-1"))
End If
ObjAcum.Dispose()
DdlFacturas.Items.Insert(0, New ListItem("Sin Factura", "-1"))
@@ -4919,14 +4818,17 @@ Partial Class PV
DdlTipoDefecto.DataSource = GlobalDTAcumTiposDefecto.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa}")
DdlTipoDefecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
GvRecepcionUsados.DataSource = GlobalDTAcumTamaños.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CvePSCargo > 0")
Dim DtTamanios = GlobalDTAcumTamaños.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CvePSCargo > 0")
GvRecepcionUsados.DataSource = DtTamanios
GvRecepcionUsadosModal.DataSource = DtTamanios
ObjAcum.Dispose()
DdlFolioGarantia.DataBind()
DdlTipoUso.DataBind()
DdlTipoDefecto.DataBind()
GvRecepcionUsados.DataBind()
DdlFacturas.DataBind()
GvRecepcionUsados.DataBind()
GvRecepcionUsadosModal.DataBind()
CargaPSAjuste()
@@ -4934,8 +4836,6 @@ Partial Class PV
CreaDTmpDTRecepcionUsados()
DivChkAjuste.Visible = True
End Sub
Private Sub CargaPSAjuste()
@@ -5276,6 +5176,7 @@ Partial Class PV
Private Sub CreaDTmpDTRecepcionUsados()
TmpDTRecepcionUsados = New DataTable
TmpDTRecepcionUsados.Columns.Add("CvePS", GetType(Integer))
TmpDTRecepcionUsados.Columns.Add("CvePSRelacionado", GetType(Integer))
TmpDTRecepcionUsados.Columns.Add("Cantidad", GetType(Decimal))
TmpDTRecepcionUsados.Columns.Add("CveUM", GetType(Integer))
TmpDTRecepcionUsados.Columns.Add("CveVentaDetalle", GetType(Integer))
@@ -5283,34 +5184,66 @@ Partial Class PV
End Sub
Protected Sub BtnRecepcionUsados_Click(sender As Object, e As EventArgs)
TmpDTRecepcionUsados.Clear()
TmpDTRecepcionUsados.AcceptChanges()
'CalculaRecepcionUsados(GvRecepcionUsadosModal)
RegistraScript("$('#DModalRecepcionUsados').modal('hide');")
EmitirImprimirNew()
End Sub
Private Sub CalculaRecepcionUsados(Gv As GridView, CvePS As Integer, ListaPSCargo As List(Of Integer))
If Modalidad = "U" Then
If TmpDTRecepcionUsados.Rows.Count > 0 Then
Dim Elimino As Boolean = False
For Each Row As DataRow In TmpDTRecepcionUsados.Rows
If Row("CvePSRelacionado").ToString().ToEntero() = CvePS Then
Row.Delete()
Elimino = True
End If
Next
If Elimino Then
TmpDTRecepcionUsados.AcceptChanges()
End If
End If
End If
Dim TotalCargos As Decimal = 0
Dim TotalCantidad As Decimal = 0
For Each Gvr As GridViewRow In GvRecepcionUsados.Rows
If Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal > 0 Then
TotalCargos += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal * Gvr.DataKey("Cargo").ToDecimal
TotalCantidad += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal
For Each Gvr As GridViewRow In Gv.Rows
If Gvr.RowType = DataControlRowType.DataRow Then
Dim Row As DataRow = TmpDTRecepcionUsados.NewRow()
Row("CvePS") = Gvr.DataKey("CvePSCargo").ToEntero
Row("Cantidad") = Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal
Row("CveUM") = Gvr.DataKey("CveUM").ToEntero
Row("CveVentaDetalle") = -1
Row("PU") = Gvr.DataKey("Cargo").ToDouble
TmpDTRecepcionUsados.Rows.Add(Row)
If Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal > 0 Then
TotalCargos += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal * Gvr.DataKey("Cargo").ToDecimal
TotalCantidad += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal
Dim Row As DataRow = TmpDTRecepcionUsados.NewRow()
Row("CvePS") = Gvr.DataKey("CvePSCargo").ToEntero
Row("CvePSRelacionado") = CvePS
Row("Cantidad") = Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal
Row("CveUM") = Gvr.DataKey("CveUM").ToEntero
Row("CveVentaDetalle") = -1
Row("PU") = Gvr.DataKey("Cargo").ToDouble
TmpDTRecepcionUsados.Rows.Add(Row)
End If
End If
Next
If TotalCantidad > TmpDT.FiltraParametros("EsCargo = True").SUMD("Cantidad") Then
Dim StrCargos As New StringBuilder
For Each CvePSCargo As Integer In ListaPSCargo
StrCargos.AppendFormat("{0},", CvePSCargo)
Next
StrCargos.Remove(StrCargos.Length - 1, 1)
If TotalCantidad > TmpDT.FiltraParametros($"EsCargo = True AND CvePS IN ({StrCargos})").SUMD("Cantidad") Then
Dim drt As DataRow() = TmpDT.Select("CvePS = " & CvePS)
TmpDT.Rows.Remove(drt(0))
Alert("No puede tener una cantidad mayor a la de los cargos", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
For Each Dr As DataRow In TmpDT.FiltraParametros("EsCargo = True").Rows
For Each Dr As DataRow In TmpDT.FiltraParametros($"EsCargo = True AND CvePS IN ({StrCargos})").Rows
Dim TotalAnterior As Decimal = Dr("Cantidad").ToString.ToDecimal * Dr("PU").ToString.ToDecimal
Dim PUActual As Decimal = (TotalAnterior - TotalCargos) / Dr("Cantidad").ToString.ToDecimal
@@ -5342,8 +5275,7 @@ Partial Class PV
Next
TmpDT.AcceptChanges()
If TotalCargos > 0 Then ' cuando se entrega más valor de usados, que los cargos hechos, se descuenta sobre el PU del producto de venta
For Each Dr As DataRow In TmpDT.FiltraParametros("EsCargo = False").Rows
For Each Dr As DataRow In TmpDT.FiltraParametros($"EsCargo = False AND CvePS={CvePS}").Rows
Dim PUAnterior As Decimal = Dr("Cantidad").ToString.ToDecimal * Dr("PU").ToString.ToDecimal
Dim PUActual As Decimal = PUAnterior - (TotalCargos / Dr("Cantidad").ToString.ToDecimal)
@@ -5365,7 +5297,6 @@ Partial Class PV
drr("IEPS") = Dr("ImporteIEPS")
drr("Total") = (Dr("Cantidad").ToString.ToDecimal * PUActual)
drr("TotalImporte") = Math.Round(Dr("Cantidad").ToString.ToDecimal * PUActual, NumeroDecimales)
End If
If TotalCargos <= 0 Then
@@ -5380,15 +5311,14 @@ Partial Class PV
TmpDTRecepcionUsados.AcceptChanges()
CalculaTotalesVenta()
RegistraScript(String.Format("$('#{0}').modal('hide');", "DModalRecepcionUsados"))
EmitirImprimirNew()
End Sub
Private Sub CalculaUsados()
Private Function CalculaUsados(Consec As Integer) As List(Of Integer)
'If Modalidad = "U" Then
' EliminarUsados(Consec)
'End If
'If ClienteEsDistribuidor Then
Dim ListaPScargo As New List(Of Integer)
Dim DTTamanios As New DataTable
Dim ObjAcum As New ClsAcumuladores
@@ -5396,35 +5326,8 @@ Partial Class PV
If ObjAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
DTTamanios = ObjAcum.DtResultados
Dim DTCvePSCostos = ObjAcum.DtResultados.FiltraParametros("", "", {"CvePSCargo"})
Dim DTCvePSCostos As New DataTable
DTCvePSCostos = ObjAcum.DtResultados.FiltraParametros("", "", {"CvePSCargo"})
If Not TmpDT.Columns.Contains("Eliminar") Then
TmpDT.Columns.Add("Eliminar", GetType(Integer))
End If
For Each drow As DataRow In TmpDT.Rows
For Each drow2 As DataRow In DTCvePSCostos.Rows
If drow("CvePS").ToString.ToEntero = drow2("CvePSCargo").ToString.ToEntero Then
drow("Eliminar") = 1
Exit For
End If
Next
Next
Dim TmpDTView As New DataView(TmpDT)
TmpDTView.RowFilter = "Eliminar = 1"
For Each dRowEliminar As DataRowView In TmpDTView
dRowEliminar.Delete()
Next
TmpDT.AcceptChanges()
Dim ObjProductosServicios As New ClsProductosServicios()
Dim CveUnidadMedidaPSA As Integer = -1
Dim UnidadMedidaPSA As String = "Unidad"
@@ -5438,7 +5341,7 @@ Partial Class PV
Dim PSPSA As String = ""
Dim DTPSTemp As New DataTable '= TmpDT.Clone
'AgregarProductoServicio(1, CveUnidadMedidaPSA, UnidadMedidaPSA, CveClacificacionPSA, ClacificacionPSA, CvePSPSA, PSPSA, "", ImporteCargo, 0, -1, "", CveSubProyectoPSA, SubProyectoPSA)
DTPSTemp.Columns.Add("Cantidad", GetType(Integer))
DTPSTemp.Columns.Add("CveUnidadMedida", GetType(Integer))
DTPSTemp.Columns.Add("UnidadMedida", GetType(String))
@@ -5450,7 +5353,9 @@ Partial Class PV
DTPSTemp.Columns.Add("CveSubProyecto", GetType(Integer))
DTPSTemp.Columns.Add("SubProyecto", GetType(String))
For Each DrowPartidas As DataRow In TmpDT.Rows
Dim ObjProductosServicios As New ClsProductosServicios()
For Each DrowPartidas As DataRow In TmpDT.Select($"Consec = {Consec}")
Dim CveTamanioTemp As Integer = DrowPartidas("CveTamaño").ToString.ToEntero
If CveTamanioTemp > 0 Then
@@ -5512,25 +5417,74 @@ Partial Class PV
End If
Next
ObjProductosServicios.Dispose()
Dim ModalidadBack = Modalidad
'CAMBIA LA MODALIDAD PARA AGREGAR LOS PS CARGO
If Modalidad = "U" Then
Modalidad = "A"
End If
For Each drowPsTamaños As DataRow In DTPSTemp.Rows
Modalidad = "A"
If drowPsTamaños("PU").ToString.ToDecimal > 0 Then
AgregarProductoServicio(drowPsTamaños("Cantidad").ToString.ToEntero, drowPsTamaños("CveUnidadMedida").ToString.ToEntero, drowPsTamaños("UnidadMedida").ToString,
Dim Concec = AgregarProductoServicio(drowPsTamaños("Cantidad").ToString.ToEntero, drowPsTamaños("CveUnidadMedida").ToString.ToEntero, drowPsTamaños("UnidadMedida").ToString,
drowPsTamaños("CveClacificacion").ToString.ToEntero, drowPsTamaños("Clacificacion").ToString, drowPsTamaños("CvePS").ToString.ToEntero,
drowPsTamaños("PS").ToString, "", drowPsTamaños("PU").ToString.ToDecimal, 0, -1, "", drowPsTamaños("CveSubProyecto").ToString.ToEntero,
drowPsTamaños("SubProyecto").ToString, EsCargo:=True)
If Consec > 0 Then
ListaPScargo.Add(drowPsTamaños("CvePS").ToString.ToEntero)
End If
End If
Next
ObjProductosServicios.Dispose()
Modalidad = ModalidadBack
End If
ObjAcum.Dispose()
' End If
End Sub
Return ListaPScargo
End Function
Private Sub EliminarUsados(Consec As Integer)
Dim DTTamanios As New DataTable
Dim ObjAcum As New ClsAcumuladores
If ObjAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
DTTamanios = ObjAcum.DtResultados
Dim DTCvePSCostos = ObjAcum.DtResultados.FiltraParametros("", "", {"CvePSCargo"})
If Not TmpDT.Columns.Contains("Eliminar") Then
TmpDT.Columns.Add("Eliminar", GetType(Integer))
End If
For Each drow As DataRow In TmpDT.FiltraParametros($"Consec ={Consec}").Rows
For Each drow2 As DataRow In DTCvePSCostos.Rows
If drow("CvePS").ToString.ToEntero = drow2("CvePSCargo").ToString.ToEntero Then
drow("Eliminar") = 1
Exit For
End If
Next
Next
Dim TmpDTView As New DataView(TmpDT)
TmpDTView.RowFilter = "Eliminar = 1"
For Each dRowEliminar As DataRowView In TmpDTView
For Each RowRecepcionUsados As DataRow In TmpDTRecepcionUsados.Rows
If (RowRecepcionUsados("CvePS").ToString() = dRowEliminar("CvePS").ToString()) Then
RowRecepcionUsados.Delete()
End If
Next
dRowEliminar.Delete()
Next
TmpDT.AcceptChanges()
TmpDTRecepcionUsados.AcceptChanges()
End If
ObjAcum.Dispose()
End Sub
#End Region

View File

@@ -4099,6 +4099,13 @@ Partial Class Ventas
If DdlTipoComprobante.SelectedValue.Contiene("Rem") And GvRemisiones.Rows.Count > 0 Then
LbCancelarDocumento.Visible = False
End If
'SI TIENE REMISIONES Y VA A CANCELAR ES NECESARIO EL MOVIMIENTO DE DEVOLUCION
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant") AndAlso GvRemisiones.Rows.Count > 0 Then
ChkDevAlm.Checked = True
ChkDevAlm.Enabled = False
End If
End If
tdVigencia.Visible = DdlTipoComprobante.SelectedValue.Contiene("Cot")
@@ -9007,7 +9014,7 @@ Partial Class Ventas
End If
End If
If ErrorList.Count = 0 AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Ant") Then
If ErrorList.Count = 0 AndAlso factura.TipoDocto.Contiene("Ing", "Ant") Then
'Agregamos las remisiones a la tabla
If DtRemisionesPS IsNot Nothing AndAlso DtRemisionesPS.Rows.Count > 0 AndAlso ErrorList.Count = 0 Then
Dim CveVentaDetalle As Integer = 0
@@ -9030,7 +9037,7 @@ Partial Class Ventas
End If
If DTRemisiones IsNot Nothing AndAlso DTRemisiones.Rows.Count > 0 AndAlso ErrorList.Count = 0 Then
If DTRemisiones IsNot Nothing AndAlso DTRemisiones.Rows.Count > 0 AndAlso ErrorList.Count = 0 AndAlso factura.TipoDocto.Contiene("Ing", "Ant") Then
Dim dt As DataTable = DTRemisiones.FiltraParametros("Aplicado = True")
If dt.Rows.Count > 0 Then
@@ -17766,6 +17773,7 @@ Partial Class Ventas
Next
End If
ObjFactura.CveAlmacenDevolucion = CveAlmacenDevolucion
If ChkDevAlm.Checked Then
ObjFactura.CveAlmacenDevolucion = CveAlmacenDevolucion
End If

View File

@@ -1074,6 +1074,11 @@ Public Class WSApp
ObjFactura.Timbre = PreParaTimbre(ObjFactura)
ObjFactura.CveContratoSecciones = ""
'BORRAR
ObjFactura.DtRecepcionUsados = New DataTable
ObjFactura.DtRecepcionUsados.Columns.Add("CvePS", GetType(Integer))
Catch ex As Exception
Retorno.Mensajes.Add(ex.ToString())
Return Nothing
@@ -1167,6 +1172,8 @@ Public Class WSApp
TmpDT.Columns.Add("ClaveSATFraccionArancelariaDescripcion", GetType(String))
TmpDT.Columns.Add("ClaveSATUnidadAduanaDescripcion", GetType(String))
TmpDT.Columns.Add("CveTamaño", GetType(Double))
Try
For Each PS As MVentaProductos In ListaPS
Dim Row As DataRow = AgregarProductoServicio(Retorno, TmpDT, PS, CveEmpresa, CvePrecioLista, CveSubProyecto, ClienteRetIVA:=ClienteRetIVA, ClienteRetISR:=ClienteRetISR)