This commit is contained in:
2025-05-29 09:34:06 -07:00
26 changed files with 689 additions and 348 deletions

View File

@@ -7,7 +7,7 @@ Public Class BundleConfig
bundles.Add(New ScriptBundle("~/bundles/jquery").Include( bundles.Add(New ScriptBundle("~/bundles/jquery").Include(
"~/Metronic/assets/global/plugins/jquery.min.js" "~/Metronic/assets/global/plugins/jquery.min.js"
)) ))
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", Nothing, New ScriptResourceDefinition with {.Path = "~/bundles/jquery"}) ScriptManager.ScriptResourceMapping.AddDefinition("jquery", Nothing, New ScriptResourceDefinition With {.Path = "~/bundles/jquery"})
@@ -170,7 +170,7 @@ Public Class BundleConfig
"~/Scripts/WebForms/TreeView.js", "~/Scripts/WebForms/TreeView.js",
"~/Scripts/WebForms/WebParts.js")) "~/Scripts/WebForms/WebParts.js"))
ScriptManager.ScriptResourceMapping.AddDefinition("WebFormsBundle", new ScriptResourceDefinition With {.Path = "~/bundles/WebFormsJs"}) ScriptManager.ScriptResourceMapping.AddDefinition("WebFormsBundle", New ScriptResourceDefinition With {.Path = "~/bundles/WebFormsJs"})
' Order is very important for these files to work, they have explicit dependencies ' Order is very important for these files to work, they have explicit dependencies
bundles.Add(New ScriptBundle("~/bundles/MsAjaxJs").Include( bundles.Add(New ScriptBundle("~/bundles/MsAjaxJs").Include(

View File

@@ -1509,7 +1509,7 @@ Public Class ClsNominas
EsRetencion As Boolean, CveClasificacion As Integer, CveTipoGasto As Integer, TipoCalculo As Boolean, CveConceptoContable As Integer, EsRetencion As Boolean, CveClasificacion As Integer, CveTipoGasto As Integer, TipoCalculo As Boolean, CveConceptoContable As Integer,
AplicaFiniquito As Integer, AutomaticoGlobal As Integer, Especie As Integer, Imprimir As Integer, CveSATConcepto As Integer, AplicaFiniquito As Integer, AutomaticoGlobal As Integer, Especie As Integer, Imprimir As Integer, CveSATConcepto As Integer,
ctaImporteNegativoProv As Integer, contabiliza As Integer, CargoOAbono As Integer, cveConceptoContableB As Integer, CveCuentaB As Integer, ctaImporteNegativoProv As Integer, contabiliza As Integer, CargoOAbono As Integer, cveConceptoContableB As Integer, CveCuentaB As Integer,
CveConceptoContablePasivo As Integer, Optional AplicaEfectivale As Integer = 0, Optional EsFormula As Integer = -1) As Integer CveConceptoContablePasivo As Integer, Optional AplicaEfectivale As Integer = 0, Optional EsFormula As Integer = -1, Optional AplicaArt174 As Integer = 0) As Integer
Dim Retorno As Integer = -1 Dim Retorno As Integer = -1
DataAdapter("PA_Nom_ConceptosAdd") DataAdapter("PA_Nom_ConceptosAdd")
@@ -1544,6 +1544,7 @@ Public Class ClsNominas
.Add("CveCuentaB", SqlDbType.Int).Value = CveCuentaB .Add("CveCuentaB", SqlDbType.Int).Value = CveCuentaB
.Add("CveConceptoContablePasivo", SqlDbType.Int).Value = CveConceptoContablePasivo .Add("CveConceptoContablePasivo", SqlDbType.Int).Value = CveConceptoContablePasivo
.Add("AplicaEfectivale", SqlDbType.Int).Value = AplicaEfectivale .Add("AplicaEfectivale", SqlDbType.Int).Value = AplicaEfectivale
.Add("AplicaArt174", SqlDbType.Int).Value = AplicaArt174
End With End With
@@ -1571,7 +1572,7 @@ Public Class ClsNominas
EsRetencion As Boolean, CveClasificacion As Integer, CveTipoGasto As Integer, TipoCalculo As Boolean, CveConceptoContable As Integer, CveCuenta As Integer, AplicaFiniquito As Integer, EsRetencion As Boolean, CveClasificacion As Integer, CveTipoGasto As Integer, TipoCalculo As Boolean, CveConceptoContable As Integer, CveCuenta As Integer, AplicaFiniquito As Integer,
AutomaticoGlobal As Integer, Especie As Integer, Imprimir As Integer, CveSATConcepto As Integer, CveEmpresa As Integer, CveUsuario As Integer, AutomaticoGlobal As Integer, Especie As Integer, Imprimir As Integer, CveSATConcepto As Integer, CveEmpresa As Integer, CveUsuario As Integer,
ctaImporteNegativoProv As Integer, contabiliza As Integer, CargoOAbono As Integer, cveConceptoContableB As Integer, CveCuentaB As Integer, ctaImporteNegativoProv As Integer, contabiliza As Integer, CargoOAbono As Integer, cveConceptoContableB As Integer, CveCuentaB As Integer,
CveConceptoContablePasivo As Integer, Optional AplicaEfectivale As Integer = 0, Optional EsFormula As Integer = -1) As Boolean CveConceptoContablePasivo As Integer, Optional AplicaEfectivale As Integer = 0, Optional EsFormula As Integer = -1, Optional AplicaArt174 As Integer = 0) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
DataAdapter("PA_Nom_ConceptosUpdate") DataAdapter("PA_Nom_ConceptosUpdate")
@@ -1606,6 +1607,7 @@ Public Class ClsNominas
.Add("CveCuentaB", SqlDbType.Int).Value = CveCuentaB .Add("CveCuentaB", SqlDbType.Int).Value = CveCuentaB
.Add("CveConceptoContablePasivo", SqlDbType.Int).Value = CveConceptoContablePasivo .Add("CveConceptoContablePasivo", SqlDbType.Int).Value = CveConceptoContablePasivo
.Add("AplicaEfectivale", SqlDbType.Int).Value = AplicaEfectivale .Add("AplicaEfectivale", SqlDbType.Int).Value = AplicaEfectivale
.Add("AplicaArt174", SqlDbType.Int).Value = AplicaArt174
End With End With
Try Try

View File

