This commit is contained in:
2021-03-11 16:27:58 -07:00
22 changed files with 745 additions and 242 deletions

View File

@@ -23,11 +23,12 @@ Partial Class AF_CatSubTipos
End Sub
Private Sub CargaGlobal()
Dim ObjSubTipos As New ClsAF
If ObjSubTipos.GetSubTiposActivosFijos(-1) Then
GlobalDTSubTipoActivoFijo(-1) = ObjSubTipos.DtResultados
End If
ObjSubTipos.Dispose()
'Dim ObjSubTipos As New ClsAF
'If ObjSubTipos.GetSubTiposActivosFijos(-1) Then
' GlobalDTSubTipoActivoFijo(-1) = ObjSubTipos.DtResultados
'End If
'ObjSubTipos.Dispose()
GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa, -1) = Nothing
End Sub
Public Sub CargaDatos()

View File

@@ -2184,19 +2184,43 @@ Public Class ClsPaginas
End Set
End Property
Property GlobalDTSubTipoActivoFijo(CveEmpresa As Integer) As DataTable
Property GlobalDTSubTipoActivoFijo(CveEmpresa As Integer, Optional CveTipoActivoFijo As Integer = -1) As DataTable
Get
If CveEmpresa <> -1 Then
Dim Dv As New DataView(DirectCast(Application("GlobalDTSubTipoActivoFijo"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows)
GlobalDTSubTipoActivoFijo = Dv.ToTable
Dv.Dispose()
Else
GlobalDTSubTipoActivoFijo = DirectCast(Application("GlobalDTSubTipoActivoFijo"), DataTable)
Dim AppNombre As String = String.Format("GlobalDTSubTipoActivoFijo-{0}", CveEmpresa)
'sino existe, recarga los datos
If Application(AppNombre) Is Nothing Then
Dim ObjSubTipos As New ClsAF
If ObjSubTipos.GetSubTiposActivosFijos(CveEmpresa) Then Application(AppNombre) = ObjSubTipos.DtResultados
ObjSubTipos.Dispose()
End If
Dim Str As New StringBuilder
If CveEmpresa <> -1 Then Str.AppendFormat(" CveEmpresa = {0} ", CveEmpresa)
If CveTipoActivoFijo > 0 Then Str.AppendFormat("AND CveTipoActivoFijo = {0}", CveTipoActivoFijo)
Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows)
GlobalDTSubTipoActivoFijo = Dv.ToTable
Dv.Dispose()
End Get
Set(value As DataTable)
Application("GlobalDTSubTipoActivoFijo") = value
Dim AppNombre As String = String.Format("GlobalDTSubTipoActivoFijo-{0}", CveEmpresa)
Application(AppNombre) = value
End Set
'Get
' If CveEmpresa <> -1 Then
' Dim Dv As New DataView(DirectCast(Application("GlobalDTSubTipoActivoFijo"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows)
' GlobalDTSubTipoActivoFijo = Dv.ToTable
' Dv.Dispose()
' Else
' GlobalDTSubTipoActivoFijo = DirectCast(Application("GlobalDTSubTipoActivoFijo"), DataTable)
' End If
'End Get
'Set(value As DataTable)
' Application("GlobalDTSubTipoActivoFijo") = value
'End Set
End Property
Property GlobalDTTipoActivoFijo(CveEmpresa As Integer) As DataTable
Get

View File

@@ -767,12 +767,12 @@ Partial Class Bancos_IE
If TabCancelacion.Visible Then
LnkCancelar.Visible = False
LnkCancelarComplemento.Visible = False
LnkEliminar.Visible = False
LnkCancelarComplementoImporte.Visible = False
End If
'If TabCancelacion.Visible Then
' LnkCancelar.Visible = False
' LnkCancelarComplemento.Visible = False
' 'LnkEliminar.Visible = False
' LnkCancelarComplementoImporte.Visible = False
'End If
UppEliminarIE.Update()
@@ -4490,14 +4490,17 @@ Partial Class Bancos_IE
GeneraCancelacionEnCero = True
End If
Dim TipoMovimiento As Integer = 1
If ChkGeneraCancelacion.Checked AndAlso GeneraCancelacionEnCero Then
GeneraCancelacionEnCero = False
TipoMovimiento = 2
End If
Dim CvePrePolizaCancelacion As Integer = 0
If Not GeneraCancelacionEnCero Then
'CANCELA IE MES ANTERIOR
CvePrePolizaCancelacion = Banc.CancelarBancos_IE(UsuarioActual.CveUsuario, CveIE, True, IdPolizaNueva, FolioPolizaNueva, TxtFechaCancelacion.Text.ToDate, CveTipoTransaccionCancelacion:=DdlTipoTransaccionCancelacion.SelectedValue.ToEntero)
CvePrePolizaCancelacion = Banc.CancelarBancos_IE(UsuarioActual.CveUsuario, CveIE, True, IdPolizaNueva, FolioPolizaNueva, TxtFechaCancelacion.Text.ToDate, TipoMovimiento:=TipoMovimiento, CveTipoTransaccionCancelacion:=DdlTipoTransaccionCancelacion.SelectedValue.ToEntero)
If CvePrePolizaCancelacion <= 0 Then
ErrorCancelar = True
MensajeError = "Error al cancelar IE MES ANTERIOR"

View File

@@ -3988,9 +3988,11 @@ Partial Class Compras_Compras
Protected Sub BtnGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnGuardar.Click
AjustaCombustibles()
'If Not AjustaCombustibles() Then
' Exit Sub
'End If
'------------------INICIA VALIDACIONES------------------
'------------------ INICIA VALIDACIONES ------------------
Dim EstatusCredito As Integer = 0
Dim CveSubProyecto As Integer = 0
'Credito Multiple
@@ -4303,7 +4305,7 @@ Partial Class Compras_Compras
Next
If ErrorValidacion Then Exit Sub
'------------------TERMINA VALIDACIONES------------------
'RECORRO LOS PRODUCTOS O SERVICIOS PARA REGISTRARLOS LOS QUE NO EXISTEN EN EL CATÁLOGO
Dim tCve As Integer
@@ -4374,6 +4376,17 @@ Partial Class Compras_Compras
UM.Dispose()
PSS.Dispose()
'VALIDA IMPORTES
If Not ValidaTotalesGuardar() Then
Exit Sub
End If
If Not AjustaCombustibles() Then
Exit Sub
End If
'------------------TERMINA VALIDACIONES------------------
'si hay necesidad de actualizar el globaldtps
If RegeneraPS Then
'Dim Hilo As New System.Threading.Thread(AddressOf GeneraGlobalDT)
@@ -4423,10 +4436,7 @@ Partial Class Compras_Compras
TmpDT.AcceptChanges()
If Correcto Then
'VALIDA IMPORTES
If Not ValidaTotalesGuardar() Then
Exit Sub
End If
Dim ObjCompras As New ClsCompras()
@@ -4650,6 +4660,8 @@ Partial Class Compras_Compras
End If
Next
'Compra
If ObjCompras.AddCompra(DdlTipoComprobante.SelectedValue, TxtDescripcion.Text.Trim, TxtSerie.Text.Trim, TxtFolio.Text.Trim, TxtFolioSecundario.Text.Trim, CveProveedor, TxtSubTotal.Text.ToDouble, TxtDescuento.Text.ToDouble,
LblAmortizacion.Text.ToDouble, TxtIVA.Text.ToDouble, TxtRetIVA.Text.ToDouble, TxtRetISR.Text.ToDouble, TxtIEPS.Text.ToDouble, TxtOtrosImpuestos.Text.ToDouble,
@@ -6699,7 +6711,7 @@ Partial Class Compras_Compras
Dim TCO As Decimal = 1
For Each Dr As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").Rows
If ObjOC.OrdenesCompraDetalleCostoPP(Dr("CveOrdenCompraDetalle").ToString.ToEntero) AndAlso ObjOC.DtResultados.Rows.Count >= 1 Then
Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text} OC {ObjOC.DtResultados.FiltroPrimeroValor("Folio").ToString} Inv{ObjOC.DtResultados.FiltroPrimeroValor("FolioAlmacen").ToString}"
Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text} OC {ObjOC.DtResultados.FiltroPrimeroValor("Folio").ToString} Inv:{ObjOC.DtResultados.FiltroPrimeroValor("FolioAlmacen").ToString}"
Importe176 = ObjOC.DtResultados.FiltroPrimeroValor("Importe176").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME176").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN176").ToDecimal * Dr("Cantidad").ToString.ToDecimal
Importe228 = ObjOC.DtResultados.FiltroPrimeroValor("Importe228").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME228").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN228").ToDecimal * Dr("Cantidad").ToString.ToDecimal
Importe229 = ObjOC.DtResultados.FiltroPrimeroValor("Importe229").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME229 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME229").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN229 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN229").ToDecimal * Dr("Cantidad").ToString.ToDecimal
@@ -8494,6 +8506,8 @@ Partial Class Compras_Compras
End If
Alert(Msg.ToString, TipoMensaje.MsgInformacion, MsgAccionAceptar)
BtnGuardar.Enabled = False
UpFacturar.Update()
End If
@@ -8538,7 +8552,12 @@ Partial Class Compras_Compras
End Sub
Private Sub AjustaCombustibles()
Private Function AjustaCombustibles() As Boolean
Dim Respuesta As Boolean = False
Dim IVADetalles As Decimal = TmpDT.SUM("IVA", " IVA > 0 ").ToDecimal
Dim DiferenciaIVas As Decimal = TxtIVA.Text.ToDecimal - IVADetalles
If Not TmpDT.Columns.Contains("AplicaIEPS") Then
@@ -8569,18 +8588,14 @@ Partial Class Compras_Compras
Dim IndiceUltimo As Integer = 0
For Each dRow As DataRow In TmpDT.Rows
If Boolean.Parse(dRow("AplicaIEPS").ToString) And Boolean.Parse(dRow("IEPSGrabaIVA").ToString) = False And dRow("IVA").ToString.ToDecimal > 0 Then
IndiceUltimo = IndiceContador
End If
IndiceContador = IndiceContador + 1
Next
Dim IVADetalles As Decimal = TmpDT.SUM("IVA", " IVA > 0 ").ToDecimal
Dim DiferenciaIVas As Decimal = TxtIVA.Text.ToDecimal - IVADetalles
IVADetalles = TmpDT.SUM("IVA", " IVA > 0 ").ToDecimal
DiferenciaIVas = TxtIVA.Text.ToDecimal - IVADetalles
If Math.Abs(DiferenciaIVas) > 0.01D Then
TmpDT.Rows(IndiceUltimo)("IVA") = TmpDT.Rows(IndiceUltimo)("IVA").ToString.ToDecimal + DiferenciaIVas
@@ -8590,7 +8605,36 @@ Partial Class Compras_Compras
End If
End Sub
'Revalidacion de ajuste
IVADetalles = TmpDT.SUM("IVA", " IVA > 0 ").ToDecimal
DiferenciaIVas = TxtIVA.Text.ToDecimal - IVADetalles
If Math.Abs(DiferenciaIVas) > 0.01D Then
If IVADetalles > 0 Then
For Each dRow As DataRow In TmpDT.Rows
If dRow("IVA").ToString.ToDecimal > 0 Then
dRow("IVA") = dRow("IVA").ToString.ToDecimal + DiferenciaIVas
TmpDT.AcceptChanges()
Respuesta = True
Exit For
End If
Next
Else
Alert("Los productos especificados en el lisado no tienen asigando impuesto IVA, favor de realizar la correción en el producto que aplique el impúesto.", TipoMensaje.MsgAdvertencia)
Respuesta = False
End If
Else
Respuesta = True
End If
Return Respuesta
End Function
Protected Sub TxtCodigo_TextChanged(sender As Object, e As System.EventArgs) Handles TxtCodigo.TextChanged
Dim ObjProveedores As New ClsCompProveedores()
@@ -12658,6 +12702,7 @@ Partial Class Compras_Compras
TmpDT.Rows(Indice)("PU") = TmpDT.Rows(Indice)("PU").ToString.ToDouble + tPU
TmpDT.Rows(Indice)("Total") = TmpDT.Rows(Indice)("Total").ToString.ToDouble + ImporteAjuste
TmpDT.Rows(Indice)("IEPSPS") = (TmpDT.Rows(Indice)("Total").ToString.ToDouble() * TmpDT.Rows(Indice)("IEPSPSPorcentaje").ToString.ToDouble()).RoundAD(2)
TmpDT.Rows(Indice)("IVA") = TmpDT.Rows(Indice)("PU").ToString.ToDecimal * TmpDT.Rows(Indice)("Cantidad").ToString.ToDecimal * TmpDT.Rows(Indice)("IVAPorcentaje").ToString.ToDecimal
'Row("IEPSPS") = Math.Round(IEPSPS, DecimalesPermitidos)
'Row("IEPSPSPorcentaje") = PorcentajeIEPS
TmpDT.AcceptChanges()
@@ -20240,7 +20285,7 @@ Partial Class Compras_Compras
If DiferenciaInvOC.RoundSQL() <> 0 Then
If DiferenciaInvOC.RoundAD() <> 0 Then
@@ -20254,8 +20299,8 @@ Partial Class Compras_Compras
If CvePrePoliza > 0 Then
If CveMoneda = 2 And UsuarioActual.CveEmpresa.Contiene(119) Then
ImporteME = (DiferenciaInvOC / TCInvOC).RoundSQL()
ImporteMEComp = ((ImporteME * TCInvOC) - ImporteME).RoundSQL()
ImporteME = (DiferenciaInvOC / TCInvOC).RoundAD()
ImporteMEComp = ((ImporteME * TCInvOC) - ImporteME).RoundAD()
Dim DifImporte As Decimal = DiferenciaInvOC - (ImporteME + ImporteMEComp)

