This commit is contained in:
2022-08-04 08:36:33 -07:00
22 changed files with 1479 additions and 613 deletions

View File

@@ -172,6 +172,7 @@ Public Class ClsClientes
Public Property CodigoRegimenFiscal As String
Public Property RegimenFiscal As String
Public Property RepresentanteLegal As String
#End Region
@@ -429,6 +430,7 @@ Public Class ClsClientes
_RegimenFiscal = Data(0)("RegimenFiscal").ToString
_CodigoRegimenFiscal = Data(0)("CodigoRegimenFiscal").ToString
_RepresentanteLegal = Data(0)("RepresentanteLegal").ToString
End If
Retorno = True
@@ -586,7 +588,8 @@ Public Class ClsClientes
Optional AplicaComercioExterior As Boolean = False, Optional CveTipoOperacion As Integer = -1, Optional CvePedimento As Integer = -1, Optional CveIncoterm As Integer = -1, Optional CvePais As Integer = -1, Optional CveEstado As Integer = -1, Optional CveMunicipio As Integer = -1, Optional CveColonia As Integer = -1,
Optional CveMotivoTraslado As Integer = 0, Optional NumRegIdTrib As String = "", Optional ComExtEstado As String = "-1", Optional ComExtMunicipio As String = "-1", Optional ComExtColonia As String = "-1", Optional RequiereOC As Boolean = False,
Optional LT As String = "0", Optional LG As String = "0", Optional EsDistribuidor As Boolean = False, Optional TipoCliente As Integer = 1, Optional CargoUsado As Boolean = False, Optional BonificacionUsado As Boolean = False, Optional CveTipoRetencion As Integer = 0,
Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional CveRegimenFiscal As Integer = 0, Optional RegimenSociedad As String = "-1", Optional TipoPersona As Boolean = False) As Boolean
Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional CveRegimenFiscal As Integer = 0, Optional RegimenSociedad As String = "-1", Optional TipoPersona As Boolean = False,
Optional RepresentanteLegal As String = "") As Boolean
Dim Retorno As Boolean = False
@@ -731,6 +734,9 @@ Public Class ClsClientes
.Add("@RegimenSociedad", SqlDbType.VarChar).Value = RegimenSociedad
.Add("@TipoPersona", SqlDbType.Bit).Value = TipoPersona
.Add("@RepresentanteLegal", SqlDbType.VarChar).Value = RepresentanteLegal
@@ -782,7 +788,8 @@ Public Class ClsClientes
Optional CveMotivoTraslado As Integer = 0, Optional NumRegIdTrib As String = "-1", Optional ComExtEstado As String = "-1", Optional ComExtMunicipio As String = "-1", Optional ComExtColonia As String = "-1",
Optional ApellidoPaternoPF As String = "-1", Optional ApellidoMaternoPF As String = "-1", Optional NombresPF As String = "-1", Optional RequiereOC As Boolean = False,
Optional LT As String = "0", Optional LG As String = "0", Optional EsDistribuidor As Boolean = False, Optional TipoCliente As Integer = 1, Optional CargoUsado As Boolean = False, Optional BonificacionUsado As Boolean = False, Optional CveTipoRetencion As Integer = 0, Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1",
Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional NoDesglosaIVA As Boolean = False, Optional CveRegimenFiscal As Integer = 0, Optional RegimenSociedad As String = "-1", Optional TipoPersona As Boolean = False) As Boolean
Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional NoDesglosaIVA As Boolean = False, Optional CveRegimenFiscal As Integer = 0, Optional RegimenSociedad As String = "-1", Optional TipoPersona As Boolean = False,
Optional RepresentanteLegal As String = "") As Boolean
Dim Retorno As Boolean = False
@@ -943,6 +950,7 @@ Public Class ClsClientes
.Add("@RegimenSociedad", SqlDbType.VarChar).Value = RegimenSociedad
.Add("@TipoPersona", SqlDbType.Bit).Value = TipoPersona
.Add("@RepresentanteLegal", SqlDbType.VarChar).Value = RepresentanteLegal

View File