@@ -1726,6 +1726,57 @@ Public Class ClsOC
Return Retorno Return Retorno
End Function End Function
Public Function GetOrdenesCompraCompradosRecibidosRep(Tipo As String, CveProyecto As Integer, CveSubProyecto As Integer, CveClasificacion As Integer, CveEstatus As Integer, FechaInicio As Date,
FechaFin As Date, CveOrdenCompra As Integer, CveProveedor As Integer, Folio As Integer, CveUsuarioRegistro As Integer, CveUsuario As Integer,
CveEmpresa As Integer, CvePS As Integer, Optional PendientePorSurtir As Boolean = False, Optional CveCliente As Integer = -1, Optional Guia As String = "-1",
Optional CveActivoFijo As Integer = -1, Optional SoloSubProyectosConPermiso As Boolean = False, Optional CveUsuarioAutorizo As Integer = -1,
Optional CveUsuarioAsignado As Integer = -1, Optional EntregaDirecta As Integer = -1, Optional TopSelect As Integer = 10000, Optional CveMoneda As Integer = -1,
Optional MetodoPago As Integer = -1, Optional Serie As String = "-1", Optional TieneAnticipo As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_OC_OrdenesCompraCompradosRecibidosRep")
With SqlAdapter.SelectCommand.Parameters
.Add("@Tipo", SqlDbType.VarChar).Value = Tipo
.Add("@CveProyecto", SqlDbType.Int).Value = CveProyecto
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
.Add("@CveEstatus", SqlDbType.Int).Value = CveEstatus
.Add("@FechaInicio", SqlDbType.Date).Value = FechaInicio
.Add("@FechaFin", SqlDbType.Date).Value = FechaFin
.Add("@CveOrdenCompra", SqlDbType.Int).Value = CveOrdenCompra
.Add("@CveUsuarioRegistro", SqlDbType.Int).Value = CveUsuarioRegistro
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@Folio", SqlDbType.Int).Value = Folio
.Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion
.Add("@CvePS", SqlDbType.Int).Value = CvePS
.Add("@CveCliente", SqlDbType.Int).Value = CveCliente
.Add("@PendientePorSurtir", SqlDbType.Bit).Value = PendientePorSurtir
.Add("@Guia", SqlDbType.VarChar).Value = Guia
.Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo
.Add("@SoloSubProyectosConPermiso", SqlDbType.Bit).Value = SoloSubProyectosConPermiso
.Add("@CveUsuarioAutorizo", SqlDbType.Int).Value = CveUsuarioAutorizo
.Add("@CveUsuarioAsignado", SqlDbType.Int).Value = CveUsuarioAsignado
.Add("@EntregaDirecta", SqlDbType.Int).Value = EntregaDirecta
.Add("@TopSelect", SqlDbType.Int).Value = TopSelect
.Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda
.Add("@MetodoPago", SqlDbType.Int).Value = MetodoPago
.Add("@Serie", SqlDbType.VarChar).Value = Serie
.Add("@TieneAnticipo", SqlDbType.Int).Value = TieneAnticipo
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener Ordenes de Compras Comprados Recividos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return Retorno
End Function
Public Function GetOrdenesCompraRepReqXOC(Folio As Integer, FechaInicio As String, FechaFin As String, CveProveedor As Integer, CveVendedor As Integer, CveCliente As Integer, CveEmpresa As Integer, Grupo As Integer) As Boolean Public Function GetOrdenesCompraRepReqXOC(Folio As Integer, FechaInicio As String, FechaFin As String, CveProveedor As Integer, CveVendedor As Integer, CveCliente As Integer, CveEmpresa As Integer, Grupo As Integer) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False

View File

@@ -308,10 +308,12 @@
<xs:element name="Acred16" msprop:Generator_ColumnPropNameInTable="Acred16Column" msprop:Generator_ColumnPropNameInRow="Acred16" msprop:Generator_UserColumnName="Acred16" msprop:Generator_ColumnVarNameInTable="columnAcred16" type="xs:decimal" minOccurs="0" /> <xs:element name="Acred16" msprop:Generator_ColumnPropNameInTable="Acred16Column" msprop:Generator_ColumnPropNameInRow="Acred16" msprop:Generator_UserColumnName="Acred16" msprop:Generator_ColumnVarNameInTable="columnAcred16" type="xs:decimal" minOccurs="0" />
<xs:element name="AcredFN" msprop:Generator_ColumnPropNameInTable="AcredFNColumn" msprop:Generator_ColumnPropNameInRow="AcredFN" msprop:Generator_UserColumnName="AcredFN" msprop:Generator_ColumnVarNameInTable="columnAcredFN" type="xs:decimal" minOccurs="0" /> <xs:element name="AcredFN" msprop:Generator_ColumnPropNameInTable="AcredFNColumn" msprop:Generator_ColumnPropNameInRow="AcredFN" msprop:Generator_UserColumnName="AcredFN" msprop:Generator_ColumnVarNameInTable="columnAcredFN" type="xs:decimal" minOccurs="0" />
<xs:element name="AcredImp16" msprop:Generator_ColumnPropNameInTable="AcredImp16Column" msprop:Generator_ColumnPropNameInRow="AcredImp16" msprop:Generator_UserColumnName="AcredImp16" msprop:Generator_ColumnVarNameInTable="columnAcredImp16" type="xs:decimal" minOccurs="0" /> <xs:element name="AcredImp16" msprop:Generator_ColumnPropNameInTable="AcredImp16Column" msprop:Generator_ColumnPropNameInRow="AcredImp16" msprop:Generator_UserColumnName="AcredImp16" msprop:Generator_ColumnVarNameInTable="columnAcredImp16" type="xs:decimal" minOccurs="0" />
<xs:element name="ActosImp16" msprop:Generator_UserColumnName="ActosImp16" msprop:Generator_ColumnPropNameInTable="ActosImp16Column" msprop:Generator_ColumnPropNameInRow="ActosImp16" msprop:Generator_ColumnVarNameInTable="columnActosImp16" type="xs:decimal" minOccurs="0" /> <xs:element name="ActosImp16" msprop:Generator_ColumnPropNameInTable="ActosImp16Column" msprop:Generator_ColumnPropNameInRow="ActosImp16" msprop:Generator_UserColumnName="ActosImp16" msprop:Generator_ColumnVarNameInTable="columnActosImp16" type="xs:decimal" minOccurs="0" />
<xs:element name="Actos16" msprop:Generator_UserColumnName="Actos16" msprop:Generator_ColumnPropNameInTable="Actos16Column" msprop:Generator_ColumnPropNameInRow="Actos16" msprop:Generator_ColumnVarNameInTable="columnActos16" type="xs:decimal" minOccurs="0" /> <xs:element name="Actos16" msprop:Generator_ColumnPropNameInTable="Actos16Column" msprop:Generator_ColumnPropNameInRow="Actos16" msprop:Generator_UserColumnName="Actos16" msprop:Generator_ColumnVarNameInTable="columnActos16" type="xs:decimal" minOccurs="0" />
<xs:element name="ActosNoDeducibles16" msprop:Generator_ColumnPropNameInRow="ActosNoDeducibles16" msprop:Generator_ColumnPropNameInTable="ActosNoDeducibles16Column" msprop:Generator_ColumnVarNameInTable="columnActosNoDeducibles16" msprop:Generator_UserColumnName="ActosNoDeducibles16" type="xs:decimal" minOccurs="0" /> <xs:element name="ActosNoDeducibles16" msprop:Generator_UserColumnName="ActosNoDeducibles16" msprop:Generator_ColumnPropNameInTable="ActosNoDeducibles16Column" msprop:Generator_ColumnPropNameInRow="ActosNoDeducibles16" msprop:Generator_ColumnVarNameInTable="columnActosNoDeducibles16" type="xs:decimal" minOccurs="0" />
<xs:element name="ActosNoDeduciblesFN" msprop:Generator_ColumnPropNameInRow="ActosNoDeduciblesFN" msprop:Generator_ColumnPropNameInTable="ActosNoDeduciblesFNColumn" msprop:Generator_ColumnVarNameInTable="columnActosNoDeduciblesFN" msprop:Generator_UserColumnName="ActosNoDeduciblesFN" type="xs:decimal" minOccurs="0" /> <xs:element name="ActosNoDeduciblesFN" msprop:Generator_UserColumnName="ActosNoDeduciblesFN" msprop:Generator_ColumnPropNameInTable="ActosNoDeduciblesFNColumn" msprop:Generator_ColumnPropNameInRow="ActosNoDeduciblesFN" msprop:Generator_ColumnVarNameInTable="columnActosNoDeduciblesFN" type="xs:decimal" minOccurs="0" />
<xs:element name="ActosFN" msprop:Generator_ColumnPropNameInRow="ActosFN" msprop:Generator_ColumnPropNameInTable="ActosFNColumn" msprop:Generator_ColumnVarNameInTable="columnActosFN" msprop:Generator_UserColumnName="ActosFN" type="xs:string" minOccurs="0" />
<xs:element name="ActosImpNotan16" msprop:Generator_ColumnPropNameInRow="ActosImpNotan16" msprop:Generator_ColumnPropNameInTable="ActosImpNotan16Column" msprop:Generator_ColumnVarNameInTable="columnActosImpNotan16" msprop:Generator_UserColumnName="ActosImpNotan16" type="xs:string" minOccurs="0" />
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>

View File

@@ -4,7 +4,7 @@
Changes to this file may cause incorrect behavior and will be lost if Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated. the code is regenerated.
</autogenerated>--> </autogenerated>-->
<DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="7" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout"> <DiagramLayout xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="120" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes> <Shapes>
<Shape ID="DesignTable:DataTable1" ZOrder="15" X="682" Y="54" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="139" /> <Shape ID="DesignTable:DataTable1" ZOrder="15" X="682" Y="54" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="139" />
<Shape ID="DesignTable:VentaUtilidadDetalle" ZOrder="14" X="679" Y="199" Height="257" Width="187" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" /> <Shape ID="DesignTable:VentaUtilidadDetalle" ZOrder="14" X="679" Y="199" Height="257" Width="187" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />

View File

@@ -271,6 +271,11 @@ Partial Class Bancos_DepositosCaja
TotalImporte = TotalImporte - TxtComisionIntermediario.Text.ToDecimal - IVA TotalImporte = TotalImporte - TxtComisionIntermediario.Text.ToDecimal - IVA
End If End If
'SI NO SE ESPECIFICO POR FACTURA PROBAR POR LOS OTROS MEDIOS
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso TotalImportePrePoliza = 0 Then
TotalImportePrePoliza = TotalImporte
End If
If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso TotalImportePrePoliza = 0 Then If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso TotalImportePrePoliza = 0 Then
Alert("No se ha especificado un importe a depositar.", TipoMensaje.MsgAdvertencia) Alert("No se ha especificado un importe a depositar.", TipoMensaje.MsgAdvertencia)
Exit Sub Exit Sub

View File

@@ -554,6 +554,7 @@ Partial Class Contabilidad_RepBalanceGeneral
End Sub End Sub
Protected Sub GvPatrimonio_RowDataBound(sender As Object, e As GridViewRowEventArgs) Protected Sub GvPatrimonio_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DBCampo("CtaMayor").ToString.ToEntero < 0 Then If e.Row.DBCampo("CtaMayor").ToString.ToEntero < 0 Then
TotalPatrimonioActual += e.Row.DBCampo("ImporteActual").ToString.ToDouble TotalPatrimonioActual += e.Row.DBCampo("ImporteActual").ToString.ToDouble
@@ -585,6 +586,7 @@ Partial Class Contabilidad_RepBalanceGeneral
End If End If
End If End If
End Sub End Sub
#End Region #End Region

View File

@@ -165,8 +165,8 @@ Partial Class AC_RepEstadoActividades
End Sub End Sub
Private Sub CargaGrids() Private Sub CargaGrids()
DtIngresos = DtDatos.FiltraParametros("Tipo ='H' ") DtIngresos = DtDatos.FiltraParametros("(Tipo ='H' OR Codigo like '4020%') AND NOT(Codigo like '5030%' OR Codigo like '7020%') ")
DtGastos = DtDatos.FiltraParametros("Tipo ='G' ") DtGastos = DtDatos.FiltraParametros("(Tipo ='G' AND Codigo NOT like '4020%') OR (Codigo like '5030%' OR Codigo like '7020%') ")
Dim Row As DataRow = DtIngresos.NewRow Dim Row As DataRow = DtIngresos.NewRow

View File

@@ -2,7 +2,6 @@
Option Strict On Option Strict On
Imports System.Data Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms Imports Microsoft.Reporting.WebForms
Partial Class Contabilidad2_RepEstadoResultados Partial Class Contabilidad2_RepEstadoResultados
Inherits ClsPaginas Inherits ClsPaginas
@@ -192,8 +191,8 @@ Partial Class Contabilidad2_RepEstadoResultados
End Sub End Sub
Private Sub CargaGrids() Private Sub CargaGrids()
DtIngresos = DtDatos.FiltraParametros("Orden Like '0004%' OR Tipo = 'H'") DtIngresos = DtDatos.FiltraParametros("Orden Like '0004%' OR Tipo = 'H' OR Codigo like '4020%' ")
DtGastos = DtDatos.FiltraParametros("Orden Like '0005%' OR Tipo = 'G'") DtGastos = DtDatos.FiltraParametros("Orden Like '0005%' OR Tipo = 'G' OR (Codigo like '5030%' OR Codigo like '7020%') ")
Dim Row As DataRow = DtIngresos.NewRow Dim Row As DataRow = DtIngresos.NewRow

View File

@@ -813,6 +813,16 @@
/*---------------------------------------- /*----------------------------------------
ANCHO DE COLUMNAS DE IMPORTES (AÑO, MES, ETC) ANCHO DE COLUMNAS DE IMPORTES (AÑO, MES, ETC)
-----------------------------------------*/ -----------------------------------------*/
/* Ancho libre para primeras columnas (Sucursal, Vendedor, etc.) */
.custom-grid td:first-child,
.custom-grid th:first-child {
width: auto !important;
min-width: auto !important;
max-width: none !important;
}
.custom-grid td:nth-child(2), .custom-grid td:nth-child(2),
.custom-grid td:nth-child(3), .custom-grid td:nth-child(3),
.custom-grid td:nth-child(4), .custom-grid td:nth-child(4),
@@ -830,7 +840,6 @@
.custom-grid th:nth-child(4), .custom-grid th:nth-child(4),
.custom-grid th:nth-child(5) { .custom-grid th:nth-child(5) {
text-align: center !important; text-align: center !important;
} }
/* Asegurar ancho libre para primera columna */ /* Asegurar ancho libre para primera columna */

View File

@@ -441,6 +441,10 @@
<div class="col-md-3"> <div class="col-md-3">
<asp:CheckBox ID="ChkEsFormula" CssClass="chksino" Text=" " runat="server" /> <asp:CheckBox ID="ChkEsFormula" CssClass="chksino" Text=" " runat="server" />
</div> </div>
<label class="col-md-3 truncate ">Aplica Art. 174:</label>
<div class="col-md-3">
<asp:CheckBox ID="chkAplicaArt174" AutoPostBack="true" OnCheckedChanged="chkAplicaArt174_CheckedChanged" CssClass="chksino" Text=" " runat="server" />
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -370,6 +370,8 @@ public partial class Nomina_CatConcepto : ClsPaginas
int IdCtaContableB = (DdlCtaContableB.DataValueField == "Id" ? DdlCtaContableB.SelectedValue.ToEntero() : 0); int IdCtaContableB = (DdlCtaContableB.DataValueField == "Id" ? DdlCtaContableB.SelectedValue.ToEntero() : 0);
int CveCuentaB = (DdlCtaContableB.DataValueField == "Id" ? 0 : DdlCtaContableB.SelectedValue.ToEntero()); int CveCuentaB = (DdlCtaContableB.DataValueField == "Id" ? 0 : DdlCtaContableB.SelectedValue.ToEntero());
int AplicaEfectivale = chkAplicaEfectivale.Checked ? 1 : 0; int AplicaEfectivale = chkAplicaEfectivale.Checked ? 1 : 0;
int AplicaArt174 = chkAplicaArt174.Checked ? 1 : 0;
int EsFormula = ChkEsFormula.Checked ? 1 : 0; int EsFormula = ChkEsFormula.Checked ? 1 : 0;
ClsNominas ObjNomina = new ClsNominas(); ClsNominas ObjNomina = new ClsNominas();
ObjNomina.IniciaTransacSQL(); ObjNomina.IniciaTransacSQL();
@@ -380,7 +382,7 @@ public partial class Nomina_CatConcepto : ClsPaginas
{ {
TieneError = !ObjNomina.UpdateConcepto(codigo, concepto, tipo, formula, sistema, estado, CveConceptoPadre, CveConcepto, retencion, CveClasificacion, CveTipoGasto, TieneError = !ObjNomina.UpdateConcepto(codigo, concepto, tipo, formula, sistema, estado, CveConceptoPadre, CveConcepto, retencion, CveClasificacion, CveTipoGasto,
tipoCalculo, CveConceptoContable, CveCuenta, AplicaFiniquito, AutomaticoGlobal, Especie, Imprimir, CveSATConcepto, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario, tipoCalculo, CveConceptoContable, CveCuenta, AplicaFiniquito, AutomaticoGlobal, Especie, Imprimir, CveSATConcepto, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario,
ctaImporteNegativoProv, contabiliza, CargoOAbono, cveConceptoContableB, CveCuentaB, CveConceptoContablePasivo, AplicaEfectivale, EsFormula); ctaImporteNegativoProv, contabiliza, CargoOAbono, cveConceptoContableB, CveCuentaB, CveConceptoContablePasivo, AplicaEfectivale, EsFormula, AplicaArt174);
if (!TieneError) if (!TieneError)
{ {
@@ -412,7 +414,7 @@ public partial class Nomina_CatConcepto : ClsPaginas
{ {
CveConcepto = ObjNomina.AddConcepto(codigo, concepto, tipo, formula, sistema, estado, CveConceptoPadre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveConcepto = ObjNomina.AddConcepto(codigo, concepto, tipo, formula, sistema, estado, CveConceptoPadre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
retencion, CveClasificacion, CveTipoGasto, tipoCalculo, CveConceptoContable, AplicaFiniquito, AutomaticoGlobal, Especie, Imprimir, CveSATConcepto, retencion, CveClasificacion, CveTipoGasto, tipoCalculo, CveConceptoContable, AplicaFiniquito, AutomaticoGlobal, Especie, Imprimir, CveSATConcepto,
ctaImporteNegativoProv, contabiliza, CargoOAbono, cveConceptoContableB, CveCuentaB, CveConceptoContablePasivo, AplicaEfectivale, EsFormula); ctaImporteNegativoProv, contabiliza, CargoOAbono, cveConceptoContableB, CveCuentaB, CveConceptoContablePasivo, AplicaEfectivale, EsFormula, AplicaArt174);
@@ -513,6 +515,7 @@ public partial class Nomina_CatConcepto : ClsPaginas
ChkSistema.Checked = drow["Sistema"].Equals("Sí"); ChkSistema.Checked = drow["Sistema"].Equals("Sí");
ChkAutomaticoLiquidacion.Checked = drow["AplicaFiniquito"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" }); ChkAutomaticoLiquidacion.Checked = drow["AplicaFiniquito"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" });
chkAplicaEfectivale.Checked = drow["AplicaEfectivale"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" }); chkAplicaEfectivale.Checked = drow["AplicaEfectivale"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" });
chkAplicaArt174.Checked = drow["AplicaArt174"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" });
ChkContabiliza.Checked = drow["Contabiliza"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" }); ChkContabiliza.Checked = drow["Contabiliza"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" });
chkCtaImporteNegativoProv.Checked = drow["CtaImporteNegativoProv"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" }); chkCtaImporteNegativoProv.Checked = drow["CtaImporteNegativoProv"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" });
ChkAutomaticoGlobal.Checked = drow["AutomaticoGlobal"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" }); ChkAutomaticoGlobal.Checked = drow["AutomaticoGlobal"].ToString().ToUpper().Contiene(new string[] { "1", "TRUE" });
@@ -686,5 +689,9 @@ public partial class Nomina_CatConcepto : ClsPaginas
protected void chkAplicaEfectivale_CheckedChanged(object sender, EventArgs e) protected void chkAplicaEfectivale_CheckedChanged(object sender, EventArgs e)
{ {
}
protected void chkAplicaArt174_CheckedChanged(object sender, EventArgs e)
{
} }
} }

View File

@@ -588,7 +588,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
DdlTipoPeriodo.SelectedIndex = 0; DdlTipoPeriodo.SelectedIndex = 0;
} }
} }
private void cargaPeriodos(int tipo =0) private void cargaPeriodos(int tipo = 0)
{ {
int tipoPeriodo = DdlTipoPeriodo.SelectedValue.ToEntero(); int tipoPeriodo = DdlTipoPeriodo.SelectedValue.ToEntero();
int ejercicio = DdlEjercicios.SelectedValue.ToEntero(); int ejercicio = DdlEjercicios.SelectedValue.ToEntero();
@@ -611,7 +611,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
DdlPeriodo.DataSource = dtPeriodos; DdlPeriodo.DataSource = dtPeriodos;
DdlPeriodo.DataBind(); DdlPeriodo.DataBind();
DdlPeriodo.Items.Insert(0, new ListItem("Seleccione", "-1")); DdlPeriodo.Items.Insert(0, new ListItem("Seleccione", "-1"));
if(tipo==1 && dtPeriodos.Rows.Count > 0) if (tipo == 1 && dtPeriodos.Rows.Count > 0)
{ {
DdlPeriodo.SelectedValue = dtPeriodos.Rows[0]["CvePeriodo"].ToString(); DdlPeriodo.SelectedValue = dtPeriodos.Rows[0]["CvePeriodo"].ToString();
} }
@@ -4947,6 +4947,10 @@ public partial class Nomina_Nomina2 : ClsPaginas
} }
#endregion #endregion
const string COL_SUELDO_MENSUAL = "Sueldo Mensual";
const string COL_SUELDO_DIARIO = "Sueldo diario";
const string COL_DIAS_PEN_PAGO = "Dias Pen Pago";
const string INCAPACIDAD_PERM_FALTAS = "Incapacidad Permisos Faltas";
protected void LnkPersonalizarNomina_Click(object sender, EventArgs e) protected void LnkPersonalizarNomina_Click(object sender, EventArgs e)
{ {
@@ -4960,9 +4964,9 @@ public partial class Nomina_Nomina2 : ClsPaginas
{ {
addcoltopersonalizar("Codigo", "0", "Codigo", ""); addcoltopersonalizar("Codigo", "0", "Codigo", "");
addcoltopersonalizar("Nombre", "0", "Empleado", ""); addcoltopersonalizar("Nombre", "0", "Empleado", "");
addcoltopersonalizar("Sueldo Mensual", "0", "", ""); addcoltopersonalizar(COL_SUELDO_MENSUAL, "0", "0", "");
addcoltopersonalizar("Sueldo diario", "0", "", ""); addcoltopersonalizar(COL_SUELDO_DIARIO, "0", "0", "");
addcoltopersonalizar("Dias Pen Pago", "0", "", ""); //addcoltopersonalizar(COL_DIAS_PEN_PAGO, "0", "0", "");
int pos = 4; int pos = 4;
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo ='P' ").Rows) foreach (DataRow row in dtConceptos.FiltraParametros("Tipo ='P' ").Rows)
@@ -4975,7 +4979,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
} }
//addcoltopersonalizar("Percepciones", "1", "Percepciones", ""); //addcoltopersonalizar("Percepciones", "1", "Percepciones", "");
addcoltopersonalizar("Incapacidad Permisos Faltas", "0", "", ""); addcoltopersonalizar(INCAPACIDAD_PERM_FALTAS, "0", "0", "");
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 AND EsFormula =0").Rows)// foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'D' AND EsPadre = 1 AND EsFormula =0").Rows)//
@@ -5127,11 +5131,20 @@ public partial class Nomina_Nomina2 : ClsPaginas
ClosedXML.Excel.XLColor colororange = ClosedXML.Excel.XLColor.FromArgb(247, 150, 70); ClosedXML.Excel.XLColor colororange = ClosedXML.Excel.XLColor.FromArgb(247, 150, 70);
ClosedXML.Excel.XLColor colororangeblue = ClosedXML.Excel.XLColor.FromArgb(79, 129, 189); ClosedXML.Excel.XLColor colororangeblue = ClosedXML.Excel.XLColor.FromArgb(79, 129, 189);
ClosedXML.Excel.IXLCell celda; ClosedXML.Excel.IXLCell celda;
DataRow dtzrow = this.dtConceptos.FiltroPrimero("Codigo='D200'");
string conceptoincpermfaltas = "";
if (dtzrow != null)
{
conceptoincpermfaltas = string.Format("V_{0}", dtzrow["CveConcepto"]);
}
DataTable dtConceptos = this.dtConceptos.FiltraParametros(""); DataTable dtConceptos = this.dtConceptos.FiltraParametros("");
DataTable dtFiltrado = dtConceptos.Clone(); // Clonar la estructura del DataTable DataTable dtFiltrado = dtConceptos.Clone(); // Clonar la estructura del DataTable
bool colSueldoMensual = false; bool colSueldoMensual = false;
bool colSueldoDiario = false; bool colSueldoDiario = false;
bool coDiasPenPagol = false; bool coDiasPenPagol = false;
bool coIncPermFaltas = false;
foreach (GridViewRow row in GvPersonalizarExcel.Rows) foreach (GridViewRow row in GvPersonalizarExcel.Rows)
{ {
@@ -5139,9 +5152,11 @@ public partial class Nomina_Nomina2 : ClsPaginas
string columnaDB = row.DataKey("ColumnaDB").Replace("[", "").Replace("]", ""); // Suponiendo que la columna "ColumnaDB" está en la segunda celda (index 1) string columnaDB = row.DataKey("ColumnaDB").Replace("[", "").Replace("]", ""); // Suponiendo que la columna "ColumnaDB" está en la segunda celda (index 1)
if (columnaDB == "0") if (columnaDB == "0")
{ {
if (columna == "Sueldo Mensual") { colSueldoMensual = true; } if (columna == COL_SUELDO_MENSUAL) { colSueldoMensual = true; }
if (columna == "Sueldo diario") { colSueldoDiario = true; } if (columna == COL_SUELDO_DIARIO) { colSueldoDiario = true; }
if (columna == "Dias Pen Pago") { coDiasPenPagol = true; } if (columna == COL_DIAS_PEN_PAGO) { coDiasPenPagol = true; }
if (columna == INCAPACIDAD_PERM_FALTAS) { coIncPermFaltas = true; }
} }
string tipoDB = row.DataKey("TipoDB"); // Suponiendo que la columna "TipoDB" está en la cuarta celda (index 3) string tipoDB = row.DataKey("TipoDB"); // Suponiendo que la columna "TipoDB" está en la cuarta celda (index 3)
@@ -5194,7 +5209,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
Titlecell(libro, "", filainicio + 4, column, true, true, PercborderColor); Titlecell(libro, "", filainicio + 4, column, true, true, PercborderColor);
libro.Column(column).Width = 15; libro.Column(column).Width = 15;
} }
if (colSueldoDiario) if (coDiasPenPagol)
{ {
column++; column++;
Titlecell(libro, "dias Pen", filainicio + 2, column, true, false, PercborderColor); Titlecell(libro, "dias Pen", filainicio + 2, column, true, false, PercborderColor);
@@ -5237,10 +5252,13 @@ public partial class Nomina_Nomina2 : ClsPaginas
iniciotipe = column; iniciotipe = column;
int finPercepciones = iniciotipe; int finPercepciones = iniciotipe;
if (coIncPermFaltas)
{
column++; column++;
TitleRange(libro, "Incapacidad", filainicio + 2, column, filainicio + 2, column, false, false, PercborderColor); TitleRange(libro, "Incapacidad", filainicio + 2, column, filainicio + 2, column, false, false, PercborderColor);
TitleRange(libro, "Perm. Faltas", filainicio + 3, column, filainicio + 3, column, false, false, PercborderColor); TitleRange(libro, "Perm. Faltas", filainicio + 3, column, filainicio + 3, column, false, false, PercborderColor);
}
//column++; //column++;
//TitleRange(libro, "Permisos", filainicio + 3, column, filainicio + 3, column, false, false, colororangeblue); //TitleRange(libro, "Permisos", filainicio + 3, column, filainicio + 3, column, false, false, colororangeblue);
@@ -5393,30 +5411,30 @@ public partial class Nomina_Nomina2 : ClsPaginas
oldsubproyecto = subproyecto; oldsubproyecto = subproyecto;
libro.Cell(Fila, column).Value = erow["Nombre"]; libro.Cell(Fila, column).Value = erow["Nombre"];
if (colSueldoMensual) if (colSueldoMensual)
{
column++;
libro.Cell(Fila, column).Value = "";
try
{ {
libro.Cell(Fila, column).Value = erow[string.Format("V_{0}", 6817)]; column++;
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\""; libro.Cell(Fila, column).Value = "";
try
{
libro.Cell(Fila, column).Value = erow[string.Format("V_{0}", 6817)];
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\"";
}
catch (Exception) { }
} }
catch (Exception) { } if (colSueldoDiario)
} {
if (colSueldoDiario)
{
column++; column++;
libro.Cell(Fila, column).Value = erow["SalarioDiario"]; libro.Cell(Fila, column).Value = erow["SalarioDiario"];
libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\""; libro.Cell(Fila, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;\"\"";
} }
if (coDiasPenPagol) if (coDiasPenPagol)
{ {
column++; column++;
libro.Cell(Fila, column).Value = ""; libro.Cell(Fila, column).Value = "";
} }
if (dtConceptos.FiltraParametros("Tipo ='P'").Rows.Count > 0) if (dtConceptos.FiltraParametros("Tipo ='P'").Rows.Count > 0)
{ {
foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'P' ").Rows) foreach (DataRow row in dtConceptos.FiltraParametros("Tipo = 'P' ").Rows)
{ {
@@ -5453,10 +5471,28 @@ public partial class Nomina_Nomina2 : ClsPaginas
} }
//column++; if (coIncPermFaltas)
//Titlecell(libro, erow["DiasIncapacidad"], Fila, column, false, false, dedcborderColor); {
column++;
Titlecell(libro, "", Fila, column, false, false, PercborderColor); column++;
string valuex = "";
if (conceptoincpermfaltas.Length > 0)
{
valuex = erow[conceptoincpermfaltas].ToString();
if (newsubproyecto)
{
string valuez = dtempleados.SUM(conceptoincpermfaltas, string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto)).ToString();
libro.Cell(Fila - 2, column).Style.Fill.SetBackgroundColor(colorperp);
Titlecell(libro, "", Fila - 2, column, false, false, PercborderColor);
libro.Cell(Fila - 3, column).Style.Fill.SetBackgroundColor(colorperp);
libro.Cell(Fila - 3, column).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Cell(Fila - 3, column).Style.NumberFormat.Format = "#,##0.00;-#,##0.00;";
Titlecell(libro, valuez, Fila - 3, column, true, true, PercborderColor);
//libro.Cell(Fila - 3, column).Value = dtempleados.SUM("SumaPercepciones", string.Format("CveSubProyecto ={0} AND CvePersonal > 0 ", oldcveSupProyecto));
}
}
Titlecell(libro, valuex, Fila, column, false, false, PercborderColor);
}
//column++; //column++;
//Titlecell(libro, erow["DiasFaltados"], Fila, column, false, false, dedcborderColor); //Titlecell(libro, erow["DiasFaltados"], Fila, column, false, false, dedcborderColor);

Binary file not shown.

View File

@@ -294,6 +294,12 @@
<asp:UpdatePanel ID="UpBusqueda" runat="server" UpdateMode="Conditional"> <asp:UpdatePanel ID="UpBusqueda" runat="server" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<div class="row" style="display:flex; justify-content:flex-end; padding-bottom: 12px; padding-right: 15px;"> <div class="row" style="display:flex; justify-content:flex-end; padding-bottom: 12px; padding-right: 15px;">
<asp:UpdatePanel class="col-md-4" style="max-width: 300px;" ID="UPPIndicadorCompradoRecibido" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div id="DivIndicadoresCompradoRecibido" align="Right" runat="server" visible="false" style="max-width:300px!important">
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel class="col-md-4" style="min-width: 450px;" ID="UPPIndicador" UpdateMode="Conditional" runat="server"> <asp:UpdatePanel class="col-md-4" style="min-width: 450px;" ID="UPPIndicador" UpdateMode="Conditional" runat="server">
<ContentTemplate> <ContentTemplate>

View File

@@ -398,6 +398,7 @@ Partial Class RepOC
If UsuarioActual.TienePermisoProceso(227) Then If UsuarioActual.TienePermisoProceso(227) Then
DivIndicadores.Visible = True DivIndicadores.Visible = True
DivIndicadores.InnerHtml = String.Empty DivIndicadores.InnerHtml = String.Empty
Dim Cantidad As Integer = DtOC.COUNT("CveOrdenCompra") Dim Cantidad As Integer = DtOC.COUNT("CveOrdenCompra")
Dim TotalPesos As Double = DtOC.SUM("Total", "CveMoneda = 1") Dim TotalPesos As Double = DtOC.SUM("Total", "CveMoneda = 1")
Dim TotalDolares As Double = DtOC.SUM("Total", "CveMoneda = 2") Dim TotalDolares As Double = DtOC.SUM("Total", "CveMoneda = 2")
@@ -405,6 +406,7 @@ Partial Class RepOC
MuestraIndicador(DivIndicadores, "green-haze", "fa fa-money", "Órdenes de Compra", Cantidad.ToString, "Cantidad", "$" + Total.FormatoNumero, "Total", "$" + TotalPesos.FormatoNumero, "Pesos", "$" + TotalDolares.FormatoNumero, "Dólares") MuestraIndicador(DivIndicadores, "green-haze", "fa fa-money", "Órdenes de Compra", Cantidad.ToString, "Cantidad", "$" + Total.FormatoNumero, "Total", "$" + TotalPesos.FormatoNumero, "Pesos", "$" + TotalDolares.FormatoNumero, "Dólares")
UPPIndicador.Update() UPPIndicador.Update()
End If End If
If DtOC IsNot Nothing AndAlso DtOC.Rows.Count > 0 Then If DtOC IsNot Nothing AndAlso DtOC.Rows.Count > 0 Then
@@ -432,6 +434,37 @@ Partial Class RepOC
GvConsultar.Columns(15).Visible = False GvConsultar.Columns(15).Visible = False
End If End If
If UsuarioActual.TienePermisoProceso(227) And UsuarioActual.CveRol = 1 Then
DivIndicadoresCompradoRecibido.Visible = True
DivIndicadoresCompradoRecibido.InnerHtml = String.Empty
If OC.GetOrdenesCompraCompradosRecibidosRep(DdlTipo.SelectedValue.ToString, DdlProyectos.SelectedValue.ToEntero, DdlSubProyectos.SelectedValue.ToEntero, DDlClasificacion.SelectedValue.ToEntero,
DdlEstatus.SelectedValue.ToEntero, FI, FF, -1, DdlProveedores.SelectedValue.ToEntero, If(txtFolio.Text.ToEntero = 0, -1, txtFolio.Text.ToEntero), ddlUsuario.SelectedValue.ToEntero,
UsuarioActual.CveUsuario, UsuarioActual.Empresa.CveEmpresa, If(DDlPS.SelectedValue = "", -1, DDlPS.SelectedValue.ToEntero), False,
ddlclientes.SelectedValue.ToEntero, CveActivoFijo:=DdlActivoFijo.SelectedValue.ToEntero, SoloSubProyectosConPermiso:=If(UsuarioActual.Empresa.Funcionalidad(530) = "1", True, False),
CveUsuarioAutorizo:=DdlUsuarioAutorizo.SelectedValue.ToEntero(), CveUsuarioAsignado:=DdlUsuarioAsignado.SelectedValue.ToEntero(), EntregaDirecta:=DdlEntregaDirecta.SelectedValue.ToEntero(),
CveMoneda:=DdlMoneda.SelectedValue.ToEntero(), MetodoPago:=DdlMetodoPago.SelectedValue.ToEntero, TieneAnticipo:=DdlTieneAnticipo.SelectedValue.ToEntero) Then
Dim Recibidos As Decimal = 0D
Dim Comprados As Decimal = 0D
If OC.DtResultados.Rows.Count > 0 Then
Recibidos = OC.DtResultados.Rows(0)("Comprado").ToString.ToDecimal
Comprados = OC.DtResultados.Rows(0)("Recibido").ToString.ToDecimal
End If
MuestraIndicadorCompradoRecibido(DivIndicadoresCompradoRecibido, "blue", "fa fa-truck", "Almacén", Recibidos.ToString("###,###,###.00"), "Comprados", "", "Recibidos", Comprados.ToString("###,###,###.00"), "")
End If
UPPIndicadorCompradoRecibido.Update()
End If
End If End If
OC.Dispose() OC.Dispose()
GvConsultar.DataBind() GvConsultar.DataBind()
@@ -638,6 +671,7 @@ Partial Class RepOC
#End Region #End Region
#Region "Indicadores" #Region "Indicadores"
Private Sub MuestraIndicador(DIV As HtmlGenericControl, Color As String, Icono As String, Titulo As String, C1 As String, CT1 As String, C2 As String, CT2 As String, C3 As String, CT3 As String, C4 As String, CT4 As String) Private Sub MuestraIndicador(DIV As HtmlGenericControl, Color As String, Icono As String, Titulo As String, C1 As String, CT1 As String, C2 As String, CT2 As String, C3 As String, CT3 As String, C4 As String, CT4 As String)
Dim htmldiv As New StringBuilder Dim htmldiv As New StringBuilder
htmldiv.AppendFormat("{0}<div class='dashboard-stat {1}'><div class='visual'><i class='{2}' '=''></i></div>", DIV.InnerHtml, Color, Icono) htmldiv.AppendFormat("{0}<div class='dashboard-stat {1}'><div class='visual'><i class='{2}' '=''></i></div>", DIV.InnerHtml, Color, Icono)
@@ -648,6 +682,24 @@ Partial Class RepOC
htmldiv.AppendFormat("</div></div></div>") htmldiv.AppendFormat("</div></div></div>")
DIV.InnerHtml = htmldiv.ToString DIV.InnerHtml = htmldiv.ToString
End Sub End Sub
Private Sub MuestraIndicadorCompradoRecibido(DIV As HtmlGenericControl, Color As String, Icono As String, Titulo As String, C1 As String, CT1 As String, C2 As String, CT2 As String, C3 As String, CT3 As String)
Dim htmldiv As New StringBuilder
htmldiv.AppendFormat("{0}<div class='dashboard-stat {1}'><div class='visual'><i class='{2}' '=''></i></div>", DIV.InnerHtml, Color, Icono)
htmldiv.AppendFormat("<div class='details'><div class='number'>{0}</div><div class='desc'>", Titulo)
htmldiv.AppendFormat("<label class='indicadortipo4 col-md-6 tooltips' data-original-title='{0}'>{1}</label>", "", "")
htmldiv.AppendFormat("<label class='indicadortipo4 col-md-6 tooltips' data-original-title='{0}'>{1}</label>", CT1, C1)
htmldiv.AppendFormat("<label class='indicadortipo4 col-md-6 tooltips' data-original-title='{0}'>{1}</label>", "", "")
htmldiv.AppendFormat("<label class='indicadortipo4 col-md-6 tooltips' data-original-title='{0}'>{1}</label>", CT2, C2)
htmldiv.AppendFormat("<label class='indicadortipo4 col-md-6 tooltips' data-original-title='{0}'>{1}</label>", "", "")
htmldiv.AppendFormat("<label class='indicadortipo4 col-md-6 tooltips' data-original-title='{0}'>{1}</label>", CT3, C3)
'htmldiv.AppendFormat("<label class='indicadortipo4 col-md-6 tooltips' data-original-title='{0}'>{1}</label>", CT4, C4)
htmldiv.AppendFormat("</div></div></div>")
DIV.InnerHtml = htmldiv.ToString
End Sub
#End Region #End Region
End Class End Class

View File

@@ -309,6 +309,19 @@
background: #f8f9fa; background: #f8f9fa;
cursor: pointer; cursor: pointer;
} }
/* Alinear celda y contenido a la derecha */
.celda-derecha {
text-align: right !important;
}
.txt-merma {
/* Ancho reducido al 50% */
margin-left: 30px !important; /* Mueve el TextBox a la derecha dentro de la celda */
display: block !important; /* Permite que margin-left:auto funcione */
/* Alinea el texto interno a la derecha */
}
</style> </style>
</asp:Content> </asp:Content>
@@ -338,7 +351,7 @@
<div class="labeltruncate labeltext labelbold"> <div class="labeltruncate labeltext labelbold">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group form-md-line-input input-iconright"> <div class="form-group">
<label for="<%= DdlClientes.ClientID.ToString()%>">Cliente</label> <label for="<%= DdlClientes.ClientID.ToString()%>">Cliente</label>
<ADS:Dropdownlost ID="DdlClientes" runat="server" <ADS:Dropdownlost ID="DdlClientes" runat="server"
CssClassDdl="form-control" DataTextField="NombreComercial" CssClassDdl="form-control" DataTextField="NombreComercial"
@@ -346,84 +359,81 @@
DataValueField="CveCliente" Enabled="false" /> DataValueField="CveCliente" Enabled="false" />
</div> </div>
</div> </div>
</div>
<!-- Centro de Costo --> <!-- Columna Fecha-->
<div class="portlet-body form"> <div class="col-md-3">
<div class="labeltruncate labeltext labelbold">
<div class="row">
<div class="col-md-16">
<div class="form-group form-md-line-input input-iconright">
<asp:Label ID="LblProyecto" runat="server">
<label>Proyecto:</label>
</asp:Label>
<div runat="server" id="DivProyecto">
<asp:DropDownList ID="DdlProyecto" runat="server" AutoPostBack="true" AppendDataBoundItems="true" DataTextField="Proyecto" DataValueField="CveProyecto" Class="form-control select2me" Style="width: 100%;"></asp:DropDownList>
</div>
<asp:Label ID="LblSubProyecto" runat="server" class="col-md-2">
<label>Subproyecto:</label>
</asp:Label>
<div runat="server" id="DivSubProyecto" class="col-md-4">
<asp:DropDownList ID="DdlSubProyecto" runat="server" AppendDataBoundItems="true" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Class="form-control select2me" Style="width: 100%;"></asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Descripción -->
<div class="row">
<div class="col-md-10">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtDescripcion" runat="server"
CssClass="form-control"
Style="width: 95%; height: 40px;"
ValidationGroup="GrpGuardar"
TextMode="MultiLine"
Rows="2"
MaxLength="1000" />
<asp:RequiredFieldValidator ID="RFVDescripcion" runat="server"
ControlToValidate="TxtDescripcion"
ErrorMessage="Descripción requerida"
Display="None"
CssClass="text-danger"
ValidationGroup="GrpGuardar" />
<label for="<%= TxtDescripcion.ClientID.ToString()%>">Descripcion</label>
</div>
</div>
</div>
<!-- Fecha -->
<div class="form-section">
<div class="row">
<div class="form-group"> <div class="form-group">
<div class="col-md-1"> <label>Fecha</label>
<label class="mb-0">Fecha</label>
<div class="input-group input-sm input-small date date-picker" style="height: 30px;" data-date-format="dd/mm/yyyy">
<asp:TextBox ID="Txtfecha" runat="server"
CssClass="form-control"
style="margin-top: -6px;"
Width="100%"
CausesValidation="true"
MaxLength="10"></asp:TextBox>
<span class="input-group-btn">
<asp:LinkButton ID="imgCalendarioF" class="btn default " style="margin-top: -11px; height: 29px;" Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div> </div>
<div class="col-md-2"> <ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="Txtfecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 100px !important; padding: 0px;"> <ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="Txtfecha" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:TextBox Width="80px" ID="Txtfecha" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox> <asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="Txtfecha" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<span class="input-group-btn "> <asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="Txtfecha" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton> <ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</span> <ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
</div>
<!-- Centro de Costo -->
<div class="portlet-body form" style="margin-top: -15px;">
<div class="labeltruncate labeltext labelbold">
<div class="row">
<div class="col-md-16">
<div class="form-group">
<asp:Label ID="LblProyecto" runat="server">
<label>Proyecto:</label>
</asp:Label>
<div runat="server" id="DivProyecto">
<asp:DropDownList ID="DdlProyecto" runat="server" AutoPostBack="true" AppendDataBoundItems="true" DataTextField="Proyecto" DataValueField="CveProyecto" Class="form-control select2me" Style="width: 100%;"></asp:DropDownList>
</div>
<asp:Label ID="LblSubProyecto" runat="server" class="col-md-2">
<label>Subproyecto:</label>
</asp:Label>
<div runat="server" id="DivSubProyecto" class="col-md-4">
<asp:DropDownList ID="DdlSubProyecto" runat="server" AppendDataBoundItems="true" DataTextField="SubProyecto" DataValueField="CveSubProyecto" Class="form-control select2me" Style="width: 100%;"></asp:DropDownList>
</div> </div>
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="Txtfecha" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="Txtfecha" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="Txtfecha" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="Txtfecha" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- Descripción -->
<div class="row">
<div class="col-md-10">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtDescripcion" runat="server"
CssClass="form-control"
Style="width: 95%; height: 40px;"
ValidationGroup="GrpGuardar"
TextMode="MultiLine"
Rows="2"
MaxLength="1000" />
<asp:RequiredFieldValidator ID="RFVDescripcion" runat="server"
ControlToValidate="TxtDescripcion"
ErrorMessage="Descripción requerida"
Display="None"
CssClass="text-danger"
ValidationGroup="GrpGuardar" />
<label for="<%= TxtDescripcion.ClientID.ToString()%>">Descripcion</label>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -437,23 +447,17 @@
</div> </div>
<div class="portlet-body form"> <div class="portlet-body form">
<asp:TextBox ID="TxtEstatus" runat="server" CssClass="form-control" Width="150px"></asp:TextBox> <asp:Label ID="TxtEstatus" runat="server" CssClass="form-control" Width="150px"></asp:Label>
<asp:RequiredFieldValidator ID="RFVEstatus" runat="server"
ControlToValidate="TxtEstatus"
Display="Dynamic"
ErrorMessage="Estatus requerido"
CssClass="text-danger"
ValidationGroup="GrpGuardar" />
</div> </div>
</div> </div>
</div> </div>
</ContentTemplate> </ContentTemplate>
</asp:UpdatePanel> </asp:UpdatePanel>
</div> </div>
<!-- GridViews --> <!-- GridViews -->
<asp:UpdatePanel ID="UpGvDatosOP" runat="server" UpdateMode="Conditional"> <asp:UpdatePanel ID="UpGvDatosOP" runat="server" UpdateMode="Conditional" style="margin-top: -170px;">
<ContentTemplate> <ContentTemplate>
<div class="row"> <div class="row">
@@ -466,13 +470,15 @@
</div> </div>
<div class="portlet-body"> <div class="portlet-body">
<div class="row"> <div class="row">
<label class="col-md-1" style="max-width: 70px;">Producto</label> <div id="PanelProducto" runat="server">
<asp:label ID="LblProducto" class="col-md-1" runat="server" style="max-width: 70px;" Text="Producto"></asp:label>
<div class="col-md-3"> <div class="col-md-3">
<ADS:Dropdownlost ID="DdlPS" runat="server" Width="100%" CssStyle="width: 100%;" <ADS:Dropdownlost ID="DdlPS" runat="server" Width="100%" CssStyle="width: 100%;"
CssClass="select2me" CssClass="select2me"
CssClassDdl="form-control" DataTextField="PSCodigo" CssClassDdl="form-control" DataTextField="PSCodigo"
DataValueField="CvePS" Enabled="false" /> DataValueField="CvePS" Enabled="false" />
</div> </div>
</div>
<div class="col-md-4 d-flex align-items-center" style="gap: 10px;"> <div class="col-md-4 d-flex align-items-center" style="gap: 10px;">
<asp:LinkButton ID="BtnAgregarProducto" runat="server" <asp:LinkButton ID="BtnAgregarProducto" runat="server"
CssClass="btn btn-primary" CssClass="btn btn-primary"
@@ -760,31 +766,39 @@
</div> </div>
</div> </div>
<!-- Área de acción: Guardar, Terminar y Cancelar -->
<asp:UpdatePanel runat="server" ID="UpBtns" UpdateMode="Conditional">
<ContentTemplate>
<div class="row mt-4">
<div class="col-md-12 d-flex justify-content-end align-items-center">
<!-- Botón Guardar -->
<asp:Button
ID="BtnGuardarOP" runat="server"
Text="Guardar Orden de Producción"
CssClass="btn btn-success me-2"
OnClick="BtnGuardarOP_Click"
ValidationGroup="GrpGuardar" />
<!-- Botón para Guardar la OP --> <!-- Botones Derecha: Terminar y Cancelar -->
<div class="form-group" style="margin-top: 20px;">
<asp:Button ID="BtnGuardarOP" runat="server" Text="Guardar Orden de Producción"
CssClass="btn btn-success" OnClick="BtnGuardarOP_Click"
ValidationGroup="GrpGuardar" />
</div>
<div class="row mt-4"> <asp:Button
<div class="col-md-12 d-flex justify-content-end"> ID="BtnFinalizarOP" runat="server"
<asp:Button ID="BtnFinalizarOP" runat="server" Text="Terminar" Text="Terminar"
CssClass="btn btn-success mr-2" OnClick="BtnFinalizarOP_Click" CssClass="btn btn-success mr-2"
Visible="false" /> OnClick="BtnFinalizarOP_Click"
</div> Visible="false" />
</div>
<div class="row mt-4">
<div class="col-md-12 d-flex justify-content-end">
<asp:Button ID="BtnCancelarOP" runat="server" Text="Cancelar OP"
CssClass="btn btn-danger" Visible="false"
OnClick="BtnCancelarOP_Click" />
</div>
</div>
<asp:Button
ID="BtnCancelarOP" runat="server"
Text="Cancelar OP"
CssClass="btn btn-danger"
OnClick="BtnCancelarOP_Click"
Visible="false" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<div id="DVModalFinalizarOP" class="modal ADS fade" role="dialog" data-backdrop="static"> <div id="DVModalFinalizarOP" class="modal ADS fade" role="dialog" data-backdrop="static">
<div class="modal-dialog" style="width: 750px;"> <div class="modal-dialog" style="width: 750px;">
@@ -838,11 +852,13 @@
<asp:TextBox ID="TxtCantidadPT" runat="server" <asp:TextBox ID="TxtCantidadPT" runat="server"
Text='<%# Bind("Cantidad") %>' Text='<%# Bind("Cantidad") %>'
CssClass="form-control" CssClass="form-control"
style="text-align: right;"
TextMode="Number" TextMode="Number"
min="0" min="0"
step="1" step="1"
data-original='<%# Eval("Cantidad") %>' data-original='<%# Eval("Cantidad") %>'
onchange="validarCantidad(this)" /> onchange="validarCantidad(this)"
ItemStyle-HorizontalAlign="Right"/>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
</Columns> </Columns>
@@ -856,17 +872,18 @@
CssClass="table table-striped table-hover" GridLines="None" Width="100%"> CssClass="table table-striped table-hover" GridLines="None" Width="100%">
<Columns> <Columns>
<asp:BoundField DataField="PSCodigo" HeaderText="Producto" /> <asp:BoundField DataField="PSCodigo" HeaderText="Producto" />
<asp:BoundField DataField="Cantidad" HeaderText="Cantidad" DataFormatString="{0:N2}" /> <asp:BoundField DataField="Cantidad" HeaderText="Cantidad" DataFormatString="{0:N2}" ItemStyle-HorizontalAlign="Right"/>
<asp:TemplateField HeaderText="Devolución"> <asp:TemplateField HeaderText="Devolución">
<ItemTemplate> <ItemTemplate>
<asp:TextBox ID="TxtDevolucionMP" runat="server" <asp:TextBox ID="TxtDevolucionMP" runat="server"
Text="0" Text="0"
CssClass="form-control" style="width: 50%; text-align: right; margin-left: 38px; display: block;"
TextMode="Number" TextMode="Number"
min="0" min="0"
step="1" step="1"
data-original='<%# Eval("Cantidad") %>' data-original='<%# Eval("Cantidad") %>'
onchange="validarCantidad(this)" /> onchange="validarCantidad(this)"
/>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
@@ -929,13 +946,17 @@
<asp:TemplateField HeaderText="Merma"> <asp:TemplateField HeaderText="Merma">
<ItemTemplate> <ItemTemplate>
<asp:TextBox ID="TxtMerma" runat="server" Text="0" <asp:TextBox ID="TxtMerma" runat="server" Text="0"
CssClass="form-control" TextMode="Number" step="0.01" min="0" /> CssClass="txt-merma" TextMode="Number" step="0.01" min="0"
style="width: 50%; text-align: right;"
onchange="calcularDevolucion(this);"
data-original='<%# Eval("Cantidad")%>'
/>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="Devolución"> <asp:TemplateField HeaderText="Devolución" ItemStyle-CssClass="celda-derecha">
<ItemTemplate> <ItemTemplate>
<asp:TextBox ID="TxtDevolucionCancel" runat="server" Text="0" <asp:Label ID="LblDevolucion" runat="server" Text='<%# Eval("Cantidad", "{0:N2}") %>' CssClass="devolucion-label" style="text-align: right;"/>
CssClass="form-control" TextMode="Number" step="0.01" min="0" /> <asp:HiddenField ID="HfDevolucion" runat="server" Value='<%# Eval("Cantidad", "{0:N2}") %>' />
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
</Columns> </Columns>
@@ -969,7 +990,20 @@
} }
} }
function calcularDevolucion(input) {
var cantidadOriginal = parseFloat(input.dataset.original) || 0; // Usar dataset.original
var merma = parseFloat(input.value) || 0;
if (merma > cantidadOriginal) {
input.value = cantidadOriginal.toFixed(2);
merma = cantidadOriginal;
}
var devolucion = cantidadOriginal - merma;
var row = input.closest('tr');
row.querySelector('.devolucion-label').innerText = devolucion.toFixed(2);
row.querySelector('[id$="HfDevolucion"]').value = devolucion.toFixed(2);
}
</script> </script>
</asp:Content> </asp:Content>