View File

@@ -105,7 +105,7 @@
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1">SubTipo Activo Fijo:</div>
<div class="col-md-1">SubTipo Fijo:</div>
<div class="col-md-2">
<asp:DropDownList ID="DdlSubTipoActivoFijo" CssClass="form-control input-sm select2me input-small" runat="server" AppendDataBoundItems="True" AutoPostBack="True" DataTextField="SubTipoActivoFijo" DataValueField="CveSubTipoActivoFijo" Width="95%">
<asp:ListItem Selected="True" Text="Todos" Value="-1"></asp:ListItem>
@@ -153,7 +153,7 @@
<asp:ListItem Selected="True" Text="Todas" Value="-1"></asp:ListItem>
</asp:DropDownList>
</div>
<div class="col-md-1">Producto Servicio:</div>
<div class="col-md-1" style="display:none;">Producto Servicio:</div>
<div class="col-md-2">
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width: 100%;" CssClassDdl="select2me" DataTextField="PSCodigo" DataValueField="CvePS" Width="95%" />
</div>

View File

@@ -214,7 +214,7 @@
<table>
<tr>
<th>Enero</th>
<th>Febero</th>
<th>Febrero</th>
<th>Marzo</th>
<th>Abril</th>
<th>Mayo</th>

View File

@@ -67,9 +67,16 @@
<asp:Label ID="LblEncabezado" runat="server" Text=" Registro de Póliza"></asp:Label>
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<li>
<asp:LinkButton ID="LnkComplementoPago" runat="server" Visible="false" OnClick="LnkComplementoPago_Click" Style="color: #686868;"><i class="fa fa-money" style="color:#686868;"></i> Crear Complemento de Pago</asp:LinkButton>
</li>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkExcel" runat="server" Visible="true" data-target="#DivCargaExcel"><i class="far fa-file-excel" style="font-weight:bold;"></i> Cargar Excel</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkComplementoPago" runat="server" Visible="false" OnClick="LnkComplementoPago_Click" Style="color: #686868;"><i class="fa fa-money" style="color:#686868;"></i> Crear Complemento de Pago</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
@@ -304,7 +311,7 @@
</table>
<div style="width: 100%; min-height: 200px; overflow-scrolling: auto;">
<asp:GridView ID="GvMov" runat="server" AutoGenerateColumns="False" ShowHeader="False" DataKeyNames="IdMov,IDCuenta,Cargo,Abono,TipoMovto,CveConcepto,CveProveedor,CvePersonal, CveCompra,CveClasificacion,CveCliente,CveVenta,TC,CveOC,PorcentajeImpuesto,CveCuenta" Width="100%" CssClass=" GvMov GvSize table table-striped table-advance table-hover mysmallbtn" GridLines="None">
<asp:GridView ID="GvMov" runat="server" AutoGenerateColumns="False" ShowHeader="False" DataKeyNames="IdMov,IDCuenta,Cargo,Abono,TipoMovto,CveConcepto,CveProveedor,CvePersonal, CveCompra,CveClasificacion,CveCliente,CveVenta,TC,CveOC,PorcentajeImpuesto,CveCuenta, Cuenta, CveSubProyecto" Width="100%" CssClass=" GvMov GvSize table table-striped table-advance table-hover mysmallbtn" GridLines="None">
<Columns>
<asp:TemplateField>
<HeaderTemplate>Cuenta</HeaderTemplate>
@@ -728,7 +735,54 @@
</div>
</div>
<div id="DivCargaExcel" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Agregar Excel</h4>
</div>
<div class="modal-body">
<div class="row">
<label class="col-md-2 truncate" style="text-align: right;">Almacen:</label>
<div class="col-md-10">
<asp:DropDownList ID="DdlPlantilla2" runat="server" DataValueField="CvePlantillaPoliza" DataTextField="PlantillaPoliza" class="select2me" Width="100%"></asp:DropDownList>
</div>
</div>
<div class="row">
<div class="col-md-12">
<h3>Arraste o haga click para subir el archivo Excel</h3>
</div>
</div>
<div class="row">
<div class="col-md-11" style="margin-left: 30px; margin-right: 30px; margin-bottom: 10px;">
<asp:TextBox ID="TxtExcel" CssClass="ADSdropzone hidden" Text="" data-maxFile="1" runat="server"></asp:TextBox>
</div>
</div>
</div>
<div class="modal-footer">
<div class="row">
<div class="col-md-3" style="text-align: left">
<asp:UpdatePanel ID="UpDescargar" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="BtnDescargar" runat="server" CssClass="btn btn-warning" Text="Descargar Formato" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="BtnDescargar" />
</Triggers>
</asp:UpdatePanel>
</div>
<div class="col-md-9" style="text-align: right">
<asp:Button ID="BtnCargaExcel" runat="server" CssClass="btn btn-success" Text="Aceptar"></asp:Button>
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="/Metronic/assets/global/plugins/dropzone/dropzone.js"></script>
</asp:Content>

View File

