This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2022-06-24 09:52:23 -07:00
16 changed files with 844 additions and 342 deletions

View File

@@ -1,4 +1,4 @@
<%@ Page Title="Catálogo de Unidades" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="CierreCultivo.aspx.vb" Inherits="Agrupecuaria_CierreCultivo" EnableEventValidation="false" %> <%@ Page Title="Cierre de Cultivo" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="CierreCultivo.aspx.vb" Inherits="Agrupecuaria_CierreCultivo" EnableEventValidation="false" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server"> <asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
@@ -6,9 +6,6 @@
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server"> <asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style> <style>
#DivAgregarUnidad > div.modal-dialog > div label input {
padding: 0px !important;
}
</style> </style>
</asp:Content> </asp:Content>
@@ -18,10 +15,10 @@
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server"> <asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content> </asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server"> <asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel runat="server" ID="UpAgregar"> <asp:UpdatePanel runat="server" ID="UpAcciones" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<li> <li>
<asp:LinkButton ID="LnkAccionesCerrarCultivo" OnClick="LnkAccionesCerrarCultivo_Click" Visible="false" runat="server"><i class="fa fa-check"></i> Cerrar Cultivo</asp:LinkButton>
</li> </li>
</ContentTemplate> </ContentTemplate>
</asp:UpdatePanel> </asp:UpdatePanel>
@@ -33,32 +30,39 @@
<asp:UpdatePanel ID="UpFiltros" runat="server" UpdateMode="Conditional"> <asp:UpdatePanel ID="UpFiltros" runat="server" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter" style=""> <div class="portlet solid grey-cascade portlet-filter" style="">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px; position: relative;"> <div class="portlet-title portlet-filterT smalltitle" style="min-height: 49px; position: relative;">
<div class="tools"> <div class="tools">
<asp:Button ID="btConsultar" CssClass="btn btn-primary" runat="server" ValidationGroup="GrpConsultar" Text="Consultar" OnClick="btConsultar_Click" /></td> <asp:Button ID="btConsultar" CssClass="btn btn-primary" runat="server" ValidationGroup="GrpConsultar" Text="Consultar" OnClick="btConsultar_Click" /></td>
<a href="javascript:;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" /> <a href="javascript:;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
</div> <asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
<div class="titlefiltros caption magindate"> </div>
<div class="row"> <div class="titlefiltros caption magindate">
<div class="row">
<div class="col-md-1 truncate">Temporada:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlTemporada" CssClass="form-control input-sm select2me" runat="server" Width="100%"
DataTextField="Temporada" DataValueField="CveTemporada">
</asp:DropDownList>
</div>
<div class="col-md-1 truncate"><asp:Label runat="server" ID="LblSubProyecto"></asp:Label></div>
<div class="col-md-2">
<asp:DropDownList ID="DdlSubProyectoCierreCultivo" runat="server" Width="100%" CssClass="form-control select2me" DataTextField="SubProyecto" DataValueField="CveSubProyecto"></asp:DropDownList>
</div>
<div class="col-md-1 truncate">Temporada:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlTemporada" CssClass="form-control input-sm select2me" runat="server" Width="100%"
DataTextField="Temporada" DataValueField="CveTemporada">
</asp:DropDownList>
</div> </div>
</div> </div>
</div>
<div class="portlet-body magindate" <%= IIf(chkexpand.Checked = True, "", "style=""display:none;""")%>>
</div> </div>
</div> </div>
<div class="portlet-body magindate" <%= IIf(chkexpand.Checked = True, "", "style=""display:none;""")%>> 1 </ContentTemplate>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel> </asp:UpdatePanel>
@@ -70,14 +74,14 @@
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" <asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False"
DataKeyNames="CveClasificacion" DataKeyNames="CveClasificacion"
EmptyDataText="No se Encontraron datos" CssClass="table table-striped table-advance table-hover mysmallbtn " data-sort="true" Style="width: 100%" GridLines="None"> EmptyDataText="No se Encontraron datos" CssClass="table table-striped table-advance table-hover mysmallbtn " data-sort="true" Style="width: 100%" GridLines="None">
<Columns> <Columns>
<asp:BoundField HeaderText="Clasificación" DataField="Clasificacion" ItemStyle-HorizontalAlign="Left" /> <asp:BoundField HeaderText="Clasificación" DataField="Clasificacion" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Importe" DataField="Importe" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:n2}" /> <asp:BoundField HeaderText="Importe" DataField="Importe" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:n2}" />
</Columns> </Columns>
</asp:GridView> </asp:GridView>
</div> </div>
</div> </div>
@@ -89,6 +93,53 @@
<div id="DivModalCerrarCultivo" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpModalCerrarCultivo" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header ">
<h4 class="modal-title">Cerrar Cultivo</h4>
</div>
<div class="modal-body">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtmodalFechaCierreCultivo" CssClass="form-control" MaxLength="50" runat="server"></asp:TextBox>
<span class="input-group-btn " style="position: absolute; right: 41px; top: -5px;">
<asp:LinkButton ID="LnkTxtmodalFechaCierreCultivo" class="btn default" Style="margin-top: 15px; margin-left: 6px" Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:CalendarExtender runat="server" ID="CETxtmodalFechaCierreCultivo" TargetControlID="TxtmodalFechaCierreCultivo" PopupButtonID="LnkTxtmodalFechaCierreCultivo" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:CompareValidator ID="CvTxtmodalFechaCierreCultivo" runat="server" ControlToValidate="TxtmodalFechaCierreCultivo" Display="None"
ErrorMessage="El campo <b>''Fecha de Cierre''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)."
Operator="DataTypeCheck" Type="Date" ValidationGroup="GpoModalCerrarCultivo"></asp:CompareValidator>
<asp:RequiredFieldValidator ID="RfvTxtmodalFechaCierreCultivo" runat="server" CssClass="help-block errorimput" ControlToValidate="TxtmodalFechaCierreCultivo"
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha de Cierre''</b> es necesario, por favor ingréselo." ValidationGroup="GpoModalCerrarCultivo"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="CvcTxtmodalFechaCierreCultivo" runat="server" HighlightCssClass="vco" TargetControlID="CvTxtmodalFechaCierreCultivo" Width="100px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="VCE" runat="server" HighlightCssClass="vco" TargetControlID="RfvTxtmodalFechaCierreCultivo" Width="100px"></ajax:ValidatorCalloutExtender>
<label for="<%= TxtmodalFechaCierreCultivo.ClientID.ToString() %>">Fecha de Cierre:</label>
<i></i>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="BtnModalCerrarCultivo" runat="server" Text="Cerrar Cultivo" CssClass="btn btn-primary" ValidationGroup="GpoModalCerrarCultivo" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>

View File

@@ -1,21 +1,26 @@
Imports Extensiones Imports System.Data
Imports Extensiones
Partial Class Agrupecuaria_CierreCultivo Partial Class Agrupecuaria_CierreCultivo
Inherits ClsPaginas Inherits ClsPaginas
Private Property CveCamion As Integer Private Property DT_Datos_Cierre As DataTable
Get Get
If ViewState("CveCamion") Is Nothing Then If ViewState("DT_Datos_Cierre") Is Nothing Then
Return -1 ViewState("DataTable") = New DataTable
Else
Return ViewState("CveCamion").ToString().ToEntero()
End If End If
Return DirectCast(ViewState("DT_Datos_Cierre"), DataTable)
End Get End Get
Set(ByVal value As Integer) Set(ByVal value As DataTable)
ViewState("CveCamion") = value ViewState("DT_Datos_Cierre") = value
End Set End Set
End Property End Property
Private Sub Agrupecuaria_CierreCultivo_Load(sender As Object, e As EventArgs) Handles Me.Load Private Sub Agrupecuaria_CierreCultivo_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then If Not Page.IsPostBack Then
CargaCombos() CargaCombos()
@@ -36,6 +41,9 @@ Partial Class Agrupecuaria_CierreCultivo
UpFiltros.Update() UpFiltros.Update()
CargarCentrosDeCosto(Nothing, DdlSubProyectoCierreCultivo, Nothing, LblSubProyecto, "Seleccione Uno")
End Sub End Sub
@@ -51,10 +59,14 @@ Partial Class Agrupecuaria_CierreCultivo
If ObjGral.GetCierreCultivos(DdlTemporada.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then If ObjGral.GetCierreCultivos(DdlTemporada.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjGral.DtResultados GvDatos.DataSource = ObjGral.DtResultados
DT_Datos_Cierre = ObjGral.DtResultados
Else Else
GvDatos.DataSource = Nothing GvDatos.DataSource = Nothing
DT_Datos_Cierre = Nothing
End If End If
OcultarmostrarControles(DT_Datos_Cierre)
ObjGral.Dispose() ObjGral.Dispose()
GvDatos.DataBind() GvDatos.DataBind()
UpDatos.Update() UpDatos.Update()
@@ -63,16 +75,66 @@ Partial Class Agrupecuaria_CierreCultivo
End Sub End Sub
Private Sub CierraCultivo()
End Sub
Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Protected Sub btConsultar_Click(sender As Object, e As EventArgs)
CargaDatos() CargaDatos()
End Sub End Sub
Protected Sub LnkAccionesCerrarCultivo_Click(sender As Object, e As EventArgs)
RegistraScript("$('#DivModalCerrarCultivo').modal('show');")
UpModalCerrarCultivo.Update()
End Sub
Public Sub OcultarmostrarControles(ByRef DTCierreCultivos As DataTable)
If DTCierreCultivos IsNot Nothing AndAlso DTCierreCultivos.Rows.Count > 0 Then
LnkAccionesCerrarCultivo.Visible = True
Else
LnkAccionesCerrarCultivo.Visible = False
End If
UpAcciones.Update()
End Sub
Private Sub CierraCultivo()
Dim ObjConta As New ClsContabilidad()
ObjConta.IniciaTransacSQL()
Dim CvePrePoliza As Integer = -1
Dim ErrorProceso As Boolean = False
Dim CveSubProyecto As Integer = DdlSubProyectoCierreCultivo.SelectedValue.ToEntero
Dim ImporteCierre As Decimal = DT_Datos_Cierre.SUMD("Importe")
CvePrePoliza = ObjConta.AddPrePolizas("CierreCultivo/Cerrar", 1, ImporteCierre, ImporteCierre, 1, TxtmodalFechaCierreCultivo.Text.ToDate, $"Cierre Temporada {DdlTemporada.Text}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa))
If CvePrePoliza > 0 Then
Else
ErrorProceso = True
End If
If ErrorProceso Then
ObjConta.RollBack()
Else
ObjConta.Commit()
RegistraScript("$('#DivModalCerrarCultivo').modal('hide');")
End If
ObjConta.Dispose()
End Sub
End Class End Class

View File

@@ -4070,7 +4070,7 @@ Public Class ClsGenerales
.Add("@Cantidad", SqlDbType.Float).Value = Cantidad .Add("@Cantidad", SqlDbType.Float).Value = Cantidad
.Add("@CveUnidadMedida", SqlDbType.Int).Value = CveUnidadMedida .Add("@CveUnidadMedida", SqlDbType.Int).Value = CveUnidadMedida
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@PesoKg", SqlDbType.SmallMoney).Value = CveUsuario .Add("@PesoKg", SqlDbType.SmallMoney).Value = PesoKg
End With End With

View File

@@ -13,6 +13,7 @@ Public Class ClsInventarios
Private SqlAdapter As SqlDataAdapter Private SqlAdapter As SqlDataAdapter
Private SqlTransacc As SqlTransaction Private SqlTransacc As SqlTransaction
Private Data As DataTable Private Data As DataTable
Private Dataset As DataSet
Private disposedValue As Boolean = False ' Para detectar llamadas redundantes Private disposedValue As Boolean = False ' Para detectar llamadas redundantes
'REGISTRAR CONEXIONES ABIERTAS 'REGISTRAR CONEXIONES ABIERTAS
@@ -140,6 +141,12 @@ Public Class ClsInventarios
End Get End Get
End Property End Property
Public ReadOnly Property DataSetResultados() As DataSet
Get
DataSetResultados = DataSet
End Get
End Property
#End Region #End Region
Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing) Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing)
@@ -5875,6 +5882,27 @@ Public Class ClsInventarios
End Function End Function
#End Region #End Region
#Region "JAM - POG"
Public Function GetJAM_BASF_POG(Fecha As Date) As Boolean
Dim Retorno As Boolean = False
Dataset = New DataSet()
DataAdapter("PA_JAM_BASF_POG")
With SqlAdapter.SelectCommand.Parameters
.Add("@Fecha", SqlDbType.Date).Value = Fecha
End With
Try
SqlAdapter.Fill(Dataset)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener las existencias.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
#End Region
#Region " IDisposable Support " #Region " IDisposable Support "
' IDisposable ' IDisposable
Protected Overridable Sub Dispose(ByVal disposing As Boolean) Protected Overridable Sub Dispose(ByVal disposing As Boolean)
@@ -5882,6 +5910,7 @@ Public Class ClsInventarios
If disposing Then If disposing Then
' TODO: Liberar otro estado (objetos administrados). ' TODO: Liberar otro estado (objetos administrados).
If Not Data Is Nothing Then Data.Dispose() : Data = Nothing If Not Data Is Nothing Then Data.Dispose() : Data = Nothing
If Not Dataset Is Nothing Then Dataset.Dispose() : Dataset = Nothing
If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing
If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing
If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close()

View File

@@ -379,7 +379,7 @@ Namespace Modelos
End If End If
Timbre = New CFDITimbre Timbre = New CFDITimbre
End Sub End Sub
Public Sub New(UsuarioActual As Usuario, CveVenta As Integer, CveEmpresa As Integer, Optional DirectorioServidor As String = "", Optional EsCancelacion As Boolean = False) Public Sub New(UsuarioActual As Usuario, CveVenta As Integer, CveEmpresa As Integer, Optional DirectorioServidor As String = "", Optional EsCancelacion As Boolean = False, Optional CargaDTDetalle As Boolean = True, Optional CargaDatosCliente As Boolean = True, Optional CargaDatosRelacionados As Boolean = True)
Me.UsuarioActual = UsuarioActual Me.UsuarioActual = UsuarioActual
Me.CveVenta = CveVenta Me.CveVenta = CveVenta
Me.CveEmpresa = CveEmpresa Me.CveEmpresa = CveEmpresa
@@ -397,9 +397,12 @@ Namespace Modelos
SetMetodoPago() SetMetodoPago()
SetMoneda() SetMoneda()
SetSubProyecto()
SetSubProyectoMatriz() If Me.CveSubProyecto > 0 Then
SetCliente() SetSubProyecto()
SetSubProyectoMatriz()
End If
If ObjVentas.DtResultados.Rows(0)("IEPS").ToString.ToDecimal <= 0 Then If ObjVentas.DtResultados.Rows(0)("IEPS").ToString.ToDecimal <= 0 Then
Me.VentaDesglosaIEPS = False Me.VentaDesglosaIEPS = False
Else Else
@@ -408,11 +411,23 @@ Namespace Modelos
SetTotales(ObjVentas.DtResultados, ObjVentas) SetTotales(ObjVentas.DtResultados, ObjVentas)
End If End If
End If End If
If ObjVentas.GetVentaDetalle(CveVenta) Then
Me.DtDetalle = ObjVentas.DtResultados.Copy() If CargaDTDetalle Then
If ObjVentas.GetVentaDetalle(CveVenta) Then
Me.DtDetalle = ObjVentas.DtResultados.Copy()
End If
End If End If
ObjVentas.Dispose() ObjVentas.Dispose()
IniciaValoresVentas(EsCancelacion)
If CargaDatosCliente Then
SetCliente()
End If
If CargaDatosRelacionados Then
IniciaValoresVentas(EsCancelacion)
End If
If String.IsNullOrEmpty(DirectorioServidor) Then If String.IsNullOrEmpty(DirectorioServidor) Then
DirectorioServidor = ModExtensiones.DirectorioBaseEmpresas DirectorioServidor = ModExtensiones.DirectorioBaseEmpresas
End If End If
@@ -5543,11 +5558,11 @@ Namespace Modelos
End If End If
If SaldoAlmacenExA <> 0 Then If SaldoAlmacenExA <> 0 Then
'If Not CancelarMovimientosRemision(CveRemision, CveAlmacen, CveAlmacenDevolucion, DtDevRemision.FiltraParametros($"CveMovimiento={RowDevolucion("CveMovimiento")}"), ObjVentas, ObjInventario) Then If Not CancelarMovimientosRemision(CveRemision, CveAlmacen, CveAlmacenDevolucion, DtDevRemision.FiltraParametros($"CveMovimiento={RowDevolucion("CveMovimiento")}"), ObjVentas, ObjInventario, ObjConta) Then
' ErrorCancelar = True ErrorCancelar = True
' MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión." MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión."
' Exit For Exit For
'End If End If
End If End If
Next Next
@@ -5665,11 +5680,11 @@ Namespace Modelos
For Each RowDevolucion As DataRow In DtDevMovs.Rows For Each RowDevolucion As DataRow In DtDevMovs.Rows
CveAlmacen = RowDevolucion("CveAlmacen").ToString().ToEntero() CveAlmacen = RowDevolucion("CveAlmacen").ToString().ToEntero()
'If Not CancelarMovimientosRemision(CveVenta, CveAlmacen, CveAlmacenGeneral, DtMovRemision.FiltraParametros($"CveMovimiento={RowDevolucion("CveMovimiento")} AND CvePS > 0"), ObjVentas, ObjInventario) Then If Not CancelarMovimientosRemision(CveVenta, CveAlmacen, CveAlmacenGeneral, DtMovRemision.FiltraParametros($"CveMovimiento={RowDevolucion("CveMovimiento")} AND CvePS > 0"), ObjVentas, ObjInventario, ObjConta) Then
' ErrorCancelar = True ErrorCancelar = True
' MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión." MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión."
' Exit For Exit For
'End If End If
Next Next
End If End If
@@ -6639,7 +6654,7 @@ Namespace Modelos
Public Property ObservacionesAlmacen As String Public Property ObservacionesAlmacen As String
Public Property CveOC As Integer = -1 Public Property CveOC As Integer = -1
Public Property CveCuentaTerminal As Integer = -1 Public Property CveCuentaTerminal As Integer = -1
Public Property ClienteEsDistribuidor As Boolean = False Public Property EsDistribuidor As Boolean = False
Public Property AplicaGastoContrato As Boolean = False Public Property AplicaGastoContrato As Boolean = False
Public Property FacturaDevolucion As Modelos.Factura Public Property FacturaDevolucion As Modelos.Factura
Public Property CveOrdenProduccion As Integer = -1 Public Property CveOrdenProduccion As Integer = -1
@@ -7065,7 +7080,7 @@ Namespace Modelos
Public Sub SetSubProyecto() Public Sub SetSubProyecto()
If CveSubProyecto > 0 AndAlso UsuarioActual IsNot Nothing Then If CveSubProyecto > 0 AndAlso UsuarioActual IsNot Nothing Then
SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero($"CveSubProyecto = {CveSubProyecto}")) SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1, CveSubProyecto:=CveSubProyecto, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero(""))
End If End If
End Sub End Sub
Public Sub SetSubProyectoMatriz() Public Sub SetSubProyectoMatriz()

