Compras Local

This commit is contained in:
Oscar Irigoyen
2023-06-02 09:30:00 -07:00
33 changed files with 3310 additions and 2922 deletions

View File

@@ -242,7 +242,10 @@
<label for="<%= DdlMarca.ClientID.ToString()%>">Marca:</label>
<i></i>
</div>
<div class="form-group form-md-line-input input-iconright">
<label>Aplica para Venta:</label>
<asp:CheckBox ID="ChkAplicaParaVenta" CssClass="make-switchsd" data-size="small" runat="server" Checked="True" />
</div>
<div class="form-group form-md-line-input input-iconright col-xs-3">
<asp:TextBox ID="TxtVentaMinima" CssClass="form-control " runat="server"></asp:TextBox>
<%--<ajax:FilteredTextBoxExtender ID="FTBETVentaMinima" TargetControlID="TxtVentaMinima" FilterType="Numbers" runat="server" ValidChars=".," />--%>
@@ -252,7 +255,6 @@
<div class="row">
<div class=" col-md-12">
<div runat="server" id="DivCompuesto" class="form-group form-md-line-input input-iconright" visible="false">
<asp:DropDownList ID="DdlCompuesto" AppendDataBoundItems="true" CssClass="form-control input-sm select2me" runat="server" DataTextField="Compuesto" DataValueField="CveCompuesto" Width="206px" Height="22px">
<asp:ListItem Text="Seleccione" Value="-1"></asp:ListItem>
@@ -262,8 +264,7 @@
</div>
</div>
</div>
<br />
</div>
<div class="row" runat="server" id="divRowRSCO" visible="false" >
<div class=" col-md-6">
@@ -299,22 +300,15 @@
<ajax:ValidatorCalloutExtender ID="CvcTxtFechaVigenciaRSCO" runat="server" HighlightCssClass="vco" TargetControlID="CvTxtFechaVigenciaRSCO" Width="300px"></ajax:ValidatorCalloutExtender>
<label for="<%= TxtFechaVigenciaRSCO.ClientID.ToString() %>" style="margin-top:-6px" >Fecha de Vigencia:</label>
</div>
</div>
</div>
<div class="form-group form-md-line-input input-iconright col-xs-3" id="divLitraje" visible="false" runat="server">
<asp:TextBox ID="TxtLitraje" CssClass="form-control " runat="server" ></asp:TextBox>
<label class="truncate" style="padding-left: 16px;" for="<%= TxtLitraje.ClientID.ToString()%>">Litraje:</label>
<i></i>
</div>
<br />
<div class="form-group">
<label>Aplica para Venta:</label>
<asp:CheckBox ID="ChkAplicaParaVenta" CssClass="make-switchsd" data-size="small" runat="server" Checked="True" />
</div>
</div>
</div>
</div>
</div>
@@ -541,15 +535,15 @@
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel HeaderText="Precio y Utilidad" ID="TabPU" runat="server">
<ajax:TabPanel HeaderText="Impuestos" ID="TabPU" runat="server">
<ContentTemplate>
<div class="row">
<div class="col-md-3">
<div class="col-md-4">
<div class="portlet xspadding light bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-briefcase font-green"></i>
<span class="caption-subject bold uppercase">Costos del Producto</span>
<span class="caption-subject bold uppercase">Impuestos</span>
</div>
<div class="actions">
<div class="btn-group">
@@ -557,7 +551,7 @@
</div>
</div>
<div class="portlet-body form">
<div class="form-group form-md-line-input input-iconright">
<div class="form-group form-md-line-input input-iconright" style="display:none;">
<asp:TextBox ID="TxtPrecio" CssClass="form-control" runat="server" MaxLength="10" Text="0"></asp:TextBox>
<label for="<%= TxtPrecio.ClientID.ToString()%>">Precio:</label><asp:RequiredFieldValidator ID="RFVPrecio" runat="server" ControlToValidate="TxtPrecio" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Precio''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="REVPrecio" runat="server" ControlToValidate="TxtPrecio" Display="None" EnableClientScript="True" ErrorMessage="El campo <b>''Precio''</b> no tiene el formato correcto, por favor corrija e intente de nuevo (Solo formato numérico)." ValidationGroup="GrpGuardar" ValidationExpression="^[0-9]{1,15}(?:\.[0-9]{1,4})?$" />
@@ -566,7 +560,7 @@
<i>$</i>
</div>
<div class="form-group form-md-line-input input-iconright">
<div class="form-group form-md-line-input input-iconright" style="display:none;">
<asp:TextBox ID="TxtPrecioMinimo" CssClass="form-control" runat="server" MaxLength="10" Text="0"></asp:TextBox>
<label for="<%= TxtPrecioMinimo.ClientID.ToString()%>">Precio Minimo:</label><asp:RequiredFieldValidator ID="RFVTxtPrecioMinimo" runat="server" ControlToValidate="TxtPrecioMinimo" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Precio Minimo''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="REVTxtPrecioMinimo" runat="server" ControlToValidate="TxtPrecio" Display="None" EnableClientScript="True" ErrorMessage="El campo <b>''Precio''</b> no tiene el formato correcto, por favor corrija e intente de nuevo (Solo formato numérico)." ValidationGroup="GrpGuardar" ValidationExpression="^[0-9]{1,15}(?:\.[0-9]{1,4})?$" />
@@ -576,10 +570,10 @@
<i>$</i>
</div>
<div class="form-group form-md-line-input input-iconright">
<div class="row" id="DivObjetoImpuesto" runat="server" visible="false">
<div class="row" >
<div class="col-md-12">
<div class="form-group form-md-line-input input-iconright">
<label for="<%= DdlObjetoImpuesto.ClientID.ToString()%>">Obj.Imp:</label>
<label for="<%= DdlObjetoImpuesto.ClientID.ToString()%>">Objeto. Impuesto:</label>
<asp:DropDownList ID="DdlObjetoImpuesto" CssClass="form-control input-sm select2me" Width="100%" runat="server" DataValueField="CveObjetoImpuesto" DataTextField="CodigoObjetoImpuestoTexto" >
</asp:DropDownList>
</div>
@@ -603,51 +597,32 @@
</div>
</div>
</div>
<i></i>
<%--<div class="form-group form-md-line-input input-iconright">
<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>
<asp:ListItem Text="Exento de IVA" Value="0"></asp:ListItem>
</asp:DropDownList>
<label for="<%= DdlIVA.ClientID.ToString()%>">IVA:</label>
<i></i>
</div>--%>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtRetIVA" CssClass="form-control" runat="server" MaxLength="7" Text="0"></asp:TextBox>
<label for="<%= TxtRetIVA.ClientID.ToString()%>">Retención de IVA:</label><asp:RequiredFieldValidator ID="RFVRetIVA" runat="server" ControlToValidate="TxtRetIVA" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Retención de IVA''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVRetIVA" runat="server" ControlToValidate="TxtRetIVA" Display="None" ErrorMessage="El campo <b>''Retención de IVA''</b> no tiene el formato correcto, por favor corrija e intente de nuevo (Solo formato numérico)." Operator="DataTypeCheck" Type="Currency" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCRetIVA1" runat="server" HighlightCssClass="vco" TargetControlID="RFVRetIVA" Width="300px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCRetIVA2" runat="server" HighlightCssClass="vco" TargetControlID="RFVRetIVA" Width="300px"></ajax:ValidatorCalloutExtender>
<i>%</i>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtRetISR" CssClass="form-control" runat="server" MaxLength="7" Text="0"></asp:TextBox>
<label for="<%= TxtRetISR.ClientID.ToString()%>">Retención de ISR:</label><asp:RequiredFieldValidator ID="RFVRetISR" runat="server" ControlToValidate="TxtRetISR" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Retención de ISR''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CVRetISR" runat="server" ControlToValidate="TxtRetISR" Display="None" ErrorMessage="El campo <b>''Retención de ISR''</b> no tiene el formato correcto, por favor corrija e intente de nuevo (Solo formato numérico)." Operator="DataTypeCheck" Type="Currency" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" HighlightCssClass="vco" TargetControlID="RFVRetISR" Width="300px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender3" runat="server" HighlightCssClass="vco" TargetControlID="RFVRetISR" Width="300px"></ajax:ValidatorCalloutExtender>
<i>%</i>
</div>
<%--
<div class="form-group form-md-line-input input-iconright col-xs-3">
<asp:TextBox ID="TxtRetISR" CssClass="form-control" runat="server"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FBETRetISR" TargetControlID="TxtRetISR" FilterType="Numbers" runat="server" />
<label class="truncate" style="padding-left: 16px;" for="<%= TxtRetISR.ClientID.ToString()%>">RetISR:</label>
<i></i>
</div>--%>
<div class="row">
<div class="col-md-6">
<label for="<%= TxtRetIVA.ClientID.ToString()%>">Retención de IVA:</label><asp:RequiredFieldValidator ID="RFVRetIVA" runat="server" ControlToValidate="TxtRetIVA" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Retención de IVA''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:TextBox ID="TxtRetIVA" CssClass="form-control input-sm" runat="server" Width="75px" MaxLength="7" Text="0"></asp:TextBox>
<asp:CompareValidator ID="CVRetIVA" runat="server" ControlToValidate="TxtRetIVA" Display="None" ErrorMessage="El campo <b>''Retención de IVA''</b> no tiene el formato correcto, por favor corrija e intente de nuevo (Solo formato numérico)." Operator="DataTypeCheck" Type="Currency" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCRetIVA1" runat="server" HighlightCssClass="vco" TargetControlID="RFVRetIVA" Width="300px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCRetIVA2" runat="server" HighlightCssClass="vco" TargetControlID="RFVRetIVA" Width="300px"></ajax:ValidatorCalloutExtender>
<i>%</i>
</div>
<div class="col-md-6">
<label for="<%= TxtRetISR.ClientID.ToString()%>">Retención de ISR:</label><asp:RequiredFieldValidator ID="RFVRetISR" runat="server" ControlToValidate="TxtRetISR" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Retención de ISR''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<asp:TextBox ID="TxtRetISR" CssClass="form-control input-sm" Width="75px" runat="server" MaxLength="7" Text="0"></asp:TextBox>
<asp:CompareValidator ID="CVRetISR" runat="server" ControlToValidate="TxtRetISR" Display="None" ErrorMessage="El campo <b>''Retención de ISR''</b> no tiene el formato correcto, por favor corrija e intente de nuevo (Solo formato numérico)." Operator="DataTypeCheck" Type="Currency" ValidationGroup="GrpGuardar"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" HighlightCssClass="vco" TargetControlID="RFVRetISR" Width="300px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender3" runat="server" HighlightCssClass="vco" TargetControlID="RFVRetISR" Width="300px"></ajax:ValidatorCalloutExtender>
%
</div>
</div>
<div class="row">
<label class="col-md-4">¿Aplica IEPS?</label>
<div class="col-md-1">
<asp:CheckBox ID="ChkAplicaIeps" CssClass="" AutoPostBack="true" data-size="small" runat="server" Text=" " /></td>
<asp:CheckBox ID="ChkAplicaIeps" CssClass="" AutoPostBack="true" data-size="small" runat="server" Text=" " />
</div>
<label class="col-md-4">¿Graba en IVA?</label>
<div class="col-md-1">
<asp:CheckBox ID="ChkIepsIVA" CssClass="" Enabled="false" data-size="small" runat="server" Text=" " /></td>
<asp:CheckBox ID="ChkIepsIVA" CssClass="" Enabled="false" data-size="small" runat="server" Text=" " />
</div>
</div>
<div class="form-group form-md-line-input input-iconright">
@@ -660,12 +635,7 @@
<asp:ListItem Text="9%" Value="0.09"></asp:ListItem>
</asp:DropDownList>
<label for="<%= DdlIEPSPorcentaje.ClientID.ToString()%>">IEPS Porcentaje:</label>
</div>
<div class="form-group form-md-line-input input-iconright" title="Esta retención tendrá efecto en la facturación siempre y cuando el cliente al cual se facturará tenga activada la opción de Retiene 6% de iva por servicio">
<label>Retiene 6% de IVA por Servicios</label>
<asp:CheckBox ID="ChkEsOutSourcing" CssClass="make-switchsd" data-size="small" runat="server" Checked="False" />
</div>
</div>
<div class="form-group form-md-line-input input-iconright" title="El precio no está determinado por el valor de la lista de precio, este es manual.">
<label>Precio Libre de Lista</label>
<asp:CheckBox ID="ChkPrecioLibre" CssClass="make-switchsd" data-size="small" runat="server" Checked="False" />
@@ -673,7 +643,7 @@
</div>
</div>
</div>
<div class="col-md-3">
<div class="col-md-4">
<div class="portlet xspadding light bordered">
<div class="portlet-title">
<div class="caption font-green">
@@ -719,8 +689,7 @@
</div>
</div>
</div>
<div class="col-md-3">
<div class="col-md-4" runat="server" id="divIEPS" visible="false">
<div class="portlet light smmallpadding traspasorow bordered">
<div class="portlet-title">
<div class="caption font-green">
@@ -882,7 +851,7 @@
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel HeaderText="Contabilidad - Inventarios" ID="TabContabilidad" runat="server">
<ajax:TabPanel HeaderText="Inventarios" ID="TabContabilidad" runat="server">
<ContentTemplate>
<asp:UpdatePanel runat="server" ID="UpConta" UpdateMode="Conditional">
<ContentTemplate>
@@ -1031,30 +1000,6 @@
</div>
</div>
<div class="col-md-6">
<div class="portlet xspadding light bordered">
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-briefcase font-green"></i>
<span class="caption-subject bold uppercase">Concepto Relacionado</span>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
</div>
<div class="portlet-body">
<div class="row">
<label class="col-md-4 truncate">Concepto:</label>
<div class="col-md-8">
<asp:DropDownList ID="DdlConceptoRelacionado" CssClass="form-control input-sm select2me" Width="50%" runat="server" AppendDataBoundItems="true" DataTextField="ConceptoContable" DataValueField="CveConceptoContable">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
</div>
</div>
</div>
<br />
<div class="portlet xspadding light bordered">
<div class="portlet-title">
<div class="caption font-green">
@@ -1093,47 +1038,24 @@
</div>
<div class="actions">
<div class="btn-group">
<asp:LinkButton runat="server" ID="LnkCPLimpiarConfiguracion" OnClick="LnkCPLimpiarConfiguracion_Click" CssClass="Texto">Limpiar datos</asp:LinkButton>
</div>
</div>
</div>
<div class="portlet-body">
<div class="row">
<div class="col-md-12">
<table style="width: 100%">
<tr>
<td style="width: 25%"></td>
<td style="width: 25%"></td>
<td style="width: 25%"></td>
<td style="width: 25%; text-align: left!important">
<asp:LinkButton runat="server" ID="LnkCPLimpiarConfiguracion" OnClick="LnkCPLimpiarConfiguracion_Click" CssClass="Texto">Limpiar datos</asp:LinkButton></td>
</tr>
</table>
</div>
</div>
<br />
<div class="portlet-body">
<div class="row">
<label class="col-md-4 truncate">Material Peligroso:</label>
<div class="col-md-8">
<ADS:Dropdownlost ID="DdlMaterialPeligroso" runat="server" CssStyle="width: 100%;" DataTextField="ClaveMaterialPeligroDescripcion" DataValueField="CveMaterialPeligroso"></ADS:Dropdownlost>
</div>
</div>
<div class="row">
<div class="row form-md-line-input">
<label class="col-md-4 truncate">Embalaje:</label>
<div class="col-md-8">
<ADS:Dropdownlost ID="DdlEmbalaje" runat="server" CssStyle="width: 100%;" DataTextField="ClaveEmbalajeDescripcion" DataValueField="CveEmbalaje"></ADS:Dropdownlost>
</div>
</div>
<div class="row">
<div class="row form-md-line-input">
<label class="col-md-4 truncate">Peso en Kg:</label>
<div class="col-md-8">
<asp:TextBox ID="TxtPesoKg" runat="server" Width="60px" Class="form-control input-sm"></asp:TextBox>

