Exemple #1
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)
                      };
            }
        }
        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)
                      };
            }
        }