예제 #1
0
        private void gridVwOCPend_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            try
            {
                info = (com_ordencompra_local_Info)this.gridVwOCPend.GetFocusedRow();

                if (e.Column.Name == "colap_descripcion")
                {
                    lista = bus_inven.Get_List_Ing_Egr_Inven_det_x_OrdenCompra(info.IdEmpresa, info.IdSucursal, info.IdOrdenCompra);


                    if (lista.Count > 0)
                    {
                        FrmIn_Detalle_Ing_Egr_Bodega_Alerta frmConsulta = new FrmIn_Detalle_Ing_Egr_Bodega_Alerta();
                        frmConsulta.Text            = "Alertas";
                        frmConsulta.lblMensaje.Text = "La OC#: " + info.IdOrdenCompra + " tiene Ingesos a Bodega";

                        frmConsulta.set_info_list(lista);
                        info.IdEstadoAprobacion_cat = info.IdEstadoAprobacion_AUX;
                        info.check = false;
                        frmConsulta.ShowDialog();
                        return;
                    }
                    else
                    {
                        if (info.IdEstadoAprobacion_AUX == "ANU")
                        {
                            MessageBox.Show("No se pueden modificar registros Inactivos");
                        }
                    }
                }

                CalcularTotal();
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        public com_ordencompra_local_Info get_info(int IdEmpresa, int IdSucursal, decimal IdOrdenCompra)
        {
            try
            {
                com_ordencompra_local_Info info = new com_ordencompra_local_Info();
                using (Entities_compras Context = new Entities_compras())
                {
                    com_ordencompra_local Entity = Context.com_ordencompra_local.Where(q => q.IdEmpresa == IdEmpresa && q.IdSucursal == IdSucursal && q.IdOrdenCompra == IdOrdenCompra).FirstOrDefault();
                    if (Entity == null)
                    {
                        return(null);
                    }

                    info = new com_ordencompra_local_Info
                    {
                        IdEmpresa              = Entity.IdEmpresa,
                        IdComprador            = Entity.IdComprador,
                        IdOrdenCompra          = Entity.IdOrdenCompra,
                        IdDepartamento         = Entity.IdDepartamento,
                        IdEstadoAprobacion_cat = Entity.IdEstadoAprobacion_cat,
                        IdEstado_cierre        = Entity.IdEstado_cierre,
                        IdProveedor            = Entity.IdProveedor,
                        IdSucursal             = Entity.IdSucursal,
                        Tipo                = Entity.Tipo,
                        SecuenciaTipo       = Entity.SecuenciaTipo,
                        IdTerminoPago       = Entity.IdTerminoPago,
                        Estado              = Entity.Estado,
                        oc_plazo            = Entity.oc_plazo,
                        oc_observacion      = Entity.oc_observacion,
                        oc_fecha            = Entity.oc_fecha,
                        oc_fechaVencimiento = Entity.oc_fechaVencimiento,
                    };
                }
                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
예제 #3
0
        public ActionResult Nuevo(com_ordencompra_local_Info model)
        {
            model.IdUsuario = SessionFixed.IdUsuario;
            model.lst_det   = List_det.get_list(model.IdTransaccionSession);
            if (!ModelState.IsValid)
            {
                SessionFixed.IdTransaccionSessionActual = model.IdTransaccionSession.ToString();
                cargar_combos(model.IdEmpresa);
                return(View(model));
            }

            var IdUsuario_Com = SessionFixed.IdUsuario;
            com_comprador_Info info_comprador = bus_comprador.get_info_x_IdUsuario(model.IdEmpresa, IdUsuario_Com);

            if (info_comprador == null)
            {
                model.IdComprador = 0;
            }
            else
            {
                model.IdComprador = info_comprador.IdComprador;
            }

            if (!Validar(model, ref mensaje))
            {
                ViewBag.mensaje = mensaje;
                SessionFixed.IdTransaccionSessionActual = model.IdTransaccionSession.ToString();
                cargar_combos(model.IdEmpresa);
                return(View(model));
            }

            if (!bus_ordencompra.guardarDB(model))
            {
                SessionFixed.IdTransaccionSessionActual = model.IdTransaccionSession.ToString();
                cargar_combos(model.IdEmpresa);
                return(View(model));
            }
            //return RedirectToAction("Index");
            return(RedirectToAction("Modificar", new { IdEmpresa = model.IdEmpresa, IdSucursal = model.IdSucursal, IdOrdenCompra = model.IdOrdenCompra, Exito = true }));
        }
예제 #4
0
        private void btnImportar_Click_1(object sender, EventArgs e)
        {
            try
            {
                FrmCom_Consulta_OrdenCompra       frm = new FrmCom_Consulta_OrdenCompra();
                com_ordencompra_local_Info        Info_OrdenCompra = new com_ordencompra_local_Info();
                List <com_ordencompra_local_Info> LstOC            = new List <com_ordencompra_local_Info>();
                com_ordencompra_local_Bus         BusOC            = new com_ordencompra_local_Bus();

                //LimpiarDatos();
                if (ucCp_Proveedor1.get_ProveedorInfo() != null)
                {
                    LstOC = BusOC.Get_List_ordencompra_local_x_Proveedor(param.IdEmpresa, ucCp_Proveedor1.get_ProveedorInfo().IdProveedor);
                    if (LstOC != null)
                    {
                        if (LstOC.Count != 0)
                        {
                            frm.lista = LstOC;
                            frm.ShowDialog();
                            Info_OrdenCompra = frm.Info_orden_compra;
                            cargar_OC_x_Importacion(Info_OrdenCompra);
                        }
                        else
                        {
                            MessageBox.Show("El Proveedor no tiene Ordenes de Compra ");
                        }
                    }
                }
                else
                {
                    MessageBox.Show("No ha seleccionado ningún proveedor.\nPor favor seleccione un proveedor.", "Sistemas", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #5
0
        public Boolean GuardarDB(com_ordencompra_local_Info Info, ref decimal id, ref string msg)
        {
            try
            {
                Boolean res = true;
                if (Validar_objeto(Info, ref msg))
                {
                    //cabecera
                    res = BusOC.GuardarDB(Info, ref id);

                    foreach (var item in Info.listDetalle)
                    {
                        item.IdEmpresa     = Info.IdEmpresa;
                        item.IdSucursal    = Info.IdSucursal;
                        item.IdOrdenCompra = id;
                        //item.IdUnidadMedida=Info.listDetalle.
                    }
                    //detalle
                    res = BusOC_det.GuardarDB(Info.listDetalle, ref msg);


                    // opcion habilitada cuando se graba desde la pantalla aprobacion de solicitudes con generacion de orden compra
                }
                else
                {
                    res = false;
                }

                return(res);
            }
            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(com_ordencompra_local_Bus)
                      };
            }
        }
예제 #6
0
        public ActionResult Modificar(com_ordencompra_local_Info model)
        {
            model.IdUsuarioUltMod = SessionFixed.IdUsuario;
            model.lst_det         = List_det.get_list(model.IdTransaccionSession);

            if (!Validar(model, ref mensaje))
            {
                ViewBag.mensaje = mensaje;
                SessionFixed.IdTransaccionSessionActual = model.IdTransaccionSession.ToString();
                cargar_combos(model.IdEmpresa);
                return(View(model));
            }

            if (!bus_ordencompra.modificarDB(model))
            {
                SessionFixed.IdTransaccionSessionActual = model.IdTransaccionSession.ToString();
                cargar_combos(model.IdEmpresa);
                return(View(model));
            }
            //return RedirectToAction("Index");
            return(RedirectToAction("Modificar", new { IdEmpresa = model.IdEmpresa, IdSucursal = model.IdSucursal, IdOrdenCompra = model.IdOrdenCompra, Exito = true }));
        }
예제 #7
0
 private void mnu_consultar_Click(object sender, EventArgs e)
 {
     try
     {
         InfoOC = (com_ordencompra_local_Info)gridVwOCPend.GetFocusedRow();
         if (InfoOC != null)
         {
             frm = new frmCom_OrdenCompra_Mant();
             frm.Set_Info(InfoOC);
             frm.Set_Accion(Cl_Enumeradores.eTipo_action.consultar);
             frm.ShowDialog();
         }
         else
         {
             MessageBox.Show("Seleccione un Registro a Mostrar", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return;
         }
     }
     catch (Exception ex)
     {
         Log_Error_bus.Log_Error(ex.ToString());
         MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
        private void ucGe_Menu_Mantenimiento_x_usuario_event_btnconsultar_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            try
            {
                InfoOC = (com_ordencompra_local_Info)gridViewOrdenCompra.GetFocusedRow();
                if (InfoOC != null)
                {
                    frm         = new FrmCom_GeneracionOrdenCompraMantenimiento();
                    frm.InfoCab = InfoOC;

                    frm.set_Accion(Cl_Enumeradores.eTipo_action.consultar); frm.MdiParent = this.MdiParent;
                    frm.Show();
                }
                else
                {
                    MessageBox.Show("Seleccione un Registro a Mostrar", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return;
                }
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
            }
        }
        public ActionResult EditingUpdate([ModelBinder(typeof(DevExpressEditorsBinder))] in_Ing_Egr_Inven_det_Info info_det)
        {
            com_ordencompra_local_det_List Lista_OC = new com_ordencompra_local_det_List();
            int IdEmpresa = Convert.ToInt32(SessionFixed.IdEmpresa);

            List <in_Ing_Egr_Inven_det_Info>  lista_detalle    = List_in_Ing_Egr_Inven_det.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            List <com_ordencompra_local_Info> lista_detalle_oc = Lista_OC.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            in_Ing_Egr_Inven_det_Info         info_det_editar  = lista_detalle.Where(q => q.Secuencia == info_det.Secuencia).FirstOrDefault();
            com_ordencompra_local_Info        info_oc          = lista_detalle_oc.Where(q => q.IdEmpresa == info_det_editar.IdEmpresa && q.IdSucursal == info_det_editar.IdSucursal && q.IdOrdenCompra == info_det_editar.IdOrdenCompra && q.IdProducto == info_det_editar.IdProducto).FirstOrDefault();

            info_det_editar.dm_cantidad_sinConversion = info_det.dm_cantidad_sinConversion;

            if (info_det_editar != null)
            {
                if (info_det_editar.IdProducto != 0)
                {
                    in_Producto_Info info_producto = bus_producto.get_info(IdEmpresa, info_det_editar.IdProducto);
                    if (info_producto != null)
                    {
                        info_det.Saldo          = info_det_editar.Saldo;
                        info_det.IdProducto     = info_det_editar.IdProducto;
                        info_det.pr_descripcion = info_producto.pr_descripcion_combo;
                        info_det.IdUnidadMedida_sinConversion = info_producto.IdUnidadMedida;
                    }
                }
            }


            if (info_det_editar.dm_cantidad_sinConversion > 0 && info_det_editar.dm_cantidad_sinConversion <= info_det_editar.Saldo)
            {
                List_in_Ing_Egr_Inven_det.UpdateRow(info_det_editar, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            }
            var model = List_in_Ing_Egr_Inven_det.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));

            cargar_combos_detalle();
            return(PartialView("_GridViewPartial_inv_det", model));
        }
예제 #10
0
        public ActionResult Nuevo(int IdEmpresa = 0)
        {
            #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
            #region Permisos
            seg_Menu_x_Empresa_x_Usuario_Info info = bus_permisos.get_list_menu_accion(Convert.ToInt32(SessionFixed.IdEmpresa), SessionFixed.IdUsuario, "Compras", "OrdenServicio", "Index");
            if (!info.Nuevo)
            {
                return(RedirectToAction("Index"));
            }
            #endregion

            com_parametro_Info i_param = bus_param.get_info(IdEmpresa);
            if (i_param == null)
            {
                return(RedirectToAction("Index"));
            }
            com_ordencompra_local_Info model = new com_ordencompra_local_Info
            {
                IdEmpresa              = IdEmpresa,
                oc_fecha               = DateTime.Now.Date,
                oc_fechaVencimiento    = DateTime.Now.Date,
                IdTransaccionSession   = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual),
                IdEstadoAprobacion_cat = i_param.IdEstadoAprobacion_OC,
                IdSucursal             = Convert.ToInt32(SessionFixed.IdSucursal),
                Tipo = "OS"
            };
            List_det.set_list(model.lst_det, model.IdTransaccionSession);
            cargar_combos(IdEmpresa);
            return(View(model));
        }
예제 #11
0
        private bool Validar(com_ordencompra_local_Info i_validar, ref string msg)
        {
            i_validar.lst_det = List_det.get_list(i_validar.IdTransaccionSession);

            if (i_validar.IdComprador == 0)
            {
                mensaje = "Debe ingresar su usuario como comprador";
                return(false);
            }
            else if (i_validar.lst_det.Count == 0)
            {
                mensaje = "Debe ingresar al menos un producto en el detalle de la orden";
                return(false);
            }
            else
            {
                foreach (var item1 in i_validar.lst_det)
                {
                    var contador = 0;
                    foreach (var item2 in i_validar.lst_det)
                    {
                        if (item1.IdProducto == item2.IdProducto)
                        {
                            contador++;
                        }

                        if (contador > 1)
                        {
                            mensaje = "Existen productos repetidos en el detalle";
                            return(false);
                        }
                    }
                }
            }
            return(true);
        }
예제 #12
0
        public ActionResult Nuevo(int IdEmpresa = 0)
        {
            #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

            com_ordencompra_local_Info model = new com_ordencompra_local_Info
            {
                IdEmpresa            = IdEmpresa,
                oc_fecha             = DateTime.Now,
                oc_fechaVencimiento  = DateTime.Now,
                co_fechaReproba      = DateTime.Now,
                co_fecha_aprobacion  = DateTime.Now,
                IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual)
            };
            List_det.set_list(model.lst_det, model.IdTransaccionSession);
            cargar_combos(IdEmpresa);
            return(View(model));
        }
예제 #13
0
        public Boolean Validar_objeto(com_ordencompra_local_Info Info, ref string msg)
        {
            try
            {
                if (Info.IdEmpresa == 0 || Info.IdSucursal == 0 || Info.IdProveedor == 0 || Info.IdDepartamento == 0)
                {
                    msg = "las variables estan en cero... Info.IdEmpresa == 0 || Info.IdSucursal == 0 || Info.IdProveedor == 0 || Info.IdDepartamento == 0 ";
                    return(false);
                }

                /*
                 * if (Info.IdMotivo == null || Info.IdMotivo == 0)
                 * {
                 *  msg = "Ingrese el motivo de la Compra";
                 *  com_Catalogo_Bus bUS = new com_Catalogo_Bus();
                 *  List<com_Catalogo_Info> listc = new List<com_Catalogo_Info>(bUS.Get_List_Catalogo());
                 *  return false;
                 *
                 * }*/

                if (Info.listDetalle.Count == 0)
                {
                    msg = "la OC no tiene items q grabar";
                    return(false);
                }

                int c = 0;

                foreach (var item in Info.listDetalle)
                {
                    if (item.do_Cantidad == 0)
                    {
                        msg = "Ingrese la cantidad al item : " + item.codproducto + "  ";
                        return(false);
                    }

                    if (item.do_precioCompra == 0)
                    {
                        msg = "Ingrese el costo al item : " + item.codproducto + "  ";
                        return(false);
                    }

                    if (item.IdUnidadMedida == "" || item.IdUnidadMedida == null)
                    {
                        in_producto_Bus  BusProducto  = new in_producto_Bus();
                        in_Producto_Info InfoProducto = new in_Producto_Info();
                        InfoProducto        = BusProducto.Get_info_Product(item.IdEmpresa, item.IdProducto);
                        item.IdUnidadMedida = InfoProducto.IdUnidadMedida;
                    }


                    if (item.IdCentroCosto == "")
                    {
                        item.IdCentroCosto = null;
                    }

                    if (item.IdCentroCosto_sub_centro_costo == "")
                    {
                        item.IdCentroCosto_sub_centro_costo = null;
                    }

                    if (item.IdCod_Impuesto == "" || item.IdCod_Impuesto == null) // Arreglando si no viene iva y codigo de iva
                    {
                        tb_sis_impuesto_Bus         BusImpuestoIva    = new tb_sis_impuesto_Bus();
                        List <tb_sis_impuesto_Info> ListInfo_Impuesto = new List <tb_sis_impuesto_Info>();
                        tb_sis_impuesto_Info        Info_Impuesto     = new tb_sis_impuesto_Info();
                        ListInfo_Impuesto = BusImpuestoIva.Get_List_impuesto_para_Compras("IVA");

                        Info_Impuesto       = ListInfo_Impuesto.FirstOrDefault();
                        item.IdCod_Impuesto = Info_Impuesto.IdCod_Impuesto;
                        item.Por_Iva        = Info_Impuesto.porcentaje;
                    }


                    //item.do_ManejaIva = (item.do_iva == 0) ? false : true;
                    c = c + 1;
                    item.Secuencia = c;


                    item.IdEmpresa     = Info.IdEmpresa;
                    item.IdSucursal    = Info.IdSucursal;
                    item.IdOrdenCompra = Info.IdOrdenCompra;
                }

                if (Info.IdMotivo == 0 && Info.IdMotivo == null)
                {
                    //consulta motivo compra
                    com_Motivo_Orden_Compra_Data        odataMoti = new com_Motivo_Orden_Compra_Data();
                    List <com_Motivo_Orden_Compra_Info> listMoti  = new List <com_Motivo_Orden_Compra_Info>();

                    listMoti = odataMoti.Get_List_Motivo_Orden_Compra(Info.IdEmpresa);
                    var itemMoti = listMoti.FirstOrDefault(q => q.IdMotivo == Info.IdMotivo);
                    Info.IdMotivo = itemMoti.IdMotivo;
                }


                if (Info.IdEstadoAprobacion_cat == "" || Info.IdEstadoAprobacion_cat == null)
                {
                    List <com_Catalogo_Info> listEstadoAproba = new List <com_Catalogo_Info>();
                    listEstadoAproba = CatCom.Get_ListEstadoAprobacion();
                    com_Catalogo_Info resEstadoApro = new com_Catalogo_Info();
                    resEstadoApro = listEstadoAproba.FirstOrDefault();
                    Info.IdEstadoAprobacion_cat = resEstadoApro.IdCatalogocompra;
                }

                if (Info.IdEstadoRecepcion_cat == "" || Info.IdEstadoRecepcion_cat == null)
                {
                    List <com_Catalogo_Info> listEstadoRecep = new List <com_Catalogo_Info>();
                    com_Catalogo_Info        resEstadoRece   = new com_Catalogo_Info();
                    listEstadoRecep            = CatCom.Get_ListEstadoRecepcion();
                    resEstadoRece              = listEstadoRecep.First();
                    Info.IdEstadoRecepcion_cat = resEstadoRece.IdCatalogocompra;
                }


                if (Info.IdTerminoPago == "" || Info.IdTerminoPago == null)
                {
                    List <com_TerminoPago_Info> listTerminoPago = new List <com_TerminoPago_Info>();
                    listTerminoPago = BusTerPago.Get_List_TerminoPago();
                    com_TerminoPago_Info TerminoPago = new com_TerminoPago_Info();
                    TerminoPago        = listTerminoPago.FirstOrDefault();
                    Info.IdTerminoPago = TerminoPago.IdTerminoPago;
                }


                if (Info.IdEstado_cierre == null || Info.IdEstado_cierre == "")
                {
                    com_estado_cierre_Bus busEstCierre = new com_estado_cierre_Bus();
                    com_parametro_Bus     paraBus      = new com_parametro_Bus();
                    string idestadoCierrexDefault      = "";
                    idestadoCierrexDefault = paraBus.Get_List_parametro(Info.IdEmpresa).FirstOrDefault().IdEstado_cierre;
                    Info.IdEstado_cierre   = busEstCierre.Get_List_estado_cierre().FirstOrDefault(v => v.IdEstado_cierre == idestadoCierrexDefault).IdEstado_cierre;
                }



                return(true);
            }
            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("", "Validar_objeto", ex.Message), ex)
                      {
                          EntityType = typeof(com_ordencompra_local_Bus)
                      };
            }
        }
예제 #14
0
        private void gridVwOCPend_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
        {
            try
            {
                info = (com_ordencompra_local_Info)this.gridVwOCPend.GetFocusedRow();

                if (e.Column.Name == "colAbrirOC")
                {
                    var row = (com_ordencompra_local_Info)gridVwOCPend.GetFocusedRow();
                    if (row != null)
                    {
                        frmCom_OrdenCompra_Mant frm = new frmCom_OrdenCompra_Mant();
                        frm = new frmCom_OrdenCompra_Mant();
                        frm.Set_Info(row);
                        frm.event_frmCom_OrdenCompra_Mant_FormClosing += frm_event_frmCom_OrdenCompra_Mant_FormClosing;
                        frm.event_frmCom_OrdenCompra_Mant_FormClosing += new frmCom_OrdenCompra_Mant.delegate_frmCom_OrdenCompra_Mant_FormClosing(frm_event_frmCom_OrdenCompra_Mant_FormClosing);
                        frm.Set_Accion(Cl_Enumeradores.eTipo_action.consultar);
                        frm.MdiParent = this.MdiParent;
                        frm.Show();
                    }
                }


                if (e.Column.Name == "colCheck")
                {
                    if ((Boolean)gridVwOCPend.GetFocusedRowCellValue(colCheck))
                    {
                        gridVwOCPend.SetFocusedRowCellValue(colCheck, false);
                        gridVwOCPend.SetFocusedRowCellValue(colap_descripcion, info.IdEstadoAprobacion_AUX);
                    }

                    else
                    {
                        //lista = bus_inven.Get_List_Ing_Egr_Inven_det_x_OrdenCompra(info.IdEmpresa, info.IdSucursal, info.IdOrdenCompra);


                        //if (lista.Count > 0)
                        //{

                        //    FrmIn_Detalle_Ing_Egr_Bodega_Alerta frmConsulta = new FrmIn_Detalle_Ing_Egr_Bodega_Alerta();
                        //    frmConsulta.Text = "La OC#: " + info.IdOrdenCompra + " tiene Ingesos a Bodega";
                        //    frmConsulta.set_info_list(lista);
                        //    info.IdEstadoAprobacion_cat = info.IdEstadoAprobacion_AUX;
                        //    info.check = false;
                        //    frmConsulta.ShowDialog();
                        //}



                        if (info.IdEstadoAprobacion_AUX == "ANU")
                        {
                            MessageBox.Show("No se pueden modificar registros Inactivos", "Sistemas");
                            return;
                        }

                        gridVwOCPend.SetFocusedRowCellValue(colCheck, true);
                        gridVwOCPend.SetFocusedRowCellValue(colap_descripcion, "APRO");
                    }
                }
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #15
0
        public Boolean GrabarDB(List <in_movi_inve_detalle_x_com_ordencompra_local_detalle_Info> lista, ref string mensaje)
        {
            try
            {
                Boolean res = true;

                res = odata.GrabarDB(lista, ref mensaje);

                int     IdEmpresa     = 0;
                int     IdSucursal    = 0;
                decimal IdOrdenCompra = 0;

                List <in_movi_inve_detalle_Info> listInvMovDet = new List <in_movi_inve_detalle_Info>();
                vwcom_ordencompra_local_det_con_saldo_x_ing_a_inven_Data data = new vwcom_ordencompra_local_det_con_saldo_x_ing_a_inven_Data();
                if (res)
                {
                    foreach (var item in lista)
                    {
                        IdEmpresa     = item.ocd_IdEmpresa;
                        IdSucursal    = item.ocd_IdSucursal;
                        IdOrdenCompra = item.ocd_IdOrdenCompra;
                    }

                    listInvMovDet = data.Get_List_movi_inve_detalle(IdEmpresa, IdSucursal, IdOrdenCompra);

                    var TAgrupacionEstado = from cb in listInvMovDet
                                            group cb by new { cb.IdEstadoRecepcion }
                    into grouping
                        select new { grouping.Key };

                    string IdEstado = "";

                    if (TAgrupacionEstado.Count() == 1)
                    {
                        foreach (var item in TAgrupacionEstado)
                        {
                            IdEstado = item.Key.IdEstadoRecepcion;
                        }
                    }

                    if (TAgrupacionEstado.Count() > 1)
                    {
                        IdEstado = "PEN_X_RECI";
                    }

                    // actualiza cabecera OC con el estado

                    com_ordencompra_local_Data OdataOC = new com_ordencompra_local_Data();

                    com_ordencompra_local_Info info = new com_ordencompra_local_Info();

                    string msg = "";

                    info.IdEmpresa             = IdEmpresa;
                    info.IdSucursal            = IdSucursal;
                    info.IdOrdenCompra         = IdOrdenCompra;
                    info.IdEstadoRecepcion_cat = IdEstado;

                    if (OdataOC.Modificar_Estado_Recep(info, ref msg))
                    {
                    }
                }

                return(res);
            }
            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("", "GrabarDB", ex.Message), ex)
                      {
                          EntityType = typeof(in_movi_inve_detalle_Bus)
                      };
            }
        }
        public bool modificarDB(com_ordencompra_local_Info info)
        {
            try
            {
                using (Entities_compras Context = new Entities_compras())
                {
                    com_ordencompra_local Entity = Context.com_ordencompra_local.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdSucursal == info.IdSucursal && q.IdOrdenCompra == info.IdOrdenCompra).FirstOrDefault();
                    if (Entity == null)
                    {
                        return(false);
                    }

                    Entity.IdComprador            = info.IdComprador;
                    Entity.IdDepartamento         = info.IdDepartamento;
                    Entity.IdEstadoAprobacion_cat = info.IdEstadoAprobacion_cat;
                    Entity.IdEstado_cierre        = info.IdEstado_cierre;
                    Entity.IdMotivo            = info.IdMotivo;
                    Entity.IdProveedor         = info.IdProveedor;
                    Entity.IdSucursal          = info.IdSucursal;
                    Entity.IdTerminoPago       = info.IdTerminoPago;
                    Entity.IdUsuario_Aprueba   = info.IdUsuario_Aprueba;
                    Entity.IdUsuario_Reprue    = info.IdUsuario_Reprue;
                    Entity.oc_plazo            = info.oc_plazo;
                    Entity.oc_observacion      = info.oc_observacion;
                    Entity.oc_fecha            = info.oc_fecha;
                    Entity.oc_fechaVencimiento = info.oc_fechaVencimiento;
                    Entity.oc_NumDocumento     = info.oc_NumDocumento;
                    Entity.co_fechaReproba     = info.co_fechaReproba;
                    Entity.co_fecha_aprobacion = info.co_fecha_aprobacion;

                    Entity.IdUsuarioUltMod = info.IdUsuarioUltMod;
                    Entity.Fecha_UltMod    = DateTime.Now;
                    var det = Context.com_ordencompra_local_det.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdSucursal == info.IdSucursal && v.IdOrdenCompra == info.IdOrdenCompra);
                    Context.com_ordencompra_local_det.RemoveRange(det);
                    foreach (var item in info.lst_det)
                    {
                        com_ordencompra_local_det Entity_det = new com_ordencompra_local_det
                        {
                            IdEmpresa       = info.IdEmpresa,
                            IdSucursal      = info.IdSucursal,
                            IdOrdenCompra   = info.IdOrdenCompra,
                            IdProducto      = item.IdProducto,
                            IdCod_Impuesto  = item.IdCod_Impuesto,
                            IdUnidadMedida  = item.IdUnidadMedida,
                            do_Cantidad     = item.do_Cantidad,
                            do_descuento    = item.do_descuento,
                            do_iva          = item.do_iva,
                            do_observacion  = item.do_observacion,
                            do_porc_des     = item.do_porc_des,
                            do_precioCompra = item.do_precioCompra,
                            do_precioFinal  = item.do_precioFinal,
                            do_subtotal     = item.do_subtotal,
                            do_total        = item.do_total,
                            Por_Iva         = item.Por_Iva,
                            Secuencia       = item.Secuencia
                        };
                        Context.com_ordencompra_local_det.Add(Entity_det);
                    }
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public bool guardarDB(com_ordencompra_local_Info info)
        {
            try
            {
                using (Entities_compras Context = new Entities_compras())
                {
                    com_ordencompra_local Entity = new com_ordencompra_local
                    {
                        IdEmpresa              = info.IdEmpresa,
                        IdComprador            = info.IdComprador,
                        IdOrdenCompra          = info.IdOrdenCompra = get_id(info.IdEmpresa, info.IdSucursal),
                        IdDepartamento         = info.IdDepartamento,
                        IdEstadoAprobacion_cat = info.IdEstadoAprobacion_cat,
                        IdEstado_cierre        = info.IdEstado_cierre,
                        IdMotivo            = info.IdMotivo,
                        IdProveedor         = info.IdProveedor,
                        IdSucursal          = info.IdSucursal,
                        IdTerminoPago       = info.IdTerminoPago,
                        IdUsuario_Aprueba   = info.IdUsuario_Aprueba,
                        IdUsuario_Reprue    = info.IdUsuario_Reprue,
                        Estado              = "A",
                        oc_plazo            = info.oc_plazo,
                        oc_observacion      = info.oc_observacion,
                        oc_fecha            = info.oc_fecha,
                        oc_fechaVencimiento = info.oc_fechaVencimiento,
                        oc_NumDocumento     = info.oc_NumDocumento,
                        co_fechaReproba     = info.co_fechaReproba,
                        co_fecha_aprobacion = info.co_fecha_aprobacion,

                        IdUsuario     = info.IdUsuario,
                        Fecha_Transac = DateTime.Now
                    };

                    Context.com_ordencompra_local.Add(Entity);

                    foreach (var item in info.lst_det)
                    {
                        com_ordencompra_local_det Entity_det = new com_ordencompra_local_det
                        {
                            IdEmpresa       = info.IdEmpresa,
                            IdOrdenCompra   = info.IdOrdenCompra,
                            IdSucursal      = info.IdSucursal,
                            IdProducto      = item.IdProducto,
                            IdCod_Impuesto  = item.IdCod_Impuesto,
                            IdUnidadMedida  = item.IdUnidadMedida,
                            do_Cantidad     = item.do_Cantidad,
                            do_descuento    = item.do_descuento,
                            do_iva          = item.do_iva,
                            do_observacion  = item.do_observacion,
                            do_porc_des     = item.do_porc_des,
                            do_precioCompra = item.do_precioCompra,
                            do_precioFinal  = item.do_precioFinal,
                            do_subtotal     = item.do_subtotal,
                            do_total        = item.do_total,
                            Por_Iva         = item.Por_Iva,
                            Secuencia       = item.Secuencia
                        };
                        Context.com_ordencompra_local_det.Add(Entity_det);
                    }
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public bool guardarDB(com_ordencompra_local_Info info)
        {
            try
            {
                using (Entities_compras Context = new Entities_compras())
                {
                    com_ordencompra_local Entity = new com_ordencompra_local
                    {
                        IdEmpresa              = info.IdEmpresa,
                        IdComprador            = info.IdComprador,
                        IdOrdenCompra          = info.IdOrdenCompra = get_id(info.IdEmpresa, info.IdSucursal),
                        IdDepartamento         = info.IdDepartamento,
                        IdEstadoAprobacion_cat = info.IdEstadoAprobacion_cat,
                        IdEstado_cierre        = info.IdEstado_cierre,
                        IdProveedor            = info.IdProveedor,
                        IdSucursal             = info.IdSucursal,
                        Tipo                = info.Tipo,
                        SecuenciaTipo       = info.SecuenciaTipo = get_id_by_tipo(info.IdEmpresa, info.IdSucursal, info.Tipo),
                        IdTerminoPago       = info.IdTerminoPago,
                        Estado              = "A",
                        oc_plazo            = info.oc_plazo,
                        oc_observacion      = info.oc_observacion,
                        oc_fecha            = info.oc_fecha,
                        oc_fechaVencimiento = info.oc_fechaVencimiento,

                        IdUsuario     = info.IdUsuario,
                        Fecha_Transac = DateTime.Now
                    };

                    Context.com_ordencompra_local.Add(Entity);

                    foreach (var item in info.lst_det)
                    {
                        com_ordencompra_local_det Entity_det = new com_ordencompra_local_det
                        {
                            IdEmpresa       = info.IdEmpresa,
                            IdOrdenCompra   = info.IdOrdenCompra,
                            IdSucursal      = info.IdSucursal,
                            IdProducto      = item.IdProducto,
                            IdCod_Impuesto  = item.IdCod_Impuesto,
                            IdUnidadMedida  = item.IdUnidadMedida,
                            do_Cantidad     = item.do_Cantidad,
                            do_descuento    = item.do_descuento,
                            do_iva          = item.do_iva,
                            do_observacion  = item.do_observacion,
                            do_porc_des     = item.do_porc_des,
                            do_precioCompra = item.do_precioCompra,
                            do_precioFinal  = item.do_precioFinal,
                            do_subtotal     = item.do_subtotal,
                            do_total        = item.do_total,
                            Por_Iva         = item.Por_Iva,
                            Secuencia       = item.Secuencia
                        };
                        Context.com_ordencompra_local_det.Add(Entity_det);
                    }
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "com_ordencompra_local_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuario
                });
                return(false);
            }
        }
        public bool modificarDB(com_ordencompra_local_Info info)
        {
            try
            {
                using (Entities_compras Context = new Entities_compras())
                {
                    com_ordencompra_local Entity = Context.com_ordencompra_local.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdSucursal == info.IdSucursal && q.IdOrdenCompra == info.IdOrdenCompra).FirstOrDefault();
                    if (Entity == null)
                    {
                        return(false);
                    }

                    Entity.IdComprador            = info.IdComprador;
                    Entity.IdDepartamento         = info.IdDepartamento;
                    Entity.Tipo                   = info.Tipo;
                    Entity.SecuenciaTipo          = info.SecuenciaTipo;
                    Entity.IdEstadoAprobacion_cat = info.IdEstadoAprobacion_cat;
                    Entity.IdEstado_cierre        = info.IdEstado_cierre;
                    Entity.IdProveedor            = info.IdProveedor;
                    Entity.IdSucursal             = info.IdSucursal;
                    Entity.IdTerminoPago          = info.IdTerminoPago;
                    Entity.oc_plazo               = info.oc_plazo;
                    Entity.oc_observacion         = info.oc_observacion;
                    Entity.oc_fecha               = info.oc_fecha;
                    Entity.oc_fechaVencimiento    = info.oc_fechaVencimiento;

                    Entity.IdUsuarioUltMod = info.IdUsuarioUltMod;
                    Entity.Fecha_UltMod    = DateTime.Now;

                    var det = Context.com_ordencompra_local_det.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdSucursal == info.IdSucursal && v.IdOrdenCompra == info.IdOrdenCompra);
                    Context.com_ordencompra_local_det.RemoveRange(det);
                    foreach (var item in info.lst_det)
                    {
                        com_ordencompra_local_det Entity_det = new com_ordencompra_local_det
                        {
                            IdEmpresa       = info.IdEmpresa,
                            IdSucursal      = info.IdSucursal,
                            IdOrdenCompra   = info.IdOrdenCompra,
                            IdProducto      = item.IdProducto,
                            IdCod_Impuesto  = item.IdCod_Impuesto,
                            IdUnidadMedida  = item.IdUnidadMedida,
                            do_Cantidad     = item.do_Cantidad,
                            do_descuento    = item.do_descuento,
                            do_iva          = item.do_iva,
                            do_observacion  = item.do_observacion,
                            do_porc_des     = item.do_porc_des,
                            do_precioCompra = item.do_precioCompra,
                            do_precioFinal  = item.do_precioFinal,
                            do_subtotal     = item.do_subtotal,
                            do_total        = item.do_total,
                            Por_Iva         = item.Por_Iva,
                            Secuencia       = item.Secuencia
                        };
                        Context.com_ordencompra_local_det.Add(Entity_det);
                    }
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "com_ordencompra_local_Data", Metodo = "modificarDB", IdUsuario = info.IdUsuario
                });
                return(false);
            }
        }
        public Boolean ModificarDB(com_ordencompra_local_Info Info, ref string msg)
        {
            try
            {
                Boolean resp1 = true;


                if (Validar_objeto(Info, ref msg))
                {
                    resp1 = BusOC.ModificarDB(Info, ref msg);


                    List <com_ordencompra_local_det_Info> generados = new List <com_ordencompra_local_det_Info>();
                    List <com_ordencompra_local_det_Info> agregados = new List <com_ordencompra_local_det_Info>();

                    in_Guia_x_traspaso_bodega_det_Info info_guia = new in_Guia_x_traspaso_bodega_det_Info();
                    in_Guia_x_traspaso_bodega_det_Bus  bus_guia  = new in_Guia_x_traspaso_bodega_det_Bus();
                    string sGuias = "";
                    if (!bus_guia.Existe_OC_en_guia(Info, ref sGuias))
                    {
                        int secuencia = 0;
                        secuencia = BusDetOC.GetSecuencia_x_OC(Info.IdEmpresa, Info.IdSucursal, Info.IdOrdenCompra);


                        // consultar tabla intermedia

                        com_ordencompra_local_det_x_com_solicitud_compra_det_Bus         bus_Inter = new com_ordencompra_local_det_x_com_solicitud_compra_det_Bus();
                        List <com_ordencompra_local_det_x_com_solicitud_compra_det_Info> listInter = new List <com_ordencompra_local_det_x_com_solicitud_compra_det_Info>();
                        listInter = bus_Inter.Get_List_ordencompra_local_det_x_com_solicitud_compra_det_x_OrdenCompra(Info.IdEmpresa, Info.IdSucursal, Info.IdOrdenCompra);

                        List <com_ordencompra_local_det_x_com_solicitud_compra_det_Info> listInter_AUX = new List <com_ordencompra_local_det_x_com_solicitud_compra_det_Info>();

                        if (listInter.Count() != 0)
                        {
                            // recupero los datos tabla intermedia
                            foreach (var item in listInter)
                            {
                                com_ordencompra_local_det_x_com_solicitud_compra_det_Info infoInter = new com_ordencompra_local_det_x_com_solicitud_compra_det_Info();

                                infoInter.ocd_IdEmpresa         = item.ocd_IdEmpresa;
                                infoInter.ocd_IdSucursal        = item.ocd_IdSucursal;
                                infoInter.ocd_IdOrdenCompra     = item.ocd_IdOrdenCompra;
                                infoInter.ocd_Secuencia         = item.ocd_Secuencia;
                                infoInter.scd_IdEmpresa         = item.scd_IdEmpresa;
                                infoInter.scd_IdSucursal        = item.scd_IdSucursal;
                                infoInter.scd_IdSolicitudCompra = item.scd_IdSolicitudCompra;
                                infoInter.scd_Secuencia         = item.scd_Secuencia;
                                infoInter.observacion           = item.observacion;

                                listInter_AUX.Add(infoInter);
                            }
                            //eliminar detalle tabla intermedia
                            if (bus_Inter.Eliminar_Detalle_OCDxSCD(Info.IdEmpresa, Info.IdSucursal, Info.IdOrdenCompra, ref msg))
                            {
                            }
                        }
                        if (BusDetOC.EliminarDetalle_OC(Info.IdEmpresa, Info.IdSucursal, Info.IdOrdenCompra, ref msg))
                        {
                            resp1 = BusOC_det.GuardarDB(Info.listDetalle, ref msg);

                            //grabar tabla intermedia
                            if (listInter.Count() != 0)
                            {
                                if (bus_Inter.GrabarDB(listInter_AUX, ref mensaje))
                                {
                                }
                            }
                        }
                    }
                    else
                    {
                        // aqui existe guias con esta OC verifico q los registro sean los mismos para poder modificar la OC sino NO
                        com_ordencompra_local_Info InfoVali = new com_ordencompra_local_Info();
                        //InfoVali = BusOC.Get_Info_ordencompra_local_x_Total_RegOC_vs_Total_RegGuia(Info.IdEmpresa, Info.IdSucursal, Info.IdOrdenCompra);

                        resp1 = BusDetOC.ModificarDB(Info.listDetalle, ref msg);
                    }
                }
                else
                { //
                    resp1 = false;
                }

                return(resp1);
            }
            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("", "ModificarDB", ex.Message), ex)
                      {
                          EntityType = typeof(com_ordencompra_local_Bus)
                      };
            }
        }
예제 #21
0
        private void Preparar_Formulario(Cl_Enumeradores.eTipo_action iAccion)
        {
            try
            {
                string mensajeFrm = "";

                Info_OC = new com_ordencompra_local_Info();

                switch (iAccion)
                {
                case Cl_Enumeradores.eTipo_action.grabar:
                    mensajeFrm = "REGISTRO NUEVO";
                    break;

                case Cl_Enumeradores.eTipo_action.actualizar:
                    mensajeFrm = "MODIFICAR REGISTRO";
                    Info_OC    = (com_ordencompra_local_Info)gridViewOrdenCompra.GetFocusedRow();
                    in_Ing_Egr_Inven_det_Bus         bus_IngEgr  = new in_Ing_Egr_Inven_det_Bus();
                    List <in_Ing_Egr_Inven_det_Info> list_IngEgr = new List <in_Ing_Egr_Inven_det_Info>();
                    if (Info_OC != null)
                    {
                        list_IngEgr = bus_IngEgr.Get_List_Ing_Egr_Inven_det_x_OrdenCompra(Info_OC.IdEmpresa, Info_OC.IdSucursal, Info_OC.IdOrdenCompra);

                        if (Info_OC.IdEstadoAprobacion_cat == "APRO")
                        {
                            MessageBox.Show("La Orden de compra Nº " + Info_OC.oc_NumDocumento +
                                            " ya fue Aprobada. No se puede modificar.");
                            return;
                        }
                        else
                        {
                            if (list_IngEgr.Count != 0)
                            {
                                MessageBox.Show("La Orden de compra Nº " + Info_OC.oc_NumDocumento +
                                                " tiene Ingresos a Bodega. No se puede modificar.");
                                return;
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Seleccione un Registro ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return;
                    }
                    break;

                case Cl_Enumeradores.eTipo_action.Anular:
                    mensajeFrm = "ANULAR REGISTRO";
                    Info_OC    = (com_ordencompra_local_Info)gridViewOrdenCompra.GetFocusedRow();
                    break;

                case Cl_Enumeradores.eTipo_action.consultar:
                    mensajeFrm = "CONSULTAR REGISTRO";
                    Info_OC    = (com_ordencompra_local_Info)gridViewOrdenCompra.GetFocusedRow();
                    break;

                default:
                    break;
                }

                if (Info_OC != null)
                {
                    frm      = new frmCom_OrdenCompra_Mant();
                    frm.Text = frm.Text + "***" + mensajeFrm + "***";
                    frm.Set_Accion(iAccion);
                    frm.Set_Info(Info_OC);
                    frm.Show();
                    frm.MdiParent = this.MdiParent;
                    frm.event_frmCom_OrdenCompra_Mant_FormClosing += frm_event_frmCom_OrdenCompra_Mant_FormClosing;
                }
                else
                {
                    MessageBox.Show("Seleccione un Registro ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return;
                }
            }
            catch (Exception ex)
            {
                string NameMetodo = System.Reflection.MethodBase.GetCurrentMethod().Name;
                MessageBox.Show(param.Get_Mensaje_sys(enum_Mensajes_sys.Error_comunicarse_con_sistemas) + ex.Message + " ", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
                Log_Error_bus.Log_Error(NameMetodo + " - " + ex.ToString());
            }
        }
예제 #22
0
        public bool modificarDB(com_ordencompra_local_Info info)
        {
            try
            {
                using (Entities_compras Context = new Entities_compras())
                {
                    com_ordencompra_local Entity = Context.com_ordencompra_local.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdSucursal == info.IdSucursal && q.IdOrdenCompra == info.IdOrdenCompra).FirstOrDefault();
                    if (Entity == null)
                    {
                        return(false);
                    }

                    Entity.IdComprador            = info.IdComprador;
                    Entity.IdDepartamento         = info.IdDepartamento;
                    Entity.Tipo                   = info.Tipo;
                    Entity.SecuenciaTipo          = info.SecuenciaTipo;
                    Entity.IdEstadoAprobacion_cat = info.IdEstadoAprobacion_cat;
                    Entity.IdEstado_cierre        = info.IdEstado_cierre;
                    Entity.IdProveedor            = info.IdProveedor;
                    Entity.IdSucursal             = info.IdSucursal;
                    Entity.IdTerminoPago          = info.IdTerminoPago;
                    Entity.oc_plazo               = info.oc_plazo;
                    Entity.oc_observacion         = info.oc_observacion;
                    Entity.oc_fecha               = info.oc_fecha;
                    Entity.oc_fechaVencimiento    = info.oc_fechaVencimiento;
                    Entity.oc_codigo              = info.oc_codigo;
                    Entity.IdUsuarioUltMod        = info.IdUsuarioUltMod;
                    Entity.Fecha_UltMod           = DateTime.Now;

                    var det = Context.com_ordencompra_local_det.Where(v => v.IdEmpresa == info.IdEmpresa && v.IdSucursal == info.IdSucursal && v.IdOrdenCompra == info.IdOrdenCompra);
                    Context.com_ordencompra_local_det.RemoveRange(det);
                    int Secuencia = 1;
                    foreach (var item in info.lst_det)
                    {
                        com_ordencompra_local_det Entity_det = new com_ordencompra_local_det
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdSucursal          = info.IdSucursal,
                            IdOrdenCompra       = info.IdOrdenCompra,
                            IdProducto          = item.IdProducto,
                            IdCod_Impuesto      = item.IdCod_Impuesto,
                            IdUnidadMedida      = item.IdUnidadMedida,
                            do_Cantidad         = item.do_Cantidad,
                            do_descuento        = item.do_descuento,
                            do_iva              = item.do_iva,
                            do_observacion      = item.do_observacion,
                            do_porc_des         = item.do_porc_des,
                            do_precioCompra     = item.do_precioCompra,
                            do_precioFinal      = item.do_precioFinal,
                            do_subtotal         = item.do_subtotal,
                            do_total            = item.do_total,
                            Por_Iva             = item.Por_Iva,
                            Secuencia           = Secuencia++,
                            IdCentroCosto       = item.IdCentroCosto,
                            IdPunto_cargo       = item.IdPunto_cargo,
                            IdPunto_cargo_grupo = item.IdPunto_cargo_grupo
                        };
                        Context.com_ordencompra_local_det.Add(Entity_det);
                    }

                    var Descuento              = Math.Round(Convert.ToDecimal(info.lst_det.Sum(q => q.do_Cantidad * q.do_descuento)), 2, MidpointRounding.AwayFromZero);
                    var ValorIVA               = Math.Round(Convert.ToDecimal(info.lst_det.Sum(q => q.do_iva)), 2, MidpointRounding.AwayFromZero);
                    var SubtotalIVASinDscto    = Math.Round(Convert.ToDecimal(info.lst_det.Where(q => q.Por_Iva != 0).Sum(q => q.do_Cantidad * q.do_precioCompra)), 2, MidpointRounding.AwayFromZero);
                    var SubtotalSinIVASinDscto = Math.Round(Convert.ToDecimal(info.lst_det.Where(q => q.Por_Iva == 0).Sum(q => q.do_Cantidad * q.do_precioCompra)), 2, MidpointRounding.AwayFromZero);
                    var SubtotalIVAConDscto    = Math.Round(Convert.ToDecimal(info.lst_det.Where(q => q.Por_Iva != 0).Sum(q => q.do_subtotal)), 2, MidpointRounding.AwayFromZero);
                    var SubtotalSinIVAConDscto = Math.Round(Convert.ToDecimal(info.lst_det.Where(q => q.Por_Iva == 0).Sum(q => q.do_subtotal)), 2, MidpointRounding.AwayFromZero);
                    var SubtotalSinDscto       = Math.Round(SubtotalIVASinDscto + SubtotalSinIVASinDscto, 2, MidpointRounding.AwayFromZero);
                    var SubtotalConDscto       = Math.Round(SubtotalIVAConDscto + SubtotalSinIVAConDscto, 2, MidpointRounding.AwayFromZero);
                    var Total = Math.Round(SubtotalConDscto + ValorIVA, 2, MidpointRounding.AwayFromZero);


                    com_ordencompra_local_resumen Entity_Resumen = new com_ordencompra_local_resumen
                    {
                        IdEmpresa              = info.IdEmpresa,
                        IdSucursal             = info.IdSucursal,
                        IdOrdenCompra          = info.IdOrdenCompra,
                        SubtotalIVASinDscto    = SubtotalIVASinDscto,
                        SubtotalSinIVASinDscto = SubtotalSinIVASinDscto,
                        SubtotalSinDscto       = SubtotalSinDscto,
                        Descuento              = Descuento,
                        SubtotalIVAConDscto    = SubtotalIVAConDscto,
                        SubtotalSinIVAConDscto = SubtotalSinIVAConDscto,
                        SubtotalConDscto       = SubtotalConDscto,
                        ValorIVA = ValorIVA,
                        Total    = Total
                    };
                    var oc = Context.com_ordencompra_local_resumen.Where(q => q.IdEmpresa == info.IdEmpresa && q.IdOrdenCompra == info.IdOrdenCompra && q.IdSucursal == info.IdSucursal).FirstOrDefault();
                    Context.com_ordencompra_local_resumen.Remove(oc);
                    Context.com_ordencompra_local_resumen.Add(Entity_Resumen);

                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "com_ordencompra_local_Data", Metodo = "modificarDB", IdUsuario = info.IdUsuario
                });
                return(false);
            }
        }
예제 #23
0
        public bool guardarDB(com_ordencompra_local_Info info)
        {
            com_ordencompra_local_resumen_Info info_resumen = new com_ordencompra_local_resumen_Info();

            try
            {
                using (Entities_compras Context = new Entities_compras())
                {
                    com_ordencompra_local Entity = new com_ordencompra_local
                    {
                        IdEmpresa              = info.IdEmpresa,
                        IdComprador            = info.IdComprador,
                        IdOrdenCompra          = info.IdOrdenCompra = get_id(info.IdEmpresa, info.IdSucursal),
                        IdDepartamento         = info.IdDepartamento,
                        IdEstadoAprobacion_cat = info.IdEstadoAprobacion_cat,
                        IdEstado_cierre        = info.IdEstado_cierre,
                        IdProveedor            = info.IdProveedor,
                        IdSucursal             = info.IdSucursal,
                        Tipo                = info.Tipo,
                        SecuenciaTipo       = info.SecuenciaTipo = get_id_by_tipo(info.IdEmpresa, info.IdSucursal, info.Tipo),
                        IdTerminoPago       = info.IdTerminoPago,
                        Estado              = "A",
                        oc_plazo            = info.oc_plazo,
                        oc_observacion      = info.oc_observacion,
                        oc_fecha            = info.oc_fecha,
                        oc_fechaVencimiento = info.oc_fechaVencimiento,
                        oc_codigo           = info.oc_codigo,
                        IdUsuario           = info.IdUsuario,
                        Fecha_Transac       = DateTime.Now
                    };

                    Context.com_ordencompra_local.Add(Entity);
                    int Secuencia = 1;
                    foreach (var item in info.lst_det)
                    {
                        com_ordencompra_local_det Entity_det = new com_ordencompra_local_det
                        {
                            IdEmpresa           = info.IdEmpresa,
                            IdOrdenCompra       = info.IdOrdenCompra,
                            IdSucursal          = info.IdSucursal,
                            IdProducto          = item.IdProducto,
                            IdCod_Impuesto      = item.IdCod_Impuesto,
                            IdUnidadMedida      = item.IdUnidadMedida,
                            do_Cantidad         = item.do_Cantidad,
                            do_descuento        = item.do_descuento,
                            do_iva              = item.do_iva,
                            do_observacion      = item.do_observacion,
                            do_porc_des         = item.do_porc_des,
                            do_precioCompra     = item.do_precioCompra,
                            do_precioFinal      = item.do_precioFinal,
                            do_subtotal         = item.do_subtotal,
                            do_total            = item.do_total,
                            Por_Iva             = item.Por_Iva,
                            Secuencia           = Secuencia++,
                            IdCentroCosto       = item.IdCentroCosto,
                            IdPunto_cargo       = item.IdPunto_cargo,
                            IdPunto_cargo_grupo = item.IdPunto_cargo_grupo
                        };
                        Context.com_ordencompra_local_det.Add(Entity_det);
                    }

                    var Descuento              = Math.Round(Convert.ToDecimal(info.lst_det.Sum(q => q.do_Cantidad * q.do_descuento)), 2, MidpointRounding.AwayFromZero);
                    var ValorIVA               = Math.Round(Convert.ToDecimal(info.lst_det.Sum(q => q.do_iva)), 2, MidpointRounding.AwayFromZero);
                    var SubtotalIVASinDscto    = Math.Round(Convert.ToDecimal(info.lst_det.Where(q => q.Por_Iva != 0).Sum(q => q.do_Cantidad * q.do_precioCompra)), 2, MidpointRounding.AwayFromZero);
                    var SubtotalSinIVASinDscto = Math.Round(Convert.ToDecimal(info.lst_det.Where(q => q.Por_Iva == 0).Sum(q => q.do_Cantidad * q.do_precioCompra)), 2, MidpointRounding.AwayFromZero);
                    var SubtotalIVAConDscto    = Math.Round(Convert.ToDecimal(info.lst_det.Where(q => q.Por_Iva != 0).Sum(q => q.do_subtotal)), 2, MidpointRounding.AwayFromZero);
                    var SubtotalSinIVAConDscto = Math.Round(Convert.ToDecimal(info.lst_det.Where(q => q.Por_Iva == 0).Sum(q => q.do_subtotal)), 2, MidpointRounding.AwayFromZero);
                    var SubtotalSinDscto       = Math.Round(SubtotalIVASinDscto + SubtotalSinIVASinDscto, 2, MidpointRounding.AwayFromZero);
                    var SubtotalConDscto       = Math.Round(SubtotalIVAConDscto + SubtotalSinIVAConDscto, 2, MidpointRounding.AwayFromZero);
                    var Total = Math.Round(SubtotalConDscto + ValorIVA, 2, MidpointRounding.AwayFromZero);

                    com_ordencompra_local_resumen Entity_Resumen = new com_ordencompra_local_resumen
                    {
                        IdEmpresa              = info.IdEmpresa,
                        IdSucursal             = info.IdSucursal,
                        IdOrdenCompra          = info.IdOrdenCompra,
                        SubtotalIVASinDscto    = SubtotalIVASinDscto,
                        SubtotalSinIVASinDscto = SubtotalSinIVASinDscto,
                        SubtotalSinDscto       = SubtotalSinDscto,
                        Descuento              = Descuento,
                        SubtotalIVAConDscto    = SubtotalIVAConDscto,
                        SubtotalSinIVAConDscto = SubtotalSinIVAConDscto,
                        SubtotalConDscto       = SubtotalConDscto,
                        ValorIVA = ValorIVA,
                        Total    = Total
                    };

                    Context.com_ordencompra_local_resumen.Add(Entity_Resumen);

                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "com_ordencompra_local_Data", Metodo = "guardarDB", IdUsuario = info.IdUsuario
                });
                return(false);
            }
        }
예제 #24
0
        public Boolean Actualizar_EstadoReproba(List <com_solicitud_compra_det_aprobacion_Info> LstInfo, List <com_solicitud_compra_det_aprobacion_Info> lstSol_Genera_OC, string validaMotivo, ref string msg)
        {
            try
            {
                Boolean res = true;
                if (Validar_objeto_AprobSolComp(LstInfo, validaMotivo, ref msg))
                {
                    odata.Actualizar_EstadoReproba(LstInfo, ref msg);

                    if (validaMotivo == "S")
                    {
                        #region Genera Orden Compra
                        //Generar Orden Compra

                        var Query = from q in lstSol_Genera_OC
                                    group q by new
                        {
                            q.IdSucursal_x_OC,
                            q.IdProveedor_SC,
                            q.IdMotivo
                        }
                        into grouping
                            select new { grouping.Key, grouping };
                        foreach (var grp in Query)
                        {
                            if (grp.Key.IdProveedor_SC != 0 && grp.Key.IdMotivo != 0 && grp.Key.IdSucursal_x_OC != 0)
                            {
                                List <com_solicitud_compra_det_aprobacion_Info> listSolxItemSaldo = new List <com_solicitud_compra_det_aprobacion_Info>();
                                foreach (var item in grp.grouping)
                                {
                                    if (item.Checked == true && item.IdEstadoAprobacion == "APR_SOL" && item.IdEstadoPreAprobacion == "APR_SOL")
                                    {
                                        com_solicitud_compra_det_aprobacion_Info info = new com_solicitud_compra_det_aprobacion_Info();

                                        info.Checked         = item.Checked;
                                        info.IdEmpresa       = item.IdEmpresa;
                                        info.IdSucursal_SC   = item.IdSucursal_SC;
                                        info.IdSucursal_x_OC = item.IdSucursal_x_OC;

                                        info.fecha              = item.fecha;
                                        info.Solicitante        = item.Solicitante;
                                        info.IdComprador        = item.IdComprador;
                                        info.IdComprador        = item.IdComprador;
                                        info.IdPersona_Solicita = item.IdPersona_Solicita;
                                        info.IdDepartamento     = item.IdDepartamento;
                                        info.IdProveedor        = Convert.ToDecimal(item.IdProveedor_SC);

                                        info.IdMotivo           = item.IdMotivo;
                                        info.IdSolicitudCompra  = item.IdSolicitudCompra;
                                        info.IdEstadoAprobacion = item.IdEstadoAprobacion;
                                        info.Secuencia          = item.Secuencia_SC;

                                        info.observacion = item.observacion;

                                        //detalle

                                        info.IdProducto_SC     = item.IdProducto_SC;
                                        info.NomProducto_SC    = item.NomProducto_SC;
                                        info.Cantidad_aprobada = item.Cantidad_aprobada;

                                        info.IdCentroCosto = item.IdCentroCosto;
                                        info.IdCentroCosto_sub_centro_costo = item.IdCentroCosto_sub_centro_costo;
                                        info.IdPunto_cargo  = item.IdPunto_cargo;
                                        info.IdUnidadMedida = item.IdUnidadMedida;

                                        //nuevo
                                        info.do_precioCompra    = item.do_precioCompra;
                                        info.do_porc_des        = item.do_porc_des;
                                        info.do_descuento       = item.do_descuento;
                                        info.do_subtotal        = item.do_subtotal;
                                        info.do_iva             = item.do_iva;
                                        info.do_total           = item.do_total;
                                        info.IdCod_Impuesto_Iva = item.IdCod_Impuesto_Iva;
                                        info.do_observacion     = item.do_observacion;

                                        info.IdEstadoPreAprobacion = item.IdEstadoPreAprobacion;

                                        listSolxItemSaldo.Add(info);
                                    }
                                }

                                com_ordencompra_local_Info infOrdCom = new com_ordencompra_local_Info();
                                decimal id = 0;
                                // string msg = "";

                                var groupByProv = listSolxItemSaldo.GroupBy(proveedor => proveedor.IdProveedor);
                                List <com_solicitud_compra_det_aprobacion_Info> lista;

                                foreach (var item in groupByProv)
                                {
                                    var listaAux = item.ToList().FindAll(q => q.Checked == true && q.IdEstadoAprobacion == "APR_SOL" && q.IdEstadoPreAprobacion == "APR_SOL");

                                    if (listaAux.Count() == 0)
                                    {
                                    }
                                    else
                                    {
                                        lista = new List <com_solicitud_compra_det_aprobacion_Info>();
                                        lista = listaAux.ToList();

                                        // cabecera Orden Compra
                                        int x;
                                        x = 1;

                                        foreach (var item2 in lista)
                                        {
                                            while (x <= 1)
                                            {
                                                infOrdCom = new com_ordencompra_local_Info();

                                                infOrdCom.IdEmpresa           = item2.IdEmpresa;
                                                infOrdCom.IdProveedor         = item2.IdProveedor;
                                                infOrdCom.Tipo                = "LOCAL";
                                                infOrdCom.IdTerminoPago       = null;
                                                infOrdCom.oc_plazo            = 0;
                                                infOrdCom.oc_fecha            = Convert.ToDateTime(DateTime.Now.ToShortTimeString());
                                                infOrdCom.oc_flete            = 0;
                                                infOrdCom.oc_observacion      = item2.observacion;
                                                infOrdCom.Estado              = "A";
                                                infOrdCom.oc_fechaVencimiento = item2.fecha;
                                                com_parametro_Bus  Bus_ParamCompra = new com_parametro_Bus();
                                                com_parametro_Info InfoComDev      = new com_parametro_Info();
                                                InfoComDev = Bus_ParamCompra.Get_Info_parametro(item2.IdEmpresa);
                                                infOrdCom.IdEstadoAprobacion_cat = InfoComDev.IdEstadoAprobacion_OC;
                                                infOrdCom.Solicitante            = item2.Solicitante;
                                                infOrdCom.IdComprador            = item2.IdComprador;
                                                infOrdCom.AfectaCosto            = "N";
                                                infOrdCom.IdSolicitante          = item2.IdPersona_Solicita;
                                                infOrdCom.IdEstadoRecepcion_cat  = "PEN";
                                                infOrdCom.IdDepartamento         = item2.IdDepartamento;
                                                cl_parametrosGenerales_Bus param = cl_parametrosGenerales_Bus.Instance;
                                                infOrdCom.IdUsuario = param.IdUsuario;
                                                com_parametro_Bus         bus_param = new com_parametro_Bus();
                                                List <com_parametro_Info> listParam = new List <com_parametro_Info>();
                                                listParam = bus_param.Get_List_parametro(item2.IdEmpresa);
                                                var itemParam = listParam.FirstOrDefault(q => q.IdEmpresa == item2.IdEmpresa);

                                                //infOrdCom.IdSucursal = itemParam.IdSucursal_x_Aprob_x_SolComp;

                                                infOrdCom.IdSucursal = item2.IdSucursal_x_OC;


                                                infOrdCom.IdMotivo = item2.IdMotivo;

                                                x = x + 1;
                                            }
                                        }

                                        // detalle orden compra
                                        List <com_ordencompra_local_det_Info> listDetOrdComp = new List <com_ordencompra_local_det_Info>();
                                        foreach (var item3 in lista)
                                        {
                                            com_ordencompra_local_det_Info infoDet_Oc = new com_ordencompra_local_det_Info();

                                            infoDet_Oc.IdSucursal      = item3.IdSucursal_x_OC;
                                            infoDet_Oc.IdProducto      = Convert.ToDecimal(item3.IdProducto_SC);
                                            infoDet_Oc.do_Cantidad     = item3.Cantidad_aprobada;
                                            infoDet_Oc.do_Costeado     = "N";
                                            infoDet_Oc.do_peso         = 0;
                                            infoDet_Oc.do_precioCompra = item3.do_precioCompra;
                                            infoDet_Oc.do_porc_des     = item3.do_porc_des;
                                            infoDet_Oc.do_descuento    = item3.do_descuento;
                                            infoDet_Oc.do_subtotal     = item3.do_subtotal;
                                            infoDet_Oc.do_iva          = item3.do_iva;
                                            infoDet_Oc.do_total        = item3.do_total;
                                            infoDet_Oc.IdCod_Impuesto  = item3.IdCod_Impuesto_Iva;
                                            infoDet_Oc.do_observacion  = item3.do_observacion;
                                            infoDet_Oc.IdPunto_cargo   = item3.IdPunto_cargo;
                                            infoDet_Oc.IdCentroCosto   = item3.IdCentroCosto;
                                            infoDet_Oc.IdCentroCosto_sub_centro_costo = item3.IdCentroCosto_sub_centro_costo;
                                            infoDet_Oc.IdUnidadMedida = item3.IdUnidadMedida;

                                            listDetOrdComp.Add(infoDet_Oc);
                                        }

                                        // detalle solicitud compra
                                        List <com_solicitud_compra_det_Info> listDetSoliciComp = new List <com_solicitud_compra_det_Info>();


                                        foreach (var item3 in lista)
                                        {
                                            com_solicitud_compra_det_Info infoDetSolCom = new com_solicitud_compra_det_Info();

                                            infoDetSolCom.IdEmpresa         = item3.IdEmpresa;
                                            infoDetSolCom.IdSucursal        = item3.IdSucursal_SC;
                                            infoDetSolCom.IdSolicitudCompra = item3.IdSolicitudCompra;
                                            infoDetSolCom.Secuencia         = item3.Secuencia;
                                            infoDetSolCom.IdProducto        = item3.IdProducto_SC;
                                            infoDetSolCom.do_Cantidad       = item3.Cantidad_aprobada;
                                            infoDetSolCom.NomProducto       = item3.NomProducto_SC;
                                            infoDetSolCom.IdPunto_cargo     = item3.IdPunto_cargo;
                                            infoDetSolCom.IdCentroCosto     = item3.IdCentroCosto;
                                            infoDetSolCom.IdCentroCosto_sub_centro_costo = item3.IdCentroCosto_sub_centro_costo;
                                            infoDetSolCom.do_observacion = item3.do_observacion;
                                            infoDetSolCom.IdUnidadMedida = item3.IdUnidadMedida;

                                            listDetSoliciComp.Add(infoDetSolCom);
                                        }

                                        // grabar orden de compra

                                        com_ordencompra_local_Bus bus_OrdComp = new com_ordencompra_local_Bus();

                                        infOrdCom.listDetalle = listDetOrdComp;

                                        infOrdCom.listDetSoliciComp = listDetSoliciComp;

                                        if (bus_OrdComp.GuardarDB(infOrdCom, ref id, ref msg))
                                        {
                                            msg = "Se ha procedido a grabar el registro de la Orden/Compra #: " + id.ToString() + " exitosamente.";
                                        }
                                        else
                                        {
                                            msg = "Error al grabar OC. " + msg;
                                        }
                                    }
                                }
                            }
                        }
                        #endregion
                    }
                }
                else
                {
                    res = false;
                }
                return(res);
            }
            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("", "Actualizar_EstadoReproba", ex.Message), ex)
                      {
                          EntityType = typeof(com_solicitud_compra_det_aprobacion_Bus)
                      };
            }
        }
        public Boolean GuardarDB(com_ordencompra_local_Info Info, ref decimal id, ref string msg)
        {
            try
            {
                Boolean res = true;
                if (Validar_objeto(Info, ref msg))
                {
                    //cabecera
                    res = BusOC.GuardarDB(Info, ref id);

                    foreach (var item in Info.listDetalle)
                    {
                        item.IdEmpresa     = Info.IdEmpresa;
                        item.IdSucursal    = Info.IdSucursal;
                        item.IdOrdenCompra = id;
                        //item.IdUnidadMedida=Info.listDetalle.
                    }
                    //detalle
                    res = BusOC_det.GuardarDB(Info.listDetalle, ref msg);


                    // opcion habilitada cuando se graba desde la pantalla aprobacion de solicitudes con generacion de orden compra

                    #region grabar en tabla intermedia com_ordencompra_local_det_x_com_solicitud_compra_det

                    if (Info.listDetSoliciComp.Count() != 0)
                    {
                        // consulto detalle orden compra
                        com_ordencompra_local_det_Data        odata       = new com_ordencompra_local_det_Data();
                        List <com_ordencompra_local_det_Info> listDetComp = new List <com_ordencompra_local_det_Info>();
                        listDetComp = odata.Get_List_ordencompra_local_det(Info.IdEmpresa, Info.IdSucursal, Info.IdOrdenCompra);

                        List <com_ordencompra_local_det_x_com_solicitud_compra_det_Info> listDetCompra     = new List <com_ordencompra_local_det_x_com_solicitud_compra_det_Info>();
                        List <com_ordencompra_local_det_x_com_solicitud_compra_det_Info> listDetSoliCompra = new List <com_ordencompra_local_det_x_com_solicitud_compra_det_Info>();

                        com_ordencompra_local_det_x_com_solicitud_compra_det_Info info;

                        foreach (var item in listDetComp)
                        {
                            info = new com_ordencompra_local_det_x_com_solicitud_compra_det_Info();

                            info.ocd_IdEmpresa     = item.IdEmpresa;
                            info.ocd_IdSucursal    = item.IdSucursal;
                            info.ocd_IdOrdenCompra = item.IdOrdenCompra;
                            info.ocd_Secuencia     = item.Secuencia;

                            listDetCompra.Add(info);
                        }

                        foreach (var item in Info.listDetSoliciComp)
                        {
                            info = new com_ordencompra_local_det_x_com_solicitud_compra_det_Info();

                            info.scd_IdEmpresa         = item.IdEmpresa;
                            info.scd_IdSucursal        = item.IdSucursal;
                            info.scd_IdSolicitudCompra = item.IdSolicitudCompra;
                            info.scd_Secuencia         = item.Secuencia;

                            listDetSoliCompra.Add(info);
                        }

                        int     scd_IdEmpresa         = 0;
                        int     scd_IdSucursal        = 0;
                        decimal scd_IdSolicitudCompra = 0;
                        int     scd_Secuencia         = 0;

                        foreach (var item in listDetCompra)
                        {
                            var items = listDetSoliCompra.First(v => v.ocd_IdEmpresa == 0 && v.ocd_IdSucursal == 0 && v.ocd_IdOrdenCompra == 0 && v.ocd_Secuencia == 0);

                            scd_IdEmpresa         = items.scd_IdEmpresa;
                            scd_IdSucursal        = items.scd_IdSucursal;
                            scd_IdSolicitudCompra = items.scd_IdSolicitudCompra;
                            scd_Secuencia         = items.scd_Secuencia;

                            listDetSoliCompra.Remove(items);

                            item.scd_IdEmpresa         = scd_IdEmpresa;
                            item.scd_IdSucursal        = scd_IdSucursal;
                            item.scd_IdSolicitudCompra = scd_IdSolicitudCompra;
                            item.scd_Secuencia         = scd_Secuencia;
                        }

                        com_ordencompra_local_det_x_com_solicitud_compra_det_Bus bus_Inter = new com_ordencompra_local_det_x_com_solicitud_compra_det_Bus();

                        if (bus_Inter.GrabarDB(listDetCompra, ref mensaje))
                        {
                        }
                    }
                    #endregion
                }
                else
                {
                    res = false;
                }

                return(res);
            }
            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(com_ordencompra_local_Bus)
                      };
            }
        }