Beispiel #1
0
        public List <com_ordencompra_local_det_x_com_solicitud_compra_det_Info> Get_List_ordencompra_local_det_x_com_solicitud_compra_det_x_Solicitud(List <com_solicitud_compra_det_aprobacion_Info> lista)
        {
            try
            {
                List <com_ordencompra_local_det_x_com_solicitud_compra_det_Info> List = new List <com_ordencompra_local_det_x_com_solicitud_compra_det_Info>();

                EntitiesCompras oEntities = new EntitiesCompras();

                foreach (var item in lista)
                {
                    var select = from q in oEntities.com_ordencompra_local_det_x_com_solicitud_compra_det
                                 where q.scd_IdEmpresa == item.IdEmpresa &&
                                 q.scd_IdSucursal == item.IdSucursal_SC &&
                                 q.scd_IdSolicitudCompra == item.IdSolicitudCompra &&
                                 q.scd_Secuencia == item.Secuencia_SC
                                 select q;

                    foreach (var item2 in select)
                    {
                        com_ordencompra_local_det_x_com_solicitud_compra_det_Info info = new com_ordencompra_local_det_x_com_solicitud_compra_det_Info();

                        info.ocd_IdEmpresa     = item2.ocd_IdEmpresa;
                        info.ocd_IdSucursal    = item2.ocd_IdSucursal;
                        info.ocd_IdOrdenCompra = item2.ocd_IdOrdenCompra;
                        info.ocd_Secuencia     = item2.ocd_Secuencia;

                        info.scd_IdEmpresa         = item2.scd_IdEmpresa;
                        info.scd_IdSucursal        = item2.scd_IdSucursal;
                        info.scd_IdSolicitudCompra = item2.scd_IdSolicitudCompra;
                        info.scd_Secuencia         = item2.scd_Secuencia;
                        info.observacion           = item2.observacion;
                        List.Add(info);
                    }
                }

                return(List);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                mensaje = ex.ToString();
                throw new Exception(ex.ToString());
            }
        }
        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)
                      };
            }
        }
        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)
                      };
            }
        }