@@ -4,6 +4,7 @@ Imports System.Data
Imports Extensiones
Imports System.Linq
Imports System.Web.Services
Imports GemBox.Spreadsheet
Partial Class ContabilidadC_RegPrePoliza
Inherits ClsPaginas
@@ -171,6 +172,8 @@ Partial Class ContabilidadC_RegPrePoliza
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
If UsuarioActual.Empresa.TipoContabilizacion = 1 OrElse UsuarioActual.Empresa.TipoContabilidad = 1 Then
Response.Redirect(Request.Url.PathAndQuery.Replace("RegPrePoliza", "RegPrePolizaS"))
End If
@@ -223,8 +226,9 @@ Partial Class ContabilidadC_RegPrePoliza
Contabilizar()
End If
Exit Sub
LnkExcel.Visible = False
Else
LnkExcel.Visible = True
CreaDT()
BtnEliminar.Visible = False
@@ -527,13 +531,20 @@ Partial Class ContabilidadC_RegPrePoliza
If UsuarioActual.CveEmpresa.Contiene(120) Then
DdlPlantilla.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, -1)
DdlPlantilla2.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, -1)
Else
DdlPlantilla.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, TipoPlantilla)
DdlPlantilla2.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, TipoPlantilla)
End If
DdlPlantilla.DataBind()
DdlPlantilla.Items.Insert(0, New ListItem("Plantilla Personalizada", "53"))
DdlPlantilla2.DataBind()
DdlPlantilla2.Items.Insert(0, New ListItem("Plantilla Personalizada", "53"))
End Sub
Private Sub CargaConceptos()
@@ -801,6 +812,8 @@ Partial Class ContabilidadC_RegPrePoliza
dr("PorcentajeImpuesto") = drt("PorcentajeImpuesto")
dr("CveCuenta") = drt("CveCuenta")
DtMovimientos.Rows.Add(dr)
Next
@@ -1754,5 +1767,252 @@ Partial Class ContabilidadC_RegPrePoliza
End If
ObjGral.Dispose()
End Sub
Private Sub LnkExcel_Click(sender As Object, e As EventArgs) Handles LnkExcel.Click
RegistraScript(String.Format("$('#{0}').modal();", "DivCargaExcel"))
End Sub
Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click
Dim NombreArchivo As String
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
Dim workbook As New ExcelFile()
Dim worksheet = workbook.Worksheets.Add(DdlPlantilla2.SelectedItem.Text.ToString)
Dim CvePlantilla As Integer = DdlPlantilla2.SelectedValue.ToEntero
Dim Dt As DataTable = GlobalDTContaPlantillasPolizasDetalle(CvePlantilla).FiltraParametros(String.Format("CveEmpresa={0}", UsuarioActual.CveEmpresa), "Orden")
Dim DtExcel As DataTable = (From row As DataRow In Dt.Rows
Select New With
{
.ConceptoAdministrativo = row.Item("ConceptoContable"),
.Cuenta = "",
.NombreCuenta = "",
.Cargo = "",
.Abono = "",
.Referencia = "",
.Concepto = "",
.SubProyecto = row.Item("SubProyecto"),
.CveConceptoContable = row.Item("CveConcepto"),
.CveSubProyecto = IIf(row.Item("CveSubProyecto").ToString.ToEntero > 0, row.Item("CveSubProyecto"), -1),
.IdCtaContable = IIf(row.Item("IdCtaContable").ToString.ToEntero > 0, row.Item("IdCtaContable"), -1)
}).QueryToDataTable(True)
worksheet.InsertDataTable(DtExcel, New InsertDataTableOptions() With
{
.ColumnHeaders = True,
.StartRow = 0,
.StartColumn = 0
})
Dim columnCount = worksheet.CalculateMaxUsedColumns()
For i = 0 To columnCount
worksheet.Columns(i).AutoFit(1, worksheet.Rows(0), worksheet.Rows(worksheet.Rows.Count - 1))
Next
worksheet.Columns("I").Hidden = True
worksheet.Columns("J").Hidden = True
worksheet.Columns("K").Hidden = True
NombreArchivo = DdlPlantilla2.SelectedItem.Text.ToString
workbook.Save(Response, $"{NombreArchivo}.xlsx", SaveOptions.XlsxDefault)
End Sub
Protected Sub BtnCargaExcel_Click(sender As Object, e As EventArgs) Handles BtnCargaExcel.Click
If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = Server.MapPath("~") & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo)
Else
Alert("No existe el archivo.Favor de subir un archivo csv o excel a la plataforma", TipoMensaje.MsgError)
End If
End Sub
Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String)
Dim dt As New DataTable
' Conexion As Odbc.OdbcConnection = Nothing
Dim ErrorArchivo = False
Dim ErrorExcel = False
dt = ReadExcelFile(Ruta + FileName, True)
If Not ErrorArchivo Then
If Not dt.Columns(0).ColumnName = "ConceptoAdministrativo" Then
Alert("El nombre de la primera columna debe ser 'ConceptoAdmin'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(1).ColumnName = "Cuenta" Then
Alert("El nombre de la segunda columna debe ser 'Cuenta'.Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(2).ColumnName = "NombreCuenta" Then
Alert("El nombre de la tercera columna debe ser 'NombreCuenta'.Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(3).ColumnName = "Cargo" Then
Alert("El nombre de la cuarta columna debe ser 'Cargo'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(4).ColumnName = "Abono" Then
Alert("El nombre de la quinta columna debe ser 'Abono' .Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(5).ColumnName = "Referencia" Then
Alert("El nombre de la sexta columna debe ser 'Referencia'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(6).ColumnName = "Concepto" Then
Alert("El nombre de la séptima columna debe ser 'Concepto'.Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(7).ColumnName = "SubProyecto" Then
Alert("El nombre de la octava columna debe ser 'SubProyecto'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
End If
If Not ErrorArchivo Then
Dim ObjConta As New ClsContabilidad()
ObjConta.IniciaTransacSQL()
Try
Dim TieneError As Boolean = False
Dim ContadorUpdate As Integer = 0
Dim ContadorError As Integer = 0
Dim NombreCuenta As String = ""
Dim CvePrePoliza As Integer = 0
Dim Cuenta As String = ""
Dim Reporte As New StringBuilder
Dim TotalCargos As Integer = 0
Dim TotalAbonos As Integer = 0
CvePrePoliza = ObjConta.AddPrePolizas("Contabilidad/RegPrePolizaExcel", DdlPlantilla2.SelectedValue.ToEntero, TotalCargos, TotalAbonos, 1, TxtFecha.Text.ToDate, DdlPlantilla2.SelectedItem.Text.ToString, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=DdlTipoPolizaAdd.SelectedValue.ToEntero)
For Each Row As DataRow In dt.Rows
NombreCuenta = Row("NombreCuenta").ToString
Cuenta = Row("Cuenta").ToString
Dim Importe As Decimal = If(Row("Cargo").ToString.ToDecimal <> 0, Row("Cargo").ToString.ToDecimal, Row("Abono").ToString.ToDecimal)
Dim Concepto As String = Row("Concepto").ToString
Dim Referencia As String = Row("Referencia").ToString
Dim IdCuenta As Integer = -1
Dim CveSubProyecto As Integer = Row("CveSubProyecto").ToString.ToEntero
Dim TipoMovto As Boolean = If(Row("Cargo").ToString.ToDecimal <> 0, False, True)
Dim YaExiste As Boolean = False
Dim CveConceptoContable As Integer = Row("CveConceptoContable").ToString.ToEntero
Dim IdCtaContable As Integer = Row("IdCtaContable").ToString.ToEntero
If ObjConta.GetCuentas(-1, Cuenta.Replace("-", ""), 1, UsuarioActual.CveEmpresa) Then
If ObjConta.DtResultados.Rows.Count > 0 Then
IdCuenta = ObjConta.DtResultados().FiltroPrimeroValor("CveCuenta").ToEntero
'TipoCuenta = ObjConta.DtResultados().FiltroPrimeroValor("Tipo")
Else
Reporte.AppendLine($"{Cuenta} - {NombreCuenta} - {Importe} </br>")
TieneError = True
YaExiste = True
End If
Else
TieneError = True
Exit For
End If
'If TipoCuenta.Contiene("A", "C", "E") Then
' CargoAbono = False
'End If
If YaExiste = False Then
If IdCuenta > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, "", CveConceptoContable, Concepto, Now.ToDate, IdCtaContable, -1, ImporteMX:=Importe, CveSubProyecto:=CveSubProyecto, CveCuenta:=IdCuenta) Then
TieneError = True
Exit For
End If
Else
IdCuenta = -2
End If
End If
Next
If Not TieneError Then
ObjConta.Commit()
Alert(String.Format("<br/><br/>Prepóliza: <b><a href = ""/Contabilidad/RegPrePoliza.aspx?CvePrePoliza={0}"" class=""texto"" target=""_blank"" >{1}</a></b>", CvePrePoliza, ObjConta.ContaFolio))
Alert($"Se agregó la póliza {ObjConta.ContaFolio}")
Else
Alert($"No encontraron las siguientes cuentas: {Reporte.ToString} ", TipoMensaje.MsgError)
ObjConta.RollBack()
End If
Catch ex As Exception
ObjConta.RollBack()
End Try
ObjConta.Dispose()
End If
End Sub
Private Function ReadExcelFile(ByVal flatFilePath As String, ByVal firstRowHasHeaders As Boolean) As DataTable
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
Dim excelFile As ExcelFile = ExcelFile.Load(flatFilePath)
Dim unnamed As Integer = 0
Dim cols As Integer
Dim columns As String()
Dim curRow As Integer = 0
Dim curCol As Integer = 0
Dim dataTable As DataTable = New DataTable()
Dim worksheet As ExcelWorksheet = excelFile.Worksheets(0)
For cols = 0 To worksheet.Rows(0).AllocatedCells.Count - 1
If firstRowHasHeaders Then
If worksheet.Rows(0).Cells(cols).Value IsNot Nothing Then
dataTable.Columns.Add(worksheet.Rows(0).Cells(cols).Value.ToString().Trim)
Else
dataTable.Columns.Add("Unnamed Column " & (System.Threading.Interlocked.Increment(unnamed)))
End If
curRow = 1
Else
dataTable.Columns.Add("Column " & (cols + 1))
End If
Next
While curRow < worksheet.Rows.Count
columns = New String(cols - 1) {}
For curCol = 0 To cols - 1
If worksheet.Rows(curRow).Cells(curCol).Value Is Nothing Then
columns(curCol) = ""
Else
columns(curCol) = worksheet.Rows(curRow).Cells(curCol).Value.ToString()
End If
Next
dataTable.Rows.Add(columns)
curRow += 1
End While
Return dataTable
End Function
End Class

View File

@@ -1287,7 +1287,7 @@
</Style>
</PageHeader>
<PageFooter>
<Height>8.4664cm</Height>
<Height>7.77848cm</Height>
<PrintOnFirstPage>true</PrintOnFirstPage>
<PrintOnLastPage>true</PrintOnLastPage>
<ReportItems>
@@ -1573,51 +1573,6 @@
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
<Textbox Name="Textbox116">
<CanGrow>true</CanGrow>
<KeepTogether>true</KeepTogether>
<Paragraphs>
<Paragraph>
<TextRuns>
<TextRun>
<Value>Fecha Impresión:</Value>
<Style>
<FontSize>8pt</FontSize>
<FontWeight>Bold</FontWeight>
</Style>
</TextRun>
<TextRun>
<Value xml:space="preserve"> </Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
<TextRun>
<Value>=Today</Value>
<Style>
<FontSize>8pt</FontSize>
</Style>
</TextRun>
</TextRuns>
<Style />
</Paragraph>
</Paragraphs>
<rd:DefaultName>Textbox8</rd:DefaultName>
<Top>7.65059cm</Top>
<Left>0.25442cm</Left>
<Height>0.46771cm</Height>
<Width>6.86562cm</Width>
<ZIndex>5</ZIndex>
<Style>
<Border>
<Style>None</Style>
</Border>
<PaddingLeft>2pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
</Style>
</Textbox>
</ReportItems>
<Style>
<Border>
@@ -1769,8 +1724,28 @@
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
<ReportParameter Name="DepartamentoEntrego">
<DataType>String</DataType>
<Nullable>true</Nullable>
<AllowBlank>true</AllowBlank>
<Prompt>ReportParameter1</Prompt>
</ReportParameter>
</ReportParameters>
<EmbeddedImages>
<EmbeddedImage Name="compuproveedores">
<MIMEType>image/jpeg</MIMEType>
<ImageData>/9j/4AAQSkZJRgABAQEAYABgAAD/4QCmRXhpZgAATU0AKgAAAAgABgE+AAUAAAACAAAAVgE/AAUAAAAGAAAAZgMBAAUAAAABAAAAllEQAAEAAAABAQAAAFERAAQAAAABAAAewlESAAQAAAABAAAewgAAAAAAAHolAAGGoAAAgIMAAYagAAD5/wABhqAAAIDpAAGGoAAAdTAAAYagAADqYAABhqAAADqYAAGGoAAAF28AAYagAAGGoAAAsY//2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCABzAGcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK
0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KCcUV8yf8FhPivr3wa/4J8ePNY8N6hcaTqzraWKXlu5jmt0nuoopCjDlWKMyhhyN2Rg4Nc+KxCoUZ15bRTf3K56WT5bPMMdRwFN2lVlGKb2Tk0rv0ue7+O/jD4T+F1v53ibxN4f8PRY3b9T1GG0XH/bRhXhvjv/AIK//s5fD2Qx3fxQ0a+kDBdulwXGog++6GNlx+Nfz06jqlxq97JcXU81zcTHc8srmR3PqWOSar7jivzutx3Xf8Gkl6tv8rH9NZf9HvLo/wC+4qc3/dUY/nzn9EHg/wD4K9/s5+N5UjtfidpNs8nT+0LW6sV/76miVf1r23wJ8avB/wAUYVk8NeKvDfiCNhkNpupQ3Wf++GNfzB2bEWsfJ6VPBcyWsyyRO0ckZyrIdrKfYjms6PH2Ii7VqUX6Nr87n2WM+itlFejGpgMbUptpP34xmtVfp7M/qb3cf40oOa/mt8Aftp/Fz4WlRoHxK8babCmMQR6xO0PH/TNmKfpXtvgH/guF+0R4MVEuPFem+IoY+iarpFu+fq8axuf++q9ahx5hJfxaco+ln+q/I+CzL6K/EFK7wWKpVF/e5oP7uWS/E/eWivyF8Bf8HH/jiwWP/hJPhx4Y1hVwHbTL24sCffD+cK9p8Cf8HGvwy1YoviLwX400Rn6taNbX8afU742/8dr2KPFmV1P+XlvVNfpb8T8+zLwF43wd28HzrvCcJfgpc34H6I0V4f8Aso/8FEvhT+2bql5pvgfxBJdaxp9v9ruNPu7OS1uEi3BS4DDDqGZQShOCwzjIr3Cvcw+IpV4e0oyUl3Tuj8wzTKcbluIeEzClKlUW8ZxcXrto7Oz6PqFFFFbHnBXyD/wXUOP+Ca3jb3u9L/8AS+Cvr6vkD/guqf8AjWx40/6/NL/9Loa8vOv+RfW/wy/Jn1nAn/JR4H/r7T/9KR+BVFFFfhZ/
oIaFp/x6x/Su8+AnwRk+PHjqPRR4m8H+EoSN82o+JNXj0+0hXOOrfM7f7KAn6Dmj9mLwv4V8T/FTRF8dSa5b+DLeUS6vJpNk11dGIZIjULjaZCAm8/dBLYJGD+okf7Wn7A9xplvZ33gbw/p8dtEsKG68CyiQKowNzrGzMeOSSSTySTXqZXldPEN1K1WMEntJ2v8A8A7eLuNsblFClhcvwNfETlBNypU+dQ0SV1s5bu3TRvdX4X4Y/wDBEn4G+JfCUKXXx+s9c16QZabRb/TvsgyPurGzO7Y9S4z6CvUPhX/wRj8SfAffefDP40aHD5j7z/avgLTtUZvbznLsB/u4rEfxR/wTj8aL+8t/CtqzdhYavY4/75VQKbp/we/YBu5vM0XxvY+H5GOQ1r4t1C0Kn/to3FfaUcHgY2dONK66xrST/L9T+eMw4k4nrqcMXVxyjJ6xq5fSqQ9LOaSXpE9tsvhd+154FhVbHX/gD4uhj6pqWiXemySD/tgu0VDrHiP4/pEY/E37Mvwp8dJ/y0/srxJbQ7h3wl3Ec/QmuA0X4Lfs4ysq+G/2tPG3h+QfcSy+K8KBf+AyZ/Wux0X4PQQgf8Iz+2n4un/uG913SNXz/wB9LzXpR52rRcvlUhL/ANLR8TW+rqXNWp0r954XEUH/AOW8l+B137Kml6VcfGtby6/ZcuPhD4gjspv+J7BBpzWpU7Q0JltmBYt2Gw9O3WvqSvC/2b/h18Q/DnjNrvXvj1bfE7QVtnT+zj4bsLWZHJG2T7RbPnC8jBXBz2r3Svfy2DjR1TWvVRT/APJNP1PynjDERrY/mhOMkope667it9F9YSqK3bbs9wooorvPlQr4/wD+C6x/41s+M/8Ar90z/wBLoa+wK+Pv+C7H/KNrxl/1+6Z/6XQ15edf8i+t/hl+R9ZwH/yUeB/6+0//AEpH4GUUUV+Fn+gh+k//AARj+NPxD/Z9+CPiO+8HfAbX/iRB4g1VUuNYsdUjtFTyIlC2
+1o2J2mV2znH73pxX2Lcft7/ABgvP+Pz9kXxy+ev/E1t5f5w18Y/8EbdS+PnxD+EPiHwz8JfHngHw5p/h+/W9u7LW9NNxcs1ymBKhET5Q+QRjIwR7ivtCH4J/tnS/wCt+Mfwth9fL8Nbv5wiv0rJamI+pU1RdTl8o02t9bX137n88eIGEyr+3q88wjg/avlu6lXGRqW5I8vMoe4ny2+HS1rGbdftf+MNS/4//wBjXxxN65hs5v5xVm3Xx+h1I/8AEw/Yh8ZTZ658N6dNn80rqH+DH7Wdt/x9/tAfDe09ceE4Tj/voCqtz4D/AGiLAf6d+1Z8N7HHUnwlYcf99OK9GX1n7SqfONH/ADPlKSydfwpYVf4a2YfpBnG3/jvwDq3/AB//ALBvjJz3KeBdOY/pisu7l+Dt6P8ASP2E/ilH6/Z/A1sv/oMwrtLw/FfTT/p37b3wxscdc+FtHXH/AH1OKzLr4g+ItNO2+/4KBfDeNu6xeH9Az/6PNYSX88X840P/AJI9ajJf8uKq/wC3amZ/pQZ2f7D+i/Cu0+NEs/hH9m34kfCfW/7OlU6xrnh02No0RZN0Ik85xuYgEDbztPIr6+r5W/Y++JX/AAkPxdaxm/at0P4yStZSuug2ek6XatwVzNvt8udnoDj5uelfVNfQ5Ty+w91JavZRX/pDa/G5+Q8fe1eafvpOT5VrJ1pO2vWvCFS3yt2e4UUUV6Z8SFfHv/Bdg/8AGtvxj/1/aZ/6WxV9hV8e/wDBdr/lG54w/wCv7TP/AEtiry87/wCRfW/wy/I+s4D/AOSjwP8A19p/+lI/A2iiivws/wBBDvPgb8QYfh1410u9vm1t9FaVF1S20rUnsLi7t92XRZV6N3GQRkDIr9IF1L9gI6Nb3WpeOPG2pSXESytb3Woa3LNFkA7HEahQw6EAkZzyetflnaf8esf0rt/gZ+0D4t/Zv8cw+IvB+rSaVqUa7GJiSeKZM5KSRyBkdTjoR9MHmvQy7NFh
m4ThGUX/ADR5reiuvuuexxPwTLOcNSxGGxNajUjBWVKr7JT0VlOXJUtbo1FvXW+lv0V07U/2B5pM6T8OPHfiyTsYLPWbov8ATfMtdPo9z+zhI6r4d/Yz+L+vZ+67eDZWjP8AwKWc15h4P/4OOvGmkeEYbPVvhz4Z1HVohtN5a381nA+O5h2vg+uHA9hWx4O/4Lu/ET4qXLQ/2n8FPh1FuwH1uy1q9kI9QYFdPzxX11PMstdlGcLvtRS/GTa/E/B8ZwdxnDmlUw+IcY9Z5hOomu6jShGVv+3U/I9j0rSfDt0o/sH9gCaf+7/a9hpNkfx84Niup0TRPiIXX+yf2J/hP4bU/ce+8Q6SrL9Vgtif1rzHTf22fEXjaNXv/wBs74S+Flf7y6P4K85lH+ybrB/MVYv/AI8fDC4h3eK/26PiDqHd/wDhH4YtN3fQQWshH4GvShiKFrxnb50Ir9WfG4jKMzvyVaCk+3LmlSX/ALZB/efV37Nuj/FWw8ZySeLvh98I/Bvh/wCyOEPh2+mn1DzsrtUjyEj8vG7PzZyBwa90r4k/YR+N3wE8Y/tBDSfAPxI+LXxD8WNp1xJ9o8R6tqd1arCu3zDsn2RbuVwdnHbFfbdfTZXWjUoXjJS13TUvxSSPxPjrA1sJmXs69GVJuKdpU503bXXlnOcrO27av2QUUUV6R8aFfMP/AAWK+FGt/GL/AIJ7+OtL8PWU+papbi01FbWBC8s8dvcxyyhVHLMI1dsDk7cDmvefi58Y/C3wF8B33ijxlr2l+G/D+nKDcX1/OIYkzwFyfvMx4CjLMeACa+QdS/4OJf2WbHWJLVPGWtXUMbbTdQ+Hbwwn3GUDY/4DXQsjxeZYedKhSlKLTTcU3a6/M0wPElDJswoY2c4qVOUZpSaV+Vp+tnax+GU9vJbStHIrI6HDKwwwPuOtRkEV/SL4J1z4Fft8fBiLx5a6X4P8ceEb0TD+0NW0VAE8olZd32iNXTYQck4HGc45r8/P
j98U/wDgmbp/jWbT7iLzry3kKz3HhRNTNkpzg4eJhC494wR6Gvzj/iF+a1akqWETnKO65ZJr1STt8z+nsN9JXIIU41MxpSpqWzUoST9G3C/yR+Ztmpa1j47dqlC5r9s/2Lf2J/2Kf2jPCL+IfhlpOieOrW1dUuDd6leXE1kxGVWa2mdTGTg43xjODjNdh4n/AGtP2Qf2Lvjl/wAK2vG8D+CPGdrLbQvaW3hWSMxtcKjxbriO3KcrIh3F8AHkjBrDD+GOaVK0qM/iWrSjJtLzVlY+3xn0tuHMLhoSweHnNWSTnKEIt26NOe9ux+KPgP8AZs+IXxRaMeG/A/i7XhIflaw0e4uF/wC+lQj9a9s8A/8ABGz9orx6VeP4fXGk27YJl1W/trPb9UaTzP8Ax2v33vb230uxmubiWOC3t0aSSR22pGqjJJ7AAAmvFv2Wf+CjXwZ/bQ8Uapovwz8ZReJdS0W2F5eRJp13a+VEXCBt00SA5YgYBJr0cL4bwlCVWUpyjHdxVkvV2dvvPiM2+lpmrmqWDwtGk5bKcpTb9LOF/uPzd8A/8G6XxT1lUk8Q+MvBehRt1S2a4v5k+o2Rr+TV7Z4D/wCDb7wbYCM+J/iR4o1YjBddNsYLBT7ZkMxr3nx3/wAFuP2Y/hr441nw3rXxMistZ8P30+m39udE1F/IuIZGjkTcsBVtrqRlSQccE16p+zL+3R8Jf2xrPUJvhr440nxQ2kqr3kEIkhubZWzhnhlVJApIIDbcEjGc1768PaGGp+2q4afL3kpW/RH5vjvpJcV5hU9jRx8IP+Wmqaf32ctPUwP2Q/8AgnF8Lf2J9QvtQ8GaVeNrWoQfZZ9U1G6NzdNDkMY1OAqKWVSQqjJUZzgY94ryP9lb9ur4Wftrx6+3wz8UL4mXwxJDFqRWxubX7M0vmeWP30abs+U/3c4289RVz4i/tmfDf4T/ALQHhb4XeIPEi6f468aRCbRtMNncSG8Qs6A+YiGNctG4+Zh9
33Fe1Ryiph28LSouLiruKi00rXbatfbW/wAz8uzTiStmtX+0cwxLqynZc8pc1+iSbfySXoj1CiuC+Hn7T/gH4r+L7rQfDvifTtU1S1EjGKLeFnWNgsjQuVCTKpKgmMsBuXJ5FFFSjOm+WaafmrHHTqQmrwaa8j8rv+C3us6l+11/wVT+Cf7PdxqF1Z+D2l06S8jifbunvbhxNNjoXS2QKhOdpd8feNfq34B/Z48C/DHwBa+F/D/hHw7pfh6zhEEVhBp8Qh2AY+YEHeT3ZsliSSSTX5of8F7/ANmXx18Kv2lvhx+1R8P9Kn1geBjaJrUEMTSfY3tLhp4J5FUFjC6u8TsOE2rn72R9AfC//g4a/Zj8b/Du31jWPGN94S1TyQ9zo1/pF3NcW8mPmRXhieOQA8BlbkYyB0H3GY4XE4vK8G8vi5QjFqSim7Tvq2l36N/qfHYHEYfDZjivr0lGcmnFysk4W0Sb7dV/keR/8HFfjyH9lb9hPQvh78P9N0/wjpPxC8QSpqUGk2yWcMlvGhuJ49kYUDzZWiL4+8AwOQxr6q/4Jq/sSeCf2Y/2MvBug2Xh/SJtR1bRra+169ltI5JtTu54lklMjMCWQFyiqeFRVFfMf/BSvwpa/wDBa3/gm5B46+Den65qF54L1+e80y1u7T7Pc63BEhhuVhjySSwZXQHDMYduAzAVc/4J/wD/AAXd+Dmkfss+H/D3xa8R3HgXx94H06LRtVsr7S7p2vGtk8pZozHG3zOqKWRtrK5YYxgmq2FxdXJIYfDRk6kKkvaxV3K7+FtLW1tPUVHEYWnm86+IklCUI+zk7KNvtJN6Xvr6Hz78QPDtv/wTF/4OFvBlj4DVdF8I/FZ7BbzRrUeXaJDqMr2ssQQcBEuYhOijhDgDAGK8n/4LJ/AG9+PH/BUH9oqXTTI194F8Eaf4rEa/8tobe30yOcf8Bhnkk/7Z17N+zboevf8ABYj/AILJWfx4sdC1TTfg/wDDSe3Om6hf
QGP7X9i3NbQqejSyXLNM6rny04Y7tu71zwB4W0/xx/wck/HDRdUhjvNN1T4ZpZXkDdJopLTSkdCPQqxH419FTx0sJiY1Z61qWH9/q7qUXZ+dtH6nhVMHHFYeVOGlKpX9ztZxlqvK+qLXxr/4KMXnxK/4IQeHvEWk3DXfxB+KFlb/AA8hijf9/NqsjG0uyB1DNFHNIuOnmp6ivH/+Dez4Sf8ACgv+Cjn7Qfgb7S143g+xbRnnP/LV4NQWNm+hZTj2xXMf8EwP+CevxV8L/wDBQ2w+HvjTRPEsPwn+CPibVfFunXd9pskOn6pfAQ21tLDMyhJC/l28wVScCOQ8ZNeuf8EfyD/wWl/a++ZW/wCJnqPfrjWDmufEU8PhsHjMJhZKUZR9pdf3ppRj/wBuxX4m2HqV8Ri8JisSmpKShZ/3Yvmfzk/wPEP2Avi98Ifg7/wVW/amvvjFqHhDT9Dm1XWY7Q6/bJcRyzDWHJWNGRyz7A3CjJFdH/wRo8Maf8X/APgr38WPiT8JtCutC+DllZ6lDE6W5t7XbcNF5NuqdE3ujTrF/AqAEDAFSf8ABK79nrwL+0P/AMFdP2prHx14T8N+MLHT9W1a5tbfV7GO8jglOsspdVcEBsEjPoa/YvwX8O9B+GnheLRfDei6T4f0e3BEVlptpHaW8Weu2OMBR+Arl4kzinhJ1KEFJzq04Rd37qXKtUt2/N7HTw/ldTFQp1puKhTqSasvebu9G+3puflH/wAGqR/4l/x+/wCwjo/8r+uw/wCCj9ut9/wX/wD2XbdvuzaMiOAcHa1xfg4PUcZ5FeI/8En/ANojw/8A8Edv2sPjR8LfjpJe+DU1+5t5tO1WeymltZxbSXIRwY1ZjHNHMro4BX5SCQeK9A0v4v6f/wAFRv8AgvJ8N/Gfwth1DWPh/wDCHRxHqmvtZyQWzMn2uQEbwpG+W4jjRWAZtrsBtGa68ZQqLOMTmDi/YypNqf2XemkrPZtvS25zYWtTeVYf
A3/exqJOP2labbut7Ja32Pub9nv9ha8+D/xPsdbvvElnqVjoYVrGO309re4upEs3soZJ2MjIvl2sjoUgVEkciQgFQtFfRyjCiivy7FYqriJ89V3drf1Y/RMPhqdCPJTVlueW/tK/tN2/7PVz4P09fCviLxhrHjrVn0bS9O0drVJZJktZrpizXM0UaqIoJDkt1wMc1832P7TXwW8e+N9PtNB/ZtvvEnj67n1iLUtKXwzocGraNcaXJbJdJO886Rs3+lwMhikkDq4INenft6/CDxF8Xvip8AodBuvFGjx6b40ubq/1rQoI5LjRoTo1/GJS0sUsSKzusW50IzIAMMQa8h+Lv/BOrUtP+Pfgvw98O/EXxE8GxzeEPF13feNrO5M13LrV7c6a6y31y0Z8xpmQsUUxsVgxGUCDH0OW08GqUOeVpSjJvWXTn+Kz20VktWeJjqmKdSfJG8YuKWi68u11vq7t6Htem/8ABQfwbrHws+HOoeBPD3iPxZqnxKguG8O+GdPtIbS9SO0JS7a4850htY7eQeW7O4G8qqbyQDxXjT9pL4P+ItXvJ/id8G003xhoOs6RpOuWviDQ9NvbjSIdTm+z2epfaQzxzWLTYjMsTsyNkMikEV578FLPWvgL8QvhR8RL34TeJvDHh/wf4P1L4W+J9C0fSbm/Phu5S8trmPUbaNQ895YztA58+ISNiVGckhyOuvPgH/w8D+PXxV8VahoXiDw78Pde+GyfDjTJ9Z0yXT7zVp3upruTUIraYLNHHAzwiJpUUs4dlG0AnX6rhaM3LVQ1fNza357cujs/d101fxX5dDL61iasFHRz0XLbT4b82quve07L4bc2p7B+0v8AtleDf2KtKjs7zRdTuodP8Oal4kks9FggC2Gn2BgSRirOirvluYY0A+8zHoFJGB4x/bG/4VVoq+K/EnwR8daFqmsavpnhvS43fRZb7W7m+l8mGJJIrxgqqypuMzoAGXGcHHzPrnwd+LXx8/YS
+P8A4w+IHg/XF+KGr+DLfwDpWkCzeS7uotOjzcXMCKMst5fy3Eq4B3Rxw9QAa2/2jdD0/wAc/APRNJ8KaX+0vrEOlfEHwzresSa3pniKTVLOyhvF8+WxkuE80PGgLEW+WUgMBnBqqOV4ZctOXvPm5ZNNtfZe6aSWrjre7WlhVMxxD5px91ct4ppJ/aWzTb2v0tfW59FeLv26dS8C3/g/SdS+DvxGg8V+OtRvbDR9CF1o73Nwtpai6lnMgvfIWPZvABkDkxt8uCpNPQP27/hr4W0b4h614j8O658N/EXgSCC78Q6RrGkxR6rNHcvstpITbtIl2s837pDFI+ZflO1jivIfFniW28P/ABj/AGf/ABToXhn48eIPCvgXW/EA1i613wzrmo6vbG60l44m2XERuXiMjqgYAqpyMjBrD/aR+Bnjv9sH4leK/jB4b8E+ItLt/CGleHrLw7omuwf2XqHjB9O11dXu8wS4eGMogihEwUvIWOFXBM08vwr5FVXJGS1d2rP2jXLZtrWNn3V+ZuyKnjsSuZ03zNPRWTuuRPm0S+1ddnayV2fQngD9qmx0P4p6Dpfi74S+JvhTd/ES4e10PVNTj06SHVLrY0/2SeS0mkaC5dEd1jmwHKOAxYbao/Bn/gpXoPxc13wbHL4H8eeG9B+IWpXmj+HPEGoxWT6dqV5bG43wHybiSWF2+yzlPNjUN5Z56Vyfxo+IM37cXjb4R+HPB/hPx5YQ+GvG2meMfEWpeIPDN5otvoUGnl5vs5a5RPNuZZTHEEh8wBWkYsFAJ8a/ZA/Zs8cfs9xfA/x94i0Pxx4o0e31bWtLv/DF5BI8vgCe91G6W31i0tVVT5RiYxzFw7pFdeYhC7wSOX4SWGdSsuWpso3fadrXe7cVo7+XxRFLHYmNdU6T5qe/NZd4XvZdE3tbz+FnuN7+1/4J/aE+Guo+MvFnwR13Ufhf4cXV57nxNr1lo99Y20enNcR3Ei25uJLk5ktXRQsOWJU4
AOR6h+yV42k1/QJLW2+DeqfCjQmt4tQ05ZP7LW2vElGQPLspn8qULtLK6jAYYY4OPlf9iG00b4JfCzUNM8ceEf2hr7XJr3xLHqXhxvDuu3/hy5trjUr2VRHbeWbJ/Nt3Rht+80jdWYg+jfsC6bfeDv2hNf0H4ej4if8ADPsHh2OeytPF2mXtmPD+rm42ix0030cdy1r9nDM6MHSJwgRvmKicwwdKMKtOkmoxejfNytJ9HzNcz9LSW1mtbwOKqSnSnUabktUrXTt10TsvW6e91t9iUUUV8mfShRRRQAYoAxRRQAUYoooAMUYoooAMUUUUAGKMYoooAKKKKAP/2Q==</ImageData>
</EmbeddedImage>
<EmbeddedImage Name="Logo1">
<MIMEType>image/png</MIMEType>
<ImageData>iVBORw0KGgoAAAANSUhEUgAACIsAAAhVCAYAAADwAbiCAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAA5a0SURBVHja7P3ZchvLsi5qOtj3ndox1z513q1uzjPVTb1MPUVdldnZe6+15pxjqJcoiQ3qIsJHBFJUD5AA8vvM0kBSJEWCANIz40/3yXQ6DQAAAAAAAAAAxmHDXQAAAAAAAAAAMB7CIgAAAAAAAAAAIyIsAgAAAAAAAAAwIsIiAAAAAAAAAAAjIiwCAAAAAAAAADAiwiIAAAAAAAAAACMiLAIAAAAAAAAAMCLCIgAAAAAAAAAAIyIsAgAAAAAAAAAwIsIiAAAAAAAAAAAjIiwCAAAAAAAAADAiwiIAAAAAAAAAACMiLAIAAAAAAAAAMCLCIgAAAAAAAAAAIyIsAgAAAAAAAAAwIsIiAAAAAAAAAAAjIiwCAAAAAAAAADAiwiIAAAAAAAAAACMiLAIAAAAAAAAAMCLCIgAAAAAAAAAAIyIsAgAAAAAAAAAwIsIiAAAAAAAAAAAjIiwCAAAAAAAAADAiwiIAAAAAAAAAACMiLAIAAAAAAAAAMCLCIgAAAAAAAAAAIyIsAgAAAAAAAAAwIsIiAAAAAAAAAAAjIiwCAAAAAAAAADAiwiIAAAAAAAAAACMiLAIAAAAAAAAAMCLCIgAAAAAAAAAAIyIsAgAAAAAAAAAwIsIiAAAAAAAAAAAjIiwCAAAAAAAAADAiwiIAAAAAAAAAACMiLAIAAAAAAAAAMCLCIgAAAAAAAAAAIyIsAgAAAAAAAAAwIsIiAAAAAAAAAAAjIiwCAAAAAAAAADAiwiIAAAAAAAAAACMiLAIAAAAAAAAAMCLCIgAAAAAAAAAAIyIsAgAAAAAAAAAwIsIiAAAAAAAAAAAjIiwCAAAAAAAAADAiwiIAAAAAAAAAACMiLAIAAAAA

View File

@@ -2021,7 +2021,7 @@ Partial Class General_SaldosIniciales
If YaExiste = False Then
If IdCuenta > 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, "", 95, Concepto, Now.toDate, -1, -1, ImporteMX:=Importe, CveSubProyecto:=CveSubProyecto) Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, "", 95, Concepto, Now.toDate, -1, -1, ImporteMX:=Importe, CveSubProyecto:=CveSubProyecto, CveCuenta:=IdCuenta) Then
TieneError = True
Exit For
End If
@@ -2035,7 +2035,7 @@ Partial Class General_SaldosIniciales
If Not TieneError Then
ObjConta.Commit()
Alert(String.Format("<br/><br/>Prepóliza: <b><a href = ""/Contabilidad/RegPrePoliza.aspx?CvePrePoliza={0}"" class=""texto"" target=""_blank"" >{1}</a></b>", CvePrePoliza, ObjConta.ContaFolio))
Alert(String.Format("<br/><br/>Prepóliza: <b><a href = ""/Contabilidad/RegPrePoliza.aspx?CvePrePoliza={0}"" class=""texto"" target=""_blank"" >Prepóliza</a></b>", CvePrePoliza, ObjConta.ContaFolio))
Alert($"Se agregó la póliza {ObjConta.ContaFolio}")

View File

@@ -74,7 +74,7 @@
Using ObjActivosFijos As New ClsAF
If ObjActivosFijos.GetCaracteristicasClasificaciones(-1) Then Application("GlobalDTAFCaracteristicasClasificaciones") = ObjActivosFijos.DtResultados Else Application("GlobalDTAFCaracteristicasClasificaciones") = Nothing
If ObjActivosFijos.GetCaracteristicas(-1) Then Application("GlobalDTAFCaracteristicas") = ObjActivosFijos.DtResultados Else Application("GlobalDTAFCaracteristicas") = Nothing
If ObjActivosFijos.GetSubTiposActivosFijos(-1) Then Application("GlobalDTSubTipoActivoFijo") = ObjActivosFijos.DtResultados Else Application("GlobalDTSubTipoActivoFijo") = Nothing
'If ObjActivosFijos.GetSubTiposActivosFijos(-1) Then Application("GlobalDTSubTipoActivoFijo") = ObjActivosFijos.DtResultados Else Application("GlobalDTSubTipoActivoFijo") = Nothing
If ObjActivosFijos.GetTiposActivosFijos(-1) Then Application("GlobalDTTipoActivoFijo") = ObjActivosFijos.DtResultados Else Application("GlobalDTTipoActivoFijo") = Nothing
If ObjActivosFijos.GetEstatusActivoFijo() Then Application("GlobalDTEstadoActivoFijo") = ObjActivosFijos.DtResultados Else Application("GlobalDTEstadoActivoFijo") = Nothing
If ObjActivosFijos.GetMarcasActivosFijos(-1) Then Application(" GlobalDTMarcaActivoFijo") = ObjActivosFijos.DtResultados Else Application(" GlobalDTMarcaActivoFijo") = Nothing

View File

@@ -263,6 +263,15 @@ Partial Class Inventarios_EntregaAlmacen
End Set
End Property
Private Property ValidaLoteCaducidad As Boolean
Get
Return CType(ViewState("ValidaLoteCaducidad"), Boolean)
End Get
Set(value As Boolean)
ViewState("ValidaLoteCaducidad") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
@@ -270,7 +279,7 @@ Partial Class Inventarios_EntregaAlmacen
InicializaValores()
CargaParametrosAD()
If UsuarioActual.CveEmpresa.Contiene(72, 80, 146, 119) Then DdlAlmacen.AutoPostBack = True
If UsuarioActual.CveEmpresa.Contiene(1, 72, 80, 146, 119) Then DdlAlmacen.AutoPostBack = True
If UsuarioActual.Empresa.Funcionalidad(281).ToEntero() = 1 Then
@@ -527,7 +536,7 @@ Partial Class Inventarios_EntregaAlmacen
CveVentaAD = -2
CargaVentaPorSurtir(DdlFolio.SelectedValue.ToEntero())
End Sub
Private Sub CargaVentaPorSurtir(CveVenta As Integer)
Private Sub CargaVentaPorSurtir(CveVenta As Integer, Optional CveAlmacen As Integer = -1)
LbSurtida.Visible = False
CveContrato = -1
CveSubProyecto = -1
@@ -544,14 +553,14 @@ Partial Class Inventarios_EntregaAlmacen
Dim ObjInventario As New ClsInventarios
If ObjInventario.EntregaAlmacenGet(CveVenta) Then
If ObjInventario.EntregaAlmacenGet(CveVenta, CveAlmacen) Then
If ObjInventario.DtResultados IsNot Nothing AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then
DtDatos = ObjInventario.DtResultados
DtDatos.Columns.Add("Consec", GetType(Integer))
DtDatos.Columns.Add("CantidadGV", GetType(Double))
DtDatos.Columns.Add("CantidadTraspaso", GetType(Double))
DtDatos = ObjInventario.DtResultados
If Not DtDatos.Columns.Contains("Consec") Then DtDatos.Columns.Add("Consec", GetType(Integer))
If Not DtDatos.Columns.Contains("CantidadGV") Then DtDatos.Columns.Add("CantidadGV", GetType(Double))
If Not DtDatos.Columns.Contains("CantidadTraspaso") Then DtDatos.Columns.Add("CantidadTraspaso", GetType(Double))
Dim Index = 1
For Each Dr As DataRow In DtDatos.Rows
Dr("Consec") = Index
@@ -605,43 +614,45 @@ Partial Class Inventarios_EntregaAlmacen
If TipoMovimiento = 2 And TipoDocto = "Rem" And Not CveAlmacenTraspasoDestino > 0 Then
Alert("La remisión que se intenta devolver presenta inconsistencias. Comuniquese con servicio tecnico SIG.", TipoMensaje.MsgError)
BtnGuardar.Visible = False
End If
DdlAlmacen.Items.Clear()
If CveAlmacenTraspasoOrigen > 0 Then 'Not (EsDevolucionVenta = 1 And DtDatos.Rows(0)("TipoDocto").ToString() = "Rem" And UsuarioActual.Empresa.Funcionalidad(145) = "1") - ESTO ES PARA CUANDO SEA REMISION DE ENTREGA POR ADELANTADO FUNCIONA LA DEVOLUCION
DdlAlmacen.Items.Insert(0, New ListItem(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Almacen", $"CveAlmacen = {CveAlmacenTraspasoOrigen}"), CveAlmacenTraspasoOrigen.ToString()))
Else
'[IPP] PARCHE - Debe hacerse permiso proceso - 17Enero2018
Dim RestriccionAlmacenSubProyecto = If(UsuarioActual.CveEmpresa.Contiene(72, 80), $" AND CveSubProyecto = {CveSubProyecto}", "")
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros($"{StrAlmacenes} {RestriccionAlmacenSubProyecto}")
End If
DdlAlmacen.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
DdlAlmacen.SelectedValue = "-1"
DdlAlmacen.DataBind()
DdlAlmacen.SelectedValueExist(UsuarioActual.CveAlmacen)
If CveAlmacenTraspasoOrigen > 0 Then
DdlAlmacen.SelectedValueExist(CveAlmacenTraspasoOrigen)
End If
If Not DtDatos.Columns.Contains("Serie") Then
DtDatos.Columns.Add("Serie", GetType(String))
End If
If Not DtDatos.Columns.Contains("Lote") Then
DtDatos.Columns.Add("Lote", GetType(String))
End If
If Not DtDatos.Columns.Contains("CveSeccion") Then
DtDatos.Columns.Add("CveSeccion", GetType(Integer))
End If
If Not DtDatos.Columns.Contains("FechaCaducidad") Then
DtDatos.Columns.Add("FechaCaducidad", GetType(Date))
End If
If Not DtDatos.Columns.Contains("Seleccionado") Then
DtDatos.Columns.Add("Seleccionado", GetType(Boolean))
End If
If Not DtDatos.Columns.Contains("CantidadSeleccionada") Then
DtDatos.Columns.Add("CantidadSeleccionada", GetType(Double))
End If
End If
If CveAlmacen <= 0 Then
DdlAlmacen.Items.Clear()
If CveAlmacenTraspasoOrigen > 0 Then 'Not (EsDevolucionVenta = 1 And DtDatos.Rows(0)("TipoDocto").ToString() = "Rem" And UsuarioActual.Empresa.Funcionalidad(145) = "1") - ESTO ES PARA CUANDO SEA REMISION DE ENTREGA POR ADELANTADO FUNCIONA LA DEVOLUCION
DdlAlmacen.Items.Clear()
DdlAlmacen.Items.Insert(0, New ListItem(GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Almacen", $"CveAlmacen = {CveAlmacenTraspasoOrigen}"), CveAlmacenTraspasoOrigen.ToString()))
Else
'[IPP] PARCHE - Debe hacerse permiso proceso - 17Enero2018
Dim RestriccionAlmacenSubProyecto = If(UsuarioActual.CveEmpresa.Contiene(72, 80), $" AND CveSubProyecto = {CveSubProyecto}", "")
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros($"{StrAlmacenes} {RestriccionAlmacenSubProyecto}")
End If
DdlAlmacen.Items.Insert(0, New ListItem(" Seleccione ", "-1"))
DdlAlmacen.SelectedValue = "-1"
DdlAlmacen.DataBind()
DdlAlmacen.SelectedValueExist(UsuarioActual.CveAlmacen)
If CveAlmacenTraspasoOrigen > 0 Then
DdlAlmacen.SelectedValueExist(CveAlmacenTraspasoOrigen)
End If
End If
If UsuarioActual.CveEmpresa = 119 AndAlso CveSubProyecto = 10276 Then
ValidaLoteCaducidad = True
End If
If Not DtDatos.Columns.Contains("Serie") Then DtDatos.Columns.Add("Serie", GetType(String))
If Not DtDatos.Columns.Contains("Lote") Then DtDatos.Columns.Add("Lote", GetType(String))
If Not DtDatos.Columns.Contains("CveSeccion") Then DtDatos.Columns.Add("CveSeccion", GetType(Integer))
If Not DtDatos.Columns.Contains("FechaCaducidad") Then DtDatos.Columns.Add("FechaCaducidad", GetType(Date))
If Not DtDatos.Columns.Contains("Seleccionado") Then DtDatos.Columns.Add("Seleccionado", GetType(Boolean))
If Not DtDatos.Columns.Contains("CantidadSeleccionada") Then DtDatos.Columns.Add("CantidadSeleccionada", GetType(Double))
If UsuarioActual.Empresa.Funcionalidad(280) = "1" Then
FormaPaqueteria = DtDatos.Rows(0)("FormaPaqueteria").ToString().ToEntero()
Dim FormaPaq As Integer = FormaPaqueteria
@@ -692,7 +703,7 @@ Partial Class Inventarios_EntregaAlmacen
If TipoDocto.Contiene("Ing") AndAlso TipoMovimiento = 2 Then
Dim DtMov As DataTable = DtExistencias.FiltraParametros("CveConcepto = 40", "", {"CveAlmacen"})
If DtMov.Rows.Count > 0 Then
If DtMov.Rows.Count > 0 AndAlso CveAlmacen <= 0 Then
Dim CveAlmacenDev As Integer = DtMov.Rows(0)("CveAlmacen").ToString().ToEntero()
DdlAlmacen.Items.Clear()
DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros($"CveAlmacen = {CveAlmacenDev}")
@@ -719,7 +730,7 @@ Partial Class Inventarios_EntregaAlmacen
ObjInventario.Dispose()
UpGenerales.Update()
CargaGvDatos()
If CveAlmacen <= 0 Then CargaGvDatos()
End Sub
Private Sub CargaTraspasoPorSurtir(CveTraspaso As Integer)
@@ -853,8 +864,9 @@ Partial Class Inventarios_EntregaAlmacen
'GvDatos.Columns(9).HeaderText = If(UsuarioActual.Empresa.Funcionalidad(147) <> "", UsuarioActual.Empresa.Funcionalidad(147), "")
'SugerirFecha()
If DdlAlmacen.SelectedValue.ToEntero > 0 Then
SugiereLoteCaducidad(DdlAlmacen.SelectedValue.ToEntero)
If DdlAlmacen.SelectedValue.ToEntero > 0 And CveVentaSurtir > 0 Then
CargaVentaPorSurtir(CveVentaSurtir, CveAlmacen:=DdlAlmacen.SelectedValue.ToEntero)
' SugiereLoteCaducidad(DdlAlmacen.SelectedValue.ToEntero)
End If
End If
GvDatos.DataSource = DtDatos
@@ -943,21 +955,25 @@ Partial Class Inventarios_EntregaAlmacen
e.Row.FCDropDownList("DdlSeccionAlmacen").Visible = False
End If
If CBool(e.Row.DBCampo("AplicaCaducidad")) Then
e.Row.FCTextBox("TxtCaducidad").Visible = True
e.Row.FCLinkButton("LnkCaducidad").Visible = True
Else
e.Row.FCTextBox("TxtCaducidad").Visible = False
e.Row.FCLinkButton("LnkCaducidad").Visible = False
End If
If CBool(e.Row.DBCampo("AplicaLote")) Then
e.Row.FCTextBox("TxtLote").Visible = True
Else
e.Row.FCTextBox("TxtLote").Visible = False
End If
If (ValidaLoteCaducidad) OrElse (UsuarioActual.CveEmpresa <> 119) Then
If CBool(e.Row.DBCampo("AplicaCaducidad")) Then
e.Row.FCTextBox("TxtCaducidad").Visible = True
e.Row.FCLinkButton("LnkCaducidad").Visible = True
e.Row.FCTextBox("TxtCaducidad").readonly = True
Else
e.Row.FCTextBox("TxtCaducidad").Visible = False
e.Row.FCLinkButton("LnkCaducidad").Visible = False
End If
If CBool(e.Row.DBCampo("AplicaLote")) Then
e.Row.FCTextBox("TxtLote").Visible = True
e.Row.FCTextBox("TxtLote").readonly = True
Else
e.Row.FCTextBox("TxtLote").Visible = False
End If
End If
e.Row.FCButton("BtnDividir").Attributes.Add("onclick", String.Format("Dividir('{0}');", e.Row.FCTextBox("TxtDividir").ClientID))
e.Row.FCButton("BtnDividir").CommandArgument = e.Row.RowIndex.ToString()
e.Row.FCTextBox("TxtDividir").Attributes.Add("onkeyup", String.Format("LimitaCantidad({0},this,'{1}');", e.Row.DBCampo("CantidadF"), e.Row.FCButton("BtnDividir").ClientID))
@@ -1627,7 +1643,13 @@ Partial Class Inventarios_EntregaAlmacen
Exit For
End If
Next
Next
If (Not ValidaLoteCaducidad) OrElse (UsuarioActual.CveEmpresa <> 119) Then
ValidaSeccion = False
ValidaCaducidad = False
ValidaLote = False
End If
If ValidaSeccion Then
Alert("La sección de almacen no ha sido especificada en todos los productos.", TipoMensaje.MsgAdvertencia)
@@ -1769,6 +1791,11 @@ Partial Class Inventarios_EntregaAlmacen
FechaCaducidad = If(CBool(Dr("AplicaCaducidad")) AndAlso Dr("FechaCaducidad").ToString() <> "", Dr("FechaCaducidad").ToString().ToDate, MinFecha)
Lote = If(CBool(Dr("AplicaLote")), Dr("Lote").ToString(), "-1")
If Not ValidaLoteCaducidad Then
FechaCaducidad = MinFecha
Lote = "-1"
End If
If Dr("CantidadGV").ToString().ToDecimal > 0 Then
If CBool(Dr("AplicaSerie")) Then
DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
@@ -2428,18 +2455,17 @@ Partial Class Inventarios_EntregaAlmacen
CantidadPendiente = Dr("CantidadGV").ToString().ToDecimal - Dr("CantidadTraspaso").ToString().ToDecimal - CantidadEntradaSinCosto
If CantidadPendiente > 0 Then
Dim PU As Decimal = 0
Dim CveSeccionAlmacen As Integer = If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString().ToEntero(), -1)
'SI FUE POR SERIE
DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0} AND FueTraspaso IS NULL", Dr("Consec")))
DtDetalleLote = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0} AND FueTraspaso IS NULL", Dr("Consec")))
If DtDetalle.Rows.Count > 0 Then
For Each Dr1 As DataRow In DtDetalle.Rows
If TipoMovimiento = 2 AndAlso DtExistencias IsNot Nothing Then
CveSeccionAlmacen = DtExistencias.FiltroPrimeroValor("CveSeccionAlmacen", $"ISNULL(CveTipoAlmacenDevolucion,0) <> 26 AND CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString().ToEntero()} AND Serie = '{Dr1("Serie").ToString()}'").ToString().ToEntero
PU = DtExistencias.FiltroPrimeroValor("PU", $"ISNULL(CveTipoAlmacenDevolucion,0) <> 26 AND CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString().ToEntero()} AND Serie = '{Dr1("Serie").ToString()}'").ToString().ToDecimal
PU = DtExistencias.FiltroPrimeroValor("PU", $"CveTipoAlmacenDevolucion <> 26 AND CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString().ToEntero()} AND Serie = '{Dr1("Serie").ToString()}'").ToString().ToDecimal
End If
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), PU, Serie:=Dr1("Serie").ToString(), CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero(), FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString().ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString(), "-1"), CveSeccionAlmacen:=CveSeccionAlmacen) Then
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), PU, Serie:=Dr1("Serie").ToString(), CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero(), FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString().ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString(), "-1"), CveSeccionAlmacen:=-3) Then
ErrorMovInv = True
TextoError.AppendFormat("Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar.")
Exit For
@@ -2448,11 +2474,10 @@ Partial Class Inventarios_EntregaAlmacen
ElseIf DtDetalleLote.Rows.Count > 0 Then
For Each Dr1 As DataRow In DtDetalleLote.Rows
If TipoMovimiento = 2 AndAlso DtExistencias IsNot Nothing Then
CveSeccionAlmacen = DtExistencias.FiltroPrimeroValor("CveSeccionAlmacen", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString().ToEntero()} AND Serie = '{Dr1("Serie").ToString()}'").ToString().ToEntero
PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString().ToEntero()} AND Serie = '{Dr1("Serie").ToString()}'").ToString().ToDecimal
End If
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr1("Cantidad").ToString().ToDouble, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), PU, CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero(), FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString().ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString(), "-1"), CveSeccionAlmacen:=CveSeccionAlmacen) Then
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr1("Cantidad").ToString().ToDouble, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), PU, CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero(), FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString().ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString(), "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString().ToEntero(), -1)) Then
ErrorMovInv = True
TextoError.AppendFormat("Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar.")
Exit For
@@ -2463,7 +2488,7 @@ Partial Class Inventarios_EntregaAlmacen
PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString().ToEntero()}").ToString().ToDecimal
End If
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, CantidadPendiente, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), PU, CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero(), FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString().ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString(), "-1"), CveSeccionAlmacen:=-3) Then
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, CantidadPendiente, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), PU, CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero(), FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString().ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString(), "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString().ToEntero(), -1)) Then
ErrorMovInv = True
TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar.")
Exit For