@@ -30,6 +30,10 @@ Public Class ClsNominas
Public Property FolioFiscal As String
Public Property Serie As String
Public Property Folio As Integer
Public Property FolioSolicitud As Integer
Public Property RegistroPatronal As String
Public Property SerieFolio As String
Public Property NominaFolio As String
@@ -3238,12 +3242,14 @@ Public Class ClsNominas
End Function
#Region "CRUD_SolicitudesNominas"
Public Function SolicitudesGet(CveSolicitud As Integer, CveEmpresa As Integer, Optional CveTipoSolicitud As Integer = 1) As Boolean
Public Function SolicitudesGet(CveSolicitud As Integer, CveEmpresa As Integer, Optional CveTipoSolicitud As Integer = 1, Optional Estatus As Integer = -1, Optional Top As Integer = 100000) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_Gral_SAT_SolicitudesGet", CommandType.StoredProcedure)
addParameters("@CveSolicitud", SqlDbType.Int, CveSolicitud)
addParameters("@CveEmpresa", SqlDbType.Int, CveEmpresa)
addParameters("@CveTipoSolicitud", SqlDbType.Int, CveTipoSolicitud)
addParameters("@Estatus", SqlDbType.Int, Estatus)
addParameters("@Top", SqlDbType.Int, Top)
retorno = RunQuery("Ocurrió un error al obtener el SolicitudesNominas.")
Return retorno
End Function
@@ -3263,6 +3269,84 @@ Public Class ClsNominas
retorno = RunQuery("Ocurrió un error al agregar el SolicitudesNominas.")
Return retorno
End Function
Public Function SolicitudesAdd2(CveSolicitudCFDI As Integer, CveSolicitudMetadata As Integer, estatus As Integer, observaciones As String, fechaInicio As DateTime, fechaFin As DateTime, cveUsuarioIng As Int32, cveEmpresa As Int32, Optional CveTipoSolicitud As Integer = 1) As Integer
'CveTipoSolicitud
'1 Nominas CFDI y Metadata
'101 Nominas CFDI
'201 Nominas Metadata
'2 eFacturas CFDI y Metadata
'102 eFacturas CFDI
'202 eFacturas Metadata
'3 Ingresos CFDI y Metadata
'103 Ingresos CFDI
'203 Ingresos Metadata
Dim CveSolictudAgregada As Integer = -1
FolioSolicitud = -1
Try
DataAdapter("PA_Gral_SAT_SolicitudesAdd2", CommandType.StoredProcedure)
addParameters("@CveSolicitudCFDI", SqlDbType.Int, CveSolicitudCFDI)
addParameters("@CveSolicitudMetadata", SqlDbType.Int, CveSolicitudMetadata)
addParameters("@Estatus", SqlDbType.Int, estatus)
addParameters("@Observaciones", SqlDbType.VarChar, observaciones)
addParameters("@FechaInicio", SqlDbType.DateTime, fechaInicio)
addParameters("@FechaFin", SqlDbType.DateTime, fechaFin)
addParameters("@CveUsuarioIng", SqlDbType.Int, cveUsuarioIng)
addParameters("@CveEmpresa", SqlDbType.Int, cveEmpresa)
addParameters("@CveTipoSolicitud", SqlDbType.Int, CveTipoSolicitud)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveSolicitud", SqlDbType.Int).Direction = ParameterDirection.Output
.Add("@Folio", SqlDbType.Int).Direction = ParameterDirection.Output
End With
SqlAdapter.Fill(Data)
CveSolictudAgregada = SqlAdapter.SelectCommand.Parameters("@CveSolicitud").Value.ToString.ToEntero
FolioSolicitud = SqlAdapter.SelectCommand.Parameters("@Folio").Value.ToString.ToEntero
Catch ex As Exception
CveSolictudAgregada = -1
OnError("Ocurrió un error al agregar la Solicitud.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return CveSolictudAgregada
End Function
Public Function UpdateSolicitudDetalleCveSolicitudDetalle(CveEmpresa As Integer, UUID As String, CveSolicitudDetalle As Integer) As Boolean
Dim retorno As Boolean = False
Try
DataAdapter("PA_SAT_SolicitudesCFDIDataCveSolicitudDetalleUpdate", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@UUID", SqlDbType.VarChar).Value = UUID
.Add("@CveSolicitudDetalle", SqlDbType.Int).Value = CveSolicitudDetalle
End With
SqlAdapter.Fill(Data)
retorno = True
Catch ex As Exception
retorno = False
OnError("Ocurrió un error al Actualizar SolicitudesCFDIData.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return retorno
End Function
Public Function SolicitudesUp(CveSolicitud As Int32, CveSolicitudCFDI As Int32, CveSolicitudMetadata As Int32, estatus As Int32, observaciones As String, cveEmpresa As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_Gral_SAT_SolicitudesUp", CommandType.StoredProcedure)

View File

@@ -119,6 +119,7 @@ Public Class ClsOC
Public Property UsoCFDI As String
Public Property Promocion As String
Public Property CveProveedorContacto As Integer
Public Property NumRemision As String
Public ReadOnly Property DtResultados() As DataTable
Get
@@ -685,6 +686,7 @@ Public Class ClsOC
_UsoCFDI = dr("UsoCFDI").ToString
Promocion = IfNull(dr("Promocion"), "", dr("Promocion").ToString)
CveProveedorContacto = If(Not IsDBNull(dr("CveProveedorContacto")), dr("CveProveedorContacto").ToString.ToEntero, -1)
NumRemision = dr("NumRemision").ToString
Retorno = True
ElseIf Data.Rows.Count > 0 Then
@@ -704,7 +706,7 @@ Public Class ClsOC
Optional CveCliente As Integer = -1, Optional CveVendedor As Integer = -1, Optional PrioridadObservacion As String = "",
Optional PorcentajeIVA As Decimal = 0.16, Optional IVA As Decimal = 0, Optional RetIVA As Decimal = 0, Optional RetISR As Decimal = 0, Optional FechaExpiracion As Date = Nothing, Optional CveCotizacion As Integer = -1,
Optional FolioAdicional As String = "", Optional EntregaDirecta As Integer = -1, Optional CveDireccionEnvio As Integer = -1, Optional Guia As String = "-1", Optional IEPS As Decimal = -1,
Optional CveIEAnticipo As Integer = -1, Optional ImporteAnticipo As Decimal = 0, Optional UsoCFDI As Integer = -1, Optional Promocion As String = "-1", Optional CveProveedorContacto As Integer = -1) As Boolean
Optional CveIEAnticipo As Integer = -1, Optional ImporteAnticipo As Decimal = 0, Optional UsoCFDI As Integer = -1, Optional Promocion As String = "-1", Optional CveProveedorContacto As Integer = -1, Optional NumRemision As String = "-1") As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_OC_OrdenesCompraAdd")
@@ -747,6 +749,7 @@ Public Class ClsOC
.Add("@UsoCFDI", SqlDbType.Int).Value = UsoCFDI
.Add("@Promocion", SqlDbType.VarChar).Value = Promocion
.Add("@CveProveedorContacto", SqlDbType.Int).Value = CveProveedorContacto
.Add("@NumRemision", SqlDbType.VarChar).Value = NumRemision
.Add("@vCveOrdenCompra", SqlDbType.Int).Direction = ParameterDirection.Output
.Add("@vFolio", SqlDbType.Int).Direction = ParameterDirection.Output
@@ -910,7 +913,7 @@ Public Class ClsOC
pCveProveedor As Integer, pCveOrdenCompra As Integer, pCveUsuarioModifico As Integer, Optional CveCliente As Integer = -1, Optional CveVendedor As Integer = -1, Optional PrioridadObservacion As String = "",
Optional IVA As Decimal = 0, Optional RetIVA As Decimal = 0, Optional RetISR As Decimal = 0, Optional IDPoliza As Integer = -1, Optional FechaExpiracion As Date = Nothing, Optional FolioAdicional As String = "",
Optional EntregaDirecta As Integer = -1, Optional CveDireccionEnvio As Integer = -1, Optional Guia As String = "-1", Optional IEPS As Decimal = -1, Optional UsoCFDI As Integer = -1, Optional Promocion As String = "-1",
Optional pCveProveedorSucursal As Integer = -1, Optional CveProveedorContacto As Integer = -1, Optional PorcentajeIVA As Decimal = 0.16) As Boolean
Optional pCveProveedorSucursal As Integer = -1, Optional CveProveedorContacto As Integer = -1, Optional PorcentajeIVA As Decimal = 0.16, Optional NumRemision As String = "-1") As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_OC_OrdenesCompraUpdate")
@@ -944,6 +947,7 @@ Public Class ClsOC
.Add("@CveProveedorSucursal", SqlDbType.Int).Value = pCveProveedorSucursal
.Add("@CveProveedorContacto", SqlDbType.Int).Value = CveProveedorContacto
.Add("@PorcentajeIVA", SqlDbType.SmallMoney).Value = PorcentajeIVA
.Add("@NumRemision", SqlDbType.VarChar).Value = NumRemision
End With
Try
@@ -2506,6 +2510,30 @@ Public Class ClsOC
Return Retorno
End Function
Public Function GetVerificaNumRemision(CveProveedor As Integer, Tipo As String, NumRemision As String, CveEmpresa As Integer, CveOrdenCompraValida As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_OC_OCVerificaNumRemisionGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor
.Add("@Tipo", SqlDbType.VarChar).Value = Tipo
.Add("@NumRemision", SqlDbType.VarChar).Value = NumRemision
.Add("@CveOrdenCompraValida", SqlDbType.Int).Value = CveOrdenCompraValida
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al consultar las remiciones", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return Retorno
End Function
#Region " IDisposable Support "
' IDisposable
Protected Overridable Sub Dispose(ByVal disposing As Boolean)

View File

@@ -2163,11 +2163,18 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch Ex1 As SqlException
If Ex1.Message.Contains("Número: 2627;") Then
Catch Ex1 As SqlException
If Ex1.Message.Contains("UK_Idx_Vw_Val_Nom_Curps") Then
Alert(String.Format("El personal no se guardó, el campo CURP '{0}' ya se encuentra registrado en otro empleado.", CURP), TipoMensaje.MsgAdvertencia)
ElseIf Ex1.Message.ToUpper.Contains("RFC") Then
Alert(String.Format("El personal no se guardó, el campo RFC '{0}' ya se encuentra registrado en otro empleado.", RFC), TipoMensaje.MsgAdvertencia)
ElseIf Ex1.Message.ToUpper.Contains("CODIGO") Then
Alert(String.Format("El personal no se guardó, el campo codigo '{0}' ya se encuentra registrado en otro empleado.", Codigo), TipoMensaje.MsgAdvertencia)
ElseIf Ex1.Message.Contains("Número: 2627;") Then
Alert("El Personal no se guardó debido a que actualmente se encuentra registrado.", TipoMensaje.MsgAdvertencia)
ElseIf Ex1.Message.Contains("TR_RH_PersonalAltas000") Then
Alert("El personal no se guardó el periodo de inicio y fin laboral del empleado está en conflicto con los anteriores, si es un reingreso favor de ingresar una fecha inicio mayor a la última fecha baja registrada.", TipoMensaje.MsgAdvertencia)
ElseIf Ex1.Message.Contains("TR_RH_PersonalAltas") Then
Alert("El personal no se guardó, el periodo de inicio y fin laboral del empleado está en conflicto con los anteriores, si es un reingreso favor de ingresar una fecha inicio mayor a la última fecha baja registrada.", TipoMensaje.MsgAdvertencia)
GuardaLog(String.Format("{0} DESCRIPCIÓN DETALLADA: {1} {2} {3}", "Ocurrió un error al intentar guardar los cambios en el Personal.", Ex1.ToString, vbCrLf, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()))
Else
Me.OnError("Ocurrió un error al intentar guardar los cambios en el Personal.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())

View File

@@ -3048,6 +3048,16 @@ Partial Class PopUpVerFactura
CartaPorte = New Modelos.MSubReportData()
CartaPorte.Parametros.Add(New ReportParameter($"TieneCartaPorte", "False"))
End If
Else
If UsuarioActual.CveEmpresa = 13 AndAlso Vta.TipoDocto = "Egs" Then
CartaPorte = New Modelos.MSubReportData()
CartaPorte.Parametros.Add(New ReportParameter($"TieneCartaPorte", "False"))
End If
End If
Else
If UsuarioActual.CveEmpresa = 13 AndAlso Vta.TipoDocto = "Egs" Then
CartaPorte = New Modelos.MSubReportData()
CartaPorte.Parametros.Add(New ReportParameter($"TieneCartaPorte", "False"))
End If
End If

View File

@@ -2645,10 +2645,10 @@ Partial Class Compras_eFacturas
sbResultado.Append($"{resultSolicitud(1)}<br/>")
Else
sbResultado.Append($"Solicitud Generada Correctamente")
sbResultado.Append($"Se presento un error al verificar las solicitudes <br/> {resultSolicitud(2)} <br>")
sbResultado.Append($"Se presento un error al verificar las solicitudes <br/> {resultSolicitud(1)} <br>")
End If
Else
sbResultado.Append($"{resultSolicitud(2)}")
sbResultado.Append($"{resultSolicitud(1)}")
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia
End If
Else
@@ -2675,7 +2675,7 @@ Partial Class Compras_eFacturas
If Continuar Then
txtFechaIAdd.Text = ""
txtFechaFAdd.Text = ""
Me.RegistraScript("$('#ModalAgregarSolicitud').modal('hide');")
Me.RegistraScript("$('#ModalViewSolicitudes').modal('hide');")
cargasolicitudes()
End If
@@ -2723,10 +2723,10 @@ Partial Class Compras_eFacturas
sbResultado.Append($"{resultSolicitud(2)}<br/>")
Else
sbResultado.Append($"Solicitud Generada Correctamente")
sbResultado.Append($"Se presento un error al verificar las solicitudes <br/> {resultSolicitud(2)} <br>")
sbResultado.Append($"Se presento un error al verificar las solicitudes <br/> {resultSolicitud(1)} <br>")
End If
Else
sbResultado.Append($"{resultSolicitud(2)}")
sbResultado.Append($"{resultSolicitud(1)}")
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia
End If
Else
@@ -2737,9 +2737,9 @@ Partial Class Compras_eFacturas
If SeVerifico AndAlso resultVerificacion.Count = 4 Then
If ResultadoVerificaionOK Then
sbResultado.Append($"{resultVerificacion(2)}<br>")
sbResultado.Append($"{resultVerificacion(1)}<br>")
Else
sbResultado.Append($"Se presento un error al verificar las solicitudes {resultVerificacion(2)}<br>")
sbResultado.Append($"Se presento un error al verificar las solicitudes {resultVerificacion(1)}<br>")
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia
End If
Else

View File

@@ -1114,7 +1114,7 @@
<Height>0.63559in</Height>
<Style />
</Body>
<Width>10.98354in</Width>
<Width>10.94855in</Width>
<Page>
<PageHeader>
<Height>2.46174cm</Height>

View File

@@ -601,7 +601,7 @@
<TextRun>
<Value>=Fields!PorcentajePago.Value</Value>
<Style>
<Format>0.00;(0.00)</Format>
<Format>0;(0)</Format>
</Style>
</TextRun>
</TextRuns>
@@ -615,32 +615,13 @@
<Style>Solid</Style>
<Width>0.5pt</Width>
</Border>
<TopBorder>
<Color>Gray</Color>
<Style>Solid</Style>
<Width>0.5pt</Width>
</TopBorder>
<BottomBorder>
<Color>Gray</Color>
<Style>Solid</Style>
<Width>0.5pt</Width>
</BottomBorder>
<LeftBorder>
<Color>Gray</Color>
<Style>Solid</Style>
<Width>0.5pt</Width>
</LeftBorder>
<RightBorder>
<Color>Gray</Color>
<Style>Solid</Style>
<Width>0.5pt</Width>
</RightBorder>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<rd:Selected>true</rd:Selected>
</CellContents>
</TablixCell>
<TablixCell>
@@ -743,7 +724,6 @@
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<rd:Selected>true</rd:Selected>
</CellContents>
</TablixCell>
<TablixCell>
@@ -823,7 +803,7 @@
</TablixMembers>
</TablixRowHierarchy>
<DataSetName>DataSet1</DataSetName>
<Top>2.11349cm</Top>
<Top>3.2953cm</Top>
<Left>0.31432cm</Left>
<Height>1.2cm</Height>
<Width>18.8639cm</Width>
@@ -861,9 +841,9 @@
</Paragraphs>
<rd:DefaultName>Textbox15</rd:DefaultName>
<Top>0.57891cm</Top>
<Left>0.31432cm</Left>
<Left>3.59515cm</Left>
<Height>0.9175cm</Height>
<Width>18.8639cm</Width>
<Width>12.27578cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
@@ -875,12 +855,132 @@
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox2">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=Parameters!Filtros.Value</Value>
<Style />
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox2</rd:DefaultName>
<Top>2.51891cm</Top>
<Left>0.31432cm</Left>
<Height>0.6cm</Height>
<Width>16.6814cm</Width>
<ZIndex>2</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Image Name="Logo">
<Source>Embedded</Source>
<Value>VSH</Value>
<Sizing>FitProportional</Sizing>
<Top>0.38391cm</Top>
<Left>0.31432cm</Left>
<Height>1.84396cm</Height>
<Width>3.28083cm</Width>
<ZIndex>3</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</Image>
</ReportItems>
<Height>1.65554in</Height>
<Height>1.92637in</Height>
<Style />
</Body>
<Width>7.67548in</Width>
<Width>7.72756in</Width>
<Page>
<PageFooter>
<Height>0.89958cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
<Textbox Name="Textbox4">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>=string.Format("página {0} de {1}",Globals!PageNumber,Globals!TotalPages)</Value>
<Style />
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox4</rd:DefaultName>
<Top>0.14111cm</Top>
<Left>16.67822cm</Left>
<Height>0.6cm</Height>
<Width>2.5cm</Width>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox6">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha de impresión:</Value>
<Style />
</TextRun>
<TextRun>
<Value>=Parameters!FechaImpresion.Value</Value>
<Style />
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox6</rd:DefaultName>
<Top>0.14111cm</Top>
<Left>6.298cm</Left>
<Height>0.6cm</Height>
<Width>7.50062cm</Width>
<ZIndex>1</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
<Style>None</Style>
</Border>
</Style>
</PageFooter>
<PageHeight>29.7cm</PageHeight>
<PageWidth>21cm</PageWidth>
<LeftMargin>0.5cm</LeftMargin>
@@ -899,7 +999,50 @@
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="FechaImpresion">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="Filtros">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters>
<EmbeddedImages>
<EmbeddedImage Name="VSH">
<MIMEType>image/png</MIMEType>
<ImageData>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</ImageData>
</EmbeddedImage>
</EmbeddedImages>
<rd:ReportUnitType>Cm</rd:ReportUnitType>
<rd:ReportID>11b5b2e7-c415-4ba7-a346-3d00f6f761f0</rd:ReportID>
</Report>

View File

@@ -1178,6 +1178,42 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
Alert("se reenviaron los recibos timbrados");
}
public string msgCorregidoSat(string msg, int CvePersonal,string RFC, string CURP)
{
string retorno = msg;
if (msg.ToUpper().Contains("RFC"))
{
if (msg.ToUpper().Contains("NOM138"))
{
retorno = string.Format("Existe un inconveniente con el RFC '{0}' del empleado,favor de validar el RFC en caso que este bien capturado /n el empleado deberá realizar una aclaración directamente ante el SAT.", RFC);
}
else if (msg.ToUpper().Substring(0, 5).Contains("301"))
{
retorno = string.Format("RFC '{1}' Invalido favor de actualizarlo en el módulo de <a href='/RH/Personal.aspx?CvePersonal={0}' >personal<a>", CvePersonal, RFC);
}
}
if (msg.ToUpper().Contains("CURP"))
{
if (msg.ToUpper().Substring(0, 5).Contains("301"))
{
retorno = string.Format("CURP '{1}' Invalido favor de actualizarlo en el modulo de <a href='/RH/Personal.aspx?CvePersonal={0}' >personal<a>", CvePersonal, CURP);
}
}
if (msg.ToUpper().Contains("CONCEPTO NO REGISTRADO"))
{
retorno = string.Format("{0} a un concepto del SAT en el catálogo de conceptos.", retorno.Replace("No se pudo generar el pretimbre:","").Replace("(", ",favor de vincular el concepto SIG '").Replace(")", "'").Trim());
}
if (msg.ToUpper().Contains("REGISTROPATRONAL"))
{
if (msg.ToUpper().Contains("NOM162"))
{
retorno = string.Format("Es necesario vincular el empleado a un registro patronal en el modulo de <a href='/RH/Personal.aspx?CvePersonal={0}' >personal<a>", CvePersonal); ;
}
}
return retorno;
}
protected void LnkTimbrarTodos_Click(object sender, EventArgs e)
{
string msggral = "";
@@ -1188,7 +1224,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
using (ClsRH objrh = new ClsRH())
{
objrh.GetPersonal(-1, UsuarioActual.CveEmpresa);
dtpersonal = objrh.DtResultados.FiltraParametros("", "", new string[] { "CvePersonal", "MaiReciboNomina", "NombreCompleto" });
dtpersonal = objrh.DtResultados.FiltraParametros("", "", new string[] { "CvePersonal", "MaiReciboNomina", "NombreCompleto","RFC", "CURP" });
}
foreach (GridViewRow gvRow in GvNominas.Rows)
{
@@ -1198,10 +1234,14 @@ public partial class Nomina_Nomina2 : ClsPaginas
LinkButton LnkTimbrar = gvRow.FCLinkButton("LnkTimbrar");
string MaiReciboNomina = string.Empty;
string NombreCompleto = string.Empty;
string RFC = string.Empty;
string CURP = string.Empty;
if (dtpersonal.Rows.Count > 0 && (drow = dtpersonal.FiltroPrimero(string.Format("CvePersonal = {0}", CvePersonal))) != null)
{
MaiReciboNomina = drow["MaiReciboNomina"].ToString();
NombreCompleto = drow["NombreCompleto"].ToString();
RFC = drow["RFC"].ToString();
CURP = drow["CURP"].ToString();
}
if (CvePersonal > 0 && LnkTimbrar.Visible)
{
@@ -1210,6 +1250,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
string Msg = lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual);
if (Msg != null && Msg.Length > 0)
{
Msg = msgCorregidoSat(Msg, CvePersonal, RFC, CURP);
msggral = string.Format("{0}<tr><td>{3}</td><td>{2}</td><td><pre>{1}</pre></td></tr>", msggral, Msg, gvRow.DataKey("Nombre"), gvRow.DataKey("Codigo"));
}
else
@@ -1767,7 +1808,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
for (int i = 2; i < dtxz.Columns.Count; i++)
{
//para evitar errores agrego una columna al inicio
dtxz.Columns[i].ColumnName = string.Format("Z{0}",dtxz.Columns[i].ColumnName.ToUpper());
dtxz.Columns[i].ColumnName = string.Format("Z{0}", dtxz.Columns[i].ColumnName.ToUpper());
}
for (int i = 2; i < dtxz.Columns.Count; i++)
{

View File

@@ -325,20 +325,34 @@
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDdlIVA" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<label class="col-md-2"><b>IVA A Facturar:</b> </label>
<div class="col-md-2">
<div class="row">
<label class="col-md-2"><b>IVA A Facturar:</b> </label>
<div class="col-md-2">
<asp:UpdatePanel ID="UpDdlIVA" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:DropDownList ID="DdlIVA" AutoPostBack="true" OnSelectedIndexChanged="DdlIVA_SelectedIndexChanged" CssClass="select2me" Style="width: 100%; display: inline-block;" runat="server" data-toggle="tooltip" data-placement="left" ToolTip="Si el producto aplica IVA, se tomara en cuenta el porcentaje seleccionado.">
<asp:ListItem Value="1.08">8%</asp:ListItem>
<asp:ListItem Value="1.16" Selected="True">16%</asp:ListItem>
<asp:ListItem Value="1">0%</asp:ListItem>
</asp:DropDownList>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="col-md-2" runat="server" id="DvNumRemision1" visible="false"><b>Núm. Remisión</b></div>
<div class="col-md-2" runat="server" id="DvNumRemision2" visible="false">
<asp:TextBox ID="TxtNumRemision" runat="server" MaxLength="10" Width="100%" onblur="ValidaNumRemision()"></asp:TextBox>
<asp:Button ID="BtnValidaNumRemision" ClientIDMode="Static" OnClick="BtnValidaNumRemision_Click" Style="display: none;" runat="server" />
</div>
</div>
<%--linea 7--%>
<div class="row">
<%--<label class="col-md-2">Guia:</label>--%>
@@ -2767,7 +2781,7 @@
<label for="<%= DdlTipoGasto.ClientID.ToString()%>">Tipo de Gasto:</label>
<asp:RequiredFieldValidator runat="server" Enabled="true" InitialValue="-1" Display="None" ID="RFVDdlTipoGasto" ControlToValidate="DdlTipoGasto" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo de Gasto''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpAplicaContrato"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator runat="server" Enabled="true" InitialValue="-1" Display="None" ID="RFVDdlTipoGasto" ControlToValidate="DdlTipoGasto" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo de Gasto''</b> es necesario, por favor seleccione uno." ValidationGroup="GrpAplicaContrato"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="CERFVDdlTipoGasto" runat="server" HighlightCssClass="vco" TargetControlID="RFVDdlTipoGasto" Width="300px"></ajax:ValidatorCalloutExtender>
@@ -3215,20 +3229,20 @@
function ValidateCant(variable) {
var txt = $(variable);
var max = txt.data('cantidad');
var value = parseInt(txt.val());
var txt = $(variable);
var max = txt.data('cantidad');
var value = parseInt(txt.val());
if (value > max) {
txt.val(max);
}
}
if (value < 0) {
txt.val(0);
}
var importe = $('.txtimporte[data-cve="' + txt.data('cve') + '"]');
importe.val(parseFloat(txt.val()) * parseFloat(txt.data('pu')));
}
var importe = $('.txtimporte[data-cve="' + txt.data('cve') + '"]');
importe.val(parseFloat(txt.val()) * parseFloat(txt.data('pu')));
}
@@ -3244,6 +3258,10 @@
}
}
function ValidaNumRemision() {
$('#BtnValidaNumRemision').click();
}
</script>