View File

@@ -600,7 +600,6 @@ Public Class Timbrado
Dim Clave As String = Empresa.ContraseñaKey Dim Clave As String = Empresa.ContraseñaKey
Dim UrlServicio As String = "" ' Produccion Dim UrlServicio As String = "" ' Produccion
'UrlServicio = "http://juancalderon-001-site1.ftempurl.com/timbrado.asmx?WSDL"
'UrlServicio = "http://alterno.gofac.com.mx/cfdi/timbrado.asmx?WSDL" ' alterno 'UrlServicio = "http://alterno.gofac.com.mx/cfdi/timbrado.asmx?WSDL" ' alterno
UrlServicio = "https://cfdi.gofac.com.mx/timbrado.asmx?WSDL" UrlServicio = "https://cfdi.gofac.com.mx/timbrado.asmx?WSDL"
@@ -1138,10 +1137,10 @@ Public Class Timbrado
Equivalencia = 1 Equivalencia = 1
'condiciones especiales para el pago en pesos, facturas en moneda extranjera 'condiciones especiales para el pago en pesos, facturas en moneda extranjera
ElseIf MonedaPago = "MXN" AndAlso VentaAbreviaturaSAT <> "MXN" Then ElseIf MonedaPago = "MXN" AndAlso VentaAbreviaturaSAT <> "MXN" Then
VentaTipoCambio = VentaTipoCambio.RoundSQL(6) VentaTipoCambio = Math.Round(VentaTipoCambio, 6)
Equivalencia = (1 / VentaTipoCambio).RoundSQL(6) Equivalencia = Math.Round((1 / VentaTipoCambio), 6)
ElseIf MonedaPago = "USD" AndAlso VentaAbreviaturaSAT <> "USD" Then ElseIf MonedaPago = "USD" AndAlso VentaAbreviaturaSAT <> "USD" Then
VentaTipoCambio = VentaTipoCambio.RoundSQL(6) VentaTipoCambio = Math.Round(VentaTipoCambio, 6)
Equivalencia = VentaTipoCambio Equivalencia = VentaTipoCambio
End If End If
@@ -1167,8 +1166,8 @@ Public Class Timbrado
.TasaOCuota = drp("PorcentajeImpuesto").ToString().ToDecimal, .TasaOCuota = drp("PorcentajeImpuesto").ToString().ToDecimal,
.Impuesto = drp("TipoImpuesto").ToString, .Impuesto = drp("TipoImpuesto").ToString,
.Importe = drp("Importe").ToString().ToDecimal.RoundSQL, .Importe = drp("Importe").ToString().ToDecimal.RoundSQL,
.BaseMN = (drp("Base").ToString.ToDecimal / Equivalencia).RoundSQL(2), .BaseMN = Math.Round((drp("Base").ToString.ToDecimal / Equivalencia), 2),
.ImporteMN = (drp("Importe").ToString.ToDecimal / Equivalencia).RoundSQL(2) .ImporteMN = Math.Round((drp("Importe").ToString.ToDecimal / Equivalencia), 2)
} }
) )
@@ -2235,7 +2234,6 @@ Public Class Timbrado
Case 2 Case 2
UrlServicio = "http://generacfdi.com.mx/rvltimbrado/service1.asmx?WSDL" 'productivo UrlServicio = "http://generacfdi.com.mx/rvltimbrado/service1.asmx?WSDL" 'productivo
Case 4 Case 4
'UrlServicio = "http://juancalderon-001-site1.ftempurl.com/timbrado.asmx?WSDL"
'UrlServicio = "http://alterno.gofac.com.mx/cfdi/timbrado.asmx?WSDL" ' alterno 'UrlServicio = "http://alterno.gofac.com.mx/cfdi/timbrado.asmx?WSDL" ' alterno
UrlServicio = "https://cfdi.gofac.com.mx/timbrado.asmx?WSDL" UrlServicio = "https://cfdi.gofac.com.mx/timbrado.asmx?WSDL"
End Select End Select
@@ -2260,7 +2258,7 @@ Public Class Timbrado
Case 4 Case 4
UsuarioServicio = "UserTest" UsuarioServicio = "UserTest"
ClaveServicio = "1234567890" ClaveServicio = "1234567890"
UrlServicio = "http://juancalderon-001-site1.ftempurl.com/timbrado.asmx?WSDL" UrlServicio = "https://cfdi.gofac.com.mx/timbrado.asmx"
End Select End Select
End If End If
@@ -4074,52 +4072,11 @@ Public Class Timbrado
#Region " Complemento Pago" #Region " Complemento Pago"
If ObjCFDITimbre.Comprobante.TipoComprobante = "P" Then If ObjCFDITimbre.Comprobante.TipoComprobante = "P" Then
Dim ComPag = New Profact.TimbraCFDI40.Complementos.Pagos20.Pagos()
ComPag.Pago = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPago(0) {}
ComPag.Pago(0) = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPago()
ComPag.Pago(0).FechaPago = ObjCFDITimbre.ComplementoPagos.FechaPago.ToString("yyyy-MM-ddTHH:mm:ss").ToDate()
ComPag.Pago(0).FormaDePagoP = ObjCFDITimbre.ComplementoPagos.FormaDePagoP
ComPag.Pago(0).MonedaP = ObjCFDITimbre.ComplementoPagos.MonedaP
ComPag.Pago(0).TipoCambioPSpecified = True 'If(ObjCFDITimbre.ComplementoPagos.MonedaP = "MXN", False, True)
ComPag.Pago(0).TipoCambioP = ObjCFDITimbre.ComplementoPagos.TipoCambioP
ComPag.Pago(0).Monto = ObjCFDITimbre.ComplementoPagos.Monto
If ObjCFDITimbre.ComplementoPagos.NumOperacion <> "" Then
ComPag.Pago(0).NumOperacion = ObjCFDITimbre.ComplementoPagos.NumOperacion
End If
If ObjCFDITimbre.ComplementoPagos.RfcEmisorCtaOrd <> "" Then
ComPag.Pago(0).RfcEmisorCtaOrd = ObjCFDITimbre.ComplementoPagos.RfcEmisorCtaOrd
End If
If ObjCFDITimbre.ComplementoPagos.NomBancoOrdExt <> "" Then
ComPag.Pago(0).NomBancoOrdExt = ObjCFDITimbre.ComplementoPagos.NomBancoOrdExt
End If
If ObjCFDITimbre.ComplementoPagos.CtaOrdenante <> "" Then
ComPag.Pago(0).CtaOrdenante = ObjCFDITimbre.ComplementoPagos.CtaOrdenante
End If
If ObjCFDITimbre.ComplementoPagos.RfcEmisorCtaBen <> "" Then
ComPag.Pago(0).RfcEmisorCtaBen = ObjCFDITimbre.ComplementoPagos.RfcEmisorCtaBen
End If
If ObjCFDITimbre.ComplementoPagos.CtaBeneficiario <> "" Then
ComPag.Pago(0).CtaBeneficiario = ObjCFDITimbre.ComplementoPagos.CtaBeneficiario
End If
If ObjCFDITimbre.ComplementoPagos.TipoCadPago <> "" Then
ComPag.Pago(0).TipoCadPagoSpecified = True
ComPag.Pago(0).TipoCadPago = ObjCFDITimbre.ComplementoPagos.TipoCadPago
End If
If ObjCFDITimbre.ComplementoPagos.CertPago <> "" Then If ObjCFDITimbre.ComplementoPagos20.ComplementoPagos.Count > 0 Then
ComPag.Pago(0).CertPago = System.Text.Encoding.Default.GetBytes(ObjCFDITimbre.ComplementoPagos.CertPago).ToString()
End If
If ObjCFDITimbre.ComplementoPagos.CadPago <> "" Then
ComPag.Pago(0).CadPago = ObjCFDITimbre.ComplementoPagos.CadPago
End If
If ObjCFDITimbre.ComplementoPagos.SelloPago <> "" Then
ComPag.Pago(0).SelloPago = System.Text.Encoding.Default.GetBytes(ObjCFDITimbre.ComplementoPagos.SelloPago).ToString()
End If
If ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados.Count > 0 Then Dim Totales As New Profact.TimbraCFDI40.Complementos.Pagos20.PagosTotales() 'Totales Generales
Dim Totales As New Profact.TimbraCFDI40.Complementos.Pagos20.PagosTotales()
'Totales Generales
Totales.MontoTotalPagos = ObjCFDITimbre.ComplementoPagos20.MontoTotalPagos.RoundSQL Totales.MontoTotalPagos = ObjCFDITimbre.ComplementoPagos20.MontoTotalPagos.RoundSQL
@@ -4137,6 +4094,7 @@ Public Class Timbrado
Totales.TotalTrasladosBaseIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0 Totales.TotalTrasladosBaseIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0
Totales.TotalTrasladosImpuestoIVA0 = 0 Totales.TotalTrasladosImpuestoIVA0 = 0
Totales.TotalTrasladosImpuestoIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0 ' si hay base > 0, debe de ponerse aunque sea en cero Totales.TotalTrasladosImpuestoIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0 ' si hay base > 0, debe de ponerse aunque sea en cero
If ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIEPS > 0 Then If ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIEPS > 0 Then
Totales.TotalRetencionesIEPS = ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIEPS.RoundSQL Totales.TotalRetencionesIEPS = ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIEPS.RoundSQL
Totales.TotalRetencionesIEPSSpecified = True Totales.TotalRetencionesIEPSSpecified = True
@@ -4144,105 +4102,141 @@ Public Class Timbrado
Totales.TotalRetencionesIEPSSpecified = False Totales.TotalRetencionesIEPSSpecified = False
End If End If
Dim ComPag = New Profact.TimbraCFDI40.Complementos.Pagos20.Pagos()
ComPag.Totales = Totales ComPag.Totales = Totales
ComPag.Pago = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPago(ObjCFDITimbre.ComplementoPagos20.ComplementoPagos.Count - 1) {}
Dim ii As Integer = 0
For Each docp As CFDIComplementoPago In ObjCFDITimbre.ComplementoPagos20.ComplementoPagos
ComPag.Pago(0).DoctoRelacionado = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionado(ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados.Count - 1) {} ComPag.Pago(ii) = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPago()
Dim i As Integer ComPag.Pago(ii).FechaPago = docp.FechaPago.ToString("yyyy-MM-ddTHH:mm:ss").ToDate()
For Each doc As CFDIComplementoPagosDocsRelacionados In ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados ComPag.Pago(ii).FormaDePagoP = docp.FormaDePagoP
ComPag.Pago(0).DoctoRelacionado(i) = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionado() ComPag.Pago(ii).MonedaP = docp.MonedaP
ComPag.Pago(0).DoctoRelacionado(i).IdDocumento = doc.IdDocumento ComPag.Pago(ii).TipoCambioPSpecified = True 'If(ObjCFDITimbre.ComplementoPagos.MonedaP = "MXN", False, True)
If Not String.IsNullOrEmpty(doc.Serie) Then ComPag.Pago(ii).TipoCambioP = docp.TipoCambioP
ComPag.Pago(0).DoctoRelacionado(i).Serie = doc.Serie ComPag.Pago(ii).Monto = docp.Monto
If docp.NumOperacion <> "" Then ComPag.Pago(ii).NumOperacion = docp.NumOperacion
If docp.RfcEmisorCtaOrd <> "" Then ComPag.Pago(ii).RfcEmisorCtaOrd = docp.RfcEmisorCtaOrd
If docp.NomBancoOrdExt <> "" Then ComPag.Pago(ii).NomBancoOrdExt = docp.NomBancoOrdExt
If docp.CtaOrdenante <> "" Then ComPag.Pago(ii).CtaOrdenante = docp.CtaOrdenante
If docp.RfcEmisorCtaBen <> "" Then ComPag.Pago(ii).RfcEmisorCtaBen = docp.RfcEmisorCtaBen
If docp.CtaBeneficiario <> "" Then ComPag.Pago(ii).CtaBeneficiario = docp.CtaBeneficiario
If docp.TipoCadPago <> "" Then
ComPag.Pago(ii).TipoCadPagoSpecified = True
ComPag.Pago(ii).TipoCadPago = docp.TipoCadPago
End If End If
ComPag.Pago(0).DoctoRelacionado(i).Folio = doc.Folio
ComPag.Pago(0).DoctoRelacionado(i).MonedaDR = doc.MonedaDR
ComPag.Pago(0).DoctoRelacionado(i).NumParcialidad = doc.NumParcialidad.ToString
ComPag.Pago(0).DoctoRelacionado(i).ImpSaldoAnt = doc.ImpSaldoAnt.RoundSQL
ComPag.Pago(0).DoctoRelacionado(i).ImpPagadoSpecified = True
ComPag.Pago(0).DoctoRelacionado(i).ImpPagado = doc.ImpPagado.RoundSQL
ComPag.Pago(0).DoctoRelacionado(i).ImpSaldoInsoluto = doc.ImpSaldoInsoluto.RoundSQL
ComPag.Pago(0).DoctoRelacionado(i).EquivalenciaDR = doc.EquivalenciaDR.RoundSQL(6)
ComPag.Pago(0).DoctoRelacionado(i).EquivalenciaDRSpecified = True
ComPag.Pago(0).DoctoRelacionado(i).ObjetoImpDR = doc.ObjetoImpuesto
If doc.Impuestos IsNot Nothing Then If docp.CertPago <> "" Then ComPag.Pago(ii).CertPago = System.Text.Encoding.Default.GetBytes(docp.CertPago).ToString()
ComPag.Pago(0).DoctoRelacionado(i).ImpuestosDR = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionadoImpuestosDR
''retenciones If docp.CadPago <> "" Then ComPag.Pago(ii).CadPago = docp.CadPago
If (doc.Impuestos).Where(Function(x) x.TrasladooRetencion = "R").Count > 0 Then
Dim j As Integer = 0
ComPag.Pago(0).DoctoRelacionado(i).ImpuestosDR.RetencionesDR = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionadoImpuestosDRRetencionDR(doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "R").Count - 1) {}
For Each docimp As CFDIConceptosImpuestos In doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "R") If docp.SelloPago <> "" Then ComPag.Pago(ii).SelloPago = System.Text.Encoding.Default.GetBytes(docp.SelloPago).ToString()
If docimp.TrasladooRetencion = "R" Then
Dim Tra As New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionadoImpuestosDRRetencionDR ComPag.Pago(ii).DoctoRelacionado = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionado(docp.DocumentosRelacionados.Count - 1) {}
Tra.BaseDR = docimp.Base.RoundSQL(2)
Tra.ImporteDR = docimp.Importe.RoundSQL(2) Dim i As Integer
Tra.ImpuestoDR = docimp.Impuesto For Each doc As CFDIComplementoPagosDocsRelacionados In docp.DocumentosRelacionados
Tra.TipoFactorDR = docimp.TipoFactor ComPag.Pago(ii).DoctoRelacionado(i) = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionado()
Tra.TasaOCuotaDR = docimp.TasaOCuota.RoundSQL(6) ComPag.Pago(ii).DoctoRelacionado(i).IdDocumento = doc.IdDocumento
ComPag.Pago(0).DoctoRelacionado(i).ImpuestosDR.RetencionesDR(j) = Tra If Not String.IsNullOrEmpty(doc.Serie) Then
End If ComPag.Pago(ii).DoctoRelacionado(i).Serie = doc.Serie
j += 1 End If
ComPag.Pago(ii).DoctoRelacionado(i).Folio = doc.Folio
ComPag.Pago(ii).DoctoRelacionado(i).MonedaDR = doc.MonedaDR
ComPag.Pago(ii).DoctoRelacionado(i).NumParcialidad = doc.NumParcialidad.ToString
ComPag.Pago(ii).DoctoRelacionado(i).ImpSaldoAnt = doc.ImpSaldoAnt.RoundSQL
ComPag.Pago(ii).DoctoRelacionado(i).ImpPagadoSpecified = True
ComPag.Pago(ii).DoctoRelacionado(i).ImpPagado = doc.ImpPagado.RoundSQL
ComPag.Pago(ii).DoctoRelacionado(i).ImpSaldoInsoluto = doc.ImpSaldoInsoluto.RoundSQL
ComPag.Pago(ii).DoctoRelacionado(i).EquivalenciaDR = doc.EquivalenciaDR.RoundSQL(6)
ComPag.Pago(ii).DoctoRelacionado(i).EquivalenciaDRSpecified = True
ComPag.Pago(ii).DoctoRelacionado(i).ObjetoImpDR = doc.ObjetoImpuesto
If doc.Impuestos IsNot Nothing Then
ComPag.Pago(ii).DoctoRelacionado(i).ImpuestosDR = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionadoImpuestosDR
''retenciones
If (doc.Impuestos).Where(Function(x) x.TrasladooRetencion = "R").Count > 0 Then
Dim j As Integer = 0
ComPag.Pago(ii).DoctoRelacionado(i).ImpuestosDR.RetencionesDR = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionadoImpuestosDRRetencionDR(doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "R").Count - 1) {}
For Each docimp As CFDIConceptosImpuestos In doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "R")
If docimp.TrasladooRetencion = "R" Then
Dim Tra As New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionadoImpuestosDRRetencionDR
Tra.BaseDR = docimp.Base.RoundSQL(2)
Tra.ImporteDR = docimp.Importe.RoundSQL(2)
Tra.ImpuestoDR = docimp.Impuesto
Tra.TipoFactorDR = docimp.TipoFactor
Tra.TasaOCuotaDR = docimp.TasaOCuota.RoundSQL(6)
ComPag.Pago(ii).DoctoRelacionado(i).ImpuestosDR.RetencionesDR(j) = Tra
End If
j += 1
Next
End If
''traslados
If (doc.Impuestos).Where(Function(x) x.TrasladooRetencion = "T").Count > 0 Then
Dim j As Integer = 0
ComPag.Pago(ii).DoctoRelacionado(i).ImpuestosDR.TrasladosDR = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionadoImpuestosDRTrasladoDR(doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "T").Count - 1) {}
For Each docimp As CFDIConceptosImpuestos In doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "T")
If docimp.TrasladooRetencion = "T" Then
Dim Tra As New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionadoImpuestosDRTrasladoDR
Tra.BaseDR = docimp.Base.RoundSQL(2)
Tra.ImporteDRSpecified = True
Tra.ImporteDR = docimp.Importe.RoundSQL(2)
Tra.ImpuestoDR = docimp.Impuesto
Tra.TipoFactorDR = docimp.TipoFactor
Tra.TasaOCuotaDRSpecified = True
Tra.TasaOCuotaDR = docimp.TasaOCuota.RoundSQL(6)
ComPag.Pago(ii).DoctoRelacionado(i).ImpuestosDR.TrasladosDR(j) = Tra
End If
j += 1
Next
End If
End If
i += 1
Next
If docp.Retenciones.Count > 0 OrElse docp.Traslados.Count > 0 Then
ComPag.Pago(ii).ImpuestosP = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosP(0) {}
ComPag.Pago(ii).ImpuestosP(0) = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosP()
If docp.Retenciones.Count > 0 Then
Dim x As Integer
ComPag.Pago(ii).ImpuestosP(0).RetencionesP = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosPRetencionP(docp.Retenciones.Count - 1) {}
For Each Ret As CFDIRetenciones In ObjCFDITimbre.ComplementoPagos.Retenciones
ComPag.Pago(ii).ImpuestosP(0).RetencionesP(x) = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosPRetencionP()
ComPag.Pago(ii).ImpuestosP(0).RetencionesP(x).ImpuestoP = Ret.Impuesto
ComPag.Pago(ii).ImpuestosP(0).RetencionesP(x).ImporteP = Ret.ImporteMN
x += 1
Next Next
End If End If
''traslados If docp.Traslados.Count > 0 Then
If (doc.Impuestos).Where(Function(x) x.TrasladooRetencion = "T").Count > 0 Then Dim x As Integer
Dim j As Integer = 0 ComPag.Pago(ii).ImpuestosP(0).TrasladosP = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosPTrasladoP(docp.Traslados.Count - 1) {}
ComPag.Pago(0).DoctoRelacionado(i).ImpuestosDR.TrasladosDR = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionadoImpuestosDRTrasladoDR(doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "T").Count - 1) {} For Each Tra As CFDITraslados In (docp.Traslados)
ComPag.Pago(ii).ImpuestosP(0).TrasladosP(x) = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosPTrasladoP()
For Each docimp As CFDIConceptosImpuestos In doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "T") ComPag.Pago(ii).ImpuestosP(0).TrasladosP(x).ImpuestoP = Tra.Impuesto
ComPag.Pago(ii).ImpuestosP(0).TrasladosP(x).TipoFactorP = Tra.TipoFactor
If docimp.TrasladooRetencion = "T" Then ComPag.Pago(ii).ImpuestosP(0).TrasladosP(x).TasaOCuotaP = Tra.TasaOCuota.RoundSQL(6)
Dim Tra As New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoDoctoRelacionadoImpuestosDRTrasladoDR ComPag.Pago(ii).ImpuestosP(0).TrasladosP(x).ImporteP = Tra.ImporteMN.RoundSQL(6)
Tra.BaseDR = docimp.Base.RoundSQL(2) ComPag.Pago(ii).ImpuestosP(0).TrasladosP(x).BaseP = Tra.BaseMN.RoundSQL(2)
Tra.ImporteDRSpecified = True x += 1
Tra.ImporteDR = docimp.Importe.RoundSQL(2)
Tra.ImpuestoDR = docimp.Impuesto
Tra.TipoFactorDR = docimp.TipoFactor
Tra.TasaOCuotaDRSpecified = True
Tra.TasaOCuotaDR = docimp.TasaOCuota.RoundSQL(6)
ComPag.Pago(0).DoctoRelacionado(i).ImpuestosDR.TrasladosDR(j) = Tra
End If
j += 1
Next Next
End If End If
End If End If
i += 1
Next Next
If (ObjCFDITimbre.ComplementoPagos.Retenciones).Count > 0 OrElse ObjCFDITimbre.ComplementoPagos.Traslados.Count > 0 Then
ComPag.Pago(0).ImpuestosP = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosP(0) {}
ComPag.Pago(0).ImpuestosP(0) = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosP()
If (ObjCFDITimbre.ComplementoPagos.Retenciones).Count > 0 Then
Dim x As Integer
ComPag.Pago(0).ImpuestosP(0).RetencionesP = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosPRetencionP((ObjCFDITimbre.ComplementoPagos.Retenciones).Count - 1) {}
For Each Ret As CFDIRetenciones In ObjCFDITimbre.ComplementoPagos.Retenciones
ComPag.Pago(0).ImpuestosP(0).RetencionesP(x) = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosPRetencionP()
ComPag.Pago(0).ImpuestosP(0).RetencionesP(x).ImpuestoP = Ret.Impuesto
ComPag.Pago(0).ImpuestosP(0).RetencionesP(x).ImporteP = Ret.ImporteMN
x += 1
Next
End If
If ObjCFDITimbre.ComplementoPagos.Traslados.Count > 0 Then
Dim x As Integer
ComPag.Pago(0).ImpuestosP(0).TrasladosP = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosPTrasladoP((ObjCFDITimbre.ComplementoPagos.Traslados).Count - 1) {}
For Each Tra As CFDITraslados In (ObjCFDITimbre.ComplementoPagos.Traslados)
ComPag.Pago(0).ImpuestosP(0).TrasladosP(x) = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosPTrasladoP()
ComPag.Pago(0).ImpuestosP(0).TrasladosP(x).ImpuestoP = Tra.Impuesto
ComPag.Pago(0).ImpuestosP(0).TrasladosP(x).TipoFactorP = Tra.TipoFactor
ComPag.Pago(0).ImpuestosP(0).TrasladosP(x).TasaOCuotaP = Tra.TasaOCuota.RoundSQL(6)
ComPag.Pago(0).ImpuestosP(0).TrasladosP(x).ImporteP = Tra.ImporteMN.RoundSQL(6)
ComPag.Pago(0).ImpuestosP(0).TrasladosP(x).BaseP = Tra.BaseMN.RoundSQL(2)
x += 1
Next
End If
End If
Dim nsComp As New System.Xml.Serialization.XmlSerializerNamespaces() Dim nsComp As New System.Xml.Serialization.XmlSerializerNamespaces()
nsComp.Add("pago20", "http://www.sat.gob.mx/Pagos20") nsComp.Add("pago20", "http://www.sat.gob.mx/Pagos20")
Dim xmlComp As String = Profact.TimbraCFDI.XMLUtilerias.SerializaObjeto(ComPag, GetType(Profact.TimbraCFDI40.Complementos.Pagos20.Pagos), nsComp) Dim xmlComp As String = Profact.TimbraCFDI.XMLUtilerias.SerializaObjeto(ComPag, GetType(Profact.TimbraCFDI40.Complementos.Pagos20.Pagos), nsComp)