View File

@@ -126,7 +126,7 @@
<asp:UpdatePanel runat="server" ID="UppEntrega" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvD" DataKeyNames="CveUM,CvePS,CveSeccionAlmacen,Serie,Lote,FechaCaducidad,CveMovimientoDetalle,CveMovimiento" runat="server" AutoGenerateColumns="False" EmptyDataText="No hay movimientos pendientes" CssClass="table table-hover Widthall" GridLines="None">
<asp:GridView ID="GvD" DataKeyNames="CveUM,CvePS,CveSeccionAlmacen,Serie,Lote,FechaCaducidad,CveMovimientoDetalle,CveMovimiento, AplicaLote, AplicaCaducidad" runat="server" AutoGenerateColumns="False" EmptyDataText="No hay movimientos pendientes" CssClass="table table-hover Widthall" GridLines="None">
<Columns>
<asp:TemplateField ItemStyle-Width="5%" ItemStyle-HorizontalAlign="Center">
<%--<HeaderTemplate>
@@ -145,10 +145,28 @@
<asp:BoundField HeaderText="Disponible" DataField="Cantidad" DataFormatString="{0:#,##0.######}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="10%" />
<asp:BoundField HeaderText="Unidad" DataField="UnidadMedida" ItemStyle-Width="10%" />
<asp:BoundField HeaderText="Código" DataField="Codigo" ItemStyle-Width="10%" />
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-Width="40%" />
<asp:BoundField HeaderText="Serie" DataField="Serie" ItemStyle-Width="15%" />
<asp:BoundField HeaderText="Lote" DataField="Lote" ItemStyle-Width="15%" />
<asp:BoundField HeaderText="F. Caducidad" DataField="FechaCaducidad" ItemStyle-Width="15%" />
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-Width="35%" />
<asp:BoundField HeaderText="Serie" DataField="Serie" ItemStyle-Width="10%" Visible="false"/>
<asp:TemplateField HeaderText="Lote" ItemStyle-Width="10%" HeaderStyle-HorizontalAlign="Center" Visible="false">
<ItemTemplate>
<asp:Literal ID="LtlLote" runat="server" Text='<%# Eval("Lote", "{0}") %>'></asp:Literal>
<asp:Textbox ID="TxtLote" runat="server" Visible="false" Width="70px" Text='<%# Eval("Lote", "{0}") %>'></asp:Textbox>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Fecha" ItemStyle-Width="25%" HeaderStyle-HorizontalAlign="Center" Visible="false">
<ItemTemplate>
<asp:Literal ID="LtlFechaCaducidad" runat="server" Text='<%# Eval("FechaCaducidad", "{0:d}") %>'></asp:Literal>
<asp:Textbox ID="TxtFechaCaducidad" runat="server" Visible="false" Width="75px" Text='<%# Eval("FechaCaducidad", "{0:d}") %>'></asp:Textbox>
<asp:RequiredFieldValidator ID="RFVFechaCad" runat="server" ControlToValidate="TxtFechaCaducidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> es necesario, por favor ingréselo." ValidationGroup="GrpRecibir"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCFechaCad" runat="server" HighlightCssClass="vco" TargetControlID="RFVFechaCad" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:MaskedEditExtender ID="MEEFechaCad" runat="server" TargetControlID="TxtFechaCaducidad" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<asp:CompareValidator ID="CVFechaCad" runat="server" ControlToValidate="TxtFechaCaducidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Fecha''</b> no tiene el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="GrpRecibir"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="VCEFechaCad" runat="server" HighlightCssClass="vco" TargetControlID="CVFechaCad" Width="350px"></ajax:ValidatorCalloutExtender>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</Columns>
</asp:GridView>

