Cargar cotizaciones desde excel

This commit is contained in:
2019-10-24 11:42:25 -07:00
parent 997bd642fa
commit b505cf3ce4
6 changed files with 258 additions and 35 deletions

View File

@@ -1628,7 +1628,7 @@ Partial Class Inventarios_RecepcionEntrega
'Exit Sub 'Exit Sub
Dim TieneErrorExistencia = False Dim TieneErrorExistencia = False
If ObjInventario.GetExistenciasPSXML(StrXML.ToString(), DdlAlmacen.SelectedValue.ToEntero, TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveSubProyecto, CveVendedor, If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then If ObjInventario.GetExistenciasPSXML(StrXML.ToString(), DdlAlmacen.SelectedValue.ToEntero, TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveSubProyecto, CveVendedor, If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), If(TipoEntrega = 2, 1, -1), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
If ObjInventario.DtResultados.Rows.Count > 0 Then If ObjInventario.DtResultados.Rows.Count > 0 Then
TieneErrorExistencia = True TieneErrorExistencia = True
For Each Dr As DataRow In ObjInventario.DtResultados.Rows For Each Dr As DataRow In ObjInventario.DtResultados.Rows
@@ -2520,7 +2520,7 @@ Partial Class Inventarios_RecepcionEntrega
StrXML.Append("</conceptos>") StrXML.Append("</conceptos>")
Dim TieneErrorExistencia = False Dim TieneErrorExistencia = False
If ObjInventario.GetExistenciasPSXML(StrXML.ToString(), DdlAlmacen.SelectedValue.ToEntero, TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveSubProyecto, CveVendedor, If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), 1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then If ObjInventario.GetExistenciasPSXML(StrXML.ToString(), DdlAlmacen.SelectedValue.ToEntero, TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveSubProyecto, CveVendedor, If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), If(TipoEntrega = 2, 1, -1), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
If ObjInventario.DtResultados.Rows.Count > 0 Then If ObjInventario.DtResultados.Rows.Count > 0 Then
TieneErrorExistencia = True TieneErrorExistencia = True
For Each Dr As DataRow In ObjInventario.DtResultados.Rows For Each Dr As DataRow In ObjInventario.DtResultados.Rows

File diff suppressed because one or more lines are too long

View File

@@ -855,7 +855,8 @@
<asp:GridView ID="GvD" runat="server" AutoGenerateColumns="False" GridLines=" none" BorderColor="Transparent" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" DataKeyNames="SubProyecto, Cantidad, Importe, Descuento, CveOrdenCompra, CveUnidadMedida, CvePresupuestoEgreso, PS,CveClasificacion, CvePS, CveSubProyecto, CveActivoFijo, CodigoAF, TipoDato, Observacion, CveOrdenCompraDetalle,CveCompra,IVAPorcentaje,RetIVAPorcentaje,RetISRPorcentaje,IEPSPSPorcentaje,IEPSPSIVAPorcentaje" data-tableheader=".GVDHeader" ShowHeader="false" data-rows="0"> <asp:GridView ID="GvD" runat="server" AutoGenerateColumns="False" GridLines=" none" BorderColor="Transparent" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn"
DataKeyNames="SubProyecto, Cantidad, Importe, Descuento, CveOrdenCompra, CveUnidadMedida, CvePresupuestoEgreso, PS,CveClasificacion, CvePS, CveSubProyecto, CveActivoFijo, CodigoAF, TipoDato, Observacion, CveOrdenCompraDetalle,CveCompra,IVAPorcentaje,RetIVAPorcentaje,RetISRPorcentaje,IEPSPSPorcentaje,IEPSPSIVAPorcentaje" data-tableheader=".GVDHeader" ShowHeader="false" data-rows="0">
<Columns> <Columns>
<asp:TemplateField> <asp:TemplateField>
<EditItemTemplate> <EditItemTemplate>
@@ -1192,26 +1193,21 @@
<ajax:TabPanel HeaderText="Cotizaciones" runat="server" ID="tabCotizaciones" Enabled="false"> <ajax:TabPanel HeaderText="Cotizaciones" runat="server" ID="tabCotizaciones" Enabled="false">
<ContentTemplate> <ContentTemplate>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
</div> </div>
<div class="col-md-6" style="text-align: right!important"> <div class="col-md-6" style="text-align: right!important">
<asp:HyperLink ID="hplCargarCotExcel" Font-Size="13" CssClass="Texto" NavigateUrl="#" data-toggle="modal" data-target="#DivCargaExcelCotizaciones" runat="server" Text="<i class='fa fa-file-excel-o'></i>&nbsp; Cargar Cotización"></asp:HyperLink>
&nbsp;&nbsp;
<asp:HyperLink ID="hplAgregarCotizacion" Font-Size="13" CssClass="Texto thickbox" runat="server" Text="<i class='fa fa-plus'></i>&nbsp;Agregar Cotizacion" Style="cursor: pointer;" ToolTip="Agregar Cotizacion"></asp:HyperLink> <asp:HyperLink ID="hplAgregarCotizacion" Font-Size="13" CssClass="Texto thickbox" runat="server" Text="<i class='fa fa-plus'></i>&nbsp;Agregar Cotizacion" Style="cursor: pointer;" ToolTip="Agregar Cotizacion"></asp:HyperLink>
&nbsp;&nbsp; &nbsp;&nbsp;
<asp:HyperLink ID="hplEnviarCorreo" Font-Size="13" CssClass="Texto thickbox" runat="server" Text="<i class='fa fa-envelope'></i>&nbsp;Enviar cotización por correo" Style="cursor: pointer;" ToolTip="Enviar cotización por correo"></asp:HyperLink> <asp:HyperLink ID="hplEnviarCorreo" Font-Size="13" CssClass="Texto thickbox" runat="server" Text="<i class='fa fa-envelope'></i>&nbsp;Enviar cotización por correo" Style="cursor: pointer;" ToolTip="Enviar cotización por correo"></asp:HyperLink>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
</div> </div>
</div> </div>
<asp:UpdatePanel ID="uppCotizaciones" runat="server" UpdateMode="Conditional"> <asp:UpdatePanel ID="uppCotizaciones" runat="server" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<asp:GridView ID="gvCotizacionesANT" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontro ninguna Cotización" Visible="false" GridLines="None" BorderWidth="0" CssClass="table table-striped table-hover table-advance Widthall"> <asp:GridView ID="gvCotizacionesANT" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontro ninguna Cotización" Visible="false" GridLines="None" BorderWidth="0" CssClass="table table-striped table-hover table-advance Widthall">
<Columns> <Columns>
<asp:TemplateField> <asp:TemplateField>
@@ -1366,11 +1362,8 @@
</ContentTemplate> </ContentTemplate>
</asp:UpdatePanel> </asp:UpdatePanel>
</ContentTemplate> </ContentTemplate>
</ajax:TabPanel> </ajax:TabPanel>
<ajax:TabPanel HeaderText="Almacen" runat="server" ID="TabAlmacen" Visible="false"> <ajax:TabPanel HeaderText="Almacen" runat="server" ID="TabAlmacen" Visible="false">
<ContentTemplate> <ContentTemplate>
<asp:UpdatePanel ID="UpAlmacen" UpdateMode="Conditional" runat="server"> <asp:UpdatePanel ID="UpAlmacen" UpdateMode="Conditional" runat="server">
@@ -2548,15 +2541,63 @@
</asp:UpdatePanel> </asp:UpdatePanel>
</div> </div>
</div> </div>
<%--CARGA EXCEL--%>
<div id="DivCargaExcelCotizaciones" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Cargar Cotizaciones</h4>
</div>
<div class="modal-body">
<div class="row v-center">
<div class="col-md-6 v-center">
<label class="col-md-6 v-center truncate">Proveedor:</label>
<div class="col-md-6 v-center">
<asp:DropDownList ID="DdlProveedorCot" runat="server" Width="100%" CssClass="select2me" DataTextField="RazonSocial" DataValueField="CveProveedor"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RFVProveedorExcel" runat="server" ControlToValidate="DdlProveedorCot" InitialValue="-1" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Proveedor''</b> es necesario, por favor selecionarlo." ValidationGroup="GrpCargarExcel"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCProveedor" runat="server" HighlightCssClass="vco" TargetControlID="RFVProveedorExcel" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<h3>Arraste o haga click para subir el archivo Excel</h3>
</div>
</div>
<div class="row">
<div class="col-md-11" style="margin-left: 30px; margin-right: 30px;">
<asp:TextBox ID="TxtExcelCot" CssClass="ADSdropzone hidden" Text="" data-maxFile="1" runat="server"></asp:TextBox>
</div>
</div>
</div>
<div class="modal-footer">
<div class="row">
<div class="col-md-2" style="text-align: left">
<asp:UpdatePanel ID="UpDescargar" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="BtnDescargarFormatoCot" OnClick="BtnDescargarFormatoCot_Click" runat="server" CssClass="btn btn-warning" Text="Descargar Formato" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="BtnDescargarFormatoCot" />
</Triggers>
</asp:UpdatePanel>
</div>
<div class="col-md-10" style="text-align: right">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnCargaExcelCot" runat="server" OnClick="BtnCargaExcelCot_Click" CssClass="btn btn-success" Text="Aceptar" ValidationGroup="GrpCargarExcel"></asp:Button>
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="/Metronic/assets/global/plugins/dropzone/dropzone.js"></script> <script src="/Metronic/assets/global/plugins/dropzone/dropzone.js"></script>
</asp:Content> </asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="JS" runat="server"> <asp:Content ID="Content4" ContentPlaceHolderID="JS" runat="server">
<script src="/Metronic/assets/global/plugins/jquery.pulsate.min.js"></script> <script src="/Metronic/assets/global/plugins/jquery.pulsate.min.js"></script>

View File

@@ -1,5 +1,4 @@
Option Explicit On Option Explicit On
Option Strict On
Imports System.Data Imports System.Data
Imports Extensiones Imports Extensiones
@@ -176,7 +175,7 @@ Partial Class OC
End Property End Property
Private Property NumCotizacionesEvaluar As Integer Private Property NumCotizacionesEvaluar As Integer
Get Get
NumCotizacionesEvaluar = IfNull(ViewState("NumCotizacionesEvaluar"), "-1", ViewState("NumCotizacionesEvaluar")).ToString().ToEntero() NumCotizacionesEvaluar = IfNull(ViewState("NumCotizacionesEvaluar"), "0", ViewState("NumCotizacionesEvaluar")).ToString().ToEntero()
End Get End Get
Set(value As Integer) Set(value As Integer)
ViewState("NumCotizacionesEvaluar") = value ViewState("NumCotizacionesEvaluar") = value
@@ -1509,7 +1508,7 @@ Partial Class OC
'Si requiere cotizacion y el estatus siguiente es el final, desabilitar el combo del estatus 'Si requiere cotizacion y el estatus siguiente es el final, desabilitar el combo del estatus
If ChkCotizacion.Checked AndAlso objOC.CveEstatusSiguiente = CveEstatusFinalOK AndAlso (gvCotizaciones.Rows.Count = 0 Or NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1) Then If UsuarioActual.Empresa.Funcionalidad(556) = "1" AndAlso ChkCotizacion.Checked AndAlso objOC.CveEstatusSiguiente = CveEstatusFinalOK AndAlso (gvCotizaciones.Rows.Count = 0 Or NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1) Then
CboE.Enabled = False CboE.Enabled = False
LblMsgEstatus.Visible = True LblMsgEstatus.Visible = True
LblMsgEstatus.Text = "Cotización requerida para avanzar" LblMsgEstatus.Text = "Cotización requerida para avanzar"
@@ -1669,7 +1668,7 @@ Partial Class OC
'If ChkCotizacion.Checked AndAlso objOC.CveEstatusSiguiente = CveEstatusFinalOK AndAlso NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1 Then 'If ChkCotizacion.Checked AndAlso objOC.CveEstatusSiguiente = CveEstatusFinalOK AndAlso NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1 Then
If ChkCotizacion.Checked AndAlso CveEstatusSiguiente = CveEstatusFinalOK AndAlso NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1 Then If UsuarioActual.Empresa.Funcionalidad(556) = "1" AndAlso ChkCotizacion.Checked AndAlso CveEstatusSiguiente = CveEstatusFinalOK AndAlso NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1 Then
CboE.Enabled = False CboE.Enabled = False
LblMsgEstatus.Visible = True LblMsgEstatus.Visible = True
LblMsgEstatus.Text = "Cotización requerida para avanzar" LblMsgEstatus.Text = "Cotización requerida para avanzar"
@@ -1745,6 +1744,11 @@ Partial Class OC
DdlProveedores.DataSource = GlobalDTCompProveedores(CveEmpresaActual) DdlProveedores.DataSource = GlobalDTCompProveedores(CveEmpresaActual)
DdlProveedores.DataBind() DdlProveedores.DataBind()
DdlProveedores.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlProveedores.Items.Insert(0, New ListItem("Seleccione", "-1"))
DdlProveedorCot.DataSource = GlobalDTCompProveedores(CveEmpresaActual)
DdlProveedorCot.DataBind()
DdlProveedorCot.Items.Insert(0, New ListItem("Seleccione", "-1"))
UPProv.Update() : UPPEmp.Update() UPProv.Update() : UPPEmp.Update()
End Sub End Sub
@@ -2766,9 +2770,9 @@ Partial Class OC
If UsuarioActual.Empresa.Funcionalidad(565) = "1" Then If UsuarioActual.Empresa.Funcionalidad(565) = "1" Then
If CveConfianzaProveedor > 0 Then If CveConfianzaProveedor > 0 Then
If CveConfianzaProveedor = 1 AndAlso Me.NumCotizaciones >= 1 Then If CveConfianzaProveedor = 1 AndAlso Me.NumCotizacionesEvaluar >= 1 Then
TieneError = GeneraOrdenes(OC, Conta, ObjInventarios) TieneError = GeneraOrdenes(OC, Conta, ObjInventarios)
ElseIf CveConfianzaProveedor = 2 AndAlso Me.NumCotizaciones >= 2 Then ElseIf CveConfianzaProveedor = 2 AndAlso Me.NumCotizacionesEvaluar >= 2 Then
TieneError = GeneraOrdenes(OC, Conta, ObjInventarios) TieneError = GeneraOrdenes(OC, Conta, ObjInventarios)
Else Else
TieneError = True TieneError = True
@@ -2878,7 +2882,7 @@ Partial Class OC
Promocion = TxtPromocion.Text.Trim Promocion = TxtPromocion.Text.Trim
Try Try
If ChkCotizacion.Checked Then If ChkCotizacion.Checked AndAlso gvCotizaciones.Rows.Count > 0 Then
Dim CveProveedor = -1 Dim CveProveedor = -1
Dim TotalCot = 0.0, IVACot = 0D, RetIVA = 0.0, RetISR = 0.0, PorIVA = 0.0, Porcentaje = 0.0 Dim TotalCot = 0.0, IVACot = 0D, RetIVA = 0.0, RetISR = 0.0, PorIVA = 0.0, Porcentaje = 0.0
Dim IdPoliza = -1 Dim IdPoliza = -1
@@ -2932,6 +2936,7 @@ Partial Class OC
HuboError = True HuboError = True
Exit For Exit For
End If End If
End If End If
'AGREGA DETALLES 'AGREGA DETALLES
@@ -4174,7 +4179,7 @@ Partial Class OC
' uppOpciones.Update() ' uppOpciones.Update()
'End If 'End If
If ChkCotizacion.Checked AndAlso CveEstatusSiguiente = CveEstatusFinalOK AndAlso (gvCotizaciones.Rows.Count = 0 Or NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1) Then If UsuarioActual.Empresa.Funcionalidad(556) = "1" AndAlso ChkCotizacion.Checked AndAlso CveEstatusSiguiente = CveEstatusFinalOK AndAlso (gvCotizaciones.Rows.Count = 0 Or NumCotizacionesGanadoras < gvCotizaciones.Rows.Count - 1) Then
CboE.Enabled = False CboE.Enabled = False
LblMsgEstatus.Visible = True LblMsgEstatus.Visible = True
LblMsgEstatus.Text = "Cotización requerida para avanzar" LblMsgEstatus.Text = "Cotización requerida para avanzar"
@@ -7307,4 +7312,173 @@ Partial Class OC
#End Region #End Region
#Region "C A R G A R E X C E L "
Protected Sub BtnCargaExcelCot_Click(sender As Object, e As EventArgs)
If TxtExcelCot.getfiles().Archivos.Count > 0 Then
Dim file As Archivo = TxtExcelCot.getfiles().Archivos(0)
Dim Directorio As String = AppDomain.CurrentDomain.BaseDirectory & file.patch
CargarArchivoCot(Directorio, file.filename)
CargaCotizaciones(CveOrdenCompra)
RegistraScript("$('#DivCargaExcelCotizaciones').modal('hide');")
Else
Alert("No existe el archivo. Favor de subir un archivo excel a la plataforma.", TipoMensaje.MsgError)
End If
End Sub
Protected Sub BtnDescargarFormatoCot_Click(sender As Object, e As EventArgs)
'cantidad, Producto, Precio Unitario, Fecha Entrega, Observación
Dim DtPS As DataTable = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
Dim DtExcel As DataTable = (From row As GridViewRow In GvD.Rows
Join rowPS In DtPS On rowPS("CvePS").ToString().ToEntero() Equals row.DataKey("CvePS").ToEntero()
Where row.RowType = DataControlRowType.DataRow
Select New With
{
.Cantidad = row.DataKey("Cantidad"),
.Codigo = rowPS("Codigo"),
.Producto = rowPS("PSCodigo"),
.PrecioUnitario = row.DataKey("Importe").ToDecimal(),
.FechaEntrega = "",
.Observacion = row.DataKey("Observacion")
}).QueryToDataTable(True)
If DtExcel.Rows.Count < 2 Then
Alert("No hay resutados en la busqueda.", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
DtExcel.TableName = "Cotización"
'DtExcel.Columns("Codigo").ColumnName = "Código"
'DtExcel.Columns("PS").ColumnName = "Producto / Servicio"
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
Dim FileExcel As New ExcelFile()
Dim worksheet = FileExcel.Worksheets.Add(DtExcel.TableName)
worksheet.InsertDataTable(DtExcel, New InsertDataTableOptions() With
{
.ColumnHeaders = True,
.StartRow = 0,
.StartColumn = 0
})
worksheet.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
worksheet.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
Dim columnCount = worksheet.CalculateMaxUsedColumns()
For i = 0 To columnCount
worksheet.Columns(i).AutoFit(1, worksheet.Rows(0), worksheet.Rows(worksheet.Rows.Count - 1))
Next
FileExcel.Save(Response, "Cotizacion.xlsx", SaveOptions.XlsxDefault)
End Sub
Protected Sub CargarArchivoCot(Ruta As String, FileName As String)
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
Dim dt As DataTable = Nothing
Dim ErrorArchivo = False
Try
dt = ReadExcelFile(Ruta + FileName, True)
Catch ex As Exception
ErrorArchivo = True
OnError("Ocurrio un error al leer el archivo <br/>" & ex.Message, ex)
End Try
If Not ErrorArchivo AndAlso dt IsNot Nothing Then
'cantidad, Producto, Precio Unitario, Fecha Entrega, Observación
If DdlProveedorCot.SelectedValue.ToEntero() <= 0 Then
Alert("Debe Seleccionar la lista de precios a cargar. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(0).ColumnName = "Cantidad" Then
Alert("El nombre de la tercera columna debe ser 'Cantidad'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(1).ColumnName = "Codigo" Then
Alert("El nombre de la cuarta columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(2).ColumnName = "Producto" Then
Alert("El nombre de la cuarta columna debe ser 'Producto'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(3).ColumnName = "PrecioUnitario" Then
Alert("El nombre de la sexta columna debe ser 'PrecioUnitario'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(4).ColumnName = "FechaEntrega" Then
Alert("El nombre de la sexta columna debe ser 'FechaEntrega'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
If Not dt.Columns(5).ColumnName = "Observacion" Then
Alert("El nombre de la sexta columna debe ser 'Observacion'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
dt.TableName = "Datos"
Dim ProductosNoCargados As New StringBuilder()
Dim RowsCargados As Integer = 0
Dim RowsNoCargados As Integer = 0
Dim TieneError As Boolean = False
Dim objCotizacion As New ClsOC
objCotizacion.IniciaTransacSQL()
Try
Dim DtPS As DataTable = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa)
Dim DtOCDetalle As DataTable = (From row As GridViewRow In GvD.Rows
Join rowPS In DtPS On rowPS("CvePS").ToString().ToEntero() Equals row.DataKey("CvePS").ToEntero()
Where row.RowType = DataControlRowType.DataRow
Select New With
{
.CvePS = row.DataKey("CvePS").ToEntero(),
.CveUnidadMedida = rowPS("CveUnidadMedida").ToString().ToEntero(),
.CveOrdenCompraDetalle = row.DataKey("CveOrdenCompraDetalle").ToString().ToEntero(),
.Codigo = rowPS("Codigo")
}).QueryToDataTable(True)
Dim Folio As String = ""
Dim CveProveedor As Integer = DdlProveedorCot.SelectedValue.ToEntero()
If CveProveedor > 0 Then
If objCotizacion.AddCotizacion(CveOrdenCompra, CveProveedor, -1, Folio, TxtFecha.Text, "", DdlMoneda.SelectedValue.ToEntero, 0, UsuarioActual.CveUsuario) Then
For Each dr As DataRow In dt.Rows
Dim RowPS = DtOCDetalle.FiltroPrimero(String.Format("Codigo='{0}'", dr("Codigo").ToString()))
Dim CveOrdenCompraDetalle As Integer = RowPS("CveOrdenCompraDetalle").ToString().ToEntero()
Dim CvePS As Integer = RowPS("CvePS").ToString().ToEntero()
Dim CveUnidadMedida As Integer = RowPS("CveUnidadMedida").ToString().ToEntero()
Dim Fecha As String = If(String.IsNullOrEmpty(dr("FechaEntrega").ToString()), "", If(IsDate(dr("FechaEntrega").ToString()), dr("FechaEntrega").ToString(), ""))
TieneError = Not objCotizacion.AddCotizacionDetalle(objCotizacion.CveCotizacion, CvePS, dr("PrecioUnitario").ToString().ToDecimal(), dr("Cantidad").ToString().ToDouble, CveUnidadMedida,
dr("Cantidad").ToString().ToDouble, Fecha, dr("Observacion").ToString(), CveOrdenCompraDetalle)
If TieneError = True Then Exit For
Next
End If
Else
TieneError = False
End If
Catch ex As Exception
TieneError = True
OnError("Ocurrió un error al cargar las cotizaciones.", ex)
Finally
If TieneError Then
objCotizacion.RollBack()
Alert("Ocurrió un error al cargar las cotizaciones.")
Else
objCotizacion.Commit()
Alert("Las cotizaciones se cargaron correctamente.")
End If
objCotizacion.Dispose()
End Try
End If
End Sub
#End Region
End Class End Class

View File

@@ -229,11 +229,11 @@
</div> </div>
</div> </div>
<asp:GridView ID="gvSucursal" runat="server" AutoGenerateColumns="False" DataKeyNames="CveSubProyecto" EmptyDataText="No se encontraron Sucursales" ToolTip="Listado de Sucursales habilitadas para Productos o Servicios" <asp:GridView ID="gvSucursal" runat="server" AutoGenerateColumns="False" DataKeyNames="CveSubProyecto" EmptyDataText="No se encontraron Sucursales" ToolTip="Listado de Sucursales habilitadas para Productos o Servicios"
CssClass="table table-striped table-smallpadding table-advance table-hover Widthall" Style="text-align: center;" GridLines="None"> CssClass="table table-striped table-smallpadding table-advance table-hover Widthall" OnRowDataBound="gvSucursal_RowDataBound" Style="text-align: center;" GridLines="None">
<Columns> <Columns>
<asp:TemplateField> <asp:TemplateField>
<ItemTemplate> <ItemTemplate>
<asp:CheckBox ID="chkSucursal" runat="server" Checked='<%# Eval("Activo") %>' CssClass="CsMCheckGvSucursal" /> <asp:CheckBox ID="chkSucursal" runat="server" Checked="false" CssClass="CsMCheckGvSucursal" />
<asp:HiddenField ID="hdnEnBD" runat="server" Value='<%# If (IsDBNull(Eval("CvePS")),0,1) %>' /> <asp:HiddenField ID="hdnEnBD" runat="server" Value='<%# If (IsDBNull(Eval("CvePS")),0,1) %>' />
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
@@ -415,6 +415,9 @@
$('.CsMCheckGvSucursal').find('input[type=checkbox]').prop('checked', false); $('.CsMCheckGvSucursal').find('input[type=checkbox]').prop('checked', false);
} }
} }
function FncSeleccionaChk(chk) {
chk.checked = true;
}

View File

@@ -471,4 +471,9 @@ Partial Class Ventas_ActualizarPrecios
End Function End Function
#End Region #End Region
Protected Sub gvSucursal_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.FCTextBox("TxtPrecioMinimo").Attributes.Add("onKeyUp", String.Format("FncSeleccionaChk({0});", e.Row.FCCheckBox("chkSucursal").ClientID))
End If
End Sub
End Class End Class