303
Ashx/E119.ashx Normal file
View File

@@ -0,0 +1,303 @@
<%@ WebHandler Language="VB" Class="E119" %>
Option Strict On
Option Explicit On
Imports System.Data
Imports System.IO
Imports System.Net.Http
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
Imports Extensiones
Public Class E119 : Implements IHttpHandler
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
Private ReadOnly Property CveEmpresa As Integer = 119
Public ReadOnly Property EsProduccion As Boolean
Get
If IsNothing(System.Configuration.ConfigurationManager.AppSettings("EsProduccion")) Then
Return False
Else
Return (System.Configuration.ConfigurationManager.AppSettings("EsProduccion").ToString() = "1")
End If
End Get
End Property
Public ReadOnly Property UsuarioWSE119 As String
Get
If IsNothing(System.Configuration.ConfigurationManager.AppSettings("UsuarioWSE119")) Then
Return ""
Else
Return System.Configuration.ConfigurationManager.AppSettings("UsuarioWSE119").ToString()
End If
End Get
End Property
Public ReadOnly Property PasswordWSE119 As String
Get
If IsNothing(System.Configuration.ConfigurationManager.AppSettings("PasswordWSE119")) Then
Return ""
Else
Return System.Configuration.ConfigurationManager.AppSettings("PasswordWSE119").ToString()
End If
End Get
End Property
Public ReadOnly Property TokenAutorizacion As String
Get
Return "$2y$10$LGqtRWUloKQmAt.jcUldc.PmS5LJ6l.WU2w1G4PBOTLMVKZRNQFPS"
End Get
End Property
Public ReadOnly Property URLBase As String
Get
Return "https://services.fidelityapps.mx/"
End Get
End Property
#Region "V A L I D A - D A T O S"
Private Function ValidaUsuarioSistema(CveUsuario As Integer, CveEmpresa As Integer) As Usuario
Dim UsuarioActual As Usuario = Nothing
Dim ObjUsuarios As New ClsSisUsuarios
If ObjUsuarios.GetUsuarios(CveUsuario) Then
If ObjUsuarios.DtResultados.Rows.Count > 0 Then
Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString()
Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString()
UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, IMEI, CveEmpresa)
UsuarioActual.CveEmpresa = CveEmpresa
CreaObjetoEmpresa(UsuarioActual)
End If
End If
ObjUsuarios.Dispose()
Return UsuarioActual
End Function
Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario)
Dim ObjEmpresa As New ClsSisEmpresas()
If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then
If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then
Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados
Dim EmpresasFuncionalidades As New HybridDictionary
For Each Row As Data.DataRow In dttmp.Rows
EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString)
Next
ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades)
End If
UsuarioActual.Empresa = ObjEmpresa.Empresa
End If
ObjEmpresa.Dispose()
End Sub
#End Region
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim retorno As String = ""
Try
Dim Metodo = If(context.Request("Metodo") = Nothing, "", context.Request("Metodo").ToString())
'OBTENER EXISTENCIAS
If Metodo = "ConsultaBASF_POG" Then
context.Response.ContentType = "application/json"
Dim Auth = ValidarSolicitud(context)
If Auth.IsSucces Then
retorno = ConsultaDatos(context)
Else
context.Response.StatusCode = Auth.StatusCode
retorno = JsonConvert.SerializeObject(Auth.ErrorMessage)
End If
End If
context.Response.Write(retorno)
Catch ex As Exception
context.Response.ContentType = "text/html"
retorno = ex.ToString()
ex.GuardaLog(ex.ToString())
context.Response.Write(retorno)
End Try
End Sub
Private Function ValidarSolicitud(ByVal context As HttpContext) As AuthMessage
Dim unauthorized As Boolean = True
Dim respuesta As New AuthMessage
Dim authHeader = context.Request.Headers("Authorization")
If authHeader IsNot Nothing Then
Dim basicAuth As String = authHeader.Replace("Basic ", "")
Dim usernamePasswordArray = Encoding.UTF8.GetString(Convert.FromBase64String(basicAuth)).Split(":"c)
Dim userName = usernamePasswordArray(0)
Dim password = usernamePasswordArray(1)
unauthorized = Not (userName = Me.UsuarioWSE119 AndAlso password = Me.PasswordWSE119)
Else
respuesta.ErrorMessage = New ResponseMsgError() With {.message = "el usuario y/o contraseña son requeridos"}
respuesta.IsSucces = False
respuesta.StatusCode = 200
Return respuesta
End If
If unauthorized Then
respuesta.ErrorMessage = New ResponseMsgError() With {.message = "el usuario y/o contraseña no son validos"}
respuesta.IsSucces = False
respuesta.StatusCode = 200
Return respuesta
Else
respuesta.ErrorMessage = Nothing
respuesta.IsSucces = True
respuesta.StatusCode = 200
Return respuesta
End If
End Function
Private Function ConsultaDatos(ByVal context As HttpContext) As String
Dim Respuesta As New ResponseMsg
Dim RespuestaError As New ResponseMsgError
Dim TieneError As Boolean = False
Dim strFecha = If(context.Request("Fecha") = Nothing, "", context.Request("Fecha").ToString())
If String.IsNullOrEmpty(strFecha) Then
RespuestaError.message = "Debe especificar una fecha"
context.Response.StatusCode = 200
Return JsonConvert.SerializeObject(RespuestaError)
End If
If Not IsDate(strFecha) Then
RespuestaError.message = "La fecha no tiene el formato correcto"
context.Response.StatusCode = 200
Return JsonConvert.SerializeObject(RespuestaError)
End If
Dim Fecha As DateTime = strFecha.ToDateTime()
Dim Facturas As JArray = Nothing
Dim Stock As JArray = Nothing
If Fecha > MinFecha Then
Using ObjInventario As New ClsInventarios
If ObjInventario.GetJAM_BASF_POG(Fecha) AndAlso ObjInventario.DataSetResultados IsNot Nothing Then
Facturas = JArray.Parse(ObjInventario.DataSetResultados.Tables(0).DataTableToJSONIPP())
Stock = JArray.Parse(ObjInventario.DataSetResultados.Tables(1).DataTableToJSONIPP())
Else
RespuestaError.message = "no se pudo obtener los datos"
TieneError = True
End If
End Using
Else
RespuestaError.message = "la fecha no es leida correctamente"
TieneError = True
End If
If TieneError Then
context.Response.StatusCode = 200
Return JsonConvert.SerializeObject(RespuestaError)
Else
context.Response.StatusCode = 200
Try
Respuesta.data = New JObject(New JProperty("Facturas", Facturas), New JProperty("Stock", Stock))
Respuesta.message = "Los datos se obtuvieron correctamente"
Return JsonConvert.SerializeObject(Respuesta)
Catch ex As Exception
RespuestaError.message = "Ocurrió un error al generar la petición"
Return JsonConvert.SerializeObject(RespuestaError)
End Try
End If
End Function
Private Class ResponseMsg
Sub New()
status = "success"
End Sub
Public Property status As String
Public Property data As Object
Public Property message As String
End Class
Private Class ResponseMsgError
Sub New()
status = "error"
End Sub
Public Property status As String
Public Property message As String
End Class
Private Class AuthMessage
Public Property IsSucces As Boolean
Public Property ErrorMessage As ResponseMsgError
Public Property StatusCode As Integer
End Class
'Private Function ActualizarExistenciasJson(Todos As Boolean) As String
' Dim payload = New JObject()
' Dim CountPeticiones As Integer = 0, CountPeticionesExitosas As Integer = 0
' Dim DtPS As DataTable = Nothing
' Using ObjPS As New ClsProductosServicios
' If ObjPS.GetExistenciasEmpresa("-1", CveEmpresa) Then
' DtPS = ObjPS.DtResultados.Copy()
' End If
' End Using
' If DtPS IsNot Nothing Then
' payload.Add(New JProperty("stock", GenerarPayloadExistencias(DtPS)))
' End If
' Return payload.ToString()
'End Function
Private Function Parametros(Cadena As String) As Hashtable
Dim P1() As String = Cadena.Split("&"c)
Dim Tmp As String
Dim P2() As String
Dim URLParametros As New Hashtable
For Each Tmp In P1
P2 = Tmp.Replace("%26%", "&").Split("="c)
URLParametros.Add(P2(0).ToString.ToUpper, P2(1))
Next
Return URLParametros
End Function
Private Shared Function IsValidJson(ByVal strInput As String) As Boolean
If String.IsNullOrWhiteSpace(strInput) Then
Return False
End If
strInput = strInput.Trim()
If (strInput.StartsWith("{") AndAlso strInput.EndsWith("}")) OrElse (strInput.StartsWith("[") AndAlso strInput.EndsWith("]")) Then
Try
Dim obj = JToken.Parse(strInput)
Return True
Catch jex As JsonReaderException
Console.WriteLine(jex.Message)
Return False
Catch ex As Exception
Console.WriteLine(ex.ToString())
Return False
End Try
Else
Return False
End If
End Function
End Class