View File

@@ -66,7 +66,12 @@ Partial Class Inventarios_PrestamosdeProveedor
CveMovimiento = Dr("CveMovimiento").ToString.ToEntero
End If
End If
End If
GvD.Columns(6).Visible = ObjInv.DtResultados.MAX("Serie") <> ""
GvD.Columns(7).Visible = ObjInv.DtResultados.MAX("Lote") <> ""
GvD.Columns(8).Visible = ObjInv.DtResultados.MAX("FechaCaducidad").ToDate > MinFecha
GvD.Columns(8).HeaderText = UsuarioActual.Empresa.Funcionalidad(147)
ObjInv.Dispose()
GvD.DataBind()
@@ -90,18 +95,35 @@ Partial Class Inventarios_PrestamosdeProveedor
Else
If TxtFolioEntrega.Text <> "" Then
e.Row.FCCheckBox("Chk").Visible = True
e.Row.FCTextBox("TxtCantidad").Enabled = True
e.Row.FCTextBox("TxtCantidad").Enabled = True
If e.Row.DataKey("AplicaLote").ToString = "True" Then
e.Row.FCLiteral("LtlLote").Visible = False
e.Row.FCTextBox("TxtLote").Visible = True
End If
If e.Row.DataKey("AplicaCaducidad").ToString = "True" Then
e.Row.FCLiteral("LtlFechaCaducidad").Visible = False
e.Row.FCTextBox("TxtFechaCaducidad").Visible = True
End If
End If
e.Row.FCTextBox("TxtCantidad").Visible = True
e.Row.FCTextBox("TxtCantidad").Attributes.Add("onkeyup", String.Format("ValidaCantidad(this,{0});", e.Row.DBCampo("Cantidad")))
End If
''FUNCIONALIDAD PISTOLA DE CODIGOS
'If UsuarioActual.Empresa.Funcionalidad(132) = "1" And e.Row.DBCampo("CodigoBarras").Trim <> "" Then
' e.Row.FCTextBox("TxtCantidad").Enabled = False
'End If
End If
''FUNCIONALIDAD PISTOLA DE CODIGOS
'If UsuarioActual.Empresa.Funcionalidad(132) = "1" And e.Row.DBCampo("CodigoBarras").Trim <> "" Then
' e.Row.FCTextBox("TxtCantidad").Enabled = False
'End If
End If
End Sub
Protected Sub BtnRecibir_Click(sender As Object, e As EventArgs)
@@ -169,7 +191,7 @@ Partial Class Inventarios_PrestamosdeProveedor
If gvr.FCCheckBox("Chk").Checked AndAlso gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal > 0 Then
CveMovimientoDetalleEntrada = gvr.DataKey("CveMovimientoDetalle").ToString.ToEntero
CvePS = gvr.DataKey("CvePS").ToString.ToEntero
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal, gvr.DataKey("CveUM").ToString.ToEntero, gvr.DataKey("CvePS").ToString.ToEntero, 0, -1, CveMovimientoDetalleEntrada:=CveMovimientoDetalleEntrada, Serie:=gvr.DataKey("Serie").ToString, Lote:=gvr.DataKey("Lote").ToString, FechaCaducidad:=gvr.DataKey("FechaCaducidad").ToString.ToDate) Then
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal, gvr.DataKey("CveUM").ToString.ToEntero, gvr.DataKey("CvePS").ToString.ToEntero, 0, -1, CveMovimientoDetalleEntrada:=CveMovimientoDetalleEntrada, Serie:=gvr.DataKey("Serie").ToString, Lote:=gvr.FCTextBox("TxtLote").ToString, FechaCaducidad:=gvr.FCTextBox("TxtFechaCaducidad").ToString.ToDate) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al guardar los movimientos de salida"
Exit For