View File

@@ -822,12 +822,19 @@ Partial Class OC
If UsuarioActual.Empresa.Funcionalidad(590).ToString.ToEntero = 1 Then
DVCultivosCuadro.Visible = True
DdlSubProyecto.AutoPostBack = True
DdlCultivosCuadro.DataSource = GlobalDTCultivosCuadro(UsuarioActual.CveEmpresa).FiltraParametros($"CveSubProyecto = {DdlSubProyecto.SelectedValue} AND Estatus =1")
DdlCultivosCuadro.DataBind()
DdlCultivosCuadro.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
If UsuarioActual.CveRol = 1 Then
DvNumRemision1.Visible = True
DvNumRemision2.Visible = True
End If
End If
'SOLO SE MUESTRA CUANDO ES REGISTRO NUEVO
@@ -1409,6 +1416,8 @@ Partial Class OC
LblCodigo.Text = objOC.Codigo
TxtFolioAdicional.Text = objOC.FolioAdicional
TxtNumRemision.Text = objOC.NumRemision
If Not IsNothing(objOC.Tipo) Then
Select Case objOC.Tipo.ToUpper
@@ -1750,6 +1759,10 @@ Partial Class OC
UpAcciones.Update()
End If
uppEstatus.Update()
UPPEmp.Update()
@@ -2529,6 +2542,9 @@ Partial Class OC
'VALIDACIONES PARA GUARDAR
If ValidaGuardar() Then Exit Sub
Dim MsgError As String = "Hubo un error al registrar"
'VARIABLES
Dim CveProveedorSucursal As Integer = -1
@@ -2590,12 +2606,18 @@ Partial Class OC
Dim CveOrdenCompraPadre As Integer = -1
If GeneraReq Then
If Not ValidaNumRemision(TxtNumRemision.Text.Trim(), "REQ", CveProveedor, OC.IniciaTransacSQL) Then
TieneError = True
End If
If Not TieneError Then ' AGREGAR REQUISICION
If OC.AddOrdenCompra("REQ", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CboE.SelectedValue.ToEntero, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim),
LugarEntrega, UsuarioActual.CveUsuario, CveEmpresaActual, GvD.Rows(0).FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero, pCveProveedor:=CveProveedor, pCveProveedorSucursal:=CveProveedorSucursal,
RequiereCotizacion:=ChkCotizacion.Checked, CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text, PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal,
RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim,
IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto) Then
IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto, NumRemision:=TxtNumRemision.Text.Trim()) Then
CveOrdenCompraPadre = OC.CveOrdenCompra
If CveOrdenCompraPadre > 0 Then
@@ -2622,15 +2644,21 @@ Partial Class OC
End If
End If
If Not ValidaNumRemision(TxtNumRemision.Text.Trim(), If(TipoOS, "OS", TipoOC), CveProveedor, OC.IniciaTransacSQL) Then
TieneError = True
End If
If Not TieneError Then ' AGREGAR ORDEN DE COMPRA
If OC.AddOrdenCompra(If(TipoOS, "OS", TipoOC), -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusNuevo, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim),
LugarEntrega, UsuarioActual.CveUsuario, CveEmpresaActual, GvD.Rows(0).FCHiddenField("HdnCvePresupuestoEgreso").Value.ToString.ToEntero, pCveProveedor:=CveProveedor, pCveProveedorSucursal:=CveProveedorSucursal,
RequiereCotizacion:=ChkCotizacion.Checked, CveUsuarioAsignado:=DdlUsuariosAsignado.SelectedValue.ToEntero, CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text,
PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1),
CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero,
Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto) Then
Promocion:=Promocion, CveProveedorContacto:=CveProveedorContacto, NumRemision:=TxtNumRemision.Text) Then
CveOrdenCompra = OC.CveOrdenCompra
CveEstatus = CboE.SelectedValue.ToEntero
@@ -2790,11 +2818,17 @@ Partial Class OC
Proveedor = DdlProveedores.SelectedText.ToString
End If
If Not ValidaNumRemision(TxtNumRemision.Text.Trim(), TipoOC, CveProveedor, OC.IniciaTransacSQL, CveOrdenCompra) Then
TieneError = True
End If
If OC.UpdateOrdenCompra(-1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, ChkCotizacion.Checked, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim),
LugarEntrega, DdlMoneda.SelectedValue.ToEntero, CveProveedor, CveOrdenCompra, UsuarioActual.CveUsuario, Ddlcliente.txtValue.Value.ToEntero,
DdlVendedor.SelectedValue.ToEntero, txtobsprioridad.Text, IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1),
Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveProveedorContacto:=CveProveedorContacto,
PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2)) Then
PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), NumRemision:=TxtNumRemision.Text) Then
If CveProveedorOriginal <> CveProveedor Then
If Not ObjConta.UpdateProveedorPoliza(CveOrdenCompra, CveProveedor, Proveedor) Then
TieneError = True
@@ -3263,11 +3297,17 @@ Partial Class OC
RetIVA = TxtRetIVA.Text.ToDecimal
RetISR = TxtRetISR.Text.ToDecimal
If objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega,
If Not ValidaNumRemision(TxtNumRemision.Text.Trim(), "OC", CveProveedor, objOrdenCompra.IniciaTransacSQL) Then
HuboError = True
End If
If (Not HuboError) AndAlso objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega,
CveUsuario, CveEmpresaActual, 0, pCveProveedor:=CveProveedor, CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text,
PorcentajeIVA:=PorIVA, IVA:=IVACot, RetIVA:=RetIVA.ToString.ToDecimal, RetISR:=RetISR.ToString.ToDecimal, IDPoliza:=IdPoliza, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text,
EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), IEPS:=TxtIEPS.Text.ToDecimal,
CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, Promocion:=Promocion, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero) Then
CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, Promocion:=Promocion, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, NumRemision:=TxtNumRemision.Text.Trim) Then
'CREA POLIZA POR CADA PROVEEDOR
@@ -3331,11 +3371,19 @@ Partial Class OC
Else
If objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega,
If Not ValidaNumRemision(TxtNumRemision.Text.Trim(), "OC", DdlProveedores.SelectedValue.ToEntero, objOrdenCompra.IniciaTransacSQL) Then
HuboError = True
End If
If (Not HuboError) AndAlso objOrdenCompra.AddOrdenCompra("OC", -1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, TxtFecha.Text.ToDate, DdlMoneda.SelectedValue.ToEntero, CveEstatusInicialOC, TxtFechaEstimadaEntrega.Text, LugarEntrega,
CveUsuario, CveEmpresaActual, 0, pCveProveedor:=DdlProveedores.SelectedValue.ToEntero, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveUsuarioAsignado:=DdlUsuariosAsignado.SelectedValue.ToEntero(), CveCliente:=Ddlcliente.txtValue.Value.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PrioridadObservacion:=txtobsprioridad.Text,
PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDecimal - 1, 2), IVA:=IVA, RetIVA:=TxtRetIVA.Text.ToDecimal, RetISR:=TxtRetISR.Text.ToDecimal, IDPoliza:=IDPolizaPresupuestal, CveCotizacion:=CveCotizacion, FolioAdicional:=TxtFolioAdicional.Text,
EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1), IEPS:=TxtIEPS.Text.ToDecimal, CveIEAnticipo:=CveIEAnticipo, ImporteAnticipo:=ImporteAnticipos, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero,
Promocion:=Promocion) Then
Promocion:=Promocion, NumRemision:=TxtNumRemision.Text.Trim) Then
'USA AC
@@ -8677,4 +8725,58 @@ Partial Class OC
Return Retorno
End Function
Private Function ValidaNumRemision(NumRemision As String, TipoOC As String, CveProveedor As Integer, Optional OcTranasaccion As System.Data.SqlClient.SqlTransaction = Nothing, Optional CveOrdenCompraValida As Integer = -1) As Boolean
Dim NumRemisionValida As Boolean = False
If NumRemision.Trim.Length > 0 Then
If UsuarioActual.Empresa.Funcionalidad(590).ToString.ToEntero = 1 AndAlso UsuarioActual.CveRol = 1 Then
Dim ObjOC As ClsOC
If OcTranasaccion IsNot Nothing Then
ObjOC = New ClsOC(OcTranasaccion)
Else
ObjOC = New ClsOC
End If
If ObjOC.GetVerificaNumRemision(CveProveedor, TipoOC, NumRemision, UsuarioActual.CveEmpresa, CveOrdenCompraValida) Then
If ObjOC.DtResultados.Rows.Count > 0 Then
Alert($"La remision ya se encuentra asiganada a la { If(TipoOC = "OC", "Orden de compra", "Requisición")} <a target='_blank' href='./OC.aspx?OC={ObjOC.DtResultados.Rows(0)("CveOrdenCompra").ToString()}' >{ObjOC.DtResultados.Rows(0)("Folio").ToString() }</a>", TipoMensaje.MsgAdvertencia)
Else
NumRemisionValida = True
End If
End If
Else
NumRemisionValida = True
End If
Else
NumRemisionValida = True
End If
Return NumRemisionValida
End Function
Protected Sub BtnValidaNumRemision_Click(sender As Object, e As EventArgs)
ValidaNumRemision(TxtNumRemision.Text.Trim(), TipoOC, DdlProveedores.SelectedValue.ToEntero, Nothing, If(CveOrdenCompra > 0, CveOrdenCompra, -1))
End Sub
End Class

View File

@@ -35,9 +35,10 @@
<ul class="list-inline">
<li>Cliente:
<asp:Button ID="BtnCargarClientes" runat="server" ClientIDMode="Static" Text="CargarClientes" Style="display: none;" />
<asp:DropDownList ID="DdlCliente" runat="server" AppendDataBoundItems="true" Style="display: inline-block; width: 250px;" DataTextField="Nombre" DataValueField="CveCliente" Class="form-control input-sm select2me">
<ADS:Dropdownlost CssClassDdl="select2me" ID="DdlCliente" Width="100%" data-metodo="getcliente" UsaWebService="true" runat="server" DataTextField="NombreComercial" DataValueField="CveCliente" CssStyle="width: 100%"></ADS:Dropdownlost>
<%--<asp:DropDownList ID="DdlCliente" runat="server" AppendDataBoundItems="true" Style="display: inline-block; width: 250px;" DataTextField="Nombre" DataValueField="CveCliente" Class="form-control input-sm select2me">
<asp:ListItem Selected="True" Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList>
</asp:DropDownList>--%>
</li>
<li id="DivProyectosAsignado" runat="server">
<asp:Label runat="server" ID="LblProyectoAsignado" AssociatedControlID="DdlProyectoAsignado">Proyecto: </asp:Label>

View File

@@ -138,10 +138,24 @@ Partial Class RH_Asistencias
objpersonal.Dispose()
Dim Filtros As String = ""
If Not IsNothing(DdlCliente.SelectedValue) AndAlso DdlCliente.SelectedValue.ToEntero() > 0 Then
Filtros = String.Format("{0}{2}Cliente :{1}", Filtros, DdlCliente.SelectedText, vbNewLine)
End If
If DdlSubProyecto.SelectedValue.ToEntero() > 0 Then
Filtros = String.Format("{0}{2}{3} :{1}", Filtros, DdlSubProyecto.SelectedItem.Text, vbNewLine, LblSubProyectoAsignado.Text)
End If
If DdlTurno.SelectedValue.ToEntero() > 0 Then
Filtros = String.Format("{0}{2}Turno :{1}", Filtros, DdlTurno.SelectedItem.Text, vbNewLine)
End If
If DdlSupervisorOrganigrama.SelectedValue.ToEntero() > 0 Then
Filtros = String.Format("{0}{2}Supervisor :{1}", Filtros, DdlSupervisorOrganigrama.SelectedItem.Text, vbNewLine)
End If
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("Fecha", Fecha))
params.Add(New ReportParameter("FechaImpresion", DateTime.Now.ToString("dd/MM/yyyy HH:mm")))
params.Add(New ReportParameter("Filtros", Filtros))
Dim lrds As New List(Of ReportDataSource)
Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = tablaReporte}

View File

@@ -2033,7 +2033,7 @@ Partial Class RH_Personal
If TieneError Then
ObjPersonal.RollBack()
Alert("Ocurrio un error guardar el Personal. Por favor vuelva a intentar.", TipoMensaje.MsgError)
'Alert("Ocurrio un error guardar el Personal. Por favor vuelva a intentar.", TipoMensaje.MsgError)
Else
ObjPersonal.Commit()
Alert(Mensaje, TipoMensaje.MsgInformacion, Accion)