View File

@@ -734,7 +734,7 @@
</asp:Panel> </asp:Panel>
<asp:GridView ID="GvPS" ShowHeader="false" runat="server" AutoGenerateColumns="False" DataKeyNames="CvePS,Cantidad,CveUM,UM,PU,Descuento,OtrosGastos,CvePresupuestoEgreso,PS,Clasificacion,CveClasificacion,CveOrdenCompraDetalle,IVA,IVAPorcentaje,RetIVAPorcentaje,RetISRPorcentaje,IEPSPSPorcentaje,Obs,Total,CveProyecto,CveSubProyecto,Proyecto,SubProyecto,Consec,CveTipoGasto,NoDeducible,DifPSSat,TipoAF" GridLines="none" BorderWidth="0" EmptyDataText="Sin Productos o Servicios agregados" CssClass="table GvPS table-striped table-hover table-advance Widthall ScrollAD mysmallbtn" > <asp:GridView ID="GvPS" ShowHeader="false" runat="server" AutoGenerateColumns="False" DataKeyNames="CvePS,Cantidad,CveUM,UM,PU,Descuento,OtrosGastos,CvePresupuestoEgreso,PS,Clasificacion,CveClasificacion,CveOrdenCompraDetalle,IVA,IVAPorcentaje,RetIVAPorcentaje,RetISRPorcentaje,IEPSPSPorcentaje,Obs,Total,CveProyecto,CveSubProyecto,Proyecto,SubProyecto,Consec,CveTipoGasto,NoDeducible,DifPSSat,TipoAF,CveCultivoCuadroDetalle" GridLines="none" BorderWidth="0" EmptyDataText="Sin Productos o Servicios agregados" CssClass="table GvPS table-striped table-hover table-advance Widthall ScrollAD mysmallbtn" >
<Columns> <Columns>
<%-- 0 --%> <%-- 0 --%>
<asp:TemplateField ItemStyle-Width="15px"> <asp:TemplateField ItemStyle-Width="15px">
@@ -773,7 +773,7 @@
<span style="width: 145px; border-bottom: 1px solid gray;"> <span style="width: 145px; border-bottom: 1px solid gray;">
<asp:Label ID="LblProyecto" runat="server" Text='<%# Eval("Proyecto", "{0}<br />") %>' Visible='<%# if(UsuarioActual.Empresa.Tipo_CentroCosto <> 1 And UsuarioActual.Empresa.Tipo_CentroCosto <> 2, True, False) %>'></asp:Label> <asp:Label ID="LblProyecto" runat="server" Text='<%# Eval("Proyecto", "{0}<br />") %>' Visible='<%# if(UsuarioActual.Empresa.Tipo_CentroCosto <> 1 And UsuarioActual.Empresa.Tipo_CentroCosto <> 2, True, False) %>'></asp:Label>
</span> </span>
<asp:Label ID="LblSubProyecto" runat="server" Text='<%# Eval("SubProyecto") %>'></asp:Label> <asp:Label ID="LblSubProyecto" runat="server" Text='<%# If(Integer.TryParse(Eval("CveCultivoCuadroDetalle").ToString, Nothing), Eval("SubProyecto").ToString() & " <br /> " & Eval("TemporadaCuadro").ToString(), Eval("SubProyecto")) %>'></asp:Label>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<%-- 6 --%> <%-- 6 --%>
@@ -4389,10 +4389,10 @@
</div> </div>
</div> </div>
<div class="col-md-3"> <div class="col-md-4">
<div runat="server" id="DVCultivosCuadro" visible="false" class="form-group form-md-line-input input-iconright"> <div runat="server" id="DVCultivosCuadro" visible="false" class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlCultivosCuadro" CssClass=" form-control input-sm select2me" runat="server" DataTextField="Cuadro" Style="width: 100%; max-width: 600px;" <asp:DropDownList ID="DdlCultivosCuadro" CssClass=" form-control input-sm select2me" runat="server" DataTextField="TemporadaCuadro" Style="width: 100%; max-width: 600px;"
DataValueField="CveCultivoCuadroDetalle" ValidationGroup="GrpDetalleGuardar"> DataValueField="CveCultivoCuadroDetalle" ValidationGroup="GrpDetalleGuardar">
</asp:DropDownList> </asp:DropDownList>
<label runat="server" id="Label9" for="<%= DdlCultivosCuadro.ClientID.ToString()%>">Cultivo:</label> <label runat="server" id="Label9" for="<%= DdlCultivosCuadro.ClientID.ToString()%>">Cultivo:</label>