View File

@@ -90,7 +90,7 @@
<div class="col-md-1">
<asp:DropDownList runat="server" ID="DdlClasificacion" CssClass="select2me" DataTextField="Clasificacion" DataValueField="CveClasificacion" Width="100%" CssStyle="width: 100%;"/>
</div>
<label class="col-md-1 truncate">Productos:</label>
<label class="col-md-1 truncate">Producto:</label>
<div class="col-md-2">
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width:55%;" CssClass="DdlPS" CssClassDdl="select2me " DataTextField="PSCodigo" DataValueField="CvePS" />
</div>
@@ -102,13 +102,13 @@
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" DataKeyNames="Cantidad,PS,Lote,FechaCaducidad" EmptyDataText="No se encontraron Registros" ToolTip="Reporte de productos caducidad " CssClass="table table-striped table-advance table-hover" Style="margin-top: -10px; width: 100%" GridLines="None">
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontraron Registros" ToolTip="Reporte de productos caducidad " CssClass="table table-advance table-hover Widthall ScrollAD" data-sort="true" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Almacén" DataField="Almacen" />
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Producto" DataField="PS" />
<asp:BoundField HeaderText="Lote" DataField="Lote" />
<asp:BoundField HeaderText="Fecha de Caducidad" DataField="FechaCaducidad" DataFormatString = "{0:dd/MM/yyyy}" />
<asp:BoundField HeaderText="Almacén" DataField="Almacen" ItemStyle-Width="150px" />
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,###.##}" ItemStyle-Width="100px" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Producto" DataField="CodigoPS" />
<asp:BoundField HeaderText="Lote" DataField="Lote" ItemStyle-Width="150px" />
<asp:BoundField HeaderText="Fecha Caducidad" DataField="FechaCaducidad" DataFormatString = "{0:dd/MM/yyyy}" ItemStyle-Width="100px" />
</Columns>
</asp:GridView>
</ContentTemplate>

