Traspasar Apartados de un cliente a otro siendo un vendedor

This commit is contained in:
2020-10-09 12:59:23 -07:00
parent bde1f17499
commit b99c73f457
2 changed files with 444 additions and 138 deletions

View File

@@ -14,6 +14,13 @@
<li> <li>
<asp:LinkButton ID="ImgExcel" runat="server"><i class="fa fa-file-excel-o" style="font-weight:bold;"></i> Excel</asp:LinkButton> <asp:LinkButton ID="ImgExcel" runat="server"><i class="fa fa-file-excel-o" style="font-weight:bold;"></i> Excel</asp:LinkButton>
</li> </li>
<li>
<asp:UpdatePanel ID="UpTraspasar" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:LinkButton ID="LnkTraspasarApartados" runat="server" Visible="false" OnClick="LnkTraspasarApartados_Click" ValidationGroup="GrpTraspasar"><i class="fa fa-exchange" style="font-weight:bold;" ></i> Traspasar Apartado</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
</li>
</asp:Content> </asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server"> <asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
</asp:Content> </asp:Content>
@@ -32,7 +39,7 @@
</div> </div>
<div class="titlefiltros caption "> <div class="titlefiltros caption ">
<div class="row"> <div class="row">
<div class="col-md-1" >Fecha Inicial:</div> <div class="col-md-1">Fecha Inicial:</div>
<div class="col-md-1"> <div class="col-md-1">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="margin-top: -5px; padding: 5px 0px;"> <div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="margin-top: -5px; padding: 5px 0px;">
<asp:TextBox ID="txtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" Style="width: 80px;"></asp:TextBox> <asp:TextBox ID="txtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" Style="width: 80px;"></asp:TextBox>
@@ -47,7 +54,7 @@
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender> <ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
</div> </div>
</div> </div>
<div class="col-md-1" >Fecha Final:</div> <div class="col-md-1">Fecha Final:</div>
<div class="col-md-1" style="margin-left: -10px"> <div class="col-md-1" style="margin-left: -10px">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="margin-top: -5px; padding: 5px 0px;"> <div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="margin-top: -5px; padding: 5px 0px;">
<asp:TextBox ID="txtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" Style="width: 80px;"></asp:TextBox> <asp:TextBox ID="txtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10" Style="width: 80px;"></asp:TextBox>
@@ -62,11 +69,11 @@
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender> <ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
</div> </div>
</div> </div>
<div class="col-md-1" >Sucursal:</div> <div class="col-md-1">Sucursal:</div>
<div class="col-md-2"> <div class="col-md-2">
<asp:DropDownList ID="DdlSubProyectos" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" CssClass="form-control input-sm select2me"></asp:DropDownList> <asp:DropDownList ID="DdlSubProyectos" Width="150px" AppendDataBoundItems="true" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" CssClass="form-control input-sm select2me"></asp:DropDownList>
</div> </div>
<div class="col-md-1" >Vendedor:</div> <div class="col-md-1">Vendedor:</div>
<div class="col-md-2"> <div class="col-md-2">
<asp:DropDownList ID="DdlVendedor" Width="150px" runat="server" DataTextField="Vendedor" DataValueField="CveVendedor" CssClass="form-control input-sm select2me"></asp:DropDownList> <asp:DropDownList ID="DdlVendedor" Width="150px" runat="server" DataTextField="Vendedor" DataValueField="CveVendedor" CssClass="form-control input-sm select2me"></asp:DropDownList>
</div> </div>
@@ -95,21 +102,77 @@
</div> </div>
<%--GV DATOS--%> <%--GV DATOS--%>
<asp:UpdatePanel ID="UpDatos" UpdateMode="Conditional" runat="server"> <div class="row">
<ContentTemplate> <div class="col-md-12">
<asp:GridView ID="GvDatos" runat="server" data-sort="true" AutoGenerateColumns="False" EmptyDataText="No se encontraron datos con los filtros seleccionados" ToolTip="Listado de Movimientos" CssClass="Widthall table table-striped table-hover ScrollAD" GridLines="None"> <asp:UpdatePanel ID="UpDatos" UpdateMode="Conditional" runat="server">
<Columns> <ContentTemplate>
<asp:BoundField HeaderText="Producto" DataField="GPO"/> <asp:GridView ID="GvDatos" runat="server" data-sort="true" AutoGenerateColumns="False" DataKeyNames="CvePS,Serie,CveCliente,CveVendedor" EmptyDataText="No se encontraron datos con los filtros seleccionados" ToolTip="Listado de Movimientos" CssClass="Widthall table table-striped table-hover ScrollAD" GridLines="None">
<asp:BoundField HeaderText="Fecha" DataField="FechaMovto" DataFormatString="{0:d}"/> <Columns>
<asp:BoundField HeaderText="Unidad" DataField="UnidadMedida"/> <asp:BoundField HeaderText="Producto" DataField="GPO" />
<asp:BoundField HeaderText="Serie" DataField="Serie"/> <asp:BoundField HeaderText="Fecha" DataField="FechaMovto" DataFormatString="{0:d}" />
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" /> <asp:BoundField HeaderText="Unidad" DataField="UnidadMedida" />
<asp:BoundField HeaderText="Importe" DataField="Importe" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" /> <asp:BoundField HeaderText="Serie" DataField="Serie" />
</Columns> <asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
</asp:GridView> <asp:BoundField HeaderText="Importe" DataField="Importe" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" />
</ContentTemplate> <asp:TemplateField HeaderText="Cant. Transferir" ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" Visible="false">
</asp:UpdatePanel> <ItemTemplate>
<asp:TextBox ID="TxtCantidad" runat="server" CausesValidation="true" MaxLength="12" ValidationGroup="GrpTraspasar" Width="35px" Visible="false" type="number" ></asp:TextBox>
<asp:RangeValidator ID="RVCantidad" runat="server" Visible="false" Display="None" ControlToValidate="TxtCantidad" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> sobrepasa el valor permitido." MaximumValue='<%# CInt(Eval("Cantidad")) %>' MinimumValue="0" Type=" Integer" ValidationGroup="GrpTraspasar"></asp:RangeValidator>
<ajax:ValidatorCalloutExtender ID="VCECantidad" runat="server" HighlightCssClass="vco" TargetControlID="RVCantidad" PopupPosition="BottomRight" Width="300px"></ajax:ValidatorCalloutExtender>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<div id="ModalTraspaso" 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">Traspasar Apartados</h4>
</div>
<div class="modal-body">
<asp:UpdatePanel ID="UpGenerarTraspaso" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="row">
<div class="col-md-2">Cliente:</div>
<div class="col-md-10">
<ADS:Dropdownlost CssClassDdl="select2me" ID="DdlClienteTraspasar" data-metodo="getcliente" runat="server" DataTextField="NombreComercial" DataValueField="CveCliente" CssStyle="width:100%;"></ADS:Dropdownlost>
</div>
</div>
<br />
<div class="row">
<div class="col-md-2">Almacen:</div>
<div class="col-md-10">
<asp:Literal ID="LtlAlmacen" runat="server"></asp:Literal>
</div>
</div>
<br />
<div class="row">
<div class="col-md-2">Observaciones:</div>
<div class="col-md-10">
<asp:TextBox runat="server" ID="TxtObs" TextMode="MultiLine" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button ID="BtnTraspasar" runat="server" ClientIDMode="Static" Text="Traspasar" CssClass="btn btn-primary" OnClick="BtnTraspasar_Click" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</asp:Content> </asp:Content>
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server"> <asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
</asp:Content> </asp:Content>