View File

@@ -21,6 +21,15 @@ Partial Class OP_OP
End Set End Set
End Property End Property
Private Property CveEstatusInicial As Integer
Get
Return ViewState("CveEstatusInicial").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveEstatusInicial") = value
End Set
End Property
Private Property DtPS As DataTable Private Property DtPS As DataTable
Get Get
Return DirectCast(ViewState("DtPS"), DataTable) Return DirectCast(ViewState("DtPS"), DataTable)
@@ -103,6 +112,11 @@ Partial Class OP_OP
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then If Not IsPostBack Then
CveOP = If(Request("CveOP") <> "", Request("CveOP").ToString.ToEntero, "-1".ToEntero) CveOP = If(Request("CveOP") <> "", Request("CveOP").ToString.ToEntero, "-1".ToEntero)
If Not CveOP > 0 Then
TxtEstatus.Text = GlobalDTOPEstatus(UsuarioActual.CveEmpresa).FiltroPrimeroValor("EstatusOP", "TipoEstatus=1")
End If
CveEstatusInicial = GlobalDTOPEstatus(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOP", "TipoEstatus=1").ToEntero()
TipoEstatus = -1 TipoEstatus = -1
CreaPS() CreaPS()
SetValues() SetValues()
@@ -132,8 +146,6 @@ Partial Class OP_OP
DtMP.Columns.Add("UnidadMedida", GetType(String)) DtMP.Columns.Add("UnidadMedida", GetType(String))
DtMP.Columns.Add("Cantidad", GetType(Decimal)) DtMP.Columns.Add("Cantidad", GetType(Decimal))
DtMP.Columns.Add("Surtido", GetType(Decimal)) DtMP.Columns.Add("Surtido", GetType(Decimal))
'DtMP.Columns.Add("CvePSProducto", GetType(Integer))
'DtMP.Columns.Add("CveAlmacenDestino", GetType(Integer))
DtMO = New DataTable() DtMO = New DataTable()
DtMO.Columns.Add("Tipo", GetType(String)) ' Producto, MP, MO, CI DtMO.Columns.Add("Tipo", GetType(String)) ' Producto, MP, MO, CI
@@ -152,7 +164,6 @@ Partial Class OP_OP
DtCI.Columns.Add("productoMateriaPrima", GetType(String)) DtCI.Columns.Add("productoMateriaPrima", GetType(String))
DtCI.Columns.Add("CvePSProducto", GetType(Integer)) DtCI.Columns.Add("CvePSProducto", GetType(Integer))
DtCI.Columns.Add("Cantidad", GetType(Decimal)) DtCI.Columns.Add("Cantidad", GetType(Decimal))
'DtCI.Columns.Add("Costo", GetType(Decimal))
DtCI.Columns.Add("ImporteCostoIndirecto", GetType(Decimal)) DtCI.Columns.Add("ImporteCostoIndirecto", GetType(Decimal))
DtCI.Columns.Add("Total", GetType(Decimal)) DtCI.Columns.Add("Total", GetType(Decimal))
@@ -166,7 +177,7 @@ Partial Class OP_OP
CargarProductos() CargarProductos()
CargaDatos() CargaDatos()
If TipoEstatus = 3 Then If TipoEstatus = 3 Or TipoEstatus = 4 Then
DeshabilitarControles() ' Deshabilita todos los controles relevantes DeshabilitarControles() ' Deshabilita todos los controles relevantes
Else Else
If CveOP = -1 Then ' Nueva OP If CveOP = -1 Then ' Nueva OP
@@ -199,14 +210,20 @@ Partial Class OP_OP
UpOP.Update() UpOP.Update()
UpGvDatosOP.Update() UpGvDatosOP.Update()
UpBtns.Update()
End Sub End Sub
Private Sub DeshabilitarControles() Private Sub DeshabilitarControles()
' Deshabilitar DropDownLists ' Deshabilitar DropDownLists
DdlClientes.Enabled = False
DdlProyecto.Enabled = False DdlProyecto.Enabled = False
DdlSubProyecto.Enabled = False DdlSubProyecto.Enabled = False
DdlPS.Enabled = False DdlClientes.ddl.Enabled = False
DdlClientes.ddlWS.Disabled = True
DdlPS.ddl.Visible = False
DdlPS.ddlWS.Visible = False
LblProducto.Visible = False
' Deshabilitar TextBox y Date ' Deshabilitar TextBox y Date
TxtDescripcion.Enabled = False TxtDescripcion.Enabled = False
@@ -219,10 +236,16 @@ Partial Class OP_OP
BtnSimularMP.Visible = False BtnSimularMP.Visible = False
BtnGuardarOP.Visible = False BtnGuardarOP.Visible = False
BtnFinalizarOP.Visible = False BtnFinalizarOP.Visible = False
BtnCancelarOP.Visible = False
LnkSolicitarMP.Visible = False LnkSolicitarMP.Visible = False
GvProductos.Columns(3).Visible = False
UpOP.Update() UpOP.Update()
UpGvDatosOP.Update() UpGvDatosOP.Update()
UpBtns.Update()
UpModalCancelar.Update()
End Sub End Sub
Private Sub CargaDatos() Private Sub CargaDatos()
@@ -298,7 +321,6 @@ Partial Class OP_OP
newRow("Tipo") = "CI" newRow("Tipo") = "CI"
newRow("CvePS") = rowCI("CvePS").ToString().ToEntero() newRow("CvePS") = rowCI("CvePS").ToString().ToEntero()
newRow("CvePSProducto") = rowCI("CvePSProducto").ToString().ToEntero() newRow("CvePSProducto") = rowCI("CvePSProducto").ToString().ToEntero()
'newRow("CvePSMateriaPrima") = rowCI("CvePSMateriaPrima").ToString().ToEntero()
newRow("productoMateriaPrima") = rowCI("producto").ToString newRow("productoMateriaPrima") = rowCI("producto").ToString
newRow("ImporteCostoIndirecto") = rowCI("ImporteCostoIndirecto").ToString.ToDecimal() newRow("ImporteCostoIndirecto") = rowCI("ImporteCostoIndirecto").ToString.ToDecimal()
newRow("Total") = rowCI("ImporteCostoIndirecto") newRow("Total") = rowCI("ImporteCostoIndirecto")
@@ -306,11 +328,18 @@ Partial Class OP_OP
Next Next
End If End If
End If End If
End If End If
ObjOP.Dispose() ObjOP.Dispose()
ActualizarGrids() ActualizarGrids()
End If End If
' Validar si la OP está Terminada (3) o Cancelada (4)
If TipoEstatus = 3 Or TipoEstatus = 4 Then
DeshabilitarControles()
End If
End Sub End Sub
Private Sub CargarClientes() Private Sub CargarClientes()
@@ -402,7 +431,6 @@ Partial Class OP_OP
rowCI("Tipo") = "CI" rowCI("Tipo") = "CI"
rowCI("CvePS") = CvePS rowCI("CvePS") = CvePS
rowCI("CvePSProducto") = drCI("CvePSProducto").ToString() rowCI("CvePSProducto") = drCI("CvePSProducto").ToString()
'rowCI("CvePSMateriaPrima") = drCI("CvePSMateriaPrima").ToString().ToEntero()
rowCI("productoMateriaPrima") = drCI("productoMateriaPrima").ToString() rowCI("productoMateriaPrima") = drCI("productoMateriaPrima").ToString()
rowCI("ImporteCostoIndirecto") = drCI("ImporteCostoIndirecto").ToString().ToDecimal() rowCI("ImporteCostoIndirecto") = drCI("ImporteCostoIndirecto").ToString().ToDecimal()
rowCI("Total") = rowCI("ImporteCostoIndirecto") rowCI("Total") = rowCI("ImporteCostoIndirecto")
@@ -912,9 +940,26 @@ Partial Class OP_OP
DdlAlmacenMermas.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen = 1") DdlAlmacenMermas.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen = 1")
DdlAlmacenMermas.DataBind() DdlAlmacenMermas.DataBind()
' Cargar MP ' 1. Crear copia del DataTable
GvMPCancelacion.DataSource = DtMP.FiltraParametros("Tipo = 'MP'") Dim dtMPCopy As DataTable = DtMP.FiltraParametros("Tipo = 'MP'").Copy()
' 2. Agregar columna "Devolucion" como NO READONLY
If Not dtMPCopy.Columns.Contains("Devolucion") Then
Dim colDevolucion As New DataColumn("Devolucion", GetType(Decimal))
colDevolucion.ReadOnly = False
dtMPCopy.Columns.Add(colDevolucion)
End If
' 3. Asignar valores manualmente
For Each row As DataRow In dtMPCopy.Rows
row("Devolucion") = row("Cantidad")
Next
' 4. Configurar GridView
GvMPCancelacion.DataSource = dtMPCopy
GvMPCancelacion.DataBind() GvMPCancelacion.DataBind()
ViewState("DtMPCancelacion") = dtMPCopy
RegistraScript("$('#DVModalCancelarOP').modal('show');") RegistraScript("$('#DVModalCancelarOP').modal('show');")
UpModalCancelar.Update() UpModalCancelar.Update()
@@ -931,9 +976,9 @@ Partial Class OP_OP
Dim ObjInventario As New ClsInventarios() Dim ObjInventario As New ClsInventarios()
Dim CveMovimientoSalida As Integer = 1 Dim CveMovimientoSalida As Integer = 1
Dim CveMovEntradaDev As Integer = 0 Dim CveMovEntradaDev As Integer = 0
Dim CveMovMerma As Integer = 1 Dim CveMovMerma As Integer = 0
Dim TieneError As Boolean = False Dim ErrorMovInv As Boolean = False
Dim MensajeError As String = "" Dim TextoError As String = ""
ObjInventario.IniciaTransacSQL() ObjInventario.IniciaTransacSQL()
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL()) Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
Dim ObjOP As New ClsOP(ObjInventario.IniciaTransacSQL()) Dim ObjOP As New ClsOP(ObjInventario.IniciaTransacSQL())
@@ -942,12 +987,14 @@ Partial Class OP_OP
Dim TotalMP As Decimal = 0 Dim TotalMP As Decimal = 0
Dim TotalDevoluciones As Decimal = 0 Dim TotalDevoluciones As Decimal = 0
Dim TotalMermas As Decimal = 0 Dim TotalMermas As Decimal = 0
' Obtener folios de movimientos
Dim folioDevolucion = 0
Dim folioMerma = 0
Dim Fecha As DateTime = NowADS() Dim Fecha As DateTime = NowADS()
Try Try
' Validaciones ' Validaciones
If DdlAlmacenSalidaMP.SelectedValue = "-1" OrElse If DdlAlmacenSalidaMP.SelectedValue = "-1" OrElse
DdlAlmacenDevolucionCancel.SelectedValue = "-1" Then DdlAlmacenDevolucionCancel.SelectedValue = "-1" Then
@@ -957,81 +1004,162 @@ Partial Class OP_OP
' 1. Movimiento de Salida MP ' 1. Movimiento de Salida MP
CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenSalidaMP.SelectedValue.ToEntero(), TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:="Cancelación OP #" & LblFolio.Text, Modulo:="OP/CancelanciónSalida") CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenSalidaMP.SelectedValue.ToEntero(), TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:="Cancelación OP #" & LblFolio.Text, Modulo:="OP/CancelanciónSalida")
' 2. Registrar detalles y obtener PU (Igual que en Finalizar)
Dim DtMPCancelacion As DataTable = Nothing
If CveMovimientoSalida > 0 Then
For Each row As GridViewRow In GvMPCancelacion.Rows
Dim CvePS As Integer = row.DataKey("CvePSMateriaPrima").ToEntero
Dim CveUM As Integer = row.DataKey("CveUMMateriaPrima").ToEntero
Dim Cantidad As Decimal = CDec(row.Cells(2).Text)
' Registrar con PU=0 temporalmente
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUM, CvePS, 0) Then
ErrorMovInv = True
Exit For
End If
Next
End If
' Obtener PU reales del movimiento
If Not ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
ErrorMovInv = True
End If
DtMPCancelacion = ObjInventario.DtResultados.Copy()
' 3. Recalcular totales con PU reales (Clave)
TotalMP = DtMPCancelacion.SUMD("Total")
' 2. Movimiento de Entrada Devoluciones ' 2. Movimiento de Entrada Devoluciones
CveMovEntradaDev = ObjInventario.AddMovimiento(DdlAlmacenDevolucionCancel.SelectedValue.ToEntero(), TipoMovimientoEntrada, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Modulo:="OP/CancelaciónEntrada", CveMovimientoRelacionado:=CveMovimientoSalida) CveMovEntradaDev = ObjInventario.AddMovimiento(DdlAlmacenDevolucionCancel.SelectedValue.ToEntero(), TipoMovimientoEntrada, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Modulo:="OP/CancelaciónEntrada", CveMovimientoRelacionado:=CveMovimientoSalida)
folioDevolucion = ObjInventario.Folio
' 3. Procesar cada material ' 3. Procesar cada material
For Each row As GridViewRow In GvMPCancelacion.Rows If Not ErrorMovInv Then
Dim Cantidad As Decimal = CDec(row.Cells(2).Text)
Dim Merma As Decimal = row.FCTextBox("TxtMerma").Text.ToDecimal()
Dim Devolucion As Decimal = row.FCTextBox("TxtDevolucionCancel").Text.ToDecimal()
If (Merma + Devolucion) > Cantidad Then
Throw New Exception("La suma de merma y devolución no puede exceder la cantidad")
End If
TotalMP += Cantidad
TotalDevoluciones += Devolucion
TotalMermas += Merma
Dim CvePS As Integer = row.DataKey("CvePSMateriaPrima").ToEntero
Dim CveUM As Integer = row.DataKey("CveUMMateriaPrima").ToEntero
' Registrar salida
ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Cantidad, CveUM, CvePS, 0)
' Registrar devolución
If Devolucion > 0 Then
ObjInventario.AddMovimientoDetalle(CveMovEntradaDev, Devolucion, CveUM, CvePS, 0)
End If
Next
' 4. Registrar mermas si existen
If DdlAlmacenMermas.SelectedValue <> "-1" Then
CveMovMerma = ObjInventario.AddMovimiento(DdlAlmacenMermas.SelectedValue.ToEntero(), TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Modulo:="OP/CancelaciónMerma", CveMovimientoRelacionado:=CveMovimientoSalida)
For Each row As GridViewRow In GvMPCancelacion.Rows For Each row As GridViewRow In GvMPCancelacion.Rows
Dim CvePS As Integer = row.DataKey("CvePSMateriaPrima").ToEntero
Dim CveUM As Integer = row.DataKey("CveUMMateriaPrima").ToEntero
Dim Merma As Decimal = row.FCTextBox("TxtMerma").Text.ToDecimal() Dim Merma As Decimal = row.FCTextBox("TxtMerma").Text.ToDecimal()
If Merma > 0 Then Dim Cantidad As Decimal = CDec(row.Cells(2).Text)
Dim CvePS As Integer = row.DataKey("CvePSMateriaPrima").ToEntero Dim Devolucion As Decimal = Cantidad - Merma ' Cálculo automático
Dim CveUM As Integer = row.DataKey("CveUMMateriaPrima").ToEntero
ObjInventario.AddMovimientoDetalle(CveMovMerma, Merma, CveUM, CvePS, 0) Dim PU As Decimal = DtMPCancelacion.FiltroPrimeroValor("PU", $"CvePS = {CvePS} AND CveUM = {CveUM}").ToDecimal()
TotalMermas += Merma
' Actualizar devoluciones con PU correcto
If Devolucion > 0 Then
ObjInventario.AddMovimientoDetalle(CveMovEntradaDev, Devolucion, CveUM, CvePS, PU)
TotalDevoluciones += Devolucion * PU
End If End If
If Devolucion < 0 Then
Throw New Exception($"Devolución negativa en {row.Cells(0).Text}")
End If
Next Next
End If End If
Dim TieneMerma As Boolean = False
For Each row As GridViewRow In GvMPCancelacion.Rows
If row.FCTextBox("TxtMerma").Text.ToDecimal() > 0 Then
TieneMerma = True
Exit For
End If
Next
' 4. Registrar mermas si existen
If TieneMerma Then
If DdlAlmacenMermas.SelectedValue = "-1" Then
Alert("Seleccione almacén para mermas", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim GeneraSalidaMerma As Boolean = False
If GeneraSalidaMerma = True Then
CveMovMerma = ObjInventario.AddMovimiento(DdlAlmacenMermas.SelectedValue.ToEntero(), TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Modulo:="OP/CancelaciónMerma", CveMovimientoRelacionado:=CveMovimientoSalida)
folioMerma = ObjInventario.Folio
If CveMovMerma > 0 Then
For Each row As GridViewRow In GvMPCancelacion.Rows
Dim CvePS As Integer = row.DataKey("CvePSMateriaPrima").ToEntero
Dim CveUM As Integer = row.DataKey("CveUMMateriaPrima").ToEntero
Dim PU As Decimal = DtMPCancelacion.FiltroPrimeroValor("PU", $"CvePS = {CvePS} AND CveUM = {CveUM}").ToDecimal()
Dim Merma As Decimal = row.FCTextBox("TxtMerma").Text.ToDecimal()
Dim Cantidad As Decimal = CDec(row.Cells(2).Text)
If Merma > 0 Then
ObjInventario.AddMovimientoDetalle(CveMovMerma, Merma, CveUM, CvePS, PU)
End If
' Validaciones
If Merma > Cantidad Then
ErrorMovInv = True
End If
Next
If Not ObjInventario.GetMovimientosDetalle(CveMovMerma, UsuarioActual.CveEmpresa) Then
ErrorMovInv = True
End If
TotalMermas = DtMPCancelacion.SUMD("Total")
End If
Else
TotalMermas = TotalMP - TotalDevoluciones
End If
End If
' 5. Generar pólizas contables ' 5. Generar pólizas contables
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OP/Cancelacion", 53, 0, 0, 1, Fecha, If Not ErrorMovInv Then
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OP/Cancelacion", 53, 0, 0, 1, Fecha,
"Cancelación OP #" & LblFolio.Text, "Cancelación OP #" & LblFolio.Text,
UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
' Salida MP (Abono 68) ' Salida MP (Abono 68)
ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalMP, TotalMP, 68, "Cancelación MP OP #" & LblFolio.Text, "Cancelación MP OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovimientoSalida) If CvePrePoliza > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalMP, TotalMP, 68, "Cancelación MP OP #" & LblFolio.Text, "Cancelación MP OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovimientoSalida) Then
ErrorMovInv = True
End If
' Entrada Devoluciones (Cargo 68)
If Not ErrorMovInv AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalDevoluciones, TotalDevoluciones, 68, "Devoluciones Cancelación OP #" & LblFolio.Text, "Devoluciones Cancelación OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovEntradaDev) Then
ErrorMovInv = True
End If
' Entrada Devoluciones (Cargo 68) If TotalMermas > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalMermas, TotalMermas, 95, "Mermas Cancelación OP #" & LblFolio.Text, "Mermas Cancelación OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovMerma) Then
ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalDevoluciones, TotalDevoluciones, 68, "Devoluciones Cancelación OP #" & LblFolio.Text, "Devoluciones Cancelación OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovEntradaDev) ErrorMovInv = True
End If
If TotalMermas > 0 Then
' Salida Mermas (Abono 68)
ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalMermas, TotalMermas, 68, "Mermas Cancelación OP #" & LblFolio.Text, "Mermas Cancelación OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovMerma)
' Cargo Mermas (95)
ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalMermas, TotalMermas, 95, "Ajuste Mermas Cancelación OP #" & LblFolio.Text, "Ajuste Mermas Cancelación OP #" & LblFolio.Text)
End If End If
' 6. Actualizar estatus OP ' 6. Actualizar estatus OP
If Not ErrorMovInv Then
If ObjOP.UpdateEstatusOP(CveOP, CveEstatusCancelacion, UsuarioActual.CveEmpresa) Then
ObjInventario.Commit()
TxtEstatus.Text = EstatusCancelacion
PanelProducto.Visible = False
DeshabilitarControles()
If ObjOP.UpdateEstatusOP(CveOP, CveEstatusCancelacion, UsuarioActual.CveEmpresa) Then
ObjInventario.Commit() Dim linkDevolucion = $"<a class='Texto' href='/Inventarios/EntradasSalidas.aspx?CveMovimiento={CveMovEntradaDev}'>{folioDevolucion}</a>"
TxtEstatus.Text = "Cancelado"
BtnCancelarOP.Visible = False Dim mensaje = $"OP cancelada correctamente.<br/>Devolución: {linkDevolucion}"
UpOP.Update()
RegistraScript("$('#DVModalCancelarOP').modal('hide');") ' Validar si existe movimiento de merma
Alert("OP cancelada correctamente", TipoMensaje.MsgInformacion) If CveMovMerma > 0 Then
Dim linkMerma = $"<a class='Texto' href='/Inventarios/EntradasSalidas.aspx?CveMovimiento={CveMovMerma}'>{folioMerma}</a>"
mensaje &= $"<br/>Merma: {linkMerma}"
End If
RegistraScript("$('#DVModalCancelarOP').modal('hide');")
Alert(mensaje, TipoMensaje.MsgInformacion)
Else
ObjInventario.RollBack()
Alert("Error al actualizar el estatus.", TipoMensaje.MsgError)
End If
Else Else
Throw New Exception("Error al actualizar el estatus de la OP") ObjInventario.RollBack()
Alert($"Error contable: {TextoError}", TipoMensaje.MsgError)
End If End If
Catch ex As Exception Catch ex As Exception
@@ -1112,10 +1240,6 @@ Partial Class OP_OP
Dim CveMovimientoEntrada As Integer = 0 Dim CveMovimientoEntrada As Integer = 0
Dim IDPoliza As Integer = 0 Dim IDPoliza As Integer = 0
Dim FolioSalida As Integer = 0 Dim FolioSalida As Integer = 0
'Dim CveMovimientoVirtualEntrada As Integer = 0
'Dim CveMovimientoVirtualSalida As Integer = 0
'Dim FolioVirtualEntrada As Integer = 0
'Dim FolioVirtualSalida As Integer = 0
Dim FolioEntrada As Integer = 0 Dim FolioEntrada As Integer = 0
Dim Fecha As DateTime = NowADS() Dim Fecha As DateTime = NowADS()
Dim ErrorMovInv As Boolean = False Dim ErrorMovInv As Boolean = False
@@ -1124,7 +1248,6 @@ Partial Class OP_OP
Dim TipoMovimientoDev As Integer = 33 Dim TipoMovimientoDev As Integer = 33
Dim CveConceptoEntrada As Integer = 9 Dim CveConceptoEntrada As Integer = 9
Dim TotalCostoMP As Decimal = 0 Dim TotalCostoMP As Decimal = 0
'Dim TotalDevoluciones As Decimal = 0
Dim CveMovimientoDev As Integer = 0 Dim CveMovimientoDev As Integer = 0
Dim CostoDevoluciones As Decimal = 0 Dim CostoDevoluciones As Decimal = 0
@@ -1222,8 +1345,8 @@ Partial Class OP_OP
For Each row As GridViewRow In GvMPUtilizada.Rows For Each row As GridViewRow In GvMPUtilizada.Rows
Dim Devolucion As Decimal = row.FCTextBox("TxtDevolucionMP").Text.ToDecimal() Dim Devolucion As Decimal = row.FCTextBox("TxtDevolucionMP").Text.ToDecimal()
If Devolucion > 0 Then If Devolucion > 0 Then
Dim CvePS As Integer = row.DataKey("CvePSMateriaPrima").ToEntero 'GvMPUtilizada.DataKeys(row.RowIndex)("CvePSMateriaPrima").ToString.ToEntero() Dim CvePS As Integer = row.DataKey("CvePSMateriaPrima").ToEntero
Dim CveUM As Integer = row.DataKey("CveUMMateriaPrima").ToEntero 'GvMPUtilizada.DataKeys(row.RowIndex)("CveUMMateriaPrima").ToString.ToEntero() Dim CveUM As Integer = row.DataKey("CveUMMateriaPrima").ToEntero
Dim PU As Decimal = DtMPAlmacen.FiltroPrimeroValor("PU", $"CvePS = {CvePS} AND CveUM = {CveUM}").ToDecimal() Dim PU As Decimal = DtMPAlmacen.FiltroPrimeroValor("PU", $"CvePS = {CvePS} AND CveUM = {CveUM}").ToDecimal()
@@ -1253,8 +1376,7 @@ Partial Class OP_OP
If CveMovimientoEntrada > 0 AndAlso Not ErrorMovInv Then If CveMovimientoEntrada > 0 AndAlso Not ErrorMovInv Then
Dim CostoTotalProduccion As Decimal = TotalMPProducto + TotalMOProducto + TotalCIProducto Dim CostoTotalProduccion As Decimal = TotalMPProducto + TotalMOProducto + TotalCIProducto
Dim CostoPTAjustado As Decimal = CostoTotalProduccion - CostoDevoluciones Dim CostoPTAjustado As Decimal = CostoTotalProduccion - CostoDevoluciones
'Dim CantidadPT As Decimal = DtPS.AsEnumerable().Sum(Function(r) r.Field(Of Decimal)("Cantidad"))
'Dim PU_PT As Decimal = If(CantidadPT > 0, CostoPTAjustado / CantidadPT, 0)
For Each rowPT As DataRow In DtPS.Select("Tipo = 'Producto'") For Each rowPT As DataRow In DtPS.Select("Tipo = 'Producto'")
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, rowPT("Cantidad").ToString.ToDecimal(), rowPT("CveUM").ToString.ToEntero(), rowPT("CvePS").ToString.ToEntero(), rowPT("Costo").ToString.ToDecimal()) Then If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, rowPT("Cantidad").ToString.ToDecimal(), rowPT("CveUM").ToString.ToEntero(), rowPT("CvePS").ToString.ToEntero(), rowPT("Costo").ToString.ToDecimal()) Then
@@ -1288,14 +1410,6 @@ Partial Class OP_OP
ErrorMovInv = True ErrorMovInv = True
End If End If
End If End If
'If Not ErrorMovInv Then
'If Not ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual) Then
'ErrorMovInv = True : TextoError = "Error en validación de póliza"
'ElseIf ObjConta.ValorPolizaDescuadre > 0 Then
' ErrorMovInv = True : TextoError = "Descuadre en póliza contable"
'End If
'End If
End If End If
End If End If
End If End If
@@ -1306,16 +1420,12 @@ Partial Class OP_OP
ObjInventario.Commit() ObjInventario.Commit()
TxtEstatus.Text = EstatusFinalizar TxtEstatus.Text = EstatusFinalizar
DeshabilitarControles() DeshabilitarControles()
UpOP.Update()
UpGvDatosOP.Update()
Alert("Orden de producción finalizada.<br/>" & "<a class='Texto' href='/Inventarios/EntradasSalidas.aspx?CveMovimiento=" & CveMovimientoEntrada & "'>" & FolioEntrada & "</a>", Alert("Orden de producción finalizada.<br/>" & "<a class='Texto' href='/Inventarios/EntradasSalidas.aspx?CveMovimiento=" & CveMovimientoEntrada & "'>" & FolioEntrada & "</a>",
TipoMensaje.MsgInformacion) TipoMensaje.MsgInformacion)
RegistraScript("$('#DVModalFinalizarOP').modal('hide');") RegistraScript("$('#DVModalFinalizarOP').modal('hide');")
Else Else
ObjInventario.RollBack() ObjInventario.RollBack()
Alert("Error al actualizar el estatus.", TipoMensaje.MsgError) Alert("Error al actualizar el estatus.", TipoMensaje.MsgError)
@@ -1326,9 +1436,6 @@ Partial Class OP_OP
Alert($"Error contable: {TextoError}", TipoMensaje.MsgError) Alert($"Error contable: {TextoError}", TipoMensaje.MsgError)
End If End If
Catch ex As Exception Catch ex As Exception
ObjInventario.RollBack() ObjInventario.RollBack()
Alert($"Error crítico: {ex.Message}", TipoMensaje.MsgError) Alert($"Error crítico: {ex.Message}", TipoMensaje.MsgError)