View File

@@ -248,7 +248,6 @@ Partial Class ProductosyServicios
'CargaFamilia(ViewState("CveSubFamilia").ToString.ToEntero)
CargaSucursaless()
CargaImpuestosLocales()
CargaConceptoRelacionado()
If UsuarioActual.TienePermisoProceso(122) Then
BtnEliminar.Visible = False
@@ -365,6 +364,10 @@ Partial Class ProductosyServicios
CargaPSAdicionalesVigencias()
End If
If UsuarioActual.Empresa.Funcionalidad(713) = "1" Then '' empresa deduce IEPS
divIEPS.Visible = True
End If
If UsuarioActual.CveEmpresa = 13 Then
DivPSAdicionalVigencia.Visible = True
LtlPSAdicionalVigencia.Text = "Producto Relacionado:"
@@ -383,7 +386,6 @@ Partial Class ProductosyServicios
CargaCombosSeccionAlmacen()
DivObjetoImpuesto.Visible = True
DdlObjetoImpuesto.DataSource = GlobalDTSATObjetosImpuestos
DdlObjetoImpuesto.DataBind()
DdlObjetoImpuesto.SelectedValue = "2" 'se sugiere este valor, que sería el más utilizado
@@ -794,10 +796,6 @@ Partial Class ProductosyServicios
End If
End If
End Sub
Private Sub CargaConceptoRelacionado()
DdlConceptoRelacionado.DataSource = GlobalDTContaConceptosContables(-1)
DdlConceptoRelacionado.DataBind()
End Sub
Private Sub CargarMetodosInv()
ddlMetodos.DataSource = If(UsuarioActual.CveEmpresa.Contiene(72, 80), GlobalDTInvMetodosInventario.FiltraParametros("CveMetodoInventario IN (1,5)"), GlobalDTInvMetodosInventario)
ddlMetodos.DataBind()
@@ -948,7 +946,6 @@ Partial Class ProductosyServicios
lbTitulo.Text = $"{lbTitulo.Text}{ObjProductosServicios.PS}"
LtProductoUnificar.Text = ObjProductosServicios.PS
ddlMetodos.SelectedValue = ObjProductosServicios.CveMetodoInventario.ToString
DdlConceptoRelacionado.SelectedValueExist(ObjProductosServicios.CveConceptoContable.ToString)
DdlProveedor.SelectedValue = ObjProductosServicios.CveProveedorCompra.ToString
DdlProveedor.SelectedText = ObjProductosServicios.ProveedorCompra
@@ -1045,21 +1042,16 @@ Partial Class ProductosyServicios
CargaCaracteristicas()
LnkUnificar.Visible = True
ChkEsOutSourcing.Checked = ObjProductosServicios.EsOutSourcing
ChkPrecioLibre.Checked = ObjProductosServicios.PrecioLibre
If UsuarioActual.Empresa.Funcionalidad(143) = "1" Then
TxtRegistroRSCO.Text = ObjProductosServicios.DtResultados.Rows(0)("RegistroRSCO").ToString
ChkFechaIndeterminadaRSCO.Checked = Boolean.Parse(ObjProductosServicios.DtResultados.Rows(0)("VigenciaIndeterminadaRSCO").ToString)
DivRegistroRSCO1.Visible = True
DivRegistroRSCO2.Visible = True
If ChkFechaIndeterminadaRSCO.Checked Then
TxtFechaVigenciaRSCO.Text = "01/01/1900"
Else
@@ -1070,18 +1062,11 @@ Partial Class ProductosyServicios
TxtFechaVigenciaRSCO.Text = ""
End If
End If
Else
TxtRegistroRSCO.Text = ""
TxtFechaVigenciaRSCO.Text = ""
ChkFechaIndeterminadaRSCO.Checked = False
End If
Else
Alert("El Producto o Servicio Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia)
RegistraScript("$('#C_Tab_TabPaquetes_tab').css('display' , 'none')")
@@ -1467,7 +1452,7 @@ Partial Class ProductosyServicios
TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True,
ChkAplicaParaVenta.Checked, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveMetodoInv, EsPaquete, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero,
FuePorXML:=False, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim,
AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero,
AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal,
CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToDecimal,
CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal,
CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero,
@@ -1475,7 +1460,7 @@ Partial Class ProductosyServicios
CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(),
CveTipoEmpacado:=DdlEmpacado.SelectedValue.ToEntero(), CveTipoOrganico:=DdlTipoOrganico.SelectedValue.ToEntero(),
ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString,
ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked,
ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString,
AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked, TiempoCaducidad:=TiempoCaducidad,
CvePSAdicionalVigencia:=DdlPSAdicionalVigencia.SelectedValue.ToEntero(), PrecioLibre:=ChkPrecioLibre.Checked,
CveMaterialPeligroso:=DdlMaterialPeligroso.SelectedValue.ToEntero, CveEmbalaje:=DdlEmbalaje.SelectedValue.ToEntero, PesoKg:=TxtPesoKg.Text.ToDecimal, Dimensiones:=TxtDimensiones.Text.Trim,
@@ -1538,7 +1523,7 @@ Partial Class ProductosyServicios
TxtPrecio.Text.Trim.ToDouble, DdlIVA.SelectedValue.ToDouble, (TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, CveProveedor, True,
ChkAplicaParaVenta.Checked, ChkEstado.Checked, UsuarioActual.CveUsuario, CvePS, CveMetodoInv, EsPaquete, DdlSATPS.SelectedValue.ToEntero,
CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarca, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim,
AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal, CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero,
AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal,
CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToDecimal,
CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal,
CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero,
@@ -1546,7 +1531,7 @@ Partial Class ProductosyServicios
CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(),
CveTipoEmpacado:=DdlEmpacado.SelectedValue.ToEntero(), CveTipoOrganico:=DdlTipoOrganico.SelectedValue.ToEntero(),
ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString,
ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked,
ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString,
AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked, TiempoCaducidad:=TiempoCaducidad, 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,
@@ -3136,14 +3121,14 @@ Partial Class ProductosyServicios
(TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, DdlProveedor.txtValue.Value.ToEntero, True, ChkAplicaParaVenta.Checked, UsuarioActual.CveUsuario,
CveEmpresaFranquicia, CveMetodoInv, EsPaquete, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, FuePorXML:=False, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2,
CveMarca:=CveMarcaFranquicia, AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim, AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal,
CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero, CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero,
CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, CveSATPS:=DdlSATPS.SelectedValue.ToEntero,
IEPSGrabaIVA:=ChkIepsIVA.Checked, VentaMinima:=TxtVentaMinima.Text.ToDecimal, CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100),
PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal, CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero,
CveClasificacionDetalle:=CveTipo, CveTamaño:=DdlTamanio.SelectedValue.ToEntero, CveModelo:=CveModelo,
CveMedida:=CveMedida, CveRinTamaño:=CveRin, ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString,
CveObjetoImpuesto:=DdlObjetoImpuesto.SelectedValue.ToEntero,
CveObjetoImpuesto:=DdlObjetoImpuesto.SelectedValue.ToEntero,
ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString,
EsOutSourcing:=ChkEsOutSourcing.Checked, TiempoCaducidad:=TxtTiempoCaducidad.Text.ToEntero()) > 0 Then
TiempoCaducidad:=TxtTiempoCaducidad.Text.ToEntero()) > 0 Then
'Alert(String.Format("Error al agregar el nuevo producto en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")))
Return True
@@ -3156,14 +3141,14 @@ Partial Class ProductosyServicios
(TxtRetIVA.Text.Trim.ToDouble / 100), ChkInventariable.Checked, -1, True, ChkAplicaParaVenta.Checked, ChkEstado.Checked, UsuarioActual.CveUsuario, CvePS, CveMetodoInv,
EsPaquete, DdlSATPS.SelectedValue.ToEntero, CveTipoPS:=DdlTipoPS.SelectedValue.ToEntero, TipoServicio:=-1, CveClasificacion2:=CveClasificacion2, CveMarca:=CveMarcaFranquicia,
AlmacenSeccion:=TxtAlmacenSeccion.Text.Trim, AplicaIEPS:=ChkAplicaIeps.Checked, IEPSPorcentaje:=DdlIEPSPorcentaje.SelectedValue.ToDecimal,
CveConceptoContable:=DdlConceptoRelacionado.SelectedValue.ToEntero, CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked,
CveCompuesto:=DdlCompuesto.SelectedValue.ToEntero, IEPSGrabaIVA:=ChkIepsIVA.Checked,
VentaMinima:=TxtVentaMinima.Text.ToDecimal, CveMoneda:=DdlMoneda.SelectedValue.ToEntero, RetISR:=(TxtRetISR.Text.Trim.ToDouble / 100), PrecioMinimo:=TxtPrecioMinimo.Text.ToDecimal,
CveTipoFactor:=DdlTipoFactor.SelectedValue.ToEntero, CveFraccionArancelaria:=DdlFraccionArancelaria.SelectedValue.ToEntero, CveUsuarioModifico:=UsuarioActual.CveUsuario,
CveClasificacionDetalle:=CveTipo, CveTamaño:=DdlTamanio.SelectedValue.ToEntero, CveModelo:=CveModelo,
CveMedida:=CveMedida, CveRinTamaño:=CveRin, ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString,
CveObjetoImpuesto:=DdlObjetoImpuesto.SelectedValue.ToEntero,
ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString,
EsOutSourcing:=ChkEsOutSourcing.Checked, AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked,
AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked,
TiempoCaducidad:=TxtTiempoCaducidad.Text.ToEntero()) Then
Return True