View File

@@ -1324,7 +1324,7 @@ Partial Class Compras_Compras
If Request("CveCompra") IsNot Nothing AndAlso IsNumeric(Request("CveCompra")) AndAlso Request("CveCompra").ToEntero > 0 Then If Request("CveCompra") IsNot Nothing AndAlso IsNumeric(Request("CveCompra")) AndAlso Request("CveCompra").ToEntero > 0 Then
extrafiltro = "" extrafiltro = ""
End If End If
DdlCultivosCuadro.DataSource = GlobalDTCultivosCuadro(UsuarioActual.CveEmpresa).FiltraParametros($"{extrafiltro} CveSubProyecto = {DdlSubProyecto.SelectedValue}") DdlCultivosCuadro.DataSource = GlobalDTCultivosCuadro(UsuarioActual.CveEmpresa).FiltraParametros($"{extrafiltro} CveSubProyecto = {DdlSubProyecto.SelectedValue}", "TemporadaCuadro")
DdlCultivosCuadro.DataBind() DdlCultivosCuadro.DataBind()
DdlCultivosCuadro.Items.Insert(0, New ListItem("Seleccione uno", "-1")) DdlCultivosCuadro.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
@@ -10927,18 +10927,27 @@ Partial Class Compras_Compras
If Version = "3.3" OrElse Version = "4.0" Then If Version = "3.3" OrElse Version = "4.0" Then
For Each traslado As XmlNode In nodeTraslados For Each traslado As XmlNode In nodeTraslados
If traslado.Attributes("Impuesto").Value = "002" Then TrasladoIVA += traslado.Attributes("Importe").Value.ToDecimal
If traslado.Attributes("Impuesto").Value = "003" Then TrasladoIEPS += traslado.Attributes("Importe").Value.ToDecimal If traslado.Attributes("Importe") IsNot Nothing Then
If traslado.Attributes("Impuesto").Value = "002" Then TrasladoIVA += traslado.Attributes("Importe").Value.ToDecimal
If traslado.Attributes("Impuesto").Value = "003" Then TrasladoIEPS += traslado.Attributes("Importe").Value.ToDecimal
End If
Next Next
Else Else
For Each traslado As XmlNode In nodeTraslados For Each traslado As XmlNode In nodeTraslados
If traslado.Attributes("impuesto").Value = "IVA" Then TrasladoIVA += traslado.Attributes("importe").Value.ToDecimal
If traslado.Attributes("impuesto").Value = "IEPS" Then TrasladoIEPS += traslado.Attributes("importe").Value.ToDecimal
If traslado.Attributes("Importe") IsNot Nothing Then
If traslado.Attributes("impuesto").Value = "IVA" Then TrasladoIVA += traslado.Attributes("importe").Value.ToDecimal
If traslado.Attributes("impuesto").Value = "IEPS" Then TrasladoIEPS += traslado.Attributes("importe").Value.ToDecimal
End If
Next Next
End If End If
@@ -11439,6 +11448,7 @@ Partial Class Compras_Compras
TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer)) TmpDT.Columns.Add("CveContratoDetalle", GetType(Integer))
TmpDT.Columns.Add("CveCultivoCuadroDetalle", GetType(Integer)) TmpDT.Columns.Add("CveCultivoCuadroDetalle", GetType(Integer))
TmpDT.Columns.Add("TemporadaCuadro", GetType(String))
TmpDTOriginal = New DataTable TmpDTOriginal = New DataTable
TmpDTOriginal.Columns.Add("Consec", GetType(Integer)) TmpDTOriginal.Columns.Add("Consec", GetType(Integer))
@@ -11548,6 +11558,7 @@ Partial Class Compras_Compras
TmpDTOriginal.Columns.Add("Importe", GetType(Double)) TmpDTOriginal.Columns.Add("Importe", GetType(Double))
TmpDTOriginal.Columns.Add("CveContratoDetalle", GetType(Double)) TmpDTOriginal.Columns.Add("CveContratoDetalle", GetType(Double))
TmpDTOriginal.Columns.Add("CveCultivoCuadroDetalle", GetType(Double)) TmpDTOriginal.Columns.Add("CveCultivoCuadroDetalle", GetType(Double))
TmpDTOriginal.Columns.Add("TemporadaCuadro", GetType(String))
End Sub End Sub
@@ -17767,6 +17778,9 @@ Partial Class Compras_Compras
'DdlProyecto.SelectedValueExist(GvRow.DataKey("CveProyecto")) 'DdlProyecto.SelectedValueExist(GvRow.DataKey("CveProyecto"))
DdlSubProyecto.SelectedValueExist(GvRow.DataKey("CveSubProyecto")) DdlSubProyecto.SelectedValueExist(GvRow.DataKey("CveSubProyecto"))
DdlSubProyecto_SelectedIndexChanged(Nothing, Nothing)
DdlTipoGasto.SelectedValueExist(GvRow.DataKey("CveTipoGasto")) DdlTipoGasto.SelectedValueExist(GvRow.DataKey("CveTipoGasto"))
Dim PS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("") Dim PS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("")
@@ -17817,6 +17831,7 @@ Partial Class Compras_Compras
DVModalAddPSChkDesvincularAF.Visible = True DVModalAddPSChkDesvincularAF.Visible = True
End If End If
DdlCultivosCuadro.SelectedValueExist(GvRow.DataKey("CveCultivoCuadroDetalle"))
UpPSS.Update() UpPSS.Update()
RegistraScript("$('#divAddProducto').modal('show');") RegistraScript("$('#divAddProducto').modal('show');")
@@ -17903,7 +17918,7 @@ Partial Class Compras_Compras
extrafiltro = "" extrafiltro = ""
End If End If
DdlCultivosCuadro.Items.Clear() DdlCultivosCuadro.Items.Clear()
DdlCultivosCuadro.DataSource = GlobalDTCultivosCuadro(UsuarioActual.CveEmpresa).FiltraParametros($"{extrafiltro} CveSubProyecto = {DdlSubProyecto.SelectedValue}") DdlCultivosCuadro.DataSource = GlobalDTCultivosCuadro(UsuarioActual.CveEmpresa).FiltraParametros($"{extrafiltro} CveSubProyecto = {DdlSubProyecto.SelectedValue}", "TemporadaCuadro")
DdlCultivosCuadro.DataBind() DdlCultivosCuadro.DataBind()
DdlCultivosCuadro.Items.Insert(0, New ListItem("Seleccione uno", "-1")) DdlCultivosCuadro.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
@@ -18194,7 +18209,8 @@ Partial Class Compras_Compras
AddPS(TxtCantidad.Text.Trim.ToDecimal, ddlUM.SelectedValue.ToEntero, ddlUM.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text, DdlPS.SelectedValue.ToEntero, DdlPS.SelectedText, HdnTipoPS.Value.ToEntero, AddPS(TxtCantidad.Text.Trim.ToDecimal, ddlUM.SelectedValue.ToEntero, ddlUM.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text, DdlPS.SelectedValue.ToEntero, DdlPS.SelectedText, HdnTipoPS.Value.ToEntero,
DdlSubProyecto.SelectedValue.ToString, DdlSubProyecto.SelectedItem.Text, DdlProyecto.SelectedItem.Text, DdlProyecto.SelectedValue.ToString, TxtObsPS.Text.Trim, TxtPrecio.Text.Trim.ToDecimal, Total, IVA, DdlSubProyecto.SelectedValue.ToString, DdlSubProyecto.SelectedItem.Text, DdlProyecto.SelectedItem.Text, DdlProyecto.SelectedValue.ToString, TxtObsPS.Text.Trim, TxtPrecio.Text.Trim.ToDecimal, Total, IVA,
TxtRetIVAModal.Text.ToDecimal / 100, TxtRetISRModal.Text.ToDecimal / 100, TxtIEPSModal.Text.ToDecimal / 100, 0, TxtDescuentoModal.Text.ToDecimal, OtrosGastos:=TxtOtrosGastos.Text.ToDecimal, CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, TipoGasto:=DdlTipoGasto.SelectedItem.Text, TxtRetIVAModal.Text.ToDecimal / 100, TxtRetISRModal.Text.ToDecimal / 100, TxtIEPSModal.Text.ToDecimal / 100, 0, TxtDescuentoModal.Text.ToDecimal, OtrosGastos:=TxtOtrosGastos.Text.ToDecimal, CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, TipoGasto:=DdlTipoGasto.SelectedItem.Text,
NoDeducible:=ChkEsNoDeduciblePS.Checked, CveSATPS:=SATClavePS, CveContratoDetalle:=CveContratoDetalle) NoDeducible:=ChkEsNoDeduciblePS.Checked, CveSATPS:=SATClavePS, CveContratoDetalle:=CveContratoDetalle,
CveCultivoCuadroDetalle:=If(DdlCultivosCuadro.SelectedValue.ToEntero > 0, DdlCultivosCuadro.SelectedValue.ToEntero, -1), TemporadaCuadro:=If(DdlCultivosCuadro.SelectedValue.ToEntero > 0, DdlCultivosCuadro.SelectedItem.Text, ""))
AddPS2() AddPS2()
LimpiaAgregar() LimpiaAgregar()
@@ -18266,7 +18282,8 @@ Partial Class Compras_Compras
Obs As String, PU As Decimal, Total As Decimal, IVA As Decimal, RetIVA As Decimal, RetISR As Decimal, IEPSPS As Decimal, IEPSPSIVA As Decimal, Descuento As Decimal, Optional CveOrdenCompraDetalle As Integer = -1, Optional TCalculaTotales As Boolean = True, Obs As String, PU As Decimal, Total As Decimal, IVA As Decimal, RetIVA As Decimal, RetISR As Decimal, IEPSPS As Decimal, IEPSPSIVA As Decimal, Descuento As Decimal, Optional CveOrdenCompraDetalle As Integer = -1, Optional TCalculaTotales As Boolean = True,
Optional PSCodigo As String = "-", Optional PSDescripcion As String = "-", Optional CantidadF As Double = -1, Optional EntregaDirecta As Integer = -1, Optional OtrosGastos As Decimal = 0, Optional PSCodigo As String = "-", Optional PSDescripcion As String = "-", Optional CantidadF As Double = -1, Optional EntregaDirecta As Integer = -1, Optional OtrosGastos As Decimal = 0,
Optional CveSATPS As Integer = -1, Optional CargaXml As Boolean = False, Optional CveTipoGasto As Integer = -1, Optional TipoGasto As String = "", Optional PorcentajeIVA As Decimal = 0, Optional CveSATPS As Integer = -1, Optional CargaXml As Boolean = False, Optional CveTipoGasto As Integer = -1, Optional TipoGasto As String = "", Optional PorcentajeIVA As Decimal = 0,
Optional PorcentajeIEPS As Decimal = 0, Optional PorcentajeRetIVA As Decimal = 0, Optional PorcentajeRetISR As Decimal = 0, Optional NoDeducible As Boolean = False, Optional CveContratoDetalle As Integer = -1, Optional CveCultivoCuadroDetalle As Integer = -1, Optional CveSATPSActualizado As Boolean = False) As Integer Optional PorcentajeIEPS As Decimal = 0, Optional PorcentajeRetIVA As Decimal = 0, Optional PorcentajeRetISR As Decimal = 0, Optional NoDeducible As Boolean = False, Optional CveContratoDetalle As Integer = -1, Optional CveCultivoCuadroDetalle As Integer = -1,
Optional CveSATPSActualizado As Boolean = False, Optional TemporadaCuadro As String = "") As Integer
Dim Row As DataRow = Nothing Dim Row As DataRow = Nothing
@@ -18374,8 +18391,17 @@ Partial Class Compras_Compras
Row("PU") = Math.Round(PU, DecimalesPermitidos) Row("PU") = Math.Round(PU, DecimalesPermitidos)
If CargaXml And (Version = "3.3" Or Version = "4.0") Then If CargaXml And (Version = "3.3" Or Version = "4.0") Then
Row("IVA") = Math.Round(IVA, DecimalesPermitidos)
Row("IVAPorcentaje") = PorcentajeIVA If CveFactura > 0 And TxtIVA.Text.ToDecimal = 0 Then
Row("IVA") = 0
Row("IVAPorcentaje") = 0
Else
Row("IVA") = Math.Round(IVA, DecimalesPermitidos)
Row("IVAPorcentaje") = PorcentajeIVA
End If
Row("RetIVA") = Math.Round(RetIVA, DecimalesPermitidos) Row("RetIVA") = Math.Round(RetIVA, DecimalesPermitidos)
Row("RetIVAPorcentaje") = PorcentajeRetIVA Row("RetIVAPorcentaje") = PorcentajeRetIVA
Row("RetISR") = Math.Round(RetISR, DecimalesPermitidos) Row("RetISR") = Math.Round(RetISR, DecimalesPermitidos)
@@ -18384,8 +18410,16 @@ Partial Class Compras_Compras
Row("IEPSPSPorcentaje") = PorcentajeIEPS Row("IEPSPSPorcentaje") = PorcentajeIEPS
Else Else
'If DdlIVA.SelectedValue.ToDouble = 0 Then Row("IVA") = 0 Else Row("IVA") = Math.Round(IVA * Total, DecimalesPermitidos) 'If DdlIVA.SelectedValue.ToDouble = 0 Then Row("IVA") = 0 Else Row("IVA") = Math.Round(IVA * Total, DecimalesPermitidos)
Row("IVA") = (IVA * Total).RoundSQL
Row("IVAPorcentaje") = IVA If CveFactura > 0 And TxtIVA.Text.ToDecimal = 0 Then
Row("IVA") = 0
Row("IVAPorcentaje") = 0
Else
Row("IVA") = (IVA * Total).RoundSQL
Row("IVAPorcentaje") = IVA
End If
Row("RetIVA") = (RetIVA * Total).RoundSQL Row("RetIVA") = (RetIVA * Total).RoundSQL
Row("RetIVAPorcentaje") = RetIVA Row("RetIVAPorcentaje") = RetIVA
Row("RetISR") = (RetISR * Total).RoundSQL Row("RetISR") = (RetISR * Total).RoundSQL
@@ -18408,6 +18442,7 @@ Partial Class Compras_Compras
Row("CveContratoDetalle") = CveContratoDetalle Row("CveContratoDetalle") = CveContratoDetalle
Row("CveCultivoCuadroDetalle") = CveCultivoCuadroDetalle Row("CveCultivoCuadroDetalle") = CveCultivoCuadroDetalle
Row("TemporadaCuadro") = TemporadaCuadro
If UsuarioActual.Empresa.UsaAC Then If UsuarioActual.Empresa.UsaAC Then
Row("CveProgramaOperativo") = DdlACGeneral1.SelectedValue.ToEntero Row("CveProgramaOperativo") = DdlACGeneral1.SelectedValue.ToEntero
@@ -18436,7 +18471,9 @@ Partial Class Compras_Compras
Return Retorno Return Retorno
End Function End Function
Private Sub AddPS2(Optional pCalculaTotales As Boolean = True, Optional EsNoDeducible As Boolean = False) Private Sub AddPS2(Optional pCalculaTotales As Boolean = True, Optional EsNoDeducible As Boolean = False)
Dim view As DataView = New DataView(TmpDT) Dim view As DataView = New DataView(TmpDT)
view.Sort = "Consec" view.Sort = "Consec"
GvPS.DataSource = view GvPS.DataSource = view
'GvPS.DataSource = TmpDT 'GvPS.DataSource = TmpDT
@@ -18549,8 +18586,15 @@ Partial Class Compras_Compras
'I f Not (CveCompra > 0 Or CveFactura > 0 Or OCVinculada) Then 'I f Not (CveCompra > 0 Or CveFactura > 0 Or OCVinculada) Then
'If DdlIVA.SelectedValue.ToDouble = 0 Then DrPS("IVA") = 0 Else DrPS("IVA") = IVA * Total 'If DdlIVA.SelectedValue.ToDouble = 0 Then DrPS("IVA") = 0 Else DrPS("IVA") = IVA * Total
DrPS("IVA") = (IVA * Total).RoundSQL
DrPS("IVAPorcentaje") = IVA If CveFactura > 0 And TxtIVA.Text.ToDecimal = 0 Then
DrPS("IVA") = 0
DrPS("IVAPorcentaje") = 0
Else
DrPS("IVA") = (IVA * Total).RoundSQL
DrPS("IVAPorcentaje") = IVA
End If
DrPS("RetIVA") = (RetIVA * Total).RoundSQL DrPS("RetIVA") = (RetIVA * Total).RoundSQL
DrPS("RetIVAPorcentaje") = RetIVA DrPS("RetIVAPorcentaje") = RetIVA
DrPS("RetISR") = RetISR * Total DrPS("RetISR") = RetISR * Total
@@ -18560,6 +18604,12 @@ Partial Class Compras_Compras
DrPS("IEPSPSIVA") = (IEPSPSIVA * Total).RoundSQL DrPS("IEPSPSIVA") = (IEPSPSIVA * Total).RoundSQL
DrPS("IEPSPSIVAPorcentaje") = IEPSPSIVA DrPS("IEPSPSIVAPorcentaje") = IEPSPSIVA
DrPS("CveCultivoCuadroDetalle") = If(DdlCultivosCuadro.SelectedValue.ToEntero > 0, DdlCultivosCuadro.SelectedValue.ToEntero, -1)
DrPS("TemporadaCuadro") = If(DdlCultivosCuadro.SelectedValue.ToEntero > 0, DdlCultivosCuadro.SelectedItem.Text, "")
'Esta parte es para validar cuando la factura tenga ieps en o se asignara el ieps como una partida ya no se considere 'Esta parte es para validar cuando la factura tenga ieps en o se asignara el ieps como una partida ya no se considere
If (CveFactura > 0 Or CveCompra > 0) And TxtIEPS.Text.ToDecimal = 0 Then If (CveFactura > 0 Or CveCompra > 0) And TxtIEPS.Text.ToDecimal = 0 Then

