Contratos pestaña gastos

This commit is contained in:
Rakcsle Supertramp
2020-11-23 16:16:18 -07:00
parent f02dc4b1f8
commit edb8c16ab6
3 changed files with 760 additions and 310 deletions

View File

@@ -146,6 +146,7 @@ Public Class ClsContratos
Public Property Ubicacion As String
Public Property Responsable As String
Public Property Lugar As String
Public Property LimiteDeGasto As Double
Public Property CveSubProyecto As Integer
Public Property SubProyectoContrato As String
Public Property CveProyecto As Integer
@@ -291,7 +292,8 @@ Public Class ClsContratos
Me.FechaVenc = Data.Rows(0)("FechaVenc").ToString.ToDate
Me.CveVendedor = Data.Rows(0)("CveVendedor").ToString.ToEntero
Me.ImporteTotal = Data.Rows(0)("ImporteTotal").ToString.ToDecimal
Me.Lugar = Data.Rows(0)("Lugar").ToString
Me.Lugar = Data.Rows(0)("Lugar").ToString
Me.LimiteDeGasto = Data.Rows(0)("LimiteDeGasto").ToString.ToDouble
Observaciones = Data.Rows(0)("Observaciones").ToString
CveDireccionEnvio = Data.Rows(0)("CveDireccionEnvio").ToString.ToEntero
@@ -543,7 +545,7 @@ Public Class ClsContratos
Geom As String, CveContratoPadre As Integer, CveUsuario As Integer, CveEmpresa As Integer, EsPresupuestal As Boolean, Minimo As Double, Maximo As Double, Importe As Double, CveMoneda As Integer, ModalidadDetalle As Integer,
Optional CveContratosEstatus As Integer = -1, Optional CveContratoTipo As Integer = -1, Optional TipoCambio As Double = 1, Optional CveSucursalCliente As Integer = -1, Optional CveAlmacenOrigen As Integer = -1, Optional CveAlmacenDestino As Integer = -1, Optional PorcentajeComision As Integer = -1,
Optional TipoGarantia As Integer = -1, Optional Folio As Integer = -1, Optional FechaVenc As Date = Nothing, Optional EstatusFianza As Integer = -1, Optional CvePeriodo As Integer = -1, Optional CveContratoPlantilla As Integer = -1, Optional CveCuentaEquipo As Integer = -1,
Optional CveVendedor As Integer = -1, Optional Observaciones As String = "", Optional CveDireccionEnvio As Integer = -1, Optional AplicaImpuestosLocales As Boolean = False, Optional CorreoNotificacionPedDev As String = "", Optional Lugar As String = "") As Integer
Optional CveVendedor As Integer = -1, Optional Observaciones As String = "", Optional CveDireccionEnvio As Integer = -1, Optional AplicaImpuestosLocales As Boolean = False, Optional CorreoNotificacionPedDev As String = "", Optional Lugar As String = "", Optional LimiteDeGasto As Double = 0) As Integer
Dim Retorno As Integer = -1
DataAdapter("PA_Con_ContratosObraAdd")
@@ -595,6 +597,7 @@ Public Class ClsContratos
.Add("@AplicaImpuestosLocales", SqlDbType.Bit).Value = If(AplicaImpuestosLocales, 1, 0)
.Add("@CorreoNotificacionPedDev", SqlDbType.VarChar).Value = CorreoNotificacionPedDev
.Add("@Lugar", SqlDbType.VarChar).Value = Lugar
.Add("@LimiteDeGasto", SqlDbType.Money).Value = LimiteDeGasto
.Add("@CveContrato", SqlDbType.Int).Direction = ParameterDirection.Output
@@ -621,7 +624,7 @@ Public Class ClsContratos
CveContratoPadre As Integer, CveUsuario As Integer, CveEmpresa As Integer, EsPresupuestal As Boolean, Minimo As Double, Maximo As Double, Importe As Double, CveMoneda As Integer, ModalidadDetalle As Integer,
Optional CveContratosEstatus As Integer = -1, Optional CveContratoTipo As Integer = -1, Optional TipoCambio As Double = 1.0, Optional CveSucursalCliente As Integer = -1, Optional CveAlmacenOrigen As Integer = -1, Optional CveAlmacenDestino As Integer = -1, Optional PorcentajeComision As Integer = -1,
Optional TipoGarantia As Integer = -1, Optional Folio As Integer = -1, Optional FechaVenc As Date = Nothing, Optional EstatusFianza As Integer = -1, Optional CveContratoPlantilla As Integer = -1, Optional CveCuentaEquipo As Integer = -1,
Optional CveVendedor As Integer = -1, Optional Observaciones As String = "", Optional CveDireccionEnvio As Integer = -1, Optional AplicaImpuestosLocales As Boolean = False, Optional CorreoNotificacionPedDev As String = "", Optional Lugar As String = "") As Boolean
Optional CveVendedor As Integer = -1, Optional Observaciones As String = "", Optional CveDireccionEnvio As Integer = -1, Optional AplicaImpuestosLocales As Boolean = False, Optional CorreoNotificacionPedDev As String = "", Optional Lugar As String = "", Optional LimiteDeGasto As Double = 0) As Boolean
Dim Retorno = False
DataAdapter("PA_Con_ContratosObraUpdate")
@@ -671,7 +674,8 @@ Public Class ClsContratos
.Add("@CveDireccionEnvio", SqlDbType.Int).Value = CveDireccionEnvio
.Add("@AplicaImpuestosLocales", SqlDbType.Bit).Value = If(AplicaImpuestosLocales, 1, 0)
.Add("@CorreoNotificacionPedDev", SqlDbType.VarChar).Value = CorreoNotificacionPedDev
.Add("@Lugar", SqlDbType.VarChar).Value = Lugar
.Add("@Lugar", SqlDbType.VarChar).Value = Lugar
.Add("@LimiteDeGasto", SqlDbType.Money).Value = LimiteDeGasto
End With
@@ -824,6 +828,74 @@ Public Class ClsContratos
#End Region
#Region "GASTOS OBRA"
Public Function GetContratosObragGastosVeiculos(CveContrato As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno = False
DataAdapter("PA_Con_ContratosObraGastosVeiculosGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveContrato", SqlDbType.Int).Value = CveContrato
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al consultar los gastos de veiculos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return Retorno
End Function
Public Function GetContratosObragGastosCompras(CveContrato As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno = False
DataAdapter("PA_Con_ContratosObraGastosComprasGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveContrato", SqlDbType.Int).Value = CveContrato
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al consultar los gastos de compra.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return Retorno
End Function
Public Function GetContratosObragGastosNomina(CveContrato As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno = False
DataAdapter("PA_Con_ContratosObraGastosNominaGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveContrato", SqlDbType.Int).Value = CveContrato
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al consultar los gastos de nomina.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return Retorno
End Function
#End Region
#Region "C I C L O C O M E R C I A L"
Public Function CicloComercialAdd(CveContrato As Integer, CveCotizacion As Integer, CveCliente As Integer, FueFacturado As Boolean, CveFactura As Integer, Estatus As Integer, CveEmpresa As Integer, FechaVenc As Date) As Boolean
Dim Retorno As Boolean = False

View File

@@ -97,6 +97,11 @@
<asp:LinkButton ID="LnkModalAddPresupuestoControl" Visible="false" runat="server" OnClick="LnkModalAddPresupuestoControl_Click"> <i class="fa fa-file-excel-o" style="font-weight:bold;"></i>Agregar Presupuesto Interno</asp:LinkButton>
</li>
<li>
<asp:LinkButton ID="LnkModalAddGastos" Visible="false" runat="server" OnClick="LnkModalAddGastos_Click"> <i class="fa fa-file-excel-o" style="font-weight:bold;"></i>Agregar Gasto</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
@@ -570,10 +575,20 @@
<asp:TextBox ID="txtMaximo" runat="server" MaxLength="12" Width="150px"></asp:TextBox><ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender4" runat="server" TargetControlID="txtMaximo" FilterType="Custom, Numbers" ValidChars=",." BehaviorID="_content_SoloNumeros" />
</div>
</div>--%>
<div class="row" runat="server">
<label class="col-md-2 truncate ">% Limite de Gastos:</label>
<div class="col-md-10">
<asp:TextBox ID="TxtLimiteGastos" runat="server" MaxLength="5" Width="150px"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender3" runat="server" TargetControlID="TxtLimiteGastos" FilterType="Custom, Numbers" ValidChars=",." BehaviorID="_content_SoloNumeros" />
</div>
</div>
<div class="row" id="DvTotal" runat="server">
<label class="col-md-2 truncate ">Total:</label>
<div class="col-md-10">
<asp:TextBox ID="TxtTotal" runat="server" MaxLength="12" Width="150px"></asp:TextBox><ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender8" runat="server" TargetControlID="TxtTotal" FilterType="Custom, Numbers" ValidChars=",." BehaviorID="_content_SoloNumeros" />
<asp:TextBox ID="TxtTotal" runat="server" MaxLength="12" Width="150px"></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender8" runat="server" TargetControlID="TxtTotal" FilterType="Custom, Numbers" ValidChars=",." BehaviorID="_content_SoloNumeros" />
</div>
</div>
@@ -1647,6 +1662,156 @@
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabGastos" HeaderText="Gastos" runat="server" Visible="false">
<ContentTemplate>
<asp:UpdatePanel runat="server" ID="UpGastos" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-12">
<table>
<tr>
<td>Contrato:</td><td><asp:Label runat="server" ID="LblGastoContrato" Font-Size="18px" Font-Bold="True" ></asp:Label></td>
<td>Gastos:</td><td><asp:Label runat="server" ID="LblGastoGastos" Font-Size="18px" Font-Bold="True" ></asp:Label></td>
<td>Nomina:</td><td><asp:Label runat="server" ID="LblGastoNomina" Font-Size="18px" Font-Bold="True" ></asp:Label></td>
<td>Indirectos:</td><td><asp:Label runat="server" ID="LblGastoIndirectos" Font-Size="18px" Font-Bold="True" ></asp:Label></td>
<td>%Gasto:</td><td><asp:Label runat="server" ID="LblGastoPorcentaje" Font-Size="18px" Font-Bold="True" ></asp:Label></td>
</tr>
</table>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="portlet smmallpadding light bordered">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="C_chkexpand" class=" collapse" data-original-title="" title=""></a><span class="hidden">
<input type="checkbox" checked="checked"></span>
</div>
<div class="caption uppercase" style="position: relative;"><i class="fa fa-list"></i>vehículos</div>
</div>
<div class="portlet-body rowpadding">
<asp:GridView ID="GvGastosVeiculos" ClientIDMode="Static" ShowHeader="true" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron gastos de veiculos"
DataKeyNames="CveContratoGasto,ORDEN"
CssClass="table table-striped table-hover Widthall" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Descripcion" DataField="Observaciones" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Fecha" DataField="Fecha" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:BoundField HeaderText="Importe" DataField="Importe" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:BoundField HeaderText="Usuario" DataField="Nombre" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-Width="25%" HeaderText="Acciones" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="LnkEliminarGasto" runat="server" OnClick="LnkEliminarGasto_Click" AlternateText="Eliminar" CausesValidation="False" CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>"
data-toggle="confirmation" data-popout="true" data-original-title="¿Desea eliminar el gasto?" data-btn-ok-label="si" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<div class="col-md-6">
<div class="portlet smmallpadding light bordered">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="C_chkexpand" class=" collapse" data-original-title="" title=""></a><span class="hidden">
<input type="checkbox" checked="checked"></span>
</div>
<div class="caption uppercase" style="position: relative;"><i class="fa fa-list"></i>Compras</div>
</div>
<div class="portlet-body rowpadding">
<asp:GridView ID="GvGastosCompras" ClientIDMode="Static" ShowHeader="true" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron gastos de compras."
DataKeyNames="CveContrato,ORDEN,CveCompra,Clasificacion,CveClasificacion"
CssClass="table table-striped table-hover Widthall" GridLines="None">
<Columns>
<asp:HyperLinkField HeaderText="Serie-Folio" DataTextField="SerieFolio" Target="_blank" ItemStyle-Width="30%" ItemStyle-CssClass="Texto Izquierda" DataNavigateUrlFields="CveCompra" DataNavigateUrlFormatString="/Compras/Compras.aspx?CveCompra={0}" />
<asp:BoundField HeaderText="Fecha" DataField="Fecha" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center" DataFormatString="{0:d}" />
<asp:BoundField HeaderText="Importe" DataField="Importe" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
<asp:BoundField HeaderText="Producto" DataField="PS" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Descripción" DataField="Observaciones" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Left" />
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="portlet smmallpadding light bordered">
<div class="portlet-title">
<div class="tools">
<a href="javascript;" data-idchekbox="C_chkexpand" class=" collapse" data-original-title="" title=""></a><span class="hidden">
<input type="checkbox" checked="checked"></span>
</div>
<div class="caption uppercase" style="position: relative;"><i class="fa fa-list"></i>Nomina</div>
</div>
<div class="portlet-body rowpadding">
<asp:GridView ID="GvGastosNomina" ClientIDMode="Static" ShowHeader="true" runat="server" AutoGenerateColumns="false" EmptyDataText="No se encontraron datos de nomina."
DataKeyNames="CveContrato,CvePersonal,NombreCompleto"
CssClass="table table-striped table-hover Widthall" GridLines="None">
<Columns>
<asp:HyperLinkField HeaderText="Nombre" DataTextField="NombreCompleto" Target="_blank" ItemStyle-CssClass="Texto Izquierda" DataNavigateUrlFields="CvePersonal" DataNavigateUrlFormatString="/RH/Personal.aspx?CvePersonal={0}" />
<asp:BoundField HeaderText="Puesto" DataField="Puesto" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Importe" DataField="Importe" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Right" DataFormatString="{0:N2}" />
</Columns>
</asp:GridView>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabAvanveDocumento" runat="server" HeaderText="Avance Por Documento">
<ContentTemplate>
@@ -2039,7 +2204,11 @@
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabAddendum" HeaderText="Addendum" runat="server" Visible="false">
<%-- <ajax:TabPanel ID="TabAddendum" HeaderText="Addendum" runat="server" Visible="false">
<ContentTemplate>
<asp:GridView runat="server" ID="GvAddendum" GridLines="None" ShowHeader="true" AutoGenerateColumns="false" DataKeyNames="CveContrato" CssClass="table table-striped table-hover Widthall">
<Columns>
@@ -2050,7 +2219,7 @@
</Columns>
</asp:GridView>
</ContentTemplate>
</ajax:TabPanel>
</ajax:TabPanel>--%>
<ajax:TabPanel ID="TabSistema" runat="server" HeaderText="Sistema">
<ContentTemplate>
@@ -2761,14 +2930,11 @@
<%--Modal Carga Presupuesto--%>
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="UpModalCargaPresupuesto">
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="UpModalCargaPresupuesto">
<ContentTemplate>
<div id="ModalUploadPresupuesto" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header ">
@@ -2808,6 +2974,49 @@
<%--MODAL CONTROL PRESUPUESTOS AGREGAR--%>
<div id="ModalControlAddGastoVeiculo" class="modal ADS fade" role="dialog">
<div class="modal-dialog" style="width: 450px;">
<asp:UpdatePanel runat="server" class="modal-content" ID="UpModalGastoVeiculos" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">
<asp:Literal ID="Literal6" runat="server">Agregar gasto de veiculo</asp:Literal></h4>
</div>
<div class="modal-body">
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtGastosDescripcion" runat="server" Width="100%" CssClass="form-control" MaxLength="150"></asp:TextBox>
<asp:RequiredFieldValidator ID="RFVTxtGastosDescripcion" runat="server" ControlToValidate="TxtGastosDescripcion" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descripción''</b> es necesario, por favor ingréselo." ValidationGroup="GrpModalGastos"></asp:RequiredFieldValidator>
<label for="<%= TxtGastosDescripcion.ClientID.ToString()%>">Descripción: </label>
</div>
<div class="form-group form-md-line-input input-iconright">
<asp:TextBox ID="TxtGastosImporte" runat="server" CssClass="form-control" ></asp:TextBox>
<ajax:FilteredTextBoxExtender ID="FilTxtGastosImporte" runat="server" TargetControlID="TxtGastosImporte" FilterType="Custom, Numbers" ValidChars="." />
<asp:RequiredFieldValidator ID="RFVTxtGastosImporte" runat="server" ControlToValidate="TxtGastosImporte" CssClass="help-block errorimput" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Importe''</b> es necesario, por favor ingréselo." ValidationGroup="GrpModalGastos"> </asp:RequiredFieldValidator>
<label for="<%= TxtGastosImporte.ClientID.ToString()%>">Importe:</label>
</div>
</div>
<div class="modal-footer">
<asp:Button Text="Guardar" runat="server" ID="BtnModalAgreagrGasto" Width="100px" OnClick="BtnModalAgreagrGasto_Click" ValidationGroup="GrpModalGastos" class="btn btn-success" />
<button id="Button7" runat="server" type="button" class="btn default" data-dismiss="modal">Cancelar</button>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<iframe id="my_iframe" style="display: none;"></iframe>

View File

@@ -409,6 +409,14 @@ Partial Class Contratos_ContratoObra
TabEstadoCuenta.Visible = True
If TxtLimiteGastos.Text.ToDecimal > 0 Then
TabGastos.Visible = True
LnkModalAddGastos.Visible = True
CargaGastos()
End If
Else
'Configuración de Modalidad Insert
LblFechaCaptura.Text = Now.ToShortDateString()
@@ -745,8 +753,10 @@ Partial Class Contratos_ContratoObra
TxtPorIVA.Text = ObjContratos.PorIVA.ToString
TxtLimiteGastos.Text = ObjContratos.LimiteDeGasto.ToString
TxtTotal.Text = ObjContratos.Importe.FormatoNumero
DdlEstatus.SelectedValueExist(ObjContratos.CveContratosEstatus.ToString)
CargarFianzas()
@@ -819,14 +829,14 @@ Partial Class Contratos_ContratoObra
ObjContratos.Dispose()
End Sub
Private Sub CargaContratoAddendum()
Dim ObjContratos As New ClsContratos
If ObjContratos.GetContratosAddendum(CveContrato) Then
If ObjContratos.DtResultados.Rows.Count > 0 Then
TabAddendum.Visible = True
GvAddendum.DataSource = ObjContratos.DtResultados
GvAddendum.DataBind()
End If
End If
'Dim ObjContratos As New ClsContratos
'If ObjContratos.GetContratosAddendum(CveContrato) Then
' If ObjContratos.DtResultados.Rows.Count > 0 Then
' TabAddendum.Visible = True
' GvAddendum.DataSource = ObjContratos.DtResultados
' GvAddendum.DataBind()
' End If
'End If
End Sub
Private Sub CargaPresupuesto()
Dim ObjContratos As New ClsContratos
@@ -856,7 +866,7 @@ Partial Class Contratos_ContratoObra
LbTotalGeneral.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero()
LbTotalGeneralInsumos.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero()
LbTotalGeneralInt.Text = TmpDT.FiltraParametros("CveTipoPresupuesto=1").SUM("Total").FormatoNumero()
LblImporte.Text = "$" & TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero()
'LblImporte.Text = "$" & TmpDT.FiltraParametros("CveTipoPresupuesto=2").SUM("Total").FormatoNumero()
End If
End Sub
@@ -932,7 +942,7 @@ Partial Class Contratos_ContratoObra
TxtTipoCambio.Text.ToDouble, CveSucursalCliente:=DdlSucursalCliente.SelectedValue.ToEntero, CveAlmacenOrigen:=-1, CveAlmacenDestino:=-1,
PorcentajeComision:=0, TipoGarantia:=-1, Folio:=0, FechaVenc:=Nothing, EstatusFianza:=1,
CvePeriodo:=-1, CveCuentaEquipo:=-1, CveContratoPlantilla:=-1, CveVendedor:=-1,
Observaciones:=TxtObservaciones.Text, CveDireccionEnvio:=-1, AplicaImpuestosLocales:=False, CorreoNotificacionPedDev:=TxtCorreoNotificacion.Text.Trim(), Lugar:=TxtLugar.Text.Trim)
Observaciones:=TxtObservaciones.Text, CveDireccionEnvio:=-1, AplicaImpuestosLocales:=False, CorreoNotificacionPedDev:=TxtCorreoNotificacion.Text.Trim(), Lugar:=TxtLugar.Text.Trim, LimiteDeGasto:=TxtLimiteGastos.Text.ToDouble)
TieneError = Not GuardaFianzas(ObjContratos)
@@ -995,7 +1005,7 @@ Partial Class Contratos_ContratoObra
CveAlmacenOrigen:=-1, CveAlmacenDestino:=-1, PorcentajeComision:=0,
TipoGarantia:=-1, Folio:=-1, FechaVenc:=Nothing, EstatusFianza:=-1, CveContratoPlantilla:=-1,
CveCuentaEquipo:=-1, CveVendedor:=-1, Observaciones:=TxtObservaciones.Text, CveDireccionEnvio:=-1, AplicaImpuestosLocales:=False,
CorreoNotificacionPedDev:=TxtCorreoNotificacion.Text.Trim(), Lugar:=TxtLugar.Text.Trim) Then
CorreoNotificacionPedDev:=TxtCorreoNotificacion.Text.Trim(), Lugar:=TxtLugar.Text.Trim, LimiteDeGasto:=TxtLimiteGastos.Text.ToDouble) Then
TieneError = Not GuardaFianzas(ObjContratos)
@@ -3055,173 +3065,173 @@ Partial Class Contratos_ContratoObra
Return dataTable
End Function
Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String)
Dim dt As New DataTable
dt = ReadExcelFile(Ruta + FileName, True)
Dim ErrorArchivo = False
'Private Sub CargarArchivo(Ruta As String, FileName As String, Tipo As String)
' Dim dt As New DataTable
' dt = ReadExcelFile(Ruta + FileName, True)
' Dim ErrorArchivo = False
'Dim Conexion As Odbc.OdbcConnection = Nothing
'Try
' Select Case Tipo
' Case "EXCEL"
' Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";")
' Conexion.Open()
' Dim cmd = Conexion.CreateCommand()
' cmd.CommandType = CommandType.Text
' cmd.CommandText = "SELECT * FROM [Hoja1$]"
' Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd)
' DataAdapter.Fill(dt)
' Case Else
' Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError)
' Exit Sub
' End Select
'Catch ex As Exception
' ErrorArchivo = True
' OnError("Ocurrio un error al leer el archivo <br/>" & ex.Message, ex)
'End Try
'Conexion.Close()
If Not ErrorArchivo AndAlso dt IsNot Nothing Then
If Not dt.Columns(0).ColumnName = "OC Interna" Then
Alert("El nombre de la primera columna debe ser 'OC Interna'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(1).ColumnName = "Cantidad" Then
Alert("El nombre de la primera columna debe ser 'Cantidad'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(2).ColumnName = "Clave Interna Cliente" Then
Alert("El nombre de la segunda columna debe ser 'Clave Interna'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(3).ColumnName = "Código" Then
Alert("El nombre de la tercera columna debe ser 'Código'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(4).ColumnName = "Código Barras" Then
Alert("El nombre de la cuarta columna debe ser 'Código Barras'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(5).ColumnName = "Producto/Servicio" Then
Alert("El nombre de la quinta columna debe ser 'Producto/Servicio'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(6).ColumnName = "UM" Then
Alert("El nombre de la sexta columna debe ser 'U.M'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(7).ColumnName = "Precio Unitario" Then
Alert("El nombre de la septima columna debe ser 'Precio Unitario'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
' 'Dim Conexion As Odbc.OdbcConnection = Nothing
' 'Try
' ' Select Case Tipo
' ' Case "EXCEL"
' ' Conexion = New Odbc.OdbcConnection("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + Ruta + FileName + ";")
' ' Conexion.Open()
' ' Dim cmd = Conexion.CreateCommand()
' ' cmd.CommandType = CommandType.Text
' ' cmd.CommandText = "SELECT * FROM [Hoja1$]"
' ' Dim DataAdapter = New Odbc.OdbcDataAdapter(cmd)
' ' DataAdapter.Fill(dt)
' ' Case Else
' ' Alert("El archivo no tiene el formato correcto", TipoMensaje.MsgError)
' ' Exit Sub
' ' End Select
' 'Catch ex As Exception
' ' ErrorArchivo = True
' ' OnError("Ocurrio un error al leer el archivo <br/>" & ex.Message, ex)
' 'End Try
' 'Conexion.Close()
' If Not ErrorArchivo AndAlso dt IsNot Nothing Then
' If Not dt.Columns(0).ColumnName = "OC Interna" Then
' Alert("El nombre de la primera columna debe ser 'OC Interna'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(1).ColumnName = "Cantidad" Then
' Alert("El nombre de la primera columna debe ser 'Cantidad'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(2).ColumnName = "Clave Interna Cliente" Then
' Alert("El nombre de la segunda columna debe ser 'Clave Interna'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(3).ColumnName = "Código" Then
' Alert("El nombre de la tercera columna debe ser 'Código'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(4).ColumnName = "Código Barras" Then
' Alert("El nombre de la cuarta columna debe ser 'Código Barras'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(5).ColumnName = "Producto/Servicio" Then
' Alert("El nombre de la quinta columna debe ser 'Producto/Servicio'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(6).ColumnName = "UM" Then
' Alert("El nombre de la sexta columna debe ser 'U.M'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
' If Not dt.Columns(7).ColumnName = "Precio Unitario" Then
' Alert("El nombre de la septima columna debe ser 'Precio Unitario'. Favor de corregirlo", TipoMensaje.MsgError)
' Exit Sub
' End If
dt.TableName = "Datos"
' dt.TableName = "Datos"
If Not ErrorArchivo Then
NumRow = 1
Dim RowNoEncontrados As String = String.Empty
Dim NumAgregados As Integer = 0
For Each Row As DataRow In dt.Rows
Dim Cantidad As Integer = Row("Cantidad").ToString.ToEntero
Dim Codigo As String = Row("Código").ToString.Trim.ToUpper
Dim CodigoBarras As String = Row("Código Barras").ToString.Trim.ToUpper
Dim UM As String = Row("UM").ToString
Dim ClaveInterna As String = Row("Clave Interna Cliente").ToString.Trim.ToUpper
Dim OCInterna As String = Row("OC Interna").ToString.Trim.ToUpper
Dim ProductoServicio As String = Row("Producto/Servicio").ToString.Trim.ToUpper
Dim PrecioUnitario As Double = Row("Precio Unitario").ToString.ToDouble
Dim CvePS As Integer = 0
Dim CveUM As Integer = 0 ' GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveUnidadMedida", $"CvePS = '{CvePS}'").ToString.ToEntero
Dim CodigoPS As Integer = 0
Dim Total As Double = (Cantidad * PrecioUnitario)
' If Not ErrorArchivo Then
' NumRow = 1
' Dim RowNoEncontrados As String = String.Empty
' Dim NumAgregados As Integer = 0
' For Each Row As DataRow In dt.Rows
' Dim Cantidad As Integer = Row("Cantidad").ToString.ToEntero
' Dim Codigo As String = Row("Código").ToString.Trim.ToUpper
' Dim CodigoBarras As String = Row("Código Barras").ToString.Trim.ToUpper
' Dim UM As String = Row("UM").ToString
' Dim ClaveInterna As String = Row("Clave Interna Cliente").ToString.Trim.ToUpper
' Dim OCInterna As String = Row("OC Interna").ToString.Trim.ToUpper
' Dim ProductoServicio As String = Row("Producto/Servicio").ToString.Trim.ToUpper
' Dim PrecioUnitario As Double = Row("Precio Unitario").ToString.ToDouble
' Dim CvePS As Integer = 0
' Dim CveUM As Integer = 0 ' GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveUnidadMedida", $"CvePS = '{CvePS}'").ToString.ToEntero
' Dim CodigoPS As Integer = 0
' Dim Total As Double = (Cantidad * PrecioUnitario)
NumRow = NumRow + 1
' NumRow = NumRow + 1
If Codigo.Length > 0 Then
Dim StrArray() As String = GetPS("Codigo", Codigo).Split("|"c)
If StrArray.Length > 0 Then
If CBool(StrArray(0)) = True Then
CvePS = StrArray(1).ToEntero
Else
RowNoEncontrados &= StrArray(1) & "<\BR>"
End If
End If
ElseIf CodigoBarras.Length > 0 Then
Dim StrArray() As String = GetPS("CodigoBarras", CodigoBarras).Split("|"c)
If StrArray.Length > 0 Then
If CBool(StrArray(0)) = True Then
CvePS = StrArray(1).ToEntero
Else
RowNoEncontrados &= StrArray(1) & "<\BR>"
End If
End If
ElseIf ProductoServicio.Length > 0 Then
Dim StrArray() As String = GetPS("PS", ProductoServicio).Split("|"c)
If StrArray.Length > 0 Then
If CBool(StrArray(0)) = True Then
CvePS = StrArray(1).ToEntero
Else
RowNoEncontrados &= StrArray(1) & "<\BR>"
End If
End If
Else
RowNoEncontrados &= "<\BR>&nbsp;&nbsp;&nbsp;&nbsp;- En la fila " & NumRow & " no se especificó código, código de barras ó descripción."
End If
CveUM = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveUnidadMedida", "").ToString.ToEntero
' If Codigo.Length > 0 Then
' Dim StrArray() As String = GetPS("Codigo", Codigo).Split("|"c)
' If StrArray.Length > 0 Then
' If CBool(StrArray(0)) = True Then
' CvePS = StrArray(1).ToEntero
' Else
' RowNoEncontrados &= StrArray(1) & "<\BR>"
' End If
' End If
' ElseIf CodigoBarras.Length > 0 Then
' Dim StrArray() As String = GetPS("CodigoBarras", CodigoBarras).Split("|"c)
' If StrArray.Length > 0 Then
' If CBool(StrArray(0)) = True Then
' CvePS = StrArray(1).ToEntero
' Else
' RowNoEncontrados &= StrArray(1) & "<\BR>"
' End If
' End If
' ElseIf ProductoServicio.Length > 0 Then
' Dim StrArray() As String = GetPS("PS", ProductoServicio).Split("|"c)
' If StrArray.Length > 0 Then
' If CBool(StrArray(0)) = True Then
' CvePS = StrArray(1).ToEntero
' Else
' RowNoEncontrados &= StrArray(1) & "<\BR>"
' End If
' End If
' Else
' RowNoEncontrados &= "<\BR>&nbsp;&nbsp;&nbsp;&nbsp;- En la fila " & NumRow & " no se especificó código, código de barras ó descripción."
' End If
' CveUM = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveUnidadMedida", "").ToString.ToEntero
If TmpDT IsNot Nothing AndAlso CvePS > 0 Then
Dim dr As DataRow = TmpDT.NewRow
dr("Cantidad") = Cantidad
dr("CantidadContratada") = Cantidad
dr("CveUM") = CveUM
dr("UM") = UM
dr("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion", "").ToString.ToEntero
dr("Clasificacion") = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = '{dr("CveClasificacion")}'").ToString
dr("CvePS") = CvePS
dr("PS") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("PS", "").ToString
dr("CodigoPS") = dr("PS")
dr("PU") = PrecioUnitario
dr("Total") = Cantidad * PrecioUnitario
dr("CveTipoPresupuesto") = 2
dr("NoIdentificacion") = ClaveInterna
dr("OCInterna") = OCInterna
dr("LimitarCantidad") = 0
' If TmpDT IsNot Nothing AndAlso CvePS > 0 Then
' Dim dr As DataRow = TmpDT.NewRow
' dr("Cantidad") = Cantidad
' dr("CantidadContratada") = Cantidad
' dr("CveUM") = CveUM
' dr("UM") = UM
' dr("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion", "").ToString.ToEntero
' dr("Clasificacion") = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = '{dr("CveClasificacion")}'").ToString
' dr("CvePS") = CvePS
' dr("PS") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("PS", "").ToString
' dr("CodigoPS") = dr("PS")
' dr("PU") = PrecioUnitario
' dr("Total") = Cantidad * PrecioUnitario
' dr("CveTipoPresupuesto") = 2
' dr("NoIdentificacion") = ClaveInterna
' dr("OCInterna") = OCInterna
' dr("LimitarCantidad") = 0
If CvePS > 0 Then
Dim ObjContratos As New ClsContratos
If ObjContratos.AddContratosDetalle(CveContrato, dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDouble, dr("PU").ToString.ToDouble, UsuarioActual.CveUsuario, dr("CveTipoPresupuesto").ToString.ToEntero, dr("NoIdentificacion").ToString, dr("LimitarCantidad").ToString.ToEntero = 1, dr("OCInterna").ToString) Then
Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", dr("Cantidad"), dr("UM"), dr("PS"), dr("PU"))
guardarBitacora(msj)
dr("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle")
TmpDT.Rows.Add(dr)
Dim TotalRow = dr("Total").ToString.ToDouble
' If CvePS > 0 Then
' Dim ObjContratos As New ClsContratos
' If ObjContratos.AddContratosDetalle(CveContrato, dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDouble, dr("PU").ToString.ToDouble, UsuarioActual.CveUsuario, dr("CveTipoPresupuesto").ToString.ToEntero, dr("NoIdentificacion").ToString, dr("LimitarCantidad").ToString.ToEntero = 1, dr("OCInterna").ToString) Then
' Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", dr("Cantidad"), dr("UM"), dr("PS"), dr("PU"))
' guardarBitacora(msj)
' dr("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle")
' TmpDT.Rows.Add(dr)
' Dim TotalRow = dr("Total").ToString.ToDouble
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero
LblImporte.Text = LbTotalGeneral.Text
Else
Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError)
End If
ObjContratos.Dispose()
End If
' CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
' LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero
' LblImporte.Text = LbTotalGeneral.Text
' Else
' Alert("Ocurrio un error al agregar el detalle", TipoMensaje.MsgError)
' End If
' ObjContratos.Dispose()
' End If
End If
Next
'Cargo el GridView
Gv.DataSource = TmpDT
Gv.DataBind()
UpGV.Update()
' End If
' Next
' 'Cargo el GridView
' Gv.DataSource = TmpDT
' Gv.DataBind()
' UpGV.Update()
If RowNoEncontrados.Length > 0 Then
Alert("Los siguientes Productos o Servicios no se encontraron en la Base de Datos.<\BR>" & RowNoEncontrados, TipoMensaje.MsgAdvertencia)
Else
Alert("Se Cargaron " & NumRow & " Productos o Servicios correctamente.")
End If
End If
End If
End Sub
' If RowNoEncontrados.Length > 0 Then
' Alert("Los siguientes Productos o Servicios no se encontraron en la Base de Datos.<\BR>" & RowNoEncontrados, TipoMensaje.MsgAdvertencia)
' Else
' Alert("Se Cargaron " & NumRow & " Productos o Servicios correctamente.")
' End If
' End If
' End If
'End Sub
Private Function GetPS(Opt As String, Valor As String) As String
Dim StrReturn As String = String.Empty
@@ -3240,8 +3250,8 @@ Partial Class Contratos_ContratoObra
If TxtExcel.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcel.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
CargarArchivo(Directorio, file.filename, Tipo)
Dim Tipo As String = If(file.Extencion.Contiene("xlsx", "xlsx", "xlsm", "xlsb"), "EXCEL", "CSV")
' CargarArchivo(Directorio, file.filename, Tipo)
Else
Alert("No existe el archivo. Favor de subir un archivo excel a la plataforma.", TipoMensaje.MsgError)
End If
@@ -4398,7 +4408,7 @@ Partial Class Contratos_ContratoObra
DTCargaPresupuesto = CargaPreSupuestoExcel()
If DTCargaPresupuesto.Rows.Count > 0 Then
ProcesaDatosCargaPresupuesto(DTCargaPresupuesto)
' ProcesaDatosCargaPresupuesto(DTCargaPresupuesto)
Else
Alert("No se encintraron partidas en el documento", TipoMensaje.MsgAdvertencia)
End If
@@ -4452,179 +4462,179 @@ Partial Class Contratos_ContratoObra
End Function
Private Sub ProcesaDatosCargaPresupuesto(DTPresupuesto As DataTable)
'Private Sub ProcesaDatosCargaPresupuesto(DTPresupuesto As DataTable)
Dim DTPS = New DataTable
DTPS.Columns.Add("CveContratoDetalle", GetType(Integer))
DTPS.Columns.Add("Cantidad", GetType(Double))
DTPS.Columns.Add("CantidadContratada", GetType(Double))
DTPS.Columns.Add("CveUM", GetType(Integer))
DTPS.Columns.Add("UM", GetType(String))
DTPS.Columns.Add("CveClasificacion", GetType(Integer))
DTPS.Columns.Add("Clasificacion", GetType(String))
DTPS.Columns.Add("CvePS", GetType(Integer))
DTPS.Columns.Add("PS", GetType(String))
DTPS.Columns.Add("CodigoPS", GetType(String))
DTPS.Columns.Add("PU", GetType(Double))
DTPS.Columns.Add("Total", GetType(Double))
DTPS.Columns.Add("CveTipoPresupuesto", GetType(Integer))
DTPS.Columns.Add("PermitirAvance", GetType(Integer))
DTPS.Columns.Add("PermitirEstimacion", GetType(Integer))
DTPS.Columns.Add("UsuarioAvance", GetType(Integer))
DTPS.Columns.Add("Cantidad_Original", GetType(Double))
DTPS.Columns.Add("PU_Original", GetType(Double))
DTPS.Columns.Add("Total_Original", GetType(Double))
DTPS.Columns.Add("NoIdentificacion", GetType(String))
DTPS.Columns.Add("LimitarCantidad", GetType(Integer))
DTPS.Columns.Add("OCInterna", GetType(String))
DTPS.Columns.Add("Observacion", GetType(String))
' Dim DTPS = New DataTable
' DTPS.Columns.Add("CveContratoDetalle", GetType(Integer))
' DTPS.Columns.Add("Cantidad", GetType(Double))
' DTPS.Columns.Add("CantidadContratada", GetType(Double))
' DTPS.Columns.Add("CveUM", GetType(Integer))
' DTPS.Columns.Add("UM", GetType(String))
' DTPS.Columns.Add("CveClasificacion", GetType(Integer))
' DTPS.Columns.Add("Clasificacion", GetType(String))
' DTPS.Columns.Add("CvePS", GetType(Integer))
' DTPS.Columns.Add("PS", GetType(String))
' DTPS.Columns.Add("CodigoPS", GetType(String))
' DTPS.Columns.Add("PU", GetType(Double))
' DTPS.Columns.Add("Total", GetType(Double))
' DTPS.Columns.Add("CveTipoPresupuesto", GetType(Integer))
' DTPS.Columns.Add("PermitirAvance", GetType(Integer))
' DTPS.Columns.Add("PermitirEstimacion", GetType(Integer))
' DTPS.Columns.Add("UsuarioAvance", GetType(Integer))
' DTPS.Columns.Add("Cantidad_Original", GetType(Double))
' DTPS.Columns.Add("PU_Original", GetType(Double))
' DTPS.Columns.Add("Total_Original", GetType(Double))
' DTPS.Columns.Add("NoIdentificacion", GetType(String))
' DTPS.Columns.Add("LimitarCantidad", GetType(Integer))
' DTPS.Columns.Add("OCInterna", GetType(String))
' DTPS.Columns.Add("Observacion", GetType(String))
Dim RowNoEncontrados As String = ""
' Dim RowNoEncontrados As String = ""
For Each DrowPS As DataRow In DTPresupuesto.Rows
' For Each DrowPS As DataRow In DTPresupuesto.Rows
Dim StrArray() As String = GetPS("PS", DrowPS("PS").ToString).Split("|"c)
Dim CvePS As Integer
Dim CveUM As Integer
' Dim StrArray() As String = GetPS("PS", DrowPS("PS").ToString).Split("|"c)
' Dim CvePS As Integer
' Dim CveUM As Integer
If StrArray.Length > 0 Then
If CBool(StrArray(0)) = True Then
CvePS = StrArray(1).ToEntero
Else
RowNoEncontrados &= StrArray(1) & "<\BR>"
End If
End If
' If StrArray.Length > 0 Then
' If CBool(StrArray(0)) = True Then
' CvePS = StrArray(1).ToEntero
' Else
' RowNoEncontrados &= StrArray(1) & "<\BR>"
' End If
' End If
If CvePS > 0 And DrowPS("Cantidad").ToString.ToDouble > 0 Then
' If CvePS > 0 And DrowPS("Cantidad").ToString.ToDouble > 0 Then
CveUM = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveUnidadMedida", "").ToString.ToEntero
' CveUM = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveUnidadMedida", "").ToString.ToEntero
Dim Row As DataRow = DTPS.NewRow()
Row("Cantidad") = DrowPS("Cantidad").ToString.ToDouble
Row("CantidadContratada") = DrowPS("Cantidad").ToString.ToDouble
Row("CveUM") = CveUM
Row("UM") = ""
Row("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion", "").ToString.ToEntero
Row("Clasificacion") = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = '{ Row("CveClasificacion").ToString }'").ToString
Row("CvePS") = CvePS
Row("PS") = DrowPS("PS").ToString
Row("CodigoPS") = DrowPS("PS").ToString
Row("PU") = DrowPS("PU").ToString.ToDouble
Row("Total") = DrowPS("Cantidad").ToString.ToDouble * DrowPS("PU").ToString.ToDouble
' Dim Row As DataRow = DTPS.NewRow()
' Row("Cantidad") = DrowPS("Cantidad").ToString.ToDouble
' Row("CantidadContratada") = DrowPS("Cantidad").ToString.ToDouble
' Row("CveUM") = CveUM
' Row("UM") = ""
' Row("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimeroValor("CveClasificacion", "").ToString.ToEntero
' Row("Clasificacion") = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = '{ Row("CveClasificacion").ToString }'").ToString
' Row("CvePS") = CvePS
' Row("PS") = DrowPS("PS").ToString
' Row("CodigoPS") = DrowPS("PS").ToString
' Row("PU") = DrowPS("PU").ToString.ToDouble
' Row("Total") = DrowPS("Cantidad").ToString.ToDouble * DrowPS("PU").ToString.ToDouble
Select Case TipoCargaPresupuesto
Case EnumTipoCargaPresupuesto.Ventas
Row("CveTipoPresupuesto") = 2
Exit Select
Case EnumTipoCargaPresupuesto.Control
Row("CveTipoPresupuesto") = 1
Exit Select
Case Else
Row("CveTipoPresupuesto") = 1
End Select
' Select Case TipoCargaPresupuesto
' Case EnumTipoCargaPresupuesto.Ventas
' Row("CveTipoPresupuesto") = 2
' Exit Select
' Case EnumTipoCargaPresupuesto.Control
' Row("CveTipoPresupuesto") = 1
' Exit Select
' Case Else
' Row("CveTipoPresupuesto") = 1
' End Select
Row("NoIdentificacion") = ""
Row("OCInterna") = ""
Row("LimitarCantidad") = 0
Row("Observacion") = ""
' Row("NoIdentificacion") = ""
' Row("OCInterna") = ""
' Row("LimitarCantidad") = 0
' Row("Observacion") = ""
DTPS.Rows.Add(Row)
' DTPS.Rows.Add(Row)
End If
Next
' End If
' Next
Dim ErrorProceso = False
Dim ObjContratos As New ClsContratos
Dim TotalRow As Double = 0
ObjContratos.IniciaTransacSQL()
' Dim ErrorProceso = False
' Dim ObjContratos As New ClsContratos
' Dim TotalRow As Double = 0
' ObjContratos.IniciaTransacSQL()
For Each Row As DataRow In DTPS.Rows
' For Each Row As DataRow In DTPS.Rows
If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Convert.ToBoolean(Row("LimitarCantidad")), Row("OCInterna").ToString, Observacion:=Row("Observacion").ToString) Then
' If ObjContratos.AddContratosDetalle(CveContrato, Row("CvePS").ToString.ToEntero, Row("Cantidad").ToString.ToDouble, Row("PU").ToString.ToDouble, UsuarioActual.CveUsuario, Row("CveTipoPresupuesto").ToString.ToEntero, Row("NoIdentificacion").ToString, Convert.ToBoolean(Row("LimitarCantidad")), Row("OCInterna").ToString, Observacion:=Row("Observacion").ToString) Then
If Autorizado Then
Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU"))
guardarBitacora(msj)
End If
' If Autorizado Then
' Dim msj As String = String.Format("Se agregaron {0} {1} del producto {2} con un precio ${3}.", Row("Cantidad"), Row("UM"), Row("PS"), Row("PU"))
' guardarBitacora(msj)
' End If
Dim NrowTmpDT As DataRow = TmpDT.NewRow
' Dim NrowTmpDT As DataRow = TmpDT.NewRow
NrowTmpDT("Cantidad") = Row("Cantidad")
NrowTmpDT("CantidadContratada") = Row("CantidadContratada")
NrowTmpDT("CveUM") = Row("CveUM")
NrowTmpDT("UM") = Row("UM")
NrowTmpDT("CveClasificacion") = Row("CveClasificacion")
NrowTmpDT("Clasificacion") = Row("Clasificacion")
NrowTmpDT("CvePS") = Row("CvePS")
NrowTmpDT("PS") = Row("PS")
NrowTmpDT("CodigoPS") = Row("CodigoPS")
NrowTmpDT("PU") = Row("PU")
NrowTmpDT("Total") = Row("Total")
NrowTmpDT("CveTipoPresupuesto") = Row("CveTipoPresupuesto")
NrowTmpDT("NoIdentificacion") = Row("NoIdentificacion")
NrowTmpDT("OCInterna") = Row("OCInterna")
NrowTmpDT("LimitarCantidad") = Row("LimitarCantidad")
NrowTmpDT("Observacion") = Row("Observacion")
' NrowTmpDT("Cantidad") = Row("Cantidad")
' NrowTmpDT("CantidadContratada") = Row("CantidadContratada")
' NrowTmpDT("CveUM") = Row("CveUM")
' NrowTmpDT("UM") = Row("UM")
' NrowTmpDT("CveClasificacion") = Row("CveClasificacion")
' NrowTmpDT("Clasificacion") = Row("Clasificacion")
' NrowTmpDT("CvePS") = Row("CvePS")
' NrowTmpDT("PS") = Row("PS")
' NrowTmpDT("CodigoPS") = Row("CodigoPS")
' NrowTmpDT("PU") = Row("PU")
' NrowTmpDT("Total") = Row("Total")
' NrowTmpDT("CveTipoPresupuesto") = Row("CveTipoPresupuesto")
' NrowTmpDT("NoIdentificacion") = Row("NoIdentificacion")
' NrowTmpDT("OCInterna") = Row("OCInterna")
' NrowTmpDT("LimitarCantidad") = Row("LimitarCantidad")
' NrowTmpDT("Observacion") = Row("Observacion")
NrowTmpDT("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle")
' NrowTmpDT("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle")
TmpDT.Rows.Add(NrowTmpDT)
TmpDT.AcceptChanges()
' TmpDT.Rows.Add(NrowTmpDT)
' TmpDT.AcceptChanges()
TotalRow = TotalRow + NrowTmpDT("Total").ToString.ToDouble
Else
ErrorProceso = True
Exit For
End If
Next
' TotalRow = TotalRow + NrowTmpDT("Total").ToString.ToDouble
' Else
' ErrorProceso = True
' Exit For
' End If
' Next
If ErrorProceso Then
ObjContratos.RollBack()
Alert("Se presento un error al cargar el presupuesto.", TipoMensaje.MsgError)
Else
' If ErrorProceso Then
' ObjContratos.RollBack()
' Alert("Se presento un error al cargar el presupuesto.", TipoMensaje.MsgError)
' Else
ObjContratos.Commit()
Alert("Presupuesto Cargado correctamente")
' ObjContratos.Commit()
' Alert("Presupuesto Cargado correctamente")
Select Case TipoCargaPresupuesto
Case EnumTipoCargaPresupuesto.Ventas
CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
UpGV.Update()
Exit Select
Case EnumTipoCargaPresupuesto.Control
CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1"))
UpGVInsumos.Update()
Exit Select
Case Else
' Select Case TipoCargaPresupuesto
' Case EnumTipoCargaPresupuesto.Ventas
' CargaGVPresupuestos(TmpDT.FiltraParametros("CveTipoPresupuesto=2"))
' UpGV.Update()
' Exit Select
' Case EnumTipoCargaPresupuesto.Control
' CargaGVPresupuestosInsumos(TmpDT.FiltraParametros("CveTipoPresupuesto=1"))
' UpGVInsumos.Update()
' Exit Select
' Case Else
End Select
' End Select
LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero
LblImporte.Text = LbTotalGeneral.Text
UpGral.Update()
' LbTotalGeneral.Text = (LbTotalGeneral.Text.ToDouble + TotalRow).ToString.FormatoNumero
' LblImporte.Text = LbTotalGeneral.Text
' UpGral.Update()
End If
' End If
ObjContratos.Dispose()
' ObjContratos.Dispose()
If RowNoEncontrados.Length > 0 Then
Alert($"Productos no encontrados <br> {RowNoEncontrados} ")
End If
' If RowNoEncontrados.Length > 0 Then
' Alert($"Productos no encontrados <br> {RowNoEncontrados} ")
' End If
End Sub
'End Sub
@@ -4689,6 +4699,165 @@ Partial Class Contratos_ContratoObra
End Sub
Private Sub CargaGastos()
Dim GastosCompras As Double = 0
Dim GastosVeiculos As Double = 0
Dim GatosNominas As Double = 0
Dim GastosProcentaje As Double = 0
Dim ObjContratos As New ClsContratos
If ObjContratos.GetContratosObragGastosVeiculos(CveContrato, UsuarioActual.CveEmpresa) Then
GvGastosVeiculos.DataSource = ObjContratos.DtResultados
GastosVeiculos = ObjContratos.DtResultados.SUM("Importe")
Else
GvGastosVeiculos.DataSource = Nothing
End If
If ObjContratos.GetContratosObragGastosCompras(CveContrato, UsuarioActual.CveEmpresa) Then
GvGastosCompras.DataSource = ObjContratos.DtResultados
GastosCompras = ObjContratos.DtResultados.SUM("Importe", "CveContrato > 0")
Else
GvGastosCompras.DataSource = Nothing
End If
If ObjContratos.GetContratosObragGastosNomina(CveContrato, UsuarioActual.CveEmpresa) Then
GvGastosNomina.DataSource = ObjContratos.DtResultados
GatosNominas = ObjContratos.DtResultados.SUM("Importe", "CveContrato > 0")
Else
GvGastosNomina.DataSource = Nothing
End If
ObjContratos.Dispose()
GvGastosVeiculos.DataBind()
GvGastosCompras.DataBind()
GvGastosNomina.DataBind()
LblGastoContrato.Text = LblImporte.Text
LblGastoNomina.Text = "$ " & GatosNominas.ToString("###,###,###.00")
LblGastoGastos.Text = "$ " & GastosCompras.ToString("###,###,###.00")
LblGastoIndirectos.Text = "$ " & GastosVeiculos.ToString("###,###,###.00")
UpGastos.Update()
GastosProcentaje = (GastosVeiculos + GatosNominas + GastosCompras) * 100 / (LblGastoContrato.Text.ToDecimal)
LblGastoPorcentaje.Text = GastosProcentaje.ToString("###.00") & " %"
End Sub
Private Sub GvGastosVeiculos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvGastosVeiculos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DataKey("ORDEN").ToEntero = 1 Then
e.Row.CssClass = "Totales"
e.Row.Cells(1).Text = "Total"
Dim LnkEliminarGasto As LinkButton = e.Row.FCLinkButton("LnkEliminarGasto")
LnkEliminarGasto.Visible = False
End If
End If
End Sub
Private Sub GvGastosCompras_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvGastosCompras.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DataKey("CveContrato").ToEntero > 0 Then
e.Row.CssClass = "Totales"
e.Row.Cells(1).Text = "Total"
ElseIf e.Row.DataKey("CveContrato").ToEntero = 0 And e.Row.DataKey("CveClasificacion").ToEntero > 0 And e.Row.DataKey("ORDEN").ToEntero = 1 Then
e.Row.CssClass = "SubTotales"
e.Row.Cells(0).Text = e.Row.DataKey("Clasificacion")
e.Row.Cells(0).Width = 250
End If
End If
End Sub
Private Sub GvGastosNomina_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvGastosNomina.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DataKey("CvePersonal").ToEntero = 0 Then
e.Row.CssClass = "Totales"
e.Row.Cells(1).Text = "Total"
End If
End If
End Sub
Protected Sub LnkModalAddGastos_Click(sender As Object, e As EventArgs)
RegistraScript("$('#ModalControlAddGastoVeiculo').modal('show');")
End Sub
Protected Sub LnkEliminarGasto_Click(sender As Object, e As EventArgs)
Dim GvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow)
Dim CveContratoGasto As Integer = GvRow.DataKey("CveContratoGasto").ToString.ToEntero
Dim ObjContratos As New ClsContratos
Dim ErrorProceso As Boolean = True
If ObjContratos.RemoveContratoGasto(CveContratoGasto) Then
ErrorProceso = False
End If
If Not ErrorProceso Then
CargaGastos()
Alert("Gasto eliminado correctamente.")
End If
ObjContratos.Dispose()
End Sub
Protected Sub BtnModalAgreagrGasto_Click(sender As Object, e As EventArgs)
Dim ErrorProceso As Boolean = True
Dim ObjContratos As New ClsContratos
If ObjContratos.AddContratoGasto(CveContrato, TxtGastosDescripcion.Text, TxtGastosImporte.Text.ToDecimal, Now, UsuarioActual.CveUsuario) Then
ErrorProceso = False
End If
ObjContratos.Dispose()
If Not ErrorProceso Then
CargaGastos()
RegistraScript("$('#ModalControlAddGastoVeiculo').modal('hide');")
End If
End Sub
End Class