View File

@@ -1795,84 +1795,6 @@
<div class="col-md-8"> <div class="col-md-8">
<div id="DModalPersonalRefs" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UPModalPers" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content" >
<div class="modal-header ">
<h4 class="modal-title"><asp:Literal ID="ltlPerstitulo" runat="server"> </asp:Literal></h4>
</div>
<div class="modal-body">
<asp:Panel runat="server" ID="PanelMostrarpersonalcampos">
<div class="portlet light xspadding bordered " id="pnlListrefs">
<div class="portlet-title">
<div class="caption ">
<i class="icon-pin font-yellow-gold"></i>
<span class="caption-subject font-yellow-gold bold uppercase">Referenca Nomina</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
<div class="actions">
<div class="btn-group">
<asp:LinkButton ID="LnkAgregarPersonalRefs" OnClick="LnkAgregarPers_Click" CssClass="btn yellow-gold" runat="server">Agregar</asp:LinkButton>
</div>
</div>
</div>
<div class="portlet-body ">
<asp:GridView ID="GVPersonalRefs" runat="server" GridLines="None" CssClass ="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False" ShowHeaderWhenEmpty ="True"
datakeynames="CveReferencia,CvePersonal,Valor">
<Columns>
<asp:TemplateField HeaderText="Referencia">
<ItemTemplate>
<asp:Label ID="lblreferencia" runat="server" Text='<%# Eval("Referencia")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Valor">
<ItemTemplate>
<asp:Label ID="lblvalor" runat="server" Text='<%# Eval("Valor")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="36">
<ItemTemplate>
<asp:LinkButton ID="LnkEliminarPers" runat="server" OnClick="LnkEliminarPers_Click" CssClass="btn btn-circle btn-sm btn-xs red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar el PersonalRefs?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</asp:Panel>
<asp:Panel runat="server" ID="PanelADDpersonalcampos">
<div class="row">
<div class="col-md-4 truncate ">Referencia</div>
<div class="col-md-8">
<asp:DropDownList ID="DdlPersreferencia" CssClass="form-control input-sm select2me " runat="server" DataTextField="Referencia" DataValueField="CveReferencia" style="width: 100%" ></asp:DropDownList>
</div>
</div>
<div class="row">
<div class="col-md-4 truncate ">Valor</div>
<div class="col-md-8">
<asp:TextBox ID="TxtPersvalor" CssClass="form-control input-sm " runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvPersvalor" runat="server" ControlToValidate="TxtPersvalor" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Valor''</b> es necesario, por favor ingréselo." ValidationGroup="VGMPers"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoPersvalor" runat="server" HighlightCssClass="vco" TargetControlID="RfvPersvalor"></ajax:ValidatorCalloutExtender>
</div>
</div>
</asp:Panel>
</div>
<div class="modal-footer ">
<div class="modal-btn">
<asp:Button ID="BtnPersADD" OnClick="BtnPersADD_Click" runat="server" Text="Agregar" CssClass="btn btn-primary" ValidationGroup="VGMPers" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<asp:UpdatePanel ID="UpMovtosPermanentes" UpdateMode="Conditional" runat="server"> <asp:UpdatePanel ID="UpMovtosPermanentes" UpdateMode="Conditional" runat="server">
@@ -6337,6 +6259,84 @@
</asp:UpdatePanel> </asp:UpdatePanel>
</div> </div>
<div id="DModalPersonalRefs" class="modal ADS fade" role="dialog">
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UPModalPers" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content" >
<div class="modal-header ">
<h4 class="modal-title"><asp:Literal ID="ltlPerstitulo" runat="server"> </asp:Literal></h4>
</div>
<div class="modal-body">
<asp:Panel runat="server" ID="PanelMostrarpersonalcampos">
<div class="portlet light xspadding bordered " id="pnlListrefs">
<div class="portlet-title">
<div class="caption ">
<i class="icon-pin font-yellow-gold"></i>
<span class="caption-subject font-yellow-gold bold uppercase">Referenca Nomina</span>
</div>
<div class="tools">
<a href="javascript:;" class="collapse" data-original-title="" title=""></a>
</div>
<div class="actions">
<div class="btn-group">
<asp:LinkButton ID="LnkAgregarPersonalRefs" OnClick="LnkAgregarPers_Click" CssClass="btn yellow-gold" runat="server">Agregar</asp:LinkButton>
</div>
</div>
</div>
<div class="portlet-body ">
<asp:GridView ID="GVPersonalRefs" runat="server" GridLines="None" CssClass ="table table-hover table-striped ScrollAD Widthall" AutoGenerateColumns="False" ShowHeaderWhenEmpty ="True"
datakeynames="CveReferencia,CvePersonal,Valor">
<Columns>
<asp:TemplateField HeaderText="Referencia">
<ItemTemplate>
<asp:Label ID="lblreferencia" runat="server" Text='<%# Eval("Referencia")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Valor">
<ItemTemplate>
<asp:Label ID="lblvalor" runat="server" Text='<%# Eval("Valor")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="36">
<ItemTemplate>
<asp:LinkButton ID="LnkEliminarPers" runat="server" OnClick="LnkEliminarPers_Click" CssClass="btn btn-circle btn-sm btn-xs red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Está seguro que desea eliminar el PersonalRefs?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</asp:Panel>
<asp:Panel runat="server" ID="PanelADDpersonalcampos">
<div class="row">
<div class="col-md-4 truncate ">Referencia</div>
<div class="col-md-8">
<asp:DropDownList ID="DdlPersreferencia" CssClass="form-control input-sm select2me " runat="server" DataTextField="Referencia" DataValueField="CveReferencia" style="width: 100%" ></asp:DropDownList>
</div>
</div>
<div class="row">
<div class="col-md-4 truncate ">Valor</div>
<div class="col-md-8">
<asp:TextBox ID="TxtPersvalor" CssClass="form-control input-sm " runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RfvPersvalor" runat="server" ControlToValidate="TxtPersvalor" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Valor''</b> es necesario, por favor ingréselo." ValidationGroup="VGMPers"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VcoPersvalor" runat="server" HighlightCssClass="vco" TargetControlID="RfvPersvalor"></ajax:ValidatorCalloutExtender>
</div>
</div>
</asp:Panel>
</div>
<div class="modal-footer ">
<div class="modal-btn">
<asp:Button ID="BtnPersADD" OnClick="BtnPersADD_Click" runat="server" Text="Agregar" CssClass="btn btn-primary" ValidationGroup="VGMPers" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<iframe id="my_iframe" style="display: none;"></iframe> <iframe id="my_iframe" style="display: none;"></iframe>
</asp:Content> </asp:Content>