View File

@@ -138,6 +138,8 @@ Partial Class Compras_RepComprasAF
LblSubProyecto.Text = "Sucursal" LblSubProyecto.Text = "Sucursal"
End If End If
CargaPS(-1)
End Sub End Sub
Private Sub DdlTipoActivoFijo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoActivoFijo.SelectedIndexChanged Private Sub DdlTipoActivoFijo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoActivoFijo.SelectedIndexChanged
@@ -209,18 +211,15 @@ Partial Class Compras_RepComprasAF
FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1") FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1")
FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1")
Dim PS As String = DdlPS.txtText.Value Dim PS As String = DdlPS.txtText.Value
Dim CvePS As String = DdlPS.txtValue.Value Dim CvePS As Integer = DdlPS.txtValue.Value.ToEntero
If CvePS = "" Or CvePS = "0" Then
CvePS = "-1"
End If
If e.Row.DBCampo("Orden") = "1" Then If e.Row.DBCampo("Orden") = "1" Then
Dim Liga As String = $"/Compras/RepComprasAFDetalle.aspx?GPO={DdlGrupo.SelectedValue}&Anio={e.Row.DBCampo("Anio")}&Mes={e.Row.DBCampo("Mes")}&AnioMes={ e.Row.DBCampo("AnioMes")}&Fecha={e.Row.DBCampo("Fecha")}&CveProveedor={ e.Row.DBCampo("CveProveedor")}&CveActivoFijo={e.Row.DBCampo("CveActivoFijo")}&CveTipoActivoFijo={e.Row.DBCampo("CveTipoActivoFijo")}&CveSubTipoActivoFijo={e.Row.DBCampo("CveSubTipoActivoFijo")}&CveProyecto={ DdlProyecto.SelectedValue}&CveSubProyecto={DdlSubProyecto.SelectedValue}&CvePS={CvePS}&CveClasificacion={e.Row.DBCampo("CveClasificacion")}&CveMoneda={ e.Row.DBCampo("CveMoneda")}&FechaI={FechaI}&FechaF={FechaF}&PS={PS}&CveClasificacion2={e.Row.DBCampo("CveClasificacion2")}" Dim Liga As String = $"/Compras/RepComprasAFDetalle.aspx?GPO={DdlGrupo.SelectedValue}&Anio={e.Row.DBCampo("Anio")}&Mes={e.Row.DBCampo("Mes")}&AnioMes={ e.Row.DBCampo("AnioMes")}&Fecha={e.Row.DBCampo("Fecha")}&CveProveedor={ e.Row.DBCampo("CveProveedor")}&CveActivoFijo={e.Row.DBCampo("CveActivoFijo")}&CveTipoActivoFijo={e.Row.DBCampo("CveTipoActivoFijo")}&CveSubTipoActivoFijo={e.Row.DBCampo("CveSubTipoActivoFijo")}&CveProyecto={ DdlProyecto.SelectedValue}&CveSubProyecto={DdlSubProyecto.SelectedValue}&CvePS={ If(CvePS > 0, CvePS.ToString, e.Row.DBCampo("CvePS").ToString) }&CveClasificacion={e.Row.DBCampo("CveClasificacion")}&CveMoneda={ e.Row.DBCampo("CveMoneda")}&FechaI={FechaI}&FechaF={FechaF}&PS={PS}&CveClasificacion2={e.Row.DBCampo("CveClasificacion2")}"
e.Row.Cells(0).Text = String.Format("<a class='{0}' target='_blank' href='{1}'>{2}</a>", "Texto", Liga, e.Row.DataKey("GPO").ToString) e.Row.Cells(0).Text = String.Format("<a class='{0}' target='_blank' href='{1}'>{2}</a>", "Texto", Liga, e.Row.DataKey("GPO").ToString)
Else Else
e.Row.BackColor = Drawing.Color.LightGray e.Row.BackColor = Drawing.Color.LightGray
Dim Liga As String = $"/Compras/RepComprasAFDetalle.aspx?GPO=-1&Anio={e.Row.DBCampo("Anio")}&Mes={e.Row.DBCampo("Mes")}&AnioMes={ e.Row.DBCampo("AnioMes")}&Fecha={e.Row.DBCampo("Fecha")}&CveProveedor={ e.Row.DBCampo("CveProveedor")}&CveActivoFijo={e.Row.DBCampo("CveActivoFijo")}&CveTipoActivoFijo={e.Row.DBCampo("CveTipoActivoFijo")}&CveSubTipoActivoFijo={e.Row.DBCampo("CveSubTipoActivoFijo")}&CveProyecto={ DdlProyecto.SelectedValue}&CveSubProyecto={DdlSubProyecto.SelectedValue}&CvePS={CvePS}&CveClasificacion={e.Row.DBCampo("CveClasificacion")}&CveMoneda={ e.Row.DBCampo("CveMoneda")}&FechaI={FechaI}&FechaF={FechaF}&PS={PS}&CveClasificacion2={e.Row.DBCampo("CveClasificacion2")}" Dim Liga As String = $"/Compras/RepComprasAFDetalle.aspx?GPO=-1&Anio={e.Row.DBCampo("Anio")}&Mes={e.Row.DBCampo("Mes")}&AnioMes={ e.Row.DBCampo("AnioMes")}&Fecha={e.Row.DBCampo("Fecha")}&CveProveedor={ e.Row.DBCampo("CveProveedor")}&CveActivoFijo={e.Row.DBCampo("CveActivoFijo")}&CveTipoActivoFijo={e.Row.DBCampo("CveTipoActivoFijo")}&CveSubTipoActivoFijo={e.Row.DBCampo("CveSubTipoActivoFijo")}&CveProyecto={ DdlProyecto.SelectedValue}&CveSubProyecto={DdlSubProyecto.SelectedValue}&CvePS={ If(CvePS > 0, CvePS.ToString, e.Row.DBCampo("CvePS").ToString)}&CveClasificacion={e.Row.DBCampo("CveClasificacion")}&CveMoneda={ e.Row.DBCampo("CveMoneda")}&FechaI={FechaI}&FechaF={FechaF}&PS={PS}&CveClasificacion2={e.Row.DBCampo("CveClasificacion2")}"
e.Row.Cells(0).Text = String.Format("<a style='font-weight:bold' class='{0}' target='_blank' href='{1}'>{2}</a>", "Texto", Liga, e.Row.DataKey("Moneda").ToString) e.Row.Cells(0).Text = String.Format("<a style='font-weight:bold' class='{0}' target='_blank' href='{1}'>{2}</a>", "Texto", Liga, e.Row.DataKey("Moneda").ToString)
@@ -476,7 +475,12 @@ Partial Class Compras_RepComprasAF
If Not UsuarioActual.Empresa.Funcionalidad(105).ToString = "1" Then If Not UsuarioActual.Empresa.Funcionalidad(105).ToString = "1" Then
DdlPS.ddl.Items.Clear() DdlPS.ddl.Items.Clear()
DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, Estatus:=1)
If CveClasificacion > 0 Then
DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, Estatus:=1)
End If
DdlPS.ddl.DataBind() DdlPS.ddl.DataBind()
DdlPS.ddl.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2")) DdlPS.ddl.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))