View File

@@ -2307,6 +2307,15 @@ Partial Class Ventas
ViewState("CveContratoTipo") = value
End Set
End Property
Private Property HabilitaRemisionPublicoGeneral As Integer
Get
Return IfNull(ViewState("HabilitaRemisionPublicoGeneral"), "0", ViewState("HabilitaRemisionPublicoGeneral")).ToString().ToEntero()
End Get
Set(value As Integer)
ViewState("HabilitaRemisionPublicoGeneral") = value
End Set
End Property
#End Region
'#Region "AuxiliarConta"
@@ -6903,6 +6912,8 @@ Partial Class Ventas
If CveVenta <= 0 Then
CalculaLineasAdicionales()
HabilitaRemisionPublicoGeneral = 0
HabilitarRemisionesPublicoGeneral()
End If
@@ -6917,6 +6928,71 @@ Partial Class Ventas
'End If
End Sub
Private Sub HabilitarRemisionesPublicoGeneral()
If UsuarioActual.Empresa.Funcionalidad(381).Trim() <> "" Then
'SI ESTA BLOQUEADO POR AUTORIZACION, HABILITAR LA OPCION DE REMISION PARA PUBLICO EN GENERAL
If UsuarioActual.Empresa.Funcionalidad(381).Trim() = CveCliente.ToString() Then
Dim DeshabilitarAutorizacion As Boolean = CBool(GlobalDTSubProyectos(-1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("DeshabilitaAutorizacion"))
If DdlTipoComprobante.SelectedValue = "PA" AndAlso DeshabilitarAutorizacion Then
If DdlTipoComprobante.Items.FindByValue("Rem") Is Nothing Then
DdlTipoComprobante.Items.Insert(0, New ListItem("Remisión", "Rem"))
End If
DdlTipoComprobante.SelectedValueExist("Rem")
HabilitaRemisionPublicoGeneral = 1
End If
'SI TIENE LA HABILITACION DE REMISION ACTIVA Y LA SUCURSAL NO LO PERMITE
If Not DeshabilitarAutorizacion AndAlso HabilitaRemisionPublicoGeneral = 1 Then
HabilitaRemisionPublicoGeneral = 0
DdlTipoComprobante.SelectedValueExist("PA")
If DdlTipoComprobante.Items.FindByValue("Rem") IsNot Nothing Then
DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Rem"))
End If
End If
UpParametros.Update()
End If
Else
HabilitaRemisionPublicoGeneral = 0
End If
End Sub
Private Function ValidaImportePublicoGeneral() As Boolean
Dim retorno As Boolean = False
If DdlTipoComprobante.SelectedValue = "Rem" AndAlso HabilitaRemisionPublicoGeneral = 1 Then
Dim Total As Decimal = TxtTotal.Text.ToDecimal()
If DdlMoneda.SelectedValue = "1" Then
If Total <= 5000D Then
retorno = True
Else
Alert("No puede generar una remisión con un valor mayor a 5,000 MXN. Debe cambiar el tipo de documento a 'Autorización'", TipoMensaje.MsgAdvertencia)
End If
End If
If DdlMoneda.SelectedValue = "2" Then
If TxtTipoCambio.Text.ToDecimal() > 0 Then
Dim TotalPesos As Decimal = (Total * TxtTipoCambio.Text.ToDecimal())
If TotalPesos <= 5000D Then
retorno = True
Else
Alert($"No puede generar una remisión con un valor mayor a {(5000 / TxtTipoCambio.Text.ToDecimal()).RoundSQL(2)} USD. Debe cambiar el tipo de documento a 'Autorización'", TipoMensaje.MsgAdvertencia)
End If
Else
Alert("No se ha especificado un tipo de cambio", TipoMensaje.MsgAdvertencia)
End If
End If
Else
retorno = True
End If
Return retorno
End Function
Private Sub CargaRelacionadasPendientes()
If CveVenta > 0 AndAlso UsuarioActual.TienePermisoProceso(321) Then
@@ -8420,13 +8496,7 @@ Partial Class Ventas
Dim ClienteRetIVA = Me.ClienteRetIVA
If ClienteRetIVA <= 0 Then
If TmpDT.Rows(e.RowIndex)("EsOutSourcing").ToString() <> "" AndAlso CBool(TmpDT.Rows(e.RowIndex)("EsOutSourcing").ToString()) Then
ClienteRetIVA = 0.06D
DdlTipoRetencion.SelectedValueExist("4")
LblRetIVA.Text = (ClienteRetIVA * 100).FormatoNumero
TrRetIVA.Style.Add("display", "")
DdlTipoRetencion.Visible = True
ElseIf DdlTipoRetencion.SelectedValue.Contiene("1", "2") Then
If DdlTipoRetencion.SelectedValue.Contiene("1", "2") Then
ClienteRetIVA = 0.106667D
ElseIf DdlTipoRetencion.SelectedValue.Contiene("3") Then
ClienteRetIVA = 0.04D
@@ -8838,6 +8908,10 @@ Partial Class Ventas
End If
If Not ValidaImportePublicoGeneral() Then
Exit Sub
End If
If (Me.FacturarSucursal AndAlso DdlSucursalCliente.SelectedValue.ToEntero() > 0 AndAlso (Me.ClienteSucursal IsNot Nothing AndAlso String.IsNullOrEmpty(Me.ClienteSucursal.RFC))) Then
Alert("La sucursal no tiene asignada un RFC.", TipoMensaje.MsgAdvertencia)
Exit Sub
@@ -17985,6 +18059,7 @@ Partial Class Ventas
ObjSubProyectos.Dispose()
CargaVendedores()
HabilitarRemisionesPublicoGeneral()
UpDetalle.Update()
UpEmitirTransitorio.Update()
@@ -19119,10 +19194,7 @@ Partial Class Ventas
End If
If ClienteRetIVA <= 0 Then
If CBool(DrPS("EsOutSourcing").ToString()) Then
ClienteRetIVA = 0.06D
DdlTipoRetencion.SelectedValueExist("4")
ElseIf DdlTipoRetencion.SelectedValue.Contiene("1", "2") Then
If DdlTipoRetencion.SelectedValue.Contiene("1", "2") Then
ClienteRetIVA = 0.106667D
ElseIf DdlTipoRetencion.SelectedValue.Contiene("3") Then
ClienteRetIVA = 0.04D
@@ -19177,7 +19249,6 @@ Partial Class Ventas
Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
Row("CveVentaDetallePedido2") = CveVentaDetallePedido2
Row("CuentaPredial") = CuentaPredial
Row("EsOutSourcing") = DrPS("EsOutSourcing")
Row("EsCargo") = EsCargo
If TmpDT.Columns.Contains("CveMarca") Then
@@ -19429,8 +19500,6 @@ Partial Class Ventas
TmpDT.Columns.Add("CveTamaño", GetType(Integer))
TmpDT.Columns.Add("CveConcepto", GetType(Integer))
TmpDT.Columns.Add("EsOutSourcing", GetType(Boolean))
TmpDT.Columns.Add("EsCargo", GetType(Boolean))
TmpDT.Columns.Add("CveVentaDetalleRNC", GetType(Integer))
@@ -19445,14 +19514,11 @@ Partial Class Ventas
TmpDT.Columns.Add("CveActivoFijo", GetType(Integer))
TmpDT.Columns.Add("AFDepreciacion", GetType(Decimal))
TmpDT.Columns.Add("AFValorInicial", GetType(Decimal))
TmpDT.Columns("EsOutSourcing").DefaultValue = False
TmpDT.Columns("EsCargo").DefaultValue = False
TmpDT.Columns("TieneProntoPago").DefaultValue = "No"
TmpDT.Columns("ImporteProntoPago").DefaultValue = 0
End Sub
Private Sub CreaDTmpC()
DTmpC = New DataTable
@@ -20027,6 +20093,8 @@ Partial Class Ventas
End If
ValidaImportePublicoGeneral()
UPObservaciones.Update()
UpContado.Update()
UpPS.Update()
@@ -20857,6 +20925,13 @@ Partial Class Ventas
If Not OcurrioError Then
If MovimientoPrePoliza AndAlso CveMovimientoInventario > 0 Then
'OcurrioError = Not GeneraPrePolizaMovimientoAlmacen(ObjInventario, ObjConta, ObjContPaq, ObjFactura, ObjFactura.CvePrePoliza, CveMovimientoInventario, CveAlmacen)
Dim CveSubProyectoPrePoliza As Integer = ObjFactura.CveSubProyecto
If CveAlmacen > 0 Then
Dim CveSubProyectoAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=CveAlmacen).FiltroPrimeroValor("CveSubProyecto").ToString().ToEntero()
If CveSubProyectoAlmacen > 0 Then
CveSubProyectoPrePoliza = CveSubProyectoAlmacen
End If
End If
If ObjInventario.GetMovimientosDetalle(CveMovimientoInventario, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then
Dim DtCostos = ObjInventario.DtResultados.Copy
@@ -20885,8 +20960,13 @@ Partial Class Ventas
End If
Try
Dim CveSubProyecto69 As Integer = CveSubProyectoPrePoliza
If UsuarioActual.CveEmpresa = 119 Then
CveSubProyecto69 = ObjFactura.CveSubProyecto
End If
'If ValorInventario <> 0 Then
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovto69, ValorInventario, ValorInventario, 69, ObjFactura.SerieFolio, ObjFactura.SerieFolio, IdCtaContable, CveVenta:=CveVenta, CveCliente:=ObjFactura.CveCliente, CveClasificacion:=RowInv("CveClasificacion").ToString().ToEntero(), CveMovimientoAlmacen:=CveMovimientoInventario, CveSubProyecto:=ObjFactura.CveSubProyecto) Then
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovto69, ValorInventario, ValorInventario, 69, ObjFactura.SerieFolio, ObjFactura.SerieFolio, IdCtaContable, CveVenta:=CveVenta, CveCliente:=ObjFactura.CveCliente, CveClasificacion:=RowInv("CveClasificacion").ToString().ToEntero(), CveMovimientoAlmacen:=CveMovimientoInventario, CveSubProyecto:=CveSubProyecto69) Then
OcurrioError = True
Exit For
End If
@@ -20901,7 +20981,7 @@ Partial Class Ventas
If Not OcurrioError Then
IdCtaContable = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", CveAlmacen)).ToEntero()
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovto69, TotalCosto, TotalCosto, 68, ObjFactura.SerieFolio, ObjFactura.SerieFolio, IdCtaContable, CveVenta:=CveVenta, CveCliente:=ObjFactura.CveCliente, CveMovimientoAlmacen:=CveMovimientoInventario, CveSubProyecto:=ObjFactura.CveSubProyecto) Then
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovto69, TotalCosto, TotalCosto, 68, ObjFactura.SerieFolio, ObjFactura.SerieFolio, IdCtaContable, CveVenta:=CveVenta, CveCliente:=ObjFactura.CveCliente, CveMovimientoAlmacen:=CveMovimientoInventario, CveSubProyecto:=CveSubProyectoPrePoliza) Then
OcurrioError = True
End If
End If
@@ -22640,6 +22720,13 @@ Partial Class Ventas
End If
End If
If NuevaFactura = 1 Then
'SI ES REFACTURACION CON PAGOS NO PERMITIR AGREGAR PAGO
If ObjFacturaNC.Pagado > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(586).ToEntero() = 2 Then
BtnAgregarPago.Visible = False
End If
End If
Case 3 ' TERMINAL
DivTerminal.Visible = True
TxtFechaPago.Text = If(DdlTipoComprobante.SelectedValue = "Rem", Now.AddDays(PlazoCobranzaRemision), Now.AddDays(PlazoCobranza)).ToShortDateString
@@ -22788,6 +22875,14 @@ Partial Class Ventas
UpContado.Update()
End Sub
Private Sub BtnAgregarPago_Click(sender As Object, e As EventArgs) Handles BtnAgregarPago.Click
If NuevaFactura = 1 Then
'SI ES REFACTURACION CON PAGOS NO PERMITIR AGREGAR PAGO
If ObjFacturaNC.Pagado > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(586).ToEntero() = 2 Then
Alert("No se puede agregar un pago a una refacturación con pagos", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
Dim abonado, saldo As Double
Dim total As Decimal = TxtImporteEfectivo.Text.ToDecimal + TxtImporteCredito.Text.ToDecimal + TxtImporteDebito.Text.ToDecimal + TxtImporteCheque.Text.ToDecimal + TxtImporteTransferencia.Text.ToDecimal
@@ -32244,13 +32339,45 @@ Partial Class Ventas
End If
ObjClientes.Dispose()
Dim CveSubProyectoVenta As Integer = DdlSubProyectoDatos.SelectedValue.ToEntero()
Dim SubProyectoVenta As String = DdlSubProyectoDatos.SelectedItem.Text
Dim CveProyectoVenta As Integer = -1
Dim ProyectoVenta As String = ""
If UsuarioActual.CveEmpresa = 119 AndAlso CveSubProyectoVenta > 0 Then
Dim RowSP = GlobalDTSubProyectos(-1, CveSubProyecto:=CveSubProyectoVenta, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("")
If RowSP IsNot Nothing Then
CveProyectoVenta = RowSP("CveProyecto").ToString().ToEntero()
ProyectoVenta = RowSP("Proyecto").ToString()
End If
End If
If DtRemisionesPS IsNot Nothing Then
Dim tCantidad As Decimal = 0
For Each Dr As DataRow In DtRemisionesPS.Select()
Dim CveProyecto As Integer = -1
Dim Proyecto As String = ""
Dim CveSubProyecto As Integer = -1
Dim SubProyecto As String = ""
If UsuarioActual.CveEmpresa = 119 Then
CveProyecto = CveProyectoVenta
Proyecto = ProyectoVenta
CveSubProyecto = CveSubProyectoVenta
SubProyecto = SubProyectoVenta
Else
CveProyecto = Dr("CveProyecto").ToString().ToEntero()
Proyecto = Dr("Proyecto").ToString()
CveSubProyecto = Dr("CveSubProyecto").ToString().ToEntero()
SubProyecto = Dr("SubProyecto").ToString()
End If
tCantidad = If(ChkRemProductos.Checked, GvRemPS.Rows(IndiceGVDataKey(GvRemPS, "CveVentaDetalle", $"{Dr("CveVentaDetalle")}")).FCTextBox("TxtCantidadRem").Text, Dr("Cantidad")).ToString().ToDecimal
AgregarProductoServicio(tCantidad, Dr("CveUM").ToString().ToEntero(), Dr("UM").ToString(), Dr("CveClasificacion").ToString().ToEntero(), Dr("Clasificacion").ToString(),
Dr("CvePS").ToString().ToEntero(), Dr("PS").ToString(), Dr("Obs").ToString(), Dr("PU").ToString().ToDecimal, Dr("Descuento").ToString().ToDecimal,
Dr("CveProyecto").ToString().ToEntero(), Dr("Proyecto").ToString(), Dr("CveSubProyecto").ToString().ToEntero(), Dr("SubProyecto").ToString(),
CveProyecto, Proyecto, CveSubProyecto, SubProyecto,
CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Dr("CveContratoDetalle").ToString().ToEntero(),
CveVentaDetalleRemision:=Dr("CveVentaDetalle").ToString().ToEntero(), RegeneraIEPS:=True)
Next
@@ -34363,8 +34490,6 @@ Partial Class Ventas
tClienteRetIVA = 0.106667D
ElseIf DdlTipoRetencion.SelectedValue.Contiene("3") Then
tClienteRetIVA = 0.04D
ElseIf DdlTipoRetencion.SelectedValue.Contiene("4") AndAlso CBool(RowServicio("EsOutSourcing").ToString()) Then
tClienteRetIVA = 0.06D
ElseIf DdlTipoRetencion.SelectedValue.Contiene("0") Then
tClienteRetIVA = 0.00D
End If