View File

@@ -1051,7 +1051,6 @@ Partial Class RH_Personal
CargaGvBitacora() CargaGvBitacora()
CarcaConceptosNomina() CarcaConceptosNomina()
CargaFonacot() CargaFonacot()
CargaPersonalRefs()
End If End If
ValidaDeudorAcreedor() ValidaDeudorAcreedor()
@@ -7646,6 +7645,27 @@ Partial Class RH_Personal
TxtSRINCfechaInicio.Text = "" TxtSRINCfechaInicio.Text = ""
TxtSRINCdiasAutorizados.Text = "" TxtSRINCdiasAutorizados.Text = ""
TxtDiasPagoEmpresa.Text = If(UsuarioActual.CveEmpresa = 141, "3", "") TxtDiasPagoEmpresa.Text = If(UsuarioActual.CveEmpresa = 141, "3", "")
If Not (DdlSRINCcveTipodeIncidencia.Items.Count > 1) Then
Using objnom As New ClsNominas()
If (objnom.PersonalIncapacidadCatalogos()) Then
Dim dtperinc As DataTable = objnom.DtResultados
DdlSRINCcveTipodeIncidencia.DataSource = dtperinc.FiltraParametros("Tipo = -1 OR Tipo =1 ")
DdlSRINCcveRamoSeguro.DataSource = dtperinc.FiltraParametros("Tipo = -1 OR Tipo =2 ")
DdlSRINCcveTipoRiesgo.DataSource = dtperinc.FiltraParametros("Tipo = -1 OR Tipo =3 ")
DdlSRINCcveSecuelaConsecuencia.DataSource = dtperinc.FiltraParametros("Tipo = -1 OR Tipo =4 ")
DdlSRINCcveControlIncapacidad.DataSource = dtperinc.FiltraParametros("Tipo = -1 OR Tipo =5 ")
DdlSRINCcveTipodeIncidencia.DataBind()
DdlSRINCcveRamoSeguro.DataBind()
DdlSRINCcveTipoRiesgo.DataBind()
DdlSRINCcveSecuelaConsecuencia.DataBind()
DdlSRINCcveControlIncapacidad.DataBind()
End If
End Using
End If
DdlSRINCcveTipodeIncidencia.SelectedValue = "-1" DdlSRINCcveTipodeIncidencia.SelectedValue = "-1"
DdlSRINCcveRamoSeguro.SelectedValue = "-1" DdlSRINCcveRamoSeguro.SelectedValue = "-1"
DdlSRINCcveTipoRiesgo.SelectedValue = "-1" DdlSRINCcveTipoRiesgo.SelectedValue = "-1"
@@ -8355,7 +8375,7 @@ Partial Class RH_Personal
End Sub End Sub
Protected Sub CargaPersonalRefs() Protected Sub CargaPersonalCamposValoresGet()
Dim ObjPers As New ClsNominas() Dim ObjPers As New ClsNominas()
ObjPers.PersonalCamposValoresGet(-1, CvePersonal) ObjPers.PersonalCamposValoresGet(-1, CvePersonal)
GVPersonalRefs.DataSource = ObjPers.DtResultados GVPersonalRefs.DataSource = ObjPers.DtResultados
@@ -8379,7 +8399,7 @@ Partial Class RH_Personal
Protected Sub LnkMostrarCamposValor_Click(sender As Object, e As EventArgs) Protected Sub LnkMostrarCamposValor_Click(sender As Object, e As EventArgs)
ltlPerstitulo.Text = "Campos valores" ltlPerstitulo.Text = "Campos valores"
LimpiaPersonalRefs() LimpiaPersonalRefs()
CargaPersonalCamposValoresGet()
RegistraScript("$('#DModalPersonalRefs').modal()") RegistraScript("$('#DModalPersonalRefs').modal()")
BtnPersADD.Visible = False BtnPersADD.Visible = False
PanelMostrarpersonalcampos.Visible = True PanelMostrarpersonalcampos.Visible = True
@@ -8403,6 +8423,11 @@ Partial Class RH_Personal
Dim Continuar As Boolean = ObjPers.PersonalCamposValoresAddUp(cveReferencia, CvePersonal, valor) Dim Continuar As Boolean = ObjPers.PersonalCamposValoresAddUp(cveReferencia, CvePersonal, valor)
ObjPers.Dispose() ObjPers.Dispose()
If (Continuar) Then If (Continuar) Then
BtnPersADD.Visible = False
PanelMostrarpersonalcampos.Visible = True
PanelADDpersonalcampos.Visible = False
CargaPersonalCamposValoresGet()
LimpiaPersonalRefs() LimpiaPersonalRefs()
UPModalPers.Update() UPModalPers.Update()
Alert("El campo valor se ha agregado") Alert("El campo valor se ha agregado")
@@ -8415,7 +8440,7 @@ Partial Class RH_Personal
Dim Continuar As Boolean = ObjPers.PersonalCamposValoresRemove(CcveReferencia, CvePersonal) Dim Continuar As Boolean = ObjPers.PersonalCamposValoresRemove(CcveReferencia, CvePersonal)
ObjPers.Dispose() ObjPers.Dispose()
If (Continuar) Then If (Continuar) Then
CargaPersonalRefs() CargaPersonalCamposValoresGet()
Alert("El campo valor se ha eliminado") Alert("El campo valor se ha eliminado")
End If End If
End Sub End Sub