View File

@@ -662,7 +662,7 @@
</TablixCell> </TablixCell>
<TablixCell> <TablixCell>
<CellContents> <CellContents>
<Textbox Name="Codigo1"> <Textbox Name="SATClaveProdServ">
<CanGrow>true</CanGrow> <CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether> <KeepTogether>true</KeepTogether>
<Paragraphs> <Paragraphs>
@@ -674,13 +674,19 @@
<FontSize>7pt</FontSize> <FontSize>7pt</FontSize>
</Style> </Style>
</TextRun> </TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontSize>7pt</FontSize>
</Style>
</TextRun>
</TextRuns> </TextRuns>
<Style> <Style>
<TextAlign>Left</TextAlign> <TextAlign>Left</TextAlign>
</Style> </Style>
</Paragraph> </Paragraph>
</Paragraphs> </Paragraphs>
<rd:DefaultName>Codigo1</rd:DefaultName> <rd:DefaultName>SATClaveProdServ</rd:DefaultName>
<Style> <Style>
<Border> <Border>
<Color>LightGrey</Color> <Color>LightGrey</Color>
@@ -736,7 +742,7 @@
</TablixCell> </TablixCell>
<TablixCell> <TablixCell>
<CellContents> <CellContents>
<Textbox Name="SATClaveProdServ"> <Textbox Name="Codigo">
<CanGrow>true</CanGrow> <CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether> <KeepTogether>true</KeepTogether>
<Paragraphs> <Paragraphs>
@@ -754,7 +760,7 @@
</Style> </Style>
</Paragraph> </Paragraph>
</Paragraphs> </Paragraphs>
<rd:DefaultName>SATClaveProdServ</rd:DefaultName> <rd:DefaultName>Codigo</rd:DefaultName>
<Style> <Style>
<Border> <Border>
<Color>LightGrey</Color> <Color>LightGrey</Color>
@@ -3269,18 +3275,6 @@
<Parameter Name="NumTotalMercancias"> <Parameter Name="NumTotalMercancias">
<Value>=Parameters!SRP_NumTotalMercancias.Value</Value> <Value>=Parameters!SRP_NumTotalMercancias.Value</Value>
</Parameter> </Parameter>
<Parameter Name="PermisoSCTRemolque1">
<Value>=Parameters!SRP_PermisoSCTRemolque1.Value</Value>
</Parameter>
<Parameter Name="PermisoSCTRemolque2">
<Value>=Parameters!SRP_PermisoSCTRemolque2.Value</Value>
</Parameter>
<Parameter Name="ConfATR1">
<Value>=Parameters!SRP_ConfATR1.Value</Value>
</Parameter>
<Parameter Name="ConfATR2">
<Value>=Parameters!SRP_ConfATR2.Value</Value>
</Parameter>
</Parameters> </Parameters>
<Top>0.06863cm</Top> <Top>0.06863cm</Top>
<Height>1.11461cm</Height> <Height>1.11461cm</Height>
@@ -4674,30 +4668,6 @@
<AllowBlank>true</AllowBlank> <AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt> <Prompt>ReportParameter1</Prompt>
</ReportParameter> </ReportParameter>
<ReportParameter Name="SRP_PermisoSCTRemolque1">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="SRP_PermisoSCTRemolque2">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="SRP_ConfATR1">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="SRP_ConfATR2">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters> </ReportParameters>
<EmbeddedImages> <EmbeddedImages>
<EmbeddedImage Name="Logo"> <EmbeddedImage Name="Logo">

View File

@@ -362,7 +362,7 @@ Partial Class Inventarios_CartaPorteManual
DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CveProducto).FiltroPrimero("") ' Estado = -1 DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CveProducto).FiltroPrimero("") ' Estado = -1
If DrPS IsNot Nothing AndAlso ValidaPSSAT(DrPS) Then If DrPS IsNot Nothing AndAlso ValidaPSSAT(DrPS, TxtPesoKg.Text.ToDecimal) Then
'codigo temporal 'codigo temporal
Dim tLote As String Dim tLote As String
@@ -1553,11 +1553,11 @@ Partial Class Inventarios_CartaPorteManual
Function ValidaPSSAT(DrPS As DataRow) As Boolean Function ValidaPSSAT(DrPS As DataRow, PesoKg As Decimal) As Boolean
Dim Respuesta As Boolean = False Dim Respuesta As Boolean = False
Dim CveSATPS As Integer = DrPS("CveSATPS").ToString.ToEntero Dim CveSATPS As Integer = DrPS("CveSATPS").ToString.ToEntero
Dim PesoKg As Decimal = DrPS("PesoKg").ToString.ToDecimal 'Dim PesoKg As Decimal = DrPS("PesoKg").ToString.ToDecimal
Dim SATClaveUnidadMedida As String = DrPS("SATClaveUnidadMedida").ToString.Trim Dim SATClaveUnidadMedida As String = DrPS("SATClaveUnidadMedida").ToString.Trim
If CveSATPS > 0 And PesoKg > 0 And SATClaveUnidadMedida.Length > 0 Then If CveSATPS > 0 And PesoKg > 0 And SATClaveUnidadMedida.Length > 0 Then

View File

@@ -1266,7 +1266,7 @@ Partial Class Inventarios_EntradasSalidas
Dim TieneError = False Dim TieneError = False
Dim ObjConta As ClsContPAQi = Nothing Dim ObjConta As ClsContPAQi = Nothing
If UsuarioActual.Empresa.UsaContabilidad Or UsuarioActual.Empresa.UsaAC Then If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso (UsuarioActual.Empresa.UsaContabilidad Or UsuarioActual.Empresa.UsaAC) Then
ObjConta = New ClsContPAQi(UsuarioActual.Empresa) ObjConta = New ClsContPAQi(UsuarioActual.Empresa)
ObjConta.IniciaTransacSQL() ObjConta.IniciaTransacSQL()
End If End If
@@ -1803,7 +1803,7 @@ Partial Class Inventarios_EntradasSalidas
Case 30 Case 30
CveConceptoContable = 181 CveConceptoContable = 181
TipoMovtoOtro = False TipoMovtoOtro = False
tCveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero If DdlSubProyecto.Visible = True AndAlso DdlSubProyecto.SelectedValue.ToEntero > 0 Then tCveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero
If UsuarioActual.Empresa.Funcionalidad(342).ToEntero > 0 Then If UsuarioActual.Empresa.Funcionalidad(342).ToEntero > 0 Then
IdCtaContableOtro = UsuarioActual.Empresa.Funcionalidad(342).ToEntero IdCtaContableOtro = UsuarioActual.Empresa.Funcionalidad(342).ToEntero
End If End If
@@ -3350,9 +3350,8 @@ Partial Class Inventarios_EntradasSalidas
DdlAlmacen.DataBind() DdlAlmacen.DataBind()
Dim dttA As DataTable = Nothing Dim dttA As DataTable = Nothing
dttA = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 14) dttA = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 14)
If UsuarioActual.CveEmpresa = 119 Then dttA.Merge(GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1))
dttA.Merge(GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1))
End If
DdlAlmacen.DataSource = dttA 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) DdlAlmacen.DataSource = dttA 'GlobalDTAlmacen(UsuarioActual.CveEmpresa)
DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1"))
' DdlAlmacen.SelectedValue = "-1" ' DdlAlmacen.SelectedValue = "-1"
@@ -4469,6 +4468,15 @@ Partial Class Inventarios_EntradasSalidas
End If End If
End If End If
Dim RetornoVirtual As MMovimientoVirtual = Nothing
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
RetornoVirtual = GenerarMovimientoVirtual(CveMovimiento, ObjInventario)
End If
If RetornoVirtual IsNot Nothing Then
ErrorMovInv = RetornoVirtual.TieneError
End If
If Not ErrorMovInv Then If Not ErrorMovInv Then
ObjInventario.Commit() ' aplica los movimientos insertados ObjInventario.Commit() ' aplica los movimientos insertados

View File