View File

@@ -205,6 +205,15 @@
.reporte9 .GVSolicitudTimbreNominaGral tr td:nth-child(n+40) {
text-align: right !important;
}
/* .ajax_tab_xp .ajax_tab_body {
font-size: 9px !important;
}
*/
.ajax__tab_xp .ajax__tab_body {
font-size: 12px !important;
}
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
@@ -213,15 +222,21 @@
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<%-- <asp:LinkButton ID="LnkDownloadExcel" OnClick="LnkDownloadExcel_Click" runat="server"><i class="fa fa-download"></i>Descargar</asp:LinkButton>--%>
</li>
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">
<contenttemplate>
<li>
<asp:LinkButton ID="LnkShowSolicitudes" OnClick="LnkShowSolicitudes_Click" runat="server">Solicitudes</asp:LinkButton>
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkDownloadExcel" OnClick="LnkDownloadExcel_Click" runat="server"><i class="fa fa-download"></i>Descargar</asp:LinkButton>
</li>
</contenttemplate>
<li>
<asp:LinkButton ID="LnkShowSolicitudes" OnClick="LnkShowSolicitudes_Click" runat="server"> Solicitudes</asp:LinkButton>
</li>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="LnkDownloadExcel" />
</Triggers>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
@@ -229,7 +244,7 @@
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="upDatosChec" runat="server" UpdateMode="Conditional">
<contenttemplate>
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="titlefiltros caption">
@@ -237,8 +252,8 @@
<label class="col-md-1">Agrupador: </label>
<div class="col-md-2">
<asp:DropDownList ID="DdlReporte" runat="server" Style="width: 100% !important;" CssClass="select2me" DataValueField="CveUsuario" DataTextField="Nombre">
<asp:ListItem Value="1" Text="Por Mes"></asp:ListItem>
<asp:ListItem Value="2" Text="Por Comprobante"></asp:ListItem>
<asp:ListItem Value="1" Text="Por Mes"></asp:ListItem>
<asp:ListItem Value="2" Text="Por Comprobante"></asp:ListItem>
</asp:DropDownList>
</div>
<label class="col-md-1 mediocol">Fecha inicio:</label>
@@ -250,10 +265,10 @@
<span class="input-group-btn ">
<asp:LinkButton ID="LnkRpdFechaInicio" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:maskededitextender id="MaskedEditExtender3" runat="server" targetcontrolid="TxtRpdFechaInicio" mask="99/99/9999" masktype="Date" displaymoney="Left" acceptnegative="Left"></ajax:maskededitextender>
<ajax:calendarextender runat="server" id="CalendarExtender3" targetcontrolid="TxtRpdFechaInicio" popupbuttonid="LnkRpdFechaInicio" popupposition="BottomRight" enabled="True" format="dd/MM/yyyy"></ajax:calendarextender>
<ajax:MaskedEditExtender ID="MaskedEditExtender3" runat="server" TargetControlID="TxtRpdFechaInicio" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender3" TargetControlID="TxtRpdFechaInicio" PopupButtonID="LnkRpdFechaInicio" PopupPosition="BottomRight" Enabled="True" Format="dd/MM/yyyy"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvRpdFechaInicio" runat="server" ControlToValidate="TxtRpdFechaInicio" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Inicio''</b> es necesario, por favor ingréselo." ValidationGroup="VGReporterepperde"></asp:RequiredFieldValidator>
<ajax:validatorcalloutextender id="ValidatorCalloutExtender1" runat="server" highlightcssclass="vco" targetcontrolid="rfvRpdFechaInicio"></ajax:validatorcalloutextender>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender1" runat="server" HighlightCssClass="vco" TargetControlID="rfvRpdFechaInicio"></ajax:ValidatorCalloutExtender>
</div>
</div>
<label class="col-md-1 mediocol">Fecha fin:</label>
@@ -264,13 +279,13 @@
<span class="input-group-btn ">
<asp:LinkButton ID="LnkFechaFin" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
<ajax:maskededitextender id="MaskedEditExtender5" runat="server" targetcontrolid="TxtRpdFechaFin" mask="99/99/9999" masktype="Date" displaymoney="Left" acceptnegative="Left"></ajax:maskededitextender>
<ajax:calendarextender runat="server" id="CalendarExtender4" targetcontrolid="TxtRpdFechaFin" popupbuttonid="LnkFechaFin" popupposition="BottomRight" enabled="True" format="dd/MM/yyyy"></ajax:calendarextender>
<ajax:MaskedEditExtender ID="MaskedEditExtender5" runat="server" TargetControlID="TxtRpdFechaFin" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender4" TargetControlID="TxtRpdFechaFin" PopupButtonID="LnkFechaFin" PopupPosition="BottomRight" Enabled="True" Format="dd/MM/yyyy"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvRpdFechaFin" runat="server" ControlToValidate="TxtRpdFechaFin" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha Fin''</b> es necesario, por favor ingréselo." ValidationGroup="VGReporterepperde"></asp:RequiredFieldValidator>
<ajax:validatorcalloutextender id="ValidatorCalloutExtender2" runat="server" highlightcssclass="vco" targetcontrolid="rfvRpdFechaFin"></ajax:validatorcalloutextender>
<ajax:ValidatorCalloutExtender ID="ValidatorCalloutExtender2" runat="server" HighlightCssClass="vco" TargetControlID="rfvRpdFechaFin"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div class="col-md-2" style="text-align:right">
<div class="col-md-2" style="text-align: right">
<asp:LinkButton ID="LnkConsultar" OnClick="LnkConsultar_Click" runat="server" Text="Consultar" Visible="true" class="btn btn-primary" />
</div>
</div>
@@ -283,257 +298,300 @@
</div>
</div>
</contenttemplate>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<contenttemplate>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvResumen" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False" Width="600px" OnRowDataBound="GvResumen_RowDataBound"
ShowHeaderWhenEmpty="true" EmptyDataText="No se encontraron registros"
DataKeyNames="Mes" >
<Columns>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate>
<asp:Label id="LblMes" runat="server" Text='<%# Eval("Mes")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SIG" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="LblVTotal" runat="server" Text='<%# Eval("VTotal","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SAT" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="LblCBTTotal" runat="server" Text='<%# Eval("CBTTotal","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Diferencia" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="LblDif" runat="server" Text='<%# Eval("Dif","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<ContentTemplate>
<div class="row" runat="server" id="DVResumen1" visible="false">
<div class="col-md-6" style="text-align: right">
<input type="text" id="TxtBusquedaResumen" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaResumen','{0}')", GvResumen.ClientID) %>" style="display: inline-block; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaResumen','{0}')", GvResumen.ClientID) %>" style="margin-top: -3px; margin-left: -13px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
</div>
<div class="row" runat="server" id="DVResumen2" visible="false">
<div class="col-md-6">
<asp:GridView ID="GvResumen" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False" OnRowDataBound="GvResumen_RowDataBound"
ShowHeaderWhenEmpty="true" EmptyDataText="No se encontraron registros"
DataKeyNames="Mes">
<Columns>
<asp:TemplateField HeaderText="Mes">
<ItemTemplate>
<asp:Label ID="LblMes" runat="server" Text='<%# Eval("Mes")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SIG" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="LblVTotal" runat="server" Text='<%# Eval("VTotal","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SAT" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="LblCBTTotal" runat="server" Text='<%# Eval("CBTTotal","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Diferencia" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="LblDif" runat="server" Text='<%# Eval("Dif","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
<div class="row" runat="server" id="DvDatos1" visible="false">
<div class="col-md-12">
<div class="col-md-12" style="text-align: right">
<input type="text" id="TxtBusquedaDatos" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaDatos','{0}')", GvDatos.ClientID) %>" style="display: inline-block; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaDatos','{0}')", GvDatos.ClientID) %>" style="margin-top: -3px; margin-left: -13px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvDatos" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall" Visible ="false" AutoGenerateColumns="false" OnRowDataBound="GvDatos_RowDataBound"
ShowHeaderWhenEmpty="true" EmptyDataText="No se encontraron registros"
DataKeyNames="UUID,CountRegistros,VTotal,CBTTotal">
<Columns>
<asp:TemplateField HeaderText="Folio">
<ItemTemplate>
<asp:Label runat="server" ID="LblUUID" Text='<%# Eval("UUID")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</div>
</div>
<div class="row" runat="server" id="DvDatos2" visible="false">
<div class="col-md-12">
<asp:GridView ID="GvDatos" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="false" OnRowDataBound="GvDatos_RowDataBound"
ShowHeaderWhenEmpty="true" EmptyDataText="No se encontraron registros"
DataKeyNames="UUID,CountRegistros,VTotal,CBTTotal,CountRegistrosSIG,CountRegistrosSAT,DifImporte,Abreviatura,CBTMoneda,CFDIData,CveSolicitudDetalle,CveVenta,VSerieFolio,Sistema">
<Columns>
<asp:TemplateField HeaderText="Folio">
<ItemTemplate>
<asp:Label runat="server" ID="LblUUID" Text='<%# Eval("UUID")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SIG">
<ItemTemplate>
<asp:Label runat="server" ID="LblEnSistema" Text='<%# Eval("Sistema")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SIG">
<ItemTemplate>
<asp:Label runat="server" ID="LblEnSistema" Text='<%# Eval("Sistema")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SAT" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblCFDIData" Text='<%# Eval("CFDIData")%>' ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="SAT" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:LinkButton runat="server" ID="LnkCFDIData" OnClick="LnkCFDIData_Click" Text='<%# Eval("CFDIData")%>' ></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Serie Folio" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVSerieFolio" Text='<%# Eval("VSerieFolio")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Serie Folio" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVSerieFolio" Text='<%# Eval("VSerieFolio")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVTotal" Text='<%# Eval("VTotal","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sub Total" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVSubTotal" Text='<%# Eval("VSubTotal","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="IVA" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVIVA" Text='<%# Eval("VIVA","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="IEPS" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVIEPS" Text='<%# Eval("VIEPS","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVTotal" Text='<%# Eval("VTotal","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sub Total" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVSubTotal" Text='<%# Eval("VSubTotal","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ret. IVA" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVRetIVA" Text='<%# Eval("VRetIVA","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="IVA" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVIVA" Text='<%# Eval("VIVA","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ret. ISR" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVRetISR" Text='<%# Eval("VRetISR","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="IEPS" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVIEPS" Text='<%# Eval("VIEPS","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ret. IVA" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVRetIVA" Text='<%# Eval("VRetIVA","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ret. ISR" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblVRetISR" Text='<%# Eval("VRetISR","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Moneda" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label runat="server" ID="LblAbreviatura" Text='<%# Eval("Abreviatura")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblCBTTotal" Text='<%# Eval("CBTTotal","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sub Total" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblCBTSubTotal" Text='<%# Eval("CBTSubTotal","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblCBTTotal" Text='<%# Eval("CBTTotal","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="IVA" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblImpIVA" Text='<%# Eval("ImpIVA","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Sub Total" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblCBTSubTotal" Text='<%# Eval("CBTSubTotal","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="IEPS" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblImpIEPS" Text='<%# Eval("ImpIEPS","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="IVA" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblImpIVA" Text='<%# Eval("ImpIVA","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="IEPS" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblImpIEPS" Text='<%# Eval("ImpIEPS","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ret. ISR" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblImpRetISR" Text='<%# Eval("ImpRetISR","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ret. ISR" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblImpRetISR" Text='<%# Eval("ImpRetISR","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ret. IVA" ItemStyle-HorizontalAlign="Right" >
<ItemTemplate>
<asp:Label runat="server" ID="LblImpRetIVA" Text='<%# Eval("ImpRetIVA","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Ret. IVA" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label runat="server" ID="LblImpRetIVA" Text='<%# Eval("ImpRetIVA","{0:N2}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Moneda" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label runat="server" ID="LblCBTMoneda" Text='<%# Eval("CBTMoneda")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</contenttemplate>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div id="ModalViewSolicitudes" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UPModalViewSolicitudes" class="modal-dialog rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<contenttemplate>
<div id="ModalViewSolicitudes" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UPModalViewSolicitudes" class="modal-dialog rowpadding xspadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Solicitudes CFDI</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12" style="text-align:right">
<div class="row">
<div class="col-md-12" style="text-align: right">
<asp:LinkButton ID="LnkAgregarSolictud" runat="server" data-toggle="tooltip" data-placement="right" OnClick="LnkAgregarSolictud_Click" title="Agregar Solicitud." CssClass="btn btn-circle btn-default" Text="<i class='fa fa-plus'></i> Agregar Solicitud"></asp:LinkButton>
</div>
</div>
<ajax:TabContainer runat="server" ID="TabPanel" ActiveTabIndex="0">
<ajax:TabPanel runat="server" HeaderText="Pendientes" ID="TabPendientes">
<ContentTemplate>
<asp:GridView ID="GVSolicitudesPendientes" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False"
ShowHeaderWhenEmpty="true" EmptyDataText="No se encontraron registros"
DataKeyNames="CveSolicitud,CveSolicitudCFDI,CveSolicitudMetadata,Estatus,Observaciones,FechaInicio,FechaFin,FechaIng,CveUsuarioIng,CveEmpresa">
<Columns>
<asp:TemplateField HeaderText="Folio">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("CveSolicitud")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha Inicio">
<ItemTemplate>
<asp:Label ID="lblfechaInicio" runat="server" Text='<%# Eval("FechaInicio","{0:dd/MM/yyyy}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha Fin">
<ItemTemplate>
<asp:Label ID="lblfechaFin" runat="server" Text='<%# Eval("FechaFin","{0:dd/MM/yyyy}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Estatus">
<ItemTemplate>
<asp:Label ID="lblestatus" runat="server" Text='<%# Eval("EstatusText")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Observaciones">
<ItemTemplate>
<asp:Label ID="lblobservaciones" runat="server" Text='<%# Eval("Observaciones")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha solicitud">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("FechaIng","{0:dd/MM/yyyy HH:mm}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Solicitó">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("UsuarioIng")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GVSolicitudesPendientes" runat="server" GridLines="None" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" AutoGenerateColumns="False"
ShowHeaderWhenEmpty="true" EmptyDataText="No se encontraron registros"
DataKeyNames="CveSolicitud,CveSolicitudCFDI,CveSolicitudMetadata,Estatus,Observaciones,FechaInicio,FechaFin,FechaIng,CveUsuarioIng,CveEmpresa,ArchivoXML,idSolicitud,CveSolicitudDetalle,Folio,CveTipoSolicitud">
<Columns>
<asp:TemplateField HeaderText="Folio">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("Folio")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha Inicio">
<ItemTemplate>
<asp:Label ID="lblfechaInicio" runat="server" Text='<%# Eval("FechaInicio","{0:dd/MM/yyyy}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha Fin">
<ItemTemplate>
<asp:Label ID="lblfechaFin" runat="server" Text='<%# Eval("FechaFin","{0:dd/MM/yyyy}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Estatus">
<ItemTemplate>
<asp:Label ID="lblestatus" runat="server" Text='<%# Eval("EstatusText")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Observaciones">
<ItemTemplate>
<asp:Label ID="lblobservaciones" runat="server" Text='<%# Eval("Observaciones")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha solicitud">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("FechaIng","{0:dd/MM/yyyy}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Solicitó">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("UsuarioIng")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
<div class="row">
<div class="col-md-12" style="text-align: center">
<asp:LinkButton ID="LnkverificarSolicitudes" CssClass="btn btn-primary" OnClick="LnkverificarSolicitudes_Click" runat="server">Verificar pendientes</asp:LinkButton>
</div>
</div>
</ContentTemplate>
</ajax:TabPanel>
@@ -541,50 +599,74 @@
<ajax:TabPanel runat="server" HeaderText="Historial" ID="TabHistorial">
<ContentTemplate>
<asp:GridView ID="GVSolicitudesNominas" runat="server" GridLines="None" CssClass="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False"
ShowHeaderWhenEmpty="true" EmptyDataText="No se encontraron registros"
DataKeyNames="CveSolicitud,idSolicitudCFDI,idSolicitudMetadata,Estatus,Observaciones,FechaInicio,FechaFin,FechaIng,CveUsuarioIng,CveEmpresa">
<Columns>
<asp:TemplateField HeaderText="Folio">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("CveSolicitud")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha Inicio">
<ItemTemplate>
<asp:Label ID="lblfechaInicio" runat="server" Text='<%# Eval("FechaInicio","{0:dd/MM/yyyy}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha Fin">
<ItemTemplate>
<asp:Label ID="lblfechaFin" runat="server" Text='<%# Eval("FechaFin","{0:dd/MM/yyyy}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="No CFDI">
<ItemTemplate>
<asp:Label ID="lblobservaciones" runat="server" Text='<%# Eval("numeroCFDIs")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Observaciones">
<ItemTemplate>
<asp:Label ID="lblobservaciones" runat="server" Text='<%# Eval("Observaciones")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha solicitud">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("FechaIng","{0:dd/MM/yyyy HH:mm}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Solicitó">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("UsuarioIng")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GVSolicitudesNominas" runat="server" GridLines="None" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" AutoGenerateColumns="False" OnRowDataBound="GVSolicitudesNominas_RowDataBound"
ShowHeaderWhenEmpty="true" EmptyDataText="No se encontraron registros"
DataKeyNames="CveSolicitudDetalle,CveSolicitud,idSolicitudCFDI,idSolicitudMetadata,Estatus,Observaciones,FechaInicio,FechaFin,FechaIng,CveUsuarioIng,CveEmpresa,ArchivoXML,Folio,CveTipoSolicitud">
<Columns>
<asp:TemplateField HeaderText="Folio">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("Folio")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha Inicio">
<ItemTemplate>
<asp:Label ID="lblfechaInicio" runat="server" Text='<%# Eval("FechaInicio","{0:dd/MM/yyyy}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha Fin">
<ItemTemplate>
<asp:Label ID="lblfechaFin" runat="server" Text='<%# Eval("FechaFin","{0:dd/MM/yyyy}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="No CFDI" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Label ID="LblnumeroCFDIs" runat="server" Text='<%# Eval("numeroCFDIs")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Observaciones">
<ItemTemplate>
<asp:Label ID="lblobservaciones" runat="server" Text='<%# Eval("Observaciones")%>' ItemStyle-Width="150px" ControlStyle-Width="150px" CssClass="truncate" ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha solicitud">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("FechaIng","{0:dd/MM/yyyy}")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Solicitó" ItemStyle-Width="100px" ControlStyle-Width="100px">
<ItemTemplate>
<asp:Label runat="server" Text='<%# Eval("UsuarioIng")%>' CssClass="truncate"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Right" ItemStyle-Width="50px" HeaderText="XML">
<ItemTemplate>
<asp:LinkButton ID="LnkDescargaXML" CssClass="btn btn-circle btn-sm blue" OnClick="LnkDescargaXML_Click" runat="server" ToolTip="Descargar archivo"
Text="<i class='fa fa-download' style='color:white' title='Descargar Documento'></i>" CausesValidation="False" Visible="false" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="R Nombres" Visible="false">
<ItemTemplate>
<asp:LinkButton ID="LnkRenombrarArchivos" CssClass="btn btn-circle btn-sm blue" OnClick="LnkRenombrarArchivos_Click" runat="server" ToolTip="Renombrar Archivos"
Text="Renombrar" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</ContentTemplate>
</ajax:TabPanel>
@@ -593,16 +675,16 @@
</ajax:TabContainer>
</div>
<div class="modal-footer">
<asp:LinkButton ID="LnkverificarSolicitudes" CssClass="btn btn-primary" OnClick="LnkverificarSolicitudes_Click" runat="server">Verificar pendientes</asp:LinkButton>
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
</div>
</div>
</contenttemplate>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
@@ -612,7 +694,7 @@
<div id="ModalAgregarSolicitud" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UPModalViewSolicitudesAgregar" class="modal-dialog rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
@@ -621,11 +703,11 @@
<div class="modal-body">
<div class="row">
<div class="col-md-6">
<div class="form-group form-md-line-input input-iconright" style="width: 125px!important">
<asp:TextBox ID="txtFechaIAdd" CssClass="form-control" MaxLength="20" runat="server" Width="100px"></asp:TextBox>
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright" style="width: 125px!important;height:28px!important">
<asp:TextBox ID="txtFechaIAdd" CssClass="form-control" MaxLength="20" runat="server" Width="100px" Height="28px"></asp:TextBox>
<span class="input-group-btn " style="position: absolute; right: 41px; top: -5px;">
<asp:LinkButton ID="LnkFechaIAdd" class="btn default" Style="margin-top: 15px; margin-left: 6px" Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
<asp:LinkButton ID="LnkFechaIAdd" class="btn default" Style="margin-top: 15px; margin-left: 6px" Text="<i Style='margin-left: -6px;margin-top: -5px' class='fa fa-calendar'></i>" runat="server" Width="25px" Height="27px" ></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaIAdd" runat="server" TargetControlID="txtFechaIAdd" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="txtFechaIAdd" PopupButtonID="LnkFechaIAdd" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
@@ -637,11 +719,11 @@
</div>
</div>
<div class="col-md-6">
<div class="col-md-4">
<div class="form-group form-md-line-input input-iconright" style="width: 125px!important">
<asp:TextBox ID="txtFechaFAdd" CssClass="form-control" MaxLength="20" runat="server" Width="100px"></asp:TextBox>
<asp:TextBox ID="txtFechaFAdd" CssClass="form-control" MaxLength="20" runat="server" Width="100px" Height="28px"></asp:TextBox>
<span class="input-group-btn " style="position: absolute; right: 41px; top: -5px;">
<asp:LinkButton ID="LnkFechaFAdd" class="btn default" Style="margin-top: 15px; margin-left: 6px" Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
<asp:LinkButton ID="LnkFechaFAdd" class="btn default" Style="margin-top: 15px; margin-left: 6px" Text="<i Style='margin-left: -6px;margin-top: -5px' class='fa fa-calendar'></i>" runat="server" Width="25px" Height="27px" ></asp:LinkButton>
</span>
<ajax:MaskedEditExtender ID="MEEFechaFAdd" runat="server" TargetControlID="txtFechaFAdd" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender2" TargetControlID="txtFechaFAdd" PopupButtonID="LnkFechaFAdd" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
@@ -652,6 +734,11 @@
<label for="<%= txtFechaFAdd.ClientID.ToString() %>" style="margin-top: -6px">Fecha Fin:</label>
</div>
</div>
<div class="col-md-4">
<asp:CheckBox runat="server" ID="ChkMetaDatos" Text="Validación de Estatus" />
</div>
</div>
@@ -668,10 +755,10 @@
</asp:Content>