View File

@@ -44,6 +44,15 @@ Partial Class Inventarios_RepApartados
DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1")) DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1"))
End If End If
If UsuarioActual.CveEmpresa = 119 Then
DdlClienteTraspasar.setEsWebService(True)
Else
DdlClienteTraspasar.setEsWebService(False)
DdlClienteTraspasar.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1)
DdlClienteTraspasar.DataBind()
DdlClienteTraspasar.ddl.Items.Insert(0, New ListItem("Todos", "-1"))
End If
Dim DTVendedores As New DataTable Dim DTVendedores As New DataTable
DTVendedores = GlobalDTVendedores(UsuarioActual.CveEmpresa, True) DTVendedores = GlobalDTVendedores(UsuarioActual.CveEmpresa, True)
DTVendedores.Merge(GlobalDTVendedores(UsuarioActual.CveEmpresa, False)) DTVendedores.Merge(GlobalDTVendedores(UsuarioActual.CveEmpresa, False))
@@ -129,6 +138,9 @@ Partial Class Inventarios_RepApartados
DdlClientesWS.SelectedText = "Todos" DdlClientesWS.SelectedText = "Todos"
End If End If
DdlClienteTraspasar.SelectedValue = "-1"
DdlClienteTraspasar.SelectedText = "Seleccione"
DdlVendedor.SelectedValueExist(CveVendedor) DdlVendedor.SelectedValueExist(CveVendedor)
DdlSubProyectos.SelectedValueExist(CveSucursal) DdlSubProyectos.SelectedValueExist(CveSucursal)
'DdlPS.ddl.SelectedValueExist(CvePS) 'DdlPS.ddl.SelectedValueExist(CvePS)
@@ -162,12 +174,18 @@ Partial Class Inventarios_RepApartados
Dim ObjInventarios As New ClsInventarios Dim ObjInventarios As New ClsInventarios
If ObjInventarios.ApartadosRep(CveAlmacenApartado, DdlClientesWS.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate) Then If ObjInventarios.ApartadosRep(CveAlmacenApartado, DdlClientesWS.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate) Then
GvDatos.DataSource = ObjInventarios.DtResultados
DtApartados = ObjInventarios.DtResultados DtApartados = ObjInventarios.DtResultados
GvDatos.DataBind()
UpDatos.Update()
End If End If
ObjInventarios.Dispose() ObjInventarios.Dispose()
GvDatos.DataSource = DtApartados
If DdlSubProyectos.SelectedValue.ToEntero() > 0 AndAlso DtApartados.COUNT("CveVendedor", $"CveVendedor={UsuarioActual.CveVendedor}") > 0 Then
GvDatos.Columns(6).Visible = True
LnkTraspasarApartados.Visible = True
End If
GvDatos.DataBind()
UpDatos.Update()
UpTraspasar.Update()
End Sub End Sub
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
@@ -182,7 +200,10 @@ Partial Class Inventarios_RepApartados
End If End If
If e.Row.DBCampo("IDGPO").ToString.ToEntero = 3 Then If e.Row.DBCampo("IDGPO").ToString.ToEntero = 3 Then
If e.Row.DBCampo("CveVendedor").ToEntero() = UsuarioActual.CveVendedor Then
e.Row.FCTextBox("TxtCantidad").Visible = True
e.Row.FCRangeValidator("RVCantidad").Visible = True
End If
End If End If
End If End If
@@ -229,4 +250,226 @@ Partial Class Inventarios_RepApartados
End Sub End Sub
#End Region #End Region
Protected Sub LnkTraspasarApartados_Click(sender As Object, e As EventArgs)
LtlAlmacen.Text = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=9).FiltroPrimeroValor("Almacen", $"CveSubProyecto={DdlSubProyectos.SelectedValue.ToEntero()}")
TxtObs.Text = ""
DdlClienteTraspasar.SelectedValue = "-1"
DdlClienteTraspasar.SelectedText = "Seleccione"
UpTraspasar.Update()
UpGenerarTraspaso.Update()
RegistraScript("$('#ModalTraspaso').modal('show');")
End Sub
Protected Sub BtnTraspasar_Click(sender As Object, e As EventArgs)
If DdlClienteTraspasar.SelectedValue.ToEntero() <= 0 Then
Alert("No se ha seleccionado ningun cliente", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
If Not GvDatos.Rows.Cast(Of GridViewRow).Any(Function(gvr) gvr.FCTextBox("TxtCantidad").Text.ToEntero() > 0) Then
Alert("No se ha seleccionado ningun cliente", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim ErrorMovInv As Boolean = False
Dim Mensaje As StringBuilder = New StringBuilder
Dim SalidasAlmacen As New List(Of MMovimientoAlmacen)
Dim EntradasAlmacen As New List(Of MMovimientoAlmacen)
Dim ObjInventario As New ClsInventarios
ObjInventario.IniciaTransacSQL()
Try
Dim CveClienteTraspasar As Integer = DdlClienteTraspasar.SelectedValue.ToEntero()
Dim CveAlmacenApartado As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=9).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={DdlSubProyectos.SelectedValue.ToEntero()}").ToEntero()
Dim DtTraspaso As DataTable = CrearDTTraspasosClientes()
'SE VAN A REALIZAR LOS MOVIMIENTOS POR CADA CLIENTE CONSIDERADO
For Each Row As DataRow In DtTraspaso.FiltraParametros("", DistinctColumns:={"CveCliente", "CveVendedor"}).Rows
'SACA LOS PS A TRASPASAR
Dim DtPSTraspasar As DataTable = DtTraspaso.FiltraParametros($"CveCliente={Row("CveCliente")} AND CveVendedor={Row("CveVendedor")}")
'CUADRA LOS LOS PRODUCTOS CON LO QUE SE PUEDE DESAPARTAR
Dim DtDetalleTraspasar As DataTable = CuadrarMovimientosApartado(CveAlmacenApartado, Row("CveCliente").ToString().ToEntero(), Row("CveVendedor").ToString().ToEntero(), DtPSTraspasar, ObjInventario)
DtPSTraspasar.Dispose()
Dim MovSalida = GenerarMovimientoAlmacen(CveAlmacenApartado, 8, Row("CveVendedor").ToString().ToEntero(), Row("CveCliente").ToString().ToEntero(), -1, TxtObs.Text.Trim(), DtDetalleTraspasar, ObjInventario, "RepApar/1")
DtDetalleTraspasar.Dispose()
ErrorMovInv = MovSalida.CveMovimiento <= 0
If Not ErrorMovInv Then
SalidasAlmacen.Add(MovSalida)
Dim MovEntrada = GenerarMovimientoAlmacen(CveAlmacenApartado, 9, UsuarioActual.CveVendedor, CveClienteTraspasar, MovSalida.CveMovimiento, TxtObs.Text.Trim(), Nothing, ObjInventario, "RepApar/2")
ErrorMovInv = MovEntrada.CveMovimiento <= 0
If Not ErrorMovInv Then
EntradasAlmacen.Add(MovEntrada)
End If
End If
Next
If Not ErrorMovInv Then
Mensaje.Append("Se realizó con éxito el traspaso.")
For Each MovSalida In SalidasAlmacen
Mensaje.AppendFormat("<br/><br/> Folio de Salida: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{0}</a></b>", MovSalida.Folio, MovSalida.CveMovimiento)
Mensaje.AppendFormat("<br/><a target='_blank' href='/Compras/PopUpVerFactura.aspx?P={0}'>Imprimir Reporte</a>", Encripta(String.Format("OP=Alm&CveMovimiento={0}", MovSalida.CveMovimiento)))
Next
For Each MovEntrada In EntradasAlmacen
Mensaje.AppendFormat("<br/><br/> Folio de Entrada: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{0}</a></b>", MovEntrada.Folio, MovEntrada.CveMovimiento)
Mensaje.AppendFormat("<br/><a target='_blank' href='/Compras/PopUpVerFactura.aspx?P={0}'>Imprimir Reporte</a>", Encripta(String.Format("OP=Alm&CveMovimiento={0}", MovEntrada.CveMovimiento)))
Next
End If
RegistraScript("$('#ModalTraspaso').modal('hide');")
Alert(Mensaje.ToString(), If(ErrorMovInv, TipoMensaje.MsgError, TipoMensaje.MsgInformacion))
Catch ex As Exception
ErrorMovInv = True
OnError("Ocurrió un error al realizar el traspaso", ex)
End Try
If ErrorMovInv Then
ObjInventario.RollBack()
Else
ObjInventario.Commit()
End If
ObjInventario.Dispose()
CargaDatos()
End Sub
Private Function CuadrarMovimientosApartado(CveAlmacenApartado As Integer, CveCliente As Integer, CveVendedor As Integer, DtPSTraspasar As DataTable, ByRef ObjInventarios As ClsInventarios) As DataTable
Dim DtRetorno As DataTable = Nothing
Dim DtDesapartado As DataTable = Nothing
If ObjInventarios.DesapartadosGet(CveAlmacenApartado, CveCliente, CveVendedor, UsuarioActual.CveEmpresa) Then
DtDesapartado = ObjInventarios.DtResultados.Copy()
DtRetorno = DtDesapartado.Clone()
End If
If DtRetorno IsNot Nothing Then
For Each RowCantidad As DataRow In DtPSTraspasar.Rows
Dim Filtro As New StringBuilder
Filtro.AppendFormat("CvePS={0}", RowCantidad("CvePS"))
'SI TIENE SERIE LA AGREGA AL FILTRO
If Not String.IsNullOrEmpty(RowCantidad("Serie").ToString()) Then
Filtro.AppendFormat("AND Serie='{0}'", RowCantidad("Serie"))
Else
Filtro.AppendFormat("AND ISNULL(Serie,'') = ''")
End If
Dim RowDesapartado As DataRow = DtDesapartado.Select(Filtro.ToString()).FirstOrDefault()
RowDesapartado("Cantidad") = RowCantidad("Cantidad")
DtRetorno.Rows.Add(RowDesapartado.ItemArray)
Next
End If
Return DtRetorno
End Function
Private Function CrearDTTraspasosClientes() As DataTable
Dim Dt As New DataTable
Dt.Columns.Add(New DataColumn("Cantidad", GetType(Integer)))
Dt.Columns.Add(New DataColumn("CvePS", GetType(Integer)))
Dt.Columns.Add(New DataColumn("Serie", GetType(String)))
Dt.Columns.Add(New DataColumn("CveCliente", GetType(Integer)))
Dt.Columns.Add(New DataColumn("CveVendedor", GetType(Integer)))
For Each GvRow As GridViewRow In GvDatos.Rows.Cast(Of GridViewRow).Where(Function(gvr) gvr.FCTextBox("TxtCantidad").Text.ToEntero() > 0)
Dim Row As DataRow = Dt.NewRow
Row("Cantidad") = GvRow.FCTextBox("TxtCantidad").Text.ToEntero()
Row("CvePS") = GvRow.DataKey("CvePS").ToEntero()
Row("Serie") = GvRow.DataKey("Serie")
Row("CveCliente") = GvRow.DataKey("CveCliente").ToEntero()
Row("CveVendedor") = GvRow.DataKey("CveVendedor").ToEntero()
Dt.Rows.Add(Row)
Next
Return Dt
End Function
Private Function GenerarMovimientoAlmacen(CveAlmacen As Integer, CveConceptoAlmacen As Integer, CveVendedor As Integer, CveCliente As Integer, CveMovimientoRelacionado As Integer, Obs As String, DtDetalle As DataTable, ObjInventario As ClsInventarios, Modulo As String) As MMovimientoAlmacen
Dim ErrorMovInv As Boolean = False
Dim Retorno As New MMovimientoAlmacen
Dim CveMovimiento As Integer = -1
Dim Folio As Integer = -1
CveMovimiento = ObjInventario.AddMovimiento(CveAlmacen, CveConceptoAlmacen, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1,
-1, -1, -1, Observaciones:=Obs,
MovimientoFijo:=True, CveMovimientoRelacionado:=CveMovimientoRelacionado, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:=Modulo)
Folio = ObjInventario.Folio
If Not CveMovimiento > 0 Then
ErrorMovInv = True
End If
'SI ES MOVIMIENTO DE SALIDA TOMA DE LA TABLA DONDE SE CUADRARON LOS MOVIMIENTOS
If Not ErrorMovInv AndAlso DtDetalle IsNot Nothing AndAlso CveMovimientoRelacionado <= 0 AndAlso CveConceptoAlmacen = 8 Then
For Each Dr As DataRow In DtDetalle.Rows
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString().ToEntero(), Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), Dr("PU").ToString().ToDecimal(), -1, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString().ToEntero(), Serie:=Dr("Serie").ToString(), Lote:=Dr("Lote").ToString(), FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero) Then
ErrorMovInv = True
Exit For
End If
Next
'SI ES MOVIMIENTO DE ENTRADA TOMA LOS DATOS DEL MOVIMIENTO DE SALIDA
ElseIf Not ErrorMovInv AndAlso DtDetalle Is Nothing AndAlso CveMovimientoRelacionado > 0 AndAlso CveConceptoAlmacen = 9 Then
Dim DtMovimientoDetalle As DataTable = Nothing
If ObjInventario.GetMovimientosDetalle(CveMovimientoRelacionado, UsuarioActual.CveEmpresa) Then
DtMovimientoDetalle = ObjInventario.DtResultados.Copy()
Else
ErrorMovInv = True
End If
If Not ErrorMovInv AndAlso DtMovimientoDetalle IsNot Nothing Then
For Each Dr As DataRow In DtMovimientoDetalle.Rows
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString().ToEntero(), Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero) Then
ErrorMovInv = True
Exit For
End If
Next
End If
DtMovimientoDetalle.Dispose()
End If
If Not ErrorMovInv Then
Retorno.CveMovimiento = CveMovimiento
Retorno.Folio = Folio
Retorno.CveConcepto = CveConceptoAlmacen
End If
Return Retorno
End Function
End Class
Public Class MMovimientoAlmacen
Public Property CveMovimiento As Integer
Public Property Folio As Integer
Public Property CveConcepto As Integer
End Class End Class