public bool guardarDB(in_Ing_Egr_Inven_distribucion_Info info)
 {
     try
     {
         using (Entities_inventario Context = new Entities_inventario())
         {
             in_Ing_Egr_Inven_distribucion Entity = new in_Ing_Egr_Inven_distribucion();
             Entity.IdEmpresa              = info.IdEmpresa;
             Entity.IdSucursal             = info.IdSucursal;
             Entity.IdMovi_inven_tipo      = info.IdMovi_inven_tipo;
             Entity.IdNumMovi              = info.IdNumMovi;
             Entity.secuencia_distribucion = info.secuencia_distribucion = get_id(info.IdEmpresa, info.IdSucursal, info.IdMovi_inven_tipo, info.IdNumMovi);
             Entity.IdEmpresa_dis          = info.IdEmpresa_dis;
             Entity.IdSucursal_dis         = info.IdSucursal_dis;
             Entity.IdMovi_inven_tipo_dis  = info.IdMovi_inven_tipo_dis;
             Entity.IdNumMovi_dis          = info.IdNumMovi_dis;
             Entity.estado = info.estado;
             Entity.signo  = info.signo;
             Context.in_Ing_Egr_Inven_distribucion.Add(Entity);
             Context.SaveChanges();
         }
         return(true);
     }
     catch (Exception)
     {
         throw;
     }
 }
        private void llamar_formulario()
        {
            try
            {
                in_Ing_Egr_Inven_distribucion_Info row = (in_Ing_Egr_Inven_distribucion_Info)gridView_distribucion.GetFocusedRow();

                if (row == null)
                {
                    MessageBox.Show("Seleccione un registro", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                if (row.can_x_distribuir == 0)
                {
                    MessageBox.Show("El registro ya se encuentra totalmente distribuido", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                FrmIn_distribucion_x_lote_man frm = new FrmIn_distribucion_x_lote_man();
                frm.set_info(row);
                frm.MdiParent = this.MdiParent;
                frm.Show();
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Beispiel #3
0
        private void cmb_eliminar_Click(object sender, EventArgs e)
        {
            try
            {
                in_Ing_Egr_Inven_distribucion_Info row = (in_Ing_Egr_Inven_distribucion_Info)gridView_x_distribuir.GetFocusedRow();
                if (row == null)
                {
                    return;
                }

                if (row.IdProducto_padre == null)
                {
                    MessageBox.Show("El producto seleccionado no tiene producto padre asignado", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                if (MessageBox.Show("¿Está seguro que desea eliminar la distribución del producto seleccionado?", param.Nombre_sistema, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    blst_distribuido = new BindingList <in_Ing_Egr_Inven_distribucion_Info>(blst_distribuido.Where(q => q.IdProducto_padre != row.IdProducto_padre).ToList());
                    gridControl_distribuido.DataSource = null;
                    gridControl_distribuido.DataSource = blst_distribuido;
                    calcular_totales();
                }
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Beispiel #4
0
        public ActionResult Nuevo(int IdEmpresa = 0, int IdSucursal = 0, int IdMovi_inven_tipo = 0, decimal IdNumMovi = 0, string signo = "")
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion

            in_parametro_Info i_param = bus_in_param.get_info(IdEmpresa);
            if (i_param == null)
            {
                return(RedirectToAction("Index"));
            }

            in_Ing_Egr_Inven_distribucion_Info model = new in_Ing_Egr_Inven_distribucion_Info();
            model = bus_ing_inv.get_info(IdEmpresa, IdSucursal, IdMovi_inven_tipo, IdNumMovi, signo);

            if (model == null)
            {
                model = new in_Ing_Egr_Inven_distribucion_Info();
                var info_mov = bus_ingreso.get_info(IdEmpresa, IdSucursal, IdMovi_inven_tipo, IdNumMovi);
                model.IdEmpresa  = info_mov.IdEmpresa;
                model.IdSucursal = info_mov.IdSucursal;
                model.IdBodega   = Convert.ToInt32(info_mov.IdBodega);
            }
            model.IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession);
            cargar_combos(IdEmpresa);
            return(View(model));
        }
Beispiel #5
0
 public bool guardarDB(in_Ing_Egr_Inven_distribucion_Info info)
 {
     try
     {
         using (EntitiesInventario Context = new EntitiesInventario())
         {
             in_Ing_Egr_Inven_distribucion Entity = new in_Ing_Egr_Inven_distribucion();
             Entity.IdEmpresa              = info.IdEmpresa;
             Entity.IdSucursal             = info.IdSucursal;
             Entity.IdMovi_inven_tipo      = info.IdMovi_inven_tipo;
             Entity.IdNumMovi              = info.IdNumMovi;
             Entity.secuencia_distribucion = info.secuencia_distribucion = get_id(info.IdEmpresa, info.IdSucursal, info.IdMovi_inven_tipo, info.IdNumMovi);
             Entity.IdEmpresa_dis          = info.IdEmpresa_dis;
             Entity.IdSucursal_dis         = info.IdSucursal_dis;
             Entity.IdMovi_inven_tipo_dis  = info.IdMovi_inven_tipo_dis;
             Entity.IdNumMovi_dis          = info.IdNumMovi_dis;
             Entity.estado = info.estado;
             Entity.signo  = info.signo;
             Context.in_Ing_Egr_Inven_distribucion.Add(Entity);
             Context.SaveChanges();
         }
         return(true);
     }
     catch (Exception ex)
     {
         string mensaje = "";
         string arreglo = ToString();
         tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
         tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "",
                                                                                   "", "", "", "", DateTime.Now);
         oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
         mensaje = ex.ToString() + " " + ex.Message;
         throw new Exception(ex.ToString());
     }
 }
Beispiel #6
0
 private bool validar(in_Ing_Egr_Inven_distribucion_Info i_validar, ref string msg)
 {
     if (!bus_periodo.ValidarFechaTransaccion(i_validar.IdEmpresa, i_validar.cm_fecha, cl_enumeradores.eModulo.INV, ref msg))
     {
         return(false);
     }
     return(true);
 }
Beispiel #7
0
        public void UpdateRow(in_Ing_Egr_Inven_distribucion_Info info_det)
        {
            in_Ing_Egr_Inven_distribucion_Info edited_info = get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSession)).Where(m => m.secuencia_distribucion == info_det.secuencia_distribucion).First();

            edited_info.IdProducto     = info_det.IdProducto;
            edited_info.IdUnidadMedida = info_det.IdUnidadMedida;
            edited_info.mv_costo       = info_det.mv_costo;
            edited_info.dm_cantidad    = info_det.dm_cantidad;
        }
Beispiel #8
0
        private void cmb_distribuir_Click(object sender, EventArgs e)
        {
            try
            {
                in_Ing_Egr_Inven_distribucion_Info row = (in_Ing_Egr_Inven_distribucion_Info)gridView_x_distribuir.GetFocusedRow();
                if (row == null)
                {
                    return;
                }

                if (row.IdProducto_padre == null)
                {
                    MessageBox.Show("El producto seleccionado no tiene producto padre asignado", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                if (row.can_x_distribuir <= 0)
                {
                    MessageBox.Show("El producto seleccionado ya ha sido distribuido en su totalidad", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                FrmIn_producto_asignacion_lote frm = new FrmIn_producto_asignacion_lote();
                frm.set_funcion(Cl_Enumeradores.eFuncion_pantalla_lote.DISTRIBUIR);
                frm.set_info(Convert.ToDecimal(row.IdProducto_padre), 0, 0);
                frm.ShowDialog();
                if (frm.Result == System.Windows.Forms.DialogResult.OK)
                {
                    lst_retorno = frm.get_lista_retorno();
                    if (!validar_cantidades(lst_retorno, row.can_total == null ? 0 : Convert.ToDouble(row.can_total)))
                    {
                        return;
                    }
                    foreach (var item in lst_retorno)
                    {
                        in_Ing_Egr_Inven_distribucion_Info info_nuevo = new in_Ing_Egr_Inven_distribucion_Info {
                            IdProducto_padre = row.IdProducto_padre,
                            IdProducto       = item.IdProducto == null ? 0 : Convert.ToDecimal(item.IdProducto),
                            IdEmpresa        = param.IdEmpresa,
                            dm_cantidad      = item.cantidad,
                            pr_descripcion   = item.pr_descripcion,
                            IdUnidadMedida   = row.IdUnidadMedida
                        };
                        blst_distribuido.Add(info_nuevo);
                    }
                    gridControl_distribuido.DataSource = null;
                    gridControl_distribuido.DataSource = blst_distribuido;
                }
                calcular_totales();
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 public bool guardarDB(in_Ing_Egr_Inven_distribucion_Info info)
 {
     try
     {
         return(grabar_movimientos_x_distribucion(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
Beispiel #10
0
        public void AddRow(in_Ing_Egr_Inven_distribucion_Info info_det)
        {
            List <in_Ing_Egr_Inven_distribucion_Info> list = get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSession));

            info_det.secuencia_distribucion = list.Count == 0 ? 1 : list.Max(q => q.secuencia_distribucion) + 1;
            info_det.IdProducto             = info_det.IdProducto;
            info_det.IdUnidadMedida         = info_det.IdUnidadMedida;
            info_det.mv_costo    = info_det.mv_costo;
            info_det.dm_cantidad = info_det.dm_cantidad;

            list.Add(info_det);
        }
Beispiel #11
0
 public void set_info(in_Ing_Egr_Inven_distribucion_Info _info)
 {
     try
     {
         info_distribucion = _info;
     }
     catch (Exception ex)
     {
         Log_Error_bus.Log_Error(ex.ToString());
         MessageBox.Show(ex.ToString(), param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Beispiel #12
0
        public ActionResult EditingUpdate_list_dis([ModelBinder(typeof(DevExpressEditorsBinder))] in_Ing_Egr_Inven_distribucion_Info info_det)
        {
            DateTime?lote_fecha_fab;
            DateTime?lote_fecha_vcto;
            string   lote_num_lote  = "";
            string   pr_descripcion = "";
            string   unidad_medida  = "";
            in_Ing_Egr_Inven_distribucion_Info model = new in_Ing_Egr_Inven_distribucion_Info();

            if (ModelState.IsValid)
            {
                if (info_det.IdProducto != 0)
                {
                    if (Session["list_productos"] != null)
                    {
                        var list  = Session["list_productos"] as List <in_Producto_Info>;
                        var info_ = list.Where(v => v.IdProducto == info_det.IdProducto).FirstOrDefault();
                        lote_fecha_fab  = info_.lote_fecha_fab;
                        lote_fecha_vcto = info_.lote_fecha_vcto;
                        lote_num_lote   = info_.lote_num_lote;
                        pr_descripcion  = info_.pr_descripcion;
                        unidad_medida   = info_.IdUnidadMedida;

                        info_det.lote_fecha_fab  = lote_fecha_fab;
                        info_det.lote_fecha_vcto = lote_fecha_vcto;
                        info_det.lote_num_lote   = lote_num_lote;
                        info_det.pr_descripcion  = pr_descripcion;
                        info_det.IdUnidadMedida  = unidad_medida;
                        List_in_Ing_Egr_Inven_det.UpdateRow(info_det);
                    }
                }
                model.lst_distribuido = List_in_Ing_Egr_Inven_det.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSession));

                // actualizar lista distribuidas
                lst_x_distribuir = lst_x_distribuir_lis.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSession));
                foreach (var item in lst_x_distribuir)
                {
                    item.can_distribuida  = model.lst_distribuido.Sum(v => v.dm_cantidad);
                    item.can_x_distribuir = item.can_total - item.can_distribuida;
                }
                lst_x_distribuir_lis.set_list(lst_x_distribuir, Convert.ToDecimal(SessionFixed.IdTransaccionSession));
                if (SessionFixed.IdProducto_padre_dist != null)
                {
                    IdProducto_padre = Convert.ToDecimal(SessionFixed.IdProducto_padre_dist);
                }
                cargar_combos_detalle(IdProducto_padre);
            }
            return(PartialView("_GridViewPartial_distribuidos", model.lst_distribuido));
        }
Beispiel #13
0
        public ActionResult Nuevo(in_Ing_Egr_Inven_distribucion_Info model)
        {
            bus_ing_inv            = new in_Ing_Egr_Inven_distribucion_Bus();
            model.lst_distribuido  = List_in_Ing_Egr_Inven_det.get_list(model.IdTransaccionSession);
            model.lst_x_distribuir = lst_x_distribuir_lis.get_list(model.IdTransaccionSession);

            model.IdUsuario = SessionFixed.IdUsuario.ToString();
            model.IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa);
            if (!bus_ing_inv.guardarDB(model))
            {
                cargar_combos(model.IdEmpresa);
                return(View(model));
            }
            return(RedirectToAction("Index"));
        }
Beispiel #14
0
 public bool guardarDB(in_Ing_Egr_Inven_distribucion_Info info)
 {
     try
     {
         return(oData.guardarDB(info));
     }
     catch (Exception ex)
     {
         Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
         throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "guardarDB", ex.Message), ex)
               {
                   EntityType = typeof(in_Ing_Egr_Inven_distribucion_Bus)
               };
     }
 }
Beispiel #15
0
 public FrmIn_distribucion_x_lote_man()
 {
     InitializeComponent();
     Log_Error_bus     = new tb_sis_Log_Error_Vzen_Bus();
     param             = cl_parametrosGenerales_Bus.Instance;
     bus_distribucion  = new in_Ing_Egr_Inven_distribucion_Bus();
     info_distribucion = new in_Ing_Egr_Inven_distribucion_Info();
     blst_x_distribuir = new BindingList <in_Ing_Egr_Inven_distribucion_Info>();
     blst_distribuido  = new BindingList <in_Ing_Egr_Inven_distribucion_Info>();
     lst_unidad_medida = new List <in_UnidadMedida_Info>();
     bus_unidad_medida = new in_UnidadMedida_Bus();
     lst_retorno       = new List <in_producto_lote>();
     info_param_in     = new in_Parametro_Info();
     bus_param_in      = new in_Parametro_Bus();
     lst_motivo_inve   = new List <in_Motivo_Inven_Info>();
     bus_motivo_inve   = new in_Motivo_Inven_Bus();
 }
Beispiel #16
0
        public in_Ing_Egr_Inven_distribucion_Info get_info(int IdEmpresa, int IdSucursal, int IdMovi_inven_tipo, decimal IdNumMovi, string signo)
        {
            in_Ing_Egr_Inven_distribucion_Info info = new in_Ing_Egr_Inven_distribucion_Info();

            try
            {
                using (EntitiesInventario Context = new EntitiesInventario())
                {
                    info = (from q in Context.in_Ing_Egr_Inven_distribucion
                            where q.IdEmpresa == IdEmpresa &&
                            q.IdSucursal == IdSucursal &&
                            q.IdMovi_inven_tipo == IdMovi_inven_tipo &&
                            q.IdNumMovi == IdNumMovi &&
                            q.signo == signo &&
                            q.estado == true
                            select new in_Ing_Egr_Inven_distribucion_Info
                    {
                        IdEmpresa = q.IdEmpresa,
                        IdSucursal = q.IdSucursal,
                        IdMovi_inven_tipo = q.IdMovi_inven_tipo,
                        IdNumMovi = q.IdNumMovi,
                        secuencia_distribucion = q.secuencia_distribucion,
                        IdEmpresa_dis = q.IdEmpresa_dis,
                        IdSucursal_dis = q.IdSucursal_dis,
                        IdMovi_inven_tipo_dis = q.IdMovi_inven_tipo_dis,
                        IdNumMovi_dis = q.IdNumMovi_dis,
                        estado = q.estado,
                        signo = q.signo,
                    }).FirstOrDefault();
                }

                return(info);
            }
            catch (Exception ex)
            {
                string mensaje = "";
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "",
                                                                                          "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                mensaje = ex.ToString() + " " + ex.Message;
                throw new Exception(ex.ToString());
            }
        }
        public in_Ing_Egr_Inven_distribucion_Info get_info(int IdEmpresa, int IdSucursal, int IdMovi_inven_tipo, decimal IdNumMovi, string signo)
        {
            in_Ing_Egr_Inven_distribucion_Info info = new in_Ing_Egr_Inven_distribucion_Info();

            try
            {
                using (Entities_inventario Context = new Entities_inventario())
                {
                    info = (from q in Context.in_Ing_Egr_Inven_distribucion
                            where q.IdEmpresa == IdEmpresa &&
                            q.IdSucursal == IdSucursal &&
                            q.IdMovi_inven_tipo == IdMovi_inven_tipo &&
                            q.IdNumMovi == IdNumMovi &&
                            q.signo == signo &&
                            q.estado == true
                            select new in_Ing_Egr_Inven_distribucion_Info
                    {
                        IdEmpresa = q.IdEmpresa,
                        IdSucursal = q.IdSucursal,
                        IdMovi_inven_tipo = q.IdMovi_inven_tipo,
                        IdNumMovi = q.IdNumMovi,
                        secuencia_distribucion = q.secuencia_distribucion,
                        IdEmpresa_dis = q.IdEmpresa_dis,
                        IdSucursal_dis = q.IdSucursal_dis,
                        IdMovi_inven_tipo_dis = q.IdMovi_inven_tipo_dis,
                        IdNumMovi_dis = q.IdNumMovi_dis,
                        estado = q.estado,
                        signo = q.signo,
                    }).FirstOrDefault();
                }

                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
Beispiel #18
0
        public ActionResult EditingDelete(int secuencia_distribucion)
        {
            List_in_Ing_Egr_Inven_det.DeleteRow(secuencia_distribucion);
            in_Ing_Egr_Inven_distribucion_Info model = new in_Ing_Egr_Inven_distribucion_Info();

            model.lst_distribuido = List_in_Ing_Egr_Inven_det.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSession));

            // actualizar lista distribuidas
            lst_x_distribuir = lst_x_distribuir_lis.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSession));
            foreach (var item in lst_x_distribuir)
            {
                item.can_distribuida  = model.lst_distribuido.Sum(v => v.dm_cantidad);
                item.can_x_distribuir = item.can_total - item.can_distribuida;
            }
            lst_x_distribuir_lis.set_list(lst_x_distribuir, Convert.ToDecimal(SessionFixed.IdTransaccionSession));


            if (SessionFixed.IdProducto_padre_dist != null)
            {
                IdProducto_padre = Convert.ToDecimal(SessionFixed.IdProducto_padre_dist);
            }
            cargar_combos_detalle(IdProducto_padre);
            return(PartialView("_GridViewPartial_distribucion_det", model.lst_distribuido));
        }
 private void gridView_distribucion_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
 {
     try
     {
         in_Ing_Egr_Inven_distribucion_Info row = (in_Ing_Egr_Inven_distribucion_Info)gridView_distribucion.GetRow(e.RowHandle);
         if (row == null)
         {
             return;
         }
         if (row.can_x_distribuir == 0)
         {
             e.Appearance.ForeColor = Color.Blue;
         }
         if (row.can_distribuida > 0 && row.can_x_distribuir != 0)
         {
             e.Appearance.ForeColor = Color.Orange;
         }
     }
     catch (Exception ex)
     {
         Log_Error_bus.Log_Error(ex.ToString());
         MessageBox.Show(ex.ToString(), param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
        private bool grabar_movimientos_x_distribucion(in_Ing_Egr_Inven_distribucion_Info info_distribucion)
        {
            try
            {
                info_info_distribucion_in = bus_info_distribucion_in.get_info(info_distribucion.IdEmpresa, info_distribucion.IdSucursal, info_distribucion.IdMovi_inven_tipo, info_distribucion.IdNumMovi, (info_distribucion.signo == "+" ? "-" : "+"));
                lst_motivo_inve           = data_motivo.get_list(info_distribucion.IdEmpresa, false);
                distribucion_sin_lote     = oData.get_info(info_distribucion.IdEmpresa, info_distribucion.IdSucursal, info_distribucion.IdMovi_inven_tipo, info_distribucion.IdNumMovi, (info_distribucion.signo == "+" ? "-" : "+"));
                distribucion_con_lote     = oData.get_info(info_distribucion.IdEmpresa, info_distribucion.IdSucursal, info_distribucion.IdMovi_inven_tipo, info_distribucion.IdNumMovi, info_distribucion.signo);

                #region Crear movimiento sin lote
                if (info_info_distribucion_in == null)
                {
                    info_info_distribucion_in = info_distribucion;
                }
                #region Cabecera
                if (distribucion_sin_lote != null)
                {
                    mov_sin_lote = bus_ing_egr.get_info(distribucion_sin_lote.IdEmpresa_dis, distribucion_sin_lote.IdSucursal_dis, distribucion_sin_lote.IdMovi_inven_tipo_dis, distribucion_sin_lote.IdNumMovi_dis);
                }
                else
                {
                    info_motivo = lst_motivo_inve.FirstOrDefault(q => q.Genera_Movi_Inven == "S" && q.Tipo_Ing_Egr == (info_distribucion.signo == "+" ? "EGR" : "ING"));
                    if (info_motivo == null)
                    {
                        return(false);
                    }

                    mov_sin_lote = new in_Ing_Egr_Inven_Info
                    {
                        IdEmpresa         = info_distribucion.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.signo == "+" ? Convert.ToInt32(info_info_distribucion_in.IdMovi_inven_tipo) : Convert.ToInt32(info_info_distribucion_in.IdMovi_inven_tipo),
                        IdNumMovi         = 0,
                        IdBodega          = info_distribucion.IdBodega,
                        signo             = (info_distribucion.signo == "+" ? "-" : "+"),
                        CodMoviInven      = "Dis_" + info_distribucion.IdEmpresa.ToString("00") + "_" + info_distribucion.IdSucursal.ToString("00") + "_" + info_distribucion.IdMovi_inven_tipo.ToString("00") + "_" + info_distribucion.IdNumMovi.ToString("000000000"),
                        cm_observacion    = "Dis. x lote ",
                        cm_fecha          = DateTime.Now.Date,
                        IdUsuario         = info_distribucion.IdUsuario,
                        Estado            = "A",
                        Fecha_Transac     = DateTime.Now,
                        IdMotivo_Inv      = info_motivo.IdMotivo_Inv
                    };
                }
                #endregion

                #region Detalle
                foreach (var item in info_distribucion.lst_x_distribuir)
                {
                    if (item.can_distribuida > 0)
                    {
                        in_Ing_Egr_Inven_det_Info info_det = new in_Ing_Egr_Inven_det_Info
                        {
                            IdEmpresa                    = mov_sin_lote.IdEmpresa,
                            IdSucursal                   = mov_sin_lote.IdSucursal,
                            IdMovi_inven_tipo            = mov_sin_lote.IdMovi_inven_tipo,
                            IdNumMovi                    = mov_sin_lote.IdNumMovi,
                            IdBodega                     = (int)mov_sin_lote.IdBodega,
                            IdProducto                   = item.IdProducto,
                            dm_observacion               = "",
                            dm_cantidad                  = item.can_distribuida == null ? 0 : Convert.ToDouble(item.can_distribuida) * (info_distribucion.signo == "+" ? -1 : 1),
                            dm_cantidad_sinConversion    = item.can_distribuida == null ? 0 : Convert.ToDouble(item.can_distribuida),
                            mv_costo                     = item.mv_costo,
                            mv_costo_sinConversion       = item.mv_costo,
                            IdUnidadMedida               = item.IdUnidadMedida,
                            IdUnidadMedida_sinConversion = item.IdUnidadMedida,
                        };
                        mov_sin_lote.lst_in_Ing_Egr_Inven_det.Add(info_det);
                    }
                }
                #endregion

                #endregion

                #region Crear movimiento con lote
                in_Ing_Egr_Inven_Info mov_con_lote = new in_Ing_Egr_Inven_Info();

                #region Cabecera
                if (distribucion_con_lote != null)
                {
                    mov_con_lote = bus_ing_egr.get_info(distribucion_con_lote.IdEmpresa_dis, distribucion_con_lote.IdSucursal_dis, distribucion_con_lote.IdMovi_inven_tipo_dis, distribucion_con_lote.IdNumMovi_dis);
                }
                else
                {
                    info_motivo = lst_motivo_inve.FirstOrDefault(q => q.Genera_Movi_Inven == "S" && q.Tipo_Ing_Egr == (info_distribucion.signo == "+" ? "ING" : "EGR"));
                    if (info_motivo == null)
                    {
                        return(false);
                    }

                    mov_con_lote = new in_Ing_Egr_Inven_Info
                    {
                        IdEmpresa         = info_distribucion.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.signo == "+" ? Convert.ToInt32(info_info_distribucion_in.IdMovi_inven_tipo) : Convert.ToInt32(info_info_distribucion_in.IdMovi_inven_tipo),
                        IdNumMovi         = 0,
                        IdBodega          = info_distribucion.IdBodega,
                        signo             = info_distribucion.signo,
                        CodMoviInven      = "Dis_" + info_distribucion.IdEmpresa.ToString("00") + "_" + info_distribucion.IdSucursal.ToString("00") + "_" + info_distribucion.IdMovi_inven_tipo.ToString("00") + "_" + info_distribucion.IdNumMovi.ToString("000000000"),
                        cm_observacion    = "Dis. x lote - Sucursal: ",
                        cm_fecha          = DateTime.Now.Date,
                        IdUsuario         = info_distribucion.IdUsuario,
                        Estado            = "A",
                        Fecha_Transac     = DateTime.Now,
                        nom_pc            = "",
                        ip           = "",
                        IdMotivo_Inv = info_motivo.IdMotivo_Inv
                    };
                }
                #endregion

                #region Detalle
                foreach (var item in info_distribucion.lst_distribuido)
                {
                    in_Ing_Egr_Inven_det_Info info_det = new in_Ing_Egr_Inven_det_Info
                    {
                        IdEmpresa                    = mov_sin_lote.IdEmpresa,
                        IdSucursal                   = mov_sin_lote.IdSucursal,
                        IdMovi_inven_tipo            = mov_sin_lote.IdMovi_inven_tipo,
                        IdNumMovi                    = mov_sin_lote.IdNumMovi,
                        IdBodega                     = (int)info_distribucion.IdBodega,
                        IdProducto                   = item.IdProducto,
                        dm_observacion               = "",
                        dm_cantidad                  = item.dm_cantidad * (info_distribucion.signo == "+" ? 1 : -1),
                        dm_cantidad_sinConversion    = item.dm_cantidad,
                        mv_costo                     = item.mv_costo,
                        mv_costo_sinConversion       = item.mv_costo,
                        IdUnidadMedida               = item.IdUnidadMedida,
                        IdUnidadMedida_sinConversion = item.IdUnidadMedida,
                    };
                    mov_con_lote.lst_in_Ing_Egr_Inven_det.Add(info_det);
                }
                #endregion

                #endregion

                #region guardar movimientos y distribucion
                if (distribucion_sin_lote == null)
                {
                    if (!bus_ing_egr.guardarDB(mov_sin_lote, ""))
                    {
                        return(false);
                    }

                    distribucion_sin_lote = new in_Ing_Egr_Inven_distribucion_Info
                    {
                        IdEmpresa         = info_distribucion.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.IdMovi_inven_tipo,
                        IdNumMovi         = info_distribucion.IdNumMovi,

                        IdEmpresa_dis         = mov_sin_lote.IdEmpresa,
                        IdSucursal_dis        = mov_sin_lote.IdSucursal,
                        IdMovi_inven_tipo_dis = mov_sin_lote.IdMovi_inven_tipo,
                        IdNumMovi_dis         = mov_sin_lote.IdNumMovi,
                        signo  = mov_sin_lote.signo,
                        estado = true,
                    };

                    if (!oData.guardarDB(distribucion_sin_lote))
                    {
                        return(false);
                    }
                }
                else
                {
                    /* if (!bus_ing_egr.Reversar_Aprobacion(distribucion_sin_lote.IdEmpresa_dis, distribucion_sin_lote.IdSucursal_dis, distribucion_sin_lote.IdMovi_inven_tipo_dis, distribucion_sin_lote.IdNumMovi_dis, "S"))
                     *   return false;
                     */
                    if (!bus_ing_egr.modificarDB(mov_sin_lote))
                    {
                        return(false);
                    }
                }

                if (distribucion_con_lote == null)
                {
                    if (!bus_ing_egr.guardarDB(mov_con_lote, mov_con_lote.signo))
                    {
                        return(false);
                    }

                    distribucion_con_lote = new in_Ing_Egr_Inven_distribucion_Info
                    {
                        IdEmpresa         = info_distribucion.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.IdMovi_inven_tipo,
                        IdNumMovi         = info_distribucion.IdNumMovi,

                        IdEmpresa_dis         = mov_con_lote.IdEmpresa,
                        IdSucursal_dis        = mov_con_lote.IdSucursal,
                        IdMovi_inven_tipo_dis = mov_con_lote.IdMovi_inven_tipo,
                        IdNumMovi_dis         = mov_con_lote.IdNumMovi,
                        signo  = mov_con_lote.signo,
                        estado = true,
                    };

                    if (!oData.guardarDB(distribucion_con_lote))
                    {
                        return(false);
                    }
                }
                else
                {
                    /*
                     * if (!bus_ing_egr.Reversar_Aprobacion(distribucion_con_lote.IdEmpresa_dis, distribucion_con_lote.IdSucursal_dis, distribucion_con_lote.IdMovi_inven_tipo_dis, distribucion_con_lote.IdNumMovi_dis, "S"))
                     *  return false;
                     */
                    if (!bus_ing_egr.modificarDB(mov_con_lote))
                    {
                        return(false);
                    }
                }
                #endregion

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Beispiel #21
0
        private bool grabar_movimientos_x_distribucion()
        {
            try
            {
                info_param_in   = bus_param_in.Get_Info_Parametro(param.IdEmpresa);
                lst_motivo_inve = bus_motivo_inve.Get_List_Motivo_Inven(param.IdEmpresa, "");
                in_Ing_Egr_Inven_distribucion_Info distribucion_sin_lote = bus_distribucion.get_info(info_distribucion.IdEmpresa, info_distribucion.IdSucursal, info_distribucion.IdMovi_inven_tipo, info_distribucion.IdNumMovi, (info_distribucion.signo == "+" ? "-" : "+"));
                in_Ing_Egr_Inven_distribucion_Info distribucion_con_lote = bus_distribucion.get_info(info_distribucion.IdEmpresa, info_distribucion.IdSucursal, info_distribucion.IdMovi_inven_tipo, info_distribucion.IdNumMovi, info_distribucion.signo);
                in_Motivo_Inven_Info info_motivo = new in_Motivo_Inven_Info();
                in_Ing_Egr_Inven_Bus bus_ing_egr = new in_Ing_Egr_Inven_Bus();
                decimal Id      = 0;
                string  mensaje = "";

                #region Crear movimiento sin lote
                in_Ing_Egr_Inven_Info mov_sin_lote = new in_Ing_Egr_Inven_Info();

                #region Cabecera
                if (distribucion_sin_lote != null)
                {
                    mov_sin_lote = bus_ing_egr.Get_Info_Ing_Egr_Inven(distribucion_sin_lote.IdEmpresa_dis, distribucion_sin_lote.IdSucursal_dis, distribucion_sin_lote.IdMovi_inven_tipo_dis, distribucion_sin_lote.IdNumMovi_dis);
                }
                else
                {
                    info_motivo = lst_motivo_inve.FirstOrDefault(q => q.Genera_Movi_Inven == "S" && q.Tipo_Ing_Egr == (info_distribucion.signo == "+" ? ein_Tipo_Ing_Egr.EGR : ein_Tipo_Ing_Egr.ING));
                    if (info_motivo == null)
                    {
                        MessageBox.Show("No existe motivo de inventario parametrizado, por favor corregir", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return(false);
                    }

                    mov_sin_lote = new in_Ing_Egr_Inven_Info
                    {
                        IdEmpresa         = param.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.signo == "+" ? Convert.ToInt32(info_param_in.IdMovi_inven_tipo_x_distribucion_egr) : Convert.ToInt32(info_param_in.IdMovi_inven_tipo_x_distribucion_ing),
                        IdNumMovi         = 0,
                        IdBodega          = info_distribucion.IdBodega,
                        signo             = (info_distribucion.signo == "+" ? "-" : "+"),
                        CodMoviInven      = "Dis_" + info_distribucion.IdEmpresa.ToString("00") + "_" + info_distribucion.IdSucursal.ToString("00") + "_" + info_distribucion.IdMovi_inven_tipo.ToString("00") + "_" + info_distribucion.IdNumMovi.ToString("000000000"),
                        cm_observacion    = "Dis. x lote - Sucursal: " + info_distribucion.Su_Descripcion.Trim() + " # Movi: " + info_distribucion.IdNumMovi.ToString("000000000"),
                        cm_fecha          = DateTime.Now.Date,
                        IdUsuario         = param.IdUsuario,
                        Estado            = "A",
                        Fecha_Transac     = DateTime.Now,
                        nom_pc            = param.nom_pc,
                        ip           = param.ip,
                        IdMotivo_Inv = info_motivo.IdMotivo_Inv
                    };
                }
                #endregion

                #region Detalle
                foreach (var item in blst_x_distribuir)
                {
                    if (item.can_distribuida > 0)
                    {
                        in_Ing_Egr_Inven_det_Info info_det = new in_Ing_Egr_Inven_det_Info
                        {
                            IdEmpresa                    = mov_sin_lote.IdEmpresa,
                            IdSucursal                   = mov_sin_lote.IdSucursal,
                            IdMovi_inven_tipo            = mov_sin_lote.IdMovi_inven_tipo,
                            IdNumMovi                    = mov_sin_lote.IdNumMovi,
                            IdBodega                     = mov_sin_lote.IdBodega,
                            IdProducto                   = item.IdProducto,
                            dm_observacion               = "",
                            dm_cantidad                  = item.can_distribuida == null ? 0 : Convert.ToDouble(item.can_distribuida) * (info_distribucion.signo == "+" ? -1 : 1),
                            dm_cantidad_sinConversion    = item.can_distribuida == null ? 0 : Convert.ToDouble(item.can_distribuida),
                            mv_costo                     = item.mv_costo,
                            mv_costo_sinConversion       = item.mv_costo,
                            IdUnidadMedida               = item.IdUnidadMedida,
                            IdUnidadMedida_sinConversion = item.IdUnidadMedida,
                        };
                        mov_sin_lote.listIng_Egr.Add(info_det);
                    }
                }
                #endregion

                #endregion

                #region Crear movimiento con lote
                in_Ing_Egr_Inven_Info mov_con_lote = new in_Ing_Egr_Inven_Info();

                #region Cabecera
                if (distribucion_con_lote != null)
                {
                    mov_con_lote = bus_ing_egr.Get_Info_Ing_Egr_Inven(distribucion_con_lote.IdEmpresa_dis, distribucion_con_lote.IdSucursal_dis, distribucion_con_lote.IdMovi_inven_tipo_dis, distribucion_con_lote.IdNumMovi_dis);
                }
                else
                {
                    info_motivo = lst_motivo_inve.FirstOrDefault(q => q.Genera_Movi_Inven == "S" && q.Tipo_Ing_Egr == (info_distribucion.signo == "+" ? ein_Tipo_Ing_Egr.ING : ein_Tipo_Ing_Egr.EGR));
                    if (info_motivo == null)
                    {
                        MessageBox.Show("No existe motivo de inventario parametrizado, por favor corregir", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return(false);
                    }

                    mov_con_lote = new in_Ing_Egr_Inven_Info
                    {
                        IdEmpresa         = param.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.signo == "+" ? Convert.ToInt32(info_param_in.IdMovi_inven_tipo_x_distribucion_ing) : Convert.ToInt32(info_param_in.IdMovi_inven_tipo_x_distribucion_egr),
                        IdNumMovi         = 0,
                        IdBodega          = info_distribucion.IdBodega,
                        signo             = info_distribucion.signo,
                        CodMoviInven      = "Dis_" + info_distribucion.IdEmpresa.ToString("00") + "_" + info_distribucion.IdSucursal.ToString("00") + "_" + info_distribucion.IdMovi_inven_tipo.ToString("00") + "_" + info_distribucion.IdNumMovi.ToString("000000000"),
                        cm_observacion    = "Dis. x lote - Sucursal: " + info_distribucion.Su_Descripcion.Trim() + " # Movi: " + info_distribucion.IdNumMovi.ToString("000000000"),
                        cm_fecha          = DateTime.Now.Date,
                        IdUsuario         = param.IdUsuario,
                        Estado            = "A",
                        Fecha_Transac     = DateTime.Now,
                        nom_pc            = param.nom_pc,
                        ip           = param.ip,
                        IdMotivo_Inv = info_motivo.IdMotivo_Inv
                    };
                }
                #endregion

                #region Detalle
                foreach (var item in blst_distribuido)
                {
                    in_Ing_Egr_Inven_det_Info info_det = new in_Ing_Egr_Inven_det_Info
                    {
                        IdEmpresa                    = mov_sin_lote.IdEmpresa,
                        IdSucursal                   = mov_sin_lote.IdSucursal,
                        IdMovi_inven_tipo            = mov_sin_lote.IdMovi_inven_tipo,
                        IdNumMovi                    = mov_sin_lote.IdNumMovi,
                        IdBodega                     = mov_sin_lote.IdBodega,
                        IdProducto                   = item.IdProducto,
                        dm_observacion               = "",
                        dm_cantidad                  = item.dm_cantidad == null ? 0 : Convert.ToDouble(item.dm_cantidad) * (info_distribucion.signo == "+" ? 1 : -1),
                        dm_cantidad_sinConversion    = item.dm_cantidad == null ? 0 : Convert.ToDouble(item.dm_cantidad),
                        mv_costo                     = item.mv_costo,
                        mv_costo_sinConversion       = item.mv_costo,
                        IdUnidadMedida               = item.IdUnidadMedida,
                        IdUnidadMedida_sinConversion = item.IdUnidadMedida,
                    };
                    mov_con_lote.listIng_Egr.Add(info_det);
                }
                #endregion

                #endregion

                #region guardar movimientos y distribucion
                if (distribucion_sin_lote == null)
                {
                    if (!bus_ing_egr.GuardarDB(mov_sin_lote, ref Id, ref mensaje))
                    {
                        return(false);
                    }

                    distribucion_sin_lote = new in_Ing_Egr_Inven_distribucion_Info
                    {
                        IdEmpresa         = info_distribucion.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.IdMovi_inven_tipo,
                        IdNumMovi         = info_distribucion.IdNumMovi,

                        IdEmpresa_dis         = mov_sin_lote.IdEmpresa,
                        IdSucursal_dis        = mov_sin_lote.IdSucursal,
                        IdMovi_inven_tipo_dis = mov_sin_lote.IdMovi_inven_tipo,
                        IdNumMovi_dis         = mov_sin_lote.IdNumMovi,
                        signo  = mov_sin_lote.signo,
                        estado = true,
                    };

                    if (!bus_distribucion.guardarDB(distribucion_sin_lote))
                    {
                        return(false);
                    }
                }
                else
                {
                    if (!bus_ing_egr.Reversar_Aprobacion(distribucion_sin_lote.IdEmpresa_dis, distribucion_sin_lote.IdSucursal_dis, distribucion_sin_lote.IdMovi_inven_tipo_dis, distribucion_sin_lote.IdNumMovi_dis, "S"))
                    {
                        return(false);
                    }

                    if (!bus_ing_egr.ModificarDB(mov_sin_lote, ref mensaje))
                    {
                        return(false);
                    }
                }

                if (distribucion_con_lote == null)
                {
                    if (!bus_ing_egr.GuardarDB(mov_con_lote, ref Id, ref mensaje))
                    {
                        return(false);
                    }

                    distribucion_con_lote = new in_Ing_Egr_Inven_distribucion_Info
                    {
                        IdEmpresa         = info_distribucion.IdEmpresa,
                        IdSucursal        = info_distribucion.IdSucursal,
                        IdMovi_inven_tipo = info_distribucion.IdMovi_inven_tipo,
                        IdNumMovi         = info_distribucion.IdNumMovi,

                        IdEmpresa_dis         = mov_con_lote.IdEmpresa,
                        IdSucursal_dis        = mov_con_lote.IdSucursal,
                        IdMovi_inven_tipo_dis = mov_con_lote.IdMovi_inven_tipo,
                        IdNumMovi_dis         = mov_con_lote.IdNumMovi,
                        signo  = mov_con_lote.signo,
                        estado = true,
                    };

                    if (!bus_distribucion.guardarDB(distribucion_con_lote))
                    {
                        return(false);
                    }
                }
                else
                {
                    if (!bus_ing_egr.Reversar_Aprobacion(distribucion_con_lote.IdEmpresa_dis, distribucion_con_lote.IdSucursal_dis, distribucion_con_lote.IdMovi_inven_tipo_dis, distribucion_con_lote.IdNumMovi_dis, "S"))
                    {
                        return(false);
                    }

                    if (!bus_ing_egr.ModificarDB(mov_con_lote, ref mensaje))
                    {
                        return(false);
                    }
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
        }