View File

@@ -44,114 +44,71 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas
}
set { ViewState["fechaFin"] = value; }
}
public int TipoDescarga // 0 sin descarga 1 resumen 2 desglose
{
get
{
if (ViewState["TipoDescarga"] == null) { return 0; }
else { return ViewState["TipoDescarga"].ToString().ToEntero(); }
}
set { ViewState["TipoDescarga"] = (int)value; }
}
#endregion
protected void Page_Load(object sender, EventArgs e)
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TxtRpdFechaInicio.Text = string.Format("01/{0:MM/yyyy}", DateTime.Now.AddMonths(-1));
TxtRpdFechaFin.Text = string.Format("{0:dd/MM/yyyy}", DateTime.Now.AddMonths(-1).LastDayOfMonth());
LnkConsultar_Click(null, null);
//if(UsuarioActual.CveRol == 1)
//{
// GVSolicitudesNominas.Columns[8].Visible = true;
//}
}
}
protected void LnkDownloadExcel_Click(object sender, EventArgs e)
{
if(TipoDescarga == 1) {
GvResumen.ExportToExcel2($"Resumen{DateTime.Now.ToString("yyyyMMddhhmmss")}");
}
using (ClsNominas nom = new ClsNominas())
if (TipoDescarga == 2)
{
nom.SATSolicitudTimbreNominaGral(DdlReporte.SelectedValue.ToString().ToEntero(), UsuarioActual.CveEmpresa, fechaInicio, fechaFin);
ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook();
var libro = wb.AddWorksheet(nom.DtResultados, "Nomina");
libro.ColumnsUsed().AdjustToContents();
libro.Range(1, 1, 1, nom.DtResultados.Columns.Count).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 153, 153));
switch (DdlReporte.SelectedValue.ToString().ToEntero())
{
case 1:
libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
libro.Range(1, 3, 1, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
break;
case 2:
libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
libro.Range(1, 3, 1, 6).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
libro.Range(1, 8, 1, 11).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
break;
case 3:
libro.Range(1, 1, 1, 10).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
libro.Range(1, 11, 1, nom.DtResultados.Columns.Count).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
break;
case 4:
libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
libro.Range(1, 3, 1, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
break;
case 5:
libro.Range(1, 2, 1, 2).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
libro.Range(1, 3, 1, 3).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
break;
case 6:
libro.Range(1, 4, 1, 6).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
libro.Range(1, 7, 1, 9).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
break;
case 7:
libro.Range(1, 3, 1, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
libro.Range(1, 6, 1, 8).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
break;
case 8:
libro.Range(1, 6, 1, 8).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(153, 0, 0));
libro.Range(1, 9, 1, 12).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(53, 152, 220));
break;
case 9:
break;
default:
break;
}
libro.Row(1).InsertRowsAbove(4);
libro.Range(1, 2, 1, 6).Merge().Value = UsuarioActual.Empresa.Empresa;
libro.Range(2, 2, 2, 6).Merge().Value = $"Reporte de {DdlReporte.SelectedItem.Text}";
libro.Range(3, 2, 3, 6).Merge().Value = $"del {fechaInicio.ToDateTime():dd/MM/yyyy} al {fechaFin.ToDateTime():dd/MM/yyyy}";
libro.Range(2, 7, 2, 9).Merge().Value = $"Fecha:{DateTime.Now:dd/MM/yyyy}";
libro.Range(3, 7, 3, 9).Merge().Value = $"Hora:{DateTime.Now:HH:mm}";
System.IO.Stream fs = new System.IO.MemoryStream();
wb.SaveAs(fs);
fs.Position = 0;
System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
using (System.IO.Stream input = fs)
{
input.CopyTo(memoryStream);
}
memoryStream.Position = 0;
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xlsx", $"Visor nómina ( Reporte :{DdlReporte.SelectedValue}) "));
Response.BinaryWrite(memoryStream.ToArray());
Response.End();
GvDatos.ExportToExcel2($"PorComprobante{DateTime.Now.ToString("yyyyMMddhhmmss")}");
}
}
protected void LnkConsultar_Click(object sender, EventArgs e)
{
DvDatos1.Visible = false;
DvDatos2.Visible = false;
DVResumen1.Visible = false;
DVResumen2.Visible = false;
TipoDescarga = 0;
GvResumen.DataSource = null;
GvDatos.DataSource = null;
LnkDownloadExcel.Visible = false;
if (DdlReporte.SelectedValue.ToEntero() == 1)
{
GvResumen.Visible = true;
GvDatos.Visible = false;
DVResumen1.Visible = true;
DVResumen2.Visible = true;
DvDatos1.Visible = false;
DvDatos2.Visible = false;
}
else
{
GvResumen.Visible = false;
GvDatos.Visible = true;
}
DVResumen1.Visible = false;
DVResumen2.Visible = false;
DvDatos1.Visible = true;
DvDatos2.Visible = true;
}
using (ClsNominas ObjNom = new ClsNominas())
{
@@ -160,34 +117,43 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas
if (DdlReporte.SelectedValue.ToEntero() == 1)
{
GvResumen.DataSource = ObjNom.DtResultados;
TipoDescarga = ObjNom.DtResultados.Rows.Count > 0 ? 1:0;
LnkDownloadExcel.Visible = true;
}
else
{
GvDatos.DataSource = ObjNom.DtResultados;
TipoDescarga = ObjNom.DtResultados.Rows.Count > 0 ? 2 : 0;
LnkDownloadExcel.Visible = true;
}
}
}
GvResumen.DataBind();
GvDatos.DataBind();
UpDatos.Update();
UpAcciones.Update();
}
private void cargasolicitudes()
{
LnkverificarSolicitudes.Visible = false;
using (ClsNominas nom = new ClsNominas())
{
if (nom.SolicitudesGet(-1, UsuarioActual.CveEmpresa, CveTipoSolicitud: 3))
if (nom.SolicitudesGet(-1, UsuarioActual.CveEmpresa, CveTipoSolicitud: 3, Estatus: 0,Top:50))
{
GVSolicitudesPendientes.DataSource = nom.DtResultados;
if (nom.DtResultados.Rows.Count > 0)
{
LnkverificarSolicitudes.Visible = true;
}
GVSolicitudesPendientes.DataBind();
}
GVSolicitudesPendientes.DataSource = nom.DtResultados.FiltraParametros("Estatus =0");
GVSolicitudesPendientes.DataBind();
GVSolicitudesNominas.DataSource = nom.DtResultados.FiltraParametros("Estatus =1");
if (nom.SolicitudesGet(-1, UsuarioActual.CveEmpresa, CveTipoSolicitud: 3, Estatus:1,Top:50))
{
GVSolicitudesNominas.DataSource = nom.DtResultados;
GVSolicitudesNominas.DataBind();
}
}
@@ -204,6 +170,7 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas
protected void LnkSolicitarSat_Click(object sender, EventArgs e)
{
StringBuilder sbResultado = new StringBuilder();
int idSolicitudCFDI = 0;
int idSolicitudMetadata = 0;
int estatus = 0;
@@ -212,22 +179,27 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas
DateTime fechaFin = txtFechaFAdd.Text.ToDateTime();
int cveUsuarioIng = UsuarioActual.CveUsuario;
int cveEmpresa = UsuarioActual.CveEmpresa;
bool Continuar = false;
int CveSolicitudAgregada = -1;
int Folio = -1;
using (ClsNominas nom = new ClsNominas())
{
Continuar = nom.SolicitudesAdd(idSolicitudCFDI, idSolicitudMetadata, estatus, observaciones, fechaInicio, fechaFin, cveUsuarioIng, cveEmpresa, CveTipoSolicitud: 3);
int CveTipoSolicitud = ChkMetaDatos.Checked ? 203 :3;
CveSolicitudAgregada = nom.SolicitudesAdd2(idSolicitudCFDI, idSolicitudMetadata, estatus, observaciones, fechaInicio, fechaFin, cveUsuarioIng, cveEmpresa, CveTipoSolicitud: CveTipoSolicitud);
if(CveSolicitudAgregada > 0)
{
Folio = nom.FolioSolicitud;
}
}
if (Continuar)
if (CveSolicitudAgregada > 0)
{
StringBuilder sbResultado = new StringBuilder();
var api = new GeneralesAPII();
JToken ObjApiSolicitud = (JToken)api.GeneraSolicitud(UsuarioActual.CveEmpresa, 3);
JToken ObjApiSolicitud = (JToken)api.GeneraSolicitud(UsuarioActual.CveEmpresa, 3, CveSolicitudAgregada);
List<string> resultSolicitud = new List<string>();
List<string> resultVerificacion = new List<string>();
var ResultadoVerificaionOK = false;
var SeVerifico = false;
var TipoMensaje = ModExtensiones.TipoMensaje.MsgInformacion;
var ResultadoSolicitudOK = false;
@@ -244,71 +216,34 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas
if (ResultadoSolicitudOK)
{
JToken ObjApiVerificacion = (JToken)api.VerificaSolicitudesNominas(UsuarioActual.CveEmpresa, 3);
sbResultado.Append($"Solicitud registrada correctamente y solicitada a SAT.<br> Folio: {Folio}");
}
else{
if (!(ObjApiVerificacion == null))
if(ObjApiSolicitud != null && resultSolicitud.Count == 4)
{
resultVerificacion = ObjApiVerificacion.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value<string>()).ToList();
ResultadoVerificaionOK = bool.Parse(resultVerificacion[0]);
SeVerifico = true;
sbResultado.Append($"Solicitud registrada, pendiente de verificar en SAT <br> Folio: {Folio} <br>({resultSolicitud[1]})<br>");
}
else
{
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
sbResultado.Append($"Solicitud registrada, pendiente de verificar en SAT <br> Folio: {Folio}");
}
}
if (resultSolicitud.Count == 4)
{
if (ResultadoSolicitudOK)
{
if (resultSolicitud[1].ToString().Trim().Length > 0)
{
sbResultado.Append($"{resultSolicitud[1]}<br/>");
}
else
{
sbResultado.Append($"Solicitud Generada Correctamente");
sbResultado.Append($"Se presento un error al verificar las solicitudes <br/> {resultSolicitud[2]} <br>");
}
}
else
{
sbResultado.Append($"{resultSolicitud[2]}");
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
}
else
{
sbResultado.AppendLine("Se presento un error al generar la solicitud (API) <br/>");
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
if (SeVerifico && resultVerificacion.Count == 4)
{
if (ResultadoVerificaionOK)
{
sbResultado.Append($"{resultVerificacion[1]}<br>");
}
else
{
sbResultado.Append($"Se presento un error al verificar las solicitudes {resultVerificacion[1]}<br>");
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
}
else
{
sbResultado.AppendLine("Se presento un error al verificar las solicitudes (API) <br/>");
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
Alert(sbResultado.ToString(), TipoMensaje);
}
else
{
Alert("No se puedo registrar la solictud".ToString(), ModExtensiones.TipoMensaje.MsgAdvertencia);
}
if (Continuar)
if (CveSolicitudAgregada > 0)
{
txtFechaIAdd.Text = "";
txtFechaFAdd.Text = "";
@@ -321,101 +256,131 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas
protected void LnkverificarSolicitudes_Click(object sender, EventArgs e)
{
//var api = new GeneralesAPI();
//api.GeneraSolicitud();
//api.VerificaSolicitudesNominas();
StringBuilder sbResultado = new StringBuilder();
var api = new GeneralesAPII();
JToken ObjApiSolicitud = (JToken)api.GeneraSolicitud(UsuarioActual.CveEmpresa, 3);
List<string> resultSolicitud = new List<string>();
List<string> resultVerificacion = new List<string>();
var ResultadoVerificaionOK = false;
var SeVerifico = false;
var TipoMensaje = ModExtensiones.TipoMensaje.MsgInformacion;
var ResultadoSolicitudOK = false;
if (!(ObjApiSolicitud == null))
try
{
resultSolicitud = ObjApiSolicitud.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value<string>()).ToList();
ResultadoSolicitudOK = bool.Parse(resultSolicitud[0]);
}
else
{
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
StringBuilder sbResultado = new StringBuilder();
if (ResultadoSolicitudOK)
{
JToken ObjApiVerificacion = (JToken)api.VerificaSolicitudesNominas(UsuarioActual.CveEmpresa, 3);
if (!(ObjApiVerificacion == null))
foreach(GridViewRow GvRow in GVSolicitudesPendientes.Rows)
{
resultVerificacion = ObjApiVerificacion.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value<string>()).ToList();
ResultadoVerificaionOK = bool.Parse(resultVerificacion[0]);
SeVerifico = true;
}
else
{
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
}
int CveSolicitudActual = GvRow.DataKey("CveSolicitud").ToEntero();
string idSolicitud = GvRow.DataKey("idSolicitud").Trim();
int CveTipoSolicitud = GvRow.DataKey("CveTipoSolicitud").ToEntero();
int Folio = GvRow.DataKey("Folio").ToEntero();
if (resultSolicitud.Count == 4)
{
if (ResultadoSolicitudOK)
{
if (resultSolicitud[2].ToString().Trim().Length > 0)
List<string> resultSolicitud = new List<string>();
List<string> resultVerificacion = new List<string>();
var ResultadoVerificaionOK = false;
var SeVerifico = false;
var TipoMensaje = ModExtensiones.TipoMensaje.MsgInformacion;
var ResultadoSolicitudOK = false;
var api = new GeneralesAPII();
if (idSolicitud.Length == 0)
{
sbResultado.Append($"{resultSolicitud[2]}<br/>");
JToken ObjApiSolicitud = (JToken)api.GeneraSolicitud(UsuarioActual.CveEmpresa, CveTipoSolicitud, CveSolicitudActual);
if (!(ObjApiSolicitud == null))
{
resultSolicitud = ObjApiSolicitud.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value<string>()).ToList();
ResultadoSolicitudOK = bool.Parse(resultSolicitud[0]);
sbResultado.Append($"Solicitud {CveSolicitudActual} solicitada a SAT.<br>");
}
else
{
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
}
else
{
sbResultado.Append($"Solicitud Generada Correctamente");
sbResultado.Append($"Se presento un error al verificar las solicitudes <br/> {resultSolicitud[2]} <br>");
resultSolicitud = new List<string>();
resultSolicitud.Add("true");
resultSolicitud.Add("");
resultSolicitud.Add("");
resultSolicitud.Add("");
ResultadoSolicitudOK = true;
}
if (ResultadoSolicitudOK)
{
JToken ObjApiVerificacion = (JToken)api.VerificaSolicitudesNominas(UsuarioActual.CveEmpresa, CveTipoSolicitud, CveSolicitudActual);
if (!(ObjApiVerificacion == null))
{
resultVerificacion = ObjApiVerificacion.Select(token => token.Values().Aggregate((i, j) => $"{i}|{j}").Value<string>()).ToList();
ResultadoVerificaionOK = bool.Parse(resultVerificacion[0]);
SeVerifico = true;
}
else
{
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
}
else
{
if(resultSolicitud.Count == 4)
{
sbResultado.Append($"Solicitud pendiente de verificar en SAT <br> Folio:{Folio} ({resultSolicitud[1]})<br>");
}
else
{
sbResultado.Append($"Solicitud pendiente de verificar en SAT <br> Folio:{Folio} <br>");
}
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
if (SeVerifico && resultVerificacion.Count == 4)
{
if (ResultadoVerificaionOK)
{
sbResultado.Append($"Solicitud procesada.<br> Folio: {Folio}");
}
else
{
sbResultado.Append($"Solicitud no verificada <br> Folio: {Folio}{resultVerificacion[1]}.<br>");
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
}
else
{
sbResultado.Append($"Se presento un error al verificar la solicitud <br> Folio: {Folio}.");
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
Alert(sbResultado.ToString(), TipoMensaje);
}
else
{
sbResultado.Append($"{resultSolicitud[2]}");
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
cargasolicitudes();
}
else
catch(Exception ex)
{
sbResultado.AppendLine("Se presento un error al generar la solicitud (API) <br/>");
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
Alert(ex.StackTrace);
}
if (SeVerifico && resultVerificacion.Count == 4)
{
if (ResultadoVerificaionOK)
{
sbResultado.Append($"{resultVerificacion[2]}<br>");
}
else
{
sbResultado.Append($"Se presento un error al verificar las solicitudes {resultVerificacion[2]}<br>");
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
}
else
{
sbResultado.AppendLine("Se presento un error al verificar las solicitudes (API) <br/>");
TipoMensaje = ModExtensiones.TipoMensaje.MsgAdvertencia;
}
Alert(sbResultado.ToString(), TipoMensaje);
cargasolicitudes();
}
@@ -436,8 +401,8 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas
{
if(e.Row.DataKey("Mes").ToString() == "")
{
e.Row.Cells[0].Text = "Total";
e.Row.Font.Bold = true;
e.Row.Cells[0].Text = "Total";
e.Row.Attributes.Add("class", "Totales");
}
}
@@ -448,23 +413,83 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas
if(e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.DataKey("UUID") == "Totales")
{
e.Row.Font.Bold = true;
e.Row.Cells[1].Text = e.Row.DataKey("VTotal").ToDecimal().ToString("###,###,###.00");
e.Row.Cells[2].Text = e.Row.DataKey("CBTTotal").ToDecimal().ToString("###,###,###.00");
e.Row.Cells[3].Text = e.Row.DataKey("CountRegistros");
if (e.Row.DataKey("UUID") == "Totales")
{
e.Row.Font.Bold = true;
e.Row.Cells[1].Text = e.Row.DataKey("CountRegistrosSIG");
e.Row.Cells[2].Text = e.Row.DataKey("CountRegistrosSAT");
e.Row.Attributes.Add("class", "Totales");
}
if(e.Row.DataKey("UUID").ToUpper() != "TOTALES")
{
StringBuilder SBMsgToolTip = new StringBuilder();
if (e.Row.DataKey("DifImporte").ToDecimal() != 0 || (e.Row.DataKey("Abreviatura").ToUpper() != e.Row.DataKey("CBTMoneda").ToUpper()))
{
e.Row.CssClass = "bg-yellow-casablanca bg-font-yellow-casablanca";
}
e.Row.Attributes.Add("data-html", "true");
e.Row.Attributes.Add("data-toggle", "tooltip");
e.Row.Attributes.Add("data-placement", "top");
if (e.Row.DataKey("Sistema").ToUpper() == "NO" || e.Row.DataKey("CFDIData").ToUpper() == "NO")
{
if (e.Row.DataKey("Sistema").ToUpper() == "NO")
{
SBMsgToolTip.AppendLine("Comprobante no se encuentra en SIG.<br>");
}
if (e.Row.DataKey("CFDIData").ToUpper() == "NO")
{
SBMsgToolTip.AppendLine("Comprobante no se encuentra en descargas de SAT.<br>");
}
}
else {
if (e.Row.DataKey("DifImporte").ToDecimal() != 0)
{
SBMsgToolTip.AppendLine($" Diferencia importes {e.Row.DataKey("DifImporte").ToDecimal().ToString("###,###,###.00")}");
}
if (e.Row.DataKey("Abreviatura").ToUpper() != e.Row.DataKey("CBTMoneda").ToUpper())
{
SBMsgToolTip.AppendLine($"Diferencia en monedas.");
}
}
if (SBMsgToolTip.ToString().Length > 0)
{
e.Row.Attributes.Add("title", SBMsgToolTip.ToString());
}
LinkButton LnkCFDIData = e.Row.FCLinkButton("LnkCFDIData");
if((e.Row.DataKey("CFDIData").ToUpper() == "SI"))
{
ScriptManager.GetCurrent(this).RegisterPostBackControl(LnkCFDIData);
LnkCFDIData.CssClass = "Texto";
}
else
{
LnkCFDIData.PostBackUrl = "#";
}
if(e.Row.DataKey("CveVenta").ToEntero() > 0)
{
e.Row.Cells[1].Text = $"<a href='/Ventas/Ventas.aspx?CveVenta={e.Row.DataKey("CveVenta").ToEntero()}'class='Texto' target='_blank' >Si</a>";
e.Row.Cells[3].Text = $"<a href='/Ventas/Ventas.aspx?CveVenta={e.Row.DataKey("CveVenta").ToEntero()}'class='Texto' target='_blank' >{e.Row.DataKey("VSerieFolio")}</a>";
}
}
}
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[1].BackColor = System.Drawing.Color.FromName("#3598dc"); //Azul
e.Row.Cells[2].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
e.Row.Cells[2].BackColor = System.Drawing.Color.FromName("#E87E04"); //Rojo
e.Row.Cells[4].BackColor = System.Drawing.Color.FromName("#3598dc"); //Azul
@@ -473,14 +498,29 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas
e.Row.Cells[7].BackColor = System.Drawing.Color.FromName("#3598dc"); //Azul
e.Row.Cells[8].BackColor = System.Drawing.Color.FromName("#3598dc"); //Azul
e.Row.Cells[9].BackColor = System.Drawing.Color.FromName("#3598dc"); //Azul
e.Row.Cells[10].BackColor = System.Drawing.Color.FromName("#3598dc"); //Azul
//e.Row.Cells[11].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
//e.Row.Cells[12].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
//e.Row.Cells[13].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
//e.Row.Cells[14].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
//e.Row.Cells[15].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
//e.Row.Cells[16].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
//e.Row.Cells[17].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
e.Row.Cells[11].BackColor = System.Drawing.Color.FromName("#E87E04"); //Rojo
e.Row.Cells[12].BackColor = System.Drawing.Color.FromName("#E87E04"); //Rojo
e.Row.Cells[13].BackColor = System.Drawing.Color.FromName("#E87E04"); //Rojo
e.Row.Cells[14].BackColor = System.Drawing.Color.FromName("#E87E04"); //Rojo
e.Row.Cells[15].BackColor = System.Drawing.Color.FromName("#E87E04"); //Rojo
e.Row.Cells[16].BackColor = System.Drawing.Color.FromName("#E87E04"); //Rojo
e.Row.Cells[17].BackColor = System.Drawing.Color.FromName("#E87E04"); //Rojo
e.Row.Cells[10].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
e.Row.Cells[11].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
e.Row.Cells[12].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
e.Row.Cells[13].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
e.Row.Cells[14].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
e.Row.Cells[15].BackColor = System.Drawing.Color.FromName("#900"); //Rojo
e.Row.Cells[1].ForeColor = System.Drawing.Color.FromName("white");
@@ -492,18 +532,200 @@ public partial class SAT_SolicitudesIngresoSat : ClsPaginas
e.Row.Cells[7].ForeColor = System.Drawing.Color.FromName("white");
e.Row.Cells[8].ForeColor = System.Drawing.Color.FromName("white");
e.Row.Cells[9].ForeColor = System.Drawing.Color.FromName("white");
e.Row.Cells[10].ForeColor = System.Drawing.Color.FromName("white");
e.Row.Cells[11].ForeColor = System.Drawing.Color.FromName("white");
e.Row.Cells[12].ForeColor = System.Drawing.Color.FromName("white");
e.Row.Cells[13].ForeColor = System.Drawing.Color.FromName("white");
e.Row.Cells[14].ForeColor = System.Drawing.Color.FromName("white");
e.Row.Cells[15].ForeColor = System.Drawing.Color.FromName("white");
e.Row.Cells[15].ForeColor = System.Drawing.Color.FromName("white");
e.Row.Cells[16].ForeColor = System.Drawing.Color.FromName("white");
e.Row.Cells[17].ForeColor = System.Drawing.Color.FromName("white");
}
}
protected void LnkDescargaXML_Click(object sender, EventArgs e)
{
GridViewRow GvRow = (GridViewRow)((LinkButton)sender).NamingContainer;
var UrlDescarga = $"{UsuarioActual.Empresa.Ruta}NomXMLSAT\\Descargas\\{GvRow.DataKey("ArchivoXML")}";
var Archivo = new System.IO.FileInfo(UrlDescarga);
if (Archivo.Exists)
{
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + Archivo.Name);
Response.AddHeader("Content-Length", Archivo.Length.ToString());
Response.ContentType = "text/octet-stream";
Response.Flush();
Response.TransmitFile(Archivo.FullName);
Response.End();
}
}
protected void GVSolicitudesNominas_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.DataKey("ArchivoXML").Length > 0)
{
var UrlDescarga = $"{UsuarioActual.Empresa.Ruta}NomXMLSAT\\Descargas\\{e.Row.DataKey("ArchivoXML")}";
if (System.IO.File.Exists(UrlDescarga)){
LinkButton LnkDescargaXML = e.Row.FCLinkButton("LnkDescargaXML");
ScriptManager.GetCurrent(this).RegisterPostBackControl(LnkDescargaXML);
LnkDescargaXML.Visible = true;
}
}
e.Row.Attributes.Add("data-html", "true");
e.Row.Attributes.Add("data-toggle", "tooltip");
e.Row.Attributes.Add("data-placement", "top");
e.Row.Attributes.Add("title", e.Row.DataKey("Observaciones"));
}
}
private void CargaComprobanteXML(string DirectoryPath, int CveSolicitudDetalle)
{
int Contador = 0;
System.IO.DirectoryInfo DirInfo = new System.IO.DirectoryInfo(DirectoryPath);
IEnumerable<System.IO.FileInfo> files = DirInfo.EnumerateFiles();
foreach (var f in files)
{
if(f.Extension.ToUpper() == ".XML")
{
string UUID = "";
System.Xml.XmlDocument XMLDoc = new System.Xml.XmlDocument();
try
{
XMLDoc.Load(f.FullName);
}
catch (Exception ex)
{
try
{
var oReader = new System.IO.StreamReader(f.FullName, System.Text.Encoding.GetEncoding("ISO-8859-1"));
XMLDoc.Load(oReader);
oReader.Dispose();
}
catch (Exception ex2)
{
// GuardaLog("Error al intentar leer el XML del SAT. Error:" + ex2.ToString());
ModExtensiones.GuardaLog(ex2.StackTrace);
}
}
System.Xml.XmlNode nodo = XMLDoc.DocumentElement;
string Version = ValorXML(nodo, "version");
System.Xml.XmlNamespaceManager namespaces = new System.Xml.XmlNamespaceManager(XMLDoc.NameTable);
string Prefijo = XMLDoc.DocumentElement.Prefix == "" ? "cfd" : XMLDoc.DocumentElement.Prefix;
string cfdVer = "";
if (Version == "3.2")
{
Prefijo = "cfd";
cfdVer = "http://www.sat.gob.mx/cfd/2";
}
else if (Version == "3.3")
cfdVer = "http://www.sat.gob.mx/cfd/3";
else
cfdVer = "http://www.sat.gob.mx/cfd/4";
namespaces.AddNamespace(Prefijo, cfdVer);
namespaces.AddNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital");
namespaces.AddNamespace("implocal", "http://www.sat.gob.mx/implocal");
namespaces.AddNamespace("registrofiscal", "http://www.sat.gob.mx/registrofiscal");
System.Xml.XmlNode node;
node = XMLDoc.SelectSingleNode(string.Format("//{0}:Emisor", Prefijo), namespaces);
System.Xml.XmlNode nodeComp = XMLDoc.SelectSingleNode(string.Format("//{0}:Complemento", Prefijo), namespaces);
if (node != null )
{
System.Xml.XmlNode nodeTFD = nodeComp.SelectSingleNode(string.Format("//{0}:TimbreFiscalDigital", "tfd"), namespaces);
UUID = ValorXML(nodeTFD, "UUID", "");
}
if (UUID.Length > 0)
{
try {
System.IO.File.Move(f.FullName, $@"{f.DirectoryName}\{UUID.ToUpper()}.XML");
Contador++;
} catch (Exception ex3)
{
ModExtensiones.GuardaLog(ex3.StackTrace);
}
//ClsNominas objNominas = new ClsNominas();
//objNominas.UpdateSolicitudDetalleCveSolicitudDetalle(UsuarioActual.CveEmpresa, UUID, CveSolicitudDetalle);
//objNominas.Dispose();
}
}
}
Alert("Archivos Renombrados ");
}
private string ValorXML(System.Xml.XmlNode n, string Campo, string Retorno = "")
{
System.Xml.XmlNode o = n.Attributes.Cast<System.Xml.XmlAttribute>().SingleOrDefault(a => string.Compare(a.Name, Campo, true) == 0);
if (o == null)
return Retorno;
else
return o.Value;
}
protected void LnkRenombrarArchivos_Click(object sender, EventArgs e)
{
GridViewRow GvRow = (GridViewRow)((LinkButton)sender).NamingContainer;
var CveSolicitudDetalle = GvRow.DataKey("CveSolicitudDetalle").ToEntero();
var UrlDirectorio = $"{UsuarioActual.Empresa.Ruta}DescargasSATXML\\Ingresos\\{CveSolicitudDetalle}";
CargaComprobanteXML(UrlDirectorio, CveSolicitudDetalle);
}
protected void LnkCFDIData_Click(object sender, EventArgs e)
{
GridViewRow GvRow = (GridViewRow)((LinkButton)sender).NamingContainer;
var CveSolicitudDetalle = GvRow.DataKey("CveSolicitudDetalle");
var UrlDescargaXML = $"{UsuarioActual.Empresa.Ruta}DescargasSATXML\\Ingresos\\{CveSolicitudDetalle}\\{GvRow.DataKey("UUID")}.XML";
var ArchivoXML = new System.IO.FileInfo(UrlDescargaXML);
if (ArchivoXML.Exists)
{
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + ArchivoXML.Name);
Response.AddHeader("Content-Length", ArchivoXML.Length.ToString());
Response.ContentType = "text/octet-stream";
Response.Flush();
Response.TransmitFile(ArchivoXML.FullName);
Response.End();
}
}
}
@@ -512,13 +734,13 @@ public class GeneralesAPII : ADSNetLibraryzI.HelpersI.ConexionesI.SIGAPII.BaseSI
public GeneralesAPII(string domainApi = "http://localhost:4001/", string token = "") : base(domainApi, token) { }
public object GeneraSolicitud(int CveEmpresa, int CveTipoSolicitud)
public object GeneraSolicitud(int CveEmpresa, int CveTipoSolicitud, int CveSolicitud)
{
return getData<object>($"GeneraSolicitud/{CveEmpresa}/{CveTipoSolicitud}", null, ADSNetLibraryzI.HelpersI.ConexionesI.SIGAPII.requestMethod.GET, false);
return getData<object>($"GeneraSolicitud/{CveEmpresa}/{CveTipoSolicitud}/{CveSolicitud}", null, ADSNetLibraryzI.HelpersI.ConexionesI.SIGAPII.requestMethod.GET, false);
}
public object VerificaSolicitudesNominas(int CveEmpresa, int CveTipoSolicitud)
public object VerificaSolicitudesNominas(int CveEmpresa, int CveTipoSolicitud, int CveSolicitud)
{
return getData<object>($"VerificaSolicitudesNominas/{CveEmpresa}/{CveTipoSolicitud}", null, ADSNetLibraryzI.HelpersI.ConexionesI.SIGAPII.requestMethod.GET, false);
return getData<object>($"VerificaSolicitudesNominas/{CveEmpresa}/{CveTipoSolicitud}/{CveSolicitud}", null, ADSNetLibraryzI.HelpersI.ConexionesI.SIGAPII.requestMethod.GET, false);
}
}

View File

@@ -202,8 +202,8 @@ public partial class SAT_SolicitudesNominaSat : ClsPaginas
{
Continuar = nom.SolicitudesAdd(idSolicitudCFDI, idSolicitudMetadata, estatus, observaciones, fechaInicio, fechaFin, cveUsuarioIng, cveEmpresa);
var api = new GeneralesAPI();
api.GeneraSolicitud();
api.VerificaSolicitudesNominas();
api.GeneraSolicitud(UsuarioActual.CveEmpresa, 1);
api.VerificaSolicitudesNominas(UsuarioActual.CveEmpresa, 1);
}
if (Continuar)
{
@@ -219,8 +219,8 @@ public partial class SAT_SolicitudesNominaSat : ClsPaginas
protected void LnkverificarSolicitudes_Click(object sender, EventArgs e)
{
var api = new GeneralesAPI();
api.GeneraSolicitud();
api.VerificaSolicitudesNominas();
api.GeneraSolicitud(UsuarioActual.CveEmpresa,1);
api.VerificaSolicitudesNominas(UsuarioActual.CveEmpresa, 1);
cargasolicitudes();
}
@@ -231,13 +231,14 @@ public class GeneralesAPI : ADSNetLibrary.Helpers.Conexiones.SIGAPI.BaseSIGAPI
public GeneralesAPI(string domainApi = "http://localhost:4001/", string token = "") : base(domainApi, token) { }
public object GeneraSolicitud()
public object GeneraSolicitud(int CveEmpresa, int CveTipoSolicitud)
{
return getData<object>("GeneraSolicitud", null, ADSNetLibrary.Helpers.Conexiones.SIGAPI.requestMethod.GET,false);
return getData<object>($"GeneraSolicitud/{CveEmpresa}/{CveTipoSolicitud}", null, ADSNetLibrary.Helpers.Conexiones.SIGAPI.requestMethod.GET, false);
}
public object VerificaSolicitudesNominas()
public object VerificaSolicitudesNominas(int CveEmpresa, int CveTipoSolicitud)
{
return getData<object>("VerificaSolicitudesNominas", null, ADSNetLibrary.Helpers.Conexiones.SIGAPI.requestMethod.GET, false);
return getData<object>($"VerificaSolicitudesNominas/{CveEmpresa}/{CveTipoSolicitud}", null, ADSNetLibrary.Helpers.Conexiones.SIGAPI.requestMethod.GET, false);
}
}

View File

@@ -689,6 +689,13 @@
<label for="<%= DdlTipoCliente.ClientID.ToString()%>">Tipo de Cliente:</label>
</div>
<div class="form-group form-md-line-input input-iconright" id="DivRepresentanteLegal" runat="server" visible="false">
<asp:TextBox runat="server" ID="TxtRepresentanteLegal" CssClass="form-control" MaxLength="100" />
<label for="<%= TxtRepresentanteLegal.ClientID.ToString()%>">Representante Legal:</label>
</div>
<div class="row">
<div runat="server" id="DivEsDistribuidor" visible="false" class="col-md-4 form-group form-md-line-input input-iconright">

View File

@@ -751,6 +751,10 @@ Partial Class Clientes
If UsuarioActual.Empresa.Funcionalidad(350).Contiene("1", "2") Then
divRegimen.Visible = True
End If
If UsuarioActual.CveEmpresa.Contiene(1) Or UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
DivRepresentanteLegal.Visible = True
End If
If Request("CveCliente") IsNot Nothing AndAlso IsNumeric(Request("CveCliente")) AndAlso Request("CveCliente").ToEntero() > 0 Then
@@ -1873,6 +1877,8 @@ Partial Class Clientes
RdTipoPersona.SelectedValue = If(ObjClientes.TipoPersona, "1", "0")
RdTipoPersona_SelectedIndexChanged(Nothing, Nothing)
TxtRepresentanteLegal.Text = ObjClientes.RepresentanteLegal
End If
UpActivacionPortal.Update()
UpModalPersonaFisica.Update()
@@ -2686,7 +2692,7 @@ Partial Class Clientes
CvePais:=DdlPais.SelectedValue.ToEntero(), CveEstado:=DdlEstado.SelectedValue.ToEntero(), CveMunicipio:=DdlMunicipio.SelectedValue.ToEntero(), CveColonia:=DdlColonia.SelectedValue.ToEntero(), CveMotivoTraslado:=IIf(DdlMotivoTraslado.SelectedValue = "-1", "0", DdlMotivoTraslado.SelectedValue).ToString().ToEntero(), NumRegIdTrib:=IIf(TxtNumRegIdTrib.Text = "", "-1", TxtNumRegIdTrib.Text).ToString(),
ComExtEstado:=IIf(TxtComExtEstado.Text = "", "-1", TxtComExtEstado.Text).ToString(), ComExtMunicipio:=IIf(TxtComExtMunicipio.Text = "", "-1", TxtComExtMunicipio.Text).ToString(), ComExtColonia:=IIf(TxtComExtColonia.Text = "", "-1", TxtComExtColonia.Text).ToString(), RequiereOC:=ChkRequiereOC.Checked, LT:=LT, LG:=LG, EsDistribuidor:=ChkEsDistribuidor.Checked,
TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero(), CargoUsado:=ChkCargoUsado.Checked, BonificacionUsado:=ChkBonificacionUsado.Checked, CveTipoRetencion:=DdlTipoRetencion.SelectedValue.ToEntero(), CorreoEntregaCompras:=TxtCorreoEntregaCompras.Text, CorreoEntregaAlmacen:=TxtCorreoEntregaAlmacen.Text, CveSATEstado:=DdlEstadoSAT.SelectedValue.ToEntero(), CveAdminTrayecto:=If(DdlAdminTrayecto.SelectedValue.ToEntero() <= 0, 0, DdlAdminTrayecto.SelectedValue.ToEntero()),
CveRegimenFiscal:=DdlRegimenFiscal.SelectedValue.ToEntero, RegimenSociedad:=TxtRegimenSociedad.Text, TipoPersona:=TipoPersona) Then
CveRegimenFiscal:=DdlRegimenFiscal.SelectedValue.ToEntero, RegimenSociedad:=TxtRegimenSociedad.Text, TipoPersona:=TipoPersona, RepresentanteLegal:=TxtRepresentanteLegal.Text) Then
ViewState("CveCliente") = ObjClientes.CveCliente
@@ -2783,7 +2789,7 @@ Partial Class Clientes
ApellidoPaternoPF:=IIf(TxtApellidoPaterno.Text = "", "-1", TxtApellidoPaterno.Text).ToString(), ApellidoMaternoPF:=IIf(TxtApellidoMaterno.Text = "", "-1", TxtApellidoMaterno.Text).ToString(), NombresPF:=IIf(TxtNombres.Text = "", "-1", TxtNombres.Text).ToString(),
RequiereOC:=ChkRequiereOC.Checked, LT:=LT, LG:=LG, EsDistribuidor:=ChkEsDistribuidor.Checked, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero(), CargoUsado:=ChkCargoUsado.Checked, BonificacionUsado:=ChkBonificacionUsado.Checked, CveTipoRetencion:=DdlTipoRetencion.SelectedValue.ToEntero(), CorreoEntregaCompras:=TxtCorreoEntregaCompras.Text, CorreoEntregaAlmacen:=TxtCorreoEntregaAlmacen.Text, CveSATEstado:=DdlEstadoSAT.SelectedValue.ToEntero(),
CveAdminTrayecto:=If(DdlAdminTrayecto.SelectedValue.ToEntero() <= 0, 0, DdlAdminTrayecto.SelectedValue.ToEntero()),
NoDesglosaIVA:=ChkNoDesglosaIVA.Checked, CveRegimenFiscal:=DdlRegimenFiscal.SelectedValue.ToEntero, RegimenSociedad:=TxtRegimenSociedad.Text, TipoPersona:=TipoPersona) Then
NoDesglosaIVA:=ChkNoDesglosaIVA.Checked, CveRegimenFiscal:=DdlRegimenFiscal.SelectedValue.ToEntero, RegimenSociedad:=TxtRegimenSociedad.Text, TipoPersona:=TipoPersona, RepresentanteLegal:=TxtRepresentanteLegal.Text) Then
ObjClientes.LimpiaImpuestosLocales(CveCliente)

