diff --git a/Acarreos/CatChoferes.aspx b/Acarreos/CatChoferes.aspx index 47982c348..740010af5 100644 --- a/Acarreos/CatChoferes.aspx +++ b/Acarreos/CatChoferes.aspx @@ -6,9 +6,7 @@ @@ -19,6 +65,12 @@
  • Excel
  • + +
  • + Personalizar +
  • + + @@ -36,7 +88,7 @@
    -
    +
    @@ -73,7 +125,15 @@
    - + +
    + + + + +
    + +
    @@ -92,14 +152,30 @@
    - +
    + + + +
    + +
    +
    + + Elaboración + Caducidad + +
    + + + + @@ -109,10 +185,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Inventarios/RepProductosPorCaducar.aspx.cs b/Inventarios/RepProductosPorCaducar.aspx.cs index d5e8b486c..8187791ce 100644 --- a/Inventarios/RepProductosPorCaducar.aspx.cs +++ b/Inventarios/RepProductosPorCaducar.aspx.cs @@ -9,6 +9,7 @@ using System.Data; using Microsoft.Reporting.WebForms; using System.Text; + public partial class Inventarios_RepProductosPorCaducar : ClsPaginas { private DataTable DTDatos @@ -30,11 +31,16 @@ public partial class Inventarios_RepProductosPorCaducar : ClsPaginas { CargaFiltros(); CargarDatos(); + CargaAlamacenes(); + } } private void CargarDatos() { + + string Cves_Alamcenes = ddlAlmacen.GetSelectedValuesM(); + DateTime FI = ModExtensiones.MinFecha; if (TxtFechaInicio.Text != "") FI = TxtFechaInicio.Text.ToDate(); @@ -44,7 +50,7 @@ public partial class Inventarios_RepProductosPorCaducar : ClsPaginas // aqui siempre se visualiza la caducidad, sin importar la condición, porque siempre se valida la caducidad ClsInventarios ObjInventarios = new ClsInventarios(); if (ObjInventarios.GetProductosCaducidad(DdlProveedor.SelectedValue.ToEntero(), FI, TxtFechaFin.Text.ToDate(), DdlSucursal.SelectedValue.ToEntero(), - DdlClasificacion.SelectedValue.ToEntero(), CvePS, 1,"1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) + DdlClasificacion.SelectedValue.ToEntero(), CvePS, 1, Cves_Alamcenes, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Opcion:DdlOpcion.SelectedValue.ToEntero())) { GvDatos.DataSource = ObjInventarios.DtResultados; DTDatos = ObjInventarios.DtResultados; @@ -60,6 +66,7 @@ public partial class Inventarios_RepProductosPorCaducar : ClsPaginas CargarSucursales(); CargarClasificaciones(); + } private void CargarFechaText() @@ -89,6 +96,9 @@ public partial class Inventarios_RepProductosPorCaducar : ClsPaginas DdlSucursal.DataSource = get_GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1); DdlSucursal.DataBind(); DdlSucursal.Items.Insert(0, new ListItem("Todas", "-1")); + + + } private void CargarClasificaciones() @@ -104,6 +114,32 @@ public partial class Inventarios_RepProductosPorCaducar : ClsPaginas DdlClasificacion.Items.Insert(0,new ListItem("Todas","-1")); } + + + + private void CargaAlamacenes(int CveSubProyectoFiltro = -1) + { + + ddlAlmacen.Items.Clear(); + + if (CveSubProyectoFiltro > 0) + { + ddlAlmacen.DataSource = get_GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros($"CveSubProyecto = {CveSubProyectoFiltro}"); + } + else + { + ddlAlmacen.DataSource = get_GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1); + } + + ddlAlmacen.DataBind(); + ddlAlmacen.Items.Insert(0, new ListItem("Todos", "-1")); + + UPFiltros.Update(); + } + + + + protected void BtnConsultar_Click(object sender, EventArgs e) { CargarDatos(); @@ -134,6 +170,11 @@ public partial class Inventarios_RepProductosPorCaducar : ClsPaginas @params.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)); @params.Add(new ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)); + @params.Add(new ReportParameter("OcultaCaducidad", ChkTiempoCaducidad.Checked ? "0": "1" )); + + + + var logouri = string.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa); System.IO.FileInfo Imagen = new System.IO.FileInfo(string.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)); if (Imagen.Exists) @@ -148,4 +189,35 @@ public partial class Inventarios_RepProductosPorCaducar : ClsPaginas ImprimirPDF("Empresas/Grales/Formatos/RepProductosCaducidad.rdlc", DTDatos, @params, "Reporte de Productos por Caducar", formato); } + + + + + + protected void DdlSucursal_SelectedIndexChanged(object sender, EventArgs e) + { + CargaAlamacenes(DdlSucursal.SelectedValue.ToEntero()); + } + + + + protected void BtnPersonalizar_Click(object sender, EventArgs e) + { + Personaliza(); + } + + private void Personaliza() + { + if (ChkTiempoCaducidad.Checked) + { + GvDatos.Columns[5].Visible = true; + } + else + { + GvDatos.Columns[5].Visible = false; + } + CargarDatos();//Si no se recarga no se muestran los valores dela la columna de tiempo caducindad laprimera vez que pasa de oculta a mostrarse + UpDatos.Update(); + } + } \ No newline at end of file diff --git a/Inventarios/RepTraspasoEmitido.aspx.cs b/Inventarios/RepTraspasoEmitido.aspx.cs index d4778d08b..f0fd0f8df 100644 --- a/Inventarios/RepTraspasoEmitido.aspx.cs +++ b/Inventarios/RepTraspasoEmitido.aspx.cs @@ -43,7 +43,10 @@ public partial class Inventarios_RepTraspasoEmitido : ClsPaginas if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Cells[6].Text = String.Format("", Encripta(String.Format("OP=DesXmlTra&CVEMOVIMIENTO={0}&EXT={1}&FOLIO={2}&TIPODOCTO={3}", e.Row.DBCampo("CveMovimiento"), "XML",$"Tra-{e.Row.DBCampo("Folio")}","Tra"))); - e.Row.Cells[7].Text = String.Format("", Encripta(String.Format("OP=DesPdfTra&CVEMOVIMIENTO={0}&EXT={1}&FOLIO={2}&TIPODOCTO={3}", e.Row.DBCampo("CveMovimiento"), "PDF", $"Tra-{e.Row.DBCampo("Folio")}", "Tra"))); + if( UsuarioActual.Empresa.Funcionalidad(161) == "1") + e.Row.Cells[7].Text = String.Format("", Encripta(String.Format("OP=CARPOTIMBRE&CVEMOV={0}&EXT={1}&FOLIO={2}&TIPODOCTO={3}", e.Row.DBCampo("CveMovimiento"), "PDF", $"Tra-{e.Row.DBCampo("Folio")}", "Tra"))); + else + e.Row.Cells[7].Text = String.Format("", Encripta(String.Format("OP=DesPdfTra&CVEMOVIMIENTO={0}&EXT={1}&FOLIO={2}&TIPODOCTO={3}", e.Row.DBCampo("CveMovimiento"), "PDF", $"Tra-{e.Row.DBCampo("Folio")}", "Tra"))); if (e.Row.DBCampo("CveEstatusTimbrado").ToEntero()==2) { e.Row.Cells[8].Text = ""; diff --git a/Planeacion/CatSubProyectos.aspx b/Planeacion/CatSubProyectos.aspx index 03c8f97f5..a0f58e6cf 100644 --- a/Planeacion/CatSubProyectos.aspx +++ b/Planeacion/CatSubProyectos.aspx @@ -83,7 +83,7 @@
    @@ -120,6 +120,11 @@
    + +
    + +
    + @@ -180,7 +185,7 @@
    - +
    @@ -273,18 +278,83 @@
    - +
    - + + +
    + + + +
    +
    +
    + + + + + +
    +
    + +
    +
    + + + + + +
    +
    +
    + + +
    + + +
    +
    + + + + +
    +
    +
    + +
    + + + +
    + +
    + +
    + +
    +
    + +
    + + + + +
    + +
    +
    + +
    @@ -322,38 +392,19 @@ - + + + + + +<%-- -
    -
    - - - -
    -
    -
    -
    - - - -
    -
    -
    -
    - - - -
    -
    -
    -
    - - - -
    -
    + + + +
    -
    +
    --%> @@ -375,7 +426,7 @@ - diff --git a/Planeacion/CatSubProyectos.aspx.vb b/Planeacion/CatSubProyectos.aspx.vb index 1d89bde3c..02500da0f 100644 --- a/Planeacion/CatSubProyectos.aspx.vb +++ b/Planeacion/CatSubProyectos.aspx.vb @@ -74,6 +74,7 @@ Partial Class CatSubProyectos CargaEstado() CargaMunicipio() CargaColonia() + CargaLocalidad() CargaPrecioLista() @@ -301,7 +302,9 @@ Partial Class CatSubProyectos DdlMunicipio.SelectedValueExist(GvRow.DataKey("CveMunicipio")) CargaColonia() DdlColonia.SelectedValueExist(GvRow.DataKey("CveColonia")) - AplicaComercio() + CargaLocalidad() + DdlLocalidad.SelectedValueExist(GvRow.DataKey("CveLocalidad")) + 'AplicaComercio() ChkNoVerificaAlmacen.Checked = If(GvRow.DataKey("NoVerificaAlmacen").ToString = "True", True, False) TxtCodigoSucursal.Text = (GvRow.DataKey("CodigoSucursal")) @@ -368,12 +371,52 @@ Partial Class CatSubProyectos Dim IdSeg As Integer If DdlSegmentoNegocio.Visible = True Then IdSeg = DdlSegmentoNegocio.SelectedValue.ToEntero Else IdSeg = 0 - 'CREA SUBPROYECTO + + + Dim StrPais As String = "" + Dim StrEstado As String = "" + Dim StrMunicipio As String = "" + Dim StrLocalidad As String = "" + Dim StrColonia As String = "" + + + + If DdlPais.SelectedValue.ToEntero > 0 Then + StrPais = DdlPais.SelectedItem.Text + Else + StrPais = TxtPais.Text + End If + + If DdlEstado.SelectedValue.ToEntero > 0 Then + StrEstado = DdlEstado.SelectedItem.Text + Else + StrEstado = TxtEstado.Text + End If + + If DdlMunicipio.SelectedValue.ToEntero > 0 Then + StrMunicipio = DdlMunicipio.SelectedItem.Text + Else + StrMunicipio = TxtMunicipio.Text + End If + + If DdlLocalidad.SelectedValue.ToEntero > 0 Then + StrLocalidad = DdlLocalidad.SelectedItem.Text + Else + StrLocalidad = TxtLocalidad.Text + End If + + If DdlColonia.SelectedValue.ToEntero > 0 Then + StrColonia = DdlColonia.SelectedItem.Text + Else + StrColonia = TxtColonia.Text + End If + + 'CREA SUBPROYECTO If HdnModalidad.Value = "I" Then If Not ObjSubproyectos.AddCentroCosto(TxtCentroCosto.Text.Trim, IdSeg, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlProyecto.SelectedValue.ToEntero, Serie:=TxtSerie.Text.Trim, IVA:=TxtIVA.Text.ToDecimal, Calle:=TxtCalle.Text.Trim, NoExt:=TxtNoExt.Text.Trim, - NoInt:=TxtNoInt.Text.Trim, Colonia:=TxtColonia.Text.Trim, Localidad:=TxtLocalidad.Text.Trim, Municipio:=TxtMunicipio.Text.Trim, Estado:=TxtEstado.Text.Trim, Pais:=TxtPais.Text.Trim, CP:=TxtCP.Text.Trim, TipoSucursal:=TipoSucursal, EsSucursal:=EsSucursal, + NoInt:=TxtNoInt.Text.Trim, Colonia:=StrColonia, Localidad:=StrLocalidad, Municipio:=StrMunicipio, Estado:=StrEstado, Pais:=StrPais, CP:=TxtCP.Text.Trim, TipoSucursal:=TipoSucursal, EsSucursal:=EsSucursal, CvePais:=DdlPais.SelectedValue.ToEntero, CveEstado:=DdlEstado.SelectedValue.ToEntero, CveMunicipio:=DdlMunicipio.SelectedValue.ToEntero, CveColonia:=DdlColonia.SelectedValue.ToEntero, AplicaComercioExterior:=ChkAplicaComercioExterior.Checked, Correo:=TxtCorreo.Text, CvePrecioLista:=DdlPrecioLista.SelectedValue.ToEntero, - Telefono:=TxtTelefono.Text, NoVerificaAlmacen:=ChkNoVerificaAlmacen.Checked, CodigoSucursal:=TxtCodigoSucursal.Text.Trim) Then + Telefono:=TxtTelefono.Text, NoVerificaAlmacen:=ChkNoVerificaAlmacen.Checked, CodigoSucursal:=TxtCodigoSucursal.Text.Trim, CveLocalidad:=DdlLocalidad.SelectedValue.ToEntero) Then TieneError = True Else CveSubProyecto = ObjSubproyectos.CveSubProyecto @@ -381,9 +424,9 @@ Partial Class CatSubProyectos Else If (HorarioVerano > -13 And HorarioVerano < 13) And (HorarioInvierno > -13 And HorarioInvierno < 13) Then If Not ObjSubproyectos.UpdateCentroCosto(CveCentroCosto, TxtCentroCosto.Text.Trim, IdSeg, If(ChkEstatus.Checked = True, 1, 0), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlProyecto.SelectedValue.ToEntero, Serie:=TxtSerie.Text.Trim, IVA:=TxtIVA.Text.ToDecimal, Calle:=TxtCalle.Text.Trim, NoExt:=TxtNoExt.Text.Trim, - NoInt:=TxtNoInt.Text.Trim, Colonia:=TxtColonia.Text.Trim, Localidad:=TxtLocalidad.Text.Trim, Municipio:=TxtMunicipio.Text.Trim, Estado:=TxtEstado.Text.Trim, Pais:=TxtPais.Text.Trim, CP:=TxtCP.Text.Trim, TipoSucursal:=TipoSucursal, EsSucursal:=EsSucursal, + NoInt:=TxtNoInt.Text.Trim, Colonia:=StrColonia, Localidad:=TxtLocalidad.Text.Trim, Municipio:=StrMunicipio, Estado:=StrEstado, Pais:=StrPais, CP:=TxtCP.Text.Trim, TipoSucursal:=TipoSucursal, EsSucursal:=EsSucursal, CvePais:=DdlPais.SelectedValue.ToEntero, CveEstado:=DdlEstado.SelectedValue.ToEntero, CveMunicipio:=DdlMunicipio.SelectedValue.ToEntero, CveColonia:=DdlColonia.SelectedValue.ToEntero, AplicaComercioExterior:=ChkAplicaComercioExterior.Checked, Correo:=TxtCorreo.Text, CvePrecioLista:=DdlPrecioLista.SelectedValue.ToEntero, - Telefono:=TxtTelefono.Text, HorarioVerano:=TxtHorarioVerano.Text.ToEntero, HorarioInvierno:=TxtHorarioInvierno.Text.ToEntero, NoVerificaAlmacen:=ChkNoVerificaAlmacen.Checked, CodigoSucursal:=TxtCodigoSucursal.Text.Trim) Then + Telefono:=TxtTelefono.Text, HorarioVerano:=TxtHorarioVerano.Text.ToEntero, HorarioInvierno:=TxtHorarioInvierno.Text.ToEntero, NoVerificaAlmacen:=ChkNoVerificaAlmacen.Checked, CodigoSucursal:=TxtCodigoSucursal.Text.Trim, CveLocalidad:=DdlLocalidad.SelectedValue.ToEntero) Then TieneError = True End If Else @@ -668,7 +711,7 @@ Partial Class CatSubProyectos ChkEsMatriz.Checked = False ChkEsSucursal.Checked = False ChkAplicaComercioExterior.Checked = False - TabComercioExterior.Visible = False + 'TabComercioExterior.Visible = False TxtSerie.Text = "" TxtIVA.Text = "0.16" @@ -689,6 +732,7 @@ Partial Class CatSubProyectos CargaEstado() CargaMunicipio() CargaColonia() + CargaLocalidad() If UsuarioActual.Empresa.UsaContabilidad Then CargaSegmentosNegocio() @@ -699,7 +743,8 @@ Partial Class CatSubProyectos RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarCentroCosto")) End Sub - Private Sub CargaRequired() + Private Sub CargaRequired() + If ChkEsSucursal.Checked = True Then RFVSerie.Enabled = True RFVIVA.Enabled = True @@ -723,6 +768,14 @@ Partial Class CatSubProyectos RFVPais.Visible = True RFVCP.Visible = True + RFVCP.Visible = True + RFVDdlPais.Visible = True + RFVDdlEstado.Visible = True + RFVMunicipio.Visible = True + RFVLocalidad.Visible = True + RFVColonia.Visible = True + + Else RFVSerie.Enabled = False RFVIVA.Enabled = False @@ -746,6 +799,14 @@ Partial Class CatSubProyectos RFVPais.Visible = False RFVCP.Visible = False + + RFVCP.Visible = False + RFVDdlPais.Visible = False + RFVDdlEstado.Visible = False + RFVMunicipio.Visible = False + RFVLocalidad.Visible = False + RFVColonia.Visible = False + End If End Sub @@ -790,36 +851,82 @@ Partial Class CatSubProyectos End If DdlColonia.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlColonia.DataBind() + End Sub + + + Protected Sub CargaLocalidad() + + DdlLocalidad.Items.Clear() + + If DdlEstado.SelectedValue.ToEntero > 0 Then + DdlLocalidad.DataSource = GlobalDTLocalidad(DdlEstado.SelectedValue.ToEntero, DdlMunicipio.SelectedValue.ToEntero) + DdlLocalidad.DataBind() + End If + + DdlLocalidad.Items.Insert(0, New ListItem("Seleccione una", "-1")) + End Sub Protected Sub DdlPais_SelectedIndexChanged(sender As Object, e As EventArgs) CargaEstado() CargaMunicipio() CargaColonia() + CargaLocalidad() End Sub Protected Sub DdlEstado_SelectedIndexChanged(sender As Object, e As EventArgs) CargaMunicipio() CargaColonia() - End Sub - Protected Sub DdlMunicipio_SelectedIndexChanged(sender As Object, e As EventArgs) - CargaColonia() - End Sub - - Protected Sub ChkAplicaComercioExterior_CheckedChanged(sender As Object, e As EventArgs) - AplicaComercio() - End Sub - - Private Sub AplicaComercio() - If ChkAplicaComercioExterior.Checked Then - TabComercioExterior.Visible = True - Else - TabComercioExterior.Visible = False - End If - UpBodyCentroCosto.Update() - End Sub - + CargaLocalidad() + End Sub + + Protected Sub DdlMunicipio_SelectedIndexChanged(sender As Object, e As EventArgs) + CargaColonia() + CargaLocalidad() + End Sub + + 'Protected Sub ChkAplicaComercioExterior_CheckedChanged(sender As Object, e As EventArgs) + ' AplicaComercio() + 'End Sub + + 'Private Sub AplicaComercio() + ' If ChkAplicaComercioExterior.Checked Then + ' TabComercioExterior.Visible = True + ' Else + ' TabComercioExterior.Visible = False + ' End If + ' UpBodyCentroCosto.Update() + 'End Sub + #End Region - - + + Protected Sub BtnValidar_Click(sender As Object, e As EventArgs) + validaCodigoPostal() + End Sub + + + Protected Sub DdlColonia_SelectedIndexChanged(sender As Object, e As EventArgs) + validaCodigoPostal() + End Sub + + Private Sub validaCodigoPostal() + + Dim CPTxt As Integer = TxtCP.Text.ToEntero() + + Dim CveColonia As Integer = DdlColonia.SelectedValue.ToEntero + + If CPTxt > 0 And CveColonia > 0 Then + Dim CP As Integer = GlobalDTColonia("-1").FiltroPrimeroValor("CP", $"CveColonia = {CveColonia}").ToEntero + If CPTxt <> CP Then + Alert("El codigo postal selecionado es diferente del codigo postal de la Colonia.", TipoMensaje.MsgAdvertencia) + End If + End If + + End Sub + + + + + + End Class diff --git a/Ventas/Clientes.aspx b/Ventas/Clientes.aspx index 82c774b14..d05fb3407 100644 --- a/Ventas/Clientes.aspx +++ b/Ventas/Clientes.aspx @@ -2078,6 +2078,11 @@ + + + + +
    @@ -6569,6 +6574,11 @@ $("#C_Tab_TabContratos_tab").click(function () { CargaContratos(); }); } + var isAsyncPostback = Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack(); + if (isAsyncPostback) { + tb_init('a.thickbox'); + } + } $(document).on('mouseenter', ".truncate", function () { var $this = $(this); @@ -7293,6 +7303,13 @@ $get("BtnCambiaPorcentaje").click(); } + + + + + + + diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 81667253d..4d351c6a8 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -1337,6 +1337,15 @@ Partial Class Ventas ViewState("Adjunto") = value End Set End Property + + Private Property ListaAnticiposAplicados As List(Of MAnticipoRelacionado) + Get + Return If(IsNothing(ViewState("ListaAnticiposAplicados")), Nothing, CType(ViewState("ListaAnticiposAplicados"), List(Of MAnticipoRelacionado))) + End Get + Set(value As List(Of MAnticipoRelacionado)) + ViewState("ListaAnticiposAplicados") = value + End Set + End Property #End Region #Region "Propiedades PuntoVenta" @@ -4091,8 +4100,14 @@ Partial Class Ventas CveVenta = If(CveCotizacion > 0, CveCotizacion, CveVenta) CveVenta = If(CvePedido > 0, CvePedido, CveVenta) + Dim DtAntRelacionados As DataTable = Nothing + Dim ObjVentas As New ClsVentas() + If ObjVentas.GetVentasRelacionadas(CveVenta, UsuarioActual.CveEmpresa) Then + DtAntRelacionados = ObjVentas.DtResultados.Copy() + End If + Dim SerieFolioPadre As String If ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa) Then @@ -4527,7 +4542,17 @@ Partial Class Ventas If DbRowVenta("CveTipoRelacion").ToString().ToEntero() > 0 Then TrTipoRelacion.Visible = True DdlTiposRelacion.SelectedValueExist(DbRowVenta("CveTipoRelacion").ToString().ToEntero()) - HdnFolioFiscalNC.Value = DbRowVenta("FolioFiscalPadre").ToString() + + 'RELACIONAR ANTICIPOS APLICADOS + If DbRowVenta("CveTipoRelacion").ToString().ToEntero() = 7 AndAlso DtAntRelacionados IsNot Nothing AndAlso DtAntRelacionados.Rows.Count > 0 Then + DdlTipoRelacionAnticipo.SelectedValueExist(7) + ListaAnticiposAplicados = New List(Of MAnticipoRelacionado)() + For Each RowAnt As DataRow In DtAntRelacionados.Rows + ListaAnticiposAplicados.Add(New MAnticipoRelacionado() With {.CveVenta = RowAnt("CveVentaRelacionada").ToString().ToEntero(), .FolioFiscal = RowAnt("FolioFiscal").ToString()}) + Next + Else + HdnFolioFiscalNC.Value = DbRowVenta("FolioFiscalPadre").ToString() + End If End If If DbRowVenta("Saldo").ToString().ToDouble < 0.01 Then @@ -4617,6 +4642,9 @@ Partial Class Ventas TrTipoRelacion2.Visible = True LblTipoRelacion.Text = DbRowVenta("TipoRelacion").ToString() HdnFolioFiscalNC.Value = DbRowVenta("FolioFiscalPadre").ToString() + + + End If @@ -5051,69 +5079,7 @@ Partial Class Ventas End If 'ACTIVA BOTONERA | DEBE TENER CONCEPTOS PENDIENTES DE FACTURAR - If TmpDT.SUM("CantidadFacturadaCot") < TmpDT.SUM("Cantidad") AndAlso DdlTipoComprobante.SelectedValue.Contiene("Cot") Then - - If UsuarioActual.TienePermisoProceso(199) Then - BtnGenerarRemision.Visible = If(CveEstatus = 10, False, True) - Else - BtnGenerarRemision.Visible = False - End If - - If UsuarioActual.TienePermisoProceso(60) Then BtnsFacturar.Visible = True 'puede facturar - - If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso UsuarioActual.TienePermisoProceso(60) Then - - Select Case UsuarioActual.Empresa.Funcionalidad(135) - Case "1" ' POR SUPERVISOR - Dim ObjVendedores As New ClsVtaVendedores - - If ObjVendedores.GetVendedores(UsuarioActual.CveEmpresa) Then - Dim DTVendedores As New DataTable - If DbRowVenta("CveVendedor").ToString().ToEntero() > 0 AndAlso UsuarioActual.CveVendedor > 0 Then - DTVendedores = ObjVendedores.DtResultados.FiltraParametros(String.Format("CveVendedor = {0}", DbRowVenta("CveVendedor").ToString())).FiltraParametros(String.Format("CveSupervisor = {0}", UsuarioActual.CveVendedor)) - End If - - 'Verifico si es su supervisor asignado - If DTVendedores.Rows.Count > 0 Then - If GlobalDTEstatusFactura().FiltroPrimeroValor("TipoEstatus", $"CveEstatusFactura = {Me.CveEstatus}").ToEntero() = 2 Then - BtnsFacturar.Visible = True - - If UsuarioActual.TienePermisoProceso(199) Then - BtnGenerarRemision.Visible = If(CveEstatus = 10, False, True) - Else - BtnGenerarRemision.Visible = False - End If - - Else - BtnsFacturar.Visible = False - BtnGenerarRemision.Visible = False - End If - End If - - DTVendedores.Dispose() - End If - ObjVendedores.Dispose() - - Case "2" ' POR PERMISO - If GlobalDTEstatusFactura().FiltroPrimeroValor("TipoEstatus", $"CveEstatusFactura = {Me.CveEstatus}").ToEntero() = 2 Then - BtnsFacturar.Visible = UsuarioActual.TienePermisoProceso(60) - - If UsuarioActual.TienePermisoProceso(199) Then - BtnGenerarRemision.Visible = If(CveEstatus = 10, False, True) - Else - BtnGenerarRemision.Visible = False - End If - Else - BtnsFacturar.Visible = False - BtnGenerarRemision.Visible = False - End If - - End Select - - End If - - LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274) - End If + VerificarBtnFacturarCotizacion(DbRowVenta("CveVendedor").ToString().ToEntero()) End If If UsuarioActual.Empresa.Funcionalidad(280) = "1" Then @@ -5227,6 +5193,75 @@ Partial Class Ventas ObjVentas.Dispose() Return Retorno End Function + + Private Sub VerificarBtnFacturarCotizacion(CveVendedor As Integer, Optional MostrarGenerarRemision As Boolean = True) + If TmpDT.SUM("CantidadFacturadaCot") < TmpDT.SUM("Cantidad") AndAlso DdlTipoComprobante.SelectedValue.Contiene("Cot") Then + + If UsuarioActual.TienePermisoProceso(199) Then + BtnGenerarRemision.Visible = If(CveEstatus = 10, False, True) + Else + BtnGenerarRemision.Visible = False + End If + + If UsuarioActual.TienePermisoProceso(60) Then BtnsFacturar.Visible = True 'puede facturar + + If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso UsuarioActual.TienePermisoProceso(60) Then + + Select Case UsuarioActual.Empresa.Funcionalidad(135) + Case "1" ' POR SUPERVISOR + Dim ObjVendedores As New ClsVtaVendedores + + If ObjVendedores.GetVendedores(UsuarioActual.CveEmpresa) Then + Dim DTVendedores As New DataTable + If CveVendedor > 0 AndAlso UsuarioActual.CveVendedor > 0 Then + DTVendedores = ObjVendedores.DtResultados.FiltraParametros(String.Format("CveVendedor = {0}", CveVendedor)).FiltraParametros(String.Format("CveSupervisor = {0}", UsuarioActual.CveVendedor)) + End If + + 'Verifico si es su supervisor asignado + If DTVendedores.Rows.Count > 0 Then + If GlobalDTEstatusFactura().FiltroPrimeroValor("TipoEstatus", $"CveEstatusFactura = {Me.CveEstatus}").ToEntero() = 2 Then + BtnsFacturar.Visible = True + + If UsuarioActual.TienePermisoProceso(199) Then + BtnGenerarRemision.Visible = If(CveEstatus = 10, False, True) + Else + BtnGenerarRemision.Visible = False + End If + + Else + BtnsFacturar.Visible = False + BtnGenerarRemision.Visible = False + End If + End If + + DTVendedores.Dispose() + End If + ObjVendedores.Dispose() + + Case "2" ' POR PERMISO + If GlobalDTEstatusFactura().FiltroPrimeroValor("TipoEstatus", $"CveEstatusFactura = {Me.CveEstatus}").ToEntero() = 2 Then + BtnsFacturar.Visible = UsuarioActual.TienePermisoProceso(60) + + If UsuarioActual.TienePermisoProceso(199) Then + BtnGenerarRemision.Visible = If(CveEstatus = 10, False, True) + Else + BtnGenerarRemision.Visible = False + End If + Else + BtnsFacturar.Visible = False + BtnGenerarRemision.Visible = False + End If + + End Select + + End If + + If BtnGenerarRemision.Visible AndAlso Not MostrarGenerarRemision Then + BtnGenerarRemision.Visible = False + End If + LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274) + End If + End Sub Private Sub CargaTiposDocumentos() DdlTipoComprobante.DataSource = GlobalDTTiposDocumentos() DdlTipoComprobante.DataBind() @@ -6093,9 +6128,9 @@ Partial Class Ventas Using ObjVentas As New ClsVentas If ObjVentas.GetVentasRelacionadas(CveVenta, UsuarioActual.CveEmpresa) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then 'SI LA FACTURA NO SE TIMBRO QUE VUELVA A INTENTAR FACTURAR - If LblSeTimbro.Text = "No" Then - Me.AplicaRelacionManual = True - End If + 'If LblSeTimbro.Text = "No" Then + ' Me.AplicaRelacionManual = True + 'End If For Each RowRelacionada As DataRow In ObjVentas.DtResultados.Rows Dim Row As DataRow = TmpDTFacturasRelacionadas.NewRow() @@ -6250,17 +6285,23 @@ Partial Class Ventas Dim ValorAutorizacion As String = UsuarioActual.Empresa.Funcionalidad(595) 'OBLIGAR PAGO DE CONTADO SI EL CLIENTE NO PERMITE CREDITO - If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso Me.PermiteCredito = False AndAlso ((DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot") AndAlso EsCreaApartirDe)) Then + If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso Me.PermiteCredito = False AndAlso ((DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot") AndAlso EsCreaApartirDe) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso CveVenta > 0)) Then RBLPago.SelectedValue = "2" RBLPago.Items(0).Enabled = False RBLPago_SelectedIndexChanged(Nothing, Nothing) 'GENERAR UNA AUTORIZACIÓN SI EL CLIENTE NO PERMITE CREDITO If UsuarioActual.Empresa.Funcionalidad(595) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(268) Then - DdlTipoComprobante.SelectedValueExistInsert("PA", "Autorización") - DdlTipoComprobante.SelectedValue = "PA" + 'SI LLEGÓ POR LA OPCIÓN DE COTIZACIÓN NO DEBE DE RESTRINGUIR + If IfNull(Request("Op"), "").ToString() = "Cot" OrElse (DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0) Then + DdlTipoComprobante.SelectedValue = "Cot" + BtnGenerarRemision.Visible = False + Else + DdlTipoComprobante.SelectedValueExistInsert("PA", "Autorización") + DdlTipoComprobante.SelectedValue = "PA" + End If + TxtFechaPago.Text = Now.AddDays(PlazoCobranza).ToShortDateString - 'si llegó por la opción de cotización no debe de restringuir - If IfNull(Request("Op"), "").ToString() = "Cot" Then DdlTipoComprobante.SelectedValue = "Cot" + DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing")) If Not UsuarioActual.TienePermisoProceso(325) Then DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant")) @@ -6274,7 +6315,7 @@ Partial Class Ventas 'CARGAR CREDITO DISPONIBLE AL GENERAR UNA FACTURA End If - If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso CveVenta <= 0 AndAlso RBLPago.SelectedValue = "1" AndAlso PermiteCredito Then + If ((DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso CveVenta <= 0) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso CveVenta > 0)) AndAlso RBLPago.SelectedValue = "1" AndAlso PermiteCredito Then 'FUNCIONALIDAD 702 - NO VERIFICAR LIMITE DE CRÉDITO Y CANDADOS DE VENTA If Not UsuarioActual.Empresa.Funcionalidad(702) = "1" Then RBLPago.SelectedValue = "1" @@ -6288,7 +6329,7 @@ Partial Class Ventas LblCreditoDisponible.Text = CreditoDispo.FormatoNumero If PorcentajeCredito > 80 Then TrPorcentajeCredito.Visible = True : LblPorcentajeCredito.Text = $"{PorcentajeCredito.FormatoNumero}%" - If Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "PA") AndAlso (Not UsuarioActual.Empresa.Funcionalidad(702).Contiene("2")) Then + If Not UsuarioActual.TienePermisoProceso(268) AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "PA") OrElse (DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso CveVenta > 0)) AndAlso (Not UsuarioActual.Empresa.Funcionalidad(702).Contiene("2")) Then Dim Vta As New ClsVentas Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa) Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón:

    {0}", Vta.SerieVenta) @@ -6304,7 +6345,7 @@ Partial Class Ventas DdlTipoComprobante.SelectedValue = "PA" TxtFechaPago.Text = Now.AddDays(PlazoCobranza).ToShortDateString 'si llegó por la opción de cotización no debe de restringuir - If IfNull(Request("Op"), "").ToString() = "Cot" Then DdlTipoComprobante.SelectedValue = "Cot" + If IfNull(Request("Op"), "").ToString() = "Cot" OrElse (DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0) Then DdlTipoComprobante.SelectedValue = "Cot" 'quito remisión y factura DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing")) If Not UsuarioActual.TienePermisoProceso(325) Then @@ -6363,7 +6404,7 @@ Partial Class Ventas DdlTipoComprobante.SelectedValue = "PA" TxtFechaPago.Text = Now.AddDays(PlazoCobranza).ToShortDateString 'si llegó por la opción de cotización no debe de restringuir - If IfNull(Request("Op"), "").ToString() = "Cot" Then DdlTipoComprobante.SelectedValue = "Cot" + If IfNull(Request("Op"), "").ToString() = "Cot" OrElse (DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0) Then DdlTipoComprobante.SelectedValue = "Cot" DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing")) If Not UsuarioActual.TienePermisoProceso(325) Then DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant")) @@ -6375,6 +6416,27 @@ Partial Class Ventas LnkPedido2SinFacturar.Visible = False LnkCotizaciones.Visible = False LnkOCs.Visible = False + Else + 'VERIFICAR LIMITE DE CREDITO + If DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0 AndAlso RBLPago.SelectedValue = "1" Then + If CreditoDispo < 0 Then + BtnsFacturar.Visible = False + BtnGenerarRemision.Visible = False + Alert("El límite de crédito se ha excedido", TipoMensaje.MsgAdvertencia) + End If + End If + + If DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0 Then + Dim Vta As New ClsVentas + Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa) + Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón:

    {0}", Vta.SerieVenta) + Vta.Dispose() + If Opcion > 0 Then + BtnsFacturar.Visible = False + BtnGenerarRemision.Visible = False + Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) + End If + End If End If Case "2" 'Autorizacion desde una solicitud del catalogo de autorizaciones 'RMF. validacion temporal @@ -6399,6 +6461,18 @@ Partial Class Ventas Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) End If Else + 'VERIFICAR CANDADOS DE VENTA + If DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0 Then + Dim Vta As New ClsVentas + Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa) + Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón:

    {0}", Vta.SerieVenta) + Vta.Dispose() + If Opcion > 0 Then + BtnsFacturar.Visible = False + BtnGenerarRemision.Visible = False + Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) + End If + End If If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then RBLPago.SelectedValue = "2" @@ -6421,9 +6495,25 @@ Partial Class Ventas End If End If - UPPCreditoDisponible.Update() + Else + + 'VERIFICAR RESTRICCIONES DEL CLIENTE + If DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0 AndAlso RBLPago.SelectedValue = "2" Then + Dim Vta As New ClsVentas + Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa) + Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón:

    {0}", Vta.SerieVenta) + Vta.Dispose() + If Opcion > 0 Then + Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) + End If + BtnsFacturar.Visible = False + BtnGenerarRemision.Visible = False + End If + End If + UPPCreditoDisponible.Update() + 'Puede hacer pedido If CveVenta <= 0 Then If Not UsuarioActual.TienePermisoProceso(177) Then @@ -7130,7 +7220,7 @@ Partial Class Ventas If ValidaExistencia AndAlso DdlTipoComprobante.SelectedValue <> "Cot" And ChkSinExistencia.Checked = False AndAlso Not RegistroxOC Then 'VALIDA EXISTENCIA - If UsuarioActual.CveEmpresa.Contiene({72, 80, 119}) Then + If UsuarioActual.CveEmpresa.Contiene({72, 80, 119, 140, 153}) Then If Existencia - TmpDT.SUM("Cantidad", $"CvePS = {CvePS} AND (EntregaDirecta IS NULL OR EntregaDirecta < 1)") < TxtCantidad.Text.ToDouble Then Alert("No cuenta con la cantidad suficiente en inventario. Cuenta con " + Existencia.FormatoNumero(2) + ".", TipoMensaje.MsgAdvertencia) Exit Sub @@ -8343,6 +8433,11 @@ Partial Class Ventas ' cambiar la condicion para saber si hay seleccionado If (TieneAnticipo AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "2") OrElse NCDescuento Then Try + 'LIMPIA LOS ANTICIPOS RELACIONADOS QUE YA SE APLICARON + If ListaAnticiposAplicados IsNot Nothing Then + ListaAnticiposAplicados.Clear() + End If + Dim CveVentaRelacionada As Integer = -1 If NuevaFactura = 1 Then CveVentaRelacionada = ObjFactura.CveVenta @@ -8822,7 +8917,7 @@ Partial Class Ventas Liga2 = $"document.location.href=""/Ventas/Clientes.aspx?CveCliente={CveCliente}"";" End If - Alert(MensajeAlert.ToString(), TipoMensaje.MsgVentasDosBotones, Liga, TextoConfirmacion:="Seguir Registrando", TextoSegundoBoton:="Ir al Cliente", JSBtn2:=Liga2) + Alert(MensajeAlert.ToString(), TipoMensaje.MsgDosBotones, Liga, TextoConfirmacion:="Seguir Registrando", TextoSegundoBoton:="Ir al Cliente", JSBtn2:=Liga2, ShowCloseButton:=False) MensajeAlert.Clear() @@ -10167,15 +10262,24 @@ Partial Class Ventas 'Amortizacion ObjFactura.CveTipoRelacion = DdlTipoRelacionAnticipo.SelectedValue.ToEntero() - If ObjFactura.CveTipoRelacion > 0 Then - Select Case ObjFactura.CveTipoRelacion - Case 7 - ObjFactura.Timbre.CFDIRelacionados.TipoRelacion = "07" - ObjFactura.Timbre.CFDIRelacionados.TipoRelacionTexto = "07-CFDI por aplicación de anticipo" - ObjFactura.Timbre.CFDIRelacionados.UUID.Add(HdnFolioFiscalNC.Value) - End Select - End If + 'If ObjFactura.CveTipoRelacion > 0 Then + ' Select Case ObjFactura.CveTipoRelacion + ' Case 7 + ' ObjFactura.Timbre.CFDIRelacionados.TipoRelacion = "07" + ' ObjFactura.Timbre.CFDIRelacionados.TipoRelacionTexto = "07-CFDI por aplicación de anticipo" + + ' If ListaAnticiposAplicados IsNot Nothing Then + ' For Each Ant As MAnticipoRelacionado In ListaAnticiposAplicados + ' ObjFactura.Timbre.CFDIRelacionados.UUID.Add(Ant.FolioFiscal) + ' Next + ' End If + + ' 'ObjFactura.Timbre.CFDIRelacionados.UUID.Add(HdnFolioFiscalNC.Value) + ' End Select + + 'End If + ObjFactura.AplicaDevolucion = Me.AplicaDevolucion ObjFactura.CveTipoAmortizacionAnticipo = DdlTipoAmortizacionAnticipo.SelectedValue.ToEntero() @@ -10705,8 +10809,14 @@ Partial Class Ventas Timbre.CFDIRelacionados.UUID.Add(Dr("FolioFiscal").ToString()) Next Else - If Not String.IsNullOrEmpty(HdnFolioFiscalNC.Value.Trim()) Then - Timbre.CFDIRelacionados.UUID.Add(HdnFolioFiscalNC.Value) + If ListaAnticiposAplicados IsNot Nothing AndAlso ListaAnticiposAplicados.Count > 0 Then + For Each Ant As MAnticipoRelacionado In ListaAnticiposAplicados + Timbre.CFDIRelacionados.UUID.Add(Ant.FolioFiscal) + Next + Else + If Not String.IsNullOrEmpty(HdnFolioFiscalNC.Value.Trim()) AndAlso HdnFolioFiscalNC.Value <> "0" Then + Timbre.CFDIRelacionados.UUID.Add(HdnFolioFiscalNC.Value) + End If End If End If @@ -11371,9 +11481,17 @@ Partial Class Ventas 'SI TIENE UN ANTICIPO TAMBIEN DEBE RELACIONARLO If CveAnticipoPadre > 0 Then - If Not ObjVentas.AddVentasRelacionadas(ObjVentas.CveVenta, CveAnticipoPadre) Then - ErrorList.Add("Ocurrió un error al relacionar las ventas entre si comuníquese a Soporte Técnico") + If ListaAnticiposAplicados IsNot Nothing Then + For Each Ant As MAnticipoRelacionado In ListaAnticiposAplicados + If Not ObjVentas.AddVentasRelacionadas(ObjVentas.CveVenta, Ant.CveVenta) Then + ErrorList.Add("Ocurrió un error al relacionar las ventas entre si comuníquese a Soporte Técnico") + End If + Next End If + + 'If Not ObjVentas.AddVentasRelacionadas(ObjVentas.CveVenta, CveAnticipoPadre) Then + ' ErrorList.Add("Ocurrió un error al relacionar las ventas entre si comuníquese a Soporte Técnico") + 'End If End If End If @@ -13484,7 +13602,7 @@ Partial Class Ventas Exit For End If - If CveConceptoAlmacen = 3 AndAlso UsuarioActual.CveEmpresa.Contiene({72, 80, 119}) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing") AndAlso Dr("EntregaDirecta").ToString().ToEntero() < 1 Then + If CveConceptoAlmacen = 3 AndAlso UsuarioActual.CveEmpresa.Contiene({72, 80, 119, 140, 141}) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing") AndAlso Dr("EntregaDirecta").ToString().ToEntero() < 1 Then Existencia = ObjInventario.GetExistenciasPS(CveProducto, CveUnidad, UsuarioActual.CveEmpresa, CveAlmacen, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveVendedor:=DdlVendedor.SelectedValue.ToEntero(), CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeAdelantado:=1, RestringirAlmacenes:=1, ExcluyeApartados:=1) If Existencia < Cantidad Then OcurrioError = True @@ -13711,195 +13829,195 @@ Partial Class Ventas Return ErrorPrepoliza End Function - Private Function generaNC(ByRef ObjVentas As ClsVentas, ByRef ObjConta As ClsContabilidad, ByRef ObjInventario As ClsInventarios, ByRef ObjContr As ClsContratos, ByRef ObjContPaq As ClsContPAQi, ByVal factura As Modelos.Factura, ByRef ObjBancos As ClsBancos, ByRef ObjEventos As ClsOIEventos) As List(Of Object) - Dim Obj As New List(Of Object) - Dim CveVentaNueva As Integer = ObjVentas.CveVenta - Dim BanderaGeneraNC As Boolean = True - 'If UsuarioActual.CveEmpresa.Contiene(1, 119) Then BanderaGeneraNC = True + 'Private Function generaNC(ByRef ObjVentas As ClsVentas, ByRef ObjConta As ClsContabilidad, ByRef ObjInventario As ClsInventarios, ByRef ObjContr As ClsContratos, ByRef ObjContPaq As ClsContPAQi, ByVal factura As Modelos.Factura, ByRef ObjBancos As ClsBancos, ByRef ObjEventos As ClsOIEventos) As List(Of Object) + ' Dim Obj As New List(Of Object) + ' Dim CveVentaNueva As Integer = ObjVentas.CveVenta + ' Dim BanderaGeneraNC As Boolean = True + ' 'If UsuarioActual.CveEmpresa.Contiene(1, 119) Then BanderaGeneraNC = True - If ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa) Then - If ObjVentas.DtResultados IsNot Nothing AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then - Dim drv As DataRow = ObjVentas.DtResultados.Rows(0) - Dim TmpDTconceptos As DataTable = Nothing - Dim CveNCaVincular As Integer = DdlNCFactura.SelectedValue.ToEntero() - 'CargaCliente - Dim CveCliente As Integer = drv("CveCliente").ToString().ToEntero() - If UsuarioActual.CveEmpresa = 2 AndAlso UsuarioActual.CveUsuario = 77 AndAlso Not CveCliente.Contiene(10450, 10460, 10458) Then - Return Nothing - ElseIf UsuarioActual.CveEmpresa = 2 AndAlso UsuarioActual.CveUsuario = 21 AndAlso Not CveCliente.Contiene(27448) Then - Return Nothing - End If - factura.TipoDocto = drv("TipoDocto").ToString() - factura.Serie = drv("Serie").ToString() - factura.FechaEjecucion = drv("FechaEjecucion").ToString().ToDateTime - factura.Fecha = drv("Fecha").ToString().ToDateTime - factura.CveSubProyectoEjecucion = drv("CveSubProyectoEjecucion").ToString().ToEntero() - factura.CveSubProyectoCobranza = drv("CveSubProyectoCobranza").ToString().ToEntero() - factura.CveClienteSucursal = drv("CveClienteSucursal").ToString().ToEntero() - factura.CveSubProyecto = drv("CveSubProyecto").ToString().ToEntero() + ' If ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa) Then + ' If ObjVentas.DtResultados IsNot Nothing AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then + ' Dim drv As DataRow = ObjVentas.DtResultados.Rows(0) + ' Dim TmpDTconceptos As DataTable = Nothing + ' Dim CveNCaVincular As Integer = DdlNCFactura.SelectedValue.ToEntero() + ' 'CargaCliente + ' Dim CveCliente As Integer = drv("CveCliente").ToString().ToEntero() + ' If UsuarioActual.CveEmpresa = 2 AndAlso UsuarioActual.CveUsuario = 77 AndAlso Not CveCliente.Contiene(10450, 10460, 10458) Then + ' Return Nothing + ' ElseIf UsuarioActual.CveEmpresa = 2 AndAlso UsuarioActual.CveUsuario = 21 AndAlso Not CveCliente.Contiene(27448) Then + ' Return Nothing + ' End If + ' factura.TipoDocto = drv("TipoDocto").ToString() + ' factura.Serie = drv("Serie").ToString() + ' factura.FechaEjecucion = drv("FechaEjecucion").ToString().ToDateTime + ' factura.Fecha = drv("Fecha").ToString().ToDateTime + ' factura.CveSubProyectoEjecucion = drv("CveSubProyectoEjecucion").ToString().ToEntero() + ' factura.CveSubProyectoCobranza = drv("CveSubProyectoCobranza").ToString().ToEntero() + ' factura.CveClienteSucursal = drv("CveClienteSucursal").ToString().ToEntero() + ' factura.CveSubProyecto = drv("CveSubProyecto").ToString().ToEntero() - 'Carga Detalle Sucursal - CargaClienteSucursal(drv("CveClienteSucursal").ToString().ToEntero(), ObjVentas) + ' 'Carga Detalle Sucursal + ' CargaClienteSucursal(drv("CveClienteSucursal").ToString().ToEntero(), ObjVentas) - 'CargaDetalle - If ObjVentas.GetVentaDetalle(CveVenta) Then - TmpDTconceptos = ObjVentas.DtResultados - TmpDTconceptos.Columns.Add("CveMovimientoDetallePedido", GetType(Integer)) - GvPS.DataSource = TmpDTconceptos - GvPS.DataBind() - End If + ' 'CargaDetalle + ' If ObjVentas.GetVentaDetalle(CveVenta) Then + ' TmpDTconceptos = ObjVentas.DtResultados + ' TmpDTconceptos.Columns.Add("CveMovimientoDetallePedido", GetType(Integer)) + ' GvPS.DataSource = TmpDTconceptos + ' GvPS.DataBind() + ' End If - 'Carga Totales - factura.SubTotal = drv("SubTotal").ToString().ToDecimal - factura.Descuento = drv("Descuento").ToString().ToDecimal - factura.Amortizacion = drv("Amortizacion").ToString().ToDecimal - factura.IVA = drv("IVA").ToString().ToDecimal - factura.RetIVA = drv("RetIVA").ToString().ToDecimal - factura.RetISR = drv("RetISR").ToString().ToDecimal - factura.Total = drv("Total").ToString().ToDecimal - factura.MotivoDescuento = drv("MotivoDescuento").ToString() - factura.Observaciones = drv("Observaciones").ToString() - factura.CveMoneda = drv("CveMoneda").ToString().ToEntero() - factura.TipoCambio = drv("TipoCambio").ToString().ToDecimal - factura.CveVendedor = drv("CveVendedor").ToString().ToEntero() - factura.RefDocto = drv("Ref").ToString() - 'factura.SerieFolioPadre = drv("SerieFolio").ToString() - HdnFolioFiscalNC.Value = drv("FolioFiscal").ToString() + ' 'Carga Totales + ' factura.SubTotal = drv("SubTotal").ToString().ToDecimal + ' factura.Descuento = drv("Descuento").ToString().ToDecimal + ' factura.Amortizacion = drv("Amortizacion").ToString().ToDecimal + ' factura.IVA = drv("IVA").ToString().ToDecimal + ' factura.RetIVA = drv("RetIVA").ToString().ToDecimal + ' factura.RetISR = drv("RetISR").ToString().ToDecimal + ' factura.Total = drv("Total").ToString().ToDecimal + ' factura.MotivoDescuento = drv("MotivoDescuento").ToString() + ' factura.Observaciones = drv("Observaciones").ToString() + ' factura.CveMoneda = drv("CveMoneda").ToString().ToEntero() + ' factura.TipoCambio = drv("TipoCambio").ToString().ToDecimal + ' factura.CveVendedor = drv("CveVendedor").ToString().ToEntero() + ' factura.RefDocto = drv("Ref").ToString() + ' 'factura.SerieFolioPadre = drv("SerieFolio").ToString() + ' HdnFolioFiscalNC.Value = drv("FolioFiscal").ToString() - ViewState("FolioFiscal") = drv("FolioFiscal").ToString() + ' ViewState("FolioFiscal") = drv("FolioFiscal").ToString() - 'JJMQ 20160506: Se agrego para la validacion de pago de contado. - 'CVImporteContado.ValueToCompare = TxtTotal.Text.Replace(",", "") + ' 'JJMQ 20160506: Se agrego para la validacion de pago de contado. + ' 'CVImporteContado.ValueToCompare = TxtTotal.Text.Replace(",", "") - UpContado.Update() - If factura.CveCliente > 0 Then - If Not IsNothing(TmpDTconceptos) AndAlso TmpDTconceptos.Rows.Count > 0 Then + ' UpContado.Update() + ' If factura.CveCliente > 0 Then + ' If Not IsNothing(TmpDTconceptos) AndAlso TmpDTconceptos.Rows.Count > 0 Then - If Not drv("Total").ToString().ToDecimal = factura.Total Then - Return Nothing - End If + ' If Not drv("Total").ToString().ToDecimal = factura.Total Then + ' Return Nothing + ' End If - If FolioFiscal = "" Then - CveEstatus = 4 - Else - CveEstatus = 5 - End If + ' If FolioFiscal = "" Then + ' CveEstatus = 4 + ' Else + ' CveEstatus = 5 + ' End If - '[IPP] - CANCELA INVENTARIO DE VENTA NUEVA Y NO TRASPASA MOVTOS DE ALMACEN - 'If UsuarioActual.CveEmpresa.Contiene(1) Then - 'QUEMA DOCUMENTO NUEVO - If Not ObjInventario.ActualizarEsDevolucionVenta(CveVentaNueva, 2) Then - Return Nothing - End If - 'Else - ' 'TRASPASA ALMACEN A DOCUMENTO NUEVO - ' If Not CancelarMovimientoInventario(ObjInventario, ObjConta, CveVentaNueva, CveDevolucion) Then - ' Return Nothing - ' End If - 'End If + ' '[IPP] - CANCELA INVENTARIO DE VENTA NUEVA Y NO TRASPASA MOVTOS DE ALMACEN + ' 'If UsuarioActual.CveEmpresa.Contiene(1) Then + ' 'QUEMA DOCUMENTO NUEVO + ' If Not ObjInventario.ActualizarEsDevolucionVenta(CveVentaNueva, 2) Then + ' Return Nothing + ' End If + ' 'Else + ' ' 'TRASPASA ALMACEN A DOCUMENTO NUEVO + ' ' If Not CancelarMovimientoInventario(ObjInventario, ObjConta, CveVentaNueva, CveDevolucion) Then + ' ' Return Nothing + ' ' End If + ' 'End If - 'CANCELA PAGOS - If ObjFacturaDevolucion.TipoDocto.Contiene("Ing", "Ant") Then - If Not ObjConta.PrePolizasCancelarPagos(CveDevolucion, ObjFactura.CvePrePoliza) Then - Return Nothing - End If - End If + ' 'CANCELA PAGOS + ' If ObjFacturaDevolucion.TipoDocto.Contiene("Ing", "Ant") Then + ' If Not ObjConta.PrePolizasCancelarPagos(CveDevolucion, ObjFactura.CvePrePoliza) Then + ' Return Nothing + ' End If + ' End If - 'CANCELA FACTURA + ' 'CANCELA FACTURA - BanderaGeneraNC = True - '2019.05.10- RMF. se activa la bandera a true, para que siempre se cancele, y no genere la NC + ' BanderaGeneraNC = True + ' '2019.05.10- RMF. se activa la bandera a true, para que siempre se cancele, y no genere la NC - If Month(factura.Fecha) = Month(Now) OrElse BanderaGeneraNC = True Then - If CancelarFactura(ObjVentas, ObjConta, ObjContPaq, ObjBancos) Then - Obj.Add(factura) - Else - Return Nothing - End If - Else - ObjFacturaDevolucion.TipoDocto = "Egs" - ObjFacturaDevolucion.Fecha = Now - If RegistrarNC(ObjVentas, ObjConta, ObjInventario, ObjContr, ObjContPaq, ObjFacturaDevolucion, ObjBancos, TmpDTconceptos, ObjEventos) Then - Obj.Add(ObjFacturaDevolucion) - Else - Return Nothing - End If - End If + ' If Month(factura.Fecha) = Month(Now) OrElse BanderaGeneraNC = True Then + ' If CancelarFactura(ObjVentas, ObjConta, ObjContPaq, ObjBancos) Then + ' Obj.Add(factura) + ' Else + ' Return Nothing + ' End If + ' Else + ' ObjFacturaDevolucion.TipoDocto = "Egs" + ' ObjFacturaDevolucion.Fecha = Now + ' If RegistrarNC(ObjVentas, ObjConta, ObjInventario, ObjContr, ObjContPaq, ObjFacturaDevolucion, ObjBancos, TmpDTconceptos, ObjEventos) Then + ' Obj.Add(ObjFacturaDevolucion) + ' Else + ' Return Nothing + ' End If + ' End If - 'TRASPASA PAGADO - If Not ObjConta.TraspasarSaldosPrePolizas(CveDevolucion, ObjFactura.CveVenta, ObjFactura.CvePrePoliza) Then - Return Nothing - End If + ' 'TRASPASA PAGADO + ' If Not ObjConta.TraspasarSaldosPrePolizas(CveDevolucion, ObjFactura.CveVenta, ObjFactura.CvePrePoliza) Then + ' Return Nothing + ' End If - If Not ObjInventario.TraspasaEntregaDirectaOCInv(ObjFactura.CveVenta, UsuarioActual.CveEmpresa) Then - Return Nothing - End If + ' If Not ObjInventario.TraspasaEntregaDirectaOCInv(ObjFactura.CveVenta, UsuarioActual.CveEmpresa) Then + ' Return Nothing + ' End If - End If - End If - End If - End If + ' End If + ' End If + ' End If + ' End If - If Obj.Count > 0 Then - Return Obj - Else - Return Nothing - End If + ' If Obj.Count > 0 Then + ' Return Obj + ' Else + ' Return Nothing + ' End If - End Function - Private Function RegistrarNC(ObjVentas As ClsVentas, ObjConta As ClsContabilidad, ObjInventario As ClsInventarios, ObjContr As ClsContratos, ObjContPaq As ClsContPAQi, ByVal factura As Modelos.Factura, ObjBancos As ClsBancos, TmpDTconceptos As DataTable, ByRef ObjEventos As ClsOIEventos) As Boolean - Dim ProcesoCorrecto As Boolean = True - RefacturacionGeneroNC = True + 'End Function + 'Private Function RegistrarNC(ObjVentas As ClsVentas, ObjConta As ClsContabilidad, ObjInventario As ClsInventarios, ObjContr As ClsContratos, ObjContPaq As ClsContPAQi, ByVal factura As Modelos.Factura, ObjBancos As ClsBancos, TmpDTconceptos As DataTable, ByRef ObjEventos As ClsOIEventos) As Boolean + ' Dim ProcesoCorrecto As Boolean = True + ' RefacturacionGeneroNC = True - ''Generamos el nuevo folio - 'Dim ObjFolios As New ClsGralFolios(ObjVentas.IniciaTransacSQL()) - 'If ObjFolios.GetFolios(factura.TipoDocto, UsuarioActual.CveEmpresa) Then - ' Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros(String.Format(" CveSubProyecto = {0} And Estado = 'Activo'", DdlSubProyectoDatos.SelectedValue)) - ' If DT.Rows.Count > 0 Then - ' factura.Folio = DT.Rows(0)("FActual").ToString().ToEntero() - ' Else - ' ProcesoCorrecto = False - ' End If - ' DT.Dispose() - 'End If - factura.Folio = -1 + ' ''Generamos el nuevo folio + ' 'Dim ObjFolios As New ClsGralFolios(ObjVentas.IniciaTransacSQL()) + ' 'If ObjFolios.GetFolios(factura.TipoDocto, UsuarioActual.CveEmpresa) Then + ' ' Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros(String.Format(" CveSubProyecto = {0} And Estado = 'Activo'", DdlSubProyectoDatos.SelectedValue)) + ' ' If DT.Rows.Count > 0 Then + ' ' factura.Folio = DT.Rows(0)("FActual").ToString().ToEntero() + ' ' Else + ' ' ProcesoCorrecto = False + ' ' End If + ' ' DT.Dispose() + ' 'End If + ' factura.Folio = -1 - 'Registramos la venta - GuardarVenta(ObjVentas, ObjConta, ObjInventario, ObjContr, factura, TmpDTconceptos, -1, ObjContPaq, ObjBancos) - 'CargaNCDT(factura.CveVentaPadre, factura.Total) + ' 'Registramos la venta + ' GuardarVenta(ObjVentas, ObjConta, ObjInventario, ObjContr, factura, TmpDTconceptos, -1, ObjContPaq, ObjBancos) + ' 'CargaNCDT(factura.CveVentaPadre, factura.Total) - 'ObjFacturaDevolucion.Timbre = PreParaTimbre(ObjFacturaDevolucion) - ''Timbramos - 'If factura.TipoDocto.Contiene("Ing", "Egs", "Ant") AndAlso FolioFiscal <> "" Then - ' If UsuarioActual.Empresa.TipoFacturacion = "CFDi" AndAlso UsuarioActual.Empresa.FacturaProduccion Then + ' 'ObjFacturaDevolucion.Timbre = PreParaTimbre(ObjFacturaDevolucion) + ' ''Timbramos + ' 'If factura.TipoDocto.Contiene("Ing", "Egs", "Ant") AndAlso FolioFiscal <> "" Then + ' ' If UsuarioActual.Empresa.TipoFacturacion = "CFDi" AndAlso UsuarioActual.Empresa.FacturaProduccion Then - ' Dim sw As New Diagnostics.Stopwatch - ' sw.Start() + ' ' Dim sw As New Diagnostics.Stopwatch + ' ' sw.Start() - ' 'FACTURA INGRESO/EGRESO - ' Dim ObjTimbrado As New Modelos.Timbrado - ' Dim FM As New Modelos.FemsaFactura - ' Dim TmpDT7Eleven As New DataTable - ' Dim TmpDTComplementosTimbrado As New DataTable + ' ' 'FACTURA INGRESO/EGRESO + ' ' Dim ObjTimbrado As New Modelos.Timbrado + ' ' Dim FM As New Modelos.FemsaFactura + ' ' Dim TmpDT7Eleven As New DataTable + ' ' Dim TmpDTComplementosTimbrado As New DataTable - ' PrepararTimbrado(FM, TmpDT7Eleven, TmpDTComplementosTimbrado) + ' ' PrepararTimbrado(FM, TmpDT7Eleven, TmpDTComplementosTimbrado) - ' ObjTimbrado.TimbrarFactura(UsuarioActual, factura, FM, TmpDT, TmpDTImpuestos, TmpDT7Eleven, TmpDTComplementosTimbrado, Ruta, LstFordASN, TxtFordGSDB.Text, ObjVentas) + ' ' ObjTimbrado.TimbrarFactura(UsuarioActual, factura, FM, TmpDT, TmpDTImpuestos, TmpDT7Eleven, TmpDTComplementosTimbrado, Ruta, LstFordASN, TxtFordGSDB.Text, ObjVentas) - ' sw.Stop() - ' GuardaLogTimbrado(sw.ElapsedMilliseconds.ToString(), UsuarioActual.Empresa.CvePAC) + ' ' sw.Stop() + ' ' GuardaLogTimbrado(sw.ElapsedMilliseconds.ToString(), UsuarioActual.Empresa.CvePAC) - ' ElseIf UsuarioActual.Empresa.TipoFacturacion = "CBB" Then - ' GeneraPDFCBB(ObjFactura.Fecha, Nothing, ObjFactura.SerieFolio, False) - ' End If - 'End If + ' ' ElseIf UsuarioActual.Empresa.TipoFacturacion = "CBB" Then + ' ' GeneraPDFCBB(ObjFactura.Fecha, Nothing, ObjFactura.SerieFolio, False) + ' ' End If + ' 'End If - If ErrorList.Count > 0 Then - ProcesoCorrecto = False - End If + ' If ErrorList.Count > 0 Then + ' ProcesoCorrecto = False + ' End If - Return ProcesoCorrecto - End Function + ' Return ProcesoCorrecto + 'End Function #End Region #Region " VISTA PREVIA NEW " @@ -15003,12 +15121,19 @@ Partial Class Ventas Dim Amortizacion As Decimal = 0 Dim ImpuestosLocalesTemporal As Decimal = 0 + If ListaAnticiposAplicados IsNot Nothing Then + ListaAnticiposAplicados.Clear() + Else + ListaAnticiposAplicados = New List(Of MAnticipoRelacionado) + End If + HdnIVACalculado.Value = HdnIVAOriginal.Value For Each gvr As GridViewRow In GVAnticipos.Rows If gvr.FCCheckBox("Chk" & gvr.RowIndex) IsNot Nothing AndAlso gvr.FCCheckBox("Chk" & gvr.RowIndex).Checked AndAlso gvr.DataKey("CveConceptoContable").ToEntero().Contiene(3) Then Amortizacion += gvr.FCTextBox(String.Format("TxtAnticipo{0}", gvr.RowIndex)).Text.ToDecimal ' - ((gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal / gvr.DataKey("TotalAnticipo").ToDecimal) * gvr.DataKey("IVAAnticipo").ToDecimal) HdnIVACalculado.Value = (HdnIVACalculado.Value.ToDouble - ((gvr.FCTextBox("TxtAnticipo" & gvr.RowIndex).Text.ToDecimal / gvr.DataKey("TotalAnticipo").ToDecimal) * gvr.DataKey("IVAAnticipo").ToDecimal)).FormatoNumero(2) - HdnFolioFiscalNC.Value = gvr.DataKey("FolioFiscal") + ListaAnticiposAplicados.Add(New MAnticipoRelacionado() With {.CveVenta = gvr.DataKey("CveVenta").ToEntero(), .FolioFiscal = gvr.DataKey("FolioFiscal")}) + 'HdnFolioFiscalNC.Value = gvr.DataKey("FolioFiscal") 'CvePSAmortizacion = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CvePS", "CveConceptoContable = 11").ToEntero() End If @@ -16740,7 +16865,7 @@ Partial Class Ventas If DdlTipoComprobante.SelectedValue <> "Cot" And ChkSinExistencia.Checked = False Then 'VALIDA EXISTENCIA - If UsuarioActual.CveEmpresa.Contiene({72, 80, 119, 153}) Then + If UsuarioActual.CveEmpresa.Contiene({72, 80, 119, 140, 153}) Then If Existencia - TmpDT.SUM("Cantidad", $"CvePS = {CvePS} AND (EntregaDirecta IS NULL OR EntregaDirecta < 1)") < TxtCantidad.Text.ToDouble Then Alert("No cuenta con la cantidad suficiente en inventario. Cuenta con " + Existencia.FormatoNumero(2) + ".", TipoMensaje.MsgAdvertencia) Return False @@ -20767,7 +20892,7 @@ Partial Class Ventas End If Case 2 'CONTADO - If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") Or (UsuarioActual.Empresa.Funcionalidad(558).ToEntero() = 1 And DdlTipoComprobante.SelectedValue = "Cot") Then + If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") OrElse (UsuarioActual.Empresa.Funcionalidad(558).ToEntero() = 1 And DdlTipoComprobante.SelectedValue = "Cot") OrElse (CveVenta > 0 AndAlso DdlTipoComprobante.SelectedValue = "Cot" AndAlso Not UsuarioActual.CveEmpresa.Contiene(119, 158)) Then DivContado.Visible = True If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then DivTransferencia.Visible = False @@ -21132,6 +21257,12 @@ Partial Class Ventas saldo = TxtTotal.Text.Replace(",", "").ToDouble - abonado 'CVImporteContado.ValueToCompare = (saldo.FormatoNumero(2).ToDouble).ToString() + If (Not UsuarioActual.CveEmpresa.Contiene(119, 158)) AndAlso Me.CveVenta > 0 AndAlso DdlTipoComprobante.SelectedValue = "Cot" AndAlso Not ValidaPagosContado(MostrarAlertas:=False) Then + VerificarBtnFacturarCotizacion(DdlVendedor.SelectedValue.ToEntero(), MostrarGenerarRemision:=False) + + UpFacturar.Update() + End If + CargaGridContado() UpContado.Update() @@ -21139,7 +21270,7 @@ Partial Class Ventas Private Sub RBLPago_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RBLPago.SelectedIndexChanged LimpiaEscondeContado() End Sub - Private Function ValidaPagosContado() As Boolean + Private Function ValidaPagosContado(Optional MostrarAlertas As Boolean = True) As Boolean Dim Retorno = False Dim AmortizacionNC As Decimal = 0 @@ -21159,7 +21290,10 @@ Partial Class Ventas If UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso CveVenta <= 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") Then If Not PermiteCredito AndAlso Not TienePagos AndAlso TxtTotal.Text.ToDecimal > 0 Then - Alert("Es necesario especificar un pago.", TipoMensaje.MsgAdvertencia) + If MostrarAlertas Then + Alert("Es necesario especificar un pago.", TipoMensaje.MsgAdvertencia) + End If + Retorno = True Return Retorno End If @@ -21168,7 +21302,10 @@ Partial Class Ventas Dim TotalPago As Decimal = DtPagos.SUM("Importe").ToDecimal() + AmortizacionNC If TotalPago < TxtTotal.Text.ToDecimal Then - Alert("La suma de los pagos debe ser igual al total de la venta.", TipoMensaje.MsgAdvertencia) + If MostrarAlertas Then + Alert("La suma de los pagos debe ser igual al total de la venta.", TipoMensaje.MsgAdvertencia) + End If + Retorno = True Return Retorno End If @@ -21179,7 +21316,10 @@ Partial Class Ventas 'SI TIENE SALDO PENDIENTE VALIDA SI TIENE PAGOS If Me.SaldoVenta > 0 Then If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") AndAlso (UsuarioActual.Empresa.Funcionalidad(531) = "1") AndAlso (Not PermiteCredito) AndAlso Not TienePagos And TxtTotal.Text.ToDecimal > 0 Then - Alert("Es necesario especificar un pago.", TipoMensaje.MsgAdvertencia) + If MostrarAlertas Then + Alert("Es necesario especificar un pago.", TipoMensaje.MsgAdvertencia) + End If + Retorno = True End If @@ -21189,7 +21329,10 @@ Partial Class Ventas Dim TotalPago As Decimal = DtPagos.SUM("Importe").ToDecimal() + AmortizacionNC If TotalPago < TxtTotal.Text.ToDecimal Then - Alert("La suma de los pagos debe ser igual al total de la venta.", TipoMensaje.MsgAdvertencia) + If MostrarAlertas Then + Alert("La suma de los pagos debe ser igual al total de la venta.", TipoMensaje.MsgAdvertencia) + End If + Retorno = True Return Retorno End If @@ -21201,18 +21344,27 @@ Partial Class Ventas Dim TotalNC As Decimal = If((ListaNCDesc IsNot Nothing AndAlso ListaNCDesc.Count > 0) OrElse (ListaNCBonificacion IsNot Nothing AndAlso ListaNCBonificacion.Count > 0), LblTotalAPagar.Text.Trim().ToDecimal(), 0) If TotalNC > 0 Then If (DtPagos.SUM("Importe").ToString().ToDecimal() + AmortizacionNC + Total - TxtCambio.Text.ToDecimal) > TotalNC Then - Alert("El importe de los pagos no puede exceder el importe de la factura. Por favor verifique.", TipoMensaje.MsgAdvertencia) + If MostrarAlertas Then + Alert("El importe de los pagos no puede exceder el importe de la factura. Por favor verifique.", TipoMensaje.MsgAdvertencia) + End If + Retorno = True End If Else If (DtPagos.SUM("Importe").ToString().ToDecimal() + AmortizacionNC + Total - TxtCambio.Text.ToDecimal) > TxtTotal.Text.ToDecimal Then - Alert("El importe de los pagos no puede exceder el importe de la factura. Por favor verifique.", TipoMensaje.MsgAdvertencia) + If MostrarAlertas Then + Alert("El importe de los pagos no puede exceder el importe de la factura. Por favor verifique.", TipoMensaje.MsgAdvertencia) + End If + Retorno = True End If End If Else If (DtPagos.SUM("Importe").ToString().ToDecimal() + AmortizacionNC + Total - TxtCambio.Text.ToDecimal) > TxtTotal.Text.ToDecimal Then - Alert("El importe de los pagos no puede exceder el importe de la factura. Por favor verifique.", TipoMensaje.MsgAdvertencia) + If MostrarAlertas Then + Alert("El importe de los pagos no puede exceder el importe de la factura. Por favor verifique.", TipoMensaje.MsgAdvertencia) + End If + Retorno = True End If End If @@ -28202,7 +28354,9 @@ Partial Class Ventas TxtTotal.Attributes("readonly") = "readonly" RBLPago.Enabled = True - RBLPago.Items(0).Enabled = True + If Me.PermiteCredito Then + RBLPago.Items(0).Enabled = True + End If GvImpuestosLocales2.Enabled = True @@ -32425,5 +32579,10 @@ Partial Class Ventas End Select UpModalSolicitud.Update() End Sub + + Public Class MAnticipoRelacionado + Public Property CveVenta As Integer + Public Property FolioFiscal As String + End Class End Class