View File

@@ -367,7 +367,7 @@
<div class="divContainerads"> <div class="divContainerads">
<asp:GridView ID="GvMultiple" runat="server" GridLines="None" ClientIDMode="Static" AutoGenerateColumns="false" <asp:GridView ID="GvMultiple" runat="server" GridLines="None" ClientIDMode="Static" AutoGenerateColumns="false"
CssClass="table table-striped table-advance table-hover adssigscroll" data-cols="2" data-heightmenos="300" data-sort="true" EmptyDataText="No se encontraron registros" CssClass="table table-striped table-advance table-hover adssigscroll" data-cols="2" data-heightmenos="300" data-sort="true" EmptyDataText="No se encontraron registros"
OnRowCreated="GvMultiple_RowCreated" OnRowDataBound="GvMultiple_RowDataBound"> OnRowCreated="GvMultiple_RowCreated" OnRowDataBound="GvMultiple_RowDataBound" HeaderStyle-CssClass="ADtr">
<Columns> <Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="35px"> <asp:TemplateField ItemStyle-HorizontalAlign="center" ItemStyle-Width="35px">
<ItemTemplate> <ItemTemplate>

View File

@@ -1579,7 +1579,7 @@
let total = totalEfectivo + totalCredito + totalDebito + totalCheque + totalTransferencia; let total = totalEfectivo + totalCredito + totalDebito + totalCheque + totalTransferencia;
if (<%= If(UsuarioActual.Empresa.CveEmpresa = 189, 1, 0)%> == 1) { if (<%= If(UsuarioActual.Empresa.Funcionalidad(382) = "1", 1, 0)%> == 1) {
let totalAnticipos = $get("TxtNCDev") ? ToDouble($get("TxtNCDev").value) : 0; let totalAnticipos = $get("TxtNCDev") ? ToDouble($get("TxtNCDev").value) : 0;
TotalOtrosContado = $get("TxtImporteOtrosContado") ? ToDouble($get("TxtImporteOtrosContado").value) : 0; TotalOtrosContado = $get("TxtImporteOtrosContado") ? ToDouble($get("TxtImporteOtrosContado").value) : 0;

View File

@@ -8857,7 +8857,7 @@ Partial Class Ventas
If Not EsCreaApartirDe Then If Not EsCreaApartirDe Then
'Si es una devolucion 'Si es una devolucion
If NuevaFactura <= 0 Then If NuevaFactura = 0 Then
e.Row.FCDropDownList("DdlUnidadMedida").Enabled = False e.Row.FCDropDownList("DdlUnidadMedida").Enabled = False
e.Row.FCDropDownList("DdlClasificacion").Enabled = False e.Row.FCDropDownList("DdlClasificacion").Enabled = False
e.Row.FCDropDownLost("DdlPS").Enabled = False e.Row.FCDropDownLost("DdlPS").Enabled = False
@@ -17006,7 +17006,7 @@ Partial Class Ventas
End If End If
If UsuarioActual.CveEmpresa <> 189 AndAlso UsuarioActual.Empresa.Funcionalidad(567) = "1" AndAlso factura.TipoDocto.Contiene("Rem") AndAlso DivAlmacen.Visible AndAlso GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 Then If (Not UsuarioActual.CveEmpresa.Contiene(189, 197)) AndAlso UsuarioActual.Empresa.Funcionalidad(567) = "1" AndAlso factura.TipoDocto.Contiene("Rem") AndAlso DivAlmacen.Visible AndAlso GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 Then
Dim DebeGenerarMovimiento As Boolean = TmpDTDetalle.COUNT("CvePS", "CveTipoPS = 2") > 0 Dim DebeGenerarMovimiento As Boolean = TmpDTDetalle.COUNT("CvePS", "CveTipoPS = 2") > 0