@@ -613,7 +613,7 @@ Partial Class Inventarios_RecepcionUsados
CargaPS() CargaPS()
End Sub End Sub
Private Sub CargaAlmacen(Optional CveSubProyecto As Integer = -1, Optional TipoAlmacen As Integer = 22) Private Sub CargaAlmacen(Optional CveSubProyecto As Integer = -1, Optional TipoAlmacen As Integer = 22, Optional BloquearAlmacen As Boolean = False)
DdlAlmacen.Items.Clear() DdlAlmacen.Items.Clear()
'Llenar el dropdownlist de almacén 'Llenar el dropdownlist de almacén
Dim dt As DataTable = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=TipoAlmacen) Dim dt As DataTable = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=TipoAlmacen)
@@ -633,6 +633,9 @@ Partial Class Inventarios_RecepcionUsados
Dim CveAlmacen As Integer = dt.FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto = {CveSubProyecto}").ToEntero() Dim CveAlmacen As Integer = dt.FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto = {CveSubProyecto}").ToEntero()
If CveAlmacen > 0 Then If CveAlmacen > 0 Then
DdlAlmacen.SelectedValueExist(CveAlmacen) DdlAlmacen.SelectedValueExist(CveAlmacen)
If BloquearAlmacen Then
DdlAlmacen.Enabled = False
End If
End If End If
End If End If
@@ -766,10 +769,13 @@ Partial Class Inventarios_RecepcionUsados
TmpDTAjustes.Rows.Clear() TmpDTAjustes.Rows.Clear()
End If End If
RblUsadosAjuste.Enabled = True
CveRemisionRecibida = -1 CveRemisionRecibida = -1
EsDistribuidor = False EsDistribuidor = False
DdlClientes.SelectedValueExist("-1") InicializaClientes(True)
DdlClientes_SelectedIndexChanged(DdlClientes, EventArgs.Empty) DdlClientes.Enabled = True
ChkClientesTodos.Enabled = True
SiguienteFolio() SiguienteFolio()
@@ -2024,15 +2030,17 @@ Partial Class Inventarios_RecepcionUsados
Protected Sub DdlClientes_SelectedIndexChanged(sender As Object, e As EventArgs) Protected Sub DdlClientes_SelectedIndexChanged(sender As Object, e As EventArgs)
CambiaCliente() CambiaCliente()
End Sub End Sub
Private Sub CambiaCliente() Private Sub CambiaCliente(Optional CargaSucursales As Boolean = True, Optional CargaFacturas As Boolean = True)
DivClienteSucursal.Visible = False
DdlClientesSucursales.Items.Clear()
If DdlClientes.SelectedValue.ToEntero > 0 Then If DdlClientes.SelectedValue.ToEntero > 0 Then
Me.EsDistribuidor = CBool(GlobalDTCliente(UsuarioActual.CveEmpresa, CveCliente:=DdlClientes.SelectedValue.ToEntero()).FiltroPrimeroValor("EsDistribuidor", "")) Me.EsDistribuidor = CBool(GlobalDTCliente(UsuarioActual.CveEmpresa, CveCliente:=DdlClientes.SelectedValue.ToEntero()).FiltroPrimeroValor("EsDistribuidor", ""))
If CargaSucursales Then
CargaSucursalesCliente() DivClienteSucursal.Visible = False
CargaFacturasCliente() DdlClientesSucursales.Items.Clear()
CargaSucursalesCliente()
End If
If CargaFacturas Then
CargaFacturasCliente()
End If
End If End If
UpGenerales.Update() UpGenerales.Update()
End Sub End Sub
@@ -2250,7 +2258,12 @@ Partial Class Inventarios_RecepcionUsados
Me.CveRemisionRecibida = -1 Me.CveRemisionRecibida = -1
Me.CveRemisionRecibida = CType(CType(sender, LinkButton).NamingContainer, GridViewRow).DataKey("CveVenta").ToEntero() Me.CveRemisionRecibida = CType(CType(sender, LinkButton).NamingContainer, GridViewRow).DataKey("CveVenta").ToEntero()
RecibirRemision() If Me.CveRemisionRecibida > 0 Then
RecibirRemision()
Else
Alert("No se pudo recibir la remisión", TipoMensaje.MsgError)
End If
End Sub End Sub
Private Sub RecibirRemision() Private Sub RecibirRemision()
@@ -2261,7 +2274,7 @@ Partial Class Inventarios_RecepcionUsados
Me.ObjFactura = Nothing Me.ObjFactura = Nothing
End If End If
Me.ObjFactura = New Modelos.Factura(UsuarioActual, CveRemisionRecibida, UsuarioActual.CveEmpresa, DirectorioServidor:=ModExtensiones.DirectorioBaseEmpresas) Me.ObjFactura = New Modelos.Factura(UsuarioActual, CveRemisionRecibida, UsuarioActual.CveEmpresa, DirectorioServidor:=ModExtensiones.DirectorioBaseEmpresas, CargaDatosCliente:=False, CargaDatosRelacionados:=False)
If Me.ObjFactura IsNot Nothing Then If Me.ObjFactura IsNot Nothing Then
@@ -2271,28 +2284,15 @@ Partial Class Inventarios_RecepcionUsados
Dim DtUsados As DataTable = Nothing Dim DtUsados As DataTable = Nothing
Dim CveCliente As Integer = -1 Dim CveCliente As Integer = -1
EsDistribuidor = ObjFactura.EsDistribuidor
CveCliente = Me.ObjFactura.CveCliente
Dim ObjVentas As New ClsVentas Dim ObjVentas As New ClsVentas
If ObjVentas.GetVenta(CveRemisionRecibida, UsuarioActual.CveEmpresa) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then
EsDistribuidor = CBool(ObjVentas.DtResultados.Rows(0)("EsDistribuidor").ToString())
CveCliente = ObjVentas.DtResultados.Rows(0)("CveCliente").ToString().ToEntero()
End If
If ObjVentas.GetVentasUsadosDetalle(CveRemisionRecibida) Then If ObjVentas.GetVentasUsadosDetalle(CveRemisionRecibida) Then
DtUsados = ObjVentas.DtResultados.Copy() DtUsados = ObjVentas.DtResultados.Copy()
End If End If
'RELACIONA LA VENTA DETALLA DE LA REMISION
If DtUsados IsNot Nothing Then
DtUsados.Columns.Add(New DataColumn("CveVentaDetalle", GetType(Integer)))
For Each RowUsado As DataRow In DtUsados.Rows
Dim CveVentaDetalle As Integer = Me.ObjFactura.DtDetalle.FiltroPrimeroValor("CveVentaDetalle", $"EsCargo = 1 AND Cantidad = {RowUsado("Cantidad")} AND CvePS = {RowUsado("CvePS")}").ToEntero()
If CveVentaDetalle > 0 Then
RowUsado("CveVentaDetalle") = CveVentaDetalle
End If
Next
End If
Dim RecepcionValida As Boolean = True Dim RecepcionValida As Boolean = True
If ObjVentas.GetVentasUsados(ObjFactura.CveVenta, ObjFactura.CveSubProyecto, ObjFactura.Fecha, UsuarioActual.CveEmpresa, ServicioDomicilio:=ObjFactura.ServicioDomicilio) Then If ObjVentas.GetVentasUsados(ObjFactura.CveVenta, ObjFactura.CveSubProyecto, ObjFactura.Fecha, UsuarioActual.CveEmpresa, ServicioDomicilio:=ObjFactura.ServicioDomicilio) Then
@@ -2312,22 +2312,38 @@ Partial Class Inventarios_RecepcionUsados
Exit Sub Exit Sub
End If End If
'RELACIONA LA VENTA DETALLA DE LA REMISION
If DtUsados IsNot Nothing Then
DtUsados.Columns.Add(New DataColumn("CveVentaDetalle", GetType(Integer)))
For Each RowUsado As DataRow In DtUsados.Rows
Dim CveVentaDetalle As Integer = Me.ObjFactura.DtDetalle.FiltroPrimeroValor("CveVentaDetalle", $"EsCargo = 1 AND Cantidad = {RowUsado("Cantidad")} AND CvePS = {RowUsado("CvePS")}").ToEntero()
If CveVentaDetalle > 0 Then
RowUsado("CveVentaDetalle") = CveVentaDetalle
End If
Next
End If
If ObjFactura.CveSubProyecto > 0 Then If ObjFactura.CveSubProyecto > 0 Then
CargaAlmacen(CveSubProyecto:=ObjFactura.CveSubProyecto) CargaAlmacen(CveSubProyecto:=ObjFactura.CveSubProyecto, BloquearAlmacen:=True)
End If End If
If CveCliente > 0 Then If CveCliente > 0 Then
DivCliente.Visible = True
DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveCliente = {0}", CveCliente)) DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveCliente = {0}", CveCliente))
DdlClientes.DataBind() DdlClientes.DataBind()
DdlClientes.SelectedValueExist(CveCliente) DdlClientes.SelectedValueExist(CveCliente)
CambiaCliente(False, False)
DdlClientes.Enabled = False
ChkClientesTodos.Enabled = False
End If End If
RblUsadosAjuste.Enabled = False
'SI ES DISTRIBUIDOR VAMOS A GENERAR LA REMISION DE NOTA DE CREDITO 'SI ES DISTRIBUIDOR VAMOS A GENERAR LA REMISION DE NOTA DE CREDITO
If EsDistribuidor Then If EsDistribuidor Then
DivCliente.Visible = True
DdlClientes.SelectedValueExist(CveCliente)
DdlClientes_SelectedIndexChanged(DdlClientes, EventArgs.Empty)
If Me.ObjRemisionNC IsNot Nothing Then If Me.ObjRemisionNC IsNot Nothing Then
Me.ObjRemisionNC.Dispose() Me.ObjRemisionNC.Dispose()
Me.ObjRemisionNC = Nothing Me.ObjRemisionNC = Nothing
@@ -2337,9 +2353,6 @@ Partial Class Inventarios_RecepcionUsados
'CreaRemisionNC(ObjFactura.CveCliente, ObjFactura.CveSubProyecto, ObjFactura.CveMoneda) 'CreaRemisionNC(ObjFactura.CveCliente, ObjFactura.CveSubProyecto, ObjFactura.CveMoneda)
DivTotal.Visible = True DivTotal.Visible = True
End If End If
Else
'DivCliente.Visible = False
'DivFactura.Visible = False
End If End If
If DtUsados IsNot Nothing Then If DtUsados IsNot Nothing Then

View File

@@ -1260,8 +1260,9 @@ Partial Class ProductosyServicios
If DdlSATPS.txtValue.Value.ToEntero > 0 Then If DdlSATPS.txtValue.Value.ToEntero > 0 Then
If UsuarioActual.Empresa.Funcionalidad(161) = "1" Then ' si tiene activada la carta porte If UsuarioActual.Empresa.Funcionalidad(161) = "1" Then ' si tiene activada la carta porte
ValidaMaterialPeligroso(DdlSATPS.txtValue.Value.ToEntero)
If Not ValidaMaterialPeligrosoMensaje Then If Not ValidaMaterialPeligrosoMensaje Then
ValidaMaterialPeligroso(DdlSATPS.txtValue.Value.ToEntero)
Exit Sub Exit Sub
End If End If
End If End If
@@ -3148,7 +3149,9 @@ Partial Class ProductosyServicios
ObjGrales.Dispose() ObjGrales.Dispose()
If ValidaMaterialPeligrosoMensaje Then
BtnGuardar_Click(Nothing, Nothing)
End If
'Return Respuesta 'Return Respuesta

View File

@@ -907,7 +907,7 @@ Partial Class RepVentaDetalle
TipoDocto = "Dev" TipoDocto = "Dev"
End Select End Select
pathPDF = Server.MapPath(String.Format("~/Empresas/{0}/PDF/{1}/{2}.pdf", UsuarioActual.CveEmpresa, TipoDocto, gvr.DataKey("SerieFolio").ToString)) pathPDF = String.Format("{0}/PDF/{1}/{2}.pdf", UsuarioActual.Empresa.Ruta, TipoDocto, gvr.DataKey("SerieFolio").ToString)
If IO.File.Exists(pathPDF) Then If IO.File.Exists(pathPDF) Then
'NO AGREGAR ARCHIVOS REPETIDOS 'NO AGREGAR ARCHIVOS REPETIDOS
@@ -924,27 +924,6 @@ Partial Class RepVentaDetalle
Response.ContentType = "application/zip" Response.ContentType = "application/zip"
Response.End() Response.End()
End Sub End Sub
Private Function DescargarFactura(CveVenta As Integer, CveEmpresa As Integer, CveUsuarioCreo As Integer) As Byte()
Dim Url = New Uri(String.Format("{0}Compras/PopUpVerFactura.aspx?P={1}", "http://localhost:85/", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1&GUARDAR=1", CveVenta))))
Dim File As Byte() = Nothing
Try
Using httpClient = New HttpClient()
httpClient.Timeout = New TimeSpan(0, 15, 0)
Using request = New HttpRequestMessage(HttpMethod.Get, Url)
request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CVEUSUARIO={2}", CveEmpresa, DateTime.UtcNow.Ticks, CveUsuarioCreo)))
Dim response = httpClient.SendAsync(request).Result
If response.StatusCode = Net.HttpStatusCode.OK Then
File = response.Content.ReadAsByteArrayAsync().Result
End If
End Using
End Using
Catch ex As Exception
File = Nothing
OnError("Ocurrió un error al descargar la factura", ex)
End Try
Return File
End Function
Private Sub BtnDescargarXML_Click(sender As Object, e As EventArgs) Handles BtnDescargarXML.Click Private Sub BtnDescargarXML_Click(sender As Object, e As EventArgs) Handles BtnDescargarXML.Click
Dim pathXML As String Dim pathXML As String
@@ -973,7 +952,7 @@ Partial Class RepVentaDetalle
TipoDocto = "Dev" TipoDocto = "Dev"
End Select End Select
pathXML = Server.MapPath(String.Format("~/Empresas/{0}/XML/{1}/{2}.xml", UsuarioActual.CveEmpresa, TipoDocto, gvr.DataKey("SerieFolio").ToString)) pathXML = String.Format("{0}XML/{1}/{2}.xml", UsuarioActual.Empresa.Ruta, TipoDocto, gvr.DataKey("SerieFolio").ToString)
If IO.File.Exists(pathXML) Then If IO.File.Exists(pathXML) Then
'NO AGREGAR ARCHIVOS REPETIDOS 'NO AGREGAR ARCHIVOS REPETIDOS
@@ -990,6 +969,27 @@ Partial Class RepVentaDetalle
Response.ContentType = "application/zip" Response.ContentType = "application/zip"
Response.End() Response.End()
End Sub End Sub
Private Function DescargarFactura(CveVenta As Integer, CveEmpresa As Integer, CveUsuarioCreo As Integer) As Byte()
Dim Url = New Uri(String.Format("{0}Compras/PopUpVerFactura.aspx?P={1}", "http://localhost:85/", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1&GUARDAR=1", CveVenta))))
Dim File As Byte() = Nothing
Try
Using httpClient = New HttpClient()
httpClient.Timeout = New TimeSpan(0, 15, 0)
Using request = New HttpRequestMessage(HttpMethod.Get, Url)
request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CVEUSUARIO={2}", CveEmpresa, DateTime.UtcNow.Ticks, CveUsuarioCreo)))
Dim response = httpClient.SendAsync(request).Result
If response.StatusCode = Net.HttpStatusCode.OK Then
File = response.Content.ReadAsByteArrayAsync().Result
End If
End Using
End Using
Catch ex As Exception
File = Nothing
OnError("Ocurrió un error al descargar la factura", ex)
End Try
Return File
End Function
Private Sub GenerarPDF(Optional Formato As String = "PDF") Private Sub GenerarPDF(Optional Formato As String = "PDF")
If DtVentas IsNot Nothing Then If DtVentas IsNot Nothing Then