void Guardar()
        {
            bool   guardar = true;
            string rpta    = "";

            if (tipo_salida == 1)
            {
                if (string.IsNullOrWhiteSpace(dateEditFechaIngreso.Text))
                {
                    XtraMessageBox.Show("DEBE INGRESAR LA FECHA DE INGRESO DE FORMA CORRECTA", Configuraciones.Configuraciones.NombreDelSistema, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    guardar = false;
                }
            }
            if (tipo_salida == 2)
            {
                guardar = true;
            }


            if (guardar)
            {
                MSalidaEnc salida = new MSalidaEnc();
                salida.IdTienda  = Configuraciones.Configuraciones.idtienda;
                salida.IdUsuario = Configuraciones.Configuraciones.idusuario;
                salida.IdDocumentoDeInventrio = id_tipo_de_documento;
                salida.IdSerie         = 1;
                salida.IdDestino       = id_tipo_de_documento == 4 ? id_destino : 0;
                salida.IdBodegaDestino = id_tipo_de_documento == 5 ? id_destino : 0;
                salida.Observaciones   = string.IsNullOrWhiteSpace(textObservaciones.Text) == true ? "" : textObservaciones.Text;
                salida.Descripcion     = id_tipo_de_documento == 4 ? "TIENDA ORIGEN: " + txtOrigen.Text + ". TIENDA DESTINO: " + txtDestino.Text : "BODEGA ORIGEN: " + txtOrigen.Text + ". BODEGA DESTINO: " + txtDestino.Text;
                salida.Origen          = id_tipo_de_documento == 4 ? "TIENDA ORIGEN: " + txtOrigen.Text : "BODEGA ORIGEN: " + txtOrigen.Text;
                salida.Destino         = id_tipo_de_documento == 4 ? "TIENDA DESTINO: " + txtDestino.Text : "BODEGA DESTINO: " + txtDestino.Text;
                salida.FechaDeIngreso  = tipo_salida == 1 ? Convert.ToDateTime(dateEditFechaIngreso.EditValue) : DateTime.Now;
                salida.Serie           = "A";
                salida.SeraIngresado   = true;
                salida.TipoSalida      = tipo_salida;
                salida.IdSubTraslado   = idsubtraslado;
                salida.NumeroEnvio     = 0;


                List <MSalidaDetalle> DetalleInserccion = new List <MSalidaDetalle>();
                for (int i = 0; i < gridViewSubTrasladoStandBy.DataRowCount; i++)
                {
                    MSalidaDetalle SalidaDetalle = new MSalidaDetalle();
                    SalidaDetalle.IdTienda             = Configuraciones.Configuraciones.idtienda;
                    SalidaDetalle.IdSubTrasladoDetalle = Convert.ToInt32(gridViewSubTrasladoStandBy.GetRowCellValue(i, "id_sub_traslado_detalle"));
                    SalidaDetalle.IdProducto           = Convert.ToInt32(gridViewSubTrasladoStandBy.GetRowCellValue(i, "idproducto"));
                    SalidaDetalle.Cantidad             = Convert.ToInt32(gridViewSubTrasladoStandBy.GetRowCellValue(i, "cantidad"));
                    SalidaDetalle.IdExistenciaDetalle  = Convert.ToInt32(gridViewSubTrasladoStandBy.GetRowCellValue(i, "id_existencia_detalle"));
                    SalidaDetalle.IdBodega             = Convert.ToInt32(gridViewSubTrasladoStandBy.GetRowCellValue(i, "id_bodega"));
                    SalidaDetalle.EsVenta = 0;
                    DetalleInserccion.Add(SalidaDetalle);
                }
                List <MSerieProducto> IngresoDetalleInsercionSeriesProducto = new List <MSerieProducto>();
                rpta = ControllerSalidas.Salidas(salida, DetalleInserccion, IngresoDetalleInsercionSeriesProducto);
                if (rpta == "OK")
                {
                    FormMovimientos traladoTiendas = FormMovimientos.GetInstancia();

                    //DocumentosInvetntario.DocumentosOperados.ImprimirDocumentoGenerado(
                    //    ControllerSalidas.Correlativo// correlativo del documento
                    //    , Configuraciones.Configuraciones.idtienda // id del documento
                    //    , id_tipo_de_documento// id tienda donde se reailizo la operacion
                    //    , id_origen // id origen
                    //    , id_destino);// id destino



                    traladoTiendas.ActualizarDespuesDeConfirmarTraslado();
                    this.Close();
                }
                else
                {
                    XtraMessageBox.Show("Ocurrio un error al crear el traslado, profavor consulte a su administrador de datos " + rpta, "Error al crear traslado");
                }
            }
        }
        void Guardar()
        {
            string rpta    = "";
            bool   guardar = true;

            if (string.IsNullOrWhiteSpace(textDestino.Text))
            {
                guardar = false;
                XtraMessageBox.Show("Debe escribir el destino", "Generando orden de compra");
            }
            //if (string.IsNullOrWhiteSpace(textObservaciones.Text))
            //{
            //    guardar = false;
            //    XtraMessageBox.Show("Debe escribir la observación","Generando orden de compra");
            //}
            if (string.IsNullOrWhiteSpace(textContactoRecibe.Text))
            {
                guardar = false;
                XtraMessageBox.Show("Debe escribir el contacto que recibe", "Generando orden de compra");
            }
            if (gridViewDetalleSubOrden.DataRowCount == 0)
            {
                guardar = false;
                XtraMessageBox.Show("La orden no se puede generar", "Generando orden de compra");
            }
            if (dateEditIngreosBodega.EditValue == null)
            {
                guardar = false;
                XtraMessageBox.Show("Debe especificar la fecha de ingreso", "Generando orden de compra");
            }


            if (guardar)
            {
                int          RowCount     = 0;
                int          CountChecked = 0;
                MOrdenCompra orden        = new MOrdenCompra();
                orden.IdTienda           = Configuraciones.Configuraciones.idtienda;
                orden.IdUsuario          = Configuraciones.Configuraciones.idusuario;
                orden.Serie              = "A";
                orden.Destino            = textDestino.Text;
                orden.Observaciones      = string.IsNullOrWhiteSpace(textObservaciones.Text) == true ? "" : textObservaciones.Text;
                orden.QuienRecibe        = textContactoRecibe.Text;
                orden.FechaIngresoBodega = Convert.ToDateTime(dateEditIngreosBodega.EditValue);
                orden.Idsuborden         = idsuborden;



                RowCount = gridViewDetalleSubOrden.DataRowCount;
                for (int i = 0; i < RowCount; i++)
                {
                    if (Convert.ToBoolean(gridViewDetalleSubOrden.GetRowCellValue(i, "verificado")))
                    {
                        CountChecked++;
                    }
                }

                if (CountChecked == RowCount)
                {
                    orden.Id_estado_orden_de_compra = 2;
                }
                if (CountChecked != RowCount)
                {
                    orden.Id_estado_orden_de_compra = 3;
                }
                if (CountChecked == 0)
                {
                    orden.Id_estado_orden_de_compra = 1;
                }


                List <MOrdenCompraDetalle> ordenDetalleInsercion = new List <MOrdenCompraDetalle>();
                for (int i = 0; i < gridViewDetalleSubOrden.DataRowCount; i++)
                {
                    MOrdenCompraDetalle ordenDet = new MOrdenCompraDetalle();
                    ordenDet.IdTienda          = Configuraciones.Configuraciones.idtienda;
                    ordenDet.IdSubOrdenDetalle = Convert.ToInt32(gridViewDetalleSubOrden.GetRowCellValue(i, "idsubordendetalle"));
                    ordenDet.Idproducto        = Convert.ToInt32(gridViewDetalleSubOrden.GetRowCellValue(i, "idproducto"));
                    ordenDet.Cantidad          = Convert.ToInt32(gridViewDetalleSubOrden.GetRowCellValue(i, "cantidad_autorizada"));
                    ordenDet.Verificado        = Convert.ToBoolean(gridViewDetalleSubOrden.GetRowCellValue(i, "verificado"));
                    ordenDetalleInsercion.Add(ordenDet);
                }

                List <MHistorialPreciosCostos> HistorialInsert = new List <MHistorialPreciosCostos>();
                for (int i = 0; i < gridViewDetalleSubOrden.DataRowCount; i++)
                {
                    if (Convert.ToBoolean(gridViewDetalleSubOrden.GetRowCellValue(i, "verificado")))
                    {
                        MHistorialPreciosCostos Historial = new MHistorialPreciosCostos();
                        Historial.IdTienda             = Configuraciones.Configuraciones.idtienda;
                        Historial.IdUsuarioCreacion    = Configuraciones.Configuraciones.idusuario;
                        Historial.IdOrigenMontoPrecios = 1;
                        Historial.IdSubOrden           = idsuborden;
                        Historial.IdProducto           = Convert.ToInt32(gridViewDetalleSubOrden.GetRowCellValue(i, "idproducto"));
                        Historial.Costo       = Convert.ToDecimal(gridViewDetalleSubOrden.GetRowCellValue(i, "ultimo_costo"));
                        Historial.PrecioVenta = Convert.ToDecimal(gridViewDetalleSubOrden.GetRowCellValue(i, "precioa"));
                        HistorialInsert.Add(Historial);
                    }
                }

                rpta = ControllerGenerarOrdenCompra.GenerarOrdenDeCompra(orden, ordenDetalleInsercion, HistorialInsert);

                if (rpta == "OK")
                {
                    //DOUCUMENTO GENERAL
                    MSalidaEnc salida = new MSalidaEnc();
                    salida.IdTienda  = Configuraciones.Configuraciones.idtienda;
                    salida.IdUsuario = Configuraciones.Configuraciones.idusuario;
                    salida.IdDocumentoDeInventrio = 1007;
                    salida.IdSerie         = 1;
                    salida.IdDestino       = 0;
                    salida.IdBodegaDestino = 0;
                    salida.Observaciones   = string.IsNullOrWhiteSpace(textObservaciones.Text) == true ? "" : textObservaciones.Text;
                    salida.Descripcion     = "PROOVEEDOR DESTINO: " + textProveedor.Text;
                    salida.Origen          = "TIENDA ORIGEN: " + Configuraciones.Configuraciones.tienda;
                    salida.Destino         = "PROVEEDOR DESTINO:" + textProveedor.Text;
                    salida.FechaDeIngreso  = Convert.ToDateTime(dateEditIngreosBodega.EditValue);
                    salida.Serie           = "A";
                    salida.SeraIngresado   = true;
                    salida.TipoSalida      = 3;
                    salida.IdSubTraslado   = 0;
                    salida.NumeroEnvio     = 0;
                    salida.Ingresado       = false;


                    List <MSalidaDetalle> DetalleInserccion = new List <MSalidaDetalle>();
                    for (int i = 0; i < gridViewDetalleSubOrden.DataRowCount; i++)
                    {
                        MSalidaDetalle SalidaDetalle = new MSalidaDetalle();
                        SalidaDetalle.IdTienda             = Configuraciones.Configuraciones.idtienda;
                        SalidaDetalle.IdSubTrasladoDetalle = 0;
                        SalidaDetalle.IdProducto           = Convert.ToInt32(gridViewDetalleSubOrden.GetRowCellValue(i, "idproducto"));
                        SalidaDetalle.Cantidad             = Convert.ToInt32(gridViewDetalleSubOrden.GetRowCellValue(i, "cantidad_autorizada"));
                        SalidaDetalle.IdExistenciaDetalle  = 0;
                        SalidaDetalle.IdBodega             = 0;
                        SalidaDetalle.EsVenta = 1; //es ventoa u otra salida
                        DetalleInserccion.Add(SalidaDetalle);
                    }
                    List <MSerieProducto> IngresoDetalleInsercionSeriesProducto = new List <MSerieProducto>();

                    rpta = ControllerSalidas.Salidas(salida, DetalleInserccion, IngresoDetalleInsercionSeriesProducto);

                    if (rpta == "OK")
                    {
                        FormImprimirOrdenCompra modalImprimir = new FormImprimirOrdenCompra();
                        modalImprimir.IdTienda = Configuraciones.Configuraciones.idtienda;
                        modalImprimir.IdOrden  = ControllerGenerarOrdenCompra.IdOrdenDeCompra;
                        modalImprimir.ShowDialog();
                        textProveedor.Text      = string.Empty;
                        textDestino.Text        = string.Empty;
                        textObservaciones.Text  = string.Empty;
                        textContactoRecibe.Text = string.Empty;
                        idsuborden = 0;
                        dtDetalleSubOrdenInsercion.Rows.Clear();

                        EsBotonOTecla = true;

                        this.Close();
                    }
                    else
                    {
                        XtraMessageBox.Show("Ocurrio un error al crear el traslado, profavor consulte a su administrador de datos " + rpta, "Error al crear traslado");
                    }
                }
                else
                {
                    XtraMessageBox.Show("Ocurrio un error al generar la orden, porfavor consulte a su administrador de datos: " + rpta, "Generando orden de compra");
                }
            }
        }
Beispiel #3
0
        public static string Salidas(MSalidaEnc salida, List <MSalidaDetalle> detalleInsercion, List <MSerieProducto> detalleInsercionSeries)
        {
            string         rpta      = "";
            MProcedimiento objProc   = new MProcedimiento();
            MExecute       objExcute = new MExecute();

            try
            {
                objProc.NombreProcedimiento = "spsave_traslado";
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@id_salida_enc", Valor = salida.IdSalidaEnc, Tipo = DbType.Int64, Out = true
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@id_movimiento_enc", Valor = salida.IdMovimientoEnc, Tipo = DbType.Int64, Out = true
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@id_tienda", Valor = salida.IdTienda, Tipo = DbType.Int64, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@id_usuario", Valor = salida.IdUsuario, Tipo = DbType.Int64, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@id_documento_inventario", Valor = salida.IdDocumentoDeInventrio, Tipo = DbType.Int64, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@id_serie", Valor = salida.IdSerie, Tipo = DbType.Int32, Out = false
                });
                if (salida.TipoSalida == 1)
                {
                    objProc.Parametros.Add(new MParametro {
                        Nombre = "@id_tienda_destino", Valor = salida.IdDestino, Tipo = DbType.Int32, Out = false
                    });
                    objProc.Parametros.Add(new MParametro {
                        Nombre = "@id_bodega_destino", Valor = DBNull.Value, Tipo = DbType.Int32, Out = false
                    });
                }
                if (salida.TipoSalida == 2)
                {
                    objProc.Parametros.Add(new MParametro {
                        Nombre = "@id_tienda_destino", Valor = DBNull.Value, Tipo = DbType.Int32, Out = false
                    });
                    objProc.Parametros.Add(new MParametro {
                        Nombre = "@id_bodega_destino", Valor = salida.IdBodegaDestino, Tipo = DbType.Int32, Out = false
                    });
                }
                if (salida.TipoSalida == 3)//3 es una venta o una orden de compra
                {
                    objProc.Parametros.Add(new MParametro {
                        Nombre = "@id_tienda_destino", Valor = DBNull.Value, Tipo = DbType.Int32, Out = false
                    });
                    objProc.Parametros.Add(new MParametro {
                        Nombre = "@id_bodega_destino", Valor = DBNull.Value, Tipo = DbType.Int32, Out = false
                    });
                }
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@observaciones", Valor = salida.Observaciones, Tipo = DbType.String, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@descripcion", Valor = salida.Descripcion, Tipo = DbType.String, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@origen_documento", Valor = salida.Origen, Tipo = DbType.String, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@destino_documento", Valor = salida.Destino, Tipo = DbType.String, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@destino", Valor = salida.Destino, Tipo = DbType.String, Out = false
                });
                if (salida.SeraIngresado)
                {
                    objProc.Parametros.Add(new MParametro {
                        Nombre = "@fecha_de_ingreso", Valor = salida.FechaDeIngreso, Tipo = DbType.DateTime, Out = false
                    });
                }
                if (!salida.SeraIngresado)
                {
                    objProc.Parametros.Add(new MParametro {
                        Nombre = "@fecha_de_ingreso", Valor = DBNull.Value, Tipo = DbType.DateTime, Out = false
                    });
                }

                objProc.Parametros.Add(new MParametro {
                    Nombre = "@serie", Valor = salida.Serie, Tipo = DbType.String, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@sera_ingresado", Valor = salida.SeraIngresado, Tipo = DbType.Boolean, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@correlativo_out", Valor = salida.CorrelativoOut, Tipo = DbType.Int32, Out = true
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@id_sub_traslado", Valor = salida.IdSubTraslado, Tipo = DbType.Int32, Out = false
                });
                objProc.Parametros.Add(new MParametro {
                    Nombre = "@numero_envio", Valor = salida.NumeroEnvio, Tipo = DbType.Int32, Out = false
                });
                objExcute.IniciarTran();
                rpta = objExcute.UpsertTransaction(objProc);

                if (detalleInsercion != null)
                {
                    if (rpta.Equals("OK"))
                    {
                        int idecabezado = Convert.ToInt32(objExcute.ParametroDeSalida("@id_salida_enc"));
                        Correlativo = Convert.ToInt32(objExcute.ParametroDeSalida("@correlativo_out"));
                        int id_operacion = Convert.ToInt32(objExcute.ParametroDeSalida("@id_movimiento_enc"));

                        IdSalida        = idecabezado;
                        IdMovimientoEnc = id_operacion;

                        foreach (MSalidaDetalle item in detalleInsercion)
                        {
                            item.IdSalidaEnc     = idecabezado;
                            item.IdMovimientoEnc = id_operacion;
                            MProcedimiento objProc1 = new MProcedimiento();
                            objProc1.NombreProcedimiento = "spsave_trasladodetalle";
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_tienda", Valor = item.IdTienda, Tipo = DbType.Int32, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_salida_enc", Valor = item.IdSalidaEnc, Tipo = DbType.Int32, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_movimiento_enc", Valor = item.IdMovimientoEnc, Tipo = DbType.Int32, Out = false
                            });
                            if (item.IdSubTrasladoDetalle == 0)
                            {
                                objProc1.Parametros.Add(new MParametro {
                                    Nombre = "@id_sub_traslado_detalle", Valor = DBNull.Value, Tipo = DbType.Int32, Out = false
                                });
                            }
                            else
                            {
                                objProc1.Parametros.Add(new MParametro {
                                    Nombre = "@id_sub_traslado_detalle", Valor = item.IdSubTrasladoDetalle, Tipo = DbType.Int32, Out = false
                                });
                            }
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_producto", Valor = item.IdProducto, Tipo = DbType.Int32, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@cantidad", Valor = item.Cantidad, Tipo = DbType.Int32, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_existencia_detalle", Valor = item.IdExistenciaDetalle, Tipo = DbType.Int32, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_bodega", Valor = item.IdBodega, Tipo = DbType.Int32, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@es_venta", Valor = item.EsVenta, Tipo = DbType.Int32, Out = false
                            });
                            objProc1.Parametros.Add(new MParametro {
                                Nombre = "@id_movimiento_det", Valor = item.IdMoviminetoDet, Tipo = DbType.Int64, Out = true
                            });
                            rpta = objExcute.UpsertTransaction(objProc1);

                            if (rpta.Equals("OK"))
                            {
                                int id_movimiento_det = Convert.ToInt32(objExcute.ParametroDeSalida("@id_movimiento_det"));

                                foreach (MSerieProducto itemSeries in detalleInsercionSeries)
                                {
                                    if (item.IdProducto == itemSeries.IdordenDeCompraDetalle)
                                    {
                                        itemSeries.IdMovimientoDet = id_movimiento_det;
                                        MProcedimiento objProc2 = new MProcedimiento();
                                        objProc2.NombreProcedimiento = "SPSave_SerieProducto";
                                        objProc2.Parametros.Add(new MParametro {
                                            Nombre = "@id_tienda", Valor = itemSeries.Idtienda, Tipo = DbType.Int32, Out = false
                                        });
                                        objProc2.Parametros.Add(new MParametro {
                                            Nombre = "@id_movimiento_det", Valor = itemSeries.IdMovimientoDet, Tipo = DbType.Int32, Out = false
                                        });
                                        objProc2.Parametros.Add(new MParametro {
                                            Nombre = "@numero", Valor = itemSeries.Numero, Tipo = DbType.Int32, Out = false
                                        });
                                        objProc2.Parametros.Add(new MParametro {
                                            Nombre = "@serie", Valor = itemSeries.Serie, Tipo = DbType.String, Out = false
                                        });
                                        rpta = objExcute.UpsertTransaction(objProc2);
                                        if (!rpta.Equals("OK"))
                                        {
                                            break;
                                        }
                                    }
                                }
                            }
                            if (!rpta.Equals("OK"))
                            {
                                break;
                            }
                        }
                    }
                }

                if (rpta.Equals("OK"))
                {
                    objExcute.TranasctionCommit();
                }
                else
                {
                    objExcute.TranasctionRollback();
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                objExcute.cerrarConexionTransaccion();
            }
            return(rpta);
        }