View File

@@ -35,11 +35,16 @@ public partial class Inventarios_RepProductosPorCaducar : ClsPaginas
private void CargarDatos()
{
DateTime FI = ModExtensiones.MinFecha;
if (TxtFechaInicio.Text != "") FI = TxtFechaInicio.Text.ToDate();
int CvePS = -1;
if (DdlPS.SelectedValue.ToEntero() > 0) CvePS = DdlPS.SelectedValue.ToEntero();
// aqui siempre se visualiza la caducidad, sin importar la condición, porque siempre se valida la caducidad
//if (!String.IsNullOrWhiteSpace(UsuarioActual.Empresa.Funcionalidad(147))) { GvDatos.Columns[4].HeaderText = UsuarioActual.Empresa.Funcionalidad(147); }
ClsInventarios ObjInventarios = new ClsInventarios();
if (ObjInventarios.GetProductosCaducidad(DdlProveedor.SelectedValue.ToEntero(),TxtFechaInicio.Text.ToDate(),TxtFechaFin.Text.ToDate(), DdlSucursal.SelectedValue.ToEntero(),
DdlClasificacion.SelectedValue.ToEntero(), -1, UsuarioActual.CveEmpresa))
ClsInventarios ObjInventarios = new ClsInventarios();
if (ObjInventarios.GetProductosCaducidad(DdlProveedor.SelectedValue.ToEntero(), FI, TxtFechaFin.Text.ToDate(), DdlSucursal.SelectedValue.ToEntero(),
DdlClasificacion.SelectedValue.ToEntero(), CvePS, UsuarioActual.CveEmpresa))
{
GvDatos.DataSource = ObjInventarios.DtResultados;
DTDatos = ObjInventarios.DtResultados;
@@ -60,8 +65,8 @@ public partial class Inventarios_RepProductosPorCaducar : ClsPaginas
private void CargarFechaText()
{
DateTime date = new DateTime(DateTime.Today.Year, DateTime.Today.Month,1);
TxtFechaInicio.Text = date.ToString("dd/MM/yyyy");
TxtFechaFin.Text = date.AddMonths(3).AddDays(-1).ToString("dd/MM/yyyy");
//TxtFechaInicio.Text = date.AddYears(-5).ToString("dd/MM/yyyy");
TxtFechaFin.Text = date.AddMonths(6).AddDays(-1).ToString("dd/MM/yyyy");
DdlPS.setEsWebService(true);
}

View File

@@ -443,6 +443,7 @@
<asp:TextBox ID="TxtnLote" CssClass="form-control input-sm" runat="server" Width="80px" Visible="false"></asp:TextBox>
</td>
<td runat="server" id="TdFechaCaducidad" visible="false">
<asp:CheckBox ID="ChkSugiereFechaCaducidad" runat="server" Text="Auto Sugiere" ToolTip="Auto Sugiere Fecha de caducidad" AutoPostBack="true" OnCheckedChanged="ChkSugiereFechaCaducidad_CheckedChanged" />
<asp:TextBox ID="TxtnFechaCaducidad" CssClass="form-control input-sm" runat="server" Width="80px" Visible="false"></asp:TextBox>
</td>
<td align="center">
@@ -456,7 +457,7 @@
<asp:GridView ID="GvDatos" DataKeyNames="No,PS,CvePS,CveUM,Serie,Cantidad" runat="server" ShowHeader="false" AutoGenerateColumns="False" EmptyDataText="" ToolTip="Listado de Movimientos" CssClass="Widthall table table-striped table-hover" GridLines="None">
<Columns>
<asp:BoundField HeaderText="#" DataField="No" ItemStyle-Width="23px" />
<asp:TemplateField ItemStyle-Width="93px">
<asp:TemplateField ItemStyle-Width="93px" ItemStyle-HorizontalAlign ="Right">
<ItemTemplate>
<asp:Literal runat="server" Text='<%# Eval("Cantidad") %>' ID="ltlCantidad"></asp:Literal>
<asp:TextBox runat="server" ID="TxtCantidad2" Text='<%# Eval("Cantidad", "{0:###,###,###,##0.##}") %>' Width="50px" Visible="false"></asp:TextBox>

View File

@@ -526,19 +526,73 @@ Partial Class Inventarios_TraspasoAlmacen
DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CveProducto).FiltroPrimero("") ' Estado = -1
If Cantidad > 0 AndAlso DrPS("VentaMinima").ToString.ToDecimal > 0 Then
'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15...
If Cantidad Mod DrPS("VentaMinima").ToString.ToDecimal <> 0 Then
Alert(String.Format("El producto se vende solo en cantidades de {0:#,###.####}", DrPS("VentaMinima")))
Exit Sub
If DrPS IsNot Nothing Then
If Cantidad > 0 AndAlso DrPS("VentaMinima").ToString.ToDecimal > 0 Then
'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15...
If Cantidad Mod DrPS("VentaMinima").ToString.ToDecimal <> 0 Then
Alert(String.Format("El producto se vende solo en cantidades de {0:#,###.####}", DrPS("VentaMinima")))
Exit Sub
End If
End If
End If
Dim Valido = ValidaExistencia(Cantidad, CveProducto, DdlUnidad.SelectedValue.ToEntero, DdlSeccionAlmacen.SelectedValue.ToEntero, If(TxtnSerie.Visible, TxtnSerie.Text, "-1"), If(TxtnLote.Visible, TxtnLote.Text, "-1"), If(TxtnFechaCaducidad.Visible, TxtnFechaCaducidad.Text.ToDate, MinFecha))
'codigo provisional.
Dim CveSubP As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=DdlAlmacenOrigen.selectedvalue.toentero).FiltroPrimeroValor("CveSubProyecto", "").ToEntero
If DrPS("AplicaCaducidad").ToString = "True" AndAlso ChkSugiereFechaCaducidad.checked And CveSubP.Contiene(10276) Then
Dim ObjInventarios As New ClsInventarios
If ObjInventarios.GetExistenciasCaducidad(CveProducto, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.selectedvalue) Then
Dim dtt As DataTable = ObjInventarios.DtResultados
If Cantidad > dtt.SUMD("Cantidad") Then
Alert("No se cuenta con la cantidad requerida")
Else
'recorro las existencias para tomar la cantidad
Dim i As Decimal = 0
Dim CantidadRestante As Decimal = Cantidad
For Each drr As DataRow In dtt.Rows
If drr("Cantidad").ToString.ToDecimal < CantidadRestante Then
i = drr("Cantidad").ToString.ToDecimal
Else
i = CantidadRestante
End If
AgregarPS(i, CveProducto, DdlUnidad.SelectedValue.ToEntero, TxtnObservaciones.Text, CveSeccionAlmacen:=DdlSeccionAlmacen.SelectedValue.ToEntero, SeccionAlmacen:=DdlSeccionAlmacen.SelectedItem.Text, Lote:=drr("Lote").ToString, FechaCaducidad:=drr("FechaCaducidad").ToString.ToDate, CveSeccionAlmacenDestino:=DdlSeccionAlmacenDestino.SelectedValue.ToEntero, Limpia:=FuncionalidadSinSerie)
CantidadRestante -= i
If CantidadRestante <= 0 Then Exit For
Next
End If
End If
ObjInventarios.Dispose()
Else
'codigo temporal
Dim tLote As String
Dim tCaducidad As Date
tLote = If(TxtnLote.Visible, TxtnLote.Text, "-1")
tCaducidad = If(TxtnFechaCaducidad.Visible, TxtnFechaCaducidad.Text.ToDate, MinFecha)
If CveSubP <> 10276 Then
tLote = "-1"
tCaducidad = MinFecha
End If
Dim Valido = ValidaExistencia(Cantidad, CveProducto, DdlUnidad.SelectedValue.ToEntero, DdlSeccionAlmacen.SelectedValue.ToEntero, If(TxtnSerie.Visible, TxtnSerie.Text, "-1"), tLote, tCaducidad)
If Valido Then
AgregarPS(Cantidad, CveProducto, DdlUnidad.SelectedValue.ToEntero, TxtnObservaciones.Text, CveSeccionAlmacen:=DdlSeccionAlmacen.SelectedValue.ToEntero, SeccionAlmacen:=DdlSeccionAlmacen.SelectedItem.Text, Serie:=If(TxtnSerie.Visible, TxtnSerie.Text, ""), Lote:=If(tLote = "-1", "", tLote), FechaCaducidad:=tCaducidad, CveSeccionAlmacenDestino:=DdlSeccionAlmacenDestino.SelectedValue.ToEntero, Limpia:=FuncionalidadSinSerie)
End If
End If
End If
If Valido Then
AgregarPS(Cantidad, CveProducto, DdlUnidad.SelectedValue.ToEntero, TxtnObservaciones.Text, CveSeccionAlmacen:=DdlSeccionAlmacen.SelectedValue.ToEntero, SeccionAlmacen:=DdlSeccionAlmacen.SelectedItem.Text, Serie:=If(TxtnSerie.Visible, TxtnSerie.Text, ""), Lote:=If(TxtnLote.Visible, TxtnLote.Text, ""), FechaCaducidad:=If(TxtnFechaCaducidad.Visible, TxtnFechaCaducidad.Text.ToDate, MinFecha), CveSeccionAlmacenDestino:=DdlSeccionAlmacenDestino.SelectedValue.ToEntero, Limpia:=FuncionalidadSinSerie)
End If
End If
End Sub
@@ -550,26 +604,39 @@ Partial Class Inventarios_TraspasoAlmacen
Dim Inv As New ClsInventarios
Dim Existencia As Decimal = Inv.GetExistenciasPS(CvePS, CveUnidadMedida, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), PendientePorSurtir:=1)
'la primera vez valida, que la existencia global, cumpla, considerando lo pendiente por surtir
'las segunda consulta, que tenga existencia, ya con los parametros especificos
If FechaCaducidad > MinFecha OrElse Serie <> "" OrElse Lote <> "" Then
ExistenciaEspecificada = Inv.GetExistenciasPS(CvePS, CveUnidadMedida, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), CveSeccionAlmacen:=CveSeccionAlmacen, Serie:=Serie, Lote:=Lote, FechaCaducidad:=FechaCaducidad, PendientePorSurtir:=-1)
Else
ExistenciaEspecificada = Existencia
End If
Inv.Dispose()
If Existencia - Cantidad - CantidadEnGrid < 0 OrElse ExistenciaEspecificada - Cantidad - CantidadEnGrid < 0 Then
If Existencia < 0 OrElse ExistenciaEspecificada < 0 Then
Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')")
If Existencia > 0 Then
'la primera vez valida, que la existencia global, cumpla, considerando lo pendiente por surtir
'las segunda consulta, que tenga existencia, ya con los parametros especificos
If (FechaCaducidad > MinFecha OrElse Serie <> "" OrElse Lote <> "") Then
ExistenciaEspecificada = Inv.GetExistenciasPS(CvePS, CveUnidadMedida, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), CveSeccionAlmacen:=CveSeccionAlmacen, Serie:=Serie, Lote:=Lote, FechaCaducidad:=FechaCaducidad, PendientePorSurtir:=-1)
Dim StrB As New stringbuilder
StrB.appendformat("CvePS = {0} AND CveUM = {1} ", CvePS, CveUnidadMedida)
If Serie <> "" Then StrB.appendformat(" AND Serie = '{0}' ", Serie)
If Lote <> "" Then StrB.appendformat(" AND Lote = '{0}' ", Lote)
If FechaCaducidad.ToDate > MinFecha Then StrB.appendformat(" AND FechaCaducidad = '{0}' ", FechaCaducidad.ToShortDateString)
Dim CantidadEspecificaEnGrid As Decimal = DtMovimientos.SUMD("Cantidad", StrB.tostring)
If ExistenciaEspecificada - Cantidad - CantidadEspecificaEnGrid < 0 Then
Alert(String.Format("Solo hay en existencia: {0:#,###.##}", ExistenciaEspecificada), TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')")
Retorno = False
End If
Else
Alert(String.Format("Solo hay en existencia: {0}", Existencia), TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')")
ExistenciaEspecificada = Existencia
If Existencia - Cantidad - CantidadEnGrid < 0 Then
Alert(String.Format("Solo hay en existencia: {0:#,###.##}", ExistenciaEspecificada), TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')")
Retorno = False
End If
End If
Retorno = False
Else
Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia)
RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')")
End If
Inv.Dispose()
Return Retorno
End Function
Private Sub AgregarPS(Cantidad As Double, CvePS As Integer, CveUnidadMedida As Integer, Optional Observaciones As String = "", Optional CveSeccionAlmacen As Integer = -1, Optional SeccionAlmacen As String = "", Optional Serie As String = "", Optional Lote As String = "", Optional FechaCaducidad As Date = MinFecha, Optional Limpia As Boolean = True, Optional CveSeccionAlmacenDestino As Integer = -1)
@@ -1482,6 +1549,13 @@ Partial Class Inventarios_TraspasoAlmacen
' CargaGvDatos()
'End Sub
Protected Sub ChkSugiereFechaCaducidad_CheckedChanged(sender As Object, e As EventArgs)
TxtnFechaCaducidad.visible = Not ChkSugiereFechaCaducidad.checked
TxtnLote.visible = Not ChkSugiereFechaCaducidad.checked
End Sub
#End Region

View File

@@ -814,6 +814,7 @@
Cultivo:
<asp:DropDownList ID="DdlCultivosCuadro" CssClass=" form-control input-sm select2me" runat="server" DataTextField="Cuadro" Style="width: 100%; max-width: 600px;"
DataValueField="CveCultivoCuadroDetalle" ValidationGroup="GrpDetalleGuardar">
<asp:ListItem Value="-1">Seleccione uno</asp:ListItem>
</asp:DropDownList>
</div>

View File

@@ -2160,7 +2160,6 @@ Partial Class OC
DdlClasificacion.SelectedIndex = 0
DdlP2.SelectedValue = "-1"
DdlP2.SelectedText = "Seleccione un producto o servicio"
txtPrecioUnitario.Text = ""
TxtObsPS.Text = ""
HdnCveActivoFijo.Value = ""

BIN
Otros/CRforVS_13_0_22.exe Normal file

Binary file not shown.

View File

@@ -6392,6 +6392,7 @@ Partial Class Ventas
Objeto.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString())
Objeto.ddlWS.Attributes.Add("data-pagina", "ventas/ventas")
Objeto.ddlWS.Attributes.Add("data-Estatus", "1")
Objeto.ddlWS.Attributes.Add("data-AplicaparaVenta", "1")
End If
End Sub
@@ -11289,8 +11290,7 @@ Partial Class Ventas
CveCuentaIVATrasladado = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDT.MAX("PorcentajeIVA").ToDouble).Rows(0)("CveCuentaIVATrasladado").ToString().ToEntero()
End If
Dim UsaComplementariaClientes As Boolean = False
If UsuarioActual.CveEmpresa.Contiene(1, 119) Then UsaComplementariaClientes = True
Dim UsaComplementariaClientes As Boolean = True
If ObjConta.GetPlantillaConceptos(ObjFactura.CveEmpresa, CvePlantilaPoliza) Then
Dim dtt As DataTable = ObjConta.DtResultados
@@ -13005,8 +13005,8 @@ Partial Class Ventas
'If TotalCosto <> 0 Then
If Not ObjConta.AddPrePolizasDetalle(factura.CvePrePoliza, TipoMovto68, TotalCosto, factura.SerieFolio, 68, factura.SerieFolio, factura.Fecha, IdCtaContable, -1, CveVenta:=factura.CveVenta, CveCliente:=factura.CveCliente, CveMovimientoAlmacen:=CveMovimientoInventario, ImporteMX:=TotalCosto, CveCuenta:=CveCuenta, CveSubProyecto:=factura.CveSubProyecto) Then
OcurrioError = True
End If
OcurrioError = True
End If
'End If
Else
@@ -13834,8 +13834,8 @@ Partial Class Ventas
Dim CuentasContablesInvalidasSIG As New StringBuilder
Dim ContaIdPoliza As Integer = 0
Dim ConceptoAmortizacion As Integer = 0
Dim UsaComplementariaClientes As Boolean = False
If UsuarioActual.CveEmpresa.Contiene(1, 119) Then UsaComplementariaClientes = True
Dim UsaComplementariaClientes As Boolean = True
'If UsuarioActual.CveEmpresa.Contiene(1, 119) Then UsaComplementariaClientes = True
'Dim FechaMaxima As Date = MinFecha
@@ -15119,7 +15119,7 @@ Partial Class Ventas
Dim ValorInventario As Decimal = 0
For Each RowInv As DataRow In tmpCostos.Rows
ValorInventario = DTMovimientosDetalles.SUM("Total", String.Format("CveClasificacion = {0}", RowInv("CveClasificacion"))).ToString().ToDecimal.RoundSQL()
ValorInventario = DTMovimientosDetalles.SUMD("Total", String.Format("CveClasificacion = {0}", RowInv("CveClasificacion"))).RoundAD()
IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero()
CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGastoSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero()
@@ -15143,7 +15143,7 @@ Partial Class Ventas
End If
IdCtaContable = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {ddlAlmacen.SelectedValue}").ToEntero()
ValorInventario = DTMovimientosDetalles.SUMD("Total", $"CveMovimiento = {Mov("CveMovimiento")}").RoundSQL()
ValorInventario = DTMovimientosDetalles.SUMD("Total", $"CveMovimiento = {Mov("CveMovimiento")}").RoundAD()
If ValorInventario <> 0 Then
'Entrada
@@ -18449,7 +18449,7 @@ Partial Class Ventas
Return Not OcurrioError
End If
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundAD
If CvePrePoliza <= 0 Then
GenerarPrePolizaNueva = True
@@ -18462,7 +18462,7 @@ Partial Class Ventas
End If
For Each RowInv As DataRow In DtCostosDistinct.Rows
ValorInventario = DtCostos.SUMD("Total", String.Format("CveClasificacion = {0}", RowInv("CveClasificacion"))).RoundSQL
ValorInventario = DtCostos.SUMD("Total", String.Format("CveClasificacion = {0}", RowInv("CveClasificacion"))).RoundAD
IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero()
CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGastoSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero()
TotalCostoAcumulado += ValorInventario
@@ -18603,10 +18603,10 @@ Partial Class Ventas
Dim ValorInventario As Decimal
Dim TotalCostoAcumulado As Decimal = 0D
Dim Cont As Integer = 1
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundAD
For Each RowInv As DataRow In DtCostosDistinct.Rows
ValorInventario = DtCostos.SUMD("Total", String.Format("CveClasificacion = {0}", RowInv("CveClasificacion"))).RoundSQL
ValorInventario = DtCostos.SUMD("Total", String.Format("CveClasificacion = {0}", RowInv("CveClasificacion"))).RoundAD
IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero()
CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGastoSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero()
TotalCostoAcumulado += ValorInventario
@@ -18720,10 +18720,10 @@ Partial Class Ventas
Dim ValorInventario As Decimal
Dim TotalCostoAcumulado As Decimal = 0D
Dim Cont As Integer = 1
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundAD
For Each RowInv As DataRow In DtCostosDistinct.Rows
ValorInventario = DtCostos.SUMD("Total", String.Format("CveClasificacion = {0}", RowInv("CveClasificacion"))).RoundSQL
ValorInventario = DtCostos.SUMD("Total", String.Format("CveClasificacion = {0}", RowInv("CveClasificacion"))).RoundAD
IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero()
CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGastoSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero()
TotalCostoAcumulado += ValorInventario
@@ -23675,11 +23675,7 @@ Partial Class Ventas
IdCuentaContableNoDeducible = 3114
End If
Dim UsaComplementaria As Boolean = False
If UsuarioActual.CveEmpresa = 119 Then
UsaComplementaria = True
End If
Dim UsaComplementaria As Boolean = True
If MsgError = "" Then
CvePrePoliza = ObjConta.AddPrePolizas("Ventas/Saldarr", 47, SaldoVenta, SaldoVenta, tCveMoneda, TxtFechaSaldarVenta.Text.ToDate, ConceptoPartida, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)