View File

@@ -1018,6 +1018,7 @@ Partial Class RepVentaDetalle
Dim RutaFormato = String.Format("{0}Formatos\RepVentaDetalle.rdlc", UsuarioActual.Empresa.Ruta)
Dim Archivo As New System.IO.FileInfo(RutaFormato)
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
@@ -1033,14 +1034,19 @@ Partial Class RepVentaDetalle
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("TipoDocto", TipoDocto))
params.Add(New ReportParameter("AgrupadoPor", $"<b>Agrupado Por:</b>&nbsp;{Grupo} {TipoDocto} {FechaIn} {FechaFn} {FechaIEjec} {FechaFEjec} {CveCliente} {CveSucursal} {CveSucursalEjec} {Vendedor} {CveUsuario} {CveEstatusFactura} {CondicionesPago} "))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
If Not Archivo.Exists Then
RutaFormato = "Empresas/Grales/Formatos/RepVentaDetalle.rdlc"
End If
ImprimirPDF(RutaFormato, dt, params, String.Format("ReporteVentaDetalle-{0}", Now.ToDateTime.ToShortDateString), Formato:=Formato)
Else
Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia)

View File

@@ -9443,6 +9443,8 @@ Partial Class Ventas
'ContPAQ El movimiento 1 es el de Venta
Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1"
AutoConta = AutocontaMatriz(AutoConta)
If UsuarioActual.CveEmpresa = 119 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ant", "Rem", "RNC", "Cot", "Ped", "Pd2", "PA", "Egs", "Dev") Then
AutoConta = False
End If
@@ -12983,7 +12985,11 @@ Partial Class Ventas
If ObjFactura.CveMoneda = 2 AndAlso ObjFactura.TipoCambio > 0 Then
tipoCambio = ObjFactura.TipoCambio
ElseIf ObjFactura.CveMoneda = 2 AndAlso ObjFactura.TipoCambio <= 1 Then
tipoCambio = GlobalTipoCambio(ObjFactura.Fecha).ToString().ToDecimal
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
tipoCambio = GlobalTipoCambio(ObjFactura.Fecha.AddDays(-1)).ToString().ToDecimal
Else
tipoCambio = GlobalTipoCambio(ObjFactura.Fecha).ToString().ToDecimal
End If
Else
tipoCambio = 1
End If
@@ -13194,7 +13200,13 @@ Partial Class Ventas
If tipoCambio > 1 Then
TipoCambioNC = tipoCambio
Else
TipoCambioNC = GlobalTipoCambio(TxtFecha.Text.ToDate).ToDecimal
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
TipoCambioNC = GlobalTipoCambio(TxtFecha.Text.ToDate.AddDays(-1)).ToDecimal
Else
TipoCambioNC = GlobalTipoCambio(TxtFecha.Text.ToDate).ToDecimal
End If
End If
'APLICA NC SALDOS DIRECTOS
@@ -13228,7 +13240,11 @@ Partial Class Ventas
Dim TCFluctuacion As Decimal = Dr("TCCambioValuacion").ToString().ToDecimal
If TCFluctuacion = 1 AndAlso TipoCambioNC > 1 Then
TCFluctuacion = GlobalTipoCambio(TxtFecha.Text.ToDate).ToDecimal
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
TCFluctuacion = GlobalTipoCambio(TxtFecha.Text.ToDate.AddDays(-1)).ToDecimal
Else
TCFluctuacion = GlobalTipoCambio(TxtFecha.Text.ToDate).ToDecimal
End If
End If
If DdlMoneda.SelectedValue.ToEntero() = 2 AndAlso Not Dr("TCCambioValuacion").ToString().ToDecimal > 1 Then
@@ -13299,8 +13315,13 @@ Partial Class Ventas
'SI LA NC ES EN DOLARES Y PERO VIENE DE UN ANTICIPO EN PESOS
If (Not UsuarioActual.CveEmpresa.Contiene(72, 80, 146)) AndAlso ObjFactura.CveMoneda = 2 Then
Dim tipoCambioAnticipo = GlobalTipoCambio(row2.DataKey("Fecha").ToString().ToDate).ToDecimal
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
tipoCambioAnticipo = GlobalTipoCambio(row2.DataKey("Fecha").ToString().ToDate.AddDays(-1)).ToDecimal
End If
If row2.DataKey("CveMoneda").ToString.ToEntero = 2 Then
IdCtaContable = IdCtaContAnticiposExtranjera
End If
@@ -14836,7 +14857,11 @@ Partial Class Ventas
If ObjFactura.CveMoneda = 2 AndAlso ObjFactura.TipoCambio > 0 Then
tipoCambio = Factura.TipoCambio
ElseIf ObjFactura.CveMoneda = 2 AndAlso ObjFactura.TipoCambio <= 1 Then
tipoCambio = GlobalTipoCambio(Factura.Fecha).ToString().ToDecimal
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
tipoCambio = GlobalTipoCambio(Factura.Fecha.AddDays(-1)).ToString().ToDecimal
Else
tipoCambio = GlobalTipoCambio(Factura.Fecha).ToString().ToDecimal
End If
Else
tipoCambio = 1
End If
@@ -15523,6 +15548,7 @@ Partial Class Ventas
Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha)
If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then
If UltimaFluctuacion.FechaFluctuacion <= tFecha Then
FechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion
@@ -20252,6 +20278,8 @@ Partial Class Ventas
If GenerarPrePolizaNueva Then
Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1"
AutoConta = AutocontaMatriz(AutoConta)
If UsuarioActual.CveEmpresa = 119 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ant", "Rem", "RNC", "Cot", "Ped", "Pd2", "PA", "Egs", "Dev") Then
AutoConta = False
End If
@@ -21654,11 +21682,20 @@ Partial Class Ventas
ChkConvertirDolares.Enabled = Not UsuarioActual.TienePermisoProceso(324)
Case "2"
TxtTipoCambioDlls.Text = "1"
TxtTipoCambio.Text = GlobalTipoCambio(TxtFecha.Text.ToDate).ToString()
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
TxtTipoCambio.Text = GlobalTipoCambio(TxtFecha.Text.ToDate.AddDays(-1)).ToString()
Else
TxtTipoCambio.Text = GlobalTipoCambio(TxtFecha.Text.ToDate).ToString()
End If
TrConversionTipoCambio.Visible = True
ChkConvertirDoctoPesos.Enabled = Not UsuarioActual.TienePermisoProceso(324)
Case Else
TxtTipoCambio.Text = GlobalTipoCambio(TxtFecha.Text.ToDate).ToString()
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
TxtTipoCambio.Text = GlobalTipoCambio(TxtFecha.Text.ToDate.AddDays(-1)).ToString()
Else
TxtTipoCambio.Text = GlobalTipoCambio(TxtFecha.Text.ToDate).ToString()
End If
TrConversionTipoCambio.Visible = True
End Select
@@ -28059,8 +28096,16 @@ Partial Class Ventas
'verifica el tipo de cambio que se actualice
If DdlMoneda.SelectedValue <> "1" Then
TxtTipoCambio.Text = GlobalTipoCambio(Now).ToString()
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
TxtTipoCambio.Text = GlobalTipoCambio(Now.AddDays(-1)).ToString()
Else
TxtTipoCambio.Text = GlobalTipoCambio(Now).ToString()
End If
End If
Else
If DdlTipoComprobante.SelectedValue = "Ant" Then CveAnticipo = CveVenta
@@ -28146,7 +28191,13 @@ Partial Class Ventas
'verifica el tipo de cambio que se actualice
If DdlMoneda.SelectedValue <> "1" Then
TxtTipoCambio.Text = GlobalTipoCambio(Now).ToString()
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
TxtTipoCambio.Text = GlobalTipoCambio(Now.AddDays(-1)).ToString()
Else
TxtTipoCambio.Text = GlobalTipoCambio(Now).ToString()
End If
End If
LblTCValuacion.Visible = False
UpPS.Update()
@@ -29254,7 +29305,13 @@ Partial Class Ventas
TipoCambioFactura = 1
End If
TxtTipoCambio.Text = GlobalTipoCambio(Now).ToString()
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
TxtTipoCambio.Text = GlobalTipoCambio(Now.AddDays(-1)).ToString()
Else
TxtTipoCambio.Text = GlobalTipoCambio(Now).ToString()
End If
DivEstatusFac.Visible = False
'REINICIALIZA TABS
@@ -35139,5 +35196,27 @@ Partial Class Ventas
Alert(sb.ToString(), TipoMensaje.MsgInformacion)
End Sub
Private Function AutocontaMatriz(AutoConta As Boolean) As Boolean
Dim Respuesta As Boolean = False
If UsuarioActual.CveEmpresa.Contiene(13, 83) Then
Dim DTSubproyectoActual As DataTable = GlobalDTSubProyectos(-1, DdlSubProyectoDatos.SelectedValue.ToEntero)
If (DTSubproyectoActual.Rows(0)("TipoSucursal").ToString.ToEntero = 1) Then
Respuesta = True
Else
Respuesta = False
End If
Else
Respuesta = AutoConta
End If
Return Respuesta
End Function
End Class

View File

@@ -530,